diff --git a/.github/ISSUE_TEMPLATE/01-feature_request.yaml b/.github/ISSUE_TEMPLATE/01-feature_request.yaml
index fb4bab6239c..f0138a22ab0 100644
--- a/.github/ISSUE_TEMPLATE/01-feature_request.yaml
+++ b/.github/ISSUE_TEMPLATE/01-feature_request.yaml
@@ -14,7 +14,7 @@ body:
attributes:
label: NetBox version
description: What version of NetBox are you currently running?
- placeholder: v4.1.3
+ placeholder: v4.1.4
validations:
required: true
- type: dropdown
@@ -24,6 +24,21 @@ body:
- Data model extension
- New functionality
- Change to existing functionality
+ - Other
+ validations:
+ required: true
+ - type: dropdown
+ attributes:
+ label: Triage priority
+ description: >
+ Issue triage may be prioritized in some cases. Select whichever of the following
+ conditions applies, if any.
+ options:
+ - I volunteer to perform this work (if approved)
+ - I'm a NetBox Labs customer
+ - This is a very minor change
+ - N/A
+ default: 3
validations:
required: true
- type: textarea
diff --git a/.github/ISSUE_TEMPLATE/02-bug_report.yaml b/.github/ISSUE_TEMPLATE/02-bug_report.yaml
index f31e024b485..a8a2cc45b87 100644
--- a/.github/ISSUE_TEMPLATE/02-bug_report.yaml
+++ b/.github/ISSUE_TEMPLATE/02-bug_report.yaml
@@ -22,11 +22,25 @@ body:
- Self-hosted
validations:
required: true
+ - type: dropdown
+ attributes:
+ label: Triage priority
+ description: >
+ Issue triage may be prioritized in some cases. Select whichever of the following
+ conditions applies, if any.
+ options:
+ - I volunteer to perform this work (if approved)
+ - I'm a NetBox Labs customer
+ - This is preventing me from using NetBox
+ - N/A
+ default: 3
+ validations:
+ required: true
- type: input
attributes:
label: NetBox Version
description: What version of NetBox are you currently running?
- placeholder: v4.1.3
+ placeholder: v4.1.4
validations:
required: true
- type: dropdown
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b4be037427f..c3b4876c303 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -73,7 +73,7 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- pip install pycodestyle coverage tblib
+ pip install ruff coverage tblib
- name: Build documentation
run: mkdocs build
@@ -85,7 +85,7 @@ jobs:
run: python netbox/manage.py makemigrations --check
- name: Check PEP8 compliance
- run: pycodestyle --ignore=W504,E501 --exclude=node_modules netbox/
+ run: ruff check netbox/
- name: Check UI ESLint, TypeScript, and Prettier Compliance
run: yarn --cwd netbox/project-static validate
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 00000000000..09f935b61f7
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,44 @@
+repos:
+- repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: v0.6.9
+ hooks:
+ - id: ruff
+ name: "Ruff linter"
+ args: [ netbox/ ]
+- repo: local
+ hooks:
+ - id: django-check
+ name: "Django system check"
+ description: "Run Django's internal check for common problems"
+ entry: python netbox/manage.py check
+ language: system
+ pass_filenames: false
+ types: [python]
+ - id: django-makemigrations
+ name: "Django migrations check"
+ description: "Check for any missing Django migrations"
+ entry: python netbox/manage.py makemigrations --check
+ language: system
+ pass_filenames: false
+ types: [python]
+ - id: mkdocs-build
+ name: "Build documentation"
+ description: "Build the documentation with mkdocs"
+ files: 'docs/'
+ entry: mkdocs build
+ language: system
+ pass_filenames: false
+ - id: yarn-validate
+ name: "Yarn validate"
+ description: "Check UI ESLint, TypeScript, and Prettier compliance"
+ files: 'netbox/project-static/'
+ entry: yarn --cwd netbox/project-static validate
+ language: system
+ pass_filenames: false
+ - id: verify-bundles
+ name: "Verify static asset bundles"
+ description: "Ensure that any modified static assets have been compiled"
+ files: 'netbox/project-static/'
+ entry: scripts/verify-bundles.sh
+ language: system
+ pass_filenames: false
diff --git a/contrib/generated_schema.json b/contrib/generated_schema.json
index 1152d697407..56ddee50e96 100644
--- a/contrib/generated_schema.json
+++ b/contrib/generated_schema.json
@@ -12,6 +12,9 @@
"left-to-right",
"right-to-left",
"side-to-rear",
+ "rear-to-side",
+ "bottom-to-top",
+ "top-to-bottom",
"passive",
"mixed"
]
diff --git a/docs/administration/authentication/microsoft-azure-ad.md b/docs/administration/authentication/microsoft-entra-id.md
similarity index 94%
rename from docs/administration/authentication/microsoft-azure-ad.md
rename to docs/administration/authentication/microsoft-entra-id.md
index 17b13081896..3451c656f1a 100644
--- a/docs/administration/authentication/microsoft-azure-ad.md
+++ b/docs/administration/authentication/microsoft-entra-id.md
@@ -1,8 +1,8 @@
-# Microsoft Azure AD
+# Microsoft Entra ID
-This guide explains how to configure single sign-on (SSO) support for NetBox using [Microsoft Azure Active Directory (AD)](https://azure.microsoft.com/en-us/services/active-directory/) as an authentication backend.
+This guide explains how to configure single sign-on (SSO) support for NetBox using [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) as an authentication backend.
-## Azure AD Configuration
+## Entra ID Configuration
### 1. Create a test user (optional)
@@ -16,7 +16,7 @@ Under the Azure Active Directory dashboard, navigate to **Add > App registration
Enter a name for the registration (e.g. "NetBox") and ensure that the "single tenant" option is selected.
-Under "Redirect URI", select "Web" for the platform and enter the path to your NetBox installation, ending with `/oauth/complete/azuread-oauth2/`. Note that this URI **must** begin with `https://` unless you are referencing localhost (for development purposes).
+Under "Redirect URI", select "Web" for the platform and enter the path to your NetBox installation, ending with `/oauth/complete/entraid-oauth2/`. Note that this URI **must** begin with `https://` unless you are referencing localhost (for development purposes).

diff --git a/docs/development/getting-started.md b/docs/development/getting-started.md
index 4dbdb63b28e..6e425d5a3f5 100644
--- a/docs/development/getting-started.md
+++ b/docs/development/getting-started.md
@@ -62,22 +62,7 @@ $issue-$description
The description should be just two or three words to imply the focus of the work being performed. For example, bug #1234 to fix a TypeError exception when creating a device might be named `1234-device-typerror`. This ensures that branches are always follow some logical ordering (e.g. when running `git branch -a`) and helps other developers quickly identify the purpose of each.
-### 3. Enable Pre-Commit Hooks
-
-NetBox ships with a [git pre-commit hook](https://githooks.com/) script that automatically checks for style compliance and missing database migrations prior to committing changes. This helps avoid erroneous commits that result in CI test failures. You are encouraged to enable it by creating a link to `scripts/git-hooks/pre-commit`:
-
-```no-highlight
-cd .git/hooks/
-ln -s ../../scripts/git-hooks/pre-commit
-```
-For the pre-commit hooks to work, you will also need to install the pycodestyle package:
-
-```no-highlight
-python -m pip install pycodestyle
-```
-...and set up the yarn packages as shown in the [Web UI Development Guide](web-ui.md)
-
-### 4. Create a Python Virtual Environment
+### 3. Create a Python Virtual Environment
A [virtual environment](https://docs.python.org/3/tutorial/venv.html) (or "venv" for short) is like a container for a set of Python packages. These allow you to build environments suited to specific projects without interfering with system packages or other projects. When installed per the documentation, NetBox uses a virtual environment in production.
@@ -101,7 +86,7 @@ source ~/.venv/netbox/bin/activate
Notice that the console prompt changes to indicate the active environment. This updates the necessary system environment variables to ensure that any Python scripts are run within the virtual environment.
-### 5. Install Required Packages
+### 4. Install Required Packages
With the virtual environment activated, install the project's required Python packages using the `pip` module. Required packages are defined in `requirements.txt`. Each line in this file specifies the name and specific version of a required package.
@@ -109,6 +94,26 @@ With the virtual environment activated, install the project's required Python pa
python -m pip install -r requirements.txt
```
+### 5. Install Pre-Commit
+
+NetBox uses [`pre-commit`](https://pre-commit.com/) to automatically validate code when commiting new changes. This includes the following operations:
+
+* Run the `ruff` Python linter
+* Run Django's internal system check
+* Check for missing database migrations
+* Validate any changes to the documentation with `mkdocs`
+* Validate Typescript & Sass styling with `yarn`
+* Ensure that any modified static front end assets have been recompiled
+
+Enable `pre-commit` with the following commands _prior_ to commiting any changes:
+
+```no-highlight
+python -m pip install ruff pre-commit
+pre-commit install
+```
+
+You may also need to set up the yarn packages as shown in the [Web UI Development Guide](web-ui.md).
+
### 6. Configure NetBox
Within the `netbox/netbox/` directory, copy `configuration_example.py` to `configuration.py` and update the following parameters:
diff --git a/docs/development/style-guide.md b/docs/development/style-guide.md
index 9e560674941..0d4caf395a6 100644
--- a/docs/development/style-guide.md
+++ b/docs/development/style-guide.md
@@ -1,6 +1,6 @@
# Style Guide
-NetBox generally follows the [Django style guide](https://docs.djangoproject.com/en/stable/internals/contributing/writing-code/coding-style/), which is itself based on [PEP 8](https://www.python.org/dev/peps/pep-0008/). [Pycodestyle](https://github.com/pycqa/pycodestyle) is used to validate code formatting, ignoring certain violations.
+NetBox generally follows the [Django style guide](https://docs.djangoproject.com/en/stable/internals/contributing/writing-code/coding-style/), which is itself based on [PEP 8](https://www.python.org/dev/peps/pep-0008/). [ruff](https://docs.astral.sh/ruff/) is used for linting (with certain [exceptions](#linter-exceptions)).
## Code
@@ -20,32 +20,32 @@ NetBox generally follows the [Django style guide](https://docs.djangoproject.com
* Nested API serializers generate minimal representations of an object. These are stored separately from the primary serializers to avoid circular dependencies. Always import nested serializers from other apps directly. For example, from within the DCIM app you would write `from ipam.api.nested_serializers import NestedIPAddressSerializer`.
-### PEP 8 Exceptions
+### Linting
-NetBox ignores certain PEP8 assertions. These are listed below.
+The [ruff](https://docs.astral.sh/ruff/) linter is used to enforce code style. A [pre-commit hook](./getting-started.md#3-enable-pre-commit-hooks) which runs this automatically is included with NetBox. To invoke `ruff` manually, run:
-#### Wildcard Imports
+```
+ruff check netbox/
+```
+
+#### Linter Exceptions
+
+The following rules are ignored when linting.
+
+##### [E501](https://docs.astral.sh/ruff/rules/line-too-long/): Line too long
+
+NetBox does not enforce a hard restriction on line length, although a maximum length of 120 characters is strongly encouraged for Python code where possible. The maximum length does not apply to HTML templates or to automatically generated code (e.g. database migrations).
+
+##### [F403](https://docs.astral.sh/ruff/rules/undefined-local-with-import-star/): Undefined local with import star
Wildcard imports (for example, `from .constants import *`) are acceptable under any of the following conditions:
* The library being import contains only constant declarations (e.g. `constants.py`)
* The library being imported explicitly defines `__all__`
-#### Maximum Line Length (E501)
+##### [F405](https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage/): Undefined local with import star usage
-NetBox does not restrict lines to a maximum length of 79 characters. We use a maximum line length of 120 characters, however this is not enforced by CI. The maximum length does not apply to HTML templates or to automatically generated code (e.g. database migrations).
-
-#### Line Breaks Following Binary Operators (W504)
-
-Line breaks are permitted following binary operators.
-
-### Enforcing Code Style
-
-The [`pycodestyle`](https://pypi.org/project/pycodestyle/) utility (formerly `pep8`) is used by the CI process to enforce code style. A [pre-commit hook](./getting-started.md#3-enable-pre-commit-hooks) which runs this automatically is included with NetBox. To invoke `pycodestyle` manually, run:
-
-```
-pycodestyle --ignore=W504,E501 netbox/
-```
+The justification for ignoring this rule is the same as F403 above.
### Introducing New Dependencies
diff --git a/docs/features/authentication-permissions.md b/docs/features/authentication-permissions.md
index 14e13d5cdef..cf3d11ef386 100644
--- a/docs/features/authentication-permissions.md
+++ b/docs/features/authentication-permissions.md
@@ -41,7 +41,7 @@ NetBox integrates with the open source [python-social-auth](https://github.com/p
* Google
* Hashicorp Vault
* Keycloak
-* Microsoft Azure AD
+* Microsoft Entra ID
* Microsoft Graph
* Okta
* OIDC
diff --git a/docs/models/vpn/l2vpn.md b/docs/models/vpn/l2vpn.md
index 79b7435bfae..1167c1c1780 100644
--- a/docs/models/vpn/l2vpn.md
+++ b/docs/models/vpn/l2vpn.md
@@ -28,6 +28,7 @@ The technology employed in forming and operating the L2VPN. Choices include:
* VXLAN-EVPN
* MPLS-EVPN
* PBB-EVPN
+* EVPN-VPWS
!!! note
Designating the type as VPWS, EPL, EP-LAN, EP-TREE will limit the L2VPN instance to two terminations.
diff --git a/docs/release-notes/version-4.1.md b/docs/release-notes/version-4.1.md
index 28fc8ff1244..d48bb899ff4 100644
--- a/docs/release-notes/version-4.1.md
+++ b/docs/release-notes/version-4.1.md
@@ -1,5 +1,33 @@
# NetBox v4.1
+## v4.1.4 (2024-10-15)
+
+### Enhancements
+
+* [#11671](https://github.com/netbox-community/netbox/issues/11671) - Display device's rack position in cable traces
+* [#15829](https://github.com/netbox-community/netbox/issues/15829) - Rename Microsoft Azure AD SSO backend to Microsoft Entra ID
+* [#16009](https://github.com/netbox-community/netbox/issues/16009) - Float form & bulk operation buttons within UI
+* [#17079](https://github.com/netbox-community/netbox/issues/17079) - Introduce additional choices for device airflow direction
+* [#17216](https://github.com/netbox-community/netbox/issues/17216) - Add EVPN-VPWS L2VPN type
+* [#17655](https://github.com/netbox-community/netbox/issues/17655) - Limit the display of tagged VLANs within interface tables
+* [#17669](https://github.com/netbox-community/netbox/issues/17669) - Enable filtering VLANs by assigned device or VM interface
+
+### Bug Fixes
+
+* [#16024](https://github.com/netbox-community/netbox/issues/16024) - Fix AND/OR filtering in GraphQL API for selection fields
+* [#17400](https://github.com/netbox-community/netbox/issues/17400) - Fix cable tracing across split paths
+* [#17562](https://github.com/netbox-community/netbox/issues/17562) - Fix GraphQL API query support for custom field choices
+* [#17566](https://github.com/netbox-community/netbox/issues/17566) - Fix AttributeError exception resulting from background jobs with no associated object type
+* [#17614](https://github.com/netbox-community/netbox/issues/17614) - Disallow removal of a master device from its virtual chassis
+* [#17636](https://github.com/netbox-community/netbox/issues/17636) - Fix filtering of related objects when adding a power port, rear port, or inventory item template to a device type
+* [#17644](https://github.com/netbox-community/netbox/issues/17644) - Correct sizing of logo & SSO icons on login page
+* [#17648](https://github.com/netbox-community/netbox/issues/17648) - Fix AttributeError exception when attempting to delete a background job under certain conditions
+* [#17663](https://github.com/netbox-community/netbox/issues/17663) - Fix extended lookups for choice field filters
+* [#17671](https://github.com/netbox-community/netbox/issues/17671) - Fix the display of rack types in global search results
+* [#17713](https://github.com/netbox-community/netbox/issues/17713) - Fix UnboundLocalError exception when attempting to sync data source in parallel
+
+---
+
## v4.1.3 (2024-10-02)
### Enhancements
diff --git a/mkdocs.yml b/mkdocs.yml
index 656a2e03f6a..94a4edcb32d 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -156,7 +156,7 @@ nav:
- Administration:
- Authentication:
- Overview: 'administration/authentication/overview.md'
- - Microsoft Azure AD: 'administration/authentication/microsoft-azure-ad.md'
+ - Microsoft Entra ID: 'administration/authentication/microsoft-entra-id.md'
- Okta: 'administration/authentication/okta.md'
- Permissions: 'administration/permissions.md'
- Error Reporting: 'administration/error-reporting.md'
diff --git a/netbox/circuits/api/nested_serializers.py b/netbox/circuits/api/nested_serializers.py
index 6de2cbf5440..487749872aa 100644
--- a/netbox/circuits/api/nested_serializers.py
+++ b/netbox/circuits/api/nested_serializers.py
@@ -18,7 +18,7 @@ __all__ = [
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/circuits/apps.py b/netbox/circuits/apps.py
index df6804303b7..4d5f177e24e 100644
--- a/netbox/circuits/apps.py
+++ b/netbox/circuits/apps.py
@@ -7,7 +7,7 @@ class CircuitsConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
- from . import signals, search
+ from . import signals, search # noqa: F401
# Register models
register_models(*self.get_models())
diff --git a/netbox/circuits/forms/bulk_import.py b/netbox/circuits/forms/bulk_import.py
index 1e7b6361a6e..dc334ae888f 100644
--- a/netbox/circuits/forms/bulk_import.py
+++ b/netbox/circuits/forms/bulk_import.py
@@ -1,5 +1,4 @@
from django import forms
-from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _
from circuits.choices import *
diff --git a/netbox/circuits/graphql/filters.py b/netbox/circuits/graphql/filters.py
index 3ded6e6812a..b8398b2b9b5 100644
--- a/netbox/circuits/graphql/filters.py
+++ b/netbox/circuits/graphql/filters.py
@@ -1,7 +1,6 @@
-import strawberry
import strawberry_django
-from circuits import filtersets, models
+from circuits import filtersets, models
from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
__all__ = (
diff --git a/netbox/circuits/tests/test_views.py b/netbox/circuits/tests/test_views.py
index 87e6d99b724..b06ade30b20 100644
--- a/netbox/circuits/tests/test_views.py
+++ b/netbox/circuits/tests/test_views.py
@@ -171,7 +171,7 @@ class CircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase):
)
cls.csv_update_data = (
- f"id,cid,description,status",
+ "id,cid,description,status",
f"{circuits[0].pk},Circuit 7,New description7,{CircuitStatusChoices.STATUS_DECOMMISSIONED}",
f"{circuits[1].pk},Circuit 8,New description8,{CircuitStatusChoices.STATUS_DECOMMISSIONED}",
f"{circuits[2].pk},Circuit 9,New description9,{CircuitStatusChoices.STATUS_DECOMMISSIONED}",
diff --git a/netbox/core/api/nested_serializers.py b/netbox/core/api/nested_serializers.py
index 3b40853cf2a..df7b41ca7c8 100644
--- a/netbox/core/api/nested_serializers.py
+++ b/netbox/core/api/nested_serializers.py
@@ -16,7 +16,7 @@ __all__ = (
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/core/api/schema.py b/netbox/core/api/schema.py
index 7c4ae722e9b..1ac822b8cc7 100644
--- a/netbox/core/api/schema.py
+++ b/netbox/core/api/schema.py
@@ -8,10 +8,8 @@ from drf_spectacular.plumbing import (
build_basic_type, build_choice_field, build_media_type_object, build_object_type, get_doc,
)
from drf_spectacular.types import OpenApiTypes
-from rest_framework import serializers
-from rest_framework.relations import ManyRelatedField
-from netbox.api.fields import ChoiceField, SerializedPKRelatedField
+from netbox.api.fields import ChoiceField
from netbox.api.serializers import WritableNestedSerializer
# see netbox.api.routers.NetBoxRouter
diff --git a/netbox/core/api/serializers_/jobs.py b/netbox/core/api/serializers_/jobs.py
index e5e07aa414b..544dddb5635 100644
--- a/netbox/core/api/serializers_/jobs.py
+++ b/netbox/core/api/serializers_/jobs.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from core.choices import *
from core.models import Job
from netbox.api.fields import ChoiceField, ContentTypeField
diff --git a/netbox/core/apps.py b/netbox/core/apps.py
index 855ac3170f4..1dfc7a65ea3 100644
--- a/netbox/core/apps.py
+++ b/netbox/core/apps.py
@@ -16,9 +16,9 @@ class CoreConfig(AppConfig):
name = "core"
def ready(self):
- from core.api import schema # noqa
+ from core.api import schema # noqa: F401
from netbox.models.features import register_models
- from . import data_backends, events, search
+ from . import data_backends, events, search # noqa: F401
# Register models
register_models(*self.get_models())
diff --git a/netbox/core/data_backends.py b/netbox/core/data_backends.py
index 8b36c699588..770a3b25879 100644
--- a/netbox/core/data_backends.py
+++ b/netbox/core/data_backends.py
@@ -34,7 +34,7 @@ class LocalBackend(DataBackend):
@contextmanager
def fetch(self):
- logger.debug(f"Data source type is local; skipping fetch")
+ logger.debug("Data source type is local; skipping fetch")
local_path = urlparse(self.url).path # Strip file:// scheme
yield local_path
diff --git a/netbox/core/graphql/mixins.py b/netbox/core/graphql/mixins.py
index 43f8761d18f..5195b52a0d8 100644
--- a/netbox/core/graphql/mixins.py
+++ b/netbox/core/graphql/mixins.py
@@ -15,7 +15,7 @@ __all__ = (
class ChangelogMixin:
@strawberry_django.field
- def changelog(self, info) -> List[Annotated["ObjectChangeType", strawberry.lazy('.types')]]:
+ def changelog(self, info) -> List[Annotated["ObjectChangeType", strawberry.lazy('.types')]]: # noqa: F821
content_type = ContentType.objects.get_for_model(self)
object_changes = ObjectChange.objects.filter(
changed_object_type=content_type,
diff --git a/netbox/core/management/commands/syncdatasource.py b/netbox/core/management/commands/syncdatasource.py
index aa81379526d..990b6eb2abc 100644
--- a/netbox/core/management/commands/syncdatasource.py
+++ b/netbox/core/management/commands/syncdatasource.py
@@ -26,7 +26,7 @@ class Command(BaseCommand):
if invalid_names := set(options['name']) - found_names:
raise CommandError(f"Invalid data source names: {', '.join(invalid_names)}")
else:
- raise CommandError(f"Must specify at least one data source, or set --all.")
+ raise CommandError("Must specify at least one data source, or set --all.")
if len(options['name']) > 1:
self.stdout.write(f"Syncing {len(datasources)} data sources.")
@@ -43,4 +43,4 @@ class Command(BaseCommand):
raise e
if len(options['name']) > 1:
- self.stdout.write(f"Finished.")
+ self.stdout.write("Finished.")
diff --git a/netbox/core/models/data.py b/netbox/core/models/data.py
index 97f9fdac738..6824b460529 100644
--- a/netbox/core/models/data.py
+++ b/netbox/core/models/data.py
@@ -125,7 +125,7 @@ class DataSource(JobsMixin, PrimaryModel):
# Ensure URL scheme matches selected type
if self.backend_class.is_local and self.url_scheme not in ('file', ''):
raise ValidationError({
- 'source_url': f"URLs for local sources must start with file:// (or specify no scheme)"
+ 'source_url': "URLs for local sources must start with file:// (or specify no scheme)"
})
def to_objectchange(self, action):
@@ -201,7 +201,7 @@ class DataSource(JobsMixin, PrimaryModel):
logger.debug(f"Updated {updated_count} files")
# Bulk delete deleted files
- deleted_count, _ = DataFile.objects.filter(pk__in=deleted_file_ids).delete()
+ deleted_count, __ = DataFile.objects.filter(pk__in=deleted_file_ids).delete()
logger.debug(f"Deleted {deleted_count} files")
# Walk the local replication to find new files
diff --git a/netbox/core/models/jobs.py b/netbox/core/models/jobs.py
index 4a327a1d853..e1b5715ddff 100644
--- a/netbox/core/models/jobs.py
+++ b/netbox/core/models/jobs.py
@@ -13,8 +13,6 @@ from django.utils.translation import gettext as _
from core.choices import JobStatusChoices
from core.models import ObjectType
from core.signals import job_end, job_start
-from netbox.config import get_config
-from netbox.constants import RQ_QUEUE_DEFAULT
from utilities.querysets import RestrictedQuerySet
from utilities.rqworker import get_queue_for_model
@@ -118,10 +116,11 @@ class Job(models.Model):
def get_absolute_url(self):
# TODO: Employ dynamic registration
- if self.object_type.model == 'reportmodule':
- return reverse(f'extras:report_result', kwargs={'job_pk': self.pk})
- if self.object_type.model == 'scriptmodule':
- return reverse(f'extras:script_result', kwargs={'job_pk': self.pk})
+ if self.object_type:
+ if self.object_type.model == 'reportmodule':
+ return reverse('extras:report_result', kwargs={'job_pk': self.pk})
+ elif self.object_type.model == 'scriptmodule':
+ return reverse('extras:script_result', kwargs={'job_pk': self.pk})
return reverse('core:job', args=[self.pk])
def get_status_color(self):
@@ -154,7 +153,7 @@ class Job(models.Model):
def delete(self, *args, **kwargs):
super().delete(*args, **kwargs)
- rq_queue_name = get_config().QUEUE_MAPPINGS.get(self.object_type.model, RQ_QUEUE_DEFAULT)
+ rq_queue_name = get_queue_for_model(self.object_type.model if self.object_type else None)
queue = django_rq.get_queue(rq_queue_name)
job = queue.fetch_job(str(self.job_id))
diff --git a/netbox/dcim/api/nested_serializers.py b/netbox/dcim/api/nested_serializers.py
index 5d83b91457f..4b8f0db4a46 100644
--- a/netbox/dcim/api/nested_serializers.py
+++ b/netbox/dcim/api/nested_serializers.py
@@ -56,7 +56,7 @@ __all__ = [
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/dcim/api/serializers_/manufacturers.py b/netbox/dcim/api/serializers_/manufacturers.py
index 61158e0f75d..1a1eea6ec35 100644
--- a/netbox/dcim/api/serializers_/manufacturers.py
+++ b/netbox/dcim/api/serializers_/manufacturers.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from dcim.models import Manufacturer
from netbox.api.fields import RelatedObjectCountField
from netbox.api.serializers import NetBoxModelSerializer
diff --git a/netbox/dcim/api/serializers_/platforms.py b/netbox/dcim/api/serializers_/platforms.py
index 3c846f8fd11..2f47457019f 100644
--- a/netbox/dcim/api/serializers_/platforms.py
+++ b/netbox/dcim/api/serializers_/platforms.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from dcim.models import Platform
from extras.api.serializers_.configtemplates import ConfigTemplateSerializer
from netbox.api.fields import RelatedObjectCountField
diff --git a/netbox/dcim/api/serializers_/power.py b/netbox/dcim/api/serializers_/power.py
index fc65a0732f4..4c2cf54fbcb 100644
--- a/netbox/dcim/api/serializers_/power.py
+++ b/netbox/dcim/api/serializers_/power.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from dcim.choices import *
from dcim.models import PowerFeed, PowerPanel
from netbox.api.fields import ChoiceField, RelatedObjectCountField
diff --git a/netbox/dcim/api/serializers_/roles.py b/netbox/dcim/api/serializers_/roles.py
index e9c9d35639a..8f922da1079 100644
--- a/netbox/dcim/api/serializers_/roles.py
+++ b/netbox/dcim/api/serializers_/roles.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from dcim.models import DeviceRole, InventoryItemRole
from extras.api.serializers_.configtemplates import ConfigTemplateSerializer
from netbox.api.fields import RelatedObjectCountField
diff --git a/netbox/dcim/apps.py b/netbox/dcim/apps.py
index 4df66e36747..9653d3b93a9 100644
--- a/netbox/dcim/apps.py
+++ b/netbox/dcim/apps.py
@@ -10,7 +10,7 @@ class DCIMConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
from utilities.counters import connect_counters
- from . import signals, search
+ from . import signals, search # noqa: F401
from .models import CableTermination, Device, DeviceType, VirtualChassis
# Register models
diff --git a/netbox/dcim/choices.py b/netbox/dcim/choices.py
index 4c9d14c0cbb..11d1927323a 100644
--- a/netbox/dcim/choices.py
+++ b/netbox/dcim/choices.py
@@ -197,6 +197,9 @@ class DeviceAirflowChoices(ChoiceSet):
AIRFLOW_LEFT_TO_RIGHT = 'left-to-right'
AIRFLOW_RIGHT_TO_LEFT = 'right-to-left'
AIRFLOW_SIDE_TO_REAR = 'side-to-rear'
+ AIRFLOW_REAR_TO_SIDE = 'rear-to-side'
+ AIRFLOW_BOTTOM_TO_TOP = 'bottom-to-top'
+ AIRFLOW_TOP_TO_BOTTOM = 'top-to-bottom'
AIRFLOW_PASSIVE = 'passive'
AIRFLOW_MIXED = 'mixed'
@@ -206,6 +209,9 @@ class DeviceAirflowChoices(ChoiceSet):
(AIRFLOW_LEFT_TO_RIGHT, _('Left to right')),
(AIRFLOW_RIGHT_TO_LEFT, _('Right to left')),
(AIRFLOW_SIDE_TO_REAR, _('Side to rear')),
+ (AIRFLOW_REAR_TO_SIDE, _('Rear to side')),
+ (AIRFLOW_BOTTOM_TO_TOP, _('Bottom to top')),
+ (AIRFLOW_TOP_TO_BOTTOM, _('Top to bottom')),
(AIRFLOW_PASSIVE, _('Passive')),
(AIRFLOW_MIXED, _('Mixed')),
)
diff --git a/netbox/dcim/filtersets.py b/netbox/dcim/filtersets.py
index 6517aadb45b..5a101e739b7 100644
--- a/netbox/dcim/filtersets.py
+++ b/netbox/dcim/filtersets.py
@@ -271,7 +271,7 @@ class LocationFilterSet(TenancyFilterSet, ContactModelFilterSet, OrganizationalM
class Meta:
model = Location
- fields = ('id', 'name', 'slug', 'status', 'facility', 'description')
+ fields = ('id', 'name', 'slug', 'facility', 'description')
def search(self, queryset, name, value):
if not value.strip():
diff --git a/netbox/dcim/forms/connections.py b/netbox/dcim/forms/connections.py
index f107c347606..324f8ecfdad 100644
--- a/netbox/dcim/forms/connections.py
+++ b/netbox/dcim/forms/connections.py
@@ -4,7 +4,7 @@ from django.utils.translation import gettext_lazy as _
from circuits.models import Circuit, CircuitTermination
from dcim.models import *
-from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField
+from utilities.forms.fields import DynamicModelMultipleChoiceField
from .model_forms import CableForm
diff --git a/netbox/dcim/forms/model_forms.py b/netbox/dcim/forms/model_forms.py
index 4f08ea896e6..908312a8a4a 100644
--- a/netbox/dcim/forms/model_forms.py
+++ b/netbox/dcim/forms/model_forms.py
@@ -954,7 +954,7 @@ class PowerOutletTemplateForm(ModularComponentTemplateForm):
queryset=PowerPortTemplate.objects.all(),
required=False,
query_params={
- 'devicetype_id': '$device_type',
+ 'device_type_id': '$device_type',
}
)
@@ -1001,8 +1001,8 @@ class FrontPortTemplateForm(ModularComponentTemplateForm):
queryset=RearPortTemplate.objects.all(),
required=False,
query_params={
- 'devicetype_id': '$device_type',
- 'moduletype_id': '$module_type',
+ 'device_type_id': '$device_type',
+ 'module_type_id': '$module_type',
}
)
@@ -1063,7 +1063,7 @@ class InventoryItemTemplateForm(ComponentTemplateForm):
queryset=InventoryItemTemplate.objects.all(),
required=False,
query_params={
- 'devicetype_id': '$device_type'
+ 'device_type_id': '$device_type'
}
)
role = DynamicModelChoiceField(
diff --git a/netbox/dcim/forms/object_create.py b/netbox/dcim/forms/object_create.py
index f811700b47c..d18c7ed1448 100644
--- a/netbox/dcim/forms/object_create.py
+++ b/netbox/dcim/forms/object_create.py
@@ -261,8 +261,8 @@ class FrontPortCreateForm(ComponentCreateForm, model_forms.FrontPortForm):
# TODO: Clean up the application of HTMXSelect attributes
attrs={
'hx-get': '.',
- 'hx-include': f'#form_fields',
- 'hx-target': f'#form_fields',
+ 'hx-include': '#form_fields',
+ 'hx-target': '#form_fields',
}
)
)
diff --git a/netbox/dcim/graphql/mixins.py b/netbox/dcim/graphql/mixins.py
index 589af50c816..2e5ab7ea798 100644
--- a/netbox/dcim/graphql/mixins.py
+++ b/netbox/dcim/graphql/mixins.py
@@ -1,7 +1,6 @@
from typing import Annotated, List, Union
import strawberry
-import strawberry_django
__all__ = (
'CabledObjectMixin',
@@ -11,18 +10,18 @@ __all__ = (
@strawberry.type
class CabledObjectMixin:
- cable: Annotated["CableType", strawberry.lazy('dcim.graphql.types')] | None
+ cable: Annotated["CableType", strawberry.lazy('dcim.graphql.types')] | None # noqa: F821
link_peers: List[Annotated[Union[
- Annotated["CircuitTerminationType", strawberry.lazy('circuits.graphql.types')],
- Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')],
- Annotated["ConsoleServerPortType", strawberry.lazy('dcim.graphql.types')],
- Annotated["FrontPortType", strawberry.lazy('dcim.graphql.types')],
- Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')],
- Annotated["PowerFeedType", strawberry.lazy('dcim.graphql.types')],
- Annotated["PowerOutletType", strawberry.lazy('dcim.graphql.types')],
- Annotated["PowerPortType", strawberry.lazy('dcim.graphql.types')],
- Annotated["RearPortType", strawberry.lazy('dcim.graphql.types')],
+ Annotated["CircuitTerminationType", strawberry.lazy('circuits.graphql.types')], # noqa: F821
+ Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["ConsoleServerPortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["FrontPortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["PowerFeedType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["PowerOutletType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["PowerPortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["RearPortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
], strawberry.union("LinkPeerType")]]
@@ -30,14 +29,14 @@ class CabledObjectMixin:
class PathEndpointMixin:
connected_endpoints: List[Annotated[Union[
- Annotated["CircuitTerminationType", strawberry.lazy('circuits.graphql.types')],
- Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')],
- Annotated["ConsoleServerPortType", strawberry.lazy('dcim.graphql.types')],
- Annotated["FrontPortType", strawberry.lazy('dcim.graphql.types')],
- Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')],
- Annotated["PowerFeedType", strawberry.lazy('dcim.graphql.types')],
- Annotated["PowerOutletType", strawberry.lazy('dcim.graphql.types')],
- Annotated["PowerPortType", strawberry.lazy('dcim.graphql.types')],
- Annotated["ProviderNetworkType", strawberry.lazy('circuits.graphql.types')],
- Annotated["RearPortType", strawberry.lazy('dcim.graphql.types')],
+ Annotated["CircuitTerminationType", strawberry.lazy('circuits.graphql.types')], # noqa: F821
+ Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["ConsoleServerPortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["FrontPortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["PowerFeedType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["PowerOutletType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["PowerPortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
+ Annotated["ProviderNetworkType", strawberry.lazy('circuits.graphql.types')], # noqa: F821
+ Annotated["RearPortType", strawberry.lazy('dcim.graphql.types')], # noqa: F821
], strawberry.union("ConnectedEndpointType")]]
diff --git a/netbox/dcim/management/commands/trace_paths.py b/netbox/dcim/management/commands/trace_paths.py
index d34a428e4fc..592aeb6a7be 100644
--- a/netbox/dcim/management/commands/trace_paths.py
+++ b/netbox/dcim/management/commands/trace_paths.py
@@ -60,7 +60,7 @@ class Command(BaseCommand):
self.stdout.write((self.style.SUCCESS(f' Deleted {deleted_count} paths')))
# Reinitialize the model's PK sequence
- self.stdout.write(f'Resetting database sequence for CablePath model')
+ self.stdout.write('Resetting database sequence for CablePath model')
sequence_sql = connection.ops.sequence_reset_sql(no_style(), [CablePath])
with connection.cursor() as cursor:
for sql in sequence_sql:
diff --git a/netbox/dcim/models/cables.py b/netbox/dcim/models/cables.py
index f996fe67d29..9cec965a37e 100644
--- a/netbox/dcim/models/cables.py
+++ b/netbox/dcim/models/cables.py
@@ -666,6 +666,14 @@ class CablePath(models.Model):
rear_port_id=remote_terminations[0].pk,
rear_port_position__in=position_stack.pop()
)
+ # If all rear ports have a single position, we can just get the front ports
+ elif all([rp.positions == 1 for rp in remote_terminations]):
+ front_ports = FrontPort.objects.filter(rear_port_id__in=[rp.pk for rp in remote_terminations])
+
+ if len(front_ports) != len(remote_terminations):
+ # Some rear ports does not have a front port
+ is_split = True
+ break
else:
# No position indicated: path has split, so we stop at the RearPorts
is_split = True
diff --git a/netbox/dcim/models/device_component_templates.py b/netbox/dcim/models/device_component_templates.py
index 5f6aa08e354..3a71c424d61 100644
--- a/netbox/dcim/models/device_component_templates.py
+++ b/netbox/dcim/models/device_component_templates.py
@@ -160,7 +160,6 @@ class ModularComponentTemplateModel(ComponentTemplateModel):
def _get_module_tree(self, module):
modules = []
- all_module_bays = module.device.modulebays.all().select_related('module')
while module:
modules.append(module)
if module.module_bay:
diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py
index f5fbaa956f7..b1f95154179 100644
--- a/netbox/dcim/models/device_components.py
+++ b/netbox/dcim/models/device_components.py
@@ -4,7 +4,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelatio
from django.core.exceptions import ValidationError
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
-from django.db.models import F, Sum
+from django.db.models import Sum
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from mptt.models import MPTTModel, TreeForeignKey
@@ -22,7 +22,6 @@ from utilities.tracking import TrackingModelMixin
from wireless.choices import *
from wireless.utils import get_channel_attr
-
__all__ = (
'BaseInterface',
'CabledObjectModel',
diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py
index a2b78957e40..0f11cb5f30a 100644
--- a/netbox/dcim/models/devices.py
+++ b/netbox/dcim/models/devices.py
@@ -983,6 +983,13 @@ class Device(
'vc_position': _("A device assigned to a virtual chassis must have its position defined.")
})
+ if hasattr(self, 'vc_master_for') and self.vc_master_for and self.vc_master_for != self.virtual_chassis:
+ raise ValidationError({
+ 'virtual_chassis': _('Device cannot be removed from virtual chassis {virtual_chassis} because it is currently designated as its master.').format(
+ virtual_chassis=self.vc_master_for
+ )
+ })
+
def _instantiate_components(self, queryset, bulk_create=True):
"""
Instantiate components for the device from the specified component templates.
diff --git a/netbox/dcim/search.py b/netbox/dcim/search.py
index 38c1843fef7..45431cb05aa 100644
--- a/netbox/dcim/search.py
+++ b/netbox/dcim/search.py
@@ -250,7 +250,7 @@ class RackTypeIndex(SearchIndex):
('description', 500),
('comments', 5000),
)
- display_attrs = ('type', 'description')
+ display_attrs = ('model', 'description')
@register_search
diff --git a/netbox/dcim/svg/cables.py b/netbox/dcim/svg/cables.py
index 959414d7549..4e0f7aea638 100644
--- a/netbox/dcim/svg/cables.py
+++ b/netbox/dcim/svg/cables.py
@@ -162,6 +162,9 @@ class CableTraceSVG:
location_label += f' / {instance.location}'
if instance.rack:
location_label += f' / {instance.rack}'
+ if instance.position:
+ location_label += f' / {instance.get_face_display()}'
+ location_label += f' / U{instance.position}'
labels.append(location_label)
elif instance._meta.model_name == 'circuit':
labels[0] = f'Circuit {instance}'
diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py
index 2fa82dc43bf..70b2973662a 100644
--- a/netbox/dcim/tables/devices.py
+++ b/netbox/dcim/tables/devices.py
@@ -588,6 +588,9 @@ class BaseInterfaceTable(NetBoxTable):
def value_ip_addresses(self, value):
return ",".join([str(obj.address) for obj in value.all()])
+ def value_tagged_vlans(self, value):
+ return ",".join([str(obj) for obj in value.all()])
+
class InterfaceTable(ModularDeviceComponentTable, BaseInterfaceTable, PathEndpointTable):
device = tables.Column(
diff --git a/netbox/dcim/tables/devicetypes.py b/netbox/dcim/tables/devicetypes.py
index 69ff8b3a228..e8a4e35f114 100644
--- a/netbox/dcim/tables/devicetypes.py
+++ b/netbox/dcim/tables/devicetypes.py
@@ -1,6 +1,5 @@
-from django.utils.translation import gettext_lazy as _
import django_tables2 as tables
-from django.utils.translation import gettext as _
+from django.utils.translation import gettext_lazy as _
from dcim import models
from netbox.tables import NetBoxTable, columns
diff --git a/netbox/dcim/tables/template_code.py b/netbox/dcim/tables/template_code.py
index d3134656ce6..96ab803e6a7 100644
--- a/netbox/dcim/tables/template_code.py
+++ b/netbox/dcim/tables/template_code.py
@@ -56,9 +56,13 @@ INTERFACE_FHRPGROUPS = """
INTERFACE_TAGGED_VLANS = """
{% if record.mode == 'tagged' %}
+ {% if value.count > 3 %}
+ {{ value.count }} VLANs
+ {% else %}
{% for vlan in value.all %}
{{ vlan }}
{% endfor %}
+ {% endif %}
{% elif record.mode == 'tagged-all' %}
All
{% endif %}
diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py
index 573fdbb9673..1b460cd591c 100644
--- a/netbox/dcim/tests/test_api.py
+++ b/netbox/dcim/tests/test_api.py
@@ -2135,12 +2135,12 @@ class ConnectedDeviceTest(APITestCase):
def test_get_connected_device(self):
url = reverse('dcim-api:connected-device-list')
- url_params = f'?peer_device=TestDevice1&peer_interface=eth0'
+ url_params = '?peer_device=TestDevice1&peer_interface=eth0'
response = self.client.get(url + url_params, **self.header)
self.assertHttpStatus(response, status.HTTP_200_OK)
self.assertEqual(response.data['name'], 'TestDevice2')
- url_params = f'?peer_device=TestDevice1&peer_interface=eth1'
+ url_params = '?peer_device=TestDevice1&peer_interface=eth1'
response = self.client.get(url + url_params, **self.header)
self.assertHttpStatus(response, status.HTTP_404_NOT_FOUND)
diff --git a/netbox/dcim/tests/test_cablepaths.py b/netbox/dcim/tests/test_cablepaths.py
index cd7b0e6d79a..f7c337bdf78 100644
--- a/netbox/dcim/tests/test_cablepaths.py
+++ b/netbox/dcim/tests/test_cablepaths.py
@@ -2060,6 +2060,49 @@ class CablePathTestCase(TestCase):
# Test SVG generation
CableTraceSVG(interface1).render()
+ def test_222_single_path_via_multiple_singleposition_rear_ports(self):
+ """
+ [IF1] --C1-- [FP1] [RP1] --C2-- [IF2]
+ [FP2] [RP2]
+ """
+ interface1 = Interface.objects.create(device=self.device, name='Interface 1')
+ interface2 = Interface.objects.create(device=self.device, name='Interface 2')
+ rearport1 = RearPort.objects.create(device=self.device, name='Rear Port 1', positions=1)
+ rearport2 = RearPort.objects.create(device=self.device, name='Rear Port 2', positions=1)
+ frontport1 = FrontPort.objects.create(
+ device=self.device, name='Front Port 1', rear_port=rearport1, rear_port_position=1
+ )
+ frontport2 = FrontPort.objects.create(
+ device=self.device, name='Front Port 2', rear_port=rearport2, rear_port_position=1
+ )
+
+ cable1 = Cable(
+ a_terminations=[interface1],
+ b_terminations=[frontport1, frontport2]
+ )
+ cable1.save()
+ self.assertEqual(CablePath.objects.count(), 1)
+
+ cable2 = Cable(
+ a_terminations=[rearport1, rearport2],
+ b_terminations=[interface2]
+ )
+ cable2.save()
+ self.assertEqual(CablePath.objects.count(), 2)
+
+ self.assertPathExists(
+ (interface1, cable1, (frontport1, frontport2), (rearport1, rearport2), cable2, interface2),
+ is_complete=True
+ )
+ self.assertPathExists(
+ (interface2, cable2, (rearport1, rearport2), (frontport1, frontport2), cable1, interface1),
+ is_complete=True
+ )
+
+ # Test SVG generation both directions
+ CableTraceSVG(interface1).render()
+ CableTraceSVG(interface2).render()
+
def test_301_create_path_via_existing_cable(self):
"""
[IF1] --C1-- [FP1] [RP1] --C2-- [RP2] [FP2] --C3-- [IF2]
diff --git a/netbox/dcim/tests/test_filtersets.py b/netbox/dcim/tests/test_filtersets.py
index afb360d76a9..6c65cad9302 100644
--- a/netbox/dcim/tests/test_filtersets.py
+++ b/netbox/dcim/tests/test_filtersets.py
@@ -4838,13 +4838,6 @@ class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
params = {'device_role': [role[0].slug, role[1].slug]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
- def test_role(self):
- role = DeviceRole.objects.all()[:2]
- params = {'role_id': [role[0].pk, role[1].pk]}
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
- params = {'role': [role[0].slug, role[1].slug]}
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
-
def test_device(self):
devices = Device.objects.all()[:2]
params = {'device_id': [devices[0].pk, devices[1].pk]}
diff --git a/netbox/dcim/tests/test_models.py b/netbox/dcim/tests/test_models.py
index 1c3dbb90b93..70431c2e1e5 100644
--- a/netbox/dcim/tests/test_models.py
+++ b/netbox/dcim/tests/test_models.py
@@ -662,10 +662,8 @@ class ModuleBayTestCase(TestCase):
def test_module_bay_recursion(self):
module_bay_1 = ModuleBay.objects.get(name='Module Bay 1')
- module_bay_2 = ModuleBay.objects.get(name='Module Bay 2')
module_bay_3 = ModuleBay.objects.get(name='Module Bay 3')
module_1 = Module.objects.get(module_bay=module_bay_1)
- module_2 = Module.objects.get(module_bay=module_bay_2)
module_3 = Module.objects.get(module_bay=module_bay_3)
# Confirm error if ModuleBay recurses
@@ -681,8 +679,6 @@ class ModuleBayTestCase(TestCase):
module_1.save()
def test_single_module_token(self):
- module_bays = ModuleBay.objects.all()
- modules = Module.objects.all()
device_type = DeviceType.objects.first()
device_role = DeviceRole.objects.first()
site = Site.objects.first()
@@ -708,7 +704,7 @@ class ModuleBayTestCase(TestCase):
location=location,
rack=rack
)
- cp = device.consoleports.first()
+ device.consoleports.first()
def test_nested_module_token(self):
pass
@@ -733,39 +729,41 @@ class CableTestCase(TestCase):
device2 = Device.objects.create(
device_type=devicetype, role=role, name='TestDevice2', site=site
)
- interface1 = Interface.objects.create(device=device1, name='eth0')
- interface2 = Interface.objects.create(device=device2, name='eth0')
- interface3 = Interface.objects.create(device=device2, name='eth1')
- Cable(a_terminations=[interface1], b_terminations=[interface2]).save()
+ interfaces = (
+ Interface(device=device1, name='eth0'),
+ Interface(device=device2, name='eth0'),
+ Interface(device=device2, name='eth1'),
+ )
+ Interface.objects.bulk_create(interfaces)
+ Cable(a_terminations=[interfaces[0]], b_terminations=[interfaces[1]]).save()
+ PowerPort.objects.create(device=device2, name='psu1')
- power_port1 = PowerPort.objects.create(device=device2, name='psu1')
- patch_pannel = Device.objects.create(
+ patch_panel = Device.objects.create(
device_type=devicetype, role=role, name='TestPatchPanel', site=site
)
- rear_port1 = RearPort.objects.create(device=patch_pannel, name='RP1', type='8p8c')
- front_port1 = FrontPort.objects.create(
- device=patch_pannel, name='FP1', type='8p8c', rear_port=rear_port1, rear_port_position=1
+ rear_ports = (
+ RearPort(device=patch_panel, name='RP1', type='8p8c'),
+ RearPort(device=patch_panel, name='RP2', type='8p8c', positions=2),
+ RearPort(device=patch_panel, name='RP3', type='8p8c', positions=3),
+ RearPort(device=patch_panel, name='RP4', type='8p8c', positions=3),
)
- rear_port2 = RearPort.objects.create(device=patch_pannel, name='RP2', type='8p8c', positions=2)
- front_port2 = FrontPort.objects.create(
- device=patch_pannel, name='FP2', type='8p8c', rear_port=rear_port2, rear_port_position=1
- )
- rear_port3 = RearPort.objects.create(device=patch_pannel, name='RP3', type='8p8c', positions=3)
- front_port3 = FrontPort.objects.create(
- device=patch_pannel, name='FP3', type='8p8c', rear_port=rear_port3, rear_port_position=1
- )
- rear_port4 = RearPort.objects.create(device=patch_pannel, name='RP4', type='8p8c', positions=3)
- front_port4 = FrontPort.objects.create(
- device=patch_pannel, name='FP4', type='8p8c', rear_port=rear_port4, rear_port_position=1
+ RearPort.objects.bulk_create(rear_ports)
+ front_ports = (
+ FrontPort(device=patch_panel, name='FP1', type='8p8c', rear_port=rear_ports[0], rear_port_position=1),
+ FrontPort(device=patch_panel, name='FP2', type='8p8c', rear_port=rear_ports[1], rear_port_position=1),
+ FrontPort(device=patch_panel, name='FP3', type='8p8c', rear_port=rear_ports[2], rear_port_position=1),
+ FrontPort(device=patch_panel, name='FP4', type='8p8c', rear_port=rear_ports[3], rear_port_position=1),
)
+ FrontPort.objects.bulk_create(front_ports)
+
provider = Provider.objects.create(name='Provider 1', slug='provider-1')
provider_network = ProviderNetwork.objects.create(name='Provider Network 1', provider=provider)
circuittype = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1')
circuit1 = Circuit.objects.create(provider=provider, type=circuittype, cid='1')
circuit2 = Circuit.objects.create(provider=provider, type=circuittype, cid='2')
- circuittermination1 = CircuitTermination.objects.create(circuit=circuit1, site=site, term_side='A')
- circuittermination2 = CircuitTermination.objects.create(circuit=circuit1, site=site, term_side='Z')
- circuittermination3 = CircuitTermination.objects.create(circuit=circuit2, provider_network=provider_network, term_side='A')
+ CircuitTermination.objects.create(circuit=circuit1, site=site, term_side='A')
+ CircuitTermination.objects.create(circuit=circuit1, site=site, term_side='Z')
+ CircuitTermination.objects.create(circuit=circuit2, provider_network=provider_network, term_side='A')
def test_cable_creation(self):
"""
diff --git a/netbox/dcim/tests/test_views.py b/netbox/dcim/tests/test_views.py
index 7d6c3433735..e290a6d1d9b 100644
--- a/netbox/dcim/tests/test_views.py
+++ b/netbox/dcim/tests/test_views.py
@@ -2571,7 +2571,7 @@ class InterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase):
}
cls.csv_data = (
- f"device,name,type,vrf.pk,poe_mode,poe_type",
+ "device,name,type,vrf.pk,poe_mode,poe_type",
f"Device 1,Interface 4,1000base-t,{vrfs[0].pk},pse,type1-ieee802.3af",
f"Device 1,Interface 5,1000base-t,{vrfs[0].pk},pse,type1-ieee802.3af",
f"Device 1,Interface 6,1000base-t,{vrfs[0].pk},pse,type1-ieee802.3af",
diff --git a/netbox/dcim/utils.py b/netbox/dcim/utils.py
index eadd2da9694..4d42284908c 100644
--- a/netbox/dcim/utils.py
+++ b/netbox/dcim/utils.py
@@ -1,5 +1,3 @@
-import itertools
-
from django.contrib.contenttypes.models import ContentType
from django.db import transaction
diff --git a/netbox/extras/api/nested_serializers.py b/netbox/extras/api/nested_serializers.py
index ba291b34e7c..235cdd6d61d 100644
--- a/netbox/extras/api/nested_serializers.py
+++ b/netbox/extras/api/nested_serializers.py
@@ -24,7 +24,7 @@ __all__ = [
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/extras/api/serializers_/configtemplates.py b/netbox/extras/api/serializers_/configtemplates.py
index 30d2fb46856..c4a683c742f 100644
--- a/netbox/extras/api/serializers_/configtemplates.py
+++ b/netbox/extras/api/serializers_/configtemplates.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
from extras.models import ConfigTemplate
from netbox.api.serializers import ValidatedModelSerializer
diff --git a/netbox/extras/api/serializers_/customlinks.py b/netbox/extras/api/serializers_/customlinks.py
index 6391e047139..8cc4f5f77f5 100644
--- a/netbox/extras/api/serializers_/customlinks.py
+++ b/netbox/extras/api/serializers_/customlinks.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from core.models import ObjectType
from extras.models import CustomLink
from netbox.api.fields import ContentTypeField
diff --git a/netbox/extras/api/serializers_/exporttemplates.py b/netbox/extras/api/serializers_/exporttemplates.py
index faef9bb9ef2..11f502a02b9 100644
--- a/netbox/extras/api/serializers_/exporttemplates.py
+++ b/netbox/extras/api/serializers_/exporttemplates.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
from core.models import ObjectType
from extras.models import ExportTemplate
diff --git a/netbox/extras/api/serializers_/savedfilters.py b/netbox/extras/api/serializers_/savedfilters.py
index 1403037971f..fb0744e59f0 100644
--- a/netbox/extras/api/serializers_/savedfilters.py
+++ b/netbox/extras/api/serializers_/savedfilters.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from core.models import ObjectType
from extras.models import SavedFilter
from netbox.api.fields import ContentTypeField
diff --git a/netbox/extras/api/serializers_/tags.py b/netbox/extras/api/serializers_/tags.py
index 946ed3c8a85..e4e62845a83 100644
--- a/netbox/extras/api/serializers_/tags.py
+++ b/netbox/extras/api/serializers_/tags.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from core.models import ObjectType
from extras.models import Tag
from netbox.api.fields import ContentTypeField, RelatedObjectCountField
diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py
index cf2cab31673..e4c3c7f3e0e 100644
--- a/netbox/extras/api/views.py
+++ b/netbox/extras/api/views.py
@@ -1,6 +1,5 @@
from django.http import Http404
from django.shortcuts import get_object_or_404
-from django.utils.module_loading import import_string
from django_rq.queues import get_connection
from drf_spectacular.utils import extend_schema, extend_schema_view
from rest_framework import status
@@ -15,8 +14,8 @@ from rq import Worker
from core.models import ObjectType
from extras import filtersets
-from extras.models import *
from extras.jobs import ScriptJob
+from extras.models import *
from netbox.api.authentication import IsAuthenticatedOrLoginNotRequired
from netbox.api.features import SyncedDataMixin
from netbox.api.metadata import ContentTypeMetadata
diff --git a/netbox/extras/apps.py b/netbox/extras/apps.py
index c565988bcf0..21232f95fdd 100644
--- a/netbox/extras/apps.py
+++ b/netbox/extras/apps.py
@@ -6,7 +6,7 @@ class ExtrasConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
- from . import dashboard, lookups, search, signals
+ from . import dashboard, lookups, search, signals # noqa: F401
# Register models
register_models(*self.get_models())
diff --git a/netbox/extras/dashboard/widgets.py b/netbox/extras/dashboard/widgets.py
index 091819bd1e3..c56e4cd7df7 100644
--- a/netbox/extras/dashboard/widgets.py
+++ b/netbox/extras/dashboard/widgets.py
@@ -15,7 +15,6 @@ from django.utils.translation import gettext as _
from core.models import ObjectType
from extras.choices import BookmarkOrderingChoices
-from netbox.choices import ButtonColorChoices
from utilities.object_types import object_type_identifier, object_type_name
from utilities.permissions import get_permission_for_model
from utilities.querydict import dict_to_querydict
diff --git a/netbox/extras/graphql/types.py b/netbox/extras/graphql/types.py
index a43f80cc3e6..a53c7bed3e7 100644
--- a/netbox/extras/graphql/types.py
+++ b/netbox/extras/graphql/types.py
@@ -84,7 +84,7 @@ class CustomFieldType(ObjectType):
class CustomFieldChoiceSetType(ObjectType):
choices_for: List[Annotated["CustomFieldType", strawberry.lazy('extras.graphql.types')]]
- extra_choices: List[str] | None
+ extra_choices: List[List[str]] | None
@strawberry_django.type(
diff --git a/netbox/extras/jobs.py b/netbox/extras/jobs.py
index e540ef4398a..64a7d6a69b4 100644
--- a/netbox/extras/jobs.py
+++ b/netbox/extras/jobs.py
@@ -48,7 +48,7 @@ class ScriptJob(JobRunner):
except AbortTransaction:
script.log_info(message=_("Database changes have been reverted automatically."))
if script.failed:
- logger.warning(f"Script failed")
+ logger.warning("Script failed")
raise
except Exception as e:
diff --git a/netbox/extras/lookups.py b/netbox/extras/lookups.py
index a8d89c943cf..c496cce78b9 100644
--- a/netbox/extras/lookups.py
+++ b/netbox/extras/lookups.py
@@ -1,4 +1,5 @@
-from django.db.models import CharField, TextField, Lookup
+from django.db.models import CharField, Lookup
+
from .fields import CachedValueField
diff --git a/netbox/extras/management/commands/housekeeping.py b/netbox/extras/management/commands/housekeeping.py
index cb8137ee280..ade486fc024 100644
--- a/netbox/extras/management/commands/housekeeping.py
+++ b/netbox/extras/management/commands/housekeeping.py
@@ -95,7 +95,7 @@ class Command(BaseCommand):
self.stdout.write("[*] Checking for latest release")
if settings.ISOLATED_DEPLOYMENT:
if options['verbosity']:
- self.stdout.write(f"\tSkipping: ISOLATED_DEPLOYMENT is enabled")
+ self.stdout.write("\tSkipping: ISOLATED_DEPLOYMENT is enabled")
elif settings.RELEASE_CHECK_URL:
headers = {
'Accept': 'application/vnd.github.v3+json',
@@ -129,7 +129,7 @@ class Command(BaseCommand):
self.stdout.write(f"\tRequest error: {exc}", self.style.ERROR)
else:
if options['verbosity']:
- self.stdout.write(f"\tSkipping: RELEASE_CHECK_URL not set")
+ self.stdout.write("\tSkipping: RELEASE_CHECK_URL not set")
if options['verbosity']:
self.stdout.write("Finished.", self.style.SUCCESS)
diff --git a/netbox/extras/management/commands/reindex.py b/netbox/extras/management/commands/reindex.py
index 5aab745115a..21442be934d 100644
--- a/netbox/extras/management/commands/reindex.py
+++ b/netbox/extras/management/commands/reindex.py
@@ -96,9 +96,9 @@ class Command(BaseCommand):
if i:
self.stdout.write(f'{i} entries cached.')
else:
- self.stdout.write(f'No objects found.')
+ self.stdout.write('No objects found.')
- msg = f'Completed.'
+ msg = 'Completed.'
if total_count := search_backend.size:
msg += f' Total entries: {total_count}'
self.stdout.write(msg, self.style.SUCCESS)
diff --git a/netbox/extras/management/commands/runscript.py b/netbox/extras/management/commands/runscript.py
index ab0d6d89489..d5fb435ad12 100644
--- a/netbox/extras/management/commands/runscript.py
+++ b/netbox/extras/management/commands/runscript.py
@@ -51,7 +51,7 @@ class Command(BaseCommand):
user = User.objects.filter(is_superuser=True).order_by('pk')[0]
# Setup logging to Stdout
- formatter = logging.Formatter(f'[%(asctime)s][%(levelname)s] - %(message)s')
+ formatter = logging.Formatter('[%(asctime)s][%(levelname)s] - %(message)s')
stdouthandler = logging.StreamHandler(sys.stdout)
stdouthandler.setLevel(logging.DEBUG)
stdouthandler.setFormatter(formatter)
diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py
index 91de7df0db0..8b7fc0cb637 100644
--- a/netbox/extras/models/customfields.py
+++ b/netbox/extras/models/customfields.py
@@ -283,7 +283,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
"""
for ct in content_types:
model = ct.model_class()
- instances = model.objects.exclude(**{f'custom_field_data__contains': self.name})
+ instances = model.objects.exclude(**{'custom_field_data__contains': self.name})
for instance in instances:
instance.custom_field_data[self.name] = self.default
model.objects.bulk_update(instances, ['custom_field_data'], batch_size=100)
diff --git a/netbox/extras/scripts.py b/netbox/extras/scripts.py
index 96d08d8af48..f2bd75a1dc0 100644
--- a/netbox/extras/scripts.py
+++ b/netbox/extras/scripts.py
@@ -554,7 +554,7 @@ class BaseScript:
"""
Run the report and save its results. Each test method will be executed in order.
"""
- self.logger.info(f"Running report")
+ self.logger.info("Running report")
try:
for test_name in self.tests:
diff --git a/netbox/extras/tests/test_api.py b/netbox/extras/tests/test_api.py
index 5defbd0bdc2..63baf44d30e 100644
--- a/netbox/extras/tests/test_api.py
+++ b/netbox/extras/tests/test_api.py
@@ -12,7 +12,6 @@ from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Rack, Loca
from extras.choices import *
from extras.models import *
from extras.scripts import BooleanVar, IntegerVar, Script as PythonClass, StringVar
-from netbox.events import *
from users.models import Group, User
from utilities.testing import APITestCase, APIViewTestCases
@@ -244,9 +243,18 @@ class CustomFieldChoiceSetTest(APIViewTestCases.APIViewTestCase):
@classmethod
def setUpTestData(cls):
choice_sets = (
- CustomFieldChoiceSet(name='Choice Set 1', extra_choices=['1A', '1B', '1C', '1D', '1E']),
- CustomFieldChoiceSet(name='Choice Set 2', extra_choices=['2A', '2B', '2C', '2D', '2E']),
- CustomFieldChoiceSet(name='Choice Set 3', extra_choices=['3A', '3B', '3C', '3D', '3E']),
+ CustomFieldChoiceSet(
+ name='Choice Set 1',
+ extra_choices=[['1A', '1A'], ['1B', '1B'], ['1C', '1C'], ['1D', '1D'], ['1E', '1E']],
+ ),
+ CustomFieldChoiceSet(
+ name='Choice Set 2',
+ extra_choices=[['2A', '2A'], ['2B', '2B'], ['2C', '2C'], ['2D', '2D'], ['2E', '2E']],
+ ),
+ CustomFieldChoiceSet(
+ name='Choice Set 3',
+ extra_choices=[['3A', '3A'], ['3B', '3B'], ['3C', '3C'], ['3D', '3D'], ['3E', '3E']],
+ ),
)
CustomFieldChoiceSet.objects.bulk_create(choice_sets)
@@ -784,7 +792,6 @@ class ScriptTest(APITestCase):
super().setUp()
# Monkey-patch the Script model to return our TestScriptClass above
- from extras.api.views import ScriptViewSet
Script.python_class = self.python_class
def test_get_script(self):
diff --git a/netbox/extras/tests/test_customvalidators.py b/netbox/extras/tests/test_customvalidators.py
index 49deb9da5e1..9f85b4913d0 100644
--- a/netbox/extras/tests/test_customvalidators.py
+++ b/netbox/extras/tests/test_customvalidators.py
@@ -162,7 +162,7 @@ class CustomValidatorTest(TestCase):
Site(name='abcdef123', slug='abcdef123').clean()
@override_settings(CUSTOM_VALIDATORS={'dcim.site': [region_validator]})
- def test_valid(self):
+ def test_related_object(self):
region1 = Region(name='Foo', slug='foo')
region1.save()
region2 = Region(name='Bar', slug='bar')
diff --git a/netbox/extras/tests/test_models.py b/netbox/extras/tests/test_models.py
index c92a1bc548a..188a06a3f29 100644
--- a/netbox/extras/tests/test_models.py
+++ b/netbox/extras/tests/test_models.py
@@ -49,11 +49,11 @@ class ConfigContextTest(TestCase):
sitegroup = SiteGroup.objects.create(name='Site Group')
site = Site.objects.create(name='Site 1', slug='site-1', region=region, group=sitegroup)
location = Location.objects.create(name='Location 1', slug='location-1', site=site)
- platform = Platform.objects.create(name='Platform')
+ Platform.objects.create(name='Platform')
tenantgroup = TenantGroup.objects.create(name='Tenant Group')
- tenant = Tenant.objects.create(name='Tenant', group=tenantgroup)
- tag1 = Tag.objects.create(name='Tag', slug='tag')
- tag2 = Tag.objects.create(name='Tag2', slug='tag2')
+ Tenant.objects.create(name='Tenant', group=tenantgroup)
+ Tag.objects.create(name='Tag', slug='tag')
+ Tag.objects.create(name='Tag2', slug='tag2')
Device.objects.create(
name='Device 1',
diff --git a/netbox/extras/tests/test_views.py b/netbox/extras/tests/test_views.py
index 796d36180c1..5d82fae4ca8 100644
--- a/netbox/extras/tests/test_views.py
+++ b/netbox/extras/tests/test_views.py
@@ -417,7 +417,7 @@ class EventRulesTestCase(ViewTestCases.PrimaryObjectViewTestCase):
}
cls.csv_data = (
- f'name,object_types,event_types,action_type,action_object',
+ 'name,object_types,event_types,action_type,action_object',
f'Webhook 4,dcim.site,"{OBJECT_CREATED},{OBJECT_UPDATED}",webhook,Webhook 1',
)
diff --git a/netbox/extras/validators.py b/netbox/extras/validators.py
index 6823c19784f..306acf01bb8 100644
--- a/netbox/extras/validators.py
+++ b/netbox/extras/validators.py
@@ -1,4 +1,3 @@
-import inspect
import operator
from django.core import validators
diff --git a/netbox/extras/views.py b/netbox/extras/views.py
index b3d942fd8e0..3218422605c 100644
--- a/netbox/extras/views.py
+++ b/netbox/extras/views.py
@@ -6,8 +6,8 @@ from django.db.models import Count, Q
from django.http import HttpResponseBadRequest, HttpResponseForbidden, HttpResponse
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
-from django.utils.module_loading import import_string
from django.utils import timezone
+from django.utils.module_loading import import_string
from django.utils.translation import gettext as _
from django.views.generic import View
@@ -20,7 +20,6 @@ from extras.choices import LogLevelChoices
from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm
from extras.dashboard.utils import get_widget_class
from netbox.constants import DEFAULT_ACTION_PERMISSIONS
-from netbox.registry import registry
from netbox.views import generic
from netbox.views.generic.mixins import TableMixin
from utilities.forms import ConfirmationForm, get_field_value
diff --git a/netbox/ipam/api/nested_serializers.py b/netbox/ipam/api/nested_serializers.py
index 57a1a65d535..8b10f29dfa1 100644
--- a/netbox/ipam/api/nested_serializers.py
+++ b/netbox/ipam/api/nested_serializers.py
@@ -30,7 +30,7 @@ __all__ = [
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/ipam/api/serializers_/roles.py b/netbox/ipam/api/serializers_/roles.py
index 9a97a8570e4..99fd6f4705a 100644
--- a/netbox/ipam/api/serializers_/roles.py
+++ b/netbox/ipam/api/serializers_/roles.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from ipam.models import Role
from netbox.api.fields import RelatedObjectCountField
from netbox.api.serializers import NetBoxModelSerializer
diff --git a/netbox/ipam/api/serializers_/services.py b/netbox/ipam/api/serializers_/services.py
index e0b2014f622..61b330d012b 100644
--- a/netbox/ipam/api/serializers_/services.py
+++ b/netbox/ipam/api/serializers_/services.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from dcim.api.serializers_.devices import DeviceSerializer
from ipam.choices import *
from ipam.models import IPAddress, Service, ServiceTemplate
diff --git a/netbox/ipam/api/serializers_/vrfs.py b/netbox/ipam/api/serializers_/vrfs.py
index ad54dc09557..a23909108c1 100644
--- a/netbox/ipam/api/serializers_/vrfs.py
+++ b/netbox/ipam/api/serializers_/vrfs.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from ipam.models import RouteTarget, VRF
from netbox.api.fields import RelatedObjectCountField, SerializedPKRelatedField
from netbox.api.serializers import NetBoxModelSerializer
diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py
index cac90bb873e..ffd4d5b7de1 100644
--- a/netbox/ipam/api/views.py
+++ b/netbox/ipam/api/views.py
@@ -186,13 +186,13 @@ class AvailableObjectsView(ObjectValidationMixin, APIView):
"""
Return the parent object.
"""
- raise NotImplemented()
+ raise NotImplementedError()
def get_available_objects(self, parent, limit=None):
"""
Return all available objects for the parent.
"""
- raise NotImplemented()
+ raise NotImplementedError()
def get_extra_context(self, parent):
"""
@@ -250,7 +250,7 @@ class AvailableObjectsView(ObjectValidationMixin, APIView):
# Determine if the requested number of objects is available
if not self.check_sufficient_available(serializer.validated_data, available_objects):
return Response(
- {"detail": f"Insufficient resources are available to satisfy the request"},
+ {"detail": "Insufficient resources are available to satisfy the request"},
status=status.HTTP_409_CONFLICT
)
diff --git a/netbox/ipam/apps.py b/netbox/ipam/apps.py
index 244ec7d6d0e..c118d5464fd 100644
--- a/netbox/ipam/apps.py
+++ b/netbox/ipam/apps.py
@@ -7,7 +7,7 @@ class IPAMConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
- from . import signals, search
+ from . import signals, search # noqa: F401
# Register models
register_models(*self.get_models())
diff --git a/netbox/ipam/filtersets.py b/netbox/ipam/filtersets.py
index f98f510e570..894219c646a 100644
--- a/netbox/ipam/filtersets.py
+++ b/netbox/ipam/filtersets.py
@@ -1035,6 +1035,16 @@ class VLANFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
to_field_name='identifier',
label=_('L2VPN'),
)
+ interface_id = django_filters.ModelChoiceFilter(
+ queryset=Interface.objects.all(),
+ method='filter_interface_id',
+ label=_('Assigned interface')
+ )
+ vminterface_id = django_filters.ModelChoiceFilter(
+ queryset=VMInterface.objects.all(),
+ method='filter_vminterface_id',
+ label=_('Assigned VM interface')
+ )
class Meta:
model = VLAN
@@ -1062,6 +1072,22 @@ class VLANFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
def get_for_virtualmachine(self, queryset, name, value):
return queryset.get_for_virtualmachine(value)
+ def filter_interface_id(self, queryset, name, value):
+ if value is None:
+ return queryset.none()
+ return queryset.filter(
+ Q(interfaces_as_tagged=value) |
+ Q(interfaces_as_untagged=value)
+ )
+
+ def filter_vminterface_id(self, queryset, name, value):
+ if value is None:
+ return queryset.none()
+ return queryset.filter(
+ Q(vminterfaces_as_tagged=value) |
+ Q(vminterfaces_as_untagged=value)
+ )
+
class ServiceTemplateFilterSet(NetBoxModelFilterSet):
port = NumericArrayFilter(
diff --git a/netbox/ipam/graphql/mixins.py b/netbox/ipam/graphql/mixins.py
index 73cc60ec413..692741871f8 100644
--- a/netbox/ipam/graphql/mixins.py
+++ b/netbox/ipam/graphql/mixins.py
@@ -1,7 +1,6 @@
from typing import Annotated, List
import strawberry
-import strawberry_django
__all__ = (
'IPAddressesMixin',
@@ -11,9 +10,9 @@ __all__ = (
@strawberry.type
class IPAddressesMixin:
- ip_addresses: List[Annotated["IPAddressType", strawberry.lazy('ipam.graphql.types')]]
+ ip_addresses: List[Annotated["IPAddressType", strawberry.lazy('ipam.graphql.types')]] # noqa: F821
@strawberry.type
class VLANGroupsMixin:
- vlan_groups: List[Annotated["VLANGroupType", strawberry.lazy('ipam.graphql.types')]]
+ vlan_groups: List[Annotated["VLANGroupType", strawberry.lazy('ipam.graphql.types')]] # noqa: F821
diff --git a/netbox/ipam/tests/test_api.py b/netbox/ipam/tests/test_api.py
index 59335cbbe50..1d2cdf1b714 100644
--- a/netbox/ipam/tests/test_api.py
+++ b/netbox/ipam/tests/test_api.py
@@ -700,8 +700,6 @@ class IPAddressTest(APIViewTestCases.APIViewTestCase):
device1.primary_ip4 = ip_addresses[0]
device1.save()
- ip2 = ip_addresses[1]
-
url = reverse('ipam-api:ipaddress-detail', kwargs={'pk': ip1.pk})
self.add_permissions('ipam.change_ipaddress')
diff --git a/netbox/ipam/tests/test_filtersets.py b/netbox/ipam/tests/test_filtersets.py
index e149c0a8d72..4e38b14503b 100644
--- a/netbox/ipam/tests/test_filtersets.py
+++ b/netbox/ipam/tests/test_filtersets.py
@@ -1658,6 +1658,13 @@ class VLANTestCase(TestCase, ChangeLoggedFilterSetTests):
)
Device.objects.bulk_create(devices)
+ interfaces = (
+ Interface(device=devices[0], name='Interface 1', type=InterfaceTypeChoices.TYPE_1GE_FIXED),
+ Interface(device=devices[1], name='Interface 2', type=InterfaceTypeChoices.TYPE_1GE_FIXED),
+ Interface(device=devices[2], name='Interface 3', type=InterfaceTypeChoices.TYPE_1GE_FIXED),
+ )
+ Interface.objects.bulk_create(interfaces)
+
cluster_groups = (
ClusterGroup(name='Cluster Group 1', slug='cluster-group-1'),
ClusterGroup(name='Cluster Group 2', slug='cluster-group-2'),
@@ -1680,6 +1687,13 @@ class VLANTestCase(TestCase, ChangeLoggedFilterSetTests):
)
VirtualMachine.objects.bulk_create(virtual_machines)
+ vm_interfaces = (
+ VMInterface(virtual_machine=virtual_machines[0], name='VM Interface 1'),
+ VMInterface(virtual_machine=virtual_machines[1], name='VM Interface 2'),
+ VMInterface(virtual_machine=virtual_machines[2], name='VM Interface 3'),
+ )
+ VMInterface.objects.bulk_create(vm_interfaces)
+
groups = (
# Scoped VLAN groups
VLANGroup(name='Region 1', slug='region-1', scope=regions[0]),
@@ -1773,6 +1787,22 @@ class VLANTestCase(TestCase, ChangeLoggedFilterSetTests):
)
VLAN.objects.bulk_create(vlans)
+ # Assign VLANs to device interfaces
+ interfaces[0].untagged_vlan = vlans[0]
+ interfaces[0].tagged_vlans.add(vlans[1])
+ interfaces[1].untagged_vlan = vlans[2]
+ interfaces[1].tagged_vlans.add(vlans[3])
+ interfaces[2].untagged_vlan = vlans[4]
+ interfaces[2].tagged_vlans.add(vlans[5])
+
+ # Assign VLANs to VM interfaces
+ vm_interfaces[0].untagged_vlan = vlans[0]
+ vm_interfaces[0].tagged_vlans.add(vlans[1])
+ vm_interfaces[1].untagged_vlan = vlans[2]
+ vm_interfaces[1].tagged_vlans.add(vlans[3])
+ vm_interfaces[2].untagged_vlan = vlans[4]
+ vm_interfaces[2].tagged_vlans.add(vlans[5])
+
def test_q(self):
params = {'q': 'foobar1'}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
@@ -1857,6 +1887,16 @@ class VLANTestCase(TestCase, ChangeLoggedFilterSetTests):
params = {'available_at_site': site_id}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5) # 4 scoped + 1 global group + 1 global
+ def test_interface(self):
+ interface_id = Interface.objects.first().pk
+ params = {'interface_id': interface_id}
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
+
+ def test_vminterface(self):
+ vminterface_id = VMInterface.objects.first().pk
+ params = {'vminterface_id': vminterface_id}
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
+
class ServiceTemplateTestCase(TestCase, ChangeLoggedFilterSetTests):
queryset = ServiceTemplate.objects.all()
diff --git a/netbox/ipam/tests/test_views.py b/netbox/ipam/tests/test_views.py
index 2acb80ac123..95b31187886 100644
--- a/netbox/ipam/tests/test_views.py
+++ b/netbox/ipam/tests/test_views.py
@@ -50,7 +50,7 @@ class ASNRangeTestCase(ViewTestCases.PrimaryObjectViewTestCase):
}
cls.csv_data = (
- f"name,slug,rir,tenant,start,end,description",
+ "name,slug,rir,tenant,start,end,description",
f"ASN Range 4,asn-range-4,{rirs[1].name},{tenants[1].name},400,499,Fourth range",
f"ASN Range 5,asn-range-5,{rirs[1].name},{tenants[1].name},500,599,Fifth range",
f"ASN Range 6,asn-range-6,{rirs[1].name},{tenants[1].name},600,699,Sixth range",
@@ -770,14 +770,14 @@ class VLANGroupTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
}
cls.csv_data = (
- f"name,slug,scope_type,scope_id,description",
- f"VLAN Group 4,vlan-group-4,,,Fourth VLAN group",
+ "name,slug,scope_type,scope_id,description",
+ "VLAN Group 4,vlan-group-4,,,Fourth VLAN group",
f"VLAN Group 5,vlan-group-5,dcim.site,{sites[0].pk},Fifth VLAN group",
f"VLAN Group 6,vlan-group-6,dcim.site,{sites[1].pk},Sixth VLAN group",
)
cls.csv_update_data = (
- f"id,name,description",
+ "id,name,description",
f"{vlan_groups[0].pk},VLAN Group 7,Fourth VLAN group7",
f"{vlan_groups[1].pk},VLAN Group 8,Fifth VLAN group8",
f"{vlan_groups[2].pk},VLAN Group 9,Sixth VLAN group9",
diff --git a/netbox/netbox/api/serializers/nested.py b/netbox/netbox/api/serializers/nested.py
index 04033c71faa..4a5fc621452 100644
--- a/netbox/netbox/api/serializers/nested.py
+++ b/netbox/netbox/api/serializers/nested.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from extras.models import Tag
from utilities.api import get_related_object_by_attrs
from .base import BaseModelSerializer
diff --git a/netbox/netbox/authentication/__init__.py b/netbox/netbox/authentication/__init__.py
index 7394f6ded44..f80454f9998 100644
--- a/netbox/netbox/authentication/__init__.py
+++ b/netbox/netbox/authentication/__init__.py
@@ -20,10 +20,10 @@ AUTH_BACKEND_ATTRS = {
'amazon': ('Amazon AWS', 'aws'),
'apple': ('Apple', 'apple'),
'auth0': ('Auth0', None),
- 'azuread-oauth2': ('Microsoft Azure AD', 'microsoft'),
- 'azuread-b2c-oauth2': ('Microsoft Azure AD', 'microsoft'),
- 'azuread-tenant-oauth2': ('Microsoft Azure AD', 'microsoft'),
- 'azuread-v2-tenant-oauth2': ('Microsoft Azure AD', 'microsoft'),
+ 'entraid-oauth2': ('Microsoft Entra ID', 'microsoft'),
+ 'entraid-b2c-oauth2': ('Microsoft Entra ID', 'microsoft'),
+ 'entraid-tenant-oauth2': ('Microsoft Entra ID', 'microsoft'),
+ 'entraid-v2-tenant-oauth2': ('Microsoft Entra ID', 'microsoft'),
'bitbucket': ('BitBucket', 'bitbucket'),
'bitbucket-oauth2': ('BitBucket', 'bitbucket'),
'digitalocean': ('DigitalOcean', 'digital-ocean'),
diff --git a/netbox/netbox/config/__init__.py b/netbox/netbox/config/__init__.py
index 1c16d6769a9..23108f1d28c 100644
--- a/netbox/netbox/config/__init__.py
+++ b/netbox/netbox/config/__init__.py
@@ -85,7 +85,7 @@ class Config:
logger.debug("Loaded configuration data from database")
except DatabaseError:
# The database may not be available yet (e.g. when running a management command)
- logger.warning(f"Skipping config initialization (database unavailable)")
+ logger.warning("Skipping config initialization (database unavailable)")
return
revision.activate()
diff --git a/netbox/netbox/data_backends.py b/netbox/netbox/data_backends.py
index d5bab75c1a8..e3a3de4d17f 100644
--- a/netbox/netbox/data_backends.py
+++ b/netbox/netbox/data_backends.py
@@ -50,4 +50,4 @@ class DataBackend:
2. Yields the local path at which data has been replicated
3. Performs any necessary cleanup
"""
- raise NotImplemented()
+ raise NotImplementedError()
diff --git a/netbox/netbox/filtersets.py b/netbox/netbox/filtersets.py
index e3bd332983c..637a40bf114 100644
--- a/netbox/netbox/filtersets.py
+++ b/netbox/netbox/filtersets.py
@@ -180,9 +180,11 @@ class BaseFilterSet(django_filters.FilterSet):
# create the new filter with the same type because there is no guarantee the defined type
# is the same as the default type for the field
resolve_field(field, lookup_expr) # Will raise FieldLookupError if the lookup is invalid
- for field_to_remove in ('choices', 'null_value'):
- existing_filter_extra.pop(field_to_remove, None)
- filter_cls = django_filters.BooleanFilter if lookup_expr == 'empty' else type(existing_filter)
+ filter_cls = type(existing_filter)
+ if lookup_expr == 'empty':
+ filter_cls = django_filters.BooleanFilter
+ for param_to_remove in ('choices', 'null_value'):
+ existing_filter_extra.pop(param_to_remove, None)
new_filter = filter_cls(
field_name=field_name,
lookup_expr=lookup_expr,
diff --git a/netbox/netbox/graphql/filter_mixins.py b/netbox/netbox/graphql/filter_mixins.py
index 65c7ffcef5a..2044a1ddeeb 100644
--- a/netbox/netbox/graphql/filter_mixins.py
+++ b/netbox/netbox/graphql/filter_mixins.py
@@ -1,11 +1,12 @@
-from functools import partial, partialmethod, wraps
+from functools import partialmethod
from typing import List
import django_filters
import strawberry
import strawberry_django
-from django.core.exceptions import FieldDoesNotExist, ValidationError
+from django.core.exceptions import FieldDoesNotExist
from strawberry import auto
+
from ipam.fields import ASNField
from netbox.graphql.scalars import BigInt
from utilities.fields import ColorField, CounterCacheField
@@ -108,8 +109,7 @@ def map_strawberry_type(field):
elif issubclass(type(field), django_filters.TypedMultipleChoiceFilter):
pass
elif issubclass(type(field), django_filters.MultipleChoiceFilter):
- should_create_function = True
- attr_type = List[str] | None
+ attr_type = str | None
elif issubclass(type(field), django_filters.TypedChoiceFilter):
pass
elif issubclass(type(field), django_filters.ChoiceFilter):
diff --git a/netbox/netbox/graphql/views.py b/netbox/netbox/graphql/views.py
index b347d71b42a..85a01f02501 100644
--- a/netbox/netbox/graphql/views.py
+++ b/netbox/netbox/graphql/views.py
@@ -1,10 +1,6 @@
-import json
-
from django.conf import settings
from django.contrib.auth.views import redirect_to_login
from django.http import HttpResponseNotFound, HttpResponseForbidden
-from django.http import HttpResponse
-from django.template import loader
from django.urls import reverse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.exceptions import AuthenticationFailed
@@ -46,9 +42,3 @@ class NetBoxGraphQLView(GraphQLView):
return HttpResponseForbidden("No credentials provided.")
return super().dispatch(request, *args, **kwargs)
-
- def render_graphql_ide(self, request):
- template = loader.get_template("graphiql.html")
- context = {"SUBSCRIPTION_ENABLED": json.dumps(self.subscriptions_enabled)}
-
- return HttpResponse(template.render(context, request))
diff --git a/netbox/netbox/navigation/menu.py b/netbox/netbox/navigation/menu.py
index a1d65d6e226..9d8ffaaf897 100644
--- a/netbox/netbox/navigation/menu.py
+++ b/netbox/netbox/navigation/menu.py
@@ -386,57 +386,57 @@ ADMIN_MENU = Menu(
label=_('Authentication'),
items=(
MenuItem(
- link=f'users:user_list',
+ link='users:user_list',
link_text=_('Users'),
auth_required=True,
- permissions=[f'users.view_user'],
+ permissions=['users.view_user'],
buttons=(
MenuItemButton(
- link=f'users:user_add',
+ link='users:user_add',
title='Add',
icon_class='mdi mdi-plus-thick',
- permissions=[f'users.add_user']
+ permissions=['users.add_user']
),
MenuItemButton(
- link=f'users:user_import',
+ link='users:user_import',
title='Import',
icon_class='mdi mdi-upload',
- permissions=[f'users.add_user']
+ permissions=['users.add_user']
)
)
),
MenuItem(
- link=f'users:group_list',
+ link='users:group_list',
link_text=_('Groups'),
auth_required=True,
- permissions=[f'users.view_group'],
+ permissions=['users.view_group'],
buttons=(
MenuItemButton(
- link=f'users:group_add',
+ link='users:group_add',
title='Add',
icon_class='mdi mdi-plus-thick',
- permissions=[f'users.add_group']
+ permissions=['users.add_group']
),
MenuItemButton(
- link=f'users:group_import',
+ link='users:group_import',
title='Import',
icon_class='mdi mdi-upload',
- permissions=[f'users.add_group']
+ permissions=['users.add_group']
)
)
),
MenuItem(
- link=f'users:token_list',
+ link='users:token_list',
link_text=_('API Tokens'),
auth_required=True,
- permissions=[f'users.view_token'],
+ permissions=['users.view_token'],
buttons=get_model_buttons('users', 'token')
),
MenuItem(
- link=f'users:objectpermission_list',
+ link='users:objectpermission_list',
link_text=_('Permissions'),
auth_required=True,
- permissions=[f'users.view_objectpermission'],
+ permissions=['users.view_objectpermission'],
buttons=get_model_buttons('users', 'objectpermission', actions=['add'])
),
),
diff --git a/netbox/netbox/plugins/urls.py b/netbox/netbox/plugins/urls.py
index 075bda81182..deb20732fb8 100644
--- a/netbox/netbox/plugins/urls.py
+++ b/netbox/netbox/plugins/urls.py
@@ -3,7 +3,6 @@ from importlib import import_module
from django.apps import apps
from django.conf import settings
from django.conf.urls import include
-from django.contrib.admin.views.decorators import staff_member_required
from django.urls import path
from django.utils.module_loading import import_string, module_has_submodule
diff --git a/netbox/netbox/plugins/views.py b/netbox/netbox/plugins/views.py
index 777a4c69e4d..6a10f2e2c0e 100644
--- a/netbox/netbox/plugins/views.py
+++ b/netbox/netbox/plugins/views.py
@@ -2,9 +2,7 @@ from collections import OrderedDict
from django.apps import apps
from django.conf import settings
-from django.shortcuts import render
from django.urls.exceptions import NoReverseMatch
-from django.views.generic import View
from drf_spectacular.utils import extend_schema
from rest_framework import permissions
from rest_framework.response import Response
diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py
index 358f41ff883..a8ac68d4dc2 100644
--- a/netbox/netbox/settings.py
+++ b/netbox/netbox/settings.py
@@ -5,14 +5,12 @@ import os
import platform
import sys
import warnings
-from urllib.parse import urlencode, urlsplit
+from urllib.parse import urlencode
-import django
import requests
from django.contrib.messages import constants as messages
from django.core.exceptions import ImproperlyConfigured, ValidationError
from django.core.validators import URLValidator
-from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from netbox.config import PARAMS as CONFIG_PARAMS
@@ -200,7 +198,7 @@ if len(SECRET_KEY) < 50:
if RELEASE_CHECK_URL:
try:
URLValidator()(RELEASE_CHECK_URL)
- except ValidationError as e:
+ except ValidationError:
raise ImproperlyConfigured(
"RELEASE_CHECK_URL must be a valid URL. Example: https://api.github.com/repos/netbox-community/netbox"
)
@@ -252,7 +250,7 @@ if STORAGE_BACKEND is not None:
# django-storage-swift
elif STORAGE_BACKEND == 'swift.storage.SwiftStorage':
try:
- import swift.utils # type: ignore
+ import swift.utils # noqa: F401
except ModuleNotFoundError as e:
if getattr(e, 'name') == 'swift':
raise ImproperlyConfigured(
diff --git a/netbox/netbox/staging.py b/netbox/netbox/staging.py
index 4d37fb7ada4..e6b94640302 100644
--- a/netbox/netbox/staging.py
+++ b/netbox/netbox/staging.py
@@ -80,7 +80,7 @@ class checkout:
Create Change instances for all actions stored in the queue.
"""
if not self.queue:
- logger.debug(f"No queued changes; aborting")
+ logger.debug("No queued changes; aborting")
return
logger.debug(f"Processing {len(self.queue)} queued changes")
diff --git a/netbox/netbox/tests/dummy_plugin/views.py b/netbox/netbox/tests/dummy_plugin/views.py
index f6cf6a5c5c2..82f250fc1eb 100644
--- a/netbox/netbox/tests/dummy_plugin/views.py
+++ b/netbox/netbox/tests/dummy_plugin/views.py
@@ -8,7 +8,7 @@ from dcim.models import Site
from utilities.views import register_model_view
from .models import DummyModel
# Trigger registration of custom column
-from .tables import mycol
+from .tables import mycol # noqa: F401
class DummyModelsView(View):
@@ -21,7 +21,7 @@ class DummyModelsView(View):
class DummyModelAddView(View):
def get(self, request):
- return HttpResponse(f"Create an instance")
+ return HttpResponse("Create an instance")
def post(self, request):
instance = DummyModel(
@@ -29,7 +29,7 @@ class DummyModelAddView(View):
number=random.randint(1, 100000)
)
instance.save()
- return HttpResponse(f"Instance created")
+ return HttpResponse("Instance created")
@register_model_view(Site, 'extra', path='other-stuff')
diff --git a/netbox/netbox/tests/test_authentication.py b/netbox/netbox/tests/test_authentication.py
index 5c7a30dc777..ae6d3f4c299 100644
--- a/netbox/netbox/tests/test_authentication.py
+++ b/netbox/netbox/tests/test_authentication.py
@@ -106,7 +106,7 @@ class ExternalAuthenticationTestCase(TestCase):
self.assertEqual(settings.REMOTE_AUTH_HEADER, 'HTTP_REMOTE_USER')
# Client should not be authenticated
- response = self.client.get(reverse('home'), follow=True, **headers)
+ self.client.get(reverse('home'), follow=True, **headers)
self.assertNotIn('_auth_user_id', self.client.session)
@override_settings(
diff --git a/netbox/netbox/tests/test_graphql.py b/netbox/netbox/tests/test_graphql.py
index 34ea3ad6a20..b04d42d2447 100644
--- a/netbox/netbox/tests/test_graphql.py
+++ b/netbox/netbox/tests/test_graphql.py
@@ -5,8 +5,8 @@ from django.urls import reverse
from rest_framework import status
from core.models import ObjectType
+from dcim.choices import LocationStatusChoices
from dcim.models import Site, Location
-from ipam.models import ASN, RIR
from users.models import ObjectPermission
from utilities.testing import disable_warnings, APITestCase, TestCase
@@ -53,10 +53,27 @@ class GraphQLAPITestCase(APITestCase):
sites = (
Site(name='Site 1', slug='site-1'),
Site(name='Site 2', slug='site-2'),
+ Site(name='Site 3', slug='site-3'),
)
Site.objects.bulk_create(sites)
- Location.objects.create(site=sites[0], name='Location 1', slug='location-1'),
- Location.objects.create(site=sites[1], name='Location 2', slug='location-2'),
+ Location.objects.create(
+ site=sites[0],
+ name='Location 1',
+ slug='location-1',
+ status=LocationStatusChoices.STATUS_PLANNED
+ ),
+ Location.objects.create(
+ site=sites[1],
+ name='Location 2',
+ slug='location-2',
+ status=LocationStatusChoices.STATUS_STAGING
+ ),
+ Location.objects.create(
+ site=sites[1],
+ name='Location 3',
+ slug='location-3',
+ status=LocationStatusChoices.STATUS_ACTIVE
+ ),
# Add object-level permission
obj_perm = ObjectPermission(
@@ -68,8 +85,9 @@ class GraphQLAPITestCase(APITestCase):
obj_perm.object_types.add(ObjectType.objects.get_for_model(Location))
obj_perm.object_types.add(ObjectType.objects.get_for_model(Site))
- # A valid request should return the filtered list
url = reverse('graphql')
+
+ # A valid request should return the filtered list
query = '{location_list(filters: {site_id: "' + str(sites[0].pk) + '"}) {id site {id}}}'
response = self.client.post(url, data={'query': query}, format="json", **self.header)
self.assertHttpStatus(response, status.HTTP_200_OK)
@@ -78,6 +96,21 @@ class GraphQLAPITestCase(APITestCase):
self.assertEqual(len(data['data']['location_list']), 1)
self.assertIsNotNone(data['data']['location_list'][0]['site'])
+ # Test OR logic
+ query = """{
+ location_list( filters: {
+ status: \"""" + LocationStatusChoices.STATUS_PLANNED + """\",
+ OR: {status: \"""" + LocationStatusChoices.STATUS_STAGING + """\"}
+ }) {
+ id site {id}
+ }
+ }"""
+ response = self.client.post(url, data={'query': query}, format="json", **self.header)
+ self.assertHttpStatus(response, status.HTTP_200_OK)
+ data = json.loads(response.content)
+ self.assertNotIn('errors', data)
+ self.assertEqual(len(data['data']['location_list']), 2)
+
# An invalid request should return an empty list
query = '{location_list(filters: {site_id: "99999"}) {id site {id}}}' # Invalid site ID
response = self.client.post(url, data={'query': query}, format="json", **self.header)
diff --git a/netbox/netbox/tests/test_import.py b/netbox/netbox/tests/test_import.py
index 03690029c24..16711ef7268 100644
--- a/netbox/netbox/tests/test_import.py
+++ b/netbox/netbox/tests/test_import.py
@@ -77,7 +77,6 @@ class CSVImportTestCase(ModelViewTestCase):
self.assertHttpStatus(self.client.post(self._get_url('import'), data), 302)
regions = Region.objects.all()
self.assertEqual(regions.count(), 4)
- region = Region.objects.get(slug="region-4")
self.assertEqual(
list(regions[0].tags.values_list('name', flat=True)),
['Alpha', 'Bravo']
diff --git a/netbox/project-static/dist/netbox.css b/netbox/project-static/dist/netbox.css
index 93361c63a8b..fbad302ff47 100644
--- a/netbox/project-static/dist/netbox.css
+++ b/netbox/project-static/dist/netbox.css
@@ -1 +1 @@
-@charset "UTF-8";:root,[data-bs-theme=light]{--tblr-black: #000000;--tblr-white: #ffffff;--tblr-gray: #49566c;--tblr-gray-dark: #182433;--tblr-gray-100: #eef3f6;--tblr-gray-200: #dce1e7;--tblr-gray-300: #b8c4d4;--tblr-gray-400: #8a97ab;--tblr-gray-500: #6c7a91;--tblr-gray-600: #49566c;--tblr-gray-700: #3a4859;--tblr-gray-800: #182433;--tblr-gray-900: #040a11;--tblr-primary: #00857D;--tblr-secondary: #6c7a91;--tblr-success: #2fb344;--tblr-info: #4299e1;--tblr-warning: #f76707;--tblr-danger: #d63939;--tblr-light: #f6f8fb;--tblr-dark: #182433;--tblr-muted: #6c7a91;--tblr-blue: #066fd1;--tblr-azure: #4299e1;--tblr-indigo: #4263eb;--tblr-purple: #ae3ec9;--tblr-pink: #d6336c;--tblr-red: #d63939;--tblr-orange: #f76707;--tblr-yellow: #f59f00;--tblr-lime: #74b816;--tblr-green: #2fb344;--tblr-teal: #0ca678;--tblr-cyan: #17a2b8;--tblr-x: #000000;--tblr-facebook: #1877f2;--tblr-twitter: #1da1f2;--tblr-linkedin: #0a66c2;--tblr-google: #dc4e41;--tblr-youtube: #ff0000;--tblr-vimeo: #1ab7ea;--tblr-dribbble: #ea4c89;--tblr-github: #181717;--tblr-instagram: #e4405f;--tblr-pinterest: #bd081c;--tblr-vk: #6383a8;--tblr-rss: #ffa500;--tblr-flickr: #0063dc;--tblr-bitbucket: #0052cc;--tblr-tabler: #066fd1;--tblr-primary-rgb: 0, 133, 125;--tblr-secondary-rgb: 108, 122, 145;--tblr-success-rgb: 47, 179, 68;--tblr-info-rgb: 66, 153, 225;--tblr-warning-rgb: 247, 103, 7;--tblr-danger-rgb: 214, 57, 57;--tblr-light-rgb: 246, 248, 251;--tblr-dark-rgb: 24, 36, 51;--tblr-muted-rgb: 108, 122, 145;--tblr-blue-rgb: 6, 111, 209;--tblr-azure-rgb: 66, 153, 225;--tblr-indigo-rgb: 66, 99, 235;--tblr-purple-rgb: 174, 62, 201;--tblr-pink-rgb: 214, 51, 108;--tblr-red-rgb: 214, 57, 57;--tblr-orange-rgb: 247, 103, 7;--tblr-yellow-rgb: 245, 159, 0;--tblr-lime-rgb: 116, 184, 22;--tblr-green-rgb: 47, 179, 68;--tblr-teal-rgb: 12, 166, 120;--tblr-cyan-rgb: 23, 162, 184;--tblr-x-rgb: 0, 0, 0;--tblr-facebook-rgb: 24, 119, 242;--tblr-twitter-rgb: 29, 161, 242;--tblr-linkedin-rgb: 10, 102, 194;--tblr-google-rgb: 220, 78, 65;--tblr-youtube-rgb: 255, 0, 0;--tblr-vimeo-rgb: 26, 183, 234;--tblr-dribbble-rgb: 234, 76, 137;--tblr-github-rgb: 24, 23, 23;--tblr-instagram-rgb: 228, 64, 95;--tblr-pinterest-rgb: 189, 8, 28;--tblr-vk-rgb: 99, 131, 168;--tblr-rss-rgb: 255, 165, 0;--tblr-flickr-rgb: 0, 99, 220;--tblr-bitbucket-rgb: 0, 82, 204;--tblr-tabler-rgb: 6, 111, 209;--tblr-primary-text-emphasis: #003532;--tblr-secondary-text-emphasis: #2b313a;--tblr-success-text-emphasis: #13481b;--tblr-info-text-emphasis: #1a3d5a;--tblr-warning-text-emphasis: #632903;--tblr-danger-text-emphasis: #561717;--tblr-light-text-emphasis: #3a4859;--tblr-dark-text-emphasis: #3a4859;--tblr-primary-bg-subtle: #cce7e5;--tblr-secondary-bg-subtle: #e2e4e9;--tblr-success-bg-subtle: #d5f0da;--tblr-info-bg-subtle: #d9ebf9;--tblr-warning-bg-subtle: #fde1cd;--tblr-danger-bg-subtle: #f7d7d7;--tblr-light-bg-subtle: #f7f9fb;--tblr-dark-bg-subtle: #8a97ab;--tblr-primary-border-subtle: #99cecb;--tblr-secondary-border-subtle: #c4cad3;--tblr-success-border-subtle: #ace1b4;--tblr-info-border-subtle: #b3d6f3;--tblr-warning-border-subtle: #fcc29c;--tblr-danger-border-subtle: #efb0b0;--tblr-light-border-subtle: #dce1e7;--tblr-dark-border-subtle: #6c7a91;--tblr-white-rgb: 255, 255, 255;--tblr-black-rgb: 0, 0, 0;--tblr-font-sans-serif: "Inter", system-ui, sans-serif;--tblr-font-monospace: Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;--tblr-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--tblr-body-font-family: var(--tblr-font-sans-serif);--tblr-body-font-size: .875rem;--tblr-body-font-weight: 400;--tblr-body-line-height: 1.4285714286;--tblr-body-color: #182433;--tblr-body-color-rgb: 24, 36, 51;--tblr-body-bg: #f6f8fb;--tblr-body-bg-rgb: 246, 248, 251;--tblr-emphasis-color: #3a4859;--tblr-emphasis-color-rgb: 58, 72, 89;--tblr-secondary-color: rgba(24, 36, 51, .75);--tblr-secondary-color-rgb: 24, 36, 51;--tblr-secondary-bg: #dce1e7;--tblr-secondary-bg-rgb: 220, 225, 231;--tblr-tertiary-color: rgba(24, 36, 51, .5);--tblr-tertiary-color-rgb: 24, 36, 51;--tblr-tertiary-bg: #eef3f6;--tblr-tertiary-bg-rgb: 238, 243, 246;--tblr-heading-color: inherit;--tblr-link-color: #00857D;--tblr-link-color-rgb: 0, 133, 125;--tblr-link-decoration: none;--tblr-link-hover-color: #006a64;--tblr-link-hover-color-rgb: 0, 106, 100;--tblr-link-hover-decoration: underline;--tblr-code-color: var(--tblr-gray-600);--tblr-highlight-color: #182433;--tblr-highlight-bg: #fdeccc;--tblr-border-width: 1px;--tblr-border-style: solid;--tblr-border-color: #dce1e7;--tblr-border-color-translucent: rgba(4, 32, 69, .1);--tblr-border-radius: 4px;--tblr-border-radius-sm: 2px;--tblr-border-radius-lg: 8px;--tblr-border-radius-xl: 1rem;--tblr-border-radius-xxl: 2rem;--tblr-border-radius-2xl: var(--tblr-border-radius-xxl);--tblr-border-radius-pill: 100rem;--tblr-box-shadow: rgba(var(--tblr-body-color-rgb), .04) 0 2px 4px 0;--tblr-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--tblr-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--tblr-box-shadow-inset: 0 0 transparent;--tblr-focus-ring-width: .25rem;--tblr-focus-ring-opacity: .25;--tblr-focus-ring-color: rgba(var(--tblr-primary-rgb), .25);--tblr-form-valid-color: #2fb344;--tblr-form-valid-border-color: #2fb344;--tblr-form-invalid-color: #d63939;--tblr-form-invalid-border-color: #d63939}[data-bs-theme=dark],body[data-bs-theme=dark] [data-bs-theme=light]{color-scheme:dark;--tblr-body-color: #dce1e7;--tblr-body-color-rgb: 220, 225, 231;--tblr-body-bg: #040a11;--tblr-body-bg-rgb: 4, 10, 17;--tblr-emphasis-color: #ffffff;--tblr-emphasis-color-rgb: 255, 255, 255;--tblr-secondary-color: rgba(220, 225, 231, .75);--tblr-secondary-color-rgb: 220, 225, 231;--tblr-secondary-bg: #182433;--tblr-secondary-bg-rgb: 24, 36, 51;--tblr-tertiary-color: rgba(220, 225, 231, .5);--tblr-tertiary-color-rgb: 220, 225, 231;--tblr-tertiary-bg: #0e1722;--tblr-tertiary-bg-rgb: 14, 23, 34;--tblr-primary-text-emphasis: #66b6b1;--tblr-secondary-text-emphasis: #a7afbd;--tblr-success-text-emphasis: #82d18f;--tblr-info-text-emphasis: #8ec2ed;--tblr-warning-text-emphasis: #faa46a;--tblr-danger-text-emphasis: #e68888;--tblr-light-text-emphasis: #eef3f6;--tblr-dark-text-emphasis: #b8c4d4;--tblr-primary-bg-subtle: #001b19;--tblr-secondary-bg-subtle: #16181d;--tblr-success-bg-subtle: #09240e;--tblr-info-bg-subtle: #0d1f2d;--tblr-warning-bg-subtle: #311501;--tblr-danger-bg-subtle: #2b0b0b;--tblr-light-bg-subtle: #182433;--tblr-dark-bg-subtle: #0c121a;--tblr-primary-border-subtle: #00504b;--tblr-secondary-border-subtle: #414957;--tblr-success-border-subtle: #1c6b29;--tblr-info-border-subtle: #285c87;--tblr-warning-border-subtle: #943e04;--tblr-danger-border-subtle: #802222;--tblr-light-border-subtle: #3a4859;--tblr-dark-border-subtle: #182433;--tblr-heading-color: inherit;--tblr-link-color: #66b6b1;--tblr-link-hover-color: #85c5c1;--tblr-link-color-rgb: 102, 182, 177;--tblr-link-hover-color-rgb: 133, 197, 193;--tblr-code-color: var(--tblr-gray-300);--tblr-highlight-color: #dce1e7;--tblr-highlight-bg: #624000;--tblr-border-color: #25384f;--tblr-border-color-translucent: rgba(72, 110, 149, .14);--tblr-form-valid-color: #82d18f;--tblr-form-valid-border-color: #82d18f;--tblr-form-invalid-color: #e68888;--tblr-form-invalid-border-color: #e68888}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--tblr-body-font-family);font-size:var(--tblr-body-font-size);font-weight:var(--tblr-body-font-weight);line-height:var(--tblr-body-line-height);color:var(--tblr-body-color);text-align:var(--tblr-body-text-align);background-color:var(--tblr-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr,.hr{margin:2rem 0;color:inherit;border:0;border-top:var(--tblr-border-width) solid;opacity:.16}h6,.h6,h5,.h5,h4,.h4,h3,.field-group h2,.field-group .h2,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:var(--tblr-spacer);font-weight:var(--tblr-font-weight-bold);line-height:1.2;color:var(--tblr-heading-color)}h1,.h1{font-size:1.5rem}h2,.h2{font-size:1.25rem}h3,.field-group h2,.field-group .h2,.h3{font-size:1rem}h4,.h4{font-size:.875rem}h5,.h5{font-size:.75rem}h6,.h6{font-size:.625rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:85.714285%}mark,.mark{padding:.1875em;color:var(--tblr-highlight-color);background-color:var(--tblr-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--tblr-link-color-rgb),var(--tblr-link-opacity, 1));text-decoration:none}a:hover{--tblr-link-color-rgb: var(--tblr-link-hover-color-rgb);text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--tblr-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:85.714285%;color:var(--tblr-light)}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:85.714285%;color:var(--tblr-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.25rem .5rem;font-size:var(--tblr-font-size-h5);color:var(--tblr-text-secondary-dark);background-color:var(--tblr-code-bg);border-radius:2px}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--tblr-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:.875rem;font-weight:var(--tblr-font-weight-normal)}.display-1{font-size:5rem;font-weight:300;line-height:1.2}.display-2{font-size:4.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}.display-5{font-size:3rem;font-weight:300;line-height:1.2}.display-6{font-size:2rem;font-weight:300;line-height:1.2}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:85.714285%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:.875rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:85.714285%;color:#49566c}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--tblr-body-bg);border:var(--tblr-border-width) solid var(--tblr-border-color);border-radius:var(--tblr-border-radius);box-shadow:var(--tblr-box-shadow-sm);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:85.714285%;color:var(--tblr-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--tblr-gutter-x: calc(var(--tblr-page-padding) * 2);--tblr-gutter-y: 0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--tblr-breakpoint-xs: 0;--tblr-breakpoint-sm: 576px;--tblr-breakpoint-md: 768px;--tblr-breakpoint-lg: 992px;--tblr-breakpoint-xl: 1200px;--tblr-breakpoint-xxl: 1400px}.row{--tblr-gutter-x: var(--tblr-page-padding);--tblr-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--tblr-gutter-y));margin-right:calc(-.5 * var(--tblr-gutter-x));margin-left:calc(-.5 * var(--tblr-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-top:var(--tblr-gutter-y)}.grid{display:grid;grid-template-rows:repeat(var(--tblr-rows, 1),1fr);grid-template-columns:repeat(var(--tblr-columns, 12),1fr);gap:var(--tblr-gap, var(--tblr-page-padding))}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media (min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media (min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media (min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media (min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media (min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--tblr-gutter-x: 0}.g-0,.gy-0{--tblr-gutter-y: 0}.g-1,.gx-1{--tblr-gutter-x: .25rem}.g-1,.gy-1{--tblr-gutter-y: .25rem}.g-2,.gx-2{--tblr-gutter-x: .5rem}.g-2,.gy-2{--tblr-gutter-y: .5rem}.g-3,.gx-3{--tblr-gutter-x: 1rem}.g-3,.gy-3{--tblr-gutter-y: 1rem}.g-4,.gx-4{--tblr-gutter-x: 1.5rem}.g-4,.gy-4{--tblr-gutter-y: 1.5rem}.g-5,.gx-5{--tblr-gutter-x: 2rem}.g-5,.gy-5{--tblr-gutter-y: 2rem}.g-6,.gx-6{--tblr-gutter-x: 3rem}.g-6,.gy-6{--tblr-gutter-y: 3rem}.g-7,.gx-7{--tblr-gutter-x: 5rem}.g-7,.gy-7{--tblr-gutter-y: 5rem}.g-8,.gx-8{--tblr-gutter-x: 8rem}.g-8,.gy-8{--tblr-gutter-y: 8rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--tblr-gutter-x: 0}.g-sm-0,.gy-sm-0{--tblr-gutter-y: 0}.g-sm-1,.gx-sm-1{--tblr-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--tblr-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--tblr-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--tblr-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--tblr-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--tblr-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--tblr-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--tblr-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--tblr-gutter-x: 2rem}.g-sm-5,.gy-sm-5{--tblr-gutter-y: 2rem}.g-sm-6,.gx-sm-6{--tblr-gutter-x: 3rem}.g-sm-6,.gy-sm-6{--tblr-gutter-y: 3rem}.g-sm-7,.gx-sm-7{--tblr-gutter-x: 5rem}.g-sm-7,.gy-sm-7{--tblr-gutter-y: 5rem}.g-sm-8,.gx-sm-8{--tblr-gutter-x: 8rem}.g-sm-8,.gy-sm-8{--tblr-gutter-y: 8rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--tblr-gutter-x: 0}.g-md-0,.gy-md-0{--tblr-gutter-y: 0}.g-md-1,.gx-md-1{--tblr-gutter-x: .25rem}.g-md-1,.gy-md-1{--tblr-gutter-y: .25rem}.g-md-2,.gx-md-2{--tblr-gutter-x: .5rem}.g-md-2,.gy-md-2{--tblr-gutter-y: .5rem}.g-md-3,.gx-md-3{--tblr-gutter-x: 1rem}.g-md-3,.gy-md-3{--tblr-gutter-y: 1rem}.g-md-4,.gx-md-4{--tblr-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--tblr-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--tblr-gutter-x: 2rem}.g-md-5,.gy-md-5{--tblr-gutter-y: 2rem}.g-md-6,.gx-md-6{--tblr-gutter-x: 3rem}.g-md-6,.gy-md-6{--tblr-gutter-y: 3rem}.g-md-7,.gx-md-7{--tblr-gutter-x: 5rem}.g-md-7,.gy-md-7{--tblr-gutter-y: 5rem}.g-md-8,.gx-md-8{--tblr-gutter-x: 8rem}.g-md-8,.gy-md-8{--tblr-gutter-y: 8rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--tblr-gutter-x: 0}.g-lg-0,.gy-lg-0{--tblr-gutter-y: 0}.g-lg-1,.gx-lg-1{--tblr-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--tblr-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--tblr-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--tblr-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--tblr-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--tblr-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--tblr-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--tblr-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--tblr-gutter-x: 2rem}.g-lg-5,.gy-lg-5{--tblr-gutter-y: 2rem}.g-lg-6,.gx-lg-6{--tblr-gutter-x: 3rem}.g-lg-6,.gy-lg-6{--tblr-gutter-y: 3rem}.g-lg-7,.gx-lg-7{--tblr-gutter-x: 5rem}.g-lg-7,.gy-lg-7{--tblr-gutter-y: 5rem}.g-lg-8,.gx-lg-8{--tblr-gutter-x: 8rem}.g-lg-8,.gy-lg-8{--tblr-gutter-y: 8rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--tblr-gutter-x: 0}.g-xl-0,.gy-xl-0{--tblr-gutter-y: 0}.g-xl-1,.gx-xl-1{--tblr-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--tblr-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--tblr-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--tblr-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--tblr-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--tblr-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--tblr-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--tblr-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--tblr-gutter-x: 2rem}.g-xl-5,.gy-xl-5{--tblr-gutter-y: 2rem}.g-xl-6,.gx-xl-6{--tblr-gutter-x: 3rem}.g-xl-6,.gy-xl-6{--tblr-gutter-y: 3rem}.g-xl-7,.gx-xl-7{--tblr-gutter-x: 5rem}.g-xl-7,.gy-xl-7{--tblr-gutter-y: 5rem}.g-xl-8,.gx-xl-8{--tblr-gutter-x: 8rem}.g-xl-8,.gy-xl-8{--tblr-gutter-y: 8rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--tblr-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--tblr-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--tblr-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--tblr-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--tblr-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--tblr-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--tblr-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--tblr-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--tblr-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--tblr-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--tblr-gutter-x: 2rem}.g-xxl-5,.gy-xxl-5{--tblr-gutter-y: 2rem}.g-xxl-6,.gx-xxl-6{--tblr-gutter-x: 3rem}.g-xxl-6,.gy-xxl-6{--tblr-gutter-y: 3rem}.g-xxl-7,.gx-xxl-7{--tblr-gutter-x: 5rem}.g-xxl-7,.gy-xxl-7{--tblr-gutter-y: 5rem}.g-xxl-8,.gx-xxl-8{--tblr-gutter-x: 8rem}.g-xxl-8,.gy-xxl-8{--tblr-gutter-y: 8rem}}.table,.markdown>table{--tblr-table-color-type: initial;--tblr-table-bg-type: initial;--tblr-table-color-state: initial;--tblr-table-bg-state: initial;--tblr-table-color: inherit;--tblr-table-bg: transparent;--tblr-table-border-color: var(--tblr-border-color-translucent);--tblr-table-accent-bg: transparent;--tblr-table-striped-color: inherit;--tblr-table-striped-bg: var(--tblr-bg-surface-tertiary);--tblr-table-active-color: inherit;--tblr-table-active-bg: rgba(var(--tblr-emphasis-color-rgb), .1);--tblr-table-hover-color: inherit;--tblr-table-hover-bg: rgba(var(--tblr-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--tblr-table-border-color)}.table>:not(caption)>*>*,.markdown>table>:not(caption)>*>*{padding:.5rem;color:var(--tblr-table-color-state, var(--tblr-table-color-type, var(--tblr-table-color)));background-color:var(--tblr-table-bg);border-bottom-width:var(--tblr-border-width);box-shadow:inset 0 0 0 9999px var(--tblr-table-bg-state, var(--tblr-table-bg-type, var(--tblr-table-accent-bg)))}.table>tbody,.markdown>table>tbody{vertical-align:inherit}.table>thead,.markdown>table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--tblr-border-width) * 2) solid var(--tblr-border-color-translucent)}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*,.markdown>table>:not(caption)>*{border-width:var(--tblr-border-width) 0}.table-bordered>:not(caption)>*>*,.markdown>table>:not(caption)>*>*{border-width:0 var(--tblr-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(2n)>*{--tblr-table-color-type: var(--tblr-table-striped-color);--tblr-table-bg-type: var(--tblr-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--tblr-table-color-type: var(--tblr-table-striped-color);--tblr-table-bg-type: var(--tblr-table-striped-bg)}.table-active{--tblr-table-color-state: var(--tblr-table-active-color);--tblr-table-bg-state: var(--tblr-table-active-bg)}.table-hover>tbody>tr:hover>*{--tblr-table-color-state: var(--tblr-table-hover-color);--tblr-table-bg-state: var(--tblr-table-hover-bg)}.table-primary{--tblr-table-color: #182433;--tblr-table-bg: #cce7e5;--tblr-table-border-color: #a8c0c1;--tblr-table-striped-bg: #c3dddc;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #bad4d3;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #bfd8d8;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-secondary{--tblr-table-color: #182433;--tblr-table-bg: #e2e4e9;--tblr-table-border-color: #babec5;--tblr-table-striped-bg: #d8dae0;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #ced1d7;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #d3d6db;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-success{--tblr-table-color: #182433;--tblr-table-bg: #d5f0da;--tblr-table-border-color: #afc7b9;--tblr-table-striped-bg: #cce6d2;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #c2dcc9;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #c7e1cd;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-info{--tblr-table-color: #182433;--tblr-table-bg: #d9ebf9;--tblr-table-border-color: #b2c3d1;--tblr-table-striped-bg: #cfe1ef;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #c6d7e5;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #cbdcea;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-warning{--tblr-table-color: #182433;--tblr-table-bg: #fde1cd;--tblr-table-border-color: #cfbbae;--tblr-table-striped-bg: #f2d8c5;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #e6cebe;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #ecd3c1;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-danger{--tblr-table-color: #182433;--tblr-table-bg: #f7d7d7;--tblr-table-border-color: #cab3b6;--tblr-table-striped-bg: #eccecf;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #e1c5c7;--tblr-table-active-color: #f6f8fb;--tblr-table-hover-bg: #e6cacb;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-light{--tblr-table-color: #182433;--tblr-table-bg: #f6f8fb;--tblr-table-border-color: #caced3;--tblr-table-striped-bg: #ebedf1;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #e0e3e7;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #e5e8ec;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-dark{--tblr-table-color: #f6f8fb;--tblr-table-bg: #182433;--tblr-table-border-color: #444e5b;--tblr-table-striped-bg: #232f3d;--tblr-table-striped-color: #f6f8fb;--tblr-table-active-bg: #2e3947;--tblr-table-active-color: #f6f8fb;--tblr-table-hover-bg: #293442;--tblr-table-hover-color: #f6f8fb;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem;font-size:.875rem;font-weight:var(--tblr-font-weight-medium)}.col-form-label{padding-top:calc(.5625rem + var(--tblr-border-width));padding-bottom:calc(.5625rem + var(--tblr-border-width));margin-bottom:0;font-size:inherit;font-weight:var(--tblr-font-weight-medium);line-height:1.4285714286}.col-form-label-lg{padding-top:calc(.5rem + var(--tblr-border-width));padding-bottom:calc(.5rem + var(--tblr-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.125rem + var(--tblr-border-width));padding-bottom:calc(.125rem + var(--tblr-border-width));font-size:.75rem}.form-text{margin-top:.25rem;font-size:85.714285%;color:var(--tblr-secondary-color)}.form-control{display:block;width:100%;padding:.5625rem .75rem;font-family:var(--tblr-font-sans-serif);font-size:.875rem;font-weight:400;line-height:1.4285714286;color:var(--tblr-body-color);appearance:none;background-color:var(--tblr-bg-forms);background-clip:padding-box;border:var(--tblr-border-width) solid var(--tblr-border-color);border-radius:var(--tblr-border-radius);box-shadow:var(--tblr-box-shadow-input);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--tblr-body-color);background-color:var(--tblr-bg-forms);border-color:#80c2be;outline:0;box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.4285714286em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:#8a97ab;opacity:1}.form-control:disabled{background-color:var(--tblr-bg-surface-secondary);opacity:1}.form-control::file-selector-button{padding:.5625rem .75rem;margin:-.5625rem -.75rem;margin-inline-end:.75rem;color:var(--tblr-body-color);background-color:var(--tblr-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--tblr-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--tblr-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.5625rem 0;margin-bottom:0;line-height:1.4285714286;color:var(--tblr-body-color);background-color:transparent;border:solid transparent;border-width:var(--tblr-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2));padding:.125rem .25rem;font-size:.75rem;border-radius:var(--tblr-border-radius-sm)}.form-control-sm::file-selector-button{padding:.125rem .25rem;margin:-.125rem -.25rem;margin-inline-end:.25rem}.form-control-lg{min-height:calc(1.4285714286em + 1rem + calc(var(--tblr-border-width) * 2));padding:.5rem .75rem;font-size:1.25rem;border-radius:var(--tblr-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem .75rem;margin:-.5rem -.75rem;margin-inline-end:.75rem}textarea.form-control{min-height:calc(1.4285714286em + 1.125rem + calc(var(--tblr-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.4285714286em + 1rem + calc(var(--tblr-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.4285714286em + 1.125rem + calc(var(--tblr-border-width) * 2));padding:.5625rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--tblr-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--tblr-border-radius)}.form-control-color.form-control-sm{height:calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.4285714286em + 1rem + calc(var(--tblr-border-width) * 2))}.form-select{--tblr-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a97ab' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.5625rem 2.25rem .5625rem .75rem;font-family:var(--tblr-font-sans-serif);font-size:.875rem;font-weight:400;line-height:1.4285714286;color:var(--tblr-body-color);appearance:none;background-color:var(--tblr-bg-forms);background-image:var(--tblr-form-select-bg-img),var(--tblr-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--tblr-border-width) solid var(--tblr-border-color);border-radius:var(--tblr-border-radius);box-shadow:var(--tblr-box-shadow-input);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#80c2be;outline:0;box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--tblr-bg-surface-secondary)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--tblr-body-color)}.form-select-sm{padding-top:.125rem;padding-bottom:.125rem;padding-left:.25rem;font-size:.75rem;border-radius:var(--tblr-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1.25rem;border-radius:var(--tblr-border-radius-lg)}[data-bs-theme=dark] .form-select,body[data-bs-theme=dark] [data-bs-theme=light] .form-select{--tblr-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dce1e7' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.25rem;padding-left:2rem;margin-bottom:.75rem}.form-check .form-check-input{float:left;margin-left:-2rem}.form-check-reverse{padding-right:2rem;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-2rem;margin-left:0}.form-check-input{--tblr-form-check-bg: var(--tblr-bg-forms);flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.0892857143rem;vertical-align:top;appearance:none;background-color:var(--tblr-form-check-bg);background-image:var(--tblr-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:var(--tblr-border-radius)}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#80c2be;outline:0;box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-check-input:checked{background-color:var(--tblr-primary);border-color:var(--tblr-border-color-translucent)}.form-check-input:checked[type=checkbox]{--tblr-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--tblr-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:var(--tblr-primary);border-color:var(--tblr-primary);--tblr-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.7}.form-switch{padding-left:2.5rem}.form-switch .form-check-input{--tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23dce1e7'/%3e%3c/svg%3e");width:2rem;margin-left:-2.5rem;background-image:var(--tblr-form-switch-bg);background-position:left center;border-radius:2rem;transition:background-position .15s ease-in-out}.form-switch .form-check-input:focus{--tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380c2be'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5rem;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5rem;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.4}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.25rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f6f8fb,0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f6f8fb,0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.375rem;appearance:none;background-color:var(--tblr-primary);border:2px var(--tblr-border-style) #ffffff;border-radius:1rem;box-shadow:0 .1rem .25rem #0000001a;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3dad8}.form-range::-webkit-slider-runnable-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color);border-color:transparent;border-radius:1rem;box-shadow:var(--tblr-box-shadow-inset)}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:var(--tblr-primary);border:2px var(--tblr-border-style) #ffffff;border-radius:1rem;box-shadow:0 .1rem .25rem #0000001a;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3dad8}.form-range::-moz-range-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color);border-color:transparent;border-radius:1rem;box-shadow:var(--tblr-box-shadow-inset)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--tblr-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--tblr-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--tblr-border-width) * 2));min-height:calc(3.5rem + calc(var(--tblr-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--tblr-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--tblr-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--tblr-bg-forms);border-radius:var(--tblr-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--tblr-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--tblr-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#49566c}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--tblr-bg-surface-secondary)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.5625rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:var(--tblr-gray-500);text-align:center;white-space:nowrap;background-color:var(--tblr-bg-surface-secondary);border:var(--tblr-border-width) solid var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem .75rem;font-size:1.25rem;border-radius:var(--tblr-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.125rem .25rem;font-size:.75rem;border-radius:var(--tblr-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--tblr-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.714285%;color:var(--tblr-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:var(--tblr-spacer-2) var(--tblr-spacer-2);margin-top:.1rem;font-size:.765625rem;color:#fff;background-color:var(--tblr-success);border-radius:var(--tblr-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--tblr-form-valid-border-color);padding-right:calc(1.4285714286em + 1.125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.3571428572em + .28125rem) center;background-size:calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--tblr-form-valid-border-color);box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.4285714286em + 1.125rem);background-position:top calc(.3571428572em + .28125rem) right calc(.3571428572em + .28125rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--tblr-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--tblr-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--tblr-form-valid-border-color);box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.4285714286em + 1.125rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--tblr-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--tblr-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--tblr-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--tblr-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.714285%;color:var(--tblr-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:var(--tblr-spacer-2) var(--tblr-spacer-2);margin-top:.1rem;font-size:.765625rem;color:#fff;background-color:var(--tblr-danger);border-radius:var(--tblr-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--tblr-form-invalid-border-color);padding-right:calc(1.4285714286em + 1.125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.3571428572em + .28125rem) center;background-size:calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--tblr-form-invalid-border-color);box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.4285714286em + 1.125rem);background-position:top calc(.3571428572em + .28125rem) right calc(.3571428572em + .28125rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--tblr-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--tblr-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--tblr-form-invalid-border-color);box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.4285714286em + 1.125rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--tblr-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--tblr-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--tblr-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--tblr-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--tblr-btn-padding-x: .5rem;--tblr-btn-padding-y: .25rem;--tblr-btn-font-family: var(--tblr-font-sans-serif);--tblr-btn-font-size: .875rem;--tblr-btn-font-weight: var(--tblr-font-weight-medium);--tblr-btn-line-height: 1.4285714286;--tblr-btn-color: var(--tblr-body-color);--tblr-btn-bg: transparent;--tblr-btn-border-width: var(--tblr-border-width);--tblr-btn-border-color: transparent;--tblr-btn-border-radius: var(--tblr-border-radius);--tblr-btn-hover-border-color: transparent;--tblr-btn-box-shadow: var(--tblr-box-shadow-input);--tblr-btn-disabled-opacity: .4;--tblr-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--tblr-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--tblr-btn-padding-y) var(--tblr-btn-padding-x);font-family:var(--tblr-btn-font-family);font-size:var(--tblr-btn-font-size);font-weight:var(--tblr-btn-font-weight);line-height:var(--tblr-btn-line-height);color:var(--tblr-btn-color);text-align:center;vertical-align:middle;cursor:pointer;user-select:none;border:var(--tblr-btn-border-width) solid var(--tblr-btn-border-color);border-radius:var(--tblr-btn-border-radius);background-color:var(--tblr-btn-bg);box-shadow:var(--tblr-btn-box-shadow);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--tblr-btn-hover-color);text-decoration:none;background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--tblr-btn-color);background-color:var(--tblr-btn-bg);border-color:var(--tblr-btn-border-color)}.btn:focus-visible{color:var(--tblr-btn-hover-color);background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color);outline:0;box-shadow:var(--tblr-btn-box-shadow),var(--tblr-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--tblr-btn-hover-border-color);outline:0;box-shadow:var(--tblr-btn-box-shadow),var(--tblr-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--tblr-btn-active-color);background-color:var(--tblr-btn-active-bg);border-color:var(--tblr-btn-active-border-color);box-shadow:var(--tblr-btn-active-shadow)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--tblr-btn-active-shadow),var(--tblr-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--tblr-btn-active-shadow),var(--tblr-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--tblr-btn-disabled-color);pointer-events:none;background-color:var(--tblr-btn-disabled-bg);border-color:var(--tblr-btn-disabled-border-color);opacity:var(--tblr-btn-disabled-opacity);box-shadow:none}.btn-link{--tblr-btn-font-weight: 400;--tblr-btn-color: var(--tblr-link-color);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-link-hover-color);--tblr-btn-hover-border-color: transparent;--tblr-btn-active-color: var(--tblr-link-hover-color);--tblr-btn-active-border-color: transparent;--tblr-btn-disabled-color: #49566c;--tblr-btn-disabled-border-color: transparent;--tblr-btn-box-shadow: 0 0 0 #000;--tblr-btn-focus-shadow-rgb: 37, 150, 144;text-decoration:none}.btn-link:hover,.btn-link:focus-visible{text-decoration:underline}.btn-link:focus-visible{color:var(--tblr-btn-color)}.btn-link:hover{color:var(--tblr-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--tblr-btn-padding-y: .5rem;--tblr-btn-padding-x: .75rem;--tblr-btn-font-size: 1.25rem;--tblr-btn-border-radius: var(--tblr-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--tblr-btn-padding-y: .125rem;--tblr-btn-padding-x: .25rem;--tblr-btn-font-size: .75rem;--tblr-btn-border-radius: var(--tblr-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(-45deg)}.dropdown-menu{--tblr-dropdown-zindex: 1000;--tblr-dropdown-min-width: 11rem;--tblr-dropdown-padding-x: 0;--tblr-dropdown-padding-y: .25rem;--tblr-dropdown-spacer: 1px;--tblr-dropdown-font-size: .875rem;--tblr-dropdown-color: var(--tblr-body-color);--tblr-dropdown-bg: var(--tblr-bg-surface);--tblr-dropdown-border-color: var(--tblr-border-color-translucent);--tblr-dropdown-border-radius: var(--tblr-border-radius);--tblr-dropdown-border-width: var(--tblr-border-width);--tblr-dropdown-inner-border-radius: calc(var(--tblr-border-radius) - var(--tblr-border-width));--tblr-dropdown-divider-bg: var(--tblr-border-color-translucent);--tblr-dropdown-divider-margin-y: var(--tblr-spacer-2);--tblr-dropdown-box-shadow: var(--tblr-box-shadow-dropdown);--tblr-dropdown-link-color: inherit;--tblr-dropdown-link-hover-color: inherit;--tblr-dropdown-link-hover-bg: rgba(var(--tblr-secondary-rgb), .08);--tblr-dropdown-link-active-color: var(--tblr-primary);--tblr-dropdown-link-active-bg: var(--tblr-active-bg);--tblr-dropdown-link-disabled-color: var(--tblr-tertiary-color);--tblr-dropdown-item-padding-x: .75rem;--tblr-dropdown-item-padding-y: .5rem;--tblr-dropdown-header-color: #49566c;--tblr-dropdown-header-padding-x: .75rem;--tblr-dropdown-header-padding-y: .25rem;position:absolute;z-index:var(--tblr-dropdown-zindex);display:none;min-width:var(--tblr-dropdown-min-width);padding:var(--tblr-dropdown-padding-y) var(--tblr-dropdown-padding-x);margin:0;font-size:var(--tblr-dropdown-font-size);color:var(--tblr-dropdown-color);text-align:left;list-style:none;background-color:var(--tblr-dropdown-bg);background-clip:padding-box;border:var(--tblr-dropdown-border-width) solid var(--tblr-dropdown-border-color);border-radius:var(--tblr-dropdown-border-radius);box-shadow:var(--tblr-dropdown-box-shadow)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--tblr-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--tblr-dropdown-spacer)}.dropup .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(135deg)}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--tblr-dropdown-spacer)}.dropend .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(-135deg)}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--tblr-dropdown-spacer)}.dropstart .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(45deg)}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--tblr-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--tblr-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--tblr-dropdown-link-color);text-align:inherit;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--tblr-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--tblr-dropdown-link-hover-color);text-decoration:none;background-color:var(--tblr-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--tblr-dropdown-link-active-color);text-decoration:none;background-color:var(--tblr-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--tblr-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--tblr-dropdown-header-padding-y) var(--tblr-dropdown-header-padding-x);margin-bottom:0;font-size:.765625rem;color:var(--tblr-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x);color:var(--tblr-dropdown-link-color)}.dropdown-menu-dark{--tblr-dropdown-color: #b8c4d4;--tblr-dropdown-bg: #182433;--tblr-dropdown-border-color: var(--tblr-border-color-translucent);--tblr-dropdown-box-shadow: ;--tblr-dropdown-link-color: #b8c4d4;--tblr-dropdown-link-hover-color: #ffffff;--tblr-dropdown-divider-bg: var(--tblr-border-color-translucent);--tblr-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--tblr-dropdown-link-active-color: var(--tblr-primary);--tblr-dropdown-link-active-bg: var(--tblr-active-bg);--tblr-dropdown-link-disabled-color: #6c7a91;--tblr-dropdown-header-color: #6c7a91}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--tblr-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--tblr-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.1875rem;padding-left:.1875rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.btn-group.show .dropdown-toggle{box-shadow:inset 0 3px 5px #00000020}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--tblr-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--tblr-nav-link-padding-x: .75rem;--tblr-nav-link-padding-y: .5rem;--tblr-nav-link-font-weight: ;--tblr-nav-link-color: var(--tblr-gray-500);--tblr-nav-link-hover-color: var(--tblr-link-hover-color);--tblr-nav-link-disabled-color: var(--tblr-disabled-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--tblr-nav-link-padding-y) var(--tblr-nav-link-padding-x);font-size:var(--tblr-nav-link-font-size);font-weight:var(--tblr-nav-link-font-weight);color:var(--tblr-nav-link-color);background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}.nav-link:hover,.nav-link:focus{color:var(--tblr-nav-link-hover-color);text-decoration:none}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.nav-link.disabled,.nav-link:disabled{color:var(--tblr-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--tblr-nav-tabs-border-width: var(--tblr-border-width);--tblr-nav-tabs-border-color: var(--tblr-border-color);--tblr-nav-tabs-border-radius: var(--tblr-border-radius);--tblr-nav-tabs-link-hover-border-color: var(--tblr-border-color) var(--tblr-border-color) var(--tblr-border-color);--tblr-nav-tabs-link-active-color: var(--tblr-body-color);--tblr-nav-tabs-link-active-bg: var(--tblr-body-bg);--tblr-nav-tabs-link-active-border-color: var(--tblr-border-color) var(--tblr-border-color) var(--tblr-border-color);border-bottom:var(--tblr-nav-tabs-border-width) solid var(--tblr-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--tblr-nav-tabs-border-width));border:var(--tblr-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--tblr-nav-tabs-border-radius);border-top-right-radius:var(--tblr-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--tblr-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--tblr-nav-tabs-link-active-color);background-color:var(--tblr-nav-tabs-link-active-bg);border-color:var(--tblr-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--tblr-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--tblr-nav-pills-border-radius: var(--tblr-border-radius);--tblr-nav-pills-link-active-color: var(--tblr-primary);--tblr-nav-pills-link-active-bg: rgba(var(--tblr-secondary-rgb), .15)}.nav-pills .nav-link{border-radius:var(--tblr-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--tblr-nav-pills-link-active-color);background-color:var(--tblr-nav-pills-link-active-bg)}.nav-underline{--tblr-nav-underline-gap: 1rem;--tblr-nav-underline-border-width: .125rem;--tblr-nav-underline-link-active-color: var(--tblr-emphasis-color);gap:var(--tblr-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--tblr-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:600;color:var(--tblr-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--tblr-navbar-padding-x: 0;--tblr-navbar-padding-y: .25rem;--tblr-navbar-color: var(--tblr-body-color);--tblr-navbar-hover-color: rgba(var(--tblr-emphasis-color-rgb), .8);--tblr-navbar-disabled-color: var(--tblr-disabled-color);--tblr-navbar-active-color: var(--tblr-body-color) color;--tblr-navbar-brand-padding-y: .5rem;--tblr-navbar-brand-margin-end: 1rem;--tblr-navbar-brand-font-size: 1.25rem;--tblr-navbar-brand-color: var(--tblr-body-color);--tblr-navbar-brand-hover-color: var(--tblr-body-color) color;--tblr-navbar-nav-link-padding-x: .75rem;--tblr-navbar-toggler-padding-y: 0;--tblr-navbar-toggler-padding-x: 0;--tblr-navbar-toggler-font-size: 1rem;--tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2824, 36, 51, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--tblr-navbar-toggler-border-color: rgba(var(--tblr-emphasis-color-rgb), .15);--tblr-navbar-toggler-border-radius: var(--tblr-border-radius);--tblr-navbar-toggler-focus-width: 0;--tblr-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--tblr-navbar-padding-y) var(--tblr-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--tblr-navbar-brand-padding-y);padding-bottom:var(--tblr-navbar-brand-padding-y);margin-right:var(--tblr-navbar-brand-margin-end);font-size:var(--tblr-navbar-brand-font-size);color:var(--tblr-navbar-brand-color);white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--tblr-navbar-brand-hover-color);text-decoration:none}.navbar-nav{--tblr-nav-link-padding-x: 0;--tblr-nav-link-padding-y: .5rem;--tblr-nav-link-font-weight: ;--tblr-nav-link-color: var(--tblr-navbar-color);--tblr-nav-link-hover-color: var(--tblr-navbar-hover-color);--tblr-nav-link-disabled-color: var(--tblr-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--tblr-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--tblr-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--tblr-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--tblr-navbar-toggler-padding-y) var(--tblr-navbar-toggler-padding-x);font-size:var(--tblr-navbar-toggler-font-size);line-height:1;color:var(--tblr-navbar-color);background-color:transparent;border:var(--tblr-border-width) solid var(--tblr-navbar-toggler-border-color);border-radius:var(--tblr-navbar-toggler-border-radius);transition:var(--tblr-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--tblr-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--tblr-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--tblr-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark],body[data-bs-theme=dark] .navbar[data-bs-theme=light]{--tblr-navbar-color: rgba(255, 255, 255, .7);--tblr-navbar-hover-color: rgba(255, 255, 255, .75);--tblr-navbar-disabled-color: var(--tblr-disabled-color);--tblr-navbar-active-color: #ffffff;--tblr-navbar-brand-color: #ffffff;--tblr-navbar-brand-hover-color: #ffffff;--tblr-navbar-toggler-border-color: rgba(255, 255, 255, .1);--tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon,body[data-bs-theme=dark] [data-bs-theme=light] .navbar-toggler-icon{--tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--tblr-card-spacer-y: 1rem;--tblr-card-spacer-x: 1.25rem;--tblr-card-title-spacer-y: 1.25rem;--tblr-card-title-color: ;--tblr-card-subtitle-color: ;--tblr-card-border-width: var(--tblr-border-width);--tblr-card-border-color: var(--tblr-border-color-translucent);--tblr-card-border-radius: var(--tblr-border-radius);--tblr-card-box-shadow: var(--tblr-shadow-card);--tblr-card-inner-border-radius: calc(var(--tblr-border-radius) - (var(--tblr-border-width)));--tblr-card-cap-padding-y: 1rem;--tblr-card-cap-padding-x: 1.25rem;--tblr-card-cap-bg: var(--tblr-bg-surface-tertiary);--tblr-card-cap-color: inherit;--tblr-card-height: ;--tblr-card-color: inherit;--tblr-card-bg: var(--tblr-bg-surface);--tblr-card-img-overlay-padding: 1rem;--tblr-card-group-margin: 1.5rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--tblr-card-height);color:var(--tblr-body-color);word-wrap:break-word;background-color:var(--tblr-card-bg);background-clip:border-box;border:var(--tblr-card-border-width) solid var(--tblr-card-border-color);border-radius:var(--tblr-card-border-radius);box-shadow:var(--tblr-card-box-shadow)}.card>hr,.card>.hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--tblr-card-inner-border-radius);border-top-right-radius:var(--tblr-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--tblr-card-inner-border-radius);border-bottom-left-radius:var(--tblr-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--tblr-card-spacer-y) var(--tblr-card-spacer-x);color:var(--tblr-card-color)}.card-title{margin-bottom:var(--tblr-card-title-spacer-y);color:var(--tblr-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--tblr-card-title-spacer-y));margin-bottom:0;color:var(--tblr-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:var(--tblr-card-spacer-x)}.card-header{padding:var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x);margin-bottom:0;color:var(--tblr-card-cap-color);background-color:var(--tblr-card-cap-bg);border-bottom:var(--tblr-card-border-width) solid var(--tblr-card-border-color)}.card-header:first-child{border-radius:var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius) 0 0}.card-footer{padding:var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x);color:var(--tblr-card-cap-color);background-color:var(--tblr-card-cap-bg);border-top:var(--tblr-card-border-width) solid var(--tblr-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--tblr-card-cap-padding-x));margin-bottom:calc(-1 * var(--tblr-card-cap-padding-y));margin-left:calc(-.5 * var(--tblr-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--tblr-card-bg);border-bottom-color:var(--tblr-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--tblr-card-cap-padding-x));margin-left:calc(-.5 * var(--tblr-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--tblr-card-img-overlay-padding);border-radius:var(--tblr-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--tblr-card-inner-border-radius);border-top-right-radius:var(--tblr-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--tblr-card-inner-border-radius);border-bottom-left-radius:var(--tblr-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--tblr-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--tblr-accordion-color: var(--tblr-body-color);--tblr-accordion-bg: transparent;--tblr-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--tblr-accordion-border-color: var(--tblr-border-color-translucent);--tblr-accordion-border-width: var(--tblr-border-width);--tblr-accordion-border-radius: var(--tblr-border-radius);--tblr-accordion-inner-border-radius: calc(var(--tblr-border-radius) - (var(--tblr-border-width)));--tblr-accordion-btn-padding-x: 1.25rem;--tblr-accordion-btn-padding-y: 1rem;--tblr-accordion-btn-color: var(--tblr-body-color);--tblr-accordion-btn-bg: transparent;--tblr-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23182433' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--tblr-accordion-btn-icon-width: 1rem;--tblr-accordion-btn-icon-transform: rotate(-180deg);--tblr-accordion-btn-icon-transition: transform .2s ease-in-out;--tblr-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23003532' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--tblr-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--tblr-primary-rgb), .25);--tblr-accordion-body-padding-x: 1.25rem;--tblr-accordion-body-padding-y: 1rem;--tblr-accordion-active-color: inherit;--tblr-accordion-active-bg: transparent}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--tblr-accordion-btn-padding-y) var(--tblr-accordion-btn-padding-x);font-size:.875rem;color:var(--tblr-accordion-btn-color);text-align:left;background-color:var(--tblr-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--tblr-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--tblr-accordion-active-color);background-color:var(--tblr-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--tblr-accordion-border-width)) 0 var(--tblr-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--tblr-accordion-btn-active-icon);transform:var(--tblr-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--tblr-accordion-btn-icon-width);height:var(--tblr-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--tblr-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--tblr-accordion-btn-icon-width);transition:var(--tblr-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--tblr-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--tblr-accordion-color);background-color:var(--tblr-accordion-bg);border:var(--tblr-accordion-border-width) solid var(--tblr-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--tblr-accordion-border-radius);border-top-right-radius:var(--tblr-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--tblr-accordion-inner-border-radius);border-top-right-radius:var(--tblr-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--tblr-accordion-border-radius);border-bottom-left-radius:var(--tblr-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--tblr-accordion-inner-border-radius);border-bottom-left-radius:var(--tblr-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--tblr-accordion-border-radius);border-bottom-left-radius:var(--tblr-accordion-border-radius)}.accordion-body{padding:var(--tblr-accordion-body-padding-y) var(--tblr-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--tblr-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366b6b1'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--tblr-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366b6b1'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--tblr-breadcrumb-padding-x: 0;--tblr-breadcrumb-padding-y: 0;--tblr-breadcrumb-margin-bottom: 1rem;--tblr-breadcrumb-bg: ;--tblr-breadcrumb-border-radius: ;--tblr-breadcrumb-divider-color: var(--tblr-gray-500);--tblr-breadcrumb-item-padding-x: .5rem;--tblr-breadcrumb-item-active-color: inherit;display:flex;flex-wrap:wrap;padding:var(--tblr-breadcrumb-padding-y) var(--tblr-breadcrumb-padding-x);margin-bottom:var(--tblr-breadcrumb-margin-bottom);font-size:var(--tblr-breadcrumb-font-size);list-style:none;background-color:var(--tblr-breadcrumb-bg);border-radius:var(--tblr-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--tblr-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--tblr-breadcrumb-item-padding-x);color:var(--tblr-breadcrumb-divider-color);content:var(--tblr-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--tblr-breadcrumb-item-active-color)}.pagination{--tblr-pagination-padding-x: .25rem;--tblr-pagination-padding-y: .25rem;--tblr-pagination-font-size: .875rem;--tblr-pagination-color: var(--tblr-gray-500);--tblr-pagination-bg: transparent;--tblr-pagination-border-width: 0;--tblr-pagination-border-color: var(--tblr-border-color);--tblr-pagination-border-radius: var(--tblr-border-radius);--tblr-pagination-hover-color: var(--tblr-link-hover-color);--tblr-pagination-hover-bg: var(--tblr-tertiary-bg);--tblr-pagination-hover-border-color: var(--tblr-border-color);--tblr-pagination-focus-color: var(--tblr-link-hover-color);--tblr-pagination-focus-bg: var(--tblr-secondary-bg);--tblr-pagination-focus-box-shadow: 0 0 0 .25rem rgba(var(--tblr-primary-rgb), .25);--tblr-pagination-active-color: #ffffff;--tblr-pagination-active-bg: var(--tblr-primary);--tblr-pagination-active-border-color: var(--tblr-primary);--tblr-pagination-disabled-color: var(--tblr-disabled-color);--tblr-pagination-disabled-bg: transparent;--tblr-pagination-disabled-border-color: var(--tblr-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--tblr-pagination-padding-y) var(--tblr-pagination-padding-x);font-size:var(--tblr-pagination-font-size);color:var(--tblr-pagination-color);background-color:var(--tblr-pagination-bg);border:var(--tblr-pagination-border-width) solid var(--tblr-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--tblr-pagination-hover-color);text-decoration:none;background-color:var(--tblr-pagination-hover-bg);border-color:var(--tblr-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--tblr-pagination-focus-color);background-color:var(--tblr-pagination-focus-bg);outline:0;box-shadow:var(--tblr-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--tblr-pagination-active-color);background-color:var(--tblr-pagination-active-bg);border-color:var(--tblr-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--tblr-pagination-disabled-color);pointer-events:none;background-color:var(--tblr-pagination-disabled-bg);border-color:var(--tblr-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:-0}.page-item:first-child .page-link{border-top-left-radius:var(--tblr-pagination-border-radius);border-bottom-left-radius:var(--tblr-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--tblr-pagination-border-radius);border-bottom-right-radius:var(--tblr-pagination-border-radius)}.pagination-lg{--tblr-pagination-padding-x: 1.5rem;--tblr-pagination-padding-y: .75rem;--tblr-pagination-font-size: 1.09375rem;--tblr-pagination-border-radius: var(--tblr-border-radius-lg)}.pagination-sm{--tblr-pagination-padding-x: .5rem;--tblr-pagination-padding-y: .25rem;--tblr-pagination-font-size: .765625rem;--tblr-pagination-border-radius: var(--tblr-border-radius-sm)}.badge{--tblr-badge-padding-x: .5em;--tblr-badge-padding-y: .25em;--tblr-badge-font-size: 85.714285%;--tblr-badge-font-weight: var(--tblr-font-weight-medium);--tblr-badge-color: var(--tblr-gray-500);--tblr-badge-border-radius: var(--tblr-border-radius);display:inline-block;padding:var(--tblr-badge-padding-y) var(--tblr-badge-padding-x);font-size:var(--tblr-badge-font-size);font-weight:var(--tblr-badge-font-weight);line-height:1;color:var(--tblr-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--tblr-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--tblr-alert-bg: transparent;--tblr-alert-padding-x: 1rem;--tblr-alert-padding-y: .75rem;--tblr-alert-margin-bottom: 1rem;--tblr-alert-color: inherit;--tblr-alert-border-color: transparent;--tblr-alert-border: var(--tblr-border-width) solid var(--tblr-alert-border-color);--tblr-alert-border-radius: var(--tblr-border-radius);--tblr-alert-link-color: inherit;position:relative;padding:var(--tblr-alert-padding-y) var(--tblr-alert-padding-x);margin-bottom:var(--tblr-alert-margin-bottom);color:var(--tblr-alert-color);background-color:var(--tblr-alert-bg);border:var(--tblr-alert-border);border-radius:var(--tblr-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:var(--tblr-font-weight-bold);color:var(--tblr-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:.9375rem 1rem}.alert-primary{--tblr-alert-color: var(--tblr-primary-text-emphasis);--tblr-alert-bg: var(--tblr-primary-bg-subtle);--tblr-alert-border-color: var(--tblr-primary-border-subtle);--tblr-alert-link-color: var(--tblr-primary-text-emphasis)}.alert-secondary{--tblr-alert-color: var(--tblr-secondary-text-emphasis);--tblr-alert-bg: var(--tblr-secondary-bg-subtle);--tblr-alert-border-color: var(--tblr-secondary-border-subtle);--tblr-alert-link-color: var(--tblr-secondary-text-emphasis)}.alert-success{--tblr-alert-color: var(--tblr-success-text-emphasis);--tblr-alert-bg: var(--tblr-success-bg-subtle);--tblr-alert-border-color: var(--tblr-success-border-subtle);--tblr-alert-link-color: var(--tblr-success-text-emphasis)}.alert-info{--tblr-alert-color: var(--tblr-info-text-emphasis);--tblr-alert-bg: var(--tblr-info-bg-subtle);--tblr-alert-border-color: var(--tblr-info-border-subtle);--tblr-alert-link-color: var(--tblr-info-text-emphasis)}.alert-warning{--tblr-alert-color: var(--tblr-warning-text-emphasis);--tblr-alert-bg: var(--tblr-warning-bg-subtle);--tblr-alert-border-color: var(--tblr-warning-border-subtle);--tblr-alert-link-color: var(--tblr-warning-text-emphasis)}.alert-danger{--tblr-alert-color: var(--tblr-danger-text-emphasis);--tblr-alert-bg: var(--tblr-danger-bg-subtle);--tblr-alert-border-color: var(--tblr-danger-border-subtle);--tblr-alert-link-color: var(--tblr-danger-text-emphasis)}.alert-light{--tblr-alert-color: var(--tblr-light-text-emphasis);--tblr-alert-bg: var(--tblr-light-bg-subtle);--tblr-alert-border-color: var(--tblr-light-border-subtle);--tblr-alert-link-color: var(--tblr-light-text-emphasis)}.alert-dark{--tblr-alert-color: var(--tblr-dark-text-emphasis);--tblr-alert-bg: var(--tblr-dark-bg-subtle);--tblr-alert-border-color: var(--tblr-dark-border-subtle);--tblr-alert-link-color: var(--tblr-dark-text-emphasis)}.alert-muted{--tblr-alert-color: var(--tblr-muted-text-emphasis);--tblr-alert-bg: var(--tblr-muted-bg-subtle);--tblr-alert-border-color: var(--tblr-muted-border-subtle);--tblr-alert-link-color: var(--tblr-muted-text-emphasis)}.alert-blue{--tblr-alert-color: var(--tblr-blue-text-emphasis);--tblr-alert-bg: var(--tblr-blue-bg-subtle);--tblr-alert-border-color: var(--tblr-blue-border-subtle);--tblr-alert-link-color: var(--tblr-blue-text-emphasis)}.alert-azure{--tblr-alert-color: var(--tblr-azure-text-emphasis);--tblr-alert-bg: var(--tblr-azure-bg-subtle);--tblr-alert-border-color: var(--tblr-azure-border-subtle);--tblr-alert-link-color: var(--tblr-azure-text-emphasis)}.alert-indigo{--tblr-alert-color: var(--tblr-indigo-text-emphasis);--tblr-alert-bg: var(--tblr-indigo-bg-subtle);--tblr-alert-border-color: var(--tblr-indigo-border-subtle);--tblr-alert-link-color: var(--tblr-indigo-text-emphasis)}.alert-purple{--tblr-alert-color: var(--tblr-purple-text-emphasis);--tblr-alert-bg: var(--tblr-purple-bg-subtle);--tblr-alert-border-color: var(--tblr-purple-border-subtle);--tblr-alert-link-color: var(--tblr-purple-text-emphasis)}.alert-pink{--tblr-alert-color: var(--tblr-pink-text-emphasis);--tblr-alert-bg: var(--tblr-pink-bg-subtle);--tblr-alert-border-color: var(--tblr-pink-border-subtle);--tblr-alert-link-color: var(--tblr-pink-text-emphasis)}.alert-red{--tblr-alert-color: var(--tblr-red-text-emphasis);--tblr-alert-bg: var(--tblr-red-bg-subtle);--tblr-alert-border-color: var(--tblr-red-border-subtle);--tblr-alert-link-color: var(--tblr-red-text-emphasis)}.alert-orange{--tblr-alert-color: var(--tblr-orange-text-emphasis);--tblr-alert-bg: var(--tblr-orange-bg-subtle);--tblr-alert-border-color: var(--tblr-orange-border-subtle);--tblr-alert-link-color: var(--tblr-orange-text-emphasis)}.alert-yellow{--tblr-alert-color: var(--tblr-yellow-text-emphasis);--tblr-alert-bg: var(--tblr-yellow-bg-subtle);--tblr-alert-border-color: var(--tblr-yellow-border-subtle);--tblr-alert-link-color: var(--tblr-yellow-text-emphasis)}.alert-lime{--tblr-alert-color: var(--tblr-lime-text-emphasis);--tblr-alert-bg: var(--tblr-lime-bg-subtle);--tblr-alert-border-color: var(--tblr-lime-border-subtle);--tblr-alert-link-color: var(--tblr-lime-text-emphasis)}.alert-green{--tblr-alert-color: var(--tblr-green-text-emphasis);--tblr-alert-bg: var(--tblr-green-bg-subtle);--tblr-alert-border-color: var(--tblr-green-border-subtle);--tblr-alert-link-color: var(--tblr-green-text-emphasis)}.alert-teal{--tblr-alert-color: var(--tblr-teal-text-emphasis);--tblr-alert-bg: var(--tblr-teal-bg-subtle);--tblr-alert-border-color: var(--tblr-teal-border-subtle);--tblr-alert-link-color: var(--tblr-teal-text-emphasis)}.alert-cyan{--tblr-alert-color: var(--tblr-cyan-text-emphasis);--tblr-alert-bg: var(--tblr-cyan-bg-subtle);--tblr-alert-border-color: var(--tblr-cyan-border-subtle);--tblr-alert-link-color: var(--tblr-cyan-text-emphasis)}.alert-x{--tblr-alert-color: var(--tblr-x-text-emphasis);--tblr-alert-bg: var(--tblr-x-bg-subtle);--tblr-alert-border-color: var(--tblr-x-border-subtle);--tblr-alert-link-color: var(--tblr-x-text-emphasis)}.alert-facebook{--tblr-alert-color: var(--tblr-facebook-text-emphasis);--tblr-alert-bg: var(--tblr-facebook-bg-subtle);--tblr-alert-border-color: var(--tblr-facebook-border-subtle);--tblr-alert-link-color: var(--tblr-facebook-text-emphasis)}.alert-twitter{--tblr-alert-color: var(--tblr-twitter-text-emphasis);--tblr-alert-bg: var(--tblr-twitter-bg-subtle);--tblr-alert-border-color: var(--tblr-twitter-border-subtle);--tblr-alert-link-color: var(--tblr-twitter-text-emphasis)}.alert-linkedin{--tblr-alert-color: var(--tblr-linkedin-text-emphasis);--tblr-alert-bg: var(--tblr-linkedin-bg-subtle);--tblr-alert-border-color: var(--tblr-linkedin-border-subtle);--tblr-alert-link-color: var(--tblr-linkedin-text-emphasis)}.alert-google{--tblr-alert-color: var(--tblr-google-text-emphasis);--tblr-alert-bg: var(--tblr-google-bg-subtle);--tblr-alert-border-color: var(--tblr-google-border-subtle);--tblr-alert-link-color: var(--tblr-google-text-emphasis)}.alert-youtube{--tblr-alert-color: var(--tblr-youtube-text-emphasis);--tblr-alert-bg: var(--tblr-youtube-bg-subtle);--tblr-alert-border-color: var(--tblr-youtube-border-subtle);--tblr-alert-link-color: var(--tblr-youtube-text-emphasis)}.alert-vimeo{--tblr-alert-color: var(--tblr-vimeo-text-emphasis);--tblr-alert-bg: var(--tblr-vimeo-bg-subtle);--tblr-alert-border-color: var(--tblr-vimeo-border-subtle);--tblr-alert-link-color: var(--tblr-vimeo-text-emphasis)}.alert-dribbble{--tblr-alert-color: var(--tblr-dribbble-text-emphasis);--tblr-alert-bg: var(--tblr-dribbble-bg-subtle);--tblr-alert-border-color: var(--tblr-dribbble-border-subtle);--tblr-alert-link-color: var(--tblr-dribbble-text-emphasis)}.alert-github{--tblr-alert-color: var(--tblr-github-text-emphasis);--tblr-alert-bg: var(--tblr-github-bg-subtle);--tblr-alert-border-color: var(--tblr-github-border-subtle);--tblr-alert-link-color: var(--tblr-github-text-emphasis)}.alert-instagram{--tblr-alert-color: var(--tblr-instagram-text-emphasis);--tblr-alert-bg: var(--tblr-instagram-bg-subtle);--tblr-alert-border-color: var(--tblr-instagram-border-subtle);--tblr-alert-link-color: var(--tblr-instagram-text-emphasis)}.alert-pinterest{--tblr-alert-color: var(--tblr-pinterest-text-emphasis);--tblr-alert-bg: var(--tblr-pinterest-bg-subtle);--tblr-alert-border-color: var(--tblr-pinterest-border-subtle);--tblr-alert-link-color: var(--tblr-pinterest-text-emphasis)}.alert-vk{--tblr-alert-color: var(--tblr-vk-text-emphasis);--tblr-alert-bg: var(--tblr-vk-bg-subtle);--tblr-alert-border-color: var(--tblr-vk-border-subtle);--tblr-alert-link-color: var(--tblr-vk-text-emphasis)}.alert-rss{--tblr-alert-color: var(--tblr-rss-text-emphasis);--tblr-alert-bg: var(--tblr-rss-bg-subtle);--tblr-alert-border-color: var(--tblr-rss-border-subtle);--tblr-alert-link-color: var(--tblr-rss-text-emphasis)}.alert-flickr{--tblr-alert-color: var(--tblr-flickr-text-emphasis);--tblr-alert-bg: var(--tblr-flickr-bg-subtle);--tblr-alert-border-color: var(--tblr-flickr-border-subtle);--tblr-alert-link-color: var(--tblr-flickr-text-emphasis)}.alert-bitbucket{--tblr-alert-color: var(--tblr-bitbucket-text-emphasis);--tblr-alert-bg: var(--tblr-bitbucket-bg-subtle);--tblr-alert-border-color: var(--tblr-bitbucket-border-subtle);--tblr-alert-link-color: var(--tblr-bitbucket-text-emphasis)}.alert-tabler{--tblr-alert-color: var(--tblr-tabler-text-emphasis);--tblr-alert-bg: var(--tblr-tabler-bg-subtle);--tblr-alert-border-color: var(--tblr-tabler-border-subtle);--tblr-alert-link-color: var(--tblr-tabler-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress,.progress-stacked{--tblr-progress-height: .5rem;--tblr-progress-font-size: .65625rem;--tblr-progress-bg: var(--tblr-border-color);--tblr-progress-border-radius: var(--tblr-border-radius);--tblr-progress-box-shadow: var(--tblr-box-shadow-inset);--tblr-progress-bar-color: #ffffff;--tblr-progress-bar-bg: var(--tblr-primary);--tblr-progress-bar-transition: width .6s ease;display:flex;height:var(--tblr-progress-height);overflow:hidden;font-size:var(--tblr-progress-font-size);background-color:var(--tblr-progress-bg);border-radius:var(--tblr-progress-border-radius);box-shadow:var(--tblr-progress-box-shadow)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--tblr-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--tblr-progress-bar-bg);transition:var(--tblr-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--tblr-progress-height) var(--tblr-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--tblr-list-group-color: var(--tblr-body-color);--tblr-list-group-bg: inherit;--tblr-list-group-border-color: var(--tblr-border-color);--tblr-list-group-border-width: var(--tblr-border-width);--tblr-list-group-border-radius: var(--tblr-border-radius);--tblr-list-group-item-padding-x: 1.25rem;--tblr-list-group-item-padding-y: 1rem;--tblr-list-group-action-color: inherit;--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: rgba(var(--tblr-secondary-rgb), .08);--tblr-list-group-action-active-color: var(--tblr-body-color);--tblr-list-group-action-active-bg: var(--tblr-secondary-bg);--tblr-list-group-disabled-color: var(--tblr-secondary-color);--tblr-list-group-disabled-bg: inherit;--tblr-list-group-active-color: inherit;--tblr-list-group-active-bg: var(--tblr-active-bg);--tblr-list-group-active-border-color: var(--tblr-border-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--tblr-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--tblr-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--tblr-list-group-action-hover-color);text-decoration:none;background-color:var(--tblr-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--tblr-list-group-action-active-color);background-color:var(--tblr-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--tblr-list-group-item-padding-y) var(--tblr-list-group-item-padding-x);color:var(--tblr-list-group-color);background-color:var(--tblr-list-group-bg);border:var(--tblr-list-group-border-width) solid var(--tblr-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--tblr-list-group-disabled-color);pointer-events:none;background-color:var(--tblr-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--tblr-list-group-active-color);background-color:var(--tblr-list-group-active-bg);border-color:var(--tblr-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--tblr-list-group-border-width));border-top-width:var(--tblr-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--tblr-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--tblr-list-group-color: var(--tblr-primary-text-emphasis);--tblr-list-group-bg: var(--tblr-primary-bg-subtle);--tblr-list-group-border-color: var(--tblr-primary-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-primary-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-primary-border-subtle);--tblr-list-group-active-color: var(--tblr-primary-bg-subtle);--tblr-list-group-active-bg: var(--tblr-primary-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-primary-text-emphasis)}.list-group-item-secondary{--tblr-list-group-color: var(--tblr-secondary-text-emphasis);--tblr-list-group-bg: var(--tblr-secondary-bg-subtle);--tblr-list-group-border-color: var(--tblr-secondary-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-secondary-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-secondary-border-subtle);--tblr-list-group-active-color: var(--tblr-secondary-bg-subtle);--tblr-list-group-active-bg: var(--tblr-secondary-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-secondary-text-emphasis)}.list-group-item-success{--tblr-list-group-color: var(--tblr-success-text-emphasis);--tblr-list-group-bg: var(--tblr-success-bg-subtle);--tblr-list-group-border-color: var(--tblr-success-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-success-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-success-border-subtle);--tblr-list-group-active-color: var(--tblr-success-bg-subtle);--tblr-list-group-active-bg: var(--tblr-success-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-success-text-emphasis)}.list-group-item-info{--tblr-list-group-color: var(--tblr-info-text-emphasis);--tblr-list-group-bg: var(--tblr-info-bg-subtle);--tblr-list-group-border-color: var(--tblr-info-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-info-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-info-border-subtle);--tblr-list-group-active-color: var(--tblr-info-bg-subtle);--tblr-list-group-active-bg: var(--tblr-info-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-info-text-emphasis)}.list-group-item-warning{--tblr-list-group-color: var(--tblr-warning-text-emphasis);--tblr-list-group-bg: var(--tblr-warning-bg-subtle);--tblr-list-group-border-color: var(--tblr-warning-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-warning-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-warning-border-subtle);--tblr-list-group-active-color: var(--tblr-warning-bg-subtle);--tblr-list-group-active-bg: var(--tblr-warning-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-warning-text-emphasis)}.list-group-item-danger{--tblr-list-group-color: var(--tblr-danger-text-emphasis);--tblr-list-group-bg: var(--tblr-danger-bg-subtle);--tblr-list-group-border-color: var(--tblr-danger-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-danger-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-danger-border-subtle);--tblr-list-group-active-color: var(--tblr-danger-bg-subtle);--tblr-list-group-active-bg: var(--tblr-danger-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-danger-text-emphasis)}.list-group-item-light{--tblr-list-group-color: var(--tblr-light-text-emphasis);--tblr-list-group-bg: var(--tblr-light-bg-subtle);--tblr-list-group-border-color: var(--tblr-light-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-light-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-light-border-subtle);--tblr-list-group-active-color: var(--tblr-light-bg-subtle);--tblr-list-group-active-bg: var(--tblr-light-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-light-text-emphasis)}.list-group-item-dark{--tblr-list-group-color: var(--tblr-dark-text-emphasis);--tblr-list-group-bg: var(--tblr-dark-bg-subtle);--tblr-list-group-border-color: var(--tblr-dark-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-dark-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-dark-border-subtle);--tblr-list-group-active-color: var(--tblr-dark-bg-subtle);--tblr-list-group-active-bg: var(--tblr-dark-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-dark-text-emphasis)}.list-group-item-muted{--tblr-list-group-color: var(--tblr-muted-text-emphasis);--tblr-list-group-bg: var(--tblr-muted-bg-subtle);--tblr-list-group-border-color: var(--tblr-muted-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-muted-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-muted-border-subtle);--tblr-list-group-active-color: var(--tblr-muted-bg-subtle);--tblr-list-group-active-bg: var(--tblr-muted-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-muted-text-emphasis)}.list-group-item-blue{--tblr-list-group-color: var(--tblr-blue-text-emphasis);--tblr-list-group-bg: var(--tblr-blue-bg-subtle);--tblr-list-group-border-color: var(--tblr-blue-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-blue-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-blue-border-subtle);--tblr-list-group-active-color: var(--tblr-blue-bg-subtle);--tblr-list-group-active-bg: var(--tblr-blue-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-blue-text-emphasis)}.list-group-item-azure{--tblr-list-group-color: var(--tblr-azure-text-emphasis);--tblr-list-group-bg: var(--tblr-azure-bg-subtle);--tblr-list-group-border-color: var(--tblr-azure-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-azure-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-azure-border-subtle);--tblr-list-group-active-color: var(--tblr-azure-bg-subtle);--tblr-list-group-active-bg: var(--tblr-azure-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-azure-text-emphasis)}.list-group-item-indigo{--tblr-list-group-color: var(--tblr-indigo-text-emphasis);--tblr-list-group-bg: var(--tblr-indigo-bg-subtle);--tblr-list-group-border-color: var(--tblr-indigo-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-indigo-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-indigo-border-subtle);--tblr-list-group-active-color: var(--tblr-indigo-bg-subtle);--tblr-list-group-active-bg: var(--tblr-indigo-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-indigo-text-emphasis)}.list-group-item-purple{--tblr-list-group-color: var(--tblr-purple-text-emphasis);--tblr-list-group-bg: var(--tblr-purple-bg-subtle);--tblr-list-group-border-color: var(--tblr-purple-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-purple-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-purple-border-subtle);--tblr-list-group-active-color: var(--tblr-purple-bg-subtle);--tblr-list-group-active-bg: var(--tblr-purple-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-purple-text-emphasis)}.list-group-item-pink{--tblr-list-group-color: var(--tblr-pink-text-emphasis);--tblr-list-group-bg: var(--tblr-pink-bg-subtle);--tblr-list-group-border-color: var(--tblr-pink-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-pink-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-pink-border-subtle);--tblr-list-group-active-color: var(--tblr-pink-bg-subtle);--tblr-list-group-active-bg: var(--tblr-pink-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-pink-text-emphasis)}.list-group-item-red{--tblr-list-group-color: var(--tblr-red-text-emphasis);--tblr-list-group-bg: var(--tblr-red-bg-subtle);--tblr-list-group-border-color: var(--tblr-red-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-red-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-red-border-subtle);--tblr-list-group-active-color: var(--tblr-red-bg-subtle);--tblr-list-group-active-bg: var(--tblr-red-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-red-text-emphasis)}.list-group-item-orange{--tblr-list-group-color: var(--tblr-orange-text-emphasis);--tblr-list-group-bg: var(--tblr-orange-bg-subtle);--tblr-list-group-border-color: var(--tblr-orange-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-orange-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-orange-border-subtle);--tblr-list-group-active-color: var(--tblr-orange-bg-subtle);--tblr-list-group-active-bg: var(--tblr-orange-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-orange-text-emphasis)}.list-group-item-yellow{--tblr-list-group-color: var(--tblr-yellow-text-emphasis);--tblr-list-group-bg: var(--tblr-yellow-bg-subtle);--tblr-list-group-border-color: var(--tblr-yellow-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-yellow-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-yellow-border-subtle);--tblr-list-group-active-color: var(--tblr-yellow-bg-subtle);--tblr-list-group-active-bg: var(--tblr-yellow-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-yellow-text-emphasis)}.list-group-item-lime{--tblr-list-group-color: var(--tblr-lime-text-emphasis);--tblr-list-group-bg: var(--tblr-lime-bg-subtle);--tblr-list-group-border-color: var(--tblr-lime-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-lime-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-lime-border-subtle);--tblr-list-group-active-color: var(--tblr-lime-bg-subtle);--tblr-list-group-active-bg: var(--tblr-lime-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-lime-text-emphasis)}.list-group-item-green{--tblr-list-group-color: var(--tblr-green-text-emphasis);--tblr-list-group-bg: var(--tblr-green-bg-subtle);--tblr-list-group-border-color: var(--tblr-green-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-green-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-green-border-subtle);--tblr-list-group-active-color: var(--tblr-green-bg-subtle);--tblr-list-group-active-bg: var(--tblr-green-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-green-text-emphasis)}.list-group-item-teal{--tblr-list-group-color: var(--tblr-teal-text-emphasis);--tblr-list-group-bg: var(--tblr-teal-bg-subtle);--tblr-list-group-border-color: var(--tblr-teal-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-teal-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-teal-border-subtle);--tblr-list-group-active-color: var(--tblr-teal-bg-subtle);--tblr-list-group-active-bg: var(--tblr-teal-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-teal-text-emphasis)}.list-group-item-cyan{--tblr-list-group-color: var(--tblr-cyan-text-emphasis);--tblr-list-group-bg: var(--tblr-cyan-bg-subtle);--tblr-list-group-border-color: var(--tblr-cyan-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-cyan-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-cyan-border-subtle);--tblr-list-group-active-color: var(--tblr-cyan-bg-subtle);--tblr-list-group-active-bg: var(--tblr-cyan-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-cyan-text-emphasis)}.list-group-item-x{--tblr-list-group-color: var(--tblr-x-text-emphasis);--tblr-list-group-bg: var(--tblr-x-bg-subtle);--tblr-list-group-border-color: var(--tblr-x-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-x-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-x-border-subtle);--tblr-list-group-active-color: var(--tblr-x-bg-subtle);--tblr-list-group-active-bg: var(--tblr-x-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-x-text-emphasis)}.list-group-item-facebook{--tblr-list-group-color: var(--tblr-facebook-text-emphasis);--tblr-list-group-bg: var(--tblr-facebook-bg-subtle);--tblr-list-group-border-color: var(--tblr-facebook-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-facebook-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-facebook-border-subtle);--tblr-list-group-active-color: var(--tblr-facebook-bg-subtle);--tblr-list-group-active-bg: var(--tblr-facebook-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-facebook-text-emphasis)}.list-group-item-twitter{--tblr-list-group-color: var(--tblr-twitter-text-emphasis);--tblr-list-group-bg: var(--tblr-twitter-bg-subtle);--tblr-list-group-border-color: var(--tblr-twitter-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-twitter-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-twitter-border-subtle);--tblr-list-group-active-color: var(--tblr-twitter-bg-subtle);--tblr-list-group-active-bg: var(--tblr-twitter-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-twitter-text-emphasis)}.list-group-item-linkedin{--tblr-list-group-color: var(--tblr-linkedin-text-emphasis);--tblr-list-group-bg: var(--tblr-linkedin-bg-subtle);--tblr-list-group-border-color: var(--tblr-linkedin-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-linkedin-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-linkedin-border-subtle);--tblr-list-group-active-color: var(--tblr-linkedin-bg-subtle);--tblr-list-group-active-bg: var(--tblr-linkedin-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-linkedin-text-emphasis)}.list-group-item-google{--tblr-list-group-color: var(--tblr-google-text-emphasis);--tblr-list-group-bg: var(--tblr-google-bg-subtle);--tblr-list-group-border-color: var(--tblr-google-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-google-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-google-border-subtle);--tblr-list-group-active-color: var(--tblr-google-bg-subtle);--tblr-list-group-active-bg: var(--tblr-google-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-google-text-emphasis)}.list-group-item-youtube{--tblr-list-group-color: var(--tblr-youtube-text-emphasis);--tblr-list-group-bg: var(--tblr-youtube-bg-subtle);--tblr-list-group-border-color: var(--tblr-youtube-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-youtube-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-youtube-border-subtle);--tblr-list-group-active-color: var(--tblr-youtube-bg-subtle);--tblr-list-group-active-bg: var(--tblr-youtube-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-youtube-text-emphasis)}.list-group-item-vimeo{--tblr-list-group-color: var(--tblr-vimeo-text-emphasis);--tblr-list-group-bg: var(--tblr-vimeo-bg-subtle);--tblr-list-group-border-color: var(--tblr-vimeo-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-vimeo-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-vimeo-border-subtle);--tblr-list-group-active-color: var(--tblr-vimeo-bg-subtle);--tblr-list-group-active-bg: var(--tblr-vimeo-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-vimeo-text-emphasis)}.list-group-item-dribbble{--tblr-list-group-color: var(--tblr-dribbble-text-emphasis);--tblr-list-group-bg: var(--tblr-dribbble-bg-subtle);--tblr-list-group-border-color: var(--tblr-dribbble-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-dribbble-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-dribbble-border-subtle);--tblr-list-group-active-color: var(--tblr-dribbble-bg-subtle);--tblr-list-group-active-bg: var(--tblr-dribbble-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-dribbble-text-emphasis)}.list-group-item-github{--tblr-list-group-color: var(--tblr-github-text-emphasis);--tblr-list-group-bg: var(--tblr-github-bg-subtle);--tblr-list-group-border-color: var(--tblr-github-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-github-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-github-border-subtle);--tblr-list-group-active-color: var(--tblr-github-bg-subtle);--tblr-list-group-active-bg: var(--tblr-github-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-github-text-emphasis)}.list-group-item-instagram{--tblr-list-group-color: var(--tblr-instagram-text-emphasis);--tblr-list-group-bg: var(--tblr-instagram-bg-subtle);--tblr-list-group-border-color: var(--tblr-instagram-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-instagram-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-instagram-border-subtle);--tblr-list-group-active-color: var(--tblr-instagram-bg-subtle);--tblr-list-group-active-bg: var(--tblr-instagram-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-instagram-text-emphasis)}.list-group-item-pinterest{--tblr-list-group-color: var(--tblr-pinterest-text-emphasis);--tblr-list-group-bg: var(--tblr-pinterest-bg-subtle);--tblr-list-group-border-color: var(--tblr-pinterest-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-pinterest-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-pinterest-border-subtle);--tblr-list-group-active-color: var(--tblr-pinterest-bg-subtle);--tblr-list-group-active-bg: var(--tblr-pinterest-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-pinterest-text-emphasis)}.list-group-item-vk{--tblr-list-group-color: var(--tblr-vk-text-emphasis);--tblr-list-group-bg: var(--tblr-vk-bg-subtle);--tblr-list-group-border-color: var(--tblr-vk-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-vk-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-vk-border-subtle);--tblr-list-group-active-color: var(--tblr-vk-bg-subtle);--tblr-list-group-active-bg: var(--tblr-vk-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-vk-text-emphasis)}.list-group-item-rss{--tblr-list-group-color: var(--tblr-rss-text-emphasis);--tblr-list-group-bg: var(--tblr-rss-bg-subtle);--tblr-list-group-border-color: var(--tblr-rss-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-rss-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-rss-border-subtle);--tblr-list-group-active-color: var(--tblr-rss-bg-subtle);--tblr-list-group-active-bg: var(--tblr-rss-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-rss-text-emphasis)}.list-group-item-flickr{--tblr-list-group-color: var(--tblr-flickr-text-emphasis);--tblr-list-group-bg: var(--tblr-flickr-bg-subtle);--tblr-list-group-border-color: var(--tblr-flickr-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-flickr-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-flickr-border-subtle);--tblr-list-group-active-color: var(--tblr-flickr-bg-subtle);--tblr-list-group-active-bg: var(--tblr-flickr-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-flickr-text-emphasis)}.list-group-item-bitbucket{--tblr-list-group-color: var(--tblr-bitbucket-text-emphasis);--tblr-list-group-bg: var(--tblr-bitbucket-bg-subtle);--tblr-list-group-border-color: var(--tblr-bitbucket-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-bitbucket-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-bitbucket-border-subtle);--tblr-list-group-active-color: var(--tblr-bitbucket-bg-subtle);--tblr-list-group-active-bg: var(--tblr-bitbucket-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-bitbucket-text-emphasis)}.list-group-item-tabler{--tblr-list-group-color: var(--tblr-tabler-text-emphasis);--tblr-list-group-bg: var(--tblr-tabler-bg-subtle);--tblr-list-group-border-color: var(--tblr-tabler-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-tabler-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-tabler-border-subtle);--tblr-list-group-active-color: var(--tblr-tabler-bg-subtle);--tblr-list-group-active-bg: var(--tblr-tabler-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-tabler-text-emphasis)}.btn-close{--tblr-btn-close-color: #182433;--tblr-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23182433'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--tblr-btn-close-opacity: .4;--tblr-btn-close-hover-opacity: .75;--tblr-btn-close-focus-shadow: 0 0 0 .25rem rgba(var(--tblr-primary-rgb), .25);--tblr-btn-close-focus-opacity: 1;--tblr-btn-close-disabled-opacity: .25;--tblr-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--tblr-btn-close-color);background:transparent var(--tblr-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:4px;opacity:var(--tblr-btn-close-opacity)}.btn-close:hover{color:var(--tblr-btn-close-color);text-decoration:none;opacity:var(--tblr-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--tblr-btn-close-focus-shadow);opacity:var(--tblr-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--tblr-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close,body[data-bs-theme=dark] [data-bs-theme=light] .btn-close{filter:var(--tblr-btn-close-white-filter)}.toast{--tblr-toast-zindex: 1090;--tblr-toast-padding-x: .75rem;--tblr-toast-padding-y: .5rem;--tblr-toast-spacing: calc(var(--tblr-page-padding) * 2);--tblr-toast-max-width: 350px;--tblr-toast-font-size: .875rem;--tblr-toast-color: ;--tblr-toast-bg: rgba(var(--tblr-body-bg-rgb), .85);--tblr-toast-border-width: var(--tblr-border-width);--tblr-toast-border-color: var(--tblr-border-color);--tblr-toast-border-radius: var(--tblr-border-radius);--tblr-toast-box-shadow: var(--tblr-box-shadow);--tblr-toast-header-color: var(--tblr-gray-500);--tblr-toast-header-bg: rgba(var(--tblr-body-bg-rgb), .85);--tblr-toast-header-border-color: var(--tblr-border-color);width:var(--tblr-toast-max-width);max-width:100%;font-size:var(--tblr-toast-font-size);color:var(--tblr-toast-color);pointer-events:auto;background-color:var(--tblr-toast-bg);background-clip:padding-box;border:var(--tblr-toast-border-width) solid var(--tblr-toast-border-color);box-shadow:var(--tblr-toast-box-shadow);border-radius:var(--tblr-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--tblr-toast-zindex: 1090;position:absolute;z-index:var(--tblr-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--tblr-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--tblr-toast-padding-y) var(--tblr-toast-padding-x);color:var(--tblr-toast-header-color);background-color:var(--tblr-toast-header-bg);background-clip:padding-box;border-bottom:var(--tblr-toast-border-width) solid var(--tblr-toast-header-border-color);border-top-left-radius:calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width));border-top-right-radius:calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--tblr-toast-padding-x));margin-left:var(--tblr-toast-padding-x)}.toast-body{padding:var(--tblr-toast-padding-x);word-wrap:break-word}.modal{--tblr-modal-zindex: 1055;--tblr-modal-width: 540px;--tblr-modal-padding: 1.5rem;--tblr-modal-margin: .5rem;--tblr-modal-color: ;--tblr-modal-bg: var(--tblr-bg-surface);--tblr-modal-border-color: transparent;--tblr-modal-border-width: var(--tblr-border-width);--tblr-modal-border-radius: var(--tblr-border-radius-lg);--tblr-modal-box-shadow: var(--tblr-box-shadow-sm);--tblr-modal-inner-border-radius: calc(var(--tblr-modal-border-radius) - 1px);--tblr-modal-header-padding-x: 1.5rem;--tblr-modal-header-padding-y: 1.5rem;--tblr-modal-header-padding: 1.5rem;--tblr-modal-header-border-color: var(--tblr-border-color);--tblr-modal-header-border-width: var(--tblr-border-width);--tblr-modal-title-line-height: 1.4285714286;--tblr-modal-footer-gap: .75rem;--tblr-modal-footer-bg: var(--tblr-bg-surface-tertiary);--tblr-modal-footer-border-color: var(--tblr-border-color);--tblr-modal-footer-border-width: var(--tblr-border-width);position:fixed;top:0;left:0;z-index:var(--tblr-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--tblr-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-1rem)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--tblr-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--tblr-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--tblr-modal-color);pointer-events:auto;background-color:var(--tblr-modal-bg);background-clip:padding-box;border:var(--tblr-modal-border-width) solid var(--tblr-modal-border-color);border-radius:var(--tblr-modal-border-radius);box-shadow:var(--tblr-modal-box-shadow);outline:0}.modal-backdrop{--tblr-backdrop-zindex: 1050;--tblr-backdrop-bg: #182433;--tblr-backdrop-opacity: .24;position:fixed;top:0;left:0;z-index:var(--tblr-backdrop-zindex);width:100vw;height:100vh;background-color:var(--tblr-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--tblr-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--tblr-modal-header-padding);border-bottom:var(--tblr-modal-header-border-width) solid var(--tblr-modal-header-border-color);border-top-left-radius:var(--tblr-modal-inner-border-radius);border-top-right-radius:var(--tblr-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--tblr-modal-header-padding-y) * .5) calc(var(--tblr-modal-header-padding-x) * .5);margin:calc(-.5 * var(--tblr-modal-header-padding-y)) calc(-.5 * var(--tblr-modal-header-padding-x)) calc(-.5 * var(--tblr-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--tblr-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--tblr-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--tblr-modal-padding) - var(--tblr-modal-footer-gap) * .5);background-color:var(--tblr-modal-footer-bg);border-top:var(--tblr-modal-footer-border-width) solid var(--tblr-modal-footer-border-color);border-bottom-right-radius:var(--tblr-modal-inner-border-radius);border-bottom-left-radius:var(--tblr-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--tblr-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--tblr-modal-margin: 1.75rem;--tblr-modal-box-shadow: var(--tblr-box-shadow)}.modal-dialog{max-width:var(--tblr-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--tblr-modal-width: 380px}}@media (min-width: 992px){.modal-lg,.modal-xl{--tblr-modal-width: 720px}}@media (min-width: 1200px){.modal-xl{--tblr-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--tblr-tooltip-zindex: 1080;--tblr-tooltip-max-width: 200px;--tblr-tooltip-padding-x: var(--tblr-spacer-2);--tblr-tooltip-padding-y: var(--tblr-spacer-2);--tblr-tooltip-margin: ;--tblr-tooltip-font-size: .765625rem;--tblr-tooltip-color: var(--tblr-light);--tblr-tooltip-bg: var(--tblr-bg-surface-dark);--tblr-tooltip-border-radius: var(--tblr-border-radius);--tblr-tooltip-opacity: .9;--tblr-tooltip-arrow-width: .8rem;--tblr-tooltip-arrow-height: .4rem;z-index:var(--tblr-tooltip-zindex);display:block;margin:var(--tblr-tooltip-margin);font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--tblr-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--tblr-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--tblr-tooltip-arrow-width);height:var(--tblr-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--tblr-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * .5) 0;border-top-color:var(--tblr-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--tblr-tooltip-arrow-height));width:var(--tblr-tooltip-arrow-height);height:var(--tblr-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * .5) 0;border-right-color:var(--tblr-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--tblr-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height);border-bottom-color:var(--tblr-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--tblr-tooltip-arrow-height));width:var(--tblr-tooltip-arrow-height);height:var(--tblr-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--tblr-tooltip-arrow-width) * .5) 0 calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height);border-left-color:var(--tblr-tooltip-bg)}.tooltip-inner{max-width:var(--tblr-tooltip-max-width);padding:var(--tblr-tooltip-padding-y) var(--tblr-tooltip-padding-x);color:var(--tblr-tooltip-color);text-align:center;background-color:var(--tblr-tooltip-bg);border-radius:var(--tblr-tooltip-border-radius)}.popover{--tblr-popover-zindex: 1070;--tblr-popover-max-width: 276px;--tblr-popover-font-size: .765625rem;--tblr-popover-bg: var(--tblr-bg-surface);--tblr-popover-border-width: var(--tblr-border-width);--tblr-popover-border-color: var(--tblr-border-color);--tblr-popover-border-radius: var(--tblr-border-radius-lg);--tblr-popover-inner-border-radius: calc(var(--tblr-border-radius-lg) - var(--tblr-border-width));--tblr-popover-box-shadow: var(--tblr-box-shadow);--tblr-popover-header-padding-x: 1rem;--tblr-popover-header-padding-y: .5rem;--tblr-popover-header-font-size: .875rem;--tblr-popover-header-color: inherit;--tblr-popover-header-bg: transparent;--tblr-popover-body-padding-x: 1rem;--tblr-popover-body-padding-y: 1rem;--tblr-popover-body-color: inherit;--tblr-popover-arrow-width: 1rem;--tblr-popover-arrow-height: .5rem;--tblr-popover-arrow-border: var(--tblr-popover-border-color);z-index:var(--tblr-popover-zindex);display:block;max-width:var(--tblr-popover-max-width);font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--tblr-popover-font-size);word-wrap:break-word;background-color:var(--tblr-popover-bg);background-clip:padding-box;border:var(--tblr-popover-border-width) solid var(--tblr-popover-border-color);border-radius:var(--tblr-popover-border-radius);box-shadow:var(--tblr-popover-box-shadow)}.popover .popover-arrow{display:block;width:var(--tblr-popover-arrow-width);height:var(--tblr-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--tblr-popover-arrow-height)) - var(--tblr-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--tblr-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--tblr-popover-border-width);border-top-color:var(--tblr-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--tblr-popover-arrow-height)) - var(--tblr-popover-border-width));width:var(--tblr-popover-arrow-height);height:var(--tblr-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--tblr-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--tblr-popover-border-width);border-right-color:var(--tblr-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--tblr-popover-arrow-height)) - var(--tblr-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--tblr-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--tblr-popover-border-width);border-bottom-color:var(--tblr-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--tblr-popover-arrow-width);margin-left:calc(-.5 * var(--tblr-popover-arrow-width));content:"";border-bottom:var(--tblr-popover-border-width) solid var(--tblr-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--tblr-popover-arrow-height)) - var(--tblr-popover-border-width));width:var(--tblr-popover-arrow-height);height:var(--tblr-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--tblr-popover-arrow-width) * .5) 0 calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--tblr-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--tblr-popover-border-width);border-left-color:var(--tblr-popover-bg)}.popover-header{padding:var(--tblr-popover-header-padding-y) var(--tblr-popover-header-padding-x);margin-bottom:0;font-size:var(--tblr-popover-header-font-size);color:var(--tblr-popover-header-color);background-color:var(--tblr-popover-header-bg);border-bottom:var(--tblr-popover-border-width) solid var(--tblr-popover-border-color);border-top-left-radius:var(--tblr-popover-inner-border-radius);border-top-right-radius:var(--tblr-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--tblr-popover-body-padding-y) var(--tblr-popover-body-padding-x);color:var(--tblr-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:1.5rem;height:1.5rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='15 18 9 12 15 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='9 18 15 12 9 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--tblr-spinner-width);height:var(--tblr-spinner-height);vertical-align:var(--tblr-spinner-vertical-align);border-radius:50%;animation:var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--tblr-spinner-width: 1.5rem;--tblr-spinner-height: 1.5rem;--tblr-spinner-vertical-align: -.125em;--tblr-spinner-border-width: 2px;--tblr-spinner-animation-speed: .75s;--tblr-spinner-animation-name: spinner-border;border:var(--tblr-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--tblr-spinner-width: 1rem;--tblr-spinner-height: 1rem;--tblr-spinner-border-width: 1px}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--tblr-spinner-width: 1.5rem;--tblr-spinner-height: 1.5rem;--tblr-spinner-vertical-align: -.125em;--tblr-spinner-animation-speed: .75s;--tblr-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--tblr-spinner-width: 1rem;--tblr-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--tblr-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--tblr-offcanvas-zindex: 1045;--tblr-offcanvas-width: 400px;--tblr-offcanvas-height: 30vh;--tblr-offcanvas-padding-x: 1.5rem;--tblr-offcanvas-padding-y: 1.5rem;--tblr-offcanvas-color: var(--tblr-body-color);--tblr-offcanvas-bg: var(--tblr-bg-surface);--tblr-offcanvas-border-width: var(--tblr-border-width);--tblr-offcanvas-border-color: var(--tblr-border-color);--tblr-offcanvas-box-shadow: var(--tblr-box-shadow-sm);--tblr-offcanvas-transition: transform .3s ease-in-out;--tblr-offcanvas-title-line-height: 1.4285714286}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#182433}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.24}.offcanvas-header{display:flex;align-items:center;padding:var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--tblr-offcanvas-padding-y) * .5) calc(var(--tblr-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--tblr-offcanvas-padding-y)) calc(-.5 * var(--tblr-offcanvas-padding-x)) calc(-.5 * var(--tblr-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--tblr-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.2}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.1}}.placeholder-wave{mask-image:linear-gradient(130deg,#000 55%,#000000e6,#000 95%);mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#f6f8fb!important;background-color:RGBA(var(--tblr-primary-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-secondary,.text-bg-gray{color:#f6f8fb!important;background-color:RGBA(var(--tblr-secondary-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-success{color:#f6f8fb!important;background-color:RGBA(var(--tblr-success-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-info{color:#f6f8fb!important;background-color:RGBA(var(--tblr-info-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-warning{color:#f6f8fb!important;background-color:RGBA(var(--tblr-warning-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-danger{color:#f6f8fb!important;background-color:RGBA(var(--tblr-danger-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-light,.text-bg-white{color:#182433!important;background-color:RGBA(var(--tblr-light-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-dark,.text-bg-black{color:#f6f8fb!important;background-color:RGBA(var(--tblr-dark-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-muted{color:#f6f8fb!important;background-color:RGBA(var(--tblr-muted-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-blue{color:#f6f8fb!important;background-color:RGBA(var(--tblr-blue-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-azure{color:#f6f8fb!important;background-color:RGBA(var(--tblr-azure-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-indigo{color:#f6f8fb!important;background-color:RGBA(var(--tblr-indigo-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-purple{color:#f6f8fb!important;background-color:RGBA(var(--tblr-purple-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-pink{color:#f6f8fb!important;background-color:RGBA(var(--tblr-pink-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-red{color:#f6f8fb!important;background-color:RGBA(var(--tblr-red-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-orange{color:#f6f8fb!important;background-color:RGBA(var(--tblr-orange-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-yellow{color:#f6f8fb!important;background-color:RGBA(var(--tblr-yellow-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-lime{color:#f6f8fb!important;background-color:RGBA(var(--tblr-lime-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-green{color:#f6f8fb!important;background-color:RGBA(var(--tblr-green-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-teal{color:#f6f8fb!important;background-color:RGBA(var(--tblr-teal-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-cyan{color:#f6f8fb!important;background-color:RGBA(var(--tblr-cyan-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-x{color:#f6f8fb!important;background-color:RGBA(var(--tblr-x-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-facebook{color:#f6f8fb!important;background-color:RGBA(var(--tblr-facebook-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-twitter{color:#f6f8fb!important;background-color:RGBA(var(--tblr-twitter-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-linkedin{color:#f6f8fb!important;background-color:RGBA(var(--tblr-linkedin-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-google{color:#f6f8fb!important;background-color:RGBA(var(--tblr-google-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-youtube{color:#f6f8fb!important;background-color:RGBA(var(--tblr-youtube-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-vimeo{color:#f6f8fb!important;background-color:RGBA(var(--tblr-vimeo-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-dribbble{color:#f6f8fb!important;background-color:RGBA(var(--tblr-dribbble-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-github{color:#f6f8fb!important;background-color:RGBA(var(--tblr-github-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-instagram{color:#f6f8fb!important;background-color:RGBA(var(--tblr-instagram-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-pinterest{color:#f6f8fb!important;background-color:RGBA(var(--tblr-pinterest-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-vk{color:#f6f8fb!important;background-color:RGBA(var(--tblr-vk-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-rss{color:#f6f8fb!important;background-color:RGBA(var(--tblr-rss-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-flickr{color:#f6f8fb!important;background-color:RGBA(var(--tblr-flickr-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-bitbucket{color:#f6f8fb!important;background-color:RGBA(var(--tblr-bitbucket-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-tabler{color:#f6f8fb!important;background-color:RGBA(var(--tblr-tabler-rgb),var(--tblr-bg-opacity, 1))!important}.link-primary{color:RGBA(var(--tblr-primary-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-primary-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-primary:hover,.link-primary:focus{color:RGBA(0,106,100,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(0,106,100,var(--tblr-link-underline-opacity, 1))!important}.link-secondary{color:RGBA(var(--tblr-secondary-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-secondary-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,98,116,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(86,98,116,var(--tblr-link-underline-opacity, 1))!important}.link-success{color:RGBA(var(--tblr-success-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-success-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-success:hover,.link-success:focus{color:RGBA(38,143,54,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(38,143,54,var(--tblr-link-underline-opacity, 1))!important}.link-info{color:RGBA(var(--tblr-info-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-info-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-info:hover,.link-info:focus{color:RGBA(53,122,180,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(53,122,180,var(--tblr-link-underline-opacity, 1))!important}.link-warning{color:RGBA(var(--tblr-warning-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-warning-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-warning:hover,.link-warning:focus{color:RGBA(198,82,6,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(198,82,6,var(--tblr-link-underline-opacity, 1))!important}.link-danger{color:RGBA(var(--tblr-danger-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-danger-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-danger:hover,.link-danger:focus{color:RGBA(171,46,46,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(171,46,46,var(--tblr-link-underline-opacity, 1))!important}.link-light{color:RGBA(var(--tblr-light-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-light-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-light:hover,.link-light:focus{color:RGBA(248,249,252,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(248,249,252,var(--tblr-link-underline-opacity, 1))!important}.link-dark{color:RGBA(var(--tblr-dark-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-dark-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-dark:hover,.link-dark:focus{color:RGBA(19,29,41,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(19,29,41,var(--tblr-link-underline-opacity, 1))!important}.link-muted{color:RGBA(var(--tblr-muted-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-muted-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-muted:hover,.link-muted:focus{color:RGBA(86,98,116,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(86,98,116,var(--tblr-link-underline-opacity, 1))!important}.link-blue{color:RGBA(var(--tblr-blue-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-blue-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-blue:hover,.link-blue:focus{color:RGBA(5,89,167,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(5,89,167,var(--tblr-link-underline-opacity, 1))!important}.link-azure{color:RGBA(var(--tblr-azure-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-azure-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-azure:hover,.link-azure:focus{color:RGBA(53,122,180,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(53,122,180,var(--tblr-link-underline-opacity, 1))!important}.link-indigo{color:RGBA(var(--tblr-indigo-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-indigo-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-indigo:hover,.link-indigo:focus{color:RGBA(53,79,188,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(53,79,188,var(--tblr-link-underline-opacity, 1))!important}.link-purple{color:RGBA(var(--tblr-purple-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-purple-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-purple:hover,.link-purple:focus{color:RGBA(139,50,161,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(139,50,161,var(--tblr-link-underline-opacity, 1))!important}.link-pink{color:RGBA(var(--tblr-pink-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-pink-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-pink:hover,.link-pink:focus{color:RGBA(171,41,86,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(171,41,86,var(--tblr-link-underline-opacity, 1))!important}.link-red{color:RGBA(var(--tblr-red-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-red-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-red:hover,.link-red:focus{color:RGBA(171,46,46,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(171,46,46,var(--tblr-link-underline-opacity, 1))!important}.link-orange{color:RGBA(var(--tblr-orange-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-orange-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-orange:hover,.link-orange:focus{color:RGBA(198,82,6,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(198,82,6,var(--tblr-link-underline-opacity, 1))!important}.link-yellow{color:RGBA(var(--tblr-yellow-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-yellow-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-yellow:hover,.link-yellow:focus{color:RGBA(196,127,0,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(196,127,0,var(--tblr-link-underline-opacity, 1))!important}.link-lime{color:RGBA(var(--tblr-lime-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-lime-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-lime:hover,.link-lime:focus{color:RGBA(93,147,18,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(93,147,18,var(--tblr-link-underline-opacity, 1))!important}.link-green{color:RGBA(var(--tblr-green-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-green-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-green:hover,.link-green:focus{color:RGBA(38,143,54,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(38,143,54,var(--tblr-link-underline-opacity, 1))!important}.link-teal{color:RGBA(var(--tblr-teal-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-teal-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-teal:hover,.link-teal:focus{color:RGBA(10,133,96,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(10,133,96,var(--tblr-link-underline-opacity, 1))!important}.link-cyan{color:RGBA(var(--tblr-cyan-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-cyan-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-cyan:hover,.link-cyan:focus{color:RGBA(18,130,147,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(18,130,147,var(--tblr-link-underline-opacity, 1))!important}.link-x{color:RGBA(var(--tblr-x-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-x-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-x:hover,.link-x:focus{color:RGBA(0,0,0,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(0,0,0,var(--tblr-link-underline-opacity, 1))!important}.link-facebook{color:RGBA(var(--tblr-facebook-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-facebook-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-facebook:hover,.link-facebook:focus{color:RGBA(19,95,194,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(19,95,194,var(--tblr-link-underline-opacity, 1))!important}.link-twitter{color:RGBA(var(--tblr-twitter-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-twitter-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-twitter:hover,.link-twitter:focus{color:RGBA(23,129,194,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(23,129,194,var(--tblr-link-underline-opacity, 1))!important}.link-linkedin{color:RGBA(var(--tblr-linkedin-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-linkedin-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-linkedin:hover,.link-linkedin:focus{color:RGBA(8,82,155,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(8,82,155,var(--tblr-link-underline-opacity, 1))!important}.link-google{color:RGBA(var(--tblr-google-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-google-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-google:hover,.link-google:focus{color:RGBA(176,62,52,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(176,62,52,var(--tblr-link-underline-opacity, 1))!important}.link-youtube{color:RGBA(var(--tblr-youtube-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-youtube-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-youtube:hover,.link-youtube:focus{color:RGBA(204,0,0,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(204,0,0,var(--tblr-link-underline-opacity, 1))!important}.link-vimeo{color:RGBA(var(--tblr-vimeo-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-vimeo-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-vimeo:hover,.link-vimeo:focus{color:RGBA(21,146,187,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(21,146,187,var(--tblr-link-underline-opacity, 1))!important}.link-dribbble{color:RGBA(var(--tblr-dribbble-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-dribbble-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-dribbble:hover,.link-dribbble:focus{color:RGBA(187,61,110,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(187,61,110,var(--tblr-link-underline-opacity, 1))!important}.link-github{color:RGBA(var(--tblr-github-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-github-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-github:hover,.link-github:focus{color:RGBA(19,18,18,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(19,18,18,var(--tblr-link-underline-opacity, 1))!important}.link-instagram{color:RGBA(var(--tblr-instagram-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-instagram-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-instagram:hover,.link-instagram:focus{color:RGBA(182,51,76,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(182,51,76,var(--tblr-link-underline-opacity, 1))!important}.link-pinterest{color:RGBA(var(--tblr-pinterest-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-pinterest-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-pinterest:hover,.link-pinterest:focus{color:RGBA(151,6,22,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(151,6,22,var(--tblr-link-underline-opacity, 1))!important}.link-vk{color:RGBA(var(--tblr-vk-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-vk-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-vk:hover,.link-vk:focus{color:RGBA(79,105,134,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(79,105,134,var(--tblr-link-underline-opacity, 1))!important}.link-rss{color:RGBA(var(--tblr-rss-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-rss-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-rss:hover,.link-rss:focus{color:RGBA(204,132,0,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(204,132,0,var(--tblr-link-underline-opacity, 1))!important}.link-flickr{color:RGBA(var(--tblr-flickr-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-flickr-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-flickr:hover,.link-flickr:focus{color:RGBA(0,79,176,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(0,79,176,var(--tblr-link-underline-opacity, 1))!important}.link-bitbucket{color:RGBA(var(--tblr-bitbucket-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-bitbucket-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-bitbucket:hover,.link-bitbucket:focus{color:RGBA(0,66,163,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(0,66,163,var(--tblr-link-underline-opacity, 1))!important}.link-tabler{color:RGBA(var(--tblr-tabler-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-tabler-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-tabler:hover,.link-tabler:focus{color:RGBA(5,89,167,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(5,89,167,var(--tblr-link-underline-opacity, 1))!important}.link-body-emphasis{color:RGBA(var(--tblr-emphasis-color-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-emphasis-color-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--tblr-emphasis-color-rgb),var(--tblr-link-opacity, .75))!important;text-decoration-color:RGBA(var(--tblr-emphasis-color-rgb),var(--tblr-link-underline-opacity, .75))!important}.focus-ring:focus{outline:0;box-shadow:var(--tblr-focus-ring-x, 0) var(--tblr-focus-ring-y, 0) var(--tblr-focus-ring-blur, 0) var(--tblr-focus-ring-width) var(--tblr-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--tblr-link-color-rgb),var(--tblr-link-opacity, .5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--tblr-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--tblr-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--tblr-aspect-ratio: 100%}.ratio-2x1{--tblr-aspect-ratio: 50%}.ratio-1x2{--tblr-aspect-ratio: 200%}.ratio-3x1{--tblr-aspect-ratio: 33.3333333333%}.ratio-1x3{--tblr-aspect-ratio: 300%}.ratio-4x3{--tblr-aspect-ratio: 75%}.ratio-3x4{--tblr-aspect-ratio: 133.3333333333%}.ratio-16x9{--tblr-aspect-ratio: 56.25%}.ratio-9x16{--tblr-aspect-ratio: 177.7777777778%}.ratio-21x9{--tblr-aspect-ratio: 42.8571428571%}.ratio-9x21{--tblr-aspect-ratio: 233.3333333333%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--tblr-border-width);min-height:1em;background-color:currentcolor;opacity:.16}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--tblr-box-shadow)!important}.shadow-sm{box-shadow:var(--tblr-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--tblr-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--tblr-focus-ring-color: rgba(var(--tblr-primary-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-secondary{--tblr-focus-ring-color: rgba(var(--tblr-secondary-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-success{--tblr-focus-ring-color: rgba(var(--tblr-success-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-info{--tblr-focus-ring-color: rgba(var(--tblr-info-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-warning{--tblr-focus-ring-color: rgba(var(--tblr-warning-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-danger{--tblr-focus-ring-color: rgba(var(--tblr-danger-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-light{--tblr-focus-ring-color: rgba(var(--tblr-light-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-dark{--tblr-focus-ring-color: rgba(var(--tblr-dark-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-muted{--tblr-focus-ring-color: rgba(var(--tblr-muted-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-blue{--tblr-focus-ring-color: rgba(var(--tblr-blue-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-azure{--tblr-focus-ring-color: rgba(var(--tblr-azure-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-indigo{--tblr-focus-ring-color: rgba(var(--tblr-indigo-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-purple{--tblr-focus-ring-color: rgba(var(--tblr-purple-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-pink{--tblr-focus-ring-color: rgba(var(--tblr-pink-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-red{--tblr-focus-ring-color: rgba(var(--tblr-red-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-orange{--tblr-focus-ring-color: rgba(var(--tblr-orange-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-yellow{--tblr-focus-ring-color: rgba(var(--tblr-yellow-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-lime{--tblr-focus-ring-color: rgba(var(--tblr-lime-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-green{--tblr-focus-ring-color: rgba(var(--tblr-green-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-teal{--tblr-focus-ring-color: rgba(var(--tblr-teal-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-cyan{--tblr-focus-ring-color: rgba(var(--tblr-cyan-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-x{--tblr-focus-ring-color: rgba(var(--tblr-x-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-facebook{--tblr-focus-ring-color: rgba(var(--tblr-facebook-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-twitter{--tblr-focus-ring-color: rgba(var(--tblr-twitter-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-linkedin{--tblr-focus-ring-color: rgba(var(--tblr-linkedin-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-google{--tblr-focus-ring-color: rgba(var(--tblr-google-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-youtube{--tblr-focus-ring-color: rgba(var(--tblr-youtube-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-vimeo{--tblr-focus-ring-color: rgba(var(--tblr-vimeo-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-dribbble{--tblr-focus-ring-color: rgba(var(--tblr-dribbble-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-github{--tblr-focus-ring-color: rgba(var(--tblr-github-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-instagram{--tblr-focus-ring-color: rgba(var(--tblr-instagram-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-pinterest{--tblr-focus-ring-color: rgba(var(--tblr-pinterest-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-vk{--tblr-focus-ring-color: rgba(var(--tblr-vk-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-rss{--tblr-focus-ring-color: rgba(var(--tblr-rss-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-flickr{--tblr-focus-ring-color: rgba(var(--tblr-flickr-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-bitbucket{--tblr-focus-ring-color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-tabler{--tblr-focus-ring-color: rgba(var(--tblr-tabler-rgb), var(--tblr-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-wide{border:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-0{border:0!important}.border-top{border-top:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-top-wide{border-top:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-end-wide{border-right:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-bottom-wide{border-bottom:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-start-wide{border-left:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-start-0{border-left:0!important}.border-primary{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-primary-rgb),var(--tblr-border-opacity))!important}.border-secondary{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-secondary-rgb),var(--tblr-border-opacity))!important}.border-success{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-success-rgb),var(--tblr-border-opacity))!important}.border-info{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-info-rgb),var(--tblr-border-opacity))!important}.border-warning{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-warning-rgb),var(--tblr-border-opacity))!important}.border-danger{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-danger-rgb),var(--tblr-border-opacity))!important}.border-light{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-light-rgb),var(--tblr-border-opacity))!important}.border-dark{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-dark-rgb),var(--tblr-border-opacity))!important}.border-muted{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-muted-rgb),var(--tblr-border-opacity))!important}.border-blue{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-blue-rgb),var(--tblr-border-opacity))!important}.border-azure{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-azure-rgb),var(--tblr-border-opacity))!important}.border-indigo{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-indigo-rgb),var(--tblr-border-opacity))!important}.border-purple{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-purple-rgb),var(--tblr-border-opacity))!important}.border-pink{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-pink-rgb),var(--tblr-border-opacity))!important}.border-red{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-red-rgb),var(--tblr-border-opacity))!important}.border-orange{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-orange-rgb),var(--tblr-border-opacity))!important}.border-yellow{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-yellow-rgb),var(--tblr-border-opacity))!important}.border-lime{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-lime-rgb),var(--tblr-border-opacity))!important}.border-green{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-green-rgb),var(--tblr-border-opacity))!important}.border-teal{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-teal-rgb),var(--tblr-border-opacity))!important}.border-cyan{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-cyan-rgb),var(--tblr-border-opacity))!important}.border-x{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-x-rgb),var(--tblr-border-opacity))!important}.border-facebook{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-facebook-rgb),var(--tblr-border-opacity))!important}.border-twitter{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-twitter-rgb),var(--tblr-border-opacity))!important}.border-linkedin{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-border-opacity))!important}.border-google{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-google-rgb),var(--tblr-border-opacity))!important}.border-youtube{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-youtube-rgb),var(--tblr-border-opacity))!important}.border-vimeo{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-border-opacity))!important}.border-dribbble{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-border-opacity))!important}.border-github{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-github-rgb),var(--tblr-border-opacity))!important}.border-instagram{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-instagram-rgb),var(--tblr-border-opacity))!important}.border-pinterest{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-border-opacity))!important}.border-vk{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-vk-rgb),var(--tblr-border-opacity))!important}.border-rss{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-rss-rgb),var(--tblr-border-opacity))!important}.border-flickr{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-flickr-rgb),var(--tblr-border-opacity))!important}.border-bitbucket{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-border-opacity))!important}.border-tabler{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-tabler-rgb),var(--tblr-border-opacity))!important}.border-black{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-black-rgb),var(--tblr-border-opacity))!important}.border-white{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-white-rgb),var(--tblr-border-opacity))!important}.border-primary-subtle{border-color:var(--tblr-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--tblr-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--tblr-success-border-subtle)!important}.border-info-subtle{border-color:var(--tblr-info-border-subtle)!important}.border-warning-subtle{border-color:var(--tblr-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--tblr-danger-border-subtle)!important}.border-light-subtle{border-color:var(--tblr-light-border-subtle)!important}.border-dark-subtle{border-color:var(--tblr-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--tblr-border-opacity: .1}.border-opacity-25{--tblr-border-opacity: .25}.border-opacity-50{--tblr-border-opacity: .5}.border-opacity-75{--tblr-border-opacity: .75}.border-opacity-100{--tblr-border-opacity: 1}.w-25{width:25%!important}.w-33{width:33.33333%!important}.w-50{width:50%!important}.w-66{width:66.66666%!important}.w-75{width:75%!important}.w-100{width:100%!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-33{height:33.33333%!important}.h-50{height:50%!important}.h-66{height:66.66666%!important}.h-75{height:75%!important}.h-100{height:100%!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:2rem!important}.m-6{margin:3rem!important}.m-7{margin:5rem!important}.m-8{margin:8rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:2rem!important;margin-left:2rem!important}.mx-6{margin-right:3rem!important;margin-left:3rem!important}.mx-7{margin-right:5rem!important;margin-left:5rem!important}.mx-8{margin-right:8rem!important;margin-left:8rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:2rem!important}.mt-6{margin-top:3rem!important}.mt-7{margin-top:5rem!important}.mt-8{margin-top:8rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:2rem!important}.me-6{margin-right:3rem!important}.me-7{margin-right:5rem!important}.me-8{margin-right:8rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:2rem!important}.mb-6{margin-bottom:3rem!important}.mb-7{margin-bottom:5rem!important}.mb-8{margin-bottom:8rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:2rem!important}.ms-6{margin-left:3rem!important}.ms-7{margin-left:5rem!important}.ms-8{margin-left:8rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:2rem!important}.p-6{padding:3rem!important}.p-7{padding:5rem!important}.p-8{padding:8rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:2rem!important;padding-left:2rem!important}.px-6{padding-right:3rem!important;padding-left:3rem!important}.px-7{padding-right:5rem!important;padding-left:5rem!important}.px-8{padding-right:8rem!important;padding-left:8rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:2rem!important}.pt-6{padding-top:3rem!important}.pt-7{padding-top:5rem!important}.pt-8{padding-top:8rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:2rem!important}.pe-6{padding-right:3rem!important}.pe-7{padding-right:5rem!important}.pe-8{padding-right:8rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:2rem!important}.pb-6{padding-bottom:3rem!important}.pb-7{padding-bottom:5rem!important}.pb-8{padding-bottom:8rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:2rem!important}.ps-6{padding-left:3rem!important}.ps-7{padding-left:5rem!important}.ps-8{padding-left:8rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:2rem!important}.gap-6{gap:3rem!important}.gap-7{gap:5rem!important}.gap-8{gap:8rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:2rem!important}.row-gap-6{row-gap:3rem!important}.row-gap-7{row-gap:5rem!important}.row-gap-8{row-gap:8rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:2rem!important}.column-gap-6{column-gap:3rem!important}.column-gap-7{column-gap:5rem!important}.column-gap-8{column-gap:8rem!important}.font-monospace{font-family:var(--tblr-font-monospace)!important}.fs-1{font-size:1.5rem!important}.fs-2{font-size:1.25rem!important}.fs-3{font-size:1rem!important}.fs-4{font-size:.875rem!important}.fs-5{font-size:.75rem!important}.fs-6{font-size:.625rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold,.fw-bold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.1428571429!important}.lh-base{line-height:1.4285714286!important}.lh-lg{line-height:1.7142857143!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-muted{--tblr-text-opacity: 1;color:var(--tblr-secondary-color)!important}.text-black{--tblr-text-opacity: 1;color:rgba(var(--tblr-black-rgb),var(--tblr-text-opacity))!important}.text-white{--tblr-text-opacity: 1;color:rgba(var(--tblr-white-rgb),var(--tblr-text-opacity))!important}.text-body{--tblr-text-opacity: 1;color:rgba(var(--tblr-body-color-rgb),var(--tblr-text-opacity))!important}.text-black-50{--tblr-text-opacity: 1;color:#00000080!important}.text-white-50{--tblr-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--tblr-text-opacity: 1;color:var(--tblr-secondary-color)!important}.text-body-tertiary{--tblr-text-opacity: 1;color:var(--tblr-tertiary-color)!important}.text-body-emphasis{--tblr-text-opacity: 1;color:var(--tblr-emphasis-color)!important}.text-reset{--tblr-text-opacity: 1;color:inherit!important}.text-opacity-25{--tblr-text-opacity: .25}.text-opacity-50{--tblr-text-opacity: .5}.text-opacity-75{--tblr-text-opacity: .75}.text-opacity-100{--tblr-text-opacity: 1}.text-primary-emphasis{color:var(--tblr-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--tblr-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--tblr-success-text-emphasis)!important}.text-info-emphasis{color:var(--tblr-info-text-emphasis)!important}.text-warning-emphasis{color:var(--tblr-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--tblr-danger-text-emphasis)!important}.text-light-emphasis{color:var(--tblr-light-text-emphasis)!important}.text-dark-emphasis{color:var(--tblr-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--tblr-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--tblr-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--tblr-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--tblr-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--tblr-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-primary-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-secondary{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-secondary-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-success{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-success-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-info{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-info-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-warning{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-warning-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-danger{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-danger-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-light{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-light-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-dark{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-dark-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-muted{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-muted-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-blue{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-blue-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-azure{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-azure-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-indigo{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-indigo-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-purple{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-purple-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-pink{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-pink-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-red{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-red-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-orange{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-orange-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-yellow{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-yellow-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-lime{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-lime-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-green{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-green-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-teal{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-teal-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-cyan{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-cyan-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-x{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-x-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-facebook{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-facebook-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-twitter{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-twitter-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-linkedin{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-google{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-google-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-youtube{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-youtube-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-vimeo{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-dribbble{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-github{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-github-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-instagram{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-instagram-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-pinterest{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-vk{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-vk-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-rss{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-rss-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-flickr{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-flickr-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-bitbucket{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-tabler{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-tabler-rgb),var(--tblr-link-underline-opacity))!important}.link-underline{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-link-color-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--tblr-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--tblr-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--tblr-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--tblr-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--tblr-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--tblr-link-underline-opacity: 1}.bg-black{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-black-rgb),var(--tblr-bg-opacity))!important}.bg-body{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-body-bg-rgb),var(--tblr-bg-opacity))!important}.bg-transparent{--tblr-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-secondary-bg-rgb),var(--tblr-bg-opacity))!important}.bg-body-tertiary{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-tertiary-bg-rgb),var(--tblr-bg-opacity))!important}.bg-opacity-10{--tblr-bg-opacity: .1}.bg-opacity-25{--tblr-bg-opacity: .25}.bg-opacity-50{--tblr-bg-opacity: .5}.bg-opacity-75{--tblr-bg-opacity: .75}.bg-opacity-100{--tblr-bg-opacity: 1}.bg-primary-subtle{background-color:var(--tblr-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--tblr-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--tblr-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--tblr-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--tblr-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--tblr-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--tblr-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--tblr-dark-bg-subtle)!important}.bg-gradient{background-image:var(--tblr-gradient)!important}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--tblr-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--tblr-border-radius-sm)!important}.rounded-2{border-radius:var(--tblr-border-radius)!important}.rounded-3{border-radius:var(--tblr-border-radius-lg)!important}.rounded-4{border-radius:var(--tblr-border-radius-xl)!important}.rounded-5{border-radius:var(--tblr-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--tblr-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--tblr-border-radius)!important;border-top-right-radius:var(--tblr-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--tblr-border-radius-sm)!important;border-top-right-radius:var(--tblr-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--tblr-border-radius)!important;border-top-right-radius:var(--tblr-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--tblr-border-radius-lg)!important;border-top-right-radius:var(--tblr-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--tblr-border-radius-xl)!important;border-top-right-radius:var(--tblr-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--tblr-border-radius-xxl)!important;border-top-right-radius:var(--tblr-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--tblr-border-radius-pill)!important;border-top-right-radius:var(--tblr-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--tblr-border-radius)!important;border-bottom-right-radius:var(--tblr-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--tblr-border-radius-sm)!important;border-bottom-right-radius:var(--tblr-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--tblr-border-radius)!important;border-bottom-right-radius:var(--tblr-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--tblr-border-radius-lg)!important;border-bottom-right-radius:var(--tblr-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--tblr-border-radius-xl)!important;border-bottom-right-radius:var(--tblr-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--tblr-border-radius-xxl)!important;border-bottom-right-radius:var(--tblr-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--tblr-border-radius-pill)!important;border-bottom-right-radius:var(--tblr-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--tblr-border-radius)!important;border-bottom-left-radius:var(--tblr-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--tblr-border-radius-sm)!important;border-bottom-left-radius:var(--tblr-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--tblr-border-radius)!important;border-bottom-left-radius:var(--tblr-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--tblr-border-radius-lg)!important;border-bottom-left-radius:var(--tblr-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--tblr-border-radius-xl)!important;border-bottom-left-radius:var(--tblr-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--tblr-border-radius-xxl)!important;border-bottom-left-radius:var(--tblr-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--tblr-border-radius-pill)!important;border-bottom-left-radius:var(--tblr-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--tblr-border-radius)!important;border-top-left-radius:var(--tblr-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--tblr-border-radius-sm)!important;border-top-left-radius:var(--tblr-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--tblr-border-radius)!important;border-top-left-radius:var(--tblr-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--tblr-border-radius-lg)!important;border-top-left-radius:var(--tblr-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--tblr-border-radius-xl)!important;border-top-left-radius:var(--tblr-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--tblr-border-radius-xxl)!important;border-top-left-radius:var(--tblr-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--tblr-border-radius-pill)!important;border-top-left-radius:var(--tblr-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}.object-contain{object-fit:contain!important}.object-cover{object-fit:cover!important}.object-fill{object-fit:fill!important}.object-scale-down{object-fit:scale-down!important}.object-none{object-fit:none!important}.tracking-tight{letter-spacing:-.05em!important}.tracking-normal{letter-spacing:0!important}.tracking-wide{letter-spacing:.05em!important}.cursor-auto{cursor:auto!important}.cursor-pointer{cursor:pointer!important}.cursor-move{cursor:move!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-zoom-in{cursor:zoom-in!important}.cursor-zoom-out{cursor:zoom-out!important}.cursor-default{cursor:default!important}.cursor-none{cursor:none!important}.cursor-help{cursor:help!important}.cursor-progress{cursor:progress!important}.cursor-wait{cursor:wait!important}.cursor-text{cursor:text!important}.cursor-v-text{cursor:vertical-text!important}.cursor-grab{cursor:grab!important}.cursor-grabbing{cursor:grabbing!important}.border-x{border-left:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important;border-right:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-x-wide{border-left:2px var(--tblr-border-style) rgba(4,32,69,.1)!important;border-right:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-x-0{border-left:0!important;border-right:0!important}.border-y{border-top:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important;border-bottom:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-y-wide{border-top:2px var(--tblr-border-style) rgba(4,32,69,.1)!important;border-bottom:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-y-0{border-top:0!important;border-bottom:0!important}.columns-2{columns:2!important}.columns-3{columns:3!important}.columns-4{columns:4!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:2rem!important}.m-sm-6{margin:3rem!important}.m-sm-7{margin:5rem!important}.m-sm-8{margin:8rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:2rem!important;margin-left:2rem!important}.mx-sm-6{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-7{margin-right:5rem!important;margin-left:5rem!important}.mx-sm-8{margin-right:8rem!important;margin-left:8rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-sm-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-sm-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:2rem!important}.mt-sm-6{margin-top:3rem!important}.mt-sm-7{margin-top:5rem!important}.mt-sm-8{margin-top:8rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:2rem!important}.me-sm-6{margin-right:3rem!important}.me-sm-7{margin-right:5rem!important}.me-sm-8{margin-right:8rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:2rem!important}.mb-sm-6{margin-bottom:3rem!important}.mb-sm-7{margin-bottom:5rem!important}.mb-sm-8{margin-bottom:8rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:2rem!important}.ms-sm-6{margin-left:3rem!important}.ms-sm-7{margin-left:5rem!important}.ms-sm-8{margin-left:8rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:2rem!important}.p-sm-6{padding:3rem!important}.p-sm-7{padding:5rem!important}.p-sm-8{padding:8rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:2rem!important;padding-left:2rem!important}.px-sm-6{padding-right:3rem!important;padding-left:3rem!important}.px-sm-7{padding-right:5rem!important;padding-left:5rem!important}.px-sm-8{padding-right:8rem!important;padding-left:8rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-sm-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-sm-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-sm-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:2rem!important}.pt-sm-6{padding-top:3rem!important}.pt-sm-7{padding-top:5rem!important}.pt-sm-8{padding-top:8rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:2rem!important}.pe-sm-6{padding-right:3rem!important}.pe-sm-7{padding-right:5rem!important}.pe-sm-8{padding-right:8rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:2rem!important}.pb-sm-6{padding-bottom:3rem!important}.pb-sm-7{padding-bottom:5rem!important}.pb-sm-8{padding-bottom:8rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:2rem!important}.ps-sm-6{padding-left:3rem!important}.ps-sm-7{padding-left:5rem!important}.ps-sm-8{padding-left:8rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:2rem!important}.gap-sm-6{gap:3rem!important}.gap-sm-7{gap:5rem!important}.gap-sm-8{gap:8rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:2rem!important}.row-gap-sm-6{row-gap:3rem!important}.row-gap-sm-7{row-gap:5rem!important}.row-gap-sm-8{row-gap:8rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:2rem!important}.column-gap-sm-6{column-gap:3rem!important}.column-gap-sm-7{column-gap:5rem!important}.column-gap-sm-8{column-gap:8rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}.columns-sm-2{columns:2!important}.columns-sm-3{columns:3!important}.columns-sm-4{columns:4!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:2rem!important}.m-md-6{margin:3rem!important}.m-md-7{margin:5rem!important}.m-md-8{margin:8rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:2rem!important;margin-left:2rem!important}.mx-md-6{margin-right:3rem!important;margin-left:3rem!important}.mx-md-7{margin-right:5rem!important;margin-left:5rem!important}.mx-md-8{margin-right:8rem!important;margin-left:8rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-md-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-md-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:2rem!important}.mt-md-6{margin-top:3rem!important}.mt-md-7{margin-top:5rem!important}.mt-md-8{margin-top:8rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:2rem!important}.me-md-6{margin-right:3rem!important}.me-md-7{margin-right:5rem!important}.me-md-8{margin-right:8rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:2rem!important}.mb-md-6{margin-bottom:3rem!important}.mb-md-7{margin-bottom:5rem!important}.mb-md-8{margin-bottom:8rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:2rem!important}.ms-md-6{margin-left:3rem!important}.ms-md-7{margin-left:5rem!important}.ms-md-8{margin-left:8rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:2rem!important}.p-md-6{padding:3rem!important}.p-md-7{padding:5rem!important}.p-md-8{padding:8rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:2rem!important;padding-left:2rem!important}.px-md-6{padding-right:3rem!important;padding-left:3rem!important}.px-md-7{padding-right:5rem!important;padding-left:5rem!important}.px-md-8{padding-right:8rem!important;padding-left:8rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-md-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-md-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-md-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:2rem!important}.pt-md-6{padding-top:3rem!important}.pt-md-7{padding-top:5rem!important}.pt-md-8{padding-top:8rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:2rem!important}.pe-md-6{padding-right:3rem!important}.pe-md-7{padding-right:5rem!important}.pe-md-8{padding-right:8rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:2rem!important}.pb-md-6{padding-bottom:3rem!important}.pb-md-7{padding-bottom:5rem!important}.pb-md-8{padding-bottom:8rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:2rem!important}.ps-md-6{padding-left:3rem!important}.ps-md-7{padding-left:5rem!important}.ps-md-8{padding-left:8rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:2rem!important}.gap-md-6{gap:3rem!important}.gap-md-7{gap:5rem!important}.gap-md-8{gap:8rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:2rem!important}.row-gap-md-6{row-gap:3rem!important}.row-gap-md-7{row-gap:5rem!important}.row-gap-md-8{row-gap:8rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:2rem!important}.column-gap-md-6{column-gap:3rem!important}.column-gap-md-7{column-gap:5rem!important}.column-gap-md-8{column-gap:8rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}.columns-md-2{columns:2!important}.columns-md-3{columns:3!important}.columns-md-4{columns:4!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:2rem!important}.m-lg-6{margin:3rem!important}.m-lg-7{margin:5rem!important}.m-lg-8{margin:8rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:2rem!important;margin-left:2rem!important}.mx-lg-6{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-7{margin-right:5rem!important;margin-left:5rem!important}.mx-lg-8{margin-right:8rem!important;margin-left:8rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-lg-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-lg-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:2rem!important}.mt-lg-6{margin-top:3rem!important}.mt-lg-7{margin-top:5rem!important}.mt-lg-8{margin-top:8rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:2rem!important}.me-lg-6{margin-right:3rem!important}.me-lg-7{margin-right:5rem!important}.me-lg-8{margin-right:8rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:2rem!important}.mb-lg-6{margin-bottom:3rem!important}.mb-lg-7{margin-bottom:5rem!important}.mb-lg-8{margin-bottom:8rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:2rem!important}.ms-lg-6{margin-left:3rem!important}.ms-lg-7{margin-left:5rem!important}.ms-lg-8{margin-left:8rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:2rem!important}.p-lg-6{padding:3rem!important}.p-lg-7{padding:5rem!important}.p-lg-8{padding:8rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:2rem!important;padding-left:2rem!important}.px-lg-6{padding-right:3rem!important;padding-left:3rem!important}.px-lg-7{padding-right:5rem!important;padding-left:5rem!important}.px-lg-8{padding-right:8rem!important;padding-left:8rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-lg-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-lg-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-lg-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:2rem!important}.pt-lg-6{padding-top:3rem!important}.pt-lg-7{padding-top:5rem!important}.pt-lg-8{padding-top:8rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:2rem!important}.pe-lg-6{padding-right:3rem!important}.pe-lg-7{padding-right:5rem!important}.pe-lg-8{padding-right:8rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:2rem!important}.pb-lg-6{padding-bottom:3rem!important}.pb-lg-7{padding-bottom:5rem!important}.pb-lg-8{padding-bottom:8rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:2rem!important}.ps-lg-6{padding-left:3rem!important}.ps-lg-7{padding-left:5rem!important}.ps-lg-8{padding-left:8rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:2rem!important}.gap-lg-6{gap:3rem!important}.gap-lg-7{gap:5rem!important}.gap-lg-8{gap:8rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:2rem!important}.row-gap-lg-6{row-gap:3rem!important}.row-gap-lg-7{row-gap:5rem!important}.row-gap-lg-8{row-gap:8rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:2rem!important}.column-gap-lg-6{column-gap:3rem!important}.column-gap-lg-7{column-gap:5rem!important}.column-gap-lg-8{column-gap:8rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}.columns-lg-2{columns:2!important}.columns-lg-3{columns:3!important}.columns-lg-4{columns:4!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:2rem!important}.m-xl-6{margin:3rem!important}.m-xl-7{margin:5rem!important}.m-xl-8{margin:8rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:2rem!important;margin-left:2rem!important}.mx-xl-6{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-7{margin-right:5rem!important;margin-left:5rem!important}.mx-xl-8{margin-right:8rem!important;margin-left:8rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-xl-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-xl-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:2rem!important}.mt-xl-6{margin-top:3rem!important}.mt-xl-7{margin-top:5rem!important}.mt-xl-8{margin-top:8rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:2rem!important}.me-xl-6{margin-right:3rem!important}.me-xl-7{margin-right:5rem!important}.me-xl-8{margin-right:8rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:2rem!important}.mb-xl-6{margin-bottom:3rem!important}.mb-xl-7{margin-bottom:5rem!important}.mb-xl-8{margin-bottom:8rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:2rem!important}.ms-xl-6{margin-left:3rem!important}.ms-xl-7{margin-left:5rem!important}.ms-xl-8{margin-left:8rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:2rem!important}.p-xl-6{padding:3rem!important}.p-xl-7{padding:5rem!important}.p-xl-8{padding:8rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:2rem!important;padding-left:2rem!important}.px-xl-6{padding-right:3rem!important;padding-left:3rem!important}.px-xl-7{padding-right:5rem!important;padding-left:5rem!important}.px-xl-8{padding-right:8rem!important;padding-left:8rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-xl-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-xl-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-xl-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:2rem!important}.pt-xl-6{padding-top:3rem!important}.pt-xl-7{padding-top:5rem!important}.pt-xl-8{padding-top:8rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:2rem!important}.pe-xl-6{padding-right:3rem!important}.pe-xl-7{padding-right:5rem!important}.pe-xl-8{padding-right:8rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:2rem!important}.pb-xl-6{padding-bottom:3rem!important}.pb-xl-7{padding-bottom:5rem!important}.pb-xl-8{padding-bottom:8rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:2rem!important}.ps-xl-6{padding-left:3rem!important}.ps-xl-7{padding-left:5rem!important}.ps-xl-8{padding-left:8rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:2rem!important}.gap-xl-6{gap:3rem!important}.gap-xl-7{gap:5rem!important}.gap-xl-8{gap:8rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:2rem!important}.row-gap-xl-6{row-gap:3rem!important}.row-gap-xl-7{row-gap:5rem!important}.row-gap-xl-8{row-gap:8rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:2rem!important}.column-gap-xl-6{column-gap:3rem!important}.column-gap-xl-7{column-gap:5rem!important}.column-gap-xl-8{column-gap:8rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}.columns-xl-2{columns:2!important}.columns-xl-3{columns:3!important}.columns-xl-4{columns:4!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:2rem!important}.m-xxl-6{margin:3rem!important}.m-xxl-7{margin:5rem!important}.m-xxl-8{margin:8rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:2rem!important;margin-left:2rem!important}.mx-xxl-6{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-7{margin-right:5rem!important;margin-left:5rem!important}.mx-xxl-8{margin-right:8rem!important;margin-left:8rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-xxl-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-xxl-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:2rem!important}.mt-xxl-6{margin-top:3rem!important}.mt-xxl-7{margin-top:5rem!important}.mt-xxl-8{margin-top:8rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:2rem!important}.me-xxl-6{margin-right:3rem!important}.me-xxl-7{margin-right:5rem!important}.me-xxl-8{margin-right:8rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:2rem!important}.mb-xxl-6{margin-bottom:3rem!important}.mb-xxl-7{margin-bottom:5rem!important}.mb-xxl-8{margin-bottom:8rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:2rem!important}.ms-xxl-6{margin-left:3rem!important}.ms-xxl-7{margin-left:5rem!important}.ms-xxl-8{margin-left:8rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:2rem!important}.p-xxl-6{padding:3rem!important}.p-xxl-7{padding:5rem!important}.p-xxl-8{padding:8rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:2rem!important;padding-left:2rem!important}.px-xxl-6{padding-right:3rem!important;padding-left:3rem!important}.px-xxl-7{padding-right:5rem!important;padding-left:5rem!important}.px-xxl-8{padding-right:8rem!important;padding-left:8rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-xxl-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-xxl-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-xxl-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:2rem!important}.pt-xxl-6{padding-top:3rem!important}.pt-xxl-7{padding-top:5rem!important}.pt-xxl-8{padding-top:8rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:2rem!important}.pe-xxl-6{padding-right:3rem!important}.pe-xxl-7{padding-right:5rem!important}.pe-xxl-8{padding-right:8rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:2rem!important}.pb-xxl-6{padding-bottom:3rem!important}.pb-xxl-7{padding-bottom:5rem!important}.pb-xxl-8{padding-bottom:8rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:2rem!important}.ps-xxl-6{padding-left:3rem!important}.ps-xxl-7{padding-left:5rem!important}.ps-xxl-8{padding-left:8rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:2rem!important}.gap-xxl-6{gap:3rem!important}.gap-xxl-7{gap:5rem!important}.gap-xxl-8{gap:8rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:2rem!important}.row-gap-xxl-6{row-gap:3rem!important}.row-gap-xxl-7{row-gap:5rem!important}.row-gap-xxl-8{row-gap:8rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:2rem!important}.column-gap-xxl-6{column-gap:3rem!important}.column-gap-xxl-7{column-gap:5rem!important}.column-gap-xxl-8{column-gap:8rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}.columns-xxl-2{columns:2!important}.columns-xxl-3{columns:3!important}.columns-xxl-4{columns:4!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root,:host{font-size:16px;height:100%}:root,:host,[data-bs-theme=light]{--tblr-primary: #00857D;--tblr-primary-rgb: 0, 133, 125;--tblr-primary-fg: var(--tblr-light);--tblr-primary-darken: #007871;--tblr-primary-lt: #e6f3f2;--tblr-primary-lt-rgb: 230, 243, 242;--tblr-secondary: #6c7a91;--tblr-secondary-rgb: 108, 122, 145;--tblr-secondary-fg: var(--tblr-light);--tblr-secondary-darken: #616e83;--tblr-secondary-lt: #f0f2f4;--tblr-secondary-lt-rgb: 240, 242, 244;--tblr-success: #2fb344;--tblr-success-rgb: 47, 179, 68;--tblr-success-fg: var(--tblr-light);--tblr-success-darken: #2aa13d;--tblr-success-lt: #eaf7ec;--tblr-success-lt-rgb: 234, 247, 236;--tblr-info: #4299e1;--tblr-info-rgb: 66, 153, 225;--tblr-info-fg: var(--tblr-light);--tblr-info-darken: #3b8acb;--tblr-info-lt: #ecf5fc;--tblr-info-lt-rgb: 236, 245, 252;--tblr-warning: #f76707;--tblr-warning-rgb: 247, 103, 7;--tblr-warning-fg: var(--tblr-light);--tblr-warning-darken: #de5d06;--tblr-warning-lt: #fef0e6;--tblr-warning-lt-rgb: 254, 240, 230;--tblr-danger: #d63939;--tblr-danger-rgb: 214, 57, 57;--tblr-danger-fg: var(--tblr-light);--tblr-danger-darken: #c13333;--tblr-danger-lt: #fbebeb;--tblr-danger-lt-rgb: 251, 235, 235;--tblr-light: #f6f8fb;--tblr-light-rgb: 246, 248, 251;--tblr-light-fg: var(--tblr-dark);--tblr-light-darken: #dddfe2;--tblr-light-lt: #fefeff;--tblr-light-lt-rgb: 254, 254, 255;--tblr-dark: #182433;--tblr-dark-rgb: 24, 36, 51;--tblr-dark-fg: var(--tblr-light);--tblr-dark-darken: #16202e;--tblr-dark-lt: #e8e9eb;--tblr-dark-lt-rgb: 232, 233, 235;--tblr-muted: #6c7a91;--tblr-muted-rgb: 108, 122, 145;--tblr-muted-fg: var(--tblr-light);--tblr-muted-darken: #616e83;--tblr-muted-lt: #f0f2f4;--tblr-muted-lt-rgb: 240, 242, 244;--tblr-blue: #066fd1;--tblr-blue-rgb: 6, 111, 209;--tblr-blue-fg: var(--tblr-light);--tblr-blue-darken: #0564bc;--tblr-blue-lt: #e6f1fa;--tblr-blue-lt-rgb: 230, 241, 250;--tblr-azure: #4299e1;--tblr-azure-rgb: 66, 153, 225;--tblr-azure-fg: var(--tblr-light);--tblr-azure-darken: #3b8acb;--tblr-azure-lt: #ecf5fc;--tblr-azure-lt-rgb: 236, 245, 252;--tblr-indigo: #4263eb;--tblr-indigo-rgb: 66, 99, 235;--tblr-indigo-fg: var(--tblr-light);--tblr-indigo-darken: #3b59d4;--tblr-indigo-lt: #eceffd;--tblr-indigo-lt-rgb: 236, 239, 253;--tblr-purple: #ae3ec9;--tblr-purple-rgb: 174, 62, 201;--tblr-purple-fg: var(--tblr-light);--tblr-purple-darken: #9d38b5;--tblr-purple-lt: #f7ecfa;--tblr-purple-lt-rgb: 247, 236, 250;--tblr-pink: #d6336c;--tblr-pink-rgb: 214, 51, 108;--tblr-pink-fg: var(--tblr-light);--tblr-pink-darken: #c12e61;--tblr-pink-lt: #fbebf0;--tblr-pink-lt-rgb: 251, 235, 240;--tblr-red: #d63939;--tblr-red-rgb: 214, 57, 57;--tblr-red-fg: var(--tblr-light);--tblr-red-darken: #c13333;--tblr-red-lt: #fbebeb;--tblr-red-lt-rgb: 251, 235, 235;--tblr-orange: #f76707;--tblr-orange-rgb: 247, 103, 7;--tblr-orange-fg: var(--tblr-light);--tblr-orange-darken: #de5d06;--tblr-orange-lt: #fef0e6;--tblr-orange-lt-rgb: 254, 240, 230;--tblr-yellow: #f59f00;--tblr-yellow-rgb: 245, 159, 0;--tblr-yellow-fg: var(--tblr-light);--tblr-yellow-darken: #dd8f00;--tblr-yellow-lt: #fef5e6;--tblr-yellow-lt-rgb: 254, 245, 230;--tblr-lime: #74b816;--tblr-lime-rgb: 116, 184, 22;--tblr-lime-fg: var(--tblr-light);--tblr-lime-darken: #68a614;--tblr-lime-lt: #f1f8e8;--tblr-lime-lt-rgb: 241, 248, 232;--tblr-green: #2fb344;--tblr-green-rgb: 47, 179, 68;--tblr-green-fg: var(--tblr-light);--tblr-green-darken: #2aa13d;--tblr-green-lt: #eaf7ec;--tblr-green-lt-rgb: 234, 247, 236;--tblr-teal: #0ca678;--tblr-teal-rgb: 12, 166, 120;--tblr-teal-fg: var(--tblr-light);--tblr-teal-darken: #0b956c;--tblr-teal-lt: #e7f6f2;--tblr-teal-lt-rgb: 231, 246, 242;--tblr-cyan: #17a2b8;--tblr-cyan-rgb: 23, 162, 184;--tblr-cyan-fg: var(--tblr-light);--tblr-cyan-darken: #1592a6;--tblr-cyan-lt: #e8f6f8;--tblr-cyan-lt-rgb: 232, 246, 248;--tblr-x: #000000;--tblr-x-rgb: 0, 0, 0;--tblr-x-fg: var(--tblr-light);--tblr-x-darken: black;--tblr-x-lt: #e6e6e6;--tblr-x-lt-rgb: 230, 230, 230;--tblr-facebook: #1877f2;--tblr-facebook-rgb: 24, 119, 242;--tblr-facebook-fg: var(--tblr-light);--tblr-facebook-darken: #166bda;--tblr-facebook-lt: #e8f1fe;--tblr-facebook-lt-rgb: 232, 241, 254;--tblr-twitter: #1da1f2;--tblr-twitter-rgb: 29, 161, 242;--tblr-twitter-fg: var(--tblr-light);--tblr-twitter-darken: #1a91da;--tblr-twitter-lt: #e8f6fe;--tblr-twitter-lt-rgb: 232, 246, 254;--tblr-linkedin: #0a66c2;--tblr-linkedin-rgb: 10, 102, 194;--tblr-linkedin-fg: var(--tblr-light);--tblr-linkedin-darken: #095caf;--tblr-linkedin-lt: #e7f0f9;--tblr-linkedin-lt-rgb: 231, 240, 249;--tblr-google: #dc4e41;--tblr-google-rgb: 220, 78, 65;--tblr-google-fg: var(--tblr-light);--tblr-google-darken: #c6463b;--tblr-google-lt: #fcedec;--tblr-google-lt-rgb: 252, 237, 236;--tblr-youtube: #ff0000;--tblr-youtube-rgb: 255, 0, 0;--tblr-youtube-fg: var(--tblr-light);--tblr-youtube-darken: #e60000;--tblr-youtube-lt: #ffe6e6;--tblr-youtube-lt-rgb: 255, 230, 230;--tblr-vimeo: #1ab7ea;--tblr-vimeo-rgb: 26, 183, 234;--tblr-vimeo-fg: var(--tblr-light);--tblr-vimeo-darken: #17a5d3;--tblr-vimeo-lt: #e8f8fd;--tblr-vimeo-lt-rgb: 232, 248, 253;--tblr-dribbble: #ea4c89;--tblr-dribbble-rgb: 234, 76, 137;--tblr-dribbble-fg: var(--tblr-light);--tblr-dribbble-darken: #d3447b;--tblr-dribbble-lt: #fdedf3;--tblr-dribbble-lt-rgb: 253, 237, 243;--tblr-github: #181717;--tblr-github-rgb: 24, 23, 23;--tblr-github-fg: var(--tblr-light);--tblr-github-darken: #161515;--tblr-github-lt: #e8e8e8;--tblr-github-lt-rgb: 232, 232, 232;--tblr-instagram: #e4405f;--tblr-instagram-rgb: 228, 64, 95;--tblr-instagram-fg: var(--tblr-light);--tblr-instagram-darken: #cd3a56;--tblr-instagram-lt: #fcecef;--tblr-instagram-lt-rgb: 252, 236, 239;--tblr-pinterest: #bd081c;--tblr-pinterest-rgb: 189, 8, 28;--tblr-pinterest-fg: var(--tblr-light);--tblr-pinterest-darken: #aa0719;--tblr-pinterest-lt: #f8e6e8;--tblr-pinterest-lt-rgb: 248, 230, 232;--tblr-vk: #6383a8;--tblr-vk-rgb: 99, 131, 168;--tblr-vk-fg: var(--tblr-light);--tblr-vk-darken: #597697;--tblr-vk-lt: #eff3f6;--tblr-vk-lt-rgb: 239, 243, 246;--tblr-rss: #ffa500;--tblr-rss-rgb: 255, 165, 0;--tblr-rss-fg: var(--tblr-light);--tblr-rss-darken: #e69500;--tblr-rss-lt: #fff6e6;--tblr-rss-lt-rgb: 255, 246, 230;--tblr-flickr: #0063dc;--tblr-flickr-rgb: 0, 99, 220;--tblr-flickr-fg: var(--tblr-light);--tblr-flickr-darken: #0059c6;--tblr-flickr-lt: #e6effc;--tblr-flickr-lt-rgb: 230, 239, 252;--tblr-bitbucket: #0052cc;--tblr-bitbucket-rgb: 0, 82, 204;--tblr-bitbucket-fg: var(--tblr-light);--tblr-bitbucket-darken: #004ab8;--tblr-bitbucket-lt: #e6eefa;--tblr-bitbucket-lt-rgb: 230, 238, 250;--tblr-tabler: #066fd1;--tblr-tabler-rgb: 6, 111, 209;--tblr-tabler-fg: var(--tblr-light);--tblr-tabler-darken: #0564bc;--tblr-tabler-lt: #e6f1fa;--tblr-tabler-lt-rgb: 230, 241, 250;--tblr-gray-50: #f6f8fb;--tblr-gray-50-rgb: 246, 248, 251;--tblr-gray-50-fg: var(--tblr-dark);--tblr-gray-50-darken: #dddfe2;--tblr-gray-50-lt: #fefeff;--tblr-gray-50-lt-rgb: 254, 254, 255;--tblr-gray-100: #eef3f6;--tblr-gray-100-rgb: 238, 243, 246;--tblr-gray-100-fg: var(--tblr-dark);--tblr-gray-100-darken: #d6dbdd;--tblr-gray-100-lt: #fdfefe;--tblr-gray-100-lt-rgb: 253, 254, 254;--tblr-gray-200: #dce1e7;--tblr-gray-200-rgb: 220, 225, 231;--tblr-gray-200-fg: var(--tblr-dark);--tblr-gray-200-darken: #c6cbd0;--tblr-gray-200-lt: #fcfcfd;--tblr-gray-200-lt-rgb: 252, 252, 253;--tblr-gray-300: #b8c4d4;--tblr-gray-300-rgb: 184, 196, 212;--tblr-gray-300-fg: var(--tblr-light);--tblr-gray-300-darken: #a6b0bf;--tblr-gray-300-lt: #f8f9fb;--tblr-gray-300-lt-rgb: 248, 249, 251;--tblr-gray-400: #8a97ab;--tblr-gray-400-rgb: 138, 151, 171;--tblr-gray-400-fg: var(--tblr-light);--tblr-gray-400-darken: #7c889a;--tblr-gray-400-lt: #f3f5f7;--tblr-gray-400-lt-rgb: 243, 245, 247;--tblr-gray-500: #6c7a91;--tblr-gray-500-rgb: 108, 122, 145;--tblr-gray-500-fg: var(--tblr-light);--tblr-gray-500-darken: #616e83;--tblr-gray-500-lt: #f0f2f4;--tblr-gray-500-lt-rgb: 240, 242, 244;--tblr-gray-600: #49566c;--tblr-gray-600-rgb: 73, 86, 108;--tblr-gray-600-fg: var(--tblr-light);--tblr-gray-600-darken: #424d61;--tblr-gray-600-lt: #edeef0;--tblr-gray-600-lt-rgb: 237, 238, 240;--tblr-gray-700: #3a4859;--tblr-gray-700-rgb: 58, 72, 89;--tblr-gray-700-fg: var(--tblr-light);--tblr-gray-700-darken: #344150;--tblr-gray-700-lt: #ebedee;--tblr-gray-700-lt-rgb: 235, 237, 238;--tblr-gray-800: #182433;--tblr-gray-800-rgb: 24, 36, 51;--tblr-gray-800-fg: var(--tblr-light);--tblr-gray-800-darken: #16202e;--tblr-gray-800-lt: #e8e9eb;--tblr-gray-800-lt-rgb: 232, 233, 235;--tblr-gray-900: #040a11;--tblr-gray-900-rgb: 4, 10, 17;--tblr-gray-900-fg: var(--tblr-light);--tblr-gray-900-darken: #04090f;--tblr-gray-900-lt: #e6e7e7;--tblr-gray-900-lt-rgb: 230, 231, 231;--tblr-spacer-0: 0;--tblr-spacer-1: .25rem;--tblr-spacer-2: .5rem;--tblr-spacer-3: 1rem;--tblr-spacer-4: 1.5rem;--tblr-spacer-5: 2rem;--tblr-spacer-6: 3rem;--tblr-spacer-7: 5rem;--tblr-spacer-8: 8rem;--tblr-spacer: 1rem;--tblr-bg-surface: var(--tblr-white);--tblr-bg-surface-secondary: var(--tblr-gray-100);--tblr-bg-surface-tertiary: var(--tblr-gray-50);--tblr-bg-surface-dark: var(--tblr-dark);--tblr-bg-forms: var(--tblr-bg-surface);--tblr-border-color: #dce1e7;--tblr-border-color-translucent: rgba(4, 32, 69, .1);--tblr-border-dark-color: #8a97ab;--tblr-border-dark-color-translucent: rgba(4, 32, 69, .27);--tblr-border-active-color: #aab2bf;--tblr-icon-color: var(--tblr-gray-400);--tblr-active-bg: rgba(var(--tblr-primary-rgb), .04);--tblr-disabled-bg: var(--tblr-bg-surface-secondary);--tblr-disabled-color: var(--tblr-gray-300);--tblr-code-color: var(--tblr-gray-600);--tblr-code-bg: var(--tblr-bg-surface-secondary);--tblr-dark-mode-border-color: #25384f;--tblr-dark-mode-border-color-translucent: rgba(72, 110, 149, .14);--tblr-dark-mode-border-active-color: #2c415d;--tblr-dark-mode-border-dark-color: #1f2e41;--tblr-page-padding: var(--tblr-spacer-3);--tblr-page-padding-y: var(--tblr-spacer-4);--tblr-font-weight-light: 300;--tblr-font-weight-normal: 400;--tblr-font-weight-medium: 500;--tblr-font-weight-bold: 600;--tblr-font-weight-headings: var(--tblr-font-weight-bold);--tblr-font-size-h1: 1.5rem;--tblr-font-size-h2: 1.25rem;--tblr-font-size-h3: 1rem;--tblr-font-size-h4: .875rem;--tblr-font-size-h5: .75rem;--tblr-font-size-h6: .625rem;--tblr-line-height-h1: 2rem;--tblr-line-height-h2: 1.75rem;--tblr-line-height-h3: 1.5rem;--tblr-line-height-h4: 1.25rem;--tblr-line-height-h5: 1rem;--tblr-line-height-h6: 1rem;--tblr-box-shadow: rgba(var(--tblr-body-color-rgb), .04) 0 2px 4px 0;--tblr-box-shadow-border: inset 0 0 0 1px var(--tblr-border-color-translucent);--tblr-box-shadow-transparent: 0 0 0 0 transparent;--tblr-box-shadow-input: 0 1px 1px rgba(var(--tblr-body-color-rgb), .06);--tblr-box-shadow-card: 0 0 4px rgba(var(--tblr-body-color-rgb), .04);--tblr-box-shadow-card-hover: rgba(var(--tblr-body-color-rgb), .16) 0 2px 16px 0;--tblr-box-shadow-dropdown: 0 16px 24px 2px rgba(0, 0, 0, .07), 0 6px 30px 5px rgba(0, 0, 0, .06), 0 8px 10px -5px rgba(0, 0, 0, .1)}@media (max-width: 991.98px){:root,:host,[data-bs-theme=light]{--tblr-page-padding: var(--tblr-spacer-2)}}@keyframes pulse{0%{opacity:1;transform:scale3d(.8,.8,.8)}50%{transform:scaleZ(1);opacity:1}to{opacity:1;transform:scale3d(.8,.8,.8)}}@keyframes tada{0%{transform:scaleZ(1)}10%,5%{transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-5deg)}15%,25%,35%,45%{transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,5deg)}20%,30%,40%{transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-5deg)}50%{transform:scaleZ(1)}}@keyframes rotate-360{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes blink{0%{opacity:0}50%{opacity:1}to{opacity:0}}body{letter-spacing:0;touch-action:manipulation;text-rendering:optimizeLegibility;font-feature-settings:"liga" 0;position:relative;min-height:100%;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media print{body{background:transparent}}*{scrollbar-color:rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.16)}*::-webkit-scrollbar{width:1rem;height:1rem;transition:background .3s}@media (prefers-reduced-motion: reduce){*::-webkit-scrollbar{transition:none}}*::-webkit-scrollbar-thumb{border-radius:1rem;border:5px solid transparent;box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.16)}*::-webkit-scrollbar-track{background:transparent}*:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.32)}*::-webkit-scrollbar-corner{background:transparent}.layout-fluid .container,.layout-fluid [class^=container-],.layout-fluid [class*=" container-"]{max-width:100%}.layout-boxed{--tblr-theme-boxed-border-radius: 0;--tblr-theme-boxed-width: 1320px}@media (min-width: 768px){.layout-boxed{background:#182433 linear-gradient(to right,rgba(255,255,255,.1),transparent) fixed;padding:1rem;--tblr-theme-boxed-border-radius: 4px}}.layout-boxed .page{margin:0 auto;max-width:var(--tblr-theme-boxed-width);border-radius:var(--tblr-theme-boxed-border-radius);color:var(--tblr-body-color)}@media (min-width: 768px){.layout-boxed .page{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);background:var(--tblr-body-bg)}}.layout-boxed .page>.navbar:first-child{border-top-left-radius:var(--tblr-theme-boxed-border-radius);border-top-right-radius:var(--tblr-theme-boxed-border-radius)}.navbar{--tblr-navbar-bg: var(--tblr-bg-surface);--tblr-navbar-border-width: var(--tblr-border-width);--tblr-navbar-active-border-color: #00857D;--tblr-navbar-active-bg: rgba(0, 0, 0, .06);--tblr-navbar-color: var(--tblr-body-color);--tblr-navbar-border-color: var(--tblr-border-color);align-items:stretch;min-height:3.5rem;box-shadow:inset 0 calc(-1 * var(--tblr-navbar-border-width)) 0 0 var(--tblr-navbar-border-color);background:var(--tblr-navbar-bg);color:var(--tblr-navbar-color)}.navbar-collapse .navbar{flex-grow:1}.navbar.collapsing{min-height:0}.navbar .dropdown-menu{position:absolute;z-index:1030}.navbar .navbar-nav{min-height:3rem}.navbar .navbar-nav .nav-link{position:relative;min-width:2rem;min-height:2rem;justify-content:center;border-radius:var(--tblr-border-radius)}.navbar .navbar-nav .nav-link .badge{position:absolute;top:.375rem;right:.375rem;transform:translate(50%,-50%)}.navbar-nav{margin:0;padding:0}@media (max-width: 575.98px){.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-sm .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 576px){.navbar-expand-sm .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-sm .nav-item.active{position:relative}.navbar-expand-sm .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-sm.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-sm.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-sm.navbar-vertical~.navbar,.navbar-expand-sm.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-sm.navbar-vertical.navbar-right~.navbar,.navbar-expand-sm.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}@media (max-width: 767.98px){.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-md .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 768px){.navbar-expand-md .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-md .nav-item.active{position:relative}.navbar-expand-md .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-md.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-md.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-md.navbar-vertical~.navbar,.navbar-expand-md.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-md.navbar-vertical.navbar-right~.navbar,.navbar-expand-md.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}@media (max-width: 991.98px){.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-lg .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 992px){.navbar-expand-lg .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-lg .nav-item.active{position:relative}.navbar-expand-lg .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-lg.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-lg.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-lg.navbar-vertical~.navbar,.navbar-expand-lg.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-lg.navbar-vertical.navbar-right~.navbar,.navbar-expand-lg.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}@media (max-width: 1199.98px){.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-xl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 1200px){.navbar-expand-xl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xl .nav-item.active{position:relative}.navbar-expand-xl .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-xl.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-xl.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-xl.navbar-vertical~.navbar,.navbar-expand-xl.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-xl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xl.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}@media (max-width: 1399.98px){.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 1400px){.navbar-expand-xxl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xxl .nav-item.active{position:relative}.navbar-expand-xxl .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-xxl.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-xxl.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-xxl.navbar-vertical~.navbar,.navbar-expand-xxl.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-xxl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xxl.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}.navbar-expand .navbar-collapse{flex-direction:column}.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}.navbar-expand .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand .nav-item.active{position:relative}.navbar-expand .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand.navbar-vertical~.navbar,.navbar-expand.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand.navbar-vertical.navbar-right~.navbar,.navbar-expand.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}.navbar-brand{display:inline-flex;align-items:center;font-weight:var(--tblr-font-weight-bold);margin:0;line-height:1;gap:.5rem}.navbar-brand-image{height:2rem;width:auto}.navbar-toggler{border:0;width:2rem;height:2rem;position:relative;display:flex;align-items:center;justify-content:center}.navbar-toggler-icon{height:2px;width:1.25em;background:currentColor;border-radius:10px;transition:top .2s .2s,bottom .2s .2s,transform .2s,opacity 0s .2s;position:relative}@media (prefers-reduced-motion: reduce){.navbar-toggler-icon{transition:none}}.navbar-toggler-icon:before,.navbar-toggler-icon:after{content:"";display:block;height:inherit;width:inherit;border-radius:inherit;background:inherit;position:absolute;left:0;transition:inherit}@media (prefers-reduced-motion: reduce){.navbar-toggler-icon:before,.navbar-toggler-icon:after{transition:none}}.navbar-toggler-icon:before{top:-.45em}.navbar-toggler-icon:after{bottom:-.45em}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transform:rotate(45deg);transition:top .3s,bottom .3s,transform .3s .3s,opacity 0s .3s}@media (prefers-reduced-motion: reduce){.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transition:none}}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:before{top:0;transform:rotate(-90deg)}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:after{bottom:0;opacity:0}.navbar-transparent{--tblr-navbar-border-color: transparent !important;background:transparent!important}.navbar-nav{align-items:stretch}.navbar-nav .nav-item{display:flex;flex-direction:column;justify-content:center}.navbar-side{margin:0;display:flex;flex-direction:row;align-items:center;justify-content:space-around}@media (min-width: 576px){.navbar-vertical.navbar-expand-sm{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 576px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-sm{transition:none}}@media (min-width: 576px){.navbar-vertical.navbar-expand-sm.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-sm .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-sm .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-sm .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-sm .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-sm>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-sm~.page{padding-left:18rem}.navbar-vertical.navbar-expand-sm~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-sm.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 768px){.navbar-vertical.navbar-expand-md{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 768px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-md{transition:none}}@media (min-width: 768px){.navbar-vertical.navbar-expand-md.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-md .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-md .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-md .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-md .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-md>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-md~.page{padding-left:18rem}.navbar-vertical.navbar-expand-md~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-md.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 992px){.navbar-vertical.navbar-expand-lg{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 992px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-lg{transition:none}}@media (min-width: 992px){.navbar-vertical.navbar-expand-lg.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-lg .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-lg .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-lg .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-lg .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-lg>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-lg~.page{padding-left:18rem}.navbar-vertical.navbar-expand-lg~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-lg.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 1200px){.navbar-vertical.navbar-expand-xl{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 1200px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-xl{transition:none}}@media (min-width: 1200px){.navbar-vertical.navbar-expand-xl.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-xl .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-xl .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-xl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-xl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-xl~.page{padding-left:18rem}.navbar-vertical.navbar-expand-xl~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-xl.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 1400px){.navbar-vertical.navbar-expand-xxl{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 1400px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-xxl{transition:none}}@media (min-width: 1400px){.navbar-vertical.navbar-expand-xxl.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-xxl .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-xxl .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-xxl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xxl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-xxl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-xxl~.page{padding-left:18rem}.navbar-vertical.navbar-expand-xxl~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-xxl.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}.navbar-vertical.navbar-expand{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}@media (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand{transition:none}}.navbar-vertical.navbar-expand.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand~.page{padding-left:18rem}.navbar-vertical.navbar-expand~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}.navbar-overlap:after{content:"";height:9rem;position:absolute;top:100%;left:0;right:0;background:inherit;z-index:-1;box-shadow:inherit}.page{display:flex;flex-direction:column;position:relative;min-height:100%}.page-center{justify-content:center}.page-wrapper{flex:1;display:flex;flex-direction:column}@media print{.page-wrapper{margin:0!important}}.page-wrapper-full .page-body:first-child{margin:0;border-top:0}.page-body{margin-top:var(--tblr-page-padding-y);margin-bottom:var(--tblr-page-padding-y);display:flex;flex-direction:column;flex:1}.page-body-card{background:var(--tblr-bg-surface);border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);padding:var(--tblr-page-padding) 0;margin-bottom:0;flex:1}.page-body~.page-body-card{margin-top:0}.page-cover{background:no-repeat center/cover;min-height:9rem}@media (min-width: 768px){.page-cover{min-height:12rem}}@media (min-width: 992px){.page-cover{min-height:15rem}}.page-cover-overlay{position:relative}.page-cover-overlay:after{content:"";position:absolute;inset:0;background-image:linear-gradient(180deg,#0000,#0009)}.page-header{display:flex;flex-wrap:wrap;min-height:2.25rem;flex-direction:column;justify-content:center}.page-wrapper .page-header{margin:var(--tblr-page-padding-y) 0 0}.page-header-border{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);padding:var(--tblr-page-padding-y) 0;margin:0!important;background-color:var(--tblr-bg-surface)}.page-pretitle{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary)}.page-title{margin:0;font-size:var(--tblr-font-size-h2);line-height:var(--tblr-line-height-h2);font-weight:var(--tblr-font-weight-headings);color:inherit;display:flex;align-items:center}.page-title svg{width:1.5rem;height:1.5rem;margin-right:.25rem}.page-title-lg{font-size:1.5rem;line-height:2rem}.page-subtitle{margin-top:.25rem;color:var(--tblr-secondary)}.page-cover{--tblr-page-cover-blur: 20px;--tblr-page-cover-padding: 1rem;min-height:6rem;padding:var(--tblr-page-cover-padding) 0;position:relative;overflow:hidden}.page-cover-img{position:absolute;top:calc(-2 * var(--tblr-page-cover-blur, 0));left:calc(-2 * var(--tblr-page-cover-blur, 0));right:calc(-2 * var(--tblr-page-cover-blur, 0));bottom:calc(-2 * var(--tblr-page-cover-blur, 0));pointer-events:none;filter:blur(var(--tblr-page-cover-blur));object-fit:cover;background-size:cover;background-position:center;z-index:-1}.page-tabs{margin-top:.5rem;position:relative}.page-header-tabs .nav-bordered{border:0}.page-header-tabs+.page-body-card{margin-top:0}.footer{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);background-color:#fff;padding:2rem 0;color:var(--tblr-gray-500);margin-top:auto}.footer-transparent{background-color:transparent;border-top:0}body:not(.theme-dark):not([data-bs-theme=dark]) .hide-theme-light{display:none!important}body:not(.theme-dark):not([data-bs-theme=dark]) .img-dark{display:none!important}body.theme-dark .hide-theme-dark,body[data-bs-theme=dark] .hide-theme-dark,body.theme-dark .img-light,body[data-bs-theme=dark] .img-light{display:none!important}[data-bs-theme=dark],body[data-bs-theme=dark] [data-bs-theme=light]{--tblr-body-color: #dce1e7;--tblr-body-color-rgb: 220, 225, 231;--tblr-muted: #49566c;--tblr-body-bg: #151f2c;--tblr-body-bg-rgb: 21, 31, 44;--tblr-emphasis-color: #ffffff;--tblr-emphasis-color-rgb: 255, 255, 255;--tblr-bg-forms: #151f2c;--tblr-bg-surface: #182433;--tblr-bg-surface-dark: #151f2c;--tblr-bg-surface-secondary: #1b293a;--tblr-bg-surface-tertiary: #151f2c;--tblr-link-color: #00aea3;--tblr-link-hover-color: #00857D;--tblr-active-bg: #1b293a;--tblr-disabled-color: var(--tblr-gray-700);--tblr-border-color: var(--tblr-dark-mode-border-color);--tblr-border-color-translucent: var( --tblr-dark-mode-border-color-translucent );--tblr-border-dark-color: var(--tblr-dark-mode-border-dark-color);--tblr-border-active-color: var( --tblr-dark-mode-border-active-color );--tblr-btn-color: #151f2c;--tblr-code-color: var(--tblr-body-color);--tblr-code-bg: #1f2e41;--tblr-primary-lt: #162e3a;--tblr-primary-lt-rgb: 22, 46, 58;--tblr-secondary-lt: #202d3c;--tblr-secondary-lt-rgb: 32, 45, 60;--tblr-success-lt: #1a3235;--tblr-success-lt-rgb: 26, 50, 53;--tblr-info-lt: #1c3044;--tblr-info-lt-rgb: 28, 48, 68;--tblr-warning-lt: #2e2b2f;--tblr-warning-lt-rgb: 46, 43, 47;--tblr-danger-lt: #2b2634;--tblr-danger-lt-rgb: 43, 38, 52;--tblr-light-lt: #2e3947;--tblr-light-lt-rgb: 46, 57, 71;--tblr-dark-lt: #182433;--tblr-dark-lt-rgb: 24, 36, 51;--tblr-muted-lt: #202d3c;--tblr-muted-lt-rgb: 32, 45, 60;--tblr-blue-lt: #162c43;--tblr-blue-lt-rgb: 22, 44, 67;--tblr-azure-lt: #1c3044;--tblr-azure-lt-rgb: 28, 48, 68;--tblr-indigo-lt: #1c2a45;--tblr-indigo-lt-rgb: 28, 42, 69;--tblr-purple-lt: #272742;--tblr-purple-lt-rgb: 39, 39, 66;--tblr-pink-lt: #2b2639;--tblr-pink-lt-rgb: 43, 38, 57;--tblr-red-lt: #2b2634;--tblr-red-lt-rgb: 43, 38, 52;--tblr-orange-lt: #2e2b2f;--tblr-orange-lt-rgb: 46, 43, 47;--tblr-yellow-lt: #2e302e;--tblr-yellow-lt-rgb: 46, 48, 46;--tblr-lime-lt: #213330;--tblr-lime-lt-rgb: 33, 51, 48;--tblr-green-lt: #1a3235;--tblr-green-lt-rgb: 26, 50, 53;--tblr-teal-lt: #17313a;--tblr-teal-lt-rgb: 23, 49, 58;--tblr-cyan-lt: #183140;--tblr-cyan-lt-rgb: 24, 49, 64;--tblr-x-lt: #16202e;--tblr-x-lt-rgb: 22, 32, 46;--tblr-facebook-lt: #182c46;--tblr-facebook-lt-rgb: 24, 44, 70;--tblr-twitter-lt: #193146;--tblr-twitter-lt-rgb: 25, 49, 70;--tblr-linkedin-lt: #172b41;--tblr-linkedin-lt-rgb: 23, 43, 65;--tblr-google-lt: #2c2834;--tblr-google-lt-rgb: 44, 40, 52;--tblr-youtube-lt: #2f202e;--tblr-youtube-lt-rgb: 47, 32, 46;--tblr-vimeo-lt: #183345;--tblr-vimeo-lt-rgb: 24, 51, 69;--tblr-dribbble-lt: #2d283c;--tblr-dribbble-lt-rgb: 45, 40, 60;--tblr-github-lt: #182330;--tblr-github-lt-rgb: 24, 35, 48;--tblr-instagram-lt: #2c2737;--tblr-instagram-lt-rgb: 44, 39, 55;--tblr-pinterest-lt: #292131;--tblr-pinterest-lt-rgb: 41, 33, 49;--tblr-vk-lt: #202e3f;--tblr-vk-lt-rgb: 32, 46, 63;--tblr-rss-lt: #2f312e;--tblr-rss-lt-rgb: 47, 49, 46;--tblr-flickr-lt: #162a44;--tblr-flickr-lt-rgb: 22, 42, 68;--tblr-bitbucket-lt: #162942;--tblr-bitbucket-lt-rgb: 22, 41, 66;--tblr-tabler-lt: #162c43;--tblr-tabler-lt-rgb: 22, 44, 67}[data-bs-theme=dark] .navbar-brand-autodark .navbar-brand-image{filter:brightness(0) invert(1)}.accordion{--tblr-accordion-color: var(--tblr-body-color)}.accordion-button:focus:not(:focus-visible){outline:none;box-shadow:none}.accordion-button:after{opacity:.7}.accordion-button:not(.collapsed){font-weight:var(--tblr-font-weight-bold);border-bottom-color:transparent;box-shadow:none}.accordion-button:not(.collapsed):after{opacity:1}.alert{--tblr-alert-color: var(--tblr-secondary);--tblr-alert-bg: var(--tblr-bg-surface);border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);border-left:.25rem var(--tblr-border-style) var(--tblr-alert-color);box-shadow:#1824330a 0 2px 4px}.alert>:last-child{margin-bottom:0}.alert-important{border-color:transparent;background:var(--tblr-alert-color);color:#fff}.alert-important .alert-icon,.alert-important .alert-link,.alert-important .alert-title,.alert-important .alert-link:hover{color:inherit}.alert-important .btn-close{filter:var(--tblr-btn-close-white-filter)}.alert-link,.alert-link:hover{color:var(--tblr-alert-color)}.alert-primary{--tblr-alert-color: var(--tblr-primary)}.alert-secondary{--tblr-alert-color: var(--tblr-secondary)}.alert-success{--tblr-alert-color: var(--tblr-success)}.alert-info{--tblr-alert-color: var(--tblr-info)}.alert-warning{--tblr-alert-color: var(--tblr-warning)}.alert-danger{--tblr-alert-color: var(--tblr-danger)}.alert-light{--tblr-alert-color: var(--tblr-light)}.alert-dark{--tblr-alert-color: var(--tblr-dark)}.alert-muted{--tblr-alert-color: var(--tblr-muted)}.alert-blue{--tblr-alert-color: var(--tblr-blue)}.alert-azure{--tblr-alert-color: var(--tblr-azure)}.alert-indigo{--tblr-alert-color: var(--tblr-indigo)}.alert-purple{--tblr-alert-color: var(--tblr-purple)}.alert-pink{--tblr-alert-color: var(--tblr-pink)}.alert-red{--tblr-alert-color: var(--tblr-red)}.alert-orange{--tblr-alert-color: var(--tblr-orange)}.alert-yellow{--tblr-alert-color: var(--tblr-yellow)}.alert-lime{--tblr-alert-color: var(--tblr-lime)}.alert-green{--tblr-alert-color: var(--tblr-green)}.alert-teal{--tblr-alert-color: var(--tblr-teal)}.alert-cyan{--tblr-alert-color: var(--tblr-cyan)}.alert-x{--tblr-alert-color: var(--tblr-x)}.alert-facebook{--tblr-alert-color: var(--tblr-facebook)}.alert-twitter{--tblr-alert-color: var(--tblr-twitter)}.alert-linkedin{--tblr-alert-color: var(--tblr-linkedin)}.alert-google{--tblr-alert-color: var(--tblr-google)}.alert-youtube{--tblr-alert-color: var(--tblr-youtube)}.alert-vimeo{--tblr-alert-color: var(--tblr-vimeo)}.alert-dribbble{--tblr-alert-color: var(--tblr-dribbble)}.alert-github{--tblr-alert-color: var(--tblr-github)}.alert-instagram{--tblr-alert-color: var(--tblr-instagram)}.alert-pinterest{--tblr-alert-color: var(--tblr-pinterest)}.alert-vk{--tblr-alert-color: var(--tblr-vk)}.alert-rss{--tblr-alert-color: var(--tblr-rss)}.alert-flickr{--tblr-alert-color: var(--tblr-flickr)}.alert-bitbucket{--tblr-alert-color: var(--tblr-bitbucket)}.alert-tabler{--tblr-alert-color: var(--tblr-tabler)}.alert-icon{color:var(--tblr-alert-color);width:1.5rem!important;height:1.5rem!important;margin:-.125rem 1rem -.125rem 0}.alert-title{font-size:.875rem;line-height:1.25rem;font-weight:var(--tblr-font-weight-bold);margin-bottom:.25rem;color:var(--tblr-alert-color)}.avatar{--tblr-avatar-size: 2.5rem;--tblr-avatar-status-size: .75rem;--tblr-avatar-bg: var(--tblr-bg-surface-secondary);--tblr-avatar-box-shadow: var(--tblr-box-shadow-border);--tblr-avatar-font-size: 1rem;--tblr-avatar-icon-size: 1.5rem;position:relative;width:var(--tblr-avatar-size);height:var(--tblr-avatar-size);font-size:var(--tblr-avatar-font-size);font-weight:var(--tblr-font-weight-medium);line-height:1;display:inline-flex;align-items:center;justify-content:center;color:var(--tblr-secondary);text-align:center;text-transform:uppercase;vertical-align:bottom;user-select:none;background:var(--tblr-avatar-bg) no-repeat center/cover;border-radius:var(--tblr-border-radius);box-shadow:var(--tblr-avatar-box-shadow)}.avatar .icon{width:var(--tblr-avatar-icon-size);height:var(--tblr-avatar-icon-size)}.avatar .badge{position:absolute;right:0;bottom:0;border-radius:100rem;box-shadow:0 0 0 calc(var(--tblr-avatar-status-size) / 4) var(--tblr-bg-surface)}a.avatar{cursor:pointer}.avatar-rounded{border-radius:100rem}.avatar-xxs{--tblr-avatar-size: 1rem;--tblr-avatar-status-size: .25rem;--tblr-avatar-font-size: .5rem;--tblr-avatar-icon-size: .75rem}.avatar-xxs .badge:empty{width:.25rem;height:.25rem}.avatar-xs{--tblr-avatar-size: 1.25rem;--tblr-avatar-status-size: .375rem;--tblr-avatar-font-size: .625rem;--tblr-avatar-icon-size: 1rem}.avatar-xs .badge:empty{width:.375rem;height:.375rem}.avatar-sm{--tblr-avatar-size: 2rem;--tblr-avatar-status-size: .5rem;--tblr-avatar-font-size: .75rem;--tblr-avatar-icon-size: 1.25rem}.avatar-sm .badge:empty{width:.5rem;height:.5rem}.avatar-md{--tblr-avatar-size: 2.5rem;--tblr-avatar-status-size: .75rem;--tblr-avatar-font-size: .875rem;--tblr-avatar-icon-size: 1.5rem}.avatar-md .badge:empty{width:.75rem;height:.75rem}.avatar-lg{--tblr-avatar-size: 3rem;--tblr-avatar-status-size: .75rem;--tblr-avatar-font-size: 1.25rem;--tblr-avatar-icon-size: 2rem}.avatar-lg .badge:empty{width:.75rem;height:.75rem}.avatar-xl{--tblr-avatar-size: 5rem;--tblr-avatar-status-size: 1rem;--tblr-avatar-font-size: 2rem;--tblr-avatar-icon-size: 3rem}.avatar-xl .badge:empty{width:1rem;height:1rem}.avatar-2xl{--tblr-avatar-size: 7rem;--tblr-avatar-status-size: 1rem;--tblr-avatar-font-size: 3rem;--tblr-avatar-icon-size: 5rem}.avatar-2xl .badge:empty{width:1rem;height:1rem}.avatar-list{--tblr-list-gap: .5rem;display:flex;flex-wrap:wrap;gap:var(--tblr-list-gap)}.avatar-list a.avatar:hover{z-index:1}.avatar-list-stacked{display:block;--tblr-list-gap: 0}.avatar-list-stacked .avatar{margin-right:calc(-.5 * var(--tblr-avatar-size))!important;box-shadow:var(--tblr-avatar-box-shadow),0 0 0 2px var(--tblr-card-cap-bg, var(--tblr-card-bg, var(--tblr-bg-surface)))}.avatar-upload{width:4rem;height:4rem;border:var(--tblr-border-width) dashed var(--tblr-border-color);background:var(--tblr-bg-forms);flex-direction:column;transition:color .3s,background-color .3s}@media (prefers-reduced-motion: reduce){.avatar-upload{transition:none}}.avatar-upload svg{width:1.5rem;height:1.5rem;stroke-width:1}.avatar-upload:hover{border-color:var(--tblr-primary);color:var(--tblr-primary);text-decoration:none}.avatar-upload-text{font-size:.625rem;line-height:1;margin-top:.25rem}.avatar-cover{margin-top:calc(-.5 * var(--tblr-avatar-size));box-shadow:0 0 0 .25rem var(--tblr-card-bg, var(--tblr-body-bg))}.badge{justify-content:center;align-items:center;background:var(--tblr-bg-surface-secondary);overflow:hidden;user-select:none;border:var(--tblr-border-width) var(--tblr-border-style) transparent;min-width:1.35714285em;font-weight:var(--tblr-font-weight-bold);letter-spacing:.04em;vertical-align:bottom}a.badge{color:var(--tblr-bg-surface)}.badge .avatar{box-sizing:content-box;width:1.25rem;height:1.25rem;margin:0 .5rem 0 -.5rem}.badge .icon{width:1em;height:1em;font-size:1rem;stroke-width:2}.badge:empty,.badge-empty{display:inline-block;width:.5rem;height:.5rem;min-width:0;min-height:auto;padding:0;border-radius:100rem;vertical-align:baseline}.badge-outline{background-color:transparent;border:var(--tblr-border-width) var(--tblr-border-style) currentColor}.badge-pill{border-radius:100rem}.badges-list{--tblr-list-gap: .5rem;display:flex;flex-wrap:wrap;gap:var(--tblr-list-gap)}.badge-notification{position:absolute!important;top:0!important;right:0!important;transform:translate(50%,-50%);z-index:1}.badge-blink{animation:blink 2s infinite}.breadcrumb{--tblr-breadcrumb-item-active-font-weight: var(--tblr-font-weight-bold);--tblr-breadcrumb-item-disabled-color: var(--tblr-disabled-color);--tblr-breadcrumb-link-color: var(--tblr-link-color);padding:0;margin:0;background:transparent}.breadcrumb a{color:var(--tblr-breadcrumb-link-color)}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-muted{--tblr-breadcrumb-link-color: var(--tblr-secondary)}.breadcrumb-item.active{font-weight:var(--tblr-breadcrumb-item-active-font-weight)}.breadcrumb-item.active a{color:inherit;pointer-events:none}.breadcrumb-item.disabled{color:var(--tblr-breadcrumb-item-disabled-color)}.breadcrumb-item.disabled:before{color:inherit}.breadcrumb-item.disabled a{color:inherit;pointer-events:none}.breadcrumb-dots{--tblr-breadcrumb-divider: "\b7"}.breadcrumb-arrows{--tblr-breadcrumb-divider: "\203a"}.breadcrumb-bullets{--tblr-breadcrumb-divider: "\2022"}.btn{--tblr-btn-icon-size: 1.25rem;--tblr-btn-bg: var(--tblr-bg-surface);--tblr-btn-color: var(--tblr-body-color);--tblr-btn-border-color: var(--tblr-border-color);--tblr-btn-hover-bg: var(--tblr-btn-bg);--tblr-btn-hover-border-color: var(--tblr-border-active-color);--tblr-btn-box-shadow: var(--tblr-box-shadow-input);--tblr-btn-active-color: var(--tblr-primary);--tblr-btn-active-bg: rgba(var(--tblr-primary-rgb), .04);--tblr-btn-active-border-color: var(--tblr-primary);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;box-shadow:var(--tblr-btn-box-shadow)}.btn .icon{width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);min-width:var(--tblr-btn-icon-size);margin:0 calc(var(--tblr-btn-padding-x) / 2) 0 calc(var(--tblr-btn-padding-x) / -4);vertical-align:bottom;color:inherit}.btn .avatar{width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);margin:0 calc(var(--tblr-btn-padding-x) / 2) 0 calc(var(--tblr-btn-padding-x) / -4)}.btn .icon-right{margin:0 calc(var(--tblr-btn-padding-x) / -4) 0 calc(var(--tblr-btn-padding-x) / 2)}.btn .badge{top:auto}.btn-check+.btn:hover{color:var(--tblr-btn-hover-color);background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color)}.btn-link{color:#009f95;background-color:transparent;border-color:transparent;box-shadow:none}.btn-link .icon{color:inherit}.btn-link:hover{color:#006a64;border-color:transparent}.btn-primary{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-primary-fg);--tblr-btn-bg: var(--tblr-primary);--tblr-btn-hover-color: var(--tblr-primary-fg);--tblr-btn-hover-bg: rgba(var(--tblr-primary-rgb), .8);--tblr-btn-active-color: var(--tblr-primary-fg);--tblr-btn-active-bg: rgba(var(--tblr-primary-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-primary);--tblr-btn-disabled-color: var(--tblr-primary-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-primary{--tblr-btn-color: var(--tblr-primary);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-primary);--tblr-btn-hover-color: var(--tblr-primary-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-primary);--tblr-btn-active-color: var(--tblr-primary-fg);--tblr-btn-active-bg: var(--tblr-primary);--tblr-btn-disabled-color: var(--tblr-primary);--tblr-btn-disabled-border-color: var(--tblr-primary)}.btn-secondary{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-secondary-fg);--tblr-btn-bg: var(--tblr-secondary);--tblr-btn-hover-color: var(--tblr-secondary-fg);--tblr-btn-hover-bg: rgba(var(--tblr-secondary-rgb), .8);--tblr-btn-active-color: var(--tblr-secondary-fg);--tblr-btn-active-bg: rgba(var(--tblr-secondary-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-secondary);--tblr-btn-disabled-color: var(--tblr-secondary-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-secondary{--tblr-btn-color: var(--tblr-secondary);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-secondary);--tblr-btn-hover-color: var(--tblr-secondary-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-secondary);--tblr-btn-active-color: var(--tblr-secondary-fg);--tblr-btn-active-bg: var(--tblr-secondary);--tblr-btn-disabled-color: var(--tblr-secondary);--tblr-btn-disabled-border-color: var(--tblr-secondary)}.btn-success{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-success-fg);--tblr-btn-bg: var(--tblr-success);--tblr-btn-hover-color: var(--tblr-success-fg);--tblr-btn-hover-bg: rgba(var(--tblr-success-rgb), .8);--tblr-btn-active-color: var(--tblr-success-fg);--tblr-btn-active-bg: rgba(var(--tblr-success-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-success);--tblr-btn-disabled-color: var(--tblr-success-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-success{--tblr-btn-color: var(--tblr-success);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-success);--tblr-btn-hover-color: var(--tblr-success-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-success);--tblr-btn-active-color: var(--tblr-success-fg);--tblr-btn-active-bg: var(--tblr-success);--tblr-btn-disabled-color: var(--tblr-success);--tblr-btn-disabled-border-color: var(--tblr-success)}.btn-info{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-info-fg);--tblr-btn-bg: var(--tblr-info);--tblr-btn-hover-color: var(--tblr-info-fg);--tblr-btn-hover-bg: rgba(var(--tblr-info-rgb), .8);--tblr-btn-active-color: var(--tblr-info-fg);--tblr-btn-active-bg: rgba(var(--tblr-info-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-info);--tblr-btn-disabled-color: var(--tblr-info-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-info{--tblr-btn-color: var(--tblr-info);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-info);--tblr-btn-hover-color: var(--tblr-info-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-info);--tblr-btn-active-color: var(--tblr-info-fg);--tblr-btn-active-bg: var(--tblr-info);--tblr-btn-disabled-color: var(--tblr-info);--tblr-btn-disabled-border-color: var(--tblr-info)}.btn-warning{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-warning-fg);--tblr-btn-bg: var(--tblr-warning);--tblr-btn-hover-color: var(--tblr-warning-fg);--tblr-btn-hover-bg: rgba(var(--tblr-warning-rgb), .8);--tblr-btn-active-color: var(--tblr-warning-fg);--tblr-btn-active-bg: rgba(var(--tblr-warning-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-warning);--tblr-btn-disabled-color: var(--tblr-warning-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-warning{--tblr-btn-color: var(--tblr-warning);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-warning);--tblr-btn-hover-color: var(--tblr-warning-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-warning);--tblr-btn-active-color: var(--tblr-warning-fg);--tblr-btn-active-bg: var(--tblr-warning);--tblr-btn-disabled-color: var(--tblr-warning);--tblr-btn-disabled-border-color: var(--tblr-warning)}.btn-danger{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-danger-fg);--tblr-btn-bg: var(--tblr-danger);--tblr-btn-hover-color: var(--tblr-danger-fg);--tblr-btn-hover-bg: rgba(var(--tblr-danger-rgb), .8);--tblr-btn-active-color: var(--tblr-danger-fg);--tblr-btn-active-bg: rgba(var(--tblr-danger-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-danger);--tblr-btn-disabled-color: var(--tblr-danger-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-danger{--tblr-btn-color: var(--tblr-danger);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-danger);--tblr-btn-hover-color: var(--tblr-danger-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-danger);--tblr-btn-active-color: var(--tblr-danger-fg);--tblr-btn-active-bg: var(--tblr-danger);--tblr-btn-disabled-color: var(--tblr-danger);--tblr-btn-disabled-border-color: var(--tblr-danger)}.btn-light{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-light-fg);--tblr-btn-bg: var(--tblr-light);--tblr-btn-hover-color: var(--tblr-light-fg);--tblr-btn-hover-bg: rgba(var(--tblr-light-rgb), .8);--tblr-btn-active-color: var(--tblr-light-fg);--tblr-btn-active-bg: rgba(var(--tblr-light-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-light);--tblr-btn-disabled-color: var(--tblr-light-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-light{--tblr-btn-color: var(--tblr-light);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-light);--tblr-btn-hover-color: var(--tblr-light-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-light);--tblr-btn-active-color: var(--tblr-light-fg);--tblr-btn-active-bg: var(--tblr-light);--tblr-btn-disabled-color: var(--tblr-light);--tblr-btn-disabled-border-color: var(--tblr-light)}.btn-dark{--tblr-btn-border-color: var(--tblr-dark-mode-border-color);--tblr-btn-hover-border-color: var(--tblr-dark-mode-border-active-color);--tblr-btn-active-border-color: var(--tblr-dark-mode-border-active-color);--tblr-btn-color: var(--tblr-dark-fg);--tblr-btn-bg: var(--tblr-dark);--tblr-btn-hover-color: var(--tblr-dark-fg);--tblr-btn-hover-bg: rgba(var(--tblr-dark-rgb), .8);--tblr-btn-active-color: var(--tblr-dark-fg);--tblr-btn-active-bg: rgba(var(--tblr-dark-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-dark);--tblr-btn-disabled-color: var(--tblr-dark-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-dark{--tblr-btn-color: var(--tblr-dark);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-dark);--tblr-btn-hover-color: var(--tblr-dark-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-dark);--tblr-btn-active-color: var(--tblr-dark-fg);--tblr-btn-active-bg: var(--tblr-dark);--tblr-btn-disabled-color: var(--tblr-dark);--tblr-btn-disabled-border-color: var(--tblr-dark)}.btn-muted{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-muted-fg);--tblr-btn-bg: var(--tblr-muted);--tblr-btn-hover-color: var(--tblr-muted-fg);--tblr-btn-hover-bg: rgba(var(--tblr-muted-rgb), .8);--tblr-btn-active-color: var(--tblr-muted-fg);--tblr-btn-active-bg: rgba(var(--tblr-muted-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-muted);--tblr-btn-disabled-color: var(--tblr-muted-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-muted{--tblr-btn-color: var(--tblr-muted);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-muted);--tblr-btn-hover-color: var(--tblr-muted-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-muted);--tblr-btn-active-color: var(--tblr-muted-fg);--tblr-btn-active-bg: var(--tblr-muted);--tblr-btn-disabled-color: var(--tblr-muted);--tblr-btn-disabled-border-color: var(--tblr-muted)}.btn-blue{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-blue-fg);--tblr-btn-bg: var(--tblr-blue);--tblr-btn-hover-color: var(--tblr-blue-fg);--tblr-btn-hover-bg: rgba(var(--tblr-blue-rgb), .8);--tblr-btn-active-color: var(--tblr-blue-fg);--tblr-btn-active-bg: rgba(var(--tblr-blue-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-blue);--tblr-btn-disabled-color: var(--tblr-blue-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-blue{--tblr-btn-color: var(--tblr-blue);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-blue);--tblr-btn-hover-color: var(--tblr-blue-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-blue);--tblr-btn-active-color: var(--tblr-blue-fg);--tblr-btn-active-bg: var(--tblr-blue);--tblr-btn-disabled-color: var(--tblr-blue);--tblr-btn-disabled-border-color: var(--tblr-blue)}.btn-azure{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-azure-fg);--tblr-btn-bg: var(--tblr-azure);--tblr-btn-hover-color: var(--tblr-azure-fg);--tblr-btn-hover-bg: rgba(var(--tblr-azure-rgb), .8);--tblr-btn-active-color: var(--tblr-azure-fg);--tblr-btn-active-bg: rgba(var(--tblr-azure-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-azure);--tblr-btn-disabled-color: var(--tblr-azure-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-azure{--tblr-btn-color: var(--tblr-azure);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-azure);--tblr-btn-hover-color: var(--tblr-azure-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-azure);--tblr-btn-active-color: var(--tblr-azure-fg);--tblr-btn-active-bg: var(--tblr-azure);--tblr-btn-disabled-color: var(--tblr-azure);--tblr-btn-disabled-border-color: var(--tblr-azure)}.btn-indigo{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-indigo-fg);--tblr-btn-bg: var(--tblr-indigo);--tblr-btn-hover-color: var(--tblr-indigo-fg);--tblr-btn-hover-bg: rgba(var(--tblr-indigo-rgb), .8);--tblr-btn-active-color: var(--tblr-indigo-fg);--tblr-btn-active-bg: rgba(var(--tblr-indigo-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-indigo);--tblr-btn-disabled-color: var(--tblr-indigo-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-indigo{--tblr-btn-color: var(--tblr-indigo);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-indigo);--tblr-btn-hover-color: var(--tblr-indigo-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-indigo);--tblr-btn-active-color: var(--tblr-indigo-fg);--tblr-btn-active-bg: var(--tblr-indigo);--tblr-btn-disabled-color: var(--tblr-indigo);--tblr-btn-disabled-border-color: var(--tblr-indigo)}.btn-purple{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-purple-fg);--tblr-btn-bg: var(--tblr-purple);--tblr-btn-hover-color: var(--tblr-purple-fg);--tblr-btn-hover-bg: rgba(var(--tblr-purple-rgb), .8);--tblr-btn-active-color: var(--tblr-purple-fg);--tblr-btn-active-bg: rgba(var(--tblr-purple-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-purple);--tblr-btn-disabled-color: var(--tblr-purple-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-purple{--tblr-btn-color: var(--tblr-purple);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-purple);--tblr-btn-hover-color: var(--tblr-purple-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-purple);--tblr-btn-active-color: var(--tblr-purple-fg);--tblr-btn-active-bg: var(--tblr-purple);--tblr-btn-disabled-color: var(--tblr-purple);--tblr-btn-disabled-border-color: var(--tblr-purple)}.btn-pink{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-pink-fg);--tblr-btn-bg: var(--tblr-pink);--tblr-btn-hover-color: var(--tblr-pink-fg);--tblr-btn-hover-bg: rgba(var(--tblr-pink-rgb), .8);--tblr-btn-active-color: var(--tblr-pink-fg);--tblr-btn-active-bg: rgba(var(--tblr-pink-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-pink);--tblr-btn-disabled-color: var(--tblr-pink-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-pink{--tblr-btn-color: var(--tblr-pink);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-pink);--tblr-btn-hover-color: var(--tblr-pink-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-pink);--tblr-btn-active-color: var(--tblr-pink-fg);--tblr-btn-active-bg: var(--tblr-pink);--tblr-btn-disabled-color: var(--tblr-pink);--tblr-btn-disabled-border-color: var(--tblr-pink)}.btn-red{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-red-fg);--tblr-btn-bg: var(--tblr-red);--tblr-btn-hover-color: var(--tblr-red-fg);--tblr-btn-hover-bg: rgba(var(--tblr-red-rgb), .8);--tblr-btn-active-color: var(--tblr-red-fg);--tblr-btn-active-bg: rgba(var(--tblr-red-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-red);--tblr-btn-disabled-color: var(--tblr-red-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-red{--tblr-btn-color: var(--tblr-red);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-red);--tblr-btn-hover-color: var(--tblr-red-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-red);--tblr-btn-active-color: var(--tblr-red-fg);--tblr-btn-active-bg: var(--tblr-red);--tblr-btn-disabled-color: var(--tblr-red);--tblr-btn-disabled-border-color: var(--tblr-red)}.btn-orange{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-orange-fg);--tblr-btn-bg: var(--tblr-orange);--tblr-btn-hover-color: var(--tblr-orange-fg);--tblr-btn-hover-bg: rgba(var(--tblr-orange-rgb), .8);--tblr-btn-active-color: var(--tblr-orange-fg);--tblr-btn-active-bg: rgba(var(--tblr-orange-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-orange);--tblr-btn-disabled-color: var(--tblr-orange-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-orange{--tblr-btn-color: var(--tblr-orange);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-orange);--tblr-btn-hover-color: var(--tblr-orange-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-orange);--tblr-btn-active-color: var(--tblr-orange-fg);--tblr-btn-active-bg: var(--tblr-orange);--tblr-btn-disabled-color: var(--tblr-orange);--tblr-btn-disabled-border-color: var(--tblr-orange)}.btn-yellow{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-yellow-fg);--tblr-btn-bg: var(--tblr-yellow);--tblr-btn-hover-color: var(--tblr-yellow-fg);--tblr-btn-hover-bg: rgba(var(--tblr-yellow-rgb), .8);--tblr-btn-active-color: var(--tblr-yellow-fg);--tblr-btn-active-bg: rgba(var(--tblr-yellow-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-yellow);--tblr-btn-disabled-color: var(--tblr-yellow-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-yellow{--tblr-btn-color: var(--tblr-yellow);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-yellow);--tblr-btn-hover-color: var(--tblr-yellow-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-yellow);--tblr-btn-active-color: var(--tblr-yellow-fg);--tblr-btn-active-bg: var(--tblr-yellow);--tblr-btn-disabled-color: var(--tblr-yellow);--tblr-btn-disabled-border-color: var(--tblr-yellow)}.btn-lime{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-lime-fg);--tblr-btn-bg: var(--tblr-lime);--tblr-btn-hover-color: var(--tblr-lime-fg);--tblr-btn-hover-bg: rgba(var(--tblr-lime-rgb), .8);--tblr-btn-active-color: var(--tblr-lime-fg);--tblr-btn-active-bg: rgba(var(--tblr-lime-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-lime);--tblr-btn-disabled-color: var(--tblr-lime-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-lime{--tblr-btn-color: var(--tblr-lime);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-lime);--tblr-btn-hover-color: var(--tblr-lime-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-lime);--tblr-btn-active-color: var(--tblr-lime-fg);--tblr-btn-active-bg: var(--tblr-lime);--tblr-btn-disabled-color: var(--tblr-lime);--tblr-btn-disabled-border-color: var(--tblr-lime)}.btn-green{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-green-fg);--tblr-btn-bg: var(--tblr-green);--tblr-btn-hover-color: var(--tblr-green-fg);--tblr-btn-hover-bg: rgba(var(--tblr-green-rgb), .8);--tblr-btn-active-color: var(--tblr-green-fg);--tblr-btn-active-bg: rgba(var(--tblr-green-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-green);--tblr-btn-disabled-color: var(--tblr-green-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-green{--tblr-btn-color: var(--tblr-green);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-green);--tblr-btn-hover-color: var(--tblr-green-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-green);--tblr-btn-active-color: var(--tblr-green-fg);--tblr-btn-active-bg: var(--tblr-green);--tblr-btn-disabled-color: var(--tblr-green);--tblr-btn-disabled-border-color: var(--tblr-green)}.btn-teal{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-teal-fg);--tblr-btn-bg: var(--tblr-teal);--tblr-btn-hover-color: var(--tblr-teal-fg);--tblr-btn-hover-bg: rgba(var(--tblr-teal-rgb), .8);--tblr-btn-active-color: var(--tblr-teal-fg);--tblr-btn-active-bg: rgba(var(--tblr-teal-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-teal);--tblr-btn-disabled-color: var(--tblr-teal-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-teal{--tblr-btn-color: var(--tblr-teal);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-teal);--tblr-btn-hover-color: var(--tblr-teal-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-teal);--tblr-btn-active-color: var(--tblr-teal-fg);--tblr-btn-active-bg: var(--tblr-teal);--tblr-btn-disabled-color: var(--tblr-teal);--tblr-btn-disabled-border-color: var(--tblr-teal)}.btn-cyan{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-cyan-fg);--tblr-btn-bg: var(--tblr-cyan);--tblr-btn-hover-color: var(--tblr-cyan-fg);--tblr-btn-hover-bg: rgba(var(--tblr-cyan-rgb), .8);--tblr-btn-active-color: var(--tblr-cyan-fg);--tblr-btn-active-bg: rgba(var(--tblr-cyan-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-cyan);--tblr-btn-disabled-color: var(--tblr-cyan-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-cyan{--tblr-btn-color: var(--tblr-cyan);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-cyan);--tblr-btn-hover-color: var(--tblr-cyan-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-cyan);--tblr-btn-active-color: var(--tblr-cyan-fg);--tblr-btn-active-bg: var(--tblr-cyan);--tblr-btn-disabled-color: var(--tblr-cyan);--tblr-btn-disabled-border-color: var(--tblr-cyan)}.btn-x{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-x-fg);--tblr-btn-bg: var(--tblr-x);--tblr-btn-hover-color: var(--tblr-x-fg);--tblr-btn-hover-bg: rgba(var(--tblr-x-rgb), .8);--tblr-btn-active-color: var(--tblr-x-fg);--tblr-btn-active-bg: rgba(var(--tblr-x-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-x);--tblr-btn-disabled-color: var(--tblr-x-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-x{--tblr-btn-color: var(--tblr-x);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-x);--tblr-btn-hover-color: var(--tblr-x-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-x);--tblr-btn-active-color: var(--tblr-x-fg);--tblr-btn-active-bg: var(--tblr-x);--tblr-btn-disabled-color: var(--tblr-x);--tblr-btn-disabled-border-color: var(--tblr-x)}.btn-facebook{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-facebook-fg);--tblr-btn-bg: var(--tblr-facebook);--tblr-btn-hover-color: var(--tblr-facebook-fg);--tblr-btn-hover-bg: rgba(var(--tblr-facebook-rgb), .8);--tblr-btn-active-color: var(--tblr-facebook-fg);--tblr-btn-active-bg: rgba(var(--tblr-facebook-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-facebook);--tblr-btn-disabled-color: var(--tblr-facebook-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-facebook{--tblr-btn-color: var(--tblr-facebook);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-facebook);--tblr-btn-hover-color: var(--tblr-facebook-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-facebook);--tblr-btn-active-color: var(--tblr-facebook-fg);--tblr-btn-active-bg: var(--tblr-facebook);--tblr-btn-disabled-color: var(--tblr-facebook);--tblr-btn-disabled-border-color: var(--tblr-facebook)}.btn-twitter{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-twitter-fg);--tblr-btn-bg: var(--tblr-twitter);--tblr-btn-hover-color: var(--tblr-twitter-fg);--tblr-btn-hover-bg: rgba(var(--tblr-twitter-rgb), .8);--tblr-btn-active-color: var(--tblr-twitter-fg);--tblr-btn-active-bg: rgba(var(--tblr-twitter-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-twitter);--tblr-btn-disabled-color: var(--tblr-twitter-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-twitter{--tblr-btn-color: var(--tblr-twitter);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-twitter);--tblr-btn-hover-color: var(--tblr-twitter-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-twitter);--tblr-btn-active-color: var(--tblr-twitter-fg);--tblr-btn-active-bg: var(--tblr-twitter);--tblr-btn-disabled-color: var(--tblr-twitter);--tblr-btn-disabled-border-color: var(--tblr-twitter)}.btn-linkedin{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-linkedin-fg);--tblr-btn-bg: var(--tblr-linkedin);--tblr-btn-hover-color: var(--tblr-linkedin-fg);--tblr-btn-hover-bg: rgba(var(--tblr-linkedin-rgb), .8);--tblr-btn-active-color: var(--tblr-linkedin-fg);--tblr-btn-active-bg: rgba(var(--tblr-linkedin-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-linkedin);--tblr-btn-disabled-color: var(--tblr-linkedin-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-linkedin{--tblr-btn-color: var(--tblr-linkedin);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-linkedin);--tblr-btn-hover-color: var(--tblr-linkedin-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-linkedin);--tblr-btn-active-color: var(--tblr-linkedin-fg);--tblr-btn-active-bg: var(--tblr-linkedin);--tblr-btn-disabled-color: var(--tblr-linkedin);--tblr-btn-disabled-border-color: var(--tblr-linkedin)}.btn-google{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-google-fg);--tblr-btn-bg: var(--tblr-google);--tblr-btn-hover-color: var(--tblr-google-fg);--tblr-btn-hover-bg: rgba(var(--tblr-google-rgb), .8);--tblr-btn-active-color: var(--tblr-google-fg);--tblr-btn-active-bg: rgba(var(--tblr-google-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-google);--tblr-btn-disabled-color: var(--tblr-google-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-google{--tblr-btn-color: var(--tblr-google);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-google);--tblr-btn-hover-color: var(--tblr-google-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-google);--tblr-btn-active-color: var(--tblr-google-fg);--tblr-btn-active-bg: var(--tblr-google);--tblr-btn-disabled-color: var(--tblr-google);--tblr-btn-disabled-border-color: var(--tblr-google)}.btn-youtube{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-youtube-fg);--tblr-btn-bg: var(--tblr-youtube);--tblr-btn-hover-color: var(--tblr-youtube-fg);--tblr-btn-hover-bg: rgba(var(--tblr-youtube-rgb), .8);--tblr-btn-active-color: var(--tblr-youtube-fg);--tblr-btn-active-bg: rgba(var(--tblr-youtube-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-youtube);--tblr-btn-disabled-color: var(--tblr-youtube-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-youtube{--tblr-btn-color: var(--tblr-youtube);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-youtube);--tblr-btn-hover-color: var(--tblr-youtube-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-youtube);--tblr-btn-active-color: var(--tblr-youtube-fg);--tblr-btn-active-bg: var(--tblr-youtube);--tblr-btn-disabled-color: var(--tblr-youtube);--tblr-btn-disabled-border-color: var(--tblr-youtube)}.btn-vimeo{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-vimeo-fg);--tblr-btn-bg: var(--tblr-vimeo);--tblr-btn-hover-color: var(--tblr-vimeo-fg);--tblr-btn-hover-bg: rgba(var(--tblr-vimeo-rgb), .8);--tblr-btn-active-color: var(--tblr-vimeo-fg);--tblr-btn-active-bg: rgba(var(--tblr-vimeo-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-vimeo);--tblr-btn-disabled-color: var(--tblr-vimeo-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-vimeo{--tblr-btn-color: var(--tblr-vimeo);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-vimeo);--tblr-btn-hover-color: var(--tblr-vimeo-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-vimeo);--tblr-btn-active-color: var(--tblr-vimeo-fg);--tblr-btn-active-bg: var(--tblr-vimeo);--tblr-btn-disabled-color: var(--tblr-vimeo);--tblr-btn-disabled-border-color: var(--tblr-vimeo)}.btn-dribbble{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-dribbble-fg);--tblr-btn-bg: var(--tblr-dribbble);--tblr-btn-hover-color: var(--tblr-dribbble-fg);--tblr-btn-hover-bg: rgba(var(--tblr-dribbble-rgb), .8);--tblr-btn-active-color: var(--tblr-dribbble-fg);--tblr-btn-active-bg: rgba(var(--tblr-dribbble-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-dribbble);--tblr-btn-disabled-color: var(--tblr-dribbble-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-dribbble{--tblr-btn-color: var(--tblr-dribbble);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-dribbble);--tblr-btn-hover-color: var(--tblr-dribbble-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-dribbble);--tblr-btn-active-color: var(--tblr-dribbble-fg);--tblr-btn-active-bg: var(--tblr-dribbble);--tblr-btn-disabled-color: var(--tblr-dribbble);--tblr-btn-disabled-border-color: var(--tblr-dribbble)}.btn-github{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-github-fg);--tblr-btn-bg: var(--tblr-github);--tblr-btn-hover-color: var(--tblr-github-fg);--tblr-btn-hover-bg: rgba(var(--tblr-github-rgb), .8);--tblr-btn-active-color: var(--tblr-github-fg);--tblr-btn-active-bg: rgba(var(--tblr-github-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-github);--tblr-btn-disabled-color: var(--tblr-github-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-github{--tblr-btn-color: var(--tblr-github);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-github);--tblr-btn-hover-color: var(--tblr-github-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-github);--tblr-btn-active-color: var(--tblr-github-fg);--tblr-btn-active-bg: var(--tblr-github);--tblr-btn-disabled-color: var(--tblr-github);--tblr-btn-disabled-border-color: var(--tblr-github)}.btn-instagram{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-instagram-fg);--tblr-btn-bg: var(--tblr-instagram);--tblr-btn-hover-color: var(--tblr-instagram-fg);--tblr-btn-hover-bg: rgba(var(--tblr-instagram-rgb), .8);--tblr-btn-active-color: var(--tblr-instagram-fg);--tblr-btn-active-bg: rgba(var(--tblr-instagram-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-instagram);--tblr-btn-disabled-color: var(--tblr-instagram-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-instagram{--tblr-btn-color: var(--tblr-instagram);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-instagram);--tblr-btn-hover-color: var(--tblr-instagram-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-instagram);--tblr-btn-active-color: var(--tblr-instagram-fg);--tblr-btn-active-bg: var(--tblr-instagram);--tblr-btn-disabled-color: var(--tblr-instagram);--tblr-btn-disabled-border-color: var(--tblr-instagram)}.btn-pinterest{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-pinterest-fg);--tblr-btn-bg: var(--tblr-pinterest);--tblr-btn-hover-color: var(--tblr-pinterest-fg);--tblr-btn-hover-bg: rgba(var(--tblr-pinterest-rgb), .8);--tblr-btn-active-color: var(--tblr-pinterest-fg);--tblr-btn-active-bg: rgba(var(--tblr-pinterest-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-pinterest);--tblr-btn-disabled-color: var(--tblr-pinterest-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-pinterest{--tblr-btn-color: var(--tblr-pinterest);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-pinterest);--tblr-btn-hover-color: var(--tblr-pinterest-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-pinterest);--tblr-btn-active-color: var(--tblr-pinterest-fg);--tblr-btn-active-bg: var(--tblr-pinterest);--tblr-btn-disabled-color: var(--tblr-pinterest);--tblr-btn-disabled-border-color: var(--tblr-pinterest)}.btn-vk{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-vk-fg);--tblr-btn-bg: var(--tblr-vk);--tblr-btn-hover-color: var(--tblr-vk-fg);--tblr-btn-hover-bg: rgba(var(--tblr-vk-rgb), .8);--tblr-btn-active-color: var(--tblr-vk-fg);--tblr-btn-active-bg: rgba(var(--tblr-vk-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-vk);--tblr-btn-disabled-color: var(--tblr-vk-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-vk{--tblr-btn-color: var(--tblr-vk);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-vk);--tblr-btn-hover-color: var(--tblr-vk-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-vk);--tblr-btn-active-color: var(--tblr-vk-fg);--tblr-btn-active-bg: var(--tblr-vk);--tblr-btn-disabled-color: var(--tblr-vk);--tblr-btn-disabled-border-color: var(--tblr-vk)}.btn-rss{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-rss-fg);--tblr-btn-bg: var(--tblr-rss);--tblr-btn-hover-color: var(--tblr-rss-fg);--tblr-btn-hover-bg: rgba(var(--tblr-rss-rgb), .8);--tblr-btn-active-color: var(--tblr-rss-fg);--tblr-btn-active-bg: rgba(var(--tblr-rss-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-rss);--tblr-btn-disabled-color: var(--tblr-rss-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-rss{--tblr-btn-color: var(--tblr-rss);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-rss);--tblr-btn-hover-color: var(--tblr-rss-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-rss);--tblr-btn-active-color: var(--tblr-rss-fg);--tblr-btn-active-bg: var(--tblr-rss);--tblr-btn-disabled-color: var(--tblr-rss);--tblr-btn-disabled-border-color: var(--tblr-rss)}.btn-flickr{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-flickr-fg);--tblr-btn-bg: var(--tblr-flickr);--tblr-btn-hover-color: var(--tblr-flickr-fg);--tblr-btn-hover-bg: rgba(var(--tblr-flickr-rgb), .8);--tblr-btn-active-color: var(--tblr-flickr-fg);--tblr-btn-active-bg: rgba(var(--tblr-flickr-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-flickr);--tblr-btn-disabled-color: var(--tblr-flickr-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-flickr{--tblr-btn-color: var(--tblr-flickr);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-flickr);--tblr-btn-hover-color: var(--tblr-flickr-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-flickr);--tblr-btn-active-color: var(--tblr-flickr-fg);--tblr-btn-active-bg: var(--tblr-flickr);--tblr-btn-disabled-color: var(--tblr-flickr);--tblr-btn-disabled-border-color: var(--tblr-flickr)}.btn-bitbucket{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-bitbucket-fg);--tblr-btn-bg: var(--tblr-bitbucket);--tblr-btn-hover-color: var(--tblr-bitbucket-fg);--tblr-btn-hover-bg: rgba(var(--tblr-bitbucket-rgb), .8);--tblr-btn-active-color: var(--tblr-bitbucket-fg);--tblr-btn-active-bg: rgba(var(--tblr-bitbucket-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-bitbucket);--tblr-btn-disabled-color: var(--tblr-bitbucket-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-bitbucket{--tblr-btn-color: var(--tblr-bitbucket);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-bitbucket);--tblr-btn-hover-color: var(--tblr-bitbucket-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-bitbucket);--tblr-btn-active-color: var(--tblr-bitbucket-fg);--tblr-btn-active-bg: var(--tblr-bitbucket);--tblr-btn-disabled-color: var(--tblr-bitbucket);--tblr-btn-disabled-border-color: var(--tblr-bitbucket)}.btn-tabler{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-tabler-fg);--tblr-btn-bg: var(--tblr-tabler);--tblr-btn-hover-color: var(--tblr-tabler-fg);--tblr-btn-hover-bg: rgba(var(--tblr-tabler-rgb), .8);--tblr-btn-active-color: var(--tblr-tabler-fg);--tblr-btn-active-bg: rgba(var(--tblr-tabler-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-tabler);--tblr-btn-disabled-color: var(--tblr-tabler-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-tabler{--tblr-btn-color: var(--tblr-tabler);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-tabler);--tblr-btn-hover-color: var(--tblr-tabler-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-tabler);--tblr-btn-active-color: var(--tblr-tabler-fg);--tblr-btn-active-bg: var(--tblr-tabler);--tblr-btn-disabled-color: var(--tblr-tabler);--tblr-btn-disabled-border-color: var(--tblr-tabler)}.btn-ghost-primary{--tblr-btn-color: var(--tblr-primary);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-primary-fg);--tblr-btn-hover-bg: var(--tblr-primary);--tblr-btn-hover-border-color: var(--tblr-primary);--tblr-btn-active-color: var(--tblr-primary-fg);--tblr-btn-active-bg: var(--tblr-primary);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-primary);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-secondary{--tblr-btn-color: var(--tblr-secondary);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-secondary-fg);--tblr-btn-hover-bg: var(--tblr-secondary);--tblr-btn-hover-border-color: var(--tblr-secondary);--tblr-btn-active-color: var(--tblr-secondary-fg);--tblr-btn-active-bg: var(--tblr-secondary);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-secondary);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-success{--tblr-btn-color: var(--tblr-success);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-success-fg);--tblr-btn-hover-bg: var(--tblr-success);--tblr-btn-hover-border-color: var(--tblr-success);--tblr-btn-active-color: var(--tblr-success-fg);--tblr-btn-active-bg: var(--tblr-success);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-success);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-info{--tblr-btn-color: var(--tblr-info);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-info-fg);--tblr-btn-hover-bg: var(--tblr-info);--tblr-btn-hover-border-color: var(--tblr-info);--tblr-btn-active-color: var(--tblr-info-fg);--tblr-btn-active-bg: var(--tblr-info);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-info);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-warning{--tblr-btn-color: var(--tblr-warning);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-warning-fg);--tblr-btn-hover-bg: var(--tblr-warning);--tblr-btn-hover-border-color: var(--tblr-warning);--tblr-btn-active-color: var(--tblr-warning-fg);--tblr-btn-active-bg: var(--tblr-warning);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-warning);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-danger{--tblr-btn-color: var(--tblr-danger);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-danger-fg);--tblr-btn-hover-bg: var(--tblr-danger);--tblr-btn-hover-border-color: var(--tblr-danger);--tblr-btn-active-color: var(--tblr-danger-fg);--tblr-btn-active-bg: var(--tblr-danger);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-danger);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-light{--tblr-btn-color: var(--tblr-light);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-light-fg);--tblr-btn-hover-bg: var(--tblr-light);--tblr-btn-hover-border-color: var(--tblr-light);--tblr-btn-active-color: var(--tblr-light-fg);--tblr-btn-active-bg: var(--tblr-light);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-light);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-dark{--tblr-btn-color: var(--tblr-dark);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-dark-fg);--tblr-btn-hover-bg: var(--tblr-dark);--tblr-btn-hover-border-color: var(--tblr-dark);--tblr-btn-active-color: var(--tblr-dark-fg);--tblr-btn-active-bg: var(--tblr-dark);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-dark);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-muted{--tblr-btn-color: var(--tblr-muted);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-muted-fg);--tblr-btn-hover-bg: var(--tblr-muted);--tblr-btn-hover-border-color: var(--tblr-muted);--tblr-btn-active-color: var(--tblr-muted-fg);--tblr-btn-active-bg: var(--tblr-muted);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-muted);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-blue{--tblr-btn-color: var(--tblr-blue);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-blue-fg);--tblr-btn-hover-bg: var(--tblr-blue);--tblr-btn-hover-border-color: var(--tblr-blue);--tblr-btn-active-color: var(--tblr-blue-fg);--tblr-btn-active-bg: var(--tblr-blue);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-blue);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-azure{--tblr-btn-color: var(--tblr-azure);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-azure-fg);--tblr-btn-hover-bg: var(--tblr-azure);--tblr-btn-hover-border-color: var(--tblr-azure);--tblr-btn-active-color: var(--tblr-azure-fg);--tblr-btn-active-bg: var(--tblr-azure);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-azure);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-indigo{--tblr-btn-color: var(--tblr-indigo);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-indigo-fg);--tblr-btn-hover-bg: var(--tblr-indigo);--tblr-btn-hover-border-color: var(--tblr-indigo);--tblr-btn-active-color: var(--tblr-indigo-fg);--tblr-btn-active-bg: var(--tblr-indigo);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-indigo);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-purple{--tblr-btn-color: var(--tblr-purple);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-purple-fg);--tblr-btn-hover-bg: var(--tblr-purple);--tblr-btn-hover-border-color: var(--tblr-purple);--tblr-btn-active-color: var(--tblr-purple-fg);--tblr-btn-active-bg: var(--tblr-purple);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-purple);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-pink{--tblr-btn-color: var(--tblr-pink);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-pink-fg);--tblr-btn-hover-bg: var(--tblr-pink);--tblr-btn-hover-border-color: var(--tblr-pink);--tblr-btn-active-color: var(--tblr-pink-fg);--tblr-btn-active-bg: var(--tblr-pink);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-pink);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-red{--tblr-btn-color: var(--tblr-red);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-red-fg);--tblr-btn-hover-bg: var(--tblr-red);--tblr-btn-hover-border-color: var(--tblr-red);--tblr-btn-active-color: var(--tblr-red-fg);--tblr-btn-active-bg: var(--tblr-red);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-red);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-orange{--tblr-btn-color: var(--tblr-orange);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-orange-fg);--tblr-btn-hover-bg: var(--tblr-orange);--tblr-btn-hover-border-color: var(--tblr-orange);--tblr-btn-active-color: var(--tblr-orange-fg);--tblr-btn-active-bg: var(--tblr-orange);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-orange);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-yellow{--tblr-btn-color: var(--tblr-yellow);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-yellow-fg);--tblr-btn-hover-bg: var(--tblr-yellow);--tblr-btn-hover-border-color: var(--tblr-yellow);--tblr-btn-active-color: var(--tblr-yellow-fg);--tblr-btn-active-bg: var(--tblr-yellow);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-yellow);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-lime{--tblr-btn-color: var(--tblr-lime);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-lime-fg);--tblr-btn-hover-bg: var(--tblr-lime);--tblr-btn-hover-border-color: var(--tblr-lime);--tblr-btn-active-color: var(--tblr-lime-fg);--tblr-btn-active-bg: var(--tblr-lime);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-lime);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-green{--tblr-btn-color: var(--tblr-green);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-green-fg);--tblr-btn-hover-bg: var(--tblr-green);--tblr-btn-hover-border-color: var(--tblr-green);--tblr-btn-active-color: var(--tblr-green-fg);--tblr-btn-active-bg: var(--tblr-green);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-green);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-teal{--tblr-btn-color: var(--tblr-teal);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-teal-fg);--tblr-btn-hover-bg: var(--tblr-teal);--tblr-btn-hover-border-color: var(--tblr-teal);--tblr-btn-active-color: var(--tblr-teal-fg);--tblr-btn-active-bg: var(--tblr-teal);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-teal);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-cyan{--tblr-btn-color: var(--tblr-cyan);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-cyan-fg);--tblr-btn-hover-bg: var(--tblr-cyan);--tblr-btn-hover-border-color: var(--tblr-cyan);--tblr-btn-active-color: var(--tblr-cyan-fg);--tblr-btn-active-bg: var(--tblr-cyan);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-cyan);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-x{--tblr-btn-color: var(--tblr-x);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-x-fg);--tblr-btn-hover-bg: var(--tblr-x);--tblr-btn-hover-border-color: var(--tblr-x);--tblr-btn-active-color: var(--tblr-x-fg);--tblr-btn-active-bg: var(--tblr-x);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-x);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-facebook{--tblr-btn-color: var(--tblr-facebook);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-facebook-fg);--tblr-btn-hover-bg: var(--tblr-facebook);--tblr-btn-hover-border-color: var(--tblr-facebook);--tblr-btn-active-color: var(--tblr-facebook-fg);--tblr-btn-active-bg: var(--tblr-facebook);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-facebook);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-twitter{--tblr-btn-color: var(--tblr-twitter);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-twitter-fg);--tblr-btn-hover-bg: var(--tblr-twitter);--tblr-btn-hover-border-color: var(--tblr-twitter);--tblr-btn-active-color: var(--tblr-twitter-fg);--tblr-btn-active-bg: var(--tblr-twitter);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-twitter);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-linkedin{--tblr-btn-color: var(--tblr-linkedin);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-linkedin-fg);--tblr-btn-hover-bg: var(--tblr-linkedin);--tblr-btn-hover-border-color: var(--tblr-linkedin);--tblr-btn-active-color: var(--tblr-linkedin-fg);--tblr-btn-active-bg: var(--tblr-linkedin);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-linkedin);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-google{--tblr-btn-color: var(--tblr-google);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-google-fg);--tblr-btn-hover-bg: var(--tblr-google);--tblr-btn-hover-border-color: var(--tblr-google);--tblr-btn-active-color: var(--tblr-google-fg);--tblr-btn-active-bg: var(--tblr-google);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-google);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-youtube{--tblr-btn-color: var(--tblr-youtube);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-youtube-fg);--tblr-btn-hover-bg: var(--tblr-youtube);--tblr-btn-hover-border-color: var(--tblr-youtube);--tblr-btn-active-color: var(--tblr-youtube-fg);--tblr-btn-active-bg: var(--tblr-youtube);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-youtube);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-vimeo{--tblr-btn-color: var(--tblr-vimeo);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-vimeo-fg);--tblr-btn-hover-bg: var(--tblr-vimeo);--tblr-btn-hover-border-color: var(--tblr-vimeo);--tblr-btn-active-color: var(--tblr-vimeo-fg);--tblr-btn-active-bg: var(--tblr-vimeo);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-vimeo);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-dribbble{--tblr-btn-color: var(--tblr-dribbble);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-dribbble-fg);--tblr-btn-hover-bg: var(--tblr-dribbble);--tblr-btn-hover-border-color: var(--tblr-dribbble);--tblr-btn-active-color: var(--tblr-dribbble-fg);--tblr-btn-active-bg: var(--tblr-dribbble);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-dribbble);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-github{--tblr-btn-color: var(--tblr-github);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-github-fg);--tblr-btn-hover-bg: var(--tblr-github);--tblr-btn-hover-border-color: var(--tblr-github);--tblr-btn-active-color: var(--tblr-github-fg);--tblr-btn-active-bg: var(--tblr-github);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-github);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-instagram{--tblr-btn-color: var(--tblr-instagram);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-instagram-fg);--tblr-btn-hover-bg: var(--tblr-instagram);--tblr-btn-hover-border-color: var(--tblr-instagram);--tblr-btn-active-color: var(--tblr-instagram-fg);--tblr-btn-active-bg: var(--tblr-instagram);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-instagram);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-pinterest{--tblr-btn-color: var(--tblr-pinterest);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-pinterest-fg);--tblr-btn-hover-bg: var(--tblr-pinterest);--tblr-btn-hover-border-color: var(--tblr-pinterest);--tblr-btn-active-color: var(--tblr-pinterest-fg);--tblr-btn-active-bg: var(--tblr-pinterest);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-pinterest);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-vk{--tblr-btn-color: var(--tblr-vk);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-vk-fg);--tblr-btn-hover-bg: var(--tblr-vk);--tblr-btn-hover-border-color: var(--tblr-vk);--tblr-btn-active-color: var(--tblr-vk-fg);--tblr-btn-active-bg: var(--tblr-vk);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-vk);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-rss{--tblr-btn-color: var(--tblr-rss);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-rss-fg);--tblr-btn-hover-bg: var(--tblr-rss);--tblr-btn-hover-border-color: var(--tblr-rss);--tblr-btn-active-color: var(--tblr-rss-fg);--tblr-btn-active-bg: var(--tblr-rss);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-rss);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-flickr{--tblr-btn-color: var(--tblr-flickr);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-flickr-fg);--tblr-btn-hover-bg: var(--tblr-flickr);--tblr-btn-hover-border-color: var(--tblr-flickr);--tblr-btn-active-color: var(--tblr-flickr-fg);--tblr-btn-active-bg: var(--tblr-flickr);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-flickr);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-bitbucket{--tblr-btn-color: var(--tblr-bitbucket);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-bitbucket-fg);--tblr-btn-hover-bg: var(--tblr-bitbucket);--tblr-btn-hover-border-color: var(--tblr-bitbucket);--tblr-btn-active-color: var(--tblr-bitbucket-fg);--tblr-btn-active-bg: var(--tblr-bitbucket);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-bitbucket);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-tabler{--tblr-btn-color: var(--tblr-tabler);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-tabler-fg);--tblr-btn-hover-bg: var(--tblr-tabler);--tblr-btn-hover-border-color: var(--tblr-tabler);--tblr-btn-active-color: var(--tblr-tabler-fg);--tblr-btn-active-bg: var(--tblr-tabler);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-tabler);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-sm,.btn-group-sm>.btn{--tblr-btn-line-height: 1.5;--tblr-btn-icon-size: .75rem}.btn-lg,.btn-group-lg>.btn{--tblr-btn-line-height: 1.5;--tblr-btn-icon-size: 2rem}.btn-pill{padding-right:1.5em;padding-left:1.5em;border-radius:10rem}.btn-pill[class*=btn-icon]{padding:.375rem 15px}.btn-square{border-radius:0}.btn-icon{min-width:calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2);min-height:calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2);padding-left:0;padding-right:0}.btn-icon .icon{margin:calc(-1 * var(--tblr-btn-padding-x))}.btn-list{--tblr-list-gap: .5rem;display:flex;flex-wrap:wrap;gap:var(--tblr-list-gap)}.btn-floating{position:fixed;z-index:1030;bottom:1.5rem;right:1.5rem;border-radius:100rem}.btn-loading{position:relative;color:transparent!important;text-shadow:none!important;pointer-events:none}.btn-loading>*{opacity:0}.btn-loading:after{content:"";display:inline-block;vertical-align:text-bottom;border:2px var(--tblr-border-style) currentColor;border-right-color:transparent;border-radius:100rem;color:var(--tblr-btn-color);position:absolute;width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);left:calc(50% - var(--tblr-btn-icon-size) / 2);top:calc(50% - var(--tblr-btn-icon-size) / 2);animation:spinner-border .75s linear infinite}.btn-action{padding:0;border:0;color:var(--tblr-secondary);display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:var(--tblr-border-radius);background:transparent}.btn-action:after{content:none}.btn-action:focus{outline:none;box-shadow:none}.btn-action:hover,.btn-action.show{color:var(--tblr-body-color);background:var(--tblr-active-bg)}.btn-action.show{color:var(--tblr-primary)}.btn-action .icon{margin:0;width:1.25rem;height:1.25rem;font-size:1.25rem;stroke-width:1}.btn-actions{display:flex}.btn-group,.btn-group-vertical{box-shadow:var(--tblr-box-shadow-input)}.btn-group>.btn-check:checked+.btn,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:5}.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus{z-index:1}.calendar{display:block;font-size:.765625rem;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.calendar-nav{display:flex;align-items:center}.calendar-title{flex:1;text-align:center}.calendar-body,.calendar-header{display:flex;flex-wrap:wrap;justify-content:flex-start;padding:.5rem 0}.calendar-header{color:var(--tblr-secondary)}.calendar-date{flex:0 0 14.2857142857%;max-width:14.2857142857%;padding:.2rem;text-align:center;border:0}.calendar-date.prev-month,.calendar-date.next-month{opacity:.25}.calendar-date .date-item{position:relative;display:inline-block;width:1.4rem;height:1.4rem;line-height:1.4rem;color:#66758c;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;background:0 0;border:var(--tblr-border-width) var(--tblr-border-style) transparent;border-radius:100rem;outline:0;transition:background .3s,border .3s,box-shadow .32s,color .3s}@media (prefers-reduced-motion: reduce){.calendar-date .date-item{transition:none}}.calendar-date .date-item:hover{color:var(--tblr-primary);text-decoration:none;background:#fefeff;border-color:var(--tblr-border-color)}.calendar-date .date-today{color:var(--tblr-primary);border-color:var(--tblr-border-color)}.calendar-range{position:relative}.calendar-range:before{position:absolute;top:50%;right:0;left:0;height:1.4rem;content:"";background:rgba(var(--tblr-primary-rgb),.1);transform:translateY(-50%)}.calendar-range.range-start .date-item,.calendar-range.range-end .date-item{color:#fff;background:var(--tblr-primary);border-color:var(--tblr-primary)}.calendar-range.range-start:before{left:50%}.calendar-range.range-end:before{right:50%}.carousel-indicators-vertical{left:auto;top:0;margin:0 1rem 0 0;flex-direction:column}.carousel-indicators-vertical [data-bs-target]{margin:3px 0;width:3px;height:30px;border:0;border-left:10px var(--tblr-border-style) transparent;border-right:10px var(--tblr-border-style) transparent}.carousel-indicators-dot [data-bs-target]{width:.5rem;height:.5rem;border-radius:100rem;border:10px var(--tblr-border-style) transparent;margin:0}.carousel-indicators-thumb [data-bs-target]{width:2rem;height:auto;background:no-repeat center/cover;border:0;border-radius:var(--tblr-border-radius);box-shadow:rgba(var(--tblr-body-color-rgb),.04) 0 2px 4px;margin:0 3px;opacity:.75}@media (min-width: 992px){.carousel-indicators-thumb [data-bs-target]{width:4rem}}.carousel-indicators-thumb [data-bs-target]:before{content:"";padding-top:var(--tblr-aspect-ratio, 100%);display:block}.carousel-indicators-thumb.carousel-indicators-vertical [data-bs-target]{margin:3px 0}.carousel-caption-background{background:red;position:absolute;left:0;right:0;bottom:0;height:90%;background:linear-gradient(0deg,#182433e6,#18243300)}.card{transition:transform .3s ease-out,opacity .3s ease-out,box-shadow .3s ease-out}@media (prefers-reduced-motion: reduce){.card{transition:none}}@media print{.card{border:none;box-shadow:none}}a.card{color:inherit}a.card:hover{text-decoration:none;box-shadow:rgba(var(--tblr-body-color-rgb),.16) 0 2px 16px}.card .card{box-shadow:none}.card-borderless,.card-borderless .card-header,.card-borderless .card-footer{border-color:transparent}.card-stamp{--tblr-stamp-size: 7rem;position:absolute;top:0;right:0;width:calc(var(--tblr-stamp-size) * 1);height:calc(var(--tblr-stamp-size) * 1);max-height:100%;border-top-right-radius:4px;opacity:.2;overflow:hidden;pointer-events:none}.card-stamp-lg{--tblr-stamp-size: 13rem}.card-stamp-icon{background:var(--tblr-secondary);color:var(--tblr-card-bg, var(--tblr-bg-surface));display:flex;align-items:center;justify-content:center;border-radius:100rem;width:calc(var(--tblr-stamp-size) * 1);height:calc(var(--tblr-stamp-size) * 1);position:relative;top:calc(var(--tblr-stamp-size) * -.25);right:calc(var(--tblr-stamp-size) * -.25);font-size:calc(var(--tblr-stamp-size) * .75);transform:rotate(10deg)}.card-stamp-icon .icon{stroke-width:2;width:calc(var(--tblr-stamp-size) * .75);height:calc(var(--tblr-stamp-size) * .75)}.card-img,.card-img-start{border-top-left-radius:calc(var(--tblr-border-radius) - (var(--tblr-border-width)));border-bottom-left-radius:calc(var(--tblr-border-radius) - (var(--tblr-border-width)))}.card-img,.card-img-end{border-top-right-radius:calc(var(--tblr-border-radius) - (var(--tblr-border-width)));border-bottom-right-radius:calc(var(--tblr-border-radius) - (var(--tblr-border-width)))}.card-img-overlay{display:flex;flex-direction:column;justify-content:flex-end}.card-img-overlay-dark{background-image:linear-gradient(180deg,#0000,#0009)}.card-inactive{pointer-events:none;box-shadow:none}.card-inactive .card-body{opacity:.64}.card-active{--tblr-card-border-color: var(--tblr-primary);--tblr-card-bg: var(--tblr-active-bg)}.card-btn{display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem;text-align:center;transition:background .3s;border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);flex:1;color:inherit;font-weight:var(--tblr-font-weight-medium)}@media (prefers-reduced-motion: reduce){.card-btn{transition:none}}.card-btn:hover{text-decoration:none;background:rgba(var(--tblr-primary-rgb),.04)}.card-btn+.card-btn{border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.card-stacked{--tblr-card-stacked-offset: .25rem;position:relative}.card-stacked:after{position:absolute;top:calc(-1 * var(--tblr-card-stacked-offset));right:var(--tblr-card-stacked-offset);left:var(--tblr-card-stacked-offset);height:var(--tblr-card-stacked-offset);content:"";background:var(--tblr-card-bg, var(--tblr-bg-surface));border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-card-border-color);border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-cover{position:relative;padding:1rem 1.25rem;background:#666 no-repeat center/cover}.card-cover:before{position:absolute;inset:0;content:"";background:#1824337a}.card-cover:first-child,.card-cover:first-child:before{border-radius:4px 4px 0 0}.card-cover-blurred:before{backdrop-filter:blur(2px)}.card-actions{margin:-.5rem -.5rem -.5rem auto;padding-left:.5rem}.card-actions a{text-decoration:none}.card-header{color:inherit;display:flex;align-items:center;background:transparent}.card-header:first-child{border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-header-light{border-bottom-color:transparent;background:var(--tblr-bg-surface-tertiary)}.card-header-tabs{background:var(--tblr-bg-surface-tertiary);flex:1;margin:calc(var(--tblr-card-cap-padding-y) * -1) calc(var(--tblr-card-cap-padding-x) * -1) calc(var(--tblr-card-cap-padding-y) * -1);padding:calc(var(--tblr-card-cap-padding-y) * .5) calc(var(--tblr-card-cap-padding-x) * .5) 0}.card-header-pills{flex:1;margin-top:-.5rem;margin-bottom:-.5rem}.card-rotate-left{transform:rotate(-1.5deg)}.card-rotate-right{transform:rotate(1.5deg)}.card-link{color:inherit}.card-link:hover{color:inherit;text-decoration:none;box-shadow:0 1px 6px #00000014}.card-link-rotate:hover{transform:rotate(1.5deg);opacity:1}.card-link-pop:hover{transform:translateY(-2px);opacity:1}.card-footer{margin-top:auto}.card-footer:last-child{border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-footer-transparent{background:transparent;border-color:transparent;padding-top:0}.card-footer-borderless{border-top:none}.card-progress{height:.25rem}.card-progress:last-child{border-radius:0 0 2px 2px}.card-progress:first-child{border-radius:2px 2px 0 0}.card-meta{color:var(--tblr-secondary)}.card-title{display:block;margin:0 0 1rem;font-size:1rem;font-weight:var(--tblr-font-weight-medium);color:inherit;line-height:1.5rem}a.card-title:hover{color:inherit}.card-header .card-title{margin:0}.card-subtitle{margin-bottom:1.25rem;color:var(--tblr-secondary);font-weight:400}.card-header .card-subtitle{margin:0}.card-title .card-subtitle{margin:0 0 0 .25rem;font-size:.875rem}.card-body{position:relative}.card-body>:last-child{margin-bottom:0}.card-sm>.card-body{padding:1rem}@media (min-width: 768px){.card-md>.card-body{padding:2.5rem}}@media (min-width: 768px){.card-lg>.card-body{padding:2rem}}@media (min-width: 992px){.card-lg>.card-body{padding:4rem}}@media print{.card-body{padding:0}}.card-body+.card-body{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.card-body-scrollable{overflow:auto}.card-options{top:1.5rem;right:.75rem;display:flex;margin-left:auto}.card-options-link{display:inline-block;min-width:1rem;margin-left:.25rem;color:var(--tblr-secondary)}.card-status-top{position:absolute;top:0;right:0;left:0;height:2px;border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-status-start{position:absolute;right:auto;bottom:0;width:2px;height:100%;border-radius:var(--tblr-card-border-radius) 0 0 var(--tblr-card-border-radius)}.card-status-bottom{position:absolute;top:initial;bottom:0;width:100%;height:2px;border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-table{margin-bottom:0!important}.card-table tr td:first-child,.card-table tr th:first-child{padding-left:1.25rem;border-left:0}.card-table tr td:last-child,.card-table tr th:last-child{padding-right:1.25rem;border-right:0}.card-table thead tr:first-child,.card-table tbody tr:first-child,.card-table tfoot tr:first-child,.card-table thead tr:first-child td,.card-table thead tr:first-child th,.card-table tbody tr:first-child td,.card-table tbody tr:first-child th,.card-table tfoot tr:first-child td,.card-table tfoot tr:first-child th{border-top:0}.card-body+.card-table{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-table-border-color)}.card-code{padding:0}.card-code .highlight{margin:0;border:0}.card-code pre{margin:0!important;border:0!important}.card-chart{position:relative;z-index:1;height:3.5rem}.card-avatar{margin-left:auto;margin-right:auto;box-shadow:0 0 0 .25rem var(--tblr-card-bg, var(--tblr-bg-surface));margin-top:calc(-1 * var(--tblr-avatar-size) * .5)}.card-body+.card-list-group{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.card-list-group .list-group-item{padding-right:1.25rem;padding-left:1.25rem;border-right:0;border-left:0;border-radius:0}.card-list-group .list-group-item:last-child{border-bottom:0}.card-list-group .list-group-item:first-child{border-top:0}.card-tabs .nav-tabs{position:relative;z-index:1000;border-bottom:0}.card-tabs .nav-tabs .nav-link{background:var(--tblr-bg-surface-tertiary);border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.card-tabs .nav-tabs .nav-link.active,.card-tabs .nav-tabs .nav-link:active,.card-tabs .nav-tabs .nav-link:hover{border-color:var(--tblr-border-color-translucent);color:var(--tblr-body-color)}.card-tabs .nav-tabs .nav-link.active{color:inherit;background:var(--tblr-card-bg, var(--tblr-bg-surface));border-bottom-color:transparent}.card-tabs .nav-tabs .nav-item:not(:first-child) .nav-link{border-top-left-radius:0}.card-tabs .nav-tabs .nav-item:not(:last-child) .nav-link{border-top-right-radius:0}.card-tabs .nav-tabs .nav-item+.nav-item{margin-left:calc(-1 * var(--tblr-border-width))}.card-tabs .nav-tabs-bottom,.card-tabs .nav-tabs-bottom .nav-link{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link.active{border-top-color:transparent}.card-tabs .nav-tabs-bottom .nav-item{margin-top:calc(-1 * var(--tblr-border-width));margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-item .nav-link{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);border-radius:0 0 var(--tblr-border-radius) var(--tblr-border-radius)}.card-tabs .nav-tabs-bottom .nav-item:not(:first-child) .nav-link{border-bottom-left-radius:0}.card-tabs .nav-tabs-bottom .nav-item:not(:last-child) .nav-link{border-bottom-right-radius:0}.card-tabs .card{border-bottom-left-radius:0}.card-tabs .nav-tabs+.tab-content .card{border-bottom-left-radius:var(--tblr-card-border-radius);border-top-left-radius:0}.card-note{--tblr-card-bg: #fff7dd;--tblr-card-border-color: #fff1c9}.btn-close{cursor:pointer}.btn-close:focus{outline:none}.dropdown-menu{user-select:none;background-clip:border-box}.dropdown-menu.card{padding:0;min-width:25rem;display:none}.dropdown-menu.card.show{display:flex}.dropdown-item{min-width:11rem;display:flex;align-items:center;margin:0;line-height:1.4285714286}.dropdown-item-icon{width:1.25rem!important;height:1.25rem!important;margin-right:.5rem;color:var(--tblr-secondary);opacity:.7;text-align:center}.dropdown-item-indicator{margin-right:.5rem;margin-left:-.25rem;height:1.25rem;display:inline-flex;line-height:1;vertical-align:bottom;align-items:center}.dropdown-header{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);padding-bottom:.25rem;pointer-events:none}.dropdown-menu-scrollable{height:auto;max-height:13rem;overflow-x:hidden}.dropdown-menu-column{min-width:11rem}.dropdown-menu-column .dropdown-item{min-width:0}.dropdown-menu-columns{display:flex;flex:0 .25rem}.dropdown-menu-arrow:before{content:"";position:absolute;top:-.25rem;left:.75rem;display:block;background:inherit;width:14px;height:14px;transform:rotate(45deg);transform-origin:center;border:1px solid;border-color:inherit;z-index:-1;clip:rect(0px,9px,9px,0px)}.dropdown-menu-arrow.dropdown-menu-end:before{right:.75rem;left:auto}.dropend>.dropdown-menu{margin-top:calc(-.25rem - 1px);margin-left:-.25rem}.dropend .dropdown-toggle:after{margin-left:auto}.dropdown-menu-card{padding:0}.dropdown-menu-card>.card{margin:0;border:0;box-shadow:none}.datagrid{--tblr-datagrid-padding: 1.5rem;--tblr-datagrid-item-width: 15rem;display:grid;grid-gap:var(--tblr-datagrid-padding);grid-template-columns:repeat(auto-fit,minmax(var(--tblr-datagrid-item-width),1fr))}.datagrid-title{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);margin-bottom:.25rem}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center}@media (min-width: 768px){.empty{padding:3rem}}.empty-icon{margin:0 0 1rem;width:3rem;height:3rem;line-height:1;color:var(--tblr-secondary)}.empty-icon svg{width:100%;height:100%}.empty-img{margin:0 0 2rem;line-height:1}.empty-header{margin:0 0 1rem;font-size:4rem;font-weight:var(--tblr-font-weight-light);line-height:1;color:var(--tblr-secondary)}.empty-title{font-size:1.25rem;line-height:1.75rem;font-weight:var(--tblr-font-weight-bold)}.empty-title,.empty-subtitle{margin:0 0 .5rem}.empty-action{margin-top:1.5rem}.empty-bordered{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.row>*{min-width:0}.col-separator{border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.container-slim{--tblr-gutter-x: calc(var(--tblr-page-padding) * 2);--tblr-gutter-y: 0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto;max-width:16rem}.container-tight{--tblr-gutter-x: calc(var(--tblr-page-padding) * 2);--tblr-gutter-y: 0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto;max-width:30rem}.container-narrow{--tblr-gutter-x: calc(var(--tblr-page-padding) * 2);--tblr-gutter-y: 0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto;max-width:45rem}.row-0{margin-right:0;margin-left:0}.row-0>.col,.row-0>[class*=col-]{padding-right:0;padding-left:0}.row-0 .card{margin-bottom:0}.row-sm{margin-right:-.375rem;margin-left:-.375rem}.row-sm>.col,.row-sm>[class*=col-]{padding-right:.375rem;padding-left:.375rem}.row-sm .card{margin-bottom:.75rem}.row-md{margin-right:-1.5rem;margin-left:-1.5rem}.row-md>.col,.row-md>[class*=col-]{padding-right:1.5rem;padding-left:1.5rem}.row-md .card{margin-bottom:3rem}.row-lg{margin-right:-3rem;margin-left:-3rem}.row-lg>.col,.row-lg>[class*=col-]{padding-right:3rem;padding-left:3rem}.row-lg .card{margin-bottom:6rem}.row-deck>.col,.row-deck>[class*=col-]{display:flex;align-items:stretch}.row-deck>.col .card,.row-deck>[class*=col-] .card{flex:1 1 auto}.row-cards{--tblr-gutter-x: var(--tblr-page-padding);--tblr-gutter-y: var(--tblr-page-padding);min-width:0}.row-cards .row-cards{flex:1}.space-y{display:flex;flex-direction:column;gap:1rem}.space-x{display:flex;gap:1rem}.space-y-0{display:flex;flex-direction:column;gap:0}.space-x-0{display:flex;gap:0}.space-y-1{display:flex;flex-direction:column;gap:.25rem}.space-x-1{display:flex;gap:.25rem}.space-y-2{display:flex;flex-direction:column;gap:.5rem}.space-x-2{display:flex;gap:.5rem}.space-y-3{display:flex;flex-direction:column;gap:1rem}.space-x-3{display:flex;gap:1rem}.space-y-4{display:flex;flex-direction:column;gap:1.5rem}.space-x-4{display:flex;gap:1.5rem}.space-y-5{display:flex;flex-direction:column;gap:2rem}.space-x-5{display:flex;gap:2rem}.space-y-6{display:flex;flex-direction:column;gap:3rem}.space-x-6{display:flex;gap:3rem}.space-y-7{display:flex;flex-direction:column;gap:5rem}.space-x-7{display:flex;gap:5rem}.space-y-8{display:flex;flex-direction:column;gap:8rem}.space-x-8{display:flex;gap:8rem}.divide-y>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y>:not(template):not(:first-child){padding-top:1rem!important}.divide-y>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x>:not(template):not(:first-child){padding-left:1rem!important}.divide-x>:not(template):not(:last-child){padding-right:1rem!important}.divide-y-0>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-0>:not(template):not(:first-child){padding-top:0!important}.divide-y-0>:not(template):not(:last-child){padding-bottom:0!important}.divide-x-0>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-0>:not(template):not(:first-child){padding-left:0!important}.divide-x-0>:not(template):not(:last-child){padding-right:0!important}.divide-y-1>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-1>:not(template):not(:first-child){padding-top:.25rem!important}.divide-y-1>:not(template):not(:last-child){padding-bottom:.25rem!important}.divide-x-1>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-1>:not(template):not(:first-child){padding-left:.25rem!important}.divide-x-1>:not(template):not(:last-child){padding-right:.25rem!important}.divide-y-2>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-2>:not(template):not(:first-child){padding-top:.5rem!important}.divide-y-2>:not(template):not(:last-child){padding-bottom:.5rem!important}.divide-x-2>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-2>:not(template):not(:first-child){padding-left:.5rem!important}.divide-x-2>:not(template):not(:last-child){padding-right:.5rem!important}.divide-y-3>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-3>:not(template):not(:first-child){padding-top:1rem!important}.divide-y-3>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x-3>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-3>:not(template):not(:first-child){padding-left:1rem!important}.divide-x-3>:not(template):not(:last-child){padding-right:1rem!important}.divide-y-4>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-4>:not(template):not(:first-child){padding-top:1.5rem!important}.divide-y-4>:not(template):not(:last-child){padding-bottom:1.5rem!important}.divide-x-4>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-4>:not(template):not(:first-child){padding-left:1.5rem!important}.divide-x-4>:not(template):not(:last-child){padding-right:1.5rem!important}.divide-y-5>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-5>:not(template):not(:first-child){padding-top:2rem!important}.divide-y-5>:not(template):not(:last-child){padding-bottom:2rem!important}.divide-x-5>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-5>:not(template):not(:first-child){padding-left:2rem!important}.divide-x-5>:not(template):not(:last-child){padding-right:2rem!important}.divide-y-6>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-6>:not(template):not(:first-child){padding-top:3rem!important}.divide-y-6>:not(template):not(:last-child){padding-bottom:3rem!important}.divide-x-6>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-6>:not(template):not(:first-child){padding-left:3rem!important}.divide-x-6>:not(template):not(:last-child){padding-right:3rem!important}.divide-y-7>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-7>:not(template):not(:first-child){padding-top:5rem!important}.divide-y-7>:not(template):not(:last-child){padding-bottom:5rem!important}.divide-x-7>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-7>:not(template):not(:first-child){padding-left:5rem!important}.divide-x-7>:not(template):not(:last-child){padding-right:5rem!important}.divide-y-8>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-8>:not(template):not(:first-child){padding-top:8rem!important}.divide-y-8>:not(template):not(:last-child){padding-bottom:8rem!important}.divide-x-8>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-8>:not(template):not(:first-child){padding-left:8rem!important}.divide-x-8>:not(template):not(:last-child){padding-right:8rem!important}.divide-y-fill{display:flex;flex-direction:column;height:100%}.divide-y-fill>:not(template){flex:1;display:flex;justify-content:center;flex-direction:column}.icon{--tblr-icon-size: 1.25rem;width:var(--tblr-icon-size);height:var(--tblr-icon-size);font-size:var(--tblr-icon-size);vertical-align:bottom;stroke-width:1.5}.icon:hover{text-decoration:none}.icon-inline{--tblr-icon-size: 1rem;vertical-align:-.2rem}.icon-filled{fill:currentColor}.icon-sm{--tblr-icon-size: 1rem;stroke-width:1}.icon-md{--tblr-icon-size: 2.5rem;stroke-width:1}.icon-lg{--tblr-icon-size: 3.5rem;stroke-width:1}.icon-pulse{transition:all .15s ease 0s;animation:pulse 2s ease infinite;animation-fill-mode:both}.icon-tada{transition:all .15s ease 0s;animation:tada 3s ease infinite;animation-fill-mode:both}.icon-rotate{transition:all .15s ease 0s;animation:rotate-360 3s linear infinite;animation-fill-mode:both}.img-responsive{--tblr-img-responsive-ratio: 75%;background:no-repeat center/cover;padding-top:var(--tblr-img-responsive-ratio)}.img-responsive-grid{padding-top:calc(var(--tblr-img-responsive-ratio) - var(--tblr-gutter-y) / 2)}.img-responsive-1x1{--tblr-img-responsive-ratio: 100%}.img-responsive-2x1{--tblr-img-responsive-ratio: 50%}.img-responsive-1x2{--tblr-img-responsive-ratio: 200%}.img-responsive-3x1{--tblr-img-responsive-ratio: 33.3333333333%}.img-responsive-1x3{--tblr-img-responsive-ratio: 300%}.img-responsive-4x3{--tblr-img-responsive-ratio: 75%}.img-responsive-3x4{--tblr-img-responsive-ratio: 133.3333333333%}.img-responsive-16x9{--tblr-img-responsive-ratio: 56.25%}.img-responsive-9x16{--tblr-img-responsive-ratio: 177.7777777778%}.img-responsive-21x9{--tblr-img-responsive-ratio: 42.8571428571%}.img-responsive-9x21{--tblr-img-responsive-ratio: 233.3333333333%}textarea[cols]{height:auto}.col-form-label,.form-label{display:block;font-weight:var(--tblr-font-weight-medium)}.col-form-label.required:after,.form-label.required:after{content:"*";margin-left:.25rem;color:#d63939}.form-label-description{float:right;font-weight:var(--tblr-font-weight-normal);color:var(--tblr-gray-500)}.form-hint{display:block;color:var(--tblr-gray-500)}.form-hint:last-child{margin-bottom:0}.form-hint+.form-control{margin-top:.25rem}.form-label+.form-hint{margin-top:-.25rem}.input-group+.form-hint,.form-control+.form-hint,.form-select+.form-hint{margin-top:.5rem;color:var(--tblr-gray-500)}.form-select:-moz-focusring{color:var(--tblr-body-color)}.form-control:-webkit-autofill{box-shadow:0 0 0 1000px var(--tblr-body-bg) inset;color:var(--tblr-body-color);-webkit-text-fill-color:var(--tblr-body-color)}.form-control:disabled,.form-control.disabled{color:var(--tblr-gray-500);user-select:none}.form-control[size]{width:auto}.form-control-light{background-color:var(--tblr-gray-100);border-color:transparent}.form-control-dark{background-color:#0000001a;color:#fff;border-color:transparent}.form-control-dark:focus{background-color:#0000001a;box-shadow:none;border-color:#ffffff3d}.form-control-dark::placeholder{color:#fff9}.form-control-rounded{border-radius:10rem}.form-control-flush{padding:0;background:none!important;border-color:transparent!important;resize:none;box-shadow:none!important;line-height:inherit}.form-footer{margin-top:2rem}.form-fieldset{padding:1rem;margin-bottom:1rem;background:var(--tblr-body-bg);border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.form-help{display:inline-flex;font-weight:var(--tblr-font-weight-bold);align-items:center;justify-content:center;width:1.125rem;height:1.125rem;font-size:.75rem;color:var(--tblr-gray-500);text-align:center;text-decoration:none;cursor:pointer;user-select:none;background:var(--tblr-gray-100);border-radius:100rem;transition:background-color .3s,color .3s}@media (prefers-reduced-motion: reduce){.form-help{transition:none}}.form-help:hover,.form-help[aria-describedby]{color:#fff;background:var(--tblr-primary)}.input-group{box-shadow:var(--tblr-box-shadow-input);border-radius:var(--tblr-border-radius)}.input-group .form-control,.input-group .btn{box-shadow:none}.input-group-link{font-size:.75rem}.input-group-flat:focus-within{box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25);border-radius:var(--tblr-border-radius)}.input-group-flat:focus-within .form-control,.input-group-flat:focus-within .input-group-text{border-color:#80c2be!important}.input-group-flat .form-control:focus{border-color:var(--tblr-border-color);box-shadow:none}.input-group-flat .form-control:not(:last-child){border-right:0}.input-group-flat .form-control:not(:first-child){border-left:0}.input-group-flat .input-group-text{background:var(--tblr-bg-forms);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.input-group-flat .input-group-text{transition:none}}.input-group-flat .input-group-text:first-child{padding-right:0}.input-group-flat .input-group-text:last-child{padding-left:0}.form-file-button{margin-left:0;border-left:0}.input-icon{position:relative}.input-icon .form-control:not(:last-child),.input-icon .form-select:not(:last-child){padding-right:2.5rem}.input-icon .form-control:not(:first-child),.input-icon .form-select:not(:last-child){padding-left:2.5rem}.input-icon-addon{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;min-width:2.5rem;color:var(--tblr-icon-color);pointer-events:none;font-size:1.2em}.input-icon-addon:last-child{right:0;left:auto}.form-colorinput{position:relative;display:inline-block;margin:0;line-height:1;cursor:pointer}.form-colorinput-input{position:absolute;z-index:-1;opacity:0}.form-colorinput-color{display:block;width:1.5rem;height:1.5rem;color:#fff;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);border-radius:3px;box-shadow:0 1px 2px #0000000d}.form-colorinput-color:before{position:absolute;top:0;left:0;width:100%;height:100%;content:"";background:no-repeat center center/1.25rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");opacity:0;transition:opacity .3s}@media (prefers-reduced-motion: reduce){.form-colorinput-color:before{transition:none}}.form-colorinput-input:checked~.form-colorinput-color:before{opacity:1}.form-colorinput-input:focus~.form-colorinput-color{border-color:var(--tblr-primary);box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-colorinput-light .form-colorinput-color:before{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23182433' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-imagecheck{position:relative;margin:0;cursor:pointer}.form-imagecheck-input{position:absolute;z-index:-1;opacity:0}.form-imagecheck-figure{position:relative;display:block;margin:0;user-select:none;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:3px}.form-imagecheck-input:focus~.form-imagecheck-figure{border-color:var(--tblr-primary);box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-imagecheck-input:checked~.form-imagecheck-figure{border-color:var(--tblr-primary)}.form-imagecheck-figure:before{position:absolute;top:.25rem;left:.25rem;z-index:1;display:block;width:1.25rem;height:1.25rem;color:#fff;pointer-events:none;content:"";user-select:none;background:var(--tblr-bg-forms);border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:var(--tblr-border-radius);transition:opacity .3s}@media (prefers-reduced-motion: reduce){.form-imagecheck-figure:before{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure:before{background-color:var(--tblr-primary);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");background-repeat:repeat;background-position:center;background-size:1.25rem;border-color:var(--tblr-border-color-translucent)}.form-imagecheck-input[type=radio]~.form-imagecheck-figure:before{border-radius:50%}.form-imagecheck-input[type=radio]:checked~.form-imagecheck-figure:before{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-imagecheck-image{max-width:100%;display:block;opacity:.64;transition:opacity .3s}@media (prefers-reduced-motion: reduce){.form-imagecheck-image{transition:none}}.form-imagecheck-image:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.form-imagecheck-image:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.form-imagecheck:hover .form-imagecheck-image,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-image{opacity:1}.form-imagecheck-caption{padding:.25rem;font-size:.765625rem;color:var(--tblr-secondary);text-align:center;transition:color .3s}@media (prefers-reduced-motion: reduce){.form-imagecheck-caption{transition:none}}.form-imagecheck:hover .form-imagecheck-caption,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-caption{color:var(--tblr-body-color)}.form-selectgroup{display:inline-flex;margin:0 -.5rem -.5rem 0;flex-wrap:wrap}.form-selectgroup .form-selectgroup-item{margin:0 .5rem .5rem 0}.form-selectgroup-vertical{flex-direction:column}.form-selectgroup-item{display:block;position:relative}.form-selectgroup-input{position:absolute;top:0;left:0;z-index:-1;opacity:0}.form-selectgroup-label{position:relative;display:block;min-width:calc(1.4285714286em + 1.125rem + calc(var(--tblr-border-width) * 2));margin:0;padding:.5625rem .75rem;font-size:.875rem;line-height:1.4285714286;color:var(--tblr-secondary);background:var(--tblr-bg-forms);text-align:center;cursor:pointer;user-select:none;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:3px;box-shadow:var(--tblr-box-shadow-input);transition:border-color .3s,background .3s,color .3s}@media (prefers-reduced-motion: reduce){.form-selectgroup-label{transition:none}}.form-selectgroup-label .icon:only-child{margin:0 -.25rem}.form-selectgroup-label:hover{color:var(--tblr-body-color)}.form-selectgroup-check{display:inline-block;width:1.25rem;height:1.25rem;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);vertical-align:middle;box-shadow:var(--tblr-box-shadow-input)}.form-selectgroup-input[type=checkbox]+.form-selectgroup-label .form-selectgroup-check{border-radius:var(--tblr-border-radius)}.form-selectgroup-input[type=radio]+.form-selectgroup-label .form-selectgroup-check{border-radius:50%}.form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-check{background-color:var(--tblr-primary);background-repeat:repeat;background-position:center;background-size:1.25rem;border-color:var(--tblr-border-color-translucent)}.form-selectgroup-input[type=checkbox]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-selectgroup-input[type=radio]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-selectgroup-check-floated{position:absolute;top:.5625rem;right:.5625rem}.form-selectgroup-input:checked+.form-selectgroup-label{z-index:1;color:var(--tblr-primary);background:rgba(var(--tblr-primary-rgb),.04);border-color:var(--tblr-primary)}.form-selectgroup-input:focus+.form-selectgroup-label{z-index:2;color:var(--tblr-primary);border-color:var(--tblr-primary);box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-selectgroup-boxes .form-selectgroup-label{text-align:left;padding:1.25rem 1rem;color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label{color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-title{color:var(--tblr-primary)}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-label-content{opacity:1}.form-selectgroup-pills{flex-wrap:wrap;align-items:flex-start}.form-selectgroup-pills .form-selectgroup-item{flex-grow:0}.form-selectgroup-pills .form-selectgroup-label{border-radius:50px}.form-control-color::-webkit-color-swatch{border:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.form-control::file-selector-button{background-color:var(--tblr-btn-color, var(--tblr-tertiary-bg))}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--tblr-btn-color, var(--tblr-secondary-bg))}.form-check{user-select:none}.form-check.form-check-highlight .form-check-input:not(:checked)~.form-check-label{color:var(--tblr-secondary)}.form-check .form-check-label-off{color:var(--tblr-secondary)}.form-check .form-check-input:checked~.form-check-label-off{display:none}.form-check .form-check-input:not(:checked)~.form-check-label-on{display:none}.form-check-input{background-size:1.25rem;margin-top:0rem;box-shadow:var(--tblr-box-shadow-input)}.form-switch .form-check-input{transition:background-color .3s,background-position .3s}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-check-label{display:block}.form-check-label.required:after{content:"*";margin-left:.25rem;color:#d63939}.form-check-description{display:block;color:var(--tblr-secondary);font-size:.75rem;margin-top:.25rem}.form-check-single,.form-check-single .form-check-input{margin:0}.form-switch .form-check-input{height:1.25rem;margin-top:0rem}.form-switch-lg{padding-left:3.5rem;min-height:1.5rem}.form-switch-lg .form-check-input{height:1.5rem;width:2.75rem;background-size:1.5rem;margin-left:-3.5rem}.form-switch-lg .form-check-label{padding-top:.125rem}.form-check-input:checked{border:none}.form-select.is-invalid-lite,.form-control.is-invalid-lite,.form-select.is-valid-lite,.form-control.is-valid-lite{border-color:var(--tblr-border-color)!important}.legend{--tblr-legend-size: .75em;display:inline-block;background:var(--tblr-border-color);width:var(--tblr-legend-size);height:var(--tblr-legend-size);border-radius:var(--tblr-border-radius-sm);border:1px solid var(--tblr-border-color-translucent)}.list-group{margin-left:0;margin-right:0}.list-group-header{background:var(--tblr-bg-surface-tertiary);padding:.5rem 1.25rem;font-size:.75rem;font-weight:var(--tblr-font-weight-medium);line-height:1;text-transform:uppercase;color:var(--tblr-gray-500);border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.list-group-flush>.list-group-header:last-child{border-bottom-width:0}.list-group-item{background-color:inherit}.list-group-item.active{background-color:rgba(var(--tblr-secondary-rgb),.08);border-left-color:#00857d;border-left-width:2px}.list-group-item:active,.list-group-item:focus,.list-group-item:hover{background-color:rgba(var(--tblr-secondary-rgb),.08)}.list-group-item.disabled,.list-group-item:disabled{color:#6c7a91;background-color:rgba(var(--tblr-secondary-rgb),.08)}.list-bordered .list-item{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);margin-top:-1px}.list-bordered .list-item:first-child{border-top:none}.list-group-hoverable .list-group-item-actions{opacity:0;transition:opacity .3s}@media (prefers-reduced-motion: reduce){.list-group-hoverable .list-group-item-actions{transition:none}}.list-group-hoverable .list-group-item:hover .list-group-item-actions,.list-group-hoverable .list-group-item-actions.show{opacity:1}.list-group-transparent{--tblr-list-group-border-radius: 0;margin:0 -1.25rem}.list-group-transparent .list-group-item{background:none;border:0}.list-group-transparent .list-group-item .icon{color:var(--tblr-secondary)}.list-group-transparent .list-group-item.active{font-weight:var(--tblr-font-weight-bold);color:inherit;background:var(--tblr-active-bg)}.list-group-transparent .list-group-item.active .icon{color:inherit}.list-separated-item{padding:1rem 0}.list-separated-item:first-child{padding-top:0}.list-separated-item:last-child{padding-bottom:0}.list-separated-item+.list-separated-item{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.list-inline-item:not(:last-child){margin-right:auto;margin-inline-end:.5rem}.list-inline-dots .list-inline-item+.list-inline-item:before{content:" \b7 ";margin-inline-end:.5rem}.loader{position:relative;display:block;width:2.5rem;height:2.5rem;color:#066fd1;vertical-align:middle}.loader:after{position:absolute;top:0;left:0;width:100%;height:100%;content:"";border:1px var(--tblr-border-style);border-color:transparent;border-top-color:currentColor;border-left-color:currentColor;border-radius:100rem;animation:rotate-360 .6s linear;animation-iteration-count:infinite}.dimmer{position:relative}.dimmer .loader{position:absolute;top:50%;right:0;left:0;display:none;margin:0 auto;transform:translateY(-50%)}.dimmer.active .loader{display:block}.dimmer.active .dimmer-content{pointer-events:none;opacity:.1}@keyframes animated-dots{0%{transform:translate(-100%)}}.animated-dots{display:inline-block;overflow:hidden;vertical-align:bottom}.animated-dots:after{display:inline-block;content:"...";animation:animated-dots 1.2s steps(4,jump-none) infinite}.modal-content>.btn-close,.modal-header>.btn-close{position:absolute;top:0;right:0;width:3.5rem;height:3.5rem;margin:0;padding:0;z-index:10}.modal-body{scrollbar-color:rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.16)}.modal-body::-webkit-scrollbar{width:1rem;height:1rem;transition:background .3s}@media (prefers-reduced-motion: reduce){.modal-body::-webkit-scrollbar{transition:none}}.modal-body::-webkit-scrollbar-thumb{border-radius:1rem;border:5px solid transparent;box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.16)}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.32)}.modal-body::-webkit-scrollbar-corner{background:transparent}.modal-body .modal-title{margin-bottom:1rem}.modal-body+.modal-body{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.modal-status{position:absolute;top:0;left:0;right:0;height:2px;background:var(--tblr-secondary);border-radius:var(--tblr-border-radius-lg) var(--tblr-border-radius-lg) 0 0}.modal-header{align-items:center;min-height:3.5rem;background:transparent;padding:0 3.5rem 0 1.5rem}.modal-title{font-size:1rem;font-weight:var(--tblr-font-weight-bold);color:inherit;line-height:1.4285714286}.modal-footer{padding-top:.75rem;padding-bottom:.75rem}.modal-blur{backdrop-filter:blur(4px)}.modal-full-width{max-width:none;margin:0 .5rem}.nav-vertical,.nav-vertical .nav{flex-direction:column;flex-wrap:nowrap}.nav-vertical .nav{margin-left:1.25rem;border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);padding-left:.5rem}.nav-vertical .nav-link.active,.nav-vertical .nav-item.show .nav-link{font-weight:var(--tblr-font-weight-bold)}.nav-vertical.nav-pills{margin:0 -.75rem}.nav-bordered{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.nav-bordered .nav-item+.nav-item{margin-left:1.25rem}.nav-bordered .nav-link{padding-left:0;padding-right:0;margin:0 0 -var(--tblr-border-width);border:0;border-bottom:2px var(--tblr-border-style) transparent;color:var(--tblr-secondary)}.nav-bordered .nav-link.active,.nav-bordered .nav-item.show .nav-link{color:var(--tblr-primary);border-color:var(--tblr-primary)}.nav-link{display:flex;transition:color .3s;align-items:center}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link-toggle{margin-left:auto;padding:0 .25rem;transition:transform .3s}@media (prefers-reduced-motion: reduce){.nav-link-toggle{transition:none}}.nav-link-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(-45deg)}.nav-link-toggle:after{margin:0}.nav-link[aria-expanded=true] .nav-link-toggle{transform:rotate(180deg)}.nav-link-icon{width:1.25rem;height:1.25rem;margin-right:.5rem;color:var(--tblr-icon-color)}.nav-link-icon svg{display:block;height:100%}.nav-fill .nav-item .nav-link{justify-content:center}.stars{display:inline-flex;color:#8a97ab;font-size:.75rem}.stars .star:not(:first-child){margin-left:.25rem}.pagination{user-select:none}.page-link{min-width:1.75rem;border-radius:var(--tblr-border-radius)}.page-item{text-align:center}.page-item:not(.active) .page-link:hover{background:transparent}.page-item.page-prev,.page-item.page-next{flex:0 0 50%;text-align:left}.page-item.page-next{margin-left:auto;text-align:right}.page-item-subtitle{margin-bottom:2px;font-size:12px;color:var(--tblr-secondary);text-transform:uppercase}.page-item.disabled .page-item-subtitle{color:var(--tblr-disabled-color)}.page-item-title{font-size:1rem;font-weight:var(--tblr-font-weight-normal);color:var(--tblr-body-color)}.page-link:hover .page-item-title{color:#00857d}.page-item.disabled .page-item-title{color:var(--tblr-disabled-color)}@keyframes progress-indeterminate{0%{right:100%;left:-35%}to,60%{right:-90%;left:100%}}.progress{position:relative;width:100%;line-height:.5rem;appearance:none}.progress::-webkit-progress-bar{background:var(--tblr-progress-bg)}.progress::-webkit-progress-value{background-color:var(--tblr-primary)}.progress::-moz-progress-bar{background-color:var(--tblr-primary)}.progress::-ms-fill{background-color:var(--tblr-primary);border:none}.progress-sm{height:.25rem}.progress-bar{height:100%}.progress-bar-indeterminate:after,.progress-bar-indeterminate:before{position:absolute;top:0;bottom:0;left:0;content:"";background-color:inherit;will-change:left,right}.progress-bar-indeterminate:before{animation:progress-indeterminate 1.5s cubic-bezier(.65,.815,.735,.395) infinite}.progress-separated .progress-bar{box-shadow:0 0 0 2px var(--tblr-card-bg, var(--tblr-bg-surface))}.progressbg{position:relative;padding:.25rem .5rem;display:flex}.progressbg-text{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progressbg-progress{position:absolute;inset:0;z-index:0;height:100%;background:transparent;pointer-events:none}.progressbg-value{font-weight:var(--tblr-font-weight-medium);margin-left:auto;padding-left:2rem}.ribbon{--tblr-ribbon-margin: .25rem;--tblr-ribbon-border-radius: var(--tblr-border-radius);position:absolute;top:.75rem;right:calc(-1 * var(--tblr-ribbon-margin));z-index:1;padding:.25rem .75rem;font-size:.625rem;font-weight:var(--tblr-font-weight-bold);line-height:1;color:#fff;text-align:center;text-transform:uppercase;background:var(--tblr-primary);border-color:var(--tblr-primary);border-radius:var(--tblr-ribbon-border-radius) 0 var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius);display:inline-flex;align-items:center;justify-content:center;min-height:2rem;min-width:2rem}.ribbon:before{position:absolute;right:0;bottom:100%;width:0;height:0;content:"";filter:brightness(70%);border:calc(var(--tblr-ribbon-margin) * .5) var(--tblr-border-style);border-color:inherit;border-top-color:transparent;border-right-color:transparent}.ribbon.bg-blue{border-color:var(--tblr-blue)}.ribbon.bg-blue-lt{border-color:rgba(var(--tblr-blue-rgb),.1)!important}.ribbon.bg-azure{border-color:var(--tblr-azure)}.ribbon.bg-azure-lt{border-color:rgba(var(--tblr-azure-rgb),.1)!important}.ribbon.bg-indigo{border-color:var(--tblr-indigo)}.ribbon.bg-indigo-lt{border-color:rgba(var(--tblr-indigo-rgb),.1)!important}.ribbon.bg-purple{border-color:var(--tblr-purple)}.ribbon.bg-purple-lt{border-color:rgba(var(--tblr-purple-rgb),.1)!important}.ribbon.bg-pink{border-color:var(--tblr-pink)}.ribbon.bg-pink-lt{border-color:rgba(var(--tblr-pink-rgb),.1)!important}.ribbon.bg-red{border-color:var(--tblr-red)}.ribbon.bg-red-lt{border-color:rgba(var(--tblr-red-rgb),.1)!important}.ribbon.bg-orange{border-color:var(--tblr-orange)}.ribbon.bg-orange-lt{border-color:rgba(var(--tblr-orange-rgb),.1)!important}.ribbon.bg-yellow{border-color:var(--tblr-yellow)}.ribbon.bg-yellow-lt{border-color:rgba(var(--tblr-yellow-rgb),.1)!important}.ribbon.bg-lime{border-color:var(--tblr-lime)}.ribbon.bg-lime-lt{border-color:rgba(var(--tblr-lime-rgb),.1)!important}.ribbon.bg-green{border-color:var(--tblr-green)}.ribbon.bg-green-lt{border-color:rgba(var(--tblr-green-rgb),.1)!important}.ribbon.bg-teal{border-color:var(--tblr-teal)}.ribbon.bg-teal-lt{border-color:rgba(var(--tblr-teal-rgb),.1)!important}.ribbon.bg-cyan{border-color:var(--tblr-cyan)}.ribbon.bg-cyan-lt{border-color:rgba(var(--tblr-cyan-rgb),.1)!important}.ribbon .icon{width:1.25rem;height:1.25rem;font-size:1.25rem}.ribbon-top{top:calc(-1 * var(--tblr-ribbon-margin));right:.75rem;width:2rem;padding:.5rem 0;border-radius:0 var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius)}.ribbon-top:before{top:0;right:100%;bottom:auto;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon-top.ribbon-start{right:auto;left:.75rem}.ribbon-top.ribbon-start:before{top:0;right:100%;left:auto}.ribbon-start{right:auto;left:calc(-1 * var(--tblr-ribbon-margin));border-radius:0 var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius)}.ribbon-start:before{top:auto;bottom:100%;left:0;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon-bottom{top:auto;bottom:.75rem}.ribbon-bookmark{padding-left:.25rem;border-radius:0 0 var(--tblr-ribbon-border-radius) 0}.ribbon-bookmark:after{position:absolute;top:0;right:100%;display:block;width:0;height:0;content:"";border:1rem var(--tblr-border-style);border-color:inherit;border-right-width:0;border-left-color:transparent;border-left-width:.5rem}.ribbon-bookmark.ribbon-left{padding-right:.5rem}.ribbon-bookmark.ribbon-left:after{right:auto;left:100%;border-right-color:transparent;border-right-width:.5rem;border-left-width:0}.ribbon-bookmark.ribbon-top{padding-right:0;padding-bottom:.25rem;padding-left:0;border-radius:0 var(--tblr-ribbon-border-radius) 0 0}.ribbon-bookmark.ribbon-top:after{top:100%;right:0;left:0;border-color:inherit;border-width:1rem;border-top-width:0;border-bottom-color:transparent;border-bottom-width:.5rem}.markdown{line-height:1.7142857143}.markdown>:first-child{margin-top:0}.markdown>:last-child,.markdown>:last-child .highlight{margin-bottom:0}@media (min-width: 768px){.markdown>hr,.markdown>.hr{margin-top:3em;margin-bottom:3em}}.markdown>h1,.markdown>.h1,.markdown>h2,.markdown>.h2,.markdown>h3,.markdown>.h3,.markdown>h4,.markdown>.h4,.markdown>h5,.markdown>.h5,.markdown>h6,.markdown>.h6{font-weight:var(--tblr-font-weight-bold)}.markdown>blockquote{font-size:1rem;margin:1.5rem 0;padding:.5rem 1.5rem}.markdown>img{border-radius:var(--tblr-border-radius)}.placeholder:not(.btn):not([class*=bg-]){background-color:currentColor!important}.placeholder:not(.avatar):not([class*=card-img-]){border-radius:var(--tblr-border-radius)}.steps{--tblr-steps-color: var(--tblr-primary);--tblr-steps-inactive-color: var(--tblr-border-color);--tblr-steps-dot-size: .5rem;--tblr-steps-border-width: 2px;display:flex;flex-wrap:nowrap;width:100%;padding:0;margin:0;list-style:none}.steps-blue{--tblr-steps-color: var(--tblr-blue)}.steps-azure{--tblr-steps-color: var(--tblr-azure)}.steps-indigo{--tblr-steps-color: var(--tblr-indigo)}.steps-purple{--tblr-steps-color: var(--tblr-purple)}.steps-pink{--tblr-steps-color: var(--tblr-pink)}.steps-red{--tblr-steps-color: var(--tblr-red)}.steps-orange{--tblr-steps-color: var(--tblr-orange)}.steps-yellow{--tblr-steps-color: var(--tblr-yellow)}.steps-lime{--tblr-steps-color: var(--tblr-lime)}.steps-green{--tblr-steps-color: var(--tblr-green)}.steps-teal{--tblr-steps-color: var(--tblr-teal)}.steps-cyan{--tblr-steps-color: var(--tblr-cyan)}.step-item{position:relative;flex:1 1 0;min-height:1rem;margin-top:0;color:inherit;text-align:center;cursor:default;padding-top:calc(var(--tblr-steps-dot-size))}a.step-item{cursor:pointer}a.step-item:hover{color:inherit}.step-item:after,.step-item:before{background:var(--tblr-steps-color)}.step-item:not(:last-child):after{position:absolute;left:50%;width:100%;content:"";transform:translateY(-50%)}.step-item:after{top:calc(var(--tblr-steps-dot-size) * .5);height:var(--tblr-steps-border-width)}.step-item:before{content:"";position:absolute;top:0;left:50%;z-index:1;box-sizing:content-box;display:flex;align-items:center;justify-content:center;border-radius:100rem;transform:translate(-50%);color:var(--tblr-white);width:var(--tblr-steps-dot-size);height:var(--tblr-steps-dot-size)}.step-item.active{font-weight:var(--tblr-font-weight-bold)}.step-item.active:after{background:var(--tblr-steps-inactive-color)}.step-item.active~.step-item{color:var(--tblr-disabled-color)}.step-item.active~.step-item:after,.step-item.active~.step-item:before{background:var(--tblr-steps-inactive-color)}.steps-counter{--tblr-steps-dot-size: 1.5rem;counter-reset:steps}.steps-counter .step-item{counter-increment:steps}.steps-counter .step-item:before{content:counter(steps)}.steps-vertical{--tblr-steps-dot-offset: 6px;flex-direction:column}.steps-vertical.steps-counter{--tblr-steps-dot-offset: -2px}.steps-vertical .step-item{text-align:left;padding-top:0;padding-left:calc(var(--tblr-steps-dot-size) + 1rem);min-height:auto}.steps-vertical .step-item:not(:first-child){margin-top:1rem}.steps-vertical .step-item:before{top:var(--tblr-steps-dot-offset);left:0;transform:translate(0)}.steps-vertical .step-item:not(:last-child):after{position:absolute;content:"";transform:translate(-50%);top:var(--tblr-steps-dot-offset);left:calc(var(--tblr-steps-dot-size) * .5);width:var(--tblr-steps-border-width);height:calc(100% + 1rem)}@keyframes status-pulsate-main{40%{transform:scale(1.25)}60%{transform:scale(1.25)}}@keyframes status-pulsate-secondary{10%{transform:scale(1)}30%{transform:scale(3)}80%{transform:scale(3)}to{transform:scale(1)}}@keyframes status-pulsate-tertiary{25%{transform:scale(1)}80%{transform:scale(3);opacity:0}to{transform:scale(3);opacity:0}}.status{--tblr-status-height: 1.5rem;--tblr-status-color: #6c7a91;--tblr-status-color-rgb: 108, 122, 145;display:inline-flex;align-items:center;height:var(--tblr-status-height);padding:.25rem .75rem;gap:.5rem;color:var(--tblr-status-color);background:rgba(var(--tblr-status-color-rgb),.1);font-size:.875rem;text-transform:none;letter-spacing:normal;border-radius:100rem;font-weight:var(--tblr-font-weight-medium);line-height:1;margin:0}.status .status-dot{background:var(--tblr-status-color)}.status .icon{font-size:1.25rem}.status-lite{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)!important;background:transparent!important;color:var(--tblr-body-color)!important}.status-primary{--tblr-status-color: #00857D;--tblr-status-color-rgb: 0, 133, 125}.status-secondary{--tblr-status-color: #6c7a91;--tblr-status-color-rgb: 108, 122, 145}.status-success{--tblr-status-color: #2fb344;--tblr-status-color-rgb: 47, 179, 68}.status-info{--tblr-status-color: #4299e1;--tblr-status-color-rgb: 66, 153, 225}.status-warning{--tblr-status-color: #f76707;--tblr-status-color-rgb: 247, 103, 7}.status-danger{--tblr-status-color: #d63939;--tblr-status-color-rgb: 214, 57, 57}.status-light{--tblr-status-color: #f6f8fb;--tblr-status-color-rgb: 246, 248, 251}.status-dark{--tblr-status-color: #182433;--tblr-status-color-rgb: 24, 36, 51}.status-muted{--tblr-status-color: #6c7a91;--tblr-status-color-rgb: 108, 122, 145}.status-blue{--tblr-status-color: #066fd1;--tblr-status-color-rgb: 6, 111, 209}.status-azure{--tblr-status-color: #4299e1;--tblr-status-color-rgb: 66, 153, 225}.status-indigo{--tblr-status-color: #4263eb;--tblr-status-color-rgb: 66, 99, 235}.status-purple{--tblr-status-color: #ae3ec9;--tblr-status-color-rgb: 174, 62, 201}.status-pink{--tblr-status-color: #d6336c;--tblr-status-color-rgb: 214, 51, 108}.status-red{--tblr-status-color: #d63939;--tblr-status-color-rgb: 214, 57, 57}.status-orange{--tblr-status-color: #f76707;--tblr-status-color-rgb: 247, 103, 7}.status-yellow{--tblr-status-color: #f59f00;--tblr-status-color-rgb: 245, 159, 0}.status-lime{--tblr-status-color: #74b816;--tblr-status-color-rgb: 116, 184, 22}.status-green{--tblr-status-color: #2fb344;--tblr-status-color-rgb: 47, 179, 68}.status-teal{--tblr-status-color: #0ca678;--tblr-status-color-rgb: 12, 166, 120}.status-cyan{--tblr-status-color: #17a2b8;--tblr-status-color-rgb: 23, 162, 184}.status-x{--tblr-status-color: #000000;--tblr-status-color-rgb: 0, 0, 0}.status-facebook{--tblr-status-color: #1877f2;--tblr-status-color-rgb: 24, 119, 242}.status-twitter{--tblr-status-color: #1da1f2;--tblr-status-color-rgb: 29, 161, 242}.status-linkedin{--tblr-status-color: #0a66c2;--tblr-status-color-rgb: 10, 102, 194}.status-google{--tblr-status-color: #dc4e41;--tblr-status-color-rgb: 220, 78, 65}.status-youtube{--tblr-status-color: #ff0000;--tblr-status-color-rgb: 255, 0, 0}.status-vimeo{--tblr-status-color: #1ab7ea;--tblr-status-color-rgb: 26, 183, 234}.status-dribbble{--tblr-status-color: #ea4c89;--tblr-status-color-rgb: 234, 76, 137}.status-github{--tblr-status-color: #181717;--tblr-status-color-rgb: 24, 23, 23}.status-instagram{--tblr-status-color: #e4405f;--tblr-status-color-rgb: 228, 64, 95}.status-pinterest{--tblr-status-color: #bd081c;--tblr-status-color-rgb: 189, 8, 28}.status-vk{--tblr-status-color: #6383a8;--tblr-status-color-rgb: 99, 131, 168}.status-rss{--tblr-status-color: #ffa500;--tblr-status-color-rgb: 255, 165, 0}.status-flickr{--tblr-status-color: #0063dc;--tblr-status-color-rgb: 0, 99, 220}.status-bitbucket{--tblr-status-color: #0052cc;--tblr-status-color-rgb: 0, 82, 204}.status-tabler{--tblr-status-color: #066fd1;--tblr-status-color-rgb: 6, 111, 209}.status-dot{--tblr-status-dot-color: var(--tblr-status-color, #6c7a91);--tblr-status-size: .5rem;position:relative;display:inline-block;width:var(--tblr-status-size);height:var(--tblr-status-size);background:var(--tblr-status-dot-color);border-radius:100rem}.status-dot-animated:before{content:"";position:absolute;inset:0;z-index:0;background:inherit;border-radius:inherit;opacity:.6;animation:1s linear 2s backwards infinite status-pulsate-tertiary}.status-indicator{--tblr-status-indicator-size: 2.5rem;--tblr-status-indicator-color: var(--tblr-status-color, #6c7a91);display:block;position:relative;width:var(--tblr-status-indicator-size);height:var(--tblr-status-indicator-size)}.status-indicator-circle{--tblr-status-circle-size: .75rem;position:absolute;left:50%;top:50%;margin:calc(var(--tblr-status-circle-size) / -2) 0 0 calc(var(--tblr-status-circle-size) / -2);width:var(--tblr-status-circle-size);height:var(--tblr-status-circle-size);border-radius:100rem;background:var(--tblr-status-color)}.status-indicator-circle:nth-child(1){z-index:3}.status-indicator-circle:nth-child(2){z-index:2;opacity:.1}.status-indicator-circle:nth-child(3){z-index:1;opacity:.3}.status-indicator-animated .status-indicator-circle:nth-child(1){animation:2s linear 1s infinite backwards status-pulsate-main}.status-indicator-animated .status-indicator-circle:nth-child(2){animation:2s linear 1s infinite backwards status-pulsate-secondary}.status-indicator-animated .status-indicator-circle:nth-child(3){animation:2s linear 1s infinite backwards status-pulsate-tertiary}.switch-icon{display:inline-block;line-height:1;border:0;padding:0;background:transparent;width:1.25rem;height:1.25rem;vertical-align:bottom;position:relative;cursor:pointer}.switch-icon.disabled{pointer-events:none;opacity:.4}.switch-icon:focus{outline:none}.switch-icon svg{display:block;width:100%;height:100%}.switch-icon .switch-icon-a,.switch-icon .switch-icon-b{display:block;width:100%;height:100%}.switch-icon .switch-icon-a{opacity:1}.switch-icon .switch-icon-b{position:absolute;top:0;left:0;opacity:0}.switch-icon.active .switch-icon-a{opacity:0}.switch-icon.active .switch-icon-b{opacity:1}.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:opacity .5s}@media (prefers-reduced-motion: reduce){.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:opacity .5s,transform 0s .5s}@media (prefers-reduced-motion: reduce){.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-b{transform:scale(1.5)}.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:opacity 0s,transform .5s}@media (prefers-reduced-motion: reduce){.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:none}}.switch-icon-scale.active .switch-icon-b{transform:scale(1)}.switch-icon-flip{perspective:10em}.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{backface-visibility:hidden;transform-style:preserve-3d;transition:opacity 0s .2s,transform .4s ease-in-out}@media (prefers-reduced-motion: reduce){.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{transition:none}}.switch-icon-flip .switch-icon-a{opacity:1;transform:rotateY(0)}.switch-icon-flip .switch-icon-b{opacity:1;transform:rotateY(-180deg)}.switch-icon-flip.active .switch-icon-a{opacity:1;transform:rotateY(180deg)}.switch-icon-flip.active .switch-icon-b{opacity:1;transform:rotateY(0)}.switch-icon-slide-up,.switch-icon-slide-left,.switch-icon-slide-right,.switch-icon-slide-down{overflow:hidden}.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b{transition:opacity .3s,transform .3s}@media (prefers-reduced-motion: reduce){.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b{transition:none}}.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-down .switch-icon-a{transform:translateY(0)}.switch-icon-slide-up .switch-icon-b,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-down .switch-icon-b{transform:translateY(100%)}.switch-icon-slide-up.active .switch-icon-a,.switch-icon-slide-left.active .switch-icon-a,.switch-icon-slide-right.active .switch-icon-a,.switch-icon-slide-down.active .switch-icon-a{transform:translateY(-100%)}.switch-icon-slide-up.active .switch-icon-b,.switch-icon-slide-left.active .switch-icon-b,.switch-icon-slide-right.active .switch-icon-b,.switch-icon-slide-down.active .switch-icon-b{transform:translateY(0)}.switch-icon-slide-left .switch-icon-a{transform:translate(0)}.switch-icon-slide-left .switch-icon-b{transform:translate(100%)}.switch-icon-slide-left.active .switch-icon-a{transform:translate(-100%)}.switch-icon-slide-left.active .switch-icon-b,.switch-icon-slide-right .switch-icon-a{transform:translate(0)}.switch-icon-slide-right .switch-icon-b{transform:translate(-100%)}.switch-icon-slide-right.active .switch-icon-a{transform:translate(100%)}.switch-icon-slide-right.active .switch-icon-b{transform:translate(0)}.switch-icon-slide-down .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-a{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-b{transform:translateY(0)}.table thead th,.markdown>table thead th{color:var(--tblr-gray-500);background:var(--tblr-bg-surface-tertiary);font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);padding-top:.5rem;padding-bottom:.5rem;white-space:nowrap}@media print{.table thead th,.markdown>table thead th{background:transparent}}.table-responsive .table,.table-responsive .markdown>table{margin-bottom:0}.table-responsive+.card-footer{border-top:0}.table-transparent thead th{background:transparent}.table-nowrap>:not(caption)>*>*{white-space:nowrap}.table-vcenter>:not(caption)>*>*{vertical-align:middle}.table-center>:not(caption)>*>*{text-align:center}.td-truncate{max-width:1px;width:100%}.table-mobile{display:block}.table-mobile thead{display:none}.table-mobile tbody,.table-mobile tr{display:flex;flex-direction:column}.table-mobile td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile .btn{display:block}@media (max-width: 575.98px){.table-mobile-sm{display:block}.table-mobile-sm thead{display:none}.table-mobile-sm tbody,.table-mobile-sm tr{display:flex;flex-direction:column}.table-mobile-sm td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-sm td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-sm tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-sm .btn{display:block}}@media (max-width: 767.98px){.table-mobile-md{display:block}.table-mobile-md thead{display:none}.table-mobile-md tbody,.table-mobile-md tr{display:flex;flex-direction:column}.table-mobile-md td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-md td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-md tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-md .btn{display:block}}@media (max-width: 991.98px){.table-mobile-lg{display:block}.table-mobile-lg thead{display:none}.table-mobile-lg tbody,.table-mobile-lg tr{display:flex;flex-direction:column}.table-mobile-lg td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-lg td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-lg tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-lg .btn{display:block}}@media (max-width: 1199.98px){.table-mobile-xl{display:block}.table-mobile-xl thead{display:none}.table-mobile-xl tbody,.table-mobile-xl tr{display:flex;flex-direction:column}.table-mobile-xl td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-xl td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-xl tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-xl .btn{display:block}}@media (max-width: 1399.98px){.table-mobile-xxl{display:block}.table-mobile-xxl thead{display:none}.table-mobile-xxl tbody,.table-mobile-xxl tr{display:flex;flex-direction:column}.table-mobile-xxl td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-xxl td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-xxl tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-xxl .btn{display:block}}.table-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;border:0;background:inherit;display:block;width:100%;text-align:inherit;transition:color .3s;margin:-.5rem;padding:.5rem}@media (prefers-reduced-motion: reduce){.table-sort{transition:none}}.table-sort:hover,.table-sort.asc,.table-sort.desc{color:var(--tblr-body-color)}.table-sort:after{content:"";display:inline-flex;width:1rem;height:1rem;vertical-align:bottom;mask-image:url("data:image/svg+xml, ");background:currentColor;margin-left:.25rem}.table-sort.asc:after{mask-image:url("data:image/svg+xml, ")}.table-sort.desc:after{mask-image:url("data:image/svg+xml, ")}.table-borderless thead th{background:transparent}.tag{--tblr-tag-height: 1.5rem;border:1px solid var(--tblr-border-color);display:inline-flex;align-items:center;height:var(--tblr-tag-height);border-radius:var(--tblr-border-radius);padding:0 .5rem;background:var(--tblr-bg-surface);box-shadow:var(--tblr-box-shadow-input);gap:.5rem}.tag .btn-close{margin-right:-.25rem;margin-left:-.125rem;padding:0;width:1rem;height:1rem;font-size:.5rem}.tag-badge{--tblr-badge-font-size: .625rem;--tblr-badge-padding-x: .25rem;--tblr-badge-padding-y: .125rem;margin-right:-.25rem}.tag-avatar,.tag-flag,.tag-payment,.tag-icon,.tag-check{margin-left:-.25rem}.tag-icon{color:var(--tblr-secondary);margin-right:-.125rem;width:1rem;height:1rem}.tag-check{width:1rem;height:1rem;background-size:1rem}.tags-list{--tblr-list-gap: .5rem;display:flex;flex-wrap:wrap;gap:var(--tblr-list-gap)}.toast{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);box-shadow:#1824330a 0 2px 4px}.toast .toast-header{user-select:none}.toast button[data-bs-dismiss=toast]{outline:none}.toast-primary{--tblr-toast-color: #00857D}.toast-secondary{--tblr-toast-color: #6c7a91}.toast-success{--tblr-toast-color: #2fb344}.toast-info{--tblr-toast-color: #4299e1}.toast-warning{--tblr-toast-color: #f76707}.toast-danger{--tblr-toast-color: #d63939}.toast-light{--tblr-toast-color: #f6f8fb}.toast-dark{--tblr-toast-color: #182433}.toast-muted{--tblr-toast-color: #6c7a91}.toast-blue{--tblr-toast-color: #066fd1}.toast-azure{--tblr-toast-color: #4299e1}.toast-indigo{--tblr-toast-color: #4263eb}.toast-purple{--tblr-toast-color: #ae3ec9}.toast-pink{--tblr-toast-color: #d6336c}.toast-red{--tblr-toast-color: #d63939}.toast-orange{--tblr-toast-color: #f76707}.toast-yellow{--tblr-toast-color: #f59f00}.toast-lime{--tblr-toast-color: #74b816}.toast-green{--tblr-toast-color: #2fb344}.toast-teal{--tblr-toast-color: #0ca678}.toast-cyan{--tblr-toast-color: #17a2b8}.toast-x{--tblr-toast-color: #000000}.toast-facebook{--tblr-toast-color: #1877f2}.toast-twitter{--tblr-toast-color: #1da1f2}.toast-linkedin{--tblr-toast-color: #0a66c2}.toast-google{--tblr-toast-color: #dc4e41}.toast-youtube{--tblr-toast-color: #ff0000}.toast-vimeo{--tblr-toast-color: #1ab7ea}.toast-dribbble{--tblr-toast-color: #ea4c89}.toast-github{--tblr-toast-color: #181717}.toast-instagram{--tblr-toast-color: #e4405f}.toast-pinterest{--tblr-toast-color: #bd081c}.toast-vk{--tblr-toast-color: #6383a8}.toast-rss{--tblr-toast-color: #ffa500}.toast-flickr{--tblr-toast-color: #0063dc}.toast-bitbucket{--tblr-toast-color: #0052cc}.toast-tabler{--tblr-toast-color: #066fd1}.toolbar{display:flex;flex-wrap:nowrap;flex-shrink:0;margin:0 -.5rem}.toolbar>*{margin:0 .5rem}.tracking{--tblr-tracking-height: 1.5rem;--tblr-tracking-gap-width: .125rem;--tblr-tracking-block-border-radius: var(--tblr-border-radius);display:flex;gap:var(--tblr-tracking-gap-width)}.tracking-squares{--tblr-tracking-block-border-radius: var(--tblr-border-radius-sm)}.tracking-squares .tracking-block{height:auto}.tracking-squares .tracking-block:before{content:"";display:block;padding-top:100%}.tracking-block{flex:1;border-radius:var(--tblr-tracking-block-border-radius);height:var(--tblr-tracking-height);min-width:.25rem;background:var(--tblr-border-color)}.timeline{--tblr-timeline-icon-size: 2.5rem;position:relative;list-style:none;padding:0}.timeline-event{position:relative}.timeline-event:not(:last-child){margin-bottom:var(--tblr-page-padding)}.timeline-event:not(:last-child):before{content:"";position:absolute;top:var(--tblr-timeline-icon-size);left:calc(var(--tblr-timeline-icon-size) / 2);bottom:calc(-1 * var(--tblr-page-padding));width:var(--tblr-border-width);background-color:var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.timeline-event-icon{position:absolute;display:flex;align-items:center;justify-content:center;width:var(--tblr-timeline-icon-size, 2.5rem);height:var(--tblr-timeline-icon-size, 2.5rem);background:var(--tblr-gray-200);color:var(--tblr-secondary);border-radius:var(--tblr-border-radius);z-index:5}.timeline-event-card{margin-left:calc(var(--tblr-timeline-icon-size, 2.5rem) + var(--tblr-page-padding))}.timeline-simple .timeline-event-icon{display:none}.timeline-simple .timeline-event-card{margin-left:0}.hr-text{display:flex;align-items:center;margin:2rem 0;font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);height:1px}.hr-text:after,.hr-text:before{flex:1 1 auto;height:1px;background-color:var(--tblr-border-color)}.hr-text:before{content:"";margin-right:.5rem}.hr-text:after{content:"";margin-left:.5rem}.hr-text>*:first-child{padding-right:.5rem;padding-left:0;color:var(--tblr-secondary)}.hr-text.hr-text-left:before{content:none}.hr-text.hr-text-left>*:first-child{padding-right:.5rem;padding-left:.5rem}.hr-text.hr-text-right:before{content:""}.hr-text.hr-text-right:after{content:none}.hr-text.hr-text-right>*:first-child{padding-right:0;padding-left:.5rem}.card>.hr-text{margin:0}.hr-text-spaceless{margin:-.5rem 0}.lead{line-height:1.4}a{text-decoration-skip-ink:auto}h1 a,h2 a,h3 a,.field-group h2 a,h4 a,h5 a,h6 a,.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover,.h1 a:hover,.h2 a:hover,.h3 a:hover,.h4 a:hover,.h5 a:hover,.h6 a:hover{color:inherit}h1,.h1{font-size:var(--tblr-font-size-h1);line-height:var(--tblr-line-height-h1)}h2,.h2{font-size:var(--tblr-font-size-h2);line-height:var(--tblr-line-height-h2)}h3,.field-group h2,.field-group .h2,.h3{font-size:var(--tblr-font-size-h3);line-height:var(--tblr-line-height-h3)}h4,.h4{font-size:var(--tblr-font-size-h4);line-height:var(--tblr-line-height-h4)}h5,.h5{font-size:var(--tblr-font-size-h5);line-height:var(--tblr-line-height-h5)}h6,.h6{font-size:var(--tblr-font-size-h6);line-height:var(--tblr-line-height-h6)}strong,.strong,b{font-weight:var(--tblr-font-weight-bold)}blockquote{padding-left:1rem;border-left:2px var(--tblr-border-style) var(--tblr-border-color)}blockquote p{margin-bottom:1rem}blockquote cite{display:block;text-align:right}blockquote cite:before{content:"\2014 "}ul,ol{padding-left:1.5rem}hr,.hr{margin:2rem 0}dl dd:last-child{margin-bottom:0}pre{padding:1rem;background:var(--tblr-bg-surface-dark);color:var(--tblr-light);border-radius:var(--tblr-border-radius)}pre code{background:transparent}code{background:var(--tblr-code-bg);padding:2px 4px;border-radius:var(--tblr-border-radius)}kbd,.kbd{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);display:inline-block;box-sizing:border-box;max-width:100%;font-size:var(--tblr-font-size-h5);font-weight:var(--tblr-font-weight-medium);line-height:1;vertical-align:baseline;border-radius:var(--tblr-border-radius)}img,svg{max-width:100%;height:auto}.list-unstyled{margin-left:0}::selection{background-color:rgba(var(--tblr-primary-rgb),.16)}[class^=link-].disabled,[class*=" link-"].disabled{color:var(--tblr-disabled-color)!important;pointer-events:none}.subheader{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary)}.chart{display:block;min-height:10rem}.chart text{font-family:inherit}.chart-sm{height:2.5rem}.chart-lg{height:15rem}.chart-square{height:5.75rem}.chart-sparkline{position:relative;width:4rem;height:2.5rem;line-height:1;min-height:0!important}.chart-sparkline-sm{height:1.5rem}.chart-sparkline-square{width:2.5rem}.chart-sparkline-wide{width:6rem}.chart-sparkline-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.625rem}.chart-sparkline-label .icon{width:1rem;height:1rem;font-size:1rem}.offcanvas-header{border-bottom:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)}.offcanvas-footer{padding:1.5rem}.offcanvas-title{font-size:1rem;font-weight:var(--tblr-font-weight-medium);line-height:1.5rem}.offcanvas-narrow{width:20rem}.chat-bubbles{display:flex;flex-direction:column;gap:1rem}.chat-bubble{background:var(--tblr-bg-surface-secondary);border-radius:var(--tblr-border-radius-lg);padding:1rem;position:relative}.chat-bubble-me{background-color:var(--tblr-primary-lt);box-shadow:none}.chat-bubble-title{margin-bottom:.25rem}.chat-bubble-author{font-weight:600}.chat-bubble-date{color:var(--tblr-secondary)}.chat-bubble-body>*:last-child{margin-bottom:0}.bg-white-overlay{color:#fff;background-color:#f6f8fb3d}.bg-dark-overlay{color:#fff;background-color:#1824333d}.bg-cover{background-repeat:no-repeat;background-size:cover;background-position:center}.bg-primary{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-primary-rgb),var(--tblr-bg-opacity))!important}.bg-primary-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-primary-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-primary-lt-rgb),var(--tblr-bg-opacity))!important}.border-primary{border-color:#00857d!important}.bg-secondary{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-secondary-rgb),var(--tblr-bg-opacity))!important}.bg-secondary-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-secondary-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-secondary-lt-rgb),var(--tblr-bg-opacity))!important}.border-secondary{border-color:#6c7a91!important}.bg-success{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-success-rgb),var(--tblr-bg-opacity))!important}.bg-success-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-success-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-success-lt-rgb),var(--tblr-bg-opacity))!important}.border-success{border-color:#2fb344!important}.bg-info{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-info-rgb),var(--tblr-bg-opacity))!important}.bg-info-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-info-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-info-lt-rgb),var(--tblr-bg-opacity))!important}.border-info{border-color:#4299e1!important}.bg-warning{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-warning-rgb),var(--tblr-bg-opacity))!important}.bg-warning-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-warning-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-warning-lt-rgb),var(--tblr-bg-opacity))!important}.border-warning{border-color:#f76707!important}.bg-danger{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-danger-rgb),var(--tblr-bg-opacity))!important}.bg-danger-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-danger-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-danger-lt-rgb),var(--tblr-bg-opacity))!important}.border-danger{border-color:#d63939!important}.bg-light{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-light-rgb),var(--tblr-bg-opacity))!important}.bg-light-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-light-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-light-lt-rgb),var(--tblr-bg-opacity))!important}.border-light{border-color:#f6f8fb!important}.bg-dark{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-dark-rgb),var(--tblr-bg-opacity))!important}.bg-dark-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-dark-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-dark-lt-rgb),var(--tblr-bg-opacity))!important}.border-dark{border-color:#182433!important}.bg-muted{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-muted-rgb),var(--tblr-bg-opacity))!important}.bg-muted-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-muted-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-muted-lt-rgb),var(--tblr-bg-opacity))!important}.border-muted{border-color:#6c7a91!important}.bg-blue{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-blue-rgb),var(--tblr-bg-opacity))!important}.bg-blue-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-blue-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-blue-lt-rgb),var(--tblr-bg-opacity))!important}.border-blue{border-color:#066fd1!important}.bg-azure{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-azure-rgb),var(--tblr-bg-opacity))!important}.bg-azure-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-azure-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-azure-lt-rgb),var(--tblr-bg-opacity))!important}.border-azure{border-color:#4299e1!important}.bg-indigo{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-indigo-rgb),var(--tblr-bg-opacity))!important}.bg-indigo-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-indigo-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-indigo-lt-rgb),var(--tblr-bg-opacity))!important}.border-indigo{border-color:#4263eb!important}.bg-purple{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-purple-rgb),var(--tblr-bg-opacity))!important}.bg-purple-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-purple-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-purple-lt-rgb),var(--tblr-bg-opacity))!important}.border-purple{border-color:#ae3ec9!important}.bg-pink{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-pink-rgb),var(--tblr-bg-opacity))!important}.bg-pink-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-pink-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-pink-lt-rgb),var(--tblr-bg-opacity))!important}.border-pink{border-color:#d6336c!important}.bg-red{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-red-rgb),var(--tblr-bg-opacity))!important}.bg-red-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-red-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-red-lt-rgb),var(--tblr-bg-opacity))!important}.border-red{border-color:#d63939!important}.bg-orange{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-orange-rgb),var(--tblr-bg-opacity))!important}.bg-orange-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-orange-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-orange-lt-rgb),var(--tblr-bg-opacity))!important}.border-orange{border-color:#f76707!important}.bg-yellow{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-yellow-rgb),var(--tblr-bg-opacity))!important}.bg-yellow-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-yellow-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-yellow-lt-rgb),var(--tblr-bg-opacity))!important}.border-yellow{border-color:#f59f00!important}.bg-lime{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-lime-rgb),var(--tblr-bg-opacity))!important}.bg-lime-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-lime-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-lime-lt-rgb),var(--tblr-bg-opacity))!important}.border-lime{border-color:#74b816!important}.bg-green{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-green-rgb),var(--tblr-bg-opacity))!important}.bg-green-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-green-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-green-lt-rgb),var(--tblr-bg-opacity))!important}.border-green{border-color:#2fb344!important}.bg-teal{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-teal-rgb),var(--tblr-bg-opacity))!important}.bg-teal-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-teal-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-teal-lt-rgb),var(--tblr-bg-opacity))!important}.border-teal{border-color:#0ca678!important}.bg-cyan{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-cyan-rgb),var(--tblr-bg-opacity))!important}.bg-cyan-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-cyan-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-cyan-lt-rgb),var(--tblr-bg-opacity))!important}.border-cyan{border-color:#17a2b8!important}.bg-x{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-x-rgb),var(--tblr-bg-opacity))!important}.bg-x-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-x-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-x-lt-rgb),var(--tblr-bg-opacity))!important}.border-x{border-color:#000!important}.bg-facebook{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-facebook-rgb),var(--tblr-bg-opacity))!important}.bg-facebook-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-facebook-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-facebook-lt-rgb),var(--tblr-bg-opacity))!important}.border-facebook{border-color:#1877f2!important}.bg-twitter{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-twitter-rgb),var(--tblr-bg-opacity))!important}.bg-twitter-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-twitter-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-twitter-lt-rgb),var(--tblr-bg-opacity))!important}.border-twitter{border-color:#1da1f2!important}.bg-linkedin{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-bg-opacity))!important}.bg-linkedin-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-linkedin-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-linkedin-lt-rgb),var(--tblr-bg-opacity))!important}.border-linkedin{border-color:#0a66c2!important}.bg-google{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-google-rgb),var(--tblr-bg-opacity))!important}.bg-google-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-google-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-google-lt-rgb),var(--tblr-bg-opacity))!important}.border-google{border-color:#dc4e41!important}.bg-youtube{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-youtube-rgb),var(--tblr-bg-opacity))!important}.bg-youtube-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-youtube-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-youtube-lt-rgb),var(--tblr-bg-opacity))!important}.border-youtube{border-color:red!important}.bg-vimeo{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-bg-opacity))!important}.bg-vimeo-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-vimeo-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-vimeo-lt-rgb),var(--tblr-bg-opacity))!important}.border-vimeo{border-color:#1ab7ea!important}.bg-dribbble{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-bg-opacity))!important}.bg-dribbble-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-dribbble-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-dribbble-lt-rgb),var(--tblr-bg-opacity))!important}.border-dribbble{border-color:#ea4c89!important}.bg-github{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-github-rgb),var(--tblr-bg-opacity))!important}.bg-github-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-github-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-github-lt-rgb),var(--tblr-bg-opacity))!important}.border-github{border-color:#181717!important}.bg-instagram{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-instagram-rgb),var(--tblr-bg-opacity))!important}.bg-instagram-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-instagram-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-instagram-lt-rgb),var(--tblr-bg-opacity))!important}.border-instagram{border-color:#e4405f!important}.bg-pinterest{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-bg-opacity))!important}.bg-pinterest-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-pinterest-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-pinterest-lt-rgb),var(--tblr-bg-opacity))!important}.border-pinterest{border-color:#bd081c!important}.bg-vk{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-vk-rgb),var(--tblr-bg-opacity))!important}.bg-vk-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-vk-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-vk-lt-rgb),var(--tblr-bg-opacity))!important}.border-vk{border-color:#6383a8!important}.bg-rss{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-rss-rgb),var(--tblr-bg-opacity))!important}.bg-rss-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-rss-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-rss-lt-rgb),var(--tblr-bg-opacity))!important}.border-rss{border-color:orange!important}.bg-flickr{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-flickr-rgb),var(--tblr-bg-opacity))!important}.bg-flickr-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-flickr-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-flickr-lt-rgb),var(--tblr-bg-opacity))!important}.border-flickr{border-color:#0063dc!important}.bg-bitbucket{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-bg-opacity))!important}.bg-bitbucket-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-bitbucket-lt-rgb),var(--tblr-bg-opacity))!important}.border-bitbucket{border-color:#0052cc!important}.bg-tabler{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-tabler-rgb),var(--tblr-bg-opacity))!important}.bg-tabler-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-tabler-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-tabler-lt-rgb),var(--tblr-bg-opacity))!important}.border-tabler{border-color:#066fd1!important}.bg-white{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-white-rgb),var(--tblr-bg-opacity))!important}.bg-white-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-white-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-white-lt-rgb),var(--tblr-bg-opacity))!important}.border-white{border-color:#fff!important}.text-primary{--tblr-text-opacity: 1;color:rgba(var(--tblr-primary-rgb),var(--tblr-text-opacity))!important}.text-primary-fg{color:var(--tblr-primary-fg)!important}.text-secondary{--tblr-text-opacity: 1;color:rgba(var(--tblr-secondary-rgb),var(--tblr-text-opacity))!important}.text-secondary-fg{color:var(--tblr-secondary-fg)!important}.text-success{--tblr-text-opacity: 1;color:rgba(var(--tblr-success-rgb),var(--tblr-text-opacity))!important}.text-success-fg{color:var(--tblr-success-fg)!important}.text-info{--tblr-text-opacity: 1;color:rgba(var(--tblr-info-rgb),var(--tblr-text-opacity))!important}.text-info-fg{color:var(--tblr-info-fg)!important}.text-warning{--tblr-text-opacity: 1;color:rgba(var(--tblr-warning-rgb),var(--tblr-text-opacity))!important}.text-warning-fg{color:var(--tblr-warning-fg)!important}.text-danger{--tblr-text-opacity: 1;color:rgba(var(--tblr-danger-rgb),var(--tblr-text-opacity))!important}.text-danger-fg{color:var(--tblr-danger-fg)!important}.text-light{--tblr-text-opacity: 1;color:rgba(var(--tblr-light-rgb),var(--tblr-text-opacity))!important}.text-light-fg{color:var(--tblr-light-fg)!important}.text-dark{--tblr-text-opacity: 1;color:rgba(var(--tblr-dark-rgb),var(--tblr-text-opacity))!important}.text-dark-fg{color:var(--tblr-dark-fg)!important}.text-muted{--tblr-text-opacity: 1;color:rgba(var(--tblr-muted-rgb),var(--tblr-text-opacity))!important}.text-muted-fg{color:var(--tblr-muted-fg)!important}.text-blue{--tblr-text-opacity: 1;color:rgba(var(--tblr-blue-rgb),var(--tblr-text-opacity))!important}.text-blue-fg{color:var(--tblr-blue-fg)!important}.text-azure{--tblr-text-opacity: 1;color:rgba(var(--tblr-azure-rgb),var(--tblr-text-opacity))!important}.text-azure-fg{color:var(--tblr-azure-fg)!important}.text-indigo{--tblr-text-opacity: 1;color:rgba(var(--tblr-indigo-rgb),var(--tblr-text-opacity))!important}.text-indigo-fg{color:var(--tblr-indigo-fg)!important}.text-purple{--tblr-text-opacity: 1;color:rgba(var(--tblr-purple-rgb),var(--tblr-text-opacity))!important}.text-purple-fg{color:var(--tblr-purple-fg)!important}.text-pink{--tblr-text-opacity: 1;color:rgba(var(--tblr-pink-rgb),var(--tblr-text-opacity))!important}.text-pink-fg{color:var(--tblr-pink-fg)!important}.text-red{--tblr-text-opacity: 1;color:rgba(var(--tblr-red-rgb),var(--tblr-text-opacity))!important}.text-red-fg{color:var(--tblr-red-fg)!important}.text-orange{--tblr-text-opacity: 1;color:rgba(var(--tblr-orange-rgb),var(--tblr-text-opacity))!important}.text-orange-fg{color:var(--tblr-orange-fg)!important}.text-yellow{--tblr-text-opacity: 1;color:rgba(var(--tblr-yellow-rgb),var(--tblr-text-opacity))!important}.text-yellow-fg{color:var(--tblr-yellow-fg)!important}.text-lime{--tblr-text-opacity: 1;color:rgba(var(--tblr-lime-rgb),var(--tblr-text-opacity))!important}.text-lime-fg{color:var(--tblr-lime-fg)!important}.text-green{--tblr-text-opacity: 1;color:rgba(var(--tblr-green-rgb),var(--tblr-text-opacity))!important}.text-green-fg{color:var(--tblr-green-fg)!important}.text-teal{--tblr-text-opacity: 1;color:rgba(var(--tblr-teal-rgb),var(--tblr-text-opacity))!important}.text-teal-fg{color:var(--tblr-teal-fg)!important}.text-cyan{--tblr-text-opacity: 1;color:rgba(var(--tblr-cyan-rgb),var(--tblr-text-opacity))!important}.text-cyan-fg{color:var(--tblr-cyan-fg)!important}.text-x{--tblr-text-opacity: 1;color:rgba(var(--tblr-x-rgb),var(--tblr-text-opacity))!important}.text-x-fg{color:var(--tblr-x-fg)!important}.text-facebook{--tblr-text-opacity: 1;color:rgba(var(--tblr-facebook-rgb),var(--tblr-text-opacity))!important}.text-facebook-fg{color:var(--tblr-facebook-fg)!important}.text-twitter{--tblr-text-opacity: 1;color:rgba(var(--tblr-twitter-rgb),var(--tblr-text-opacity))!important}.text-twitter-fg{color:var(--tblr-twitter-fg)!important}.text-linkedin{--tblr-text-opacity: 1;color:rgba(var(--tblr-linkedin-rgb),var(--tblr-text-opacity))!important}.text-linkedin-fg{color:var(--tblr-linkedin-fg)!important}.text-google{--tblr-text-opacity: 1;color:rgba(var(--tblr-google-rgb),var(--tblr-text-opacity))!important}.text-google-fg{color:var(--tblr-google-fg)!important}.text-youtube{--tblr-text-opacity: 1;color:rgba(var(--tblr-youtube-rgb),var(--tblr-text-opacity))!important}.text-youtube-fg{color:var(--tblr-youtube-fg)!important}.text-vimeo{--tblr-text-opacity: 1;color:rgba(var(--tblr-vimeo-rgb),var(--tblr-text-opacity))!important}.text-vimeo-fg{color:var(--tblr-vimeo-fg)!important}.text-dribbble{--tblr-text-opacity: 1;color:rgba(var(--tblr-dribbble-rgb),var(--tblr-text-opacity))!important}.text-dribbble-fg{color:var(--tblr-dribbble-fg)!important}.text-github{--tblr-text-opacity: 1;color:rgba(var(--tblr-github-rgb),var(--tblr-text-opacity))!important}.text-github-fg{color:var(--tblr-github-fg)!important}.text-instagram{--tblr-text-opacity: 1;color:rgba(var(--tblr-instagram-rgb),var(--tblr-text-opacity))!important}.text-instagram-fg{color:var(--tblr-instagram-fg)!important}.text-pinterest{--tblr-text-opacity: 1;color:rgba(var(--tblr-pinterest-rgb),var(--tblr-text-opacity))!important}.text-pinterest-fg{color:var(--tblr-pinterest-fg)!important}.text-vk{--tblr-text-opacity: 1;color:rgba(var(--tblr-vk-rgb),var(--tblr-text-opacity))!important}.text-vk-fg{color:var(--tblr-vk-fg)!important}.text-rss{--tblr-text-opacity: 1;color:rgba(var(--tblr-rss-rgb),var(--tblr-text-opacity))!important}.text-rss-fg{color:var(--tblr-rss-fg)!important}.text-flickr{--tblr-text-opacity: 1;color:rgba(var(--tblr-flickr-rgb),var(--tblr-text-opacity))!important}.text-flickr-fg{color:var(--tblr-flickr-fg)!important}.text-bitbucket{--tblr-text-opacity: 1;color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-text-opacity))!important}.text-bitbucket-fg{color:var(--tblr-bitbucket-fg)!important}.text-tabler{--tblr-text-opacity: 1;color:rgba(var(--tblr-tabler-rgb),var(--tblr-text-opacity))!important}.text-tabler-fg{color:var(--tblr-tabler-fg)!important}.bg-gray-50{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-50-rgb),var(--tblr-bg-opacity))!important}.text-gray-50-fg{color:#182433!important}.bg-gray-100{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-100-rgb),var(--tblr-bg-opacity))!important}.text-gray-100-fg{color:#182433!important}.bg-gray-200{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-200-rgb),var(--tblr-bg-opacity))!important}.text-gray-200-fg{color:#182433!important}.bg-gray-300{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-300-rgb),var(--tblr-bg-opacity))!important}.text-gray-300-fg{color:#f6f8fb!important}.bg-gray-400{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-400-rgb),var(--tblr-bg-opacity))!important}.text-gray-400-fg{color:#f6f8fb!important}.bg-gray-500{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-500-rgb),var(--tblr-bg-opacity))!important}.text-gray-500-fg{color:#f6f8fb!important}.bg-gray-600{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-600-rgb),var(--tblr-bg-opacity))!important}.text-gray-600-fg{color:#f6f8fb!important}.bg-gray-700{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-700-rgb),var(--tblr-bg-opacity))!important}.text-gray-700-fg{color:#f6f8fb!important}.bg-gray-800{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-800-rgb),var(--tblr-bg-opacity))!important}.text-gray-800-fg{color:#f6f8fb!important}.bg-gray-900{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-900-rgb),var(--tblr-bg-opacity))!important}.text-gray-900-fg{color:#f6f8fb!important}.scrollable{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.hover{overflow-y:hidden}.scrollable.hover>*{margin-top:-1px}.scrollable.hover:hover,.scrollable.hover:focus,.scrollable.hover:active{overflow:visible;overflow-y:auto}.touch .scrollable{overflow-y:auto!important}.scroll-x,.scroll-y{overflow:hidden;-webkit-overflow-scrolling:touch}.scroll-y{overflow-y:auto}.scroll-x{overflow-x:auto}.no-scroll{overflow:hidden}.w-0{width:0!important}.h-0{height:0!important}.w-1{width:.25rem!important}.h-1{height:.25rem!important}.w-2{width:.5rem!important}.h-2{height:.5rem!important}.w-3{width:1rem!important}.h-3{height:1rem!important}.w-4{width:1.5rem!important}.h-4{height:1.5rem!important}.w-5{width:2rem!important}.h-5{height:2rem!important}.w-6{width:3rem!important}.h-6{height:3rem!important}.w-7{width:5rem!important}.h-7{height:5rem!important}.w-8{width:8rem!important}.h-8{height:8rem!important}.w-auto{width:auto!important}.h-auto{height:auto!important}.w-px{width:1px!important}.h-px{height:1px!important}.w-full{width:100%!important}.h-full{height:100%!important}.opacity-0{opacity:0!important}.opacity-5{opacity:.05!important}.opacity-10{opacity:.1!important}.opacity-15{opacity:.15!important}.opacity-20{opacity:.2!important}.opacity-25{opacity:.25!important}.opacity-30{opacity:.3!important}.opacity-35{opacity:.35!important}.opacity-40{opacity:.4!important}.opacity-45{opacity:.45!important}.opacity-50{opacity:.5!important}.opacity-55{opacity:.55!important}.opacity-60{opacity:.6!important}.opacity-65{opacity:.65!important}.opacity-70{opacity:.7!important}.opacity-75{opacity:.75!important}.opacity-80{opacity:.8!important}.opacity-85{opacity:.85!important}.opacity-90{opacity:.9!important}.opacity-95{opacity:.95!important}.opacity-100{opacity:1!important}.hover-shadow-sm:hover{box-shadow:0 .125rem .25rem #00000013!important}.hover-shadow:hover{box-shadow:rgba(var(--tblr-body-color-rgb),.04) 0 2px 4px!important}.hover-shadow-lg:hover{box-shadow:0 1rem 3rem #0000002d!important}.hover-shadow-none:hover{box-shadow:none!important}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.ts-control{border:1px solid var(--tblr-border-color);padding:.5625rem .75rem;width:100%;overflow:hidden;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:var(--tblr-border-radius);display:flex;flex-wrap:wrap}.ts-wrapper.multi.has-items .ts-control{padding:calc(.5625rem - 1px + -0) .75rem calc(.5625rem - 4px + -0)}.full .ts-control{background-color:var(--tblr-bg-forms)}.disabled .ts-control,.disabled .ts-control *{cursor:default!important}.focus .ts-control{box-shadow:none}.ts-control>*{vertical-align:baseline;display:inline-block}.ts-wrapper.multi .ts-control>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#182433;border:0 solid #dce1e7}.ts-wrapper.multi .ts-control>div.active{background:#00857d;color:#fff;border:0 solid rgba(0,0,0,0)}.ts-wrapper.multi.disabled .ts-control>div,.ts-wrapper.multi.disabled .ts-control>div.active{color:#727272;background:#fff;border:0 solid white}.ts-control>input{flex:1 1 auto;min-width:7rem;display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0 none!important;background:none!important;line-height:inherit!important;user-select:auto!important;box-shadow:none!important}.ts-control>input::-ms-clear{display:none}.ts-control>input:focus{outline:none!important}.has-items .ts-control>input{margin:0 4px!important}.ts-control.rtl{text-align:right}.ts-control.rtl.single .ts-control:after{left:calc(.75rem + 5px);right:auto}.ts-control.rtl .ts-control>input{margin:0 4px 0 -2px!important}.disabled .ts-control{opacity:.5;background-color:var(--tblr-bg-surface-secondary)}.input-hidden .ts-control>input{opacity:0;position:absolute;left:-10000px}.ts-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:.25rem 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px #0000001a;border-radius:0 0 var(--tblr-border-radius) var(--tblr-border-radius)}.ts-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.ts-dropdown [data-selectable] .highlight{background:#ffed2866;border-radius:1px}.ts-dropdown .option,.ts-dropdown .optgroup-header,.ts-dropdown .no-results,.ts-dropdown .create{padding:3px .75rem}.ts-dropdown .option,.ts-dropdown [data-disabled],.ts-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.ts-dropdown [data-selectable].option{opacity:1;cursor:pointer}.ts-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.ts-dropdown .optgroup-header{color:#49566c;background:var(--tblr-bg-surface);cursor:default}.ts-dropdown .active{background-color:rgba(var(--tblr-secondary-rgb),.08);color:inherit}.ts-dropdown .active.create{color:inherit}.ts-dropdown .create{color:#18243380}.ts-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.ts-dropdown .spinner:after{content:" ";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ts-dropdown-content{overflow:hidden auto;max-height:200px;scroll-behavior:smooth}.ts-wrapper.plugin-drag_drop .ts-dragging{color:transparent!important}.ts-wrapper.plugin-drag_drop .ts-dragging>*{visibility:hidden!important}.plugin-checkbox_options:not(.rtl) .option input{margin-right:.5rem}.plugin-checkbox_options.rtl .option input{margin-left:.5rem}.plugin-clear_button{--ts-pr-clear-button: 1em}.plugin-clear_button .clear-button{opacity:0;position:absolute;top:50%;transform:translateY(-50%);right:calc(.75rem - 5px);margin-right:0!important;background:transparent!important;transition:opacity .5s;cursor:pointer}.plugin-clear_button.form-select .clear-button,.plugin-clear_button.single .clear-button{right:max(var(--ts-pr-caret),.75rem)}.plugin-clear_button.focus.has-items .clear-button,.plugin-clear_button:not(.disabled):hover.has-items .clear-button{opacity:1}.ts-wrapper .dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:color-mix(#fff,#d0d0d0,85%);border-radius:var(--tblr-border-radius) var(--tblr-border-radius) 0 0}.ts-wrapper .dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#182433;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.ts-wrapper .dropdown-header-close:hover{color:#000}.plugin-dropdown_input.focus.dropdown-active .ts-control{box-shadow:none;border:1px solid var(--tblr-border-color);box-shadow:var(--tblr-box-shadow-input)}.plugin-dropdown_input .dropdown-input{border:1px solid #d0d0d0;border-width:0 0 1px;display:block;padding:.5625rem .75rem;box-shadow:none;width:100%;background:transparent}.plugin-dropdown_input.focus .ts-dropdown .dropdown-input{border-color:#80c2be;outline:0;box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.plugin-dropdown_input .items-placeholder{border:0 none!important;box-shadow:none!important;width:100%}.plugin-dropdown_input.has-items .items-placeholder,.plugin-dropdown_input.dropdown-active .items-placeholder{display:none!important}.ts-wrapper.plugin-input_autogrow.has-items .ts-control>input{min-width:0}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input{flex:none;min-width:4px}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::placeholder{color:transparent}.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content{display:flex}.ts-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.ts-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.ts-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.ts-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.ts-wrapper.plugin-remove_button .item{display:inline-flex;align-items:center}.ts-wrapper.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:0 5px;border-radius:0 2px 2px 0;box-sizing:border-box}.ts-wrapper.plugin-remove_button .item .remove:hover{background:#0000000d}.ts-wrapper.plugin-remove_button.disabled .item .remove:hover{background:none}.ts-wrapper.plugin-remove_button .remove-single{position:absolute;right:0;top:0;font-size:23px}.ts-wrapper.plugin-remove_button:not(.rtl) .item{padding-right:0!important}.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove{border-left:1px solid #dce1e7;margin-left:5px}.ts-wrapper.plugin-remove_button:not(.rtl) .item.active .remove{border-left-color:#0000}.ts-wrapper.plugin-remove_button:not(.rtl).disabled .item .remove{border-left-color:#fff}.ts-wrapper.plugin-remove_button.rtl .item{padding-left:0!important}.ts-wrapper.plugin-remove_button.rtl .item .remove{border-right:1px solid #dce1e7;margin-right:5px}.ts-wrapper.plugin-remove_button.rtl .item.active .remove{border-right-color:#0000}.ts-wrapper.plugin-remove_button.rtl.disabled .item .remove{border-right-color:#fff}:root{--ts-pr-clear-button: 0;--ts-pr-caret: 0;--ts-pr-min: .75rem}.ts-wrapper.single .ts-control,.ts-wrapper.single .ts-control input{cursor:pointer}.ts-control:not(.rtl){padding-right:max(var(--ts-pr-min),var(--ts-pr-clear-button) + var(--ts-pr-caret))!important}.ts-control.rtl{padding-left:max(var(--ts-pr-min),var(--ts-pr-clear-button) + var(--ts-pr-caret))!important}.ts-wrapper{position:relative}.ts-dropdown,.ts-control,.ts-control input{color:#182433;font-family:inherit;font-size:inherit;line-height:1.4285714286}.ts-control,.ts-wrapper.single.input-active .ts-control{background:var(--tblr-bg-forms);cursor:text}.ts-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.ts-dropdown,.ts-dropdown.form-control,.ts-dropdown.form-select{height:auto;padding:0;z-index:1000;background:#fff;border:1px solid var(--tblr-border-color-translucent);border-radius:4px;box-shadow:0 6px 12px #0000002d}.ts-dropdown .optgroup-header{font-size:.765625rem;line-height:1.4285714286}.ts-dropdown .optgroup:first-child:before{display:none}.ts-dropdown .optgroup:before{content:" ";display:block;height:0;margin:var(--tblr-spacer-2) 0;overflow:hidden;border-top:1px solid var(--tblr-border-color-translucent);margin-left:-.75rem;margin-right:-.75rem}.ts-dropdown .create{padding-left:.75rem}.ts-dropdown-content{padding:5px 0}.ts-control{box-shadow:var(--tblr-box-shadow-input);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex;align-items:center}@media (prefers-reduced-motion: reduce){.ts-control{transition:none}}.focus .ts-control{border-color:#80c2be;outline:0;box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.ts-control .item{display:flex;align-items:center}.ts-wrapper.is-invalid,.was-validated .invalid,.was-validated :invalid+.ts-wrapper{border-color:var(--tblr-form-invalid-color)}.ts-wrapper.is-invalid:not(.single),.was-validated .invalid:not(.single),.was-validated :invalid+.ts-wrapper:not(.single){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:right calc(.3571428572em + .28125rem) center;background-size:calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem);background-repeat:no-repeat}.ts-wrapper.is-invalid.single,.was-validated .invalid.single,.was-validated :invalid+.ts-wrapper.single{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a97ab' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem);background-repeat:no-repeat}.ts-wrapper.is-invalid.focus .ts-control,.was-validated .invalid.focus .ts-control,.was-validated :invalid+.ts-wrapper.focus .ts-control{border-color:var(--tblr-form-invalid-color);box-shadow:0 0 0 .25rem rgba(var(--tblr-form-invalid-color),.25)}.ts-wrapper.is-valid,.was-validated .valid,.was-validated :valid+.ts-wrapper{border-color:var(--tblr-form-valid-color)}.ts-wrapper.is-valid:not(.single),.was-validated .valid:not(.single),.was-validated :valid+.ts-wrapper:not(.single){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:right calc(.3571428572em + .28125rem) center;background-size:calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem);background-repeat:no-repeat}.ts-wrapper.is-valid.single,.was-validated .valid.single,.was-validated :valid+.ts-wrapper.single{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a97ab' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem);background-repeat:no-repeat}.ts-wrapper.is-valid.focus .ts-control,.was-validated .valid.focus .ts-control,.was-validated :valid+.ts-wrapper.focus .ts-control{border-color:var(--tblr-form-valid-color);box-shadow:0 0 0 .25rem rgba(var(--tblr-form-valid-color),.25)}.ts-wrapper{min-height:calc(1.4285714286em + 1.125rem + calc(var(--tblr-border-width) * 2));display:flex}.input-group-sm>.ts-wrapper,.ts-wrapper.form-select-sm,.ts-wrapper.form-control-sm{min-height:calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2))}.input-group-sm>.ts-wrapper .ts-control,.ts-wrapper.form-select-sm .ts-control,.ts-wrapper.form-control-sm .ts-control{border-radius:var(--tblr-border-radius-sm);font-size:.75rem}.input-group-sm>.ts-wrapper.has-items .ts-control,.ts-wrapper.form-select-sm.has-items .ts-control,.ts-wrapper.form-control-sm.has-items .ts-control{font-size:.75rem;padding-bottom:0}.input-group-sm>.ts-wrapper.multi.has-items .ts-control,.ts-wrapper.form-select-sm.multi.has-items .ts-control,.ts-wrapper.form-control-sm.multi.has-items .ts-control{padding-top:calc((calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2)) - 1.4285714286 * .75rem - 4px) / 2)!important}.ts-wrapper.multi.has-items .ts-control{padding-left:calc(.75rem - 5px);--ts-pr-min: calc(.75rem - 5px) }.ts-wrapper.multi .ts-control>div{border-radius:calc(var(--tblr-border-radius) - 1px)}.input-group-lg>.ts-wrapper,.ts-wrapper.form-control-lg,.ts-wrapper.form-select-lg{min-height:calc(1.4285714286em + 1rem + calc(var(--tblr-border-width) * 2))}.input-group-lg>.ts-wrapper .ts-control,.ts-wrapper.form-control-lg .ts-control,.ts-wrapper.form-select-lg .ts-control{border-radius:var(--tblr-border-radius-lg);font-size:1.25rem}.ts-wrapper:not(.form-control,.form-select){padding:0;border:none;height:auto;box-shadow:none;background:none}.ts-wrapper:not(.form-control,.form-select).single .ts-control{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a97ab' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px}.ts-wrapper.form-select,.ts-wrapper.single{--ts-pr-caret: 2.25rem}.ts-wrapper.form-control,.ts-wrapper.form-select{padding:0!important;height:auto;box-shadow:none;display:flex}.ts-wrapper.form-control .ts-control,.ts-wrapper.form-control.single.input-active .ts-control,.ts-wrapper.form-select .ts-control,.ts-wrapper.form-select.single.input-active .ts-control{border:none!important}.ts-wrapper.form-control:not(.disabled) .ts-control,.ts-wrapper.form-control:not(.disabled).single.input-active .ts-control,.ts-wrapper.form-select:not(.disabled) .ts-control,.ts-wrapper.form-select:not(.disabled).single.input-active .ts-control{background:transparent!important}.input-group>.ts-wrapper{flex-grow:1;width:1%}.input-group>.ts-wrapper:not(:nth-child(2))>.ts-control{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.ts-wrapper:not(:last-child)>.ts-control{border-top-right-radius:0;border-bottom-right-radius:0}:root{--ts-pr-clear-button: 0rem;--ts-pr-caret: 0rem}.ts-input,.ts-control{color:inherit}.ts-control .dropdown-menu{width:100%;height:auto}.ts-wrapper .form-control,.ts-wrapper .form-select,.ts-wrapper.form-control,.ts-wrapper.form-select{box-shadow:var(--tblr-box-shadow-input)}.ts-wrapper.is-invalid .ts-control,.ts-wrapper.is-valid .ts-control{--ts-pr-clear-button: 1.5rem}.ts-dropdown{background:var(--tblr-bg-surface);color:var(--tblr-body-color);box-shadow:var(--tblr-box-shadow-dropdown)}.ts-dropdown .option{padding:.5rem .75rem}.ts-control,.ts-control input{color:var(--tblr-body-color)}.ts-control input::placeholder{color:#8a97ab}.ts-wrapper.multi .ts-control>div{background:var(--tblr-bg-surface-secondary);border:1px solid var(--tblr-border-color);color:var(--tblr-body-color)}html{scroll-behavior:auto!important}.table-responsive .dropdown,.table-responsive .btn-group,.table-responsive .btn-group-vertical{position:static}.progress{min-width:80px}hr.dropdown-divider,.dropdown-divider.hr{margin-bottom:.25rem;margin-top:.25rem}.dropdown-item{font-weight:400}*{font-feature-settings:"liga" 0;font-variant-ligatures:none}pre{background-color:transparent;color:inherit}.alert{background:var(--tblr-bg-surface)}.btn{display:inline-block}.btn:focus{border:1px solid var(--tblr-primary-fg);outline:2px solid var(--tblr-primary)!important}.btn-sm,.btn-group-sm>.btn{border-radius:4px}.dropdown-item{display:inline-block}.footer .text-primary{color:#001423!important}.nav-tabs .nav-link{display:inline-block}.page,.page-tabs .nav-tabs .nav-link.active{background-color:var(--tblr-bg-surface-tertiary)!important}.page-body .card .card-header{background:var(--tblr-bg-surface-secondary)!important}[data-bs-theme=dark],body[data-bs-theme=dark] [data-bs-theme=light]{--tblr-alert-color: darken(var(--tblr-warning),10%);--tblr-link-color: #00F2D4;--tblr-link-color-rgb: 0,242,212;--tblr-link-hover-color-rgb: 0,242,212;--tblr-secondary: #8a97ab;--tblr-primary: #00F2D4;--tblr-primary-fg: #001423;--tblr-primary-rgb: 0,242,212;--tblr-btn-active-color: #001423}body[data-bs-theme=dark],body[data-bs-theme=dark] body[data-bs-theme=light]{background-color:#001423}body[data-bs-theme=dark] ::selection,body[data-bs-theme=dark] body[data-bs-theme=light] ::selection{background-color:rgba(var(--tblr-primary-rgb),.48)}body[data-bs-theme=dark] .btn-primary,body[data-bs-theme=dark] .bg-primary .card-title,body[data-bs-theme=dark] .bg-primary a,body[data-bs-theme=dark] .bg-primary i,body[data-bs-theme=dark] .text-bg-primary{color:#001423!important}body[data-bs-theme=dark] .card{background:#001423!important}body[data-bs-theme=dark] .navbar,body[data-bs-theme=dark] .page-header{background-color:#001423}body[data-bs-theme=dark] .page,body[data-bs-theme=dark] .page-tabs .nav-tabs .nav-link.active{background-color:#081b2a!important}body[data-bs-theme=dark] .page-link.active,body[data-bs-theme=dark] .active>.page-link{color:#001423}body[data-bs-theme=dark] .text-bg-primary{color:#001423!important}body[data-bs-theme=dark] .text-muted{color:var(--tblr-secondary-color)!important}body[data-bs-theme=dark] .text-secondary{color:#8a97ab!important}body[data-bs-theme=dark] .footer .text-primary{color:#fff!important}body[data-bs-theme=dark] .toast{color:var(--tblr-body-color)}pre code{padding:unset}.dropdown-toggle:after{font-family:Material Design Icons;content:"\f0140";padding-right:9px;border-bottom:none;border-left:none;transform:none;vertical-align:.05em;height:auto}.ts-wrapper.multi .ts-control{padding:7px 7px 3px}.ts-wrapper.multi .ts-control div{margin:0 4px 4px 0}.badge a{color:inherit;text-decoration:none}.page-body .card{margin-bottom:1rem}.page-body .card .card-header,.page-body .card .card-body,.page-body .card .card-footer{padding:.75rem}.page-body .card .card-header{background:var(--tblr-bg-surface-tertiary)}.page-body .card h2.card-header,.page-body .card .card-header.h2{font-size:var(--tblr-font-size-h5);line-height:var(--tblr-line-height-h5);margin-bottom:0}.page-body .card .list-group-item{padding:.5rem .75rem}.page-body .card .table,.page-body .card .markdown>table{margin-bottom:0}form.object-edit{margin:auto;max-width:800px}.col-form-label.required{font-weight:700}.col-form-label.required:after{position:absolute;display:inline-block;margin-left:0;font-family:Material Design Icons;font-size:8px;content:"\f06c4"}.has-errors input,.has-errors select,.has-errors textarea{border:1px solid #d63939}.page{background-color:var(--tblr-bg-surface-secondary)}.page-header{background-color:var(--tblr-bg-surface);min-height:0}@media (min-width: 992px){.navbar-vertical.navbar-expand-lg{padding-bottom:2rem}}.navbar-vertical.navbar-expand-lg .navbar-collapse .nav-link-icon{color:var(--tblr-nav-link-color)!important}.navbar-vertical.navbar-expand-lg .navbar-collapse .text-secondary{color:#00857d!important}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item a{color:#001423}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item .btn-group{visibility:hidden}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:hover{background-color:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:hover a{text-decoration:none}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:hover .btn-group{visibility:visible}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active{background-color:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active a{color:#001423}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active .btn-group{visibility:visible}.navbar-vertical.navbar-expand-lg .navbar-nav{z-index:1}@media (max-width: 991.98px){.navbar-vertical.navbar-expand-lg .navbar-brand{padding:.2rem 0}}.navbar-vertical.navbar-expand-lg .navbar-brand a:hover{text-decoration:none}.navbar-vertical.navbar-expand-lg img.motif{bottom:0;display:none;left:0;mask-image:linear-gradient(180deg,#0000,#0000004d);opacity:.5;position:fixed;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;width:18rem}@media (min-width: 992px){.navbar-vertical.navbar-expand-lg img.motif{display:block}}body[data-bs-theme=light] .navbar-vertical.navbar-expand-lg{background:linear-gradient(180deg,#00857d00,#00857d1a),#fff}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg{background:linear-gradient(180deg,#00f2d400,#00f2d41a),#001423}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .nav-item.dropdown.active:after{border-color:#00f2d4!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item a{color:#fff!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item.active{background-color:#ffffff0f!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item.active a{color:#fff!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item:hover{background-color:#ffffff0f!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item .nav-link-title{color:#fff!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .text-secondary{color:#00f2d4!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg img.motif{opacity:.25}.progress{height:20px}.progress .progress-label{display:flex;flex-direction:column;justify-content:center;padding-left:.25rem}table.object-list tbody>tr:last-child>td{border-bottom-width:0}table.object-list th.asc>a:after{content:"\f0140";font-family:Material Design Icons}table.object-list th.desc>a:after{content:"\f0143";font-family:Material Design Icons}table.attr-table th{font-weight:400;width:min-content}table.attr-table th,table.attr-table td{border-bottom-style:dashed}table.attr-table tr:last-child{border-bottom-style:hidden}table.attr-table td{overflow-wrap:anywhere}td pre{margin-bottom:0}table th.orderable a{color:var(--tblr-body-color)}body[data-bs-theme=dark] .table thead th,body[data-bs-theme=dark] .markdown>table thead th{background:#001423!important}.page-tabs{border-bottom:1px solid var(--tblr-border-color-translucent)}.page-tabs .nav-tabs{position:relative;border:none}.page-tabs .nav-tabs .nav-link.active,.page-tabs .nav-tabs .nav-link:active,.page-tabs .nav-tabs .nav-link:hover{border-color:var(--tblr-border-color-translucent);border-bottom-color:transparent}.page-tabs .nav-tabs .nav-link.active{color:inherit;background:var(--tblr-bg-surface-secondary);border-bottom-color:transparent}pre.change-data{border-radius:0;padding:0}pre.change-data>span{display:block;padding-right:1rem;padding-left:1rem}pre.change-data>span.added{background-color:#2fb344}pre.change-data>span.removed{background-color:#d63939}pre.change-diff{border-color:transparent}pre.change-diff.change-added{background-color:#2fb344}pre.change-diff.change-removed{background-color:#d63939}pre.block{padding:1rem;border:1px solid #dce1e7;border-radius:4px}.grid-stack .card-header.bg-default{background:var(--tblr-bg-surface-secondary)!important}.grid-stack .card-header a{color:inherit!important}tr[data-cable-status=connected]{background-color:#2fb34426}tr[data-cable-status=planned]{background-color:#066fd126}tr[data-cable-status=decommissioning]{background-color:#f59f0026}tr[data-mark-connected=true]{background-color:#2fb34426}tr[data-virtual=true]{background-color:#00857d26}tr[data-enabled=disabled]{background-color:#d6393926}tr[data-cable-status=connected] button.mark-installed{display:none}tr:not([data-cable-status=connected]) button.mark-planned{display:none}.rendered-markdown table{width:100%}.rendered-markdown table th{border-bottom:2px solid #dddddd;padding:8px}.rendered-markdown table td{border-top:1px solid #dddddd;padding:8px}.rendered-markdown table th[align=left]{text-align:left}.rendered-markdown table th[align=center]{text-align:center}.rendered-markdown table th[align=right]{text-align:right}td>.rendered-markdown{max-height:200px;overflow-y:scroll}td>.rendered-markdown p:last-of-type{margin-bottom:0}.markdown-widget .preview{border:1px solid #dce1e7;border-radius:4px;min-height:200px}span.color-label{display:inline-block;width:5rem;height:1rem;padding:.25em .5em;border:1px solid #303030;border-radius:4px}.record-depth{display:inline;user-select:none;opacity:33%}.record-depth span:only-of-type,.record-depth span:last-of-type{margin-right:.25rem}.hide-last-child :last-child{visibility:hidden;opacity:0}.netbox-edition{letter-spacing:.15rem}tr[data-read=True] td{background-color:var(--tblr-bg-surface-secondary);color:var(--tblr-secondary-color)}
+@charset "UTF-8";:root,[data-bs-theme=light]{--tblr-black: #000000;--tblr-white: #ffffff;--tblr-gray: #49566c;--tblr-gray-dark: #182433;--tblr-gray-100: #eef3f6;--tblr-gray-200: #dce1e7;--tblr-gray-300: #b8c4d4;--tblr-gray-400: #8a97ab;--tblr-gray-500: #6c7a91;--tblr-gray-600: #49566c;--tblr-gray-700: #3a4859;--tblr-gray-800: #182433;--tblr-gray-900: #040a11;--tblr-primary: #00857D;--tblr-secondary: #6c7a91;--tblr-success: #2fb344;--tblr-info: #4299e1;--tblr-warning: #f76707;--tblr-danger: #d63939;--tblr-light: #f6f8fb;--tblr-dark: #182433;--tblr-muted: #6c7a91;--tblr-blue: #066fd1;--tblr-azure: #4299e1;--tblr-indigo: #4263eb;--tblr-purple: #ae3ec9;--tblr-pink: #d6336c;--tblr-red: #d63939;--tblr-orange: #f76707;--tblr-yellow: #f59f00;--tblr-lime: #74b816;--tblr-green: #2fb344;--tblr-teal: #0ca678;--tblr-cyan: #17a2b8;--tblr-x: #000000;--tblr-facebook: #1877f2;--tblr-twitter: #1da1f2;--tblr-linkedin: #0a66c2;--tblr-google: #dc4e41;--tblr-youtube: #ff0000;--tblr-vimeo: #1ab7ea;--tblr-dribbble: #ea4c89;--tblr-github: #181717;--tblr-instagram: #e4405f;--tblr-pinterest: #bd081c;--tblr-vk: #6383a8;--tblr-rss: #ffa500;--tblr-flickr: #0063dc;--tblr-bitbucket: #0052cc;--tblr-tabler: #066fd1;--tblr-primary-rgb: 0, 133, 125;--tblr-secondary-rgb: 108, 122, 145;--tblr-success-rgb: 47, 179, 68;--tblr-info-rgb: 66, 153, 225;--tblr-warning-rgb: 247, 103, 7;--tblr-danger-rgb: 214, 57, 57;--tblr-light-rgb: 246, 248, 251;--tblr-dark-rgb: 24, 36, 51;--tblr-muted-rgb: 108, 122, 145;--tblr-blue-rgb: 6, 111, 209;--tblr-azure-rgb: 66, 153, 225;--tblr-indigo-rgb: 66, 99, 235;--tblr-purple-rgb: 174, 62, 201;--tblr-pink-rgb: 214, 51, 108;--tblr-red-rgb: 214, 57, 57;--tblr-orange-rgb: 247, 103, 7;--tblr-yellow-rgb: 245, 159, 0;--tblr-lime-rgb: 116, 184, 22;--tblr-green-rgb: 47, 179, 68;--tblr-teal-rgb: 12, 166, 120;--tblr-cyan-rgb: 23, 162, 184;--tblr-x-rgb: 0, 0, 0;--tblr-facebook-rgb: 24, 119, 242;--tblr-twitter-rgb: 29, 161, 242;--tblr-linkedin-rgb: 10, 102, 194;--tblr-google-rgb: 220, 78, 65;--tblr-youtube-rgb: 255, 0, 0;--tblr-vimeo-rgb: 26, 183, 234;--tblr-dribbble-rgb: 234, 76, 137;--tblr-github-rgb: 24, 23, 23;--tblr-instagram-rgb: 228, 64, 95;--tblr-pinterest-rgb: 189, 8, 28;--tblr-vk-rgb: 99, 131, 168;--tblr-rss-rgb: 255, 165, 0;--tblr-flickr-rgb: 0, 99, 220;--tblr-bitbucket-rgb: 0, 82, 204;--tblr-tabler-rgb: 6, 111, 209;--tblr-primary-text-emphasis: #003532;--tblr-secondary-text-emphasis: #2b313a;--tblr-success-text-emphasis: #13481b;--tblr-info-text-emphasis: #1a3d5a;--tblr-warning-text-emphasis: #632903;--tblr-danger-text-emphasis: #561717;--tblr-light-text-emphasis: #3a4859;--tblr-dark-text-emphasis: #3a4859;--tblr-primary-bg-subtle: #cce7e5;--tblr-secondary-bg-subtle: #e2e4e9;--tblr-success-bg-subtle: #d5f0da;--tblr-info-bg-subtle: #d9ebf9;--tblr-warning-bg-subtle: #fde1cd;--tblr-danger-bg-subtle: #f7d7d7;--tblr-light-bg-subtle: #f7f9fb;--tblr-dark-bg-subtle: #8a97ab;--tblr-primary-border-subtle: #99cecb;--tblr-secondary-border-subtle: #c4cad3;--tblr-success-border-subtle: #ace1b4;--tblr-info-border-subtle: #b3d6f3;--tblr-warning-border-subtle: #fcc29c;--tblr-danger-border-subtle: #efb0b0;--tblr-light-border-subtle: #dce1e7;--tblr-dark-border-subtle: #6c7a91;--tblr-white-rgb: 255, 255, 255;--tblr-black-rgb: 0, 0, 0;--tblr-font-sans-serif: "Inter", system-ui, sans-serif;--tblr-font-monospace: Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;--tblr-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--tblr-body-font-family: var(--tblr-font-sans-serif);--tblr-body-font-size: .875rem;--tblr-body-font-weight: 400;--tblr-body-line-height: 1.4285714286;--tblr-body-color: #182433;--tblr-body-color-rgb: 24, 36, 51;--tblr-body-bg: #f6f8fb;--tblr-body-bg-rgb: 246, 248, 251;--tblr-emphasis-color: #3a4859;--tblr-emphasis-color-rgb: 58, 72, 89;--tblr-secondary-color: rgba(24, 36, 51, .75);--tblr-secondary-color-rgb: 24, 36, 51;--tblr-secondary-bg: #dce1e7;--tblr-secondary-bg-rgb: 220, 225, 231;--tblr-tertiary-color: rgba(24, 36, 51, .5);--tblr-tertiary-color-rgb: 24, 36, 51;--tblr-tertiary-bg: #eef3f6;--tblr-tertiary-bg-rgb: 238, 243, 246;--tblr-heading-color: inherit;--tblr-link-color: #00857D;--tblr-link-color-rgb: 0, 133, 125;--tblr-link-decoration: none;--tblr-link-hover-color: #006a64;--tblr-link-hover-color-rgb: 0, 106, 100;--tblr-link-hover-decoration: underline;--tblr-code-color: var(--tblr-gray-600);--tblr-highlight-color: #182433;--tblr-highlight-bg: #fdeccc;--tblr-border-width: 1px;--tblr-border-style: solid;--tblr-border-color: #dce1e7;--tblr-border-color-translucent: rgba(4, 32, 69, .1);--tblr-border-radius: 4px;--tblr-border-radius-sm: 2px;--tblr-border-radius-lg: 8px;--tblr-border-radius-xl: 1rem;--tblr-border-radius-xxl: 2rem;--tblr-border-radius-2xl: var(--tblr-border-radius-xxl);--tblr-border-radius-pill: 100rem;--tblr-box-shadow: rgba(var(--tblr-body-color-rgb), .04) 0 2px 4px 0;--tblr-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--tblr-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--tblr-box-shadow-inset: 0 0 transparent;--tblr-focus-ring-width: .25rem;--tblr-focus-ring-opacity: .25;--tblr-focus-ring-color: rgba(var(--tblr-primary-rgb), .25);--tblr-form-valid-color: #2fb344;--tblr-form-valid-border-color: #2fb344;--tblr-form-invalid-color: #d63939;--tblr-form-invalid-border-color: #d63939}[data-bs-theme=dark],body[data-bs-theme=dark] [data-bs-theme=light]{color-scheme:dark;--tblr-body-color: #dce1e7;--tblr-body-color-rgb: 220, 225, 231;--tblr-body-bg: #040a11;--tblr-body-bg-rgb: 4, 10, 17;--tblr-emphasis-color: #ffffff;--tblr-emphasis-color-rgb: 255, 255, 255;--tblr-secondary-color: rgba(220, 225, 231, .75);--tblr-secondary-color-rgb: 220, 225, 231;--tblr-secondary-bg: #182433;--tblr-secondary-bg-rgb: 24, 36, 51;--tblr-tertiary-color: rgba(220, 225, 231, .5);--tblr-tertiary-color-rgb: 220, 225, 231;--tblr-tertiary-bg: #0e1722;--tblr-tertiary-bg-rgb: 14, 23, 34;--tblr-primary-text-emphasis: #66b6b1;--tblr-secondary-text-emphasis: #a7afbd;--tblr-success-text-emphasis: #82d18f;--tblr-info-text-emphasis: #8ec2ed;--tblr-warning-text-emphasis: #faa46a;--tblr-danger-text-emphasis: #e68888;--tblr-light-text-emphasis: #eef3f6;--tblr-dark-text-emphasis: #b8c4d4;--tblr-primary-bg-subtle: #001b19;--tblr-secondary-bg-subtle: #16181d;--tblr-success-bg-subtle: #09240e;--tblr-info-bg-subtle: #0d1f2d;--tblr-warning-bg-subtle: #311501;--tblr-danger-bg-subtle: #2b0b0b;--tblr-light-bg-subtle: #182433;--tblr-dark-bg-subtle: #0c121a;--tblr-primary-border-subtle: #00504b;--tblr-secondary-border-subtle: #414957;--tblr-success-border-subtle: #1c6b29;--tblr-info-border-subtle: #285c87;--tblr-warning-border-subtle: #943e04;--tblr-danger-border-subtle: #802222;--tblr-light-border-subtle: #3a4859;--tblr-dark-border-subtle: #182433;--tblr-heading-color: inherit;--tblr-link-color: #66b6b1;--tblr-link-hover-color: #85c5c1;--tblr-link-color-rgb: 102, 182, 177;--tblr-link-hover-color-rgb: 133, 197, 193;--tblr-code-color: var(--tblr-gray-300);--tblr-highlight-color: #dce1e7;--tblr-highlight-bg: #624000;--tblr-border-color: #25384f;--tblr-border-color-translucent: rgba(72, 110, 149, .14);--tblr-form-valid-color: #82d18f;--tblr-form-valid-border-color: #82d18f;--tblr-form-invalid-color: #e68888;--tblr-form-invalid-border-color: #e68888}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--tblr-body-font-family);font-size:var(--tblr-body-font-size);font-weight:var(--tblr-body-font-weight);line-height:var(--tblr-body-line-height);color:var(--tblr-body-color);text-align:var(--tblr-body-text-align);background-color:var(--tblr-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr,.hr{margin:2rem 0;color:inherit;border:0;border-top:var(--tblr-border-width) solid;opacity:.16}h6,.h6,h5,.h5,h4,.h4,h3,.field-group h2,.field-group .h2,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:var(--tblr-spacer);font-weight:var(--tblr-font-weight-bold);line-height:1.2;color:var(--tblr-heading-color)}h1,.h1{font-size:1.5rem}h2,.h2{font-size:1.25rem}h3,.field-group h2,.field-group .h2,.h3{font-size:1rem}h4,.h4{font-size:.875rem}h5,.h5{font-size:.75rem}h6,.h6{font-size:.625rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:85.714285%}mark,.mark{padding:.1875em;color:var(--tblr-highlight-color);background-color:var(--tblr-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--tblr-link-color-rgb),var(--tblr-link-opacity, 1));text-decoration:none}a:hover{--tblr-link-color-rgb: var(--tblr-link-hover-color-rgb);text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--tblr-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:85.714285%;color:var(--tblr-light)}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:85.714285%;color:var(--tblr-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.25rem .5rem;font-size:var(--tblr-font-size-h5);color:var(--tblr-text-secondary-dark);background-color:var(--tblr-code-bg);border-radius:2px}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--tblr-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:.875rem;font-weight:var(--tblr-font-weight-normal)}.display-1{font-size:5rem;font-weight:300;line-height:1.2}.display-2{font-size:4.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}.display-5{font-size:3rem;font-weight:300;line-height:1.2}.display-6{font-size:2rem;font-weight:300;line-height:1.2}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:85.714285%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:.875rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:85.714285%;color:#49566c}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--tblr-body-bg);border:var(--tblr-border-width) solid var(--tblr-border-color);border-radius:var(--tblr-border-radius);box-shadow:var(--tblr-box-shadow-sm);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:85.714285%;color:var(--tblr-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--tblr-gutter-x: calc(var(--tblr-page-padding) * 2);--tblr-gutter-y: 0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--tblr-breakpoint-xs: 0;--tblr-breakpoint-sm: 576px;--tblr-breakpoint-md: 768px;--tblr-breakpoint-lg: 992px;--tblr-breakpoint-xl: 1200px;--tblr-breakpoint-xxl: 1400px}.row{--tblr-gutter-x: var(--tblr-page-padding);--tblr-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--tblr-gutter-y));margin-right:calc(-.5 * var(--tblr-gutter-x));margin-left:calc(-.5 * var(--tblr-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-top:var(--tblr-gutter-y)}.grid{display:grid;grid-template-rows:repeat(var(--tblr-rows, 1),1fr);grid-template-columns:repeat(var(--tblr-columns, 12),1fr);gap:var(--tblr-gap, var(--tblr-page-padding))}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media (min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media (min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media (min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media (min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media (min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--tblr-gutter-x: 0}.g-0,.gy-0{--tblr-gutter-y: 0}.g-1,.gx-1{--tblr-gutter-x: .25rem}.g-1,.gy-1{--tblr-gutter-y: .25rem}.g-2,.gx-2{--tblr-gutter-x: .5rem}.g-2,.gy-2{--tblr-gutter-y: .5rem}.g-3,.gx-3{--tblr-gutter-x: 1rem}.g-3,.gy-3{--tblr-gutter-y: 1rem}.g-4,.gx-4{--tblr-gutter-x: 1.5rem}.g-4,.gy-4{--tblr-gutter-y: 1.5rem}.g-5,.gx-5{--tblr-gutter-x: 2rem}.g-5,.gy-5{--tblr-gutter-y: 2rem}.g-6,.gx-6{--tblr-gutter-x: 3rem}.g-6,.gy-6{--tblr-gutter-y: 3rem}.g-7,.gx-7{--tblr-gutter-x: 5rem}.g-7,.gy-7{--tblr-gutter-y: 5rem}.g-8,.gx-8{--tblr-gutter-x: 8rem}.g-8,.gy-8{--tblr-gutter-y: 8rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--tblr-gutter-x: 0}.g-sm-0,.gy-sm-0{--tblr-gutter-y: 0}.g-sm-1,.gx-sm-1{--tblr-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--tblr-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--tblr-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--tblr-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--tblr-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--tblr-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--tblr-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--tblr-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--tblr-gutter-x: 2rem}.g-sm-5,.gy-sm-5{--tblr-gutter-y: 2rem}.g-sm-6,.gx-sm-6{--tblr-gutter-x: 3rem}.g-sm-6,.gy-sm-6{--tblr-gutter-y: 3rem}.g-sm-7,.gx-sm-7{--tblr-gutter-x: 5rem}.g-sm-7,.gy-sm-7{--tblr-gutter-y: 5rem}.g-sm-8,.gx-sm-8{--tblr-gutter-x: 8rem}.g-sm-8,.gy-sm-8{--tblr-gutter-y: 8rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--tblr-gutter-x: 0}.g-md-0,.gy-md-0{--tblr-gutter-y: 0}.g-md-1,.gx-md-1{--tblr-gutter-x: .25rem}.g-md-1,.gy-md-1{--tblr-gutter-y: .25rem}.g-md-2,.gx-md-2{--tblr-gutter-x: .5rem}.g-md-2,.gy-md-2{--tblr-gutter-y: .5rem}.g-md-3,.gx-md-3{--tblr-gutter-x: 1rem}.g-md-3,.gy-md-3{--tblr-gutter-y: 1rem}.g-md-4,.gx-md-4{--tblr-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--tblr-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--tblr-gutter-x: 2rem}.g-md-5,.gy-md-5{--tblr-gutter-y: 2rem}.g-md-6,.gx-md-6{--tblr-gutter-x: 3rem}.g-md-6,.gy-md-6{--tblr-gutter-y: 3rem}.g-md-7,.gx-md-7{--tblr-gutter-x: 5rem}.g-md-7,.gy-md-7{--tblr-gutter-y: 5rem}.g-md-8,.gx-md-8{--tblr-gutter-x: 8rem}.g-md-8,.gy-md-8{--tblr-gutter-y: 8rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--tblr-gutter-x: 0}.g-lg-0,.gy-lg-0{--tblr-gutter-y: 0}.g-lg-1,.gx-lg-1{--tblr-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--tblr-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--tblr-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--tblr-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--tblr-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--tblr-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--tblr-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--tblr-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--tblr-gutter-x: 2rem}.g-lg-5,.gy-lg-5{--tblr-gutter-y: 2rem}.g-lg-6,.gx-lg-6{--tblr-gutter-x: 3rem}.g-lg-6,.gy-lg-6{--tblr-gutter-y: 3rem}.g-lg-7,.gx-lg-7{--tblr-gutter-x: 5rem}.g-lg-7,.gy-lg-7{--tblr-gutter-y: 5rem}.g-lg-8,.gx-lg-8{--tblr-gutter-x: 8rem}.g-lg-8,.gy-lg-8{--tblr-gutter-y: 8rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--tblr-gutter-x: 0}.g-xl-0,.gy-xl-0{--tblr-gutter-y: 0}.g-xl-1,.gx-xl-1{--tblr-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--tblr-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--tblr-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--tblr-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--tblr-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--tblr-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--tblr-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--tblr-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--tblr-gutter-x: 2rem}.g-xl-5,.gy-xl-5{--tblr-gutter-y: 2rem}.g-xl-6,.gx-xl-6{--tblr-gutter-x: 3rem}.g-xl-6,.gy-xl-6{--tblr-gutter-y: 3rem}.g-xl-7,.gx-xl-7{--tblr-gutter-x: 5rem}.g-xl-7,.gy-xl-7{--tblr-gutter-y: 5rem}.g-xl-8,.gx-xl-8{--tblr-gutter-x: 8rem}.g-xl-8,.gy-xl-8{--tblr-gutter-y: 8rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--tblr-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--tblr-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--tblr-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--tblr-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--tblr-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--tblr-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--tblr-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--tblr-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--tblr-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--tblr-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--tblr-gutter-x: 2rem}.g-xxl-5,.gy-xxl-5{--tblr-gutter-y: 2rem}.g-xxl-6,.gx-xxl-6{--tblr-gutter-x: 3rem}.g-xxl-6,.gy-xxl-6{--tblr-gutter-y: 3rem}.g-xxl-7,.gx-xxl-7{--tblr-gutter-x: 5rem}.g-xxl-7,.gy-xxl-7{--tblr-gutter-y: 5rem}.g-xxl-8,.gx-xxl-8{--tblr-gutter-x: 8rem}.g-xxl-8,.gy-xxl-8{--tblr-gutter-y: 8rem}}.table,.markdown>table{--tblr-table-color-type: initial;--tblr-table-bg-type: initial;--tblr-table-color-state: initial;--tblr-table-bg-state: initial;--tblr-table-color: inherit;--tblr-table-bg: transparent;--tblr-table-border-color: var(--tblr-border-color-translucent);--tblr-table-accent-bg: transparent;--tblr-table-striped-color: inherit;--tblr-table-striped-bg: var(--tblr-bg-surface-tertiary);--tblr-table-active-color: inherit;--tblr-table-active-bg: rgba(var(--tblr-emphasis-color-rgb), .1);--tblr-table-hover-color: inherit;--tblr-table-hover-bg: rgba(var(--tblr-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--tblr-table-border-color)}.table>:not(caption)>*>*,.markdown>table>:not(caption)>*>*{padding:.5rem;color:var(--tblr-table-color-state, var(--tblr-table-color-type, var(--tblr-table-color)));background-color:var(--tblr-table-bg);border-bottom-width:var(--tblr-border-width);box-shadow:inset 0 0 0 9999px var(--tblr-table-bg-state, var(--tblr-table-bg-type, var(--tblr-table-accent-bg)))}.table>tbody,.markdown>table>tbody{vertical-align:inherit}.table>thead,.markdown>table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--tblr-border-width) * 2) solid var(--tblr-border-color-translucent)}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*,.markdown>table>:not(caption)>*{border-width:var(--tblr-border-width) 0}.table-bordered>:not(caption)>*>*,.markdown>table>:not(caption)>*>*{border-width:0 var(--tblr-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(2n)>*{--tblr-table-color-type: var(--tblr-table-striped-color);--tblr-table-bg-type: var(--tblr-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--tblr-table-color-type: var(--tblr-table-striped-color);--tblr-table-bg-type: var(--tblr-table-striped-bg)}.table-active{--tblr-table-color-state: var(--tblr-table-active-color);--tblr-table-bg-state: var(--tblr-table-active-bg)}.table-hover>tbody>tr:hover>*{--tblr-table-color-state: var(--tblr-table-hover-color);--tblr-table-bg-state: var(--tblr-table-hover-bg)}.table-primary{--tblr-table-color: #182433;--tblr-table-bg: #cce7e5;--tblr-table-border-color: #a8c0c1;--tblr-table-striped-bg: #c3dddc;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #bad4d3;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #bfd8d8;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-secondary{--tblr-table-color: #182433;--tblr-table-bg: #e2e4e9;--tblr-table-border-color: #babec5;--tblr-table-striped-bg: #d8dae0;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #ced1d7;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #d3d6db;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-success{--tblr-table-color: #182433;--tblr-table-bg: #d5f0da;--tblr-table-border-color: #afc7b9;--tblr-table-striped-bg: #cce6d2;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #c2dcc9;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #c7e1cd;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-info{--tblr-table-color: #182433;--tblr-table-bg: #d9ebf9;--tblr-table-border-color: #b2c3d1;--tblr-table-striped-bg: #cfe1ef;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #c6d7e5;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #cbdcea;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-warning{--tblr-table-color: #182433;--tblr-table-bg: #fde1cd;--tblr-table-border-color: #cfbbae;--tblr-table-striped-bg: #f2d8c5;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #e6cebe;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #ecd3c1;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-danger{--tblr-table-color: #182433;--tblr-table-bg: #f7d7d7;--tblr-table-border-color: #cab3b6;--tblr-table-striped-bg: #eccecf;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #e1c5c7;--tblr-table-active-color: #f6f8fb;--tblr-table-hover-bg: #e6cacb;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-light{--tblr-table-color: #182433;--tblr-table-bg: #f6f8fb;--tblr-table-border-color: #caced3;--tblr-table-striped-bg: #ebedf1;--tblr-table-striped-color: #182433;--tblr-table-active-bg: #e0e3e7;--tblr-table-active-color: #182433;--tblr-table-hover-bg: #e5e8ec;--tblr-table-hover-color: #182433;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-dark{--tblr-table-color: #f6f8fb;--tblr-table-bg: #182433;--tblr-table-border-color: #444e5b;--tblr-table-striped-bg: #232f3d;--tblr-table-striped-color: #f6f8fb;--tblr-table-active-bg: #2e3947;--tblr-table-active-color: #f6f8fb;--tblr-table-hover-bg: #293442;--tblr-table-hover-color: #f6f8fb;color:var(--tblr-table-color);border-color:var(--tblr-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem;font-size:.875rem;font-weight:var(--tblr-font-weight-medium)}.col-form-label{padding-top:calc(.5625rem + var(--tblr-border-width));padding-bottom:calc(.5625rem + var(--tblr-border-width));margin-bottom:0;font-size:inherit;font-weight:var(--tblr-font-weight-medium);line-height:1.4285714286}.col-form-label-lg{padding-top:calc(.5rem + var(--tblr-border-width));padding-bottom:calc(.5rem + var(--tblr-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.125rem + var(--tblr-border-width));padding-bottom:calc(.125rem + var(--tblr-border-width));font-size:.75rem}.form-text{margin-top:.25rem;font-size:85.714285%;color:var(--tblr-secondary-color)}.form-control{display:block;width:100%;padding:.5625rem .75rem;font-family:var(--tblr-font-sans-serif);font-size:.875rem;font-weight:400;line-height:1.4285714286;color:var(--tblr-body-color);appearance:none;background-color:var(--tblr-bg-forms);background-clip:padding-box;border:var(--tblr-border-width) solid var(--tblr-border-color);border-radius:var(--tblr-border-radius);box-shadow:var(--tblr-box-shadow-input);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--tblr-body-color);background-color:var(--tblr-bg-forms);border-color:#80c2be;outline:0;box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.4285714286em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:#8a97ab;opacity:1}.form-control:disabled{background-color:var(--tblr-bg-surface-secondary);opacity:1}.form-control::file-selector-button{padding:.5625rem .75rem;margin:-.5625rem -.75rem;margin-inline-end:.75rem;color:var(--tblr-body-color);background-color:var(--tblr-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--tblr-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--tblr-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.5625rem 0;margin-bottom:0;line-height:1.4285714286;color:var(--tblr-body-color);background-color:transparent;border:solid transparent;border-width:var(--tblr-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2));padding:.125rem .25rem;font-size:.75rem;border-radius:var(--tblr-border-radius-sm)}.form-control-sm::file-selector-button{padding:.125rem .25rem;margin:-.125rem -.25rem;margin-inline-end:.25rem}.form-control-lg{min-height:calc(1.4285714286em + 1rem + calc(var(--tblr-border-width) * 2));padding:.5rem .75rem;font-size:1.25rem;border-radius:var(--tblr-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem .75rem;margin:-.5rem -.75rem;margin-inline-end:.75rem}textarea.form-control{min-height:calc(1.4285714286em + 1.125rem + calc(var(--tblr-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.4285714286em + 1rem + calc(var(--tblr-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.4285714286em + 1.125rem + calc(var(--tblr-border-width) * 2));padding:.5625rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--tblr-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--tblr-border-radius)}.form-control-color.form-control-sm{height:calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.4285714286em + 1rem + calc(var(--tblr-border-width) * 2))}.form-select{--tblr-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a97ab' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.5625rem 2.25rem .5625rem .75rem;font-family:var(--tblr-font-sans-serif);font-size:.875rem;font-weight:400;line-height:1.4285714286;color:var(--tblr-body-color);appearance:none;background-color:var(--tblr-bg-forms);background-image:var(--tblr-form-select-bg-img),var(--tblr-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--tblr-border-width) solid var(--tblr-border-color);border-radius:var(--tblr-border-radius);box-shadow:var(--tblr-box-shadow-input);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#80c2be;outline:0;box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--tblr-bg-surface-secondary)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--tblr-body-color)}.form-select-sm{padding-top:.125rem;padding-bottom:.125rem;padding-left:.25rem;font-size:.75rem;border-radius:var(--tblr-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1.25rem;border-radius:var(--tblr-border-radius-lg)}[data-bs-theme=dark] .form-select,body[data-bs-theme=dark] [data-bs-theme=light] .form-select{--tblr-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dce1e7' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.25rem;padding-left:2rem;margin-bottom:.75rem}.form-check .form-check-input{float:left;margin-left:-2rem}.form-check-reverse{padding-right:2rem;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-2rem;margin-left:0}.form-check-input{--tblr-form-check-bg: var(--tblr-bg-forms);flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.0892857143rem;vertical-align:top;appearance:none;background-color:var(--tblr-form-check-bg);background-image:var(--tblr-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:var(--tblr-border-radius)}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#80c2be;outline:0;box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-check-input:checked{background-color:var(--tblr-primary);border-color:var(--tblr-border-color-translucent)}.form-check-input:checked[type=checkbox]{--tblr-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--tblr-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:var(--tblr-primary);border-color:var(--tblr-primary);--tblr-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.7}.form-switch{padding-left:2.5rem}.form-switch .form-check-input{--tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23dce1e7'/%3e%3c/svg%3e");width:2rem;margin-left:-2.5rem;background-image:var(--tblr-form-switch-bg);background-position:left center;border-radius:2rem;transition:background-position .15s ease-in-out}.form-switch .form-check-input:focus{--tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380c2be'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5rem;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5rem;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.4}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--tblr-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.25rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f6f8fb,0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f6f8fb,0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.375rem;appearance:none;background-color:var(--tblr-primary);border:2px var(--tblr-border-style) #ffffff;border-radius:1rem;box-shadow:0 .1rem .25rem #0000001a;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3dad8}.form-range::-webkit-slider-runnable-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color);border-color:transparent;border-radius:1rem;box-shadow:var(--tblr-box-shadow-inset)}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:var(--tblr-primary);border:2px var(--tblr-border-style) #ffffff;border-radius:1rem;box-shadow:0 .1rem .25rem #0000001a;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3dad8}.form-range::-moz-range-track{width:100%;height:.25rem;color:transparent;cursor:pointer;background-color:var(--tblr-border-color);border-color:transparent;border-radius:1rem;box-shadow:var(--tblr-box-shadow-inset)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--tblr-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--tblr-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--tblr-border-width) * 2));min-height:calc(3.5rem + calc(var(--tblr-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--tblr-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--tblr-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--tblr-bg-forms);border-radius:var(--tblr-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--tblr-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--tblr-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#49566c}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--tblr-bg-surface-secondary)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.5625rem .75rem;font-size:.875rem;font-weight:400;line-height:1.4285714286;color:var(--tblr-gray-500);text-align:center;white-space:nowrap;background-color:var(--tblr-bg-surface-secondary);border:var(--tblr-border-width) solid var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem .75rem;font-size:1.25rem;border-radius:var(--tblr-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.125rem .25rem;font-size:.75rem;border-radius:var(--tblr-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--tblr-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.714285%;color:var(--tblr-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:var(--tblr-spacer-2) var(--tblr-spacer-2);margin-top:.1rem;font-size:.765625rem;color:#fff;background-color:var(--tblr-success);border-radius:var(--tblr-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--tblr-form-valid-border-color);padding-right:calc(1.4285714286em + 1.125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.3571428572em + .28125rem) center;background-size:calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--tblr-form-valid-border-color);box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.4285714286em + 1.125rem);background-position:top calc(.3571428572em + .28125rem) right calc(.3571428572em + .28125rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--tblr-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--tblr-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--tblr-form-valid-border-color);box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.4285714286em + 1.125rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--tblr-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--tblr-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--tblr-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--tblr-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:85.714285%;color:var(--tblr-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:var(--tblr-spacer-2) var(--tblr-spacer-2);margin-top:.1rem;font-size:.765625rem;color:#fff;background-color:var(--tblr-danger);border-radius:var(--tblr-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--tblr-form-invalid-border-color);padding-right:calc(1.4285714286em + 1.125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.3571428572em + .28125rem) center;background-size:calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--tblr-form-invalid-border-color);box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.4285714286em + 1.125rem);background-position:top calc(.3571428572em + .28125rem) right calc(.3571428572em + .28125rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--tblr-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--tblr-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--tblr-form-invalid-border-color);box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.4285714286em + 1.125rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--tblr-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--tblr-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--tblr-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--tblr-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--tblr-btn-padding-x: .5rem;--tblr-btn-padding-y: .25rem;--tblr-btn-font-family: var(--tblr-font-sans-serif);--tblr-btn-font-size: .875rem;--tblr-btn-font-weight: var(--tblr-font-weight-medium);--tblr-btn-line-height: 1.4285714286;--tblr-btn-color: var(--tblr-body-color);--tblr-btn-bg: transparent;--tblr-btn-border-width: var(--tblr-border-width);--tblr-btn-border-color: transparent;--tblr-btn-border-radius: var(--tblr-border-radius);--tblr-btn-hover-border-color: transparent;--tblr-btn-box-shadow: var(--tblr-box-shadow-input);--tblr-btn-disabled-opacity: .4;--tblr-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--tblr-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--tblr-btn-padding-y) var(--tblr-btn-padding-x);font-family:var(--tblr-btn-font-family);font-size:var(--tblr-btn-font-size);font-weight:var(--tblr-btn-font-weight);line-height:var(--tblr-btn-line-height);color:var(--tblr-btn-color);text-align:center;vertical-align:middle;cursor:pointer;user-select:none;border:var(--tblr-btn-border-width) solid var(--tblr-btn-border-color);border-radius:var(--tblr-btn-border-radius);background-color:var(--tblr-btn-bg);box-shadow:var(--tblr-btn-box-shadow);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--tblr-btn-hover-color);text-decoration:none;background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--tblr-btn-color);background-color:var(--tblr-btn-bg);border-color:var(--tblr-btn-border-color)}.btn:focus-visible{color:var(--tblr-btn-hover-color);background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color);outline:0;box-shadow:var(--tblr-btn-box-shadow),var(--tblr-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--tblr-btn-hover-border-color);outline:0;box-shadow:var(--tblr-btn-box-shadow),var(--tblr-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--tblr-btn-active-color);background-color:var(--tblr-btn-active-bg);border-color:var(--tblr-btn-active-border-color);box-shadow:var(--tblr-btn-active-shadow)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--tblr-btn-active-shadow),var(--tblr-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--tblr-btn-active-shadow),var(--tblr-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--tblr-btn-disabled-color);pointer-events:none;background-color:var(--tblr-btn-disabled-bg);border-color:var(--tblr-btn-disabled-border-color);opacity:var(--tblr-btn-disabled-opacity);box-shadow:none}.btn-link{--tblr-btn-font-weight: 400;--tblr-btn-color: var(--tblr-link-color);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-link-hover-color);--tblr-btn-hover-border-color: transparent;--tblr-btn-active-color: var(--tblr-link-hover-color);--tblr-btn-active-border-color: transparent;--tblr-btn-disabled-color: #49566c;--tblr-btn-disabled-border-color: transparent;--tblr-btn-box-shadow: 0 0 0 #000;--tblr-btn-focus-shadow-rgb: 37, 150, 144;text-decoration:none}.btn-link:hover,.btn-link:focus-visible{text-decoration:underline}.btn-link:focus-visible{color:var(--tblr-btn-color)}.btn-link:hover{color:var(--tblr-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--tblr-btn-padding-y: .5rem;--tblr-btn-padding-x: .75rem;--tblr-btn-font-size: 1.25rem;--tblr-btn-border-radius: var(--tblr-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--tblr-btn-padding-y: .125rem;--tblr-btn-padding-x: .25rem;--tblr-btn-font-size: .75rem;--tblr-btn-border-radius: var(--tblr-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(-45deg)}.dropdown-menu{--tblr-dropdown-zindex: 1000;--tblr-dropdown-min-width: 11rem;--tblr-dropdown-padding-x: 0;--tblr-dropdown-padding-y: .25rem;--tblr-dropdown-spacer: 1px;--tblr-dropdown-font-size: .875rem;--tblr-dropdown-color: var(--tblr-body-color);--tblr-dropdown-bg: var(--tblr-bg-surface);--tblr-dropdown-border-color: var(--tblr-border-color-translucent);--tblr-dropdown-border-radius: var(--tblr-border-radius);--tblr-dropdown-border-width: var(--tblr-border-width);--tblr-dropdown-inner-border-radius: calc(var(--tblr-border-radius) - var(--tblr-border-width));--tblr-dropdown-divider-bg: var(--tblr-border-color-translucent);--tblr-dropdown-divider-margin-y: var(--tblr-spacer-2);--tblr-dropdown-box-shadow: var(--tblr-box-shadow-dropdown);--tblr-dropdown-link-color: inherit;--tblr-dropdown-link-hover-color: inherit;--tblr-dropdown-link-hover-bg: rgba(var(--tblr-secondary-rgb), .08);--tblr-dropdown-link-active-color: var(--tblr-primary);--tblr-dropdown-link-active-bg: var(--tblr-active-bg);--tblr-dropdown-link-disabled-color: var(--tblr-tertiary-color);--tblr-dropdown-item-padding-x: .75rem;--tblr-dropdown-item-padding-y: .5rem;--tblr-dropdown-header-color: #49566c;--tblr-dropdown-header-padding-x: .75rem;--tblr-dropdown-header-padding-y: .25rem;position:absolute;z-index:var(--tblr-dropdown-zindex);display:none;min-width:var(--tblr-dropdown-min-width);padding:var(--tblr-dropdown-padding-y) var(--tblr-dropdown-padding-x);margin:0;font-size:var(--tblr-dropdown-font-size);color:var(--tblr-dropdown-color);text-align:left;list-style:none;background-color:var(--tblr-dropdown-bg);background-clip:padding-box;border:var(--tblr-dropdown-border-width) solid var(--tblr-dropdown-border-color);border-radius:var(--tblr-dropdown-border-radius);box-shadow:var(--tblr-dropdown-box-shadow)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--tblr-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--tblr-dropdown-spacer)}.dropup .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(135deg)}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--tblr-dropdown-spacer)}.dropend .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(-135deg)}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--tblr-dropdown-spacer)}.dropstart .dropdown-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(45deg)}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--tblr-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--tblr-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--tblr-dropdown-link-color);text-align:inherit;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--tblr-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--tblr-dropdown-link-hover-color);text-decoration:none;background-color:var(--tblr-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--tblr-dropdown-link-active-color);text-decoration:none;background-color:var(--tblr-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--tblr-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--tblr-dropdown-header-padding-y) var(--tblr-dropdown-header-padding-x);margin-bottom:0;font-size:.765625rem;color:var(--tblr-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--tblr-dropdown-item-padding-y) var(--tblr-dropdown-item-padding-x);color:var(--tblr-dropdown-link-color)}.dropdown-menu-dark{--tblr-dropdown-color: #b8c4d4;--tblr-dropdown-bg: #182433;--tblr-dropdown-border-color: var(--tblr-border-color-translucent);--tblr-dropdown-box-shadow: ;--tblr-dropdown-link-color: #b8c4d4;--tblr-dropdown-link-hover-color: #ffffff;--tblr-dropdown-divider-bg: var(--tblr-border-color-translucent);--tblr-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--tblr-dropdown-link-active-color: var(--tblr-primary);--tblr-dropdown-link-active-bg: var(--tblr-active-bg);--tblr-dropdown-link-disabled-color: #6c7a91;--tblr-dropdown-header-color: #6c7a91}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--tblr-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--tblr-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.1875rem;padding-left:.1875rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.btn-group.show .dropdown-toggle{box-shadow:inset 0 3px 5px #00000020}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--tblr-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--tblr-nav-link-padding-x: .75rem;--tblr-nav-link-padding-y: .5rem;--tblr-nav-link-font-weight: ;--tblr-nav-link-color: var(--tblr-gray-500);--tblr-nav-link-hover-color: var(--tblr-link-hover-color);--tblr-nav-link-disabled-color: var(--tblr-disabled-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--tblr-nav-link-padding-y) var(--tblr-nav-link-padding-x);font-size:var(--tblr-nav-link-font-size);font-weight:var(--tblr-nav-link-font-weight);color:var(--tblr-nav-link-color);background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}.nav-link:hover,.nav-link:focus{color:var(--tblr-nav-link-hover-color);text-decoration:none}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.nav-link.disabled,.nav-link:disabled{color:var(--tblr-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--tblr-nav-tabs-border-width: var(--tblr-border-width);--tblr-nav-tabs-border-color: var(--tblr-border-color);--tblr-nav-tabs-border-radius: var(--tblr-border-radius);--tblr-nav-tabs-link-hover-border-color: var(--tblr-border-color) var(--tblr-border-color) var(--tblr-border-color);--tblr-nav-tabs-link-active-color: var(--tblr-body-color);--tblr-nav-tabs-link-active-bg: var(--tblr-body-bg);--tblr-nav-tabs-link-active-border-color: var(--tblr-border-color) var(--tblr-border-color) var(--tblr-border-color);border-bottom:var(--tblr-nav-tabs-border-width) solid var(--tblr-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--tblr-nav-tabs-border-width));border:var(--tblr-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--tblr-nav-tabs-border-radius);border-top-right-radius:var(--tblr-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--tblr-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--tblr-nav-tabs-link-active-color);background-color:var(--tblr-nav-tabs-link-active-bg);border-color:var(--tblr-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--tblr-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--tblr-nav-pills-border-radius: var(--tblr-border-radius);--tblr-nav-pills-link-active-color: var(--tblr-primary);--tblr-nav-pills-link-active-bg: rgba(var(--tblr-secondary-rgb), .15)}.nav-pills .nav-link{border-radius:var(--tblr-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--tblr-nav-pills-link-active-color);background-color:var(--tblr-nav-pills-link-active-bg)}.nav-underline{--tblr-nav-underline-gap: 1rem;--tblr-nav-underline-border-width: .125rem;--tblr-nav-underline-link-active-color: var(--tblr-emphasis-color);gap:var(--tblr-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--tblr-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:600;color:var(--tblr-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--tblr-navbar-padding-x: 0;--tblr-navbar-padding-y: .25rem;--tblr-navbar-color: var(--tblr-body-color);--tblr-navbar-hover-color: rgba(var(--tblr-emphasis-color-rgb), .8);--tblr-navbar-disabled-color: var(--tblr-disabled-color);--tblr-navbar-active-color: var(--tblr-body-color) color;--tblr-navbar-brand-padding-y: .5rem;--tblr-navbar-brand-margin-end: 1rem;--tblr-navbar-brand-font-size: 1.25rem;--tblr-navbar-brand-color: var(--tblr-body-color);--tblr-navbar-brand-hover-color: var(--tblr-body-color) color;--tblr-navbar-nav-link-padding-x: .75rem;--tblr-navbar-toggler-padding-y: 0;--tblr-navbar-toggler-padding-x: 0;--tblr-navbar-toggler-font-size: 1rem;--tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2824, 36, 51, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--tblr-navbar-toggler-border-color: rgba(var(--tblr-emphasis-color-rgb), .15);--tblr-navbar-toggler-border-radius: var(--tblr-border-radius);--tblr-navbar-toggler-focus-width: 0;--tblr-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--tblr-navbar-padding-y) var(--tblr-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--tblr-navbar-brand-padding-y);padding-bottom:var(--tblr-navbar-brand-padding-y);margin-right:var(--tblr-navbar-brand-margin-end);font-size:var(--tblr-navbar-brand-font-size);color:var(--tblr-navbar-brand-color);white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--tblr-navbar-brand-hover-color);text-decoration:none}.navbar-nav{--tblr-nav-link-padding-x: 0;--tblr-nav-link-padding-y: .5rem;--tblr-nav-link-font-weight: ;--tblr-nav-link-color: var(--tblr-navbar-color);--tblr-nav-link-hover-color: var(--tblr-navbar-hover-color);--tblr-nav-link-disabled-color: var(--tblr-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--tblr-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--tblr-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--tblr-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--tblr-navbar-toggler-padding-y) var(--tblr-navbar-toggler-padding-x);font-size:var(--tblr-navbar-toggler-font-size);line-height:1;color:var(--tblr-navbar-color);background-color:transparent;border:var(--tblr-border-width) solid var(--tblr-navbar-toggler-border-color);border-radius:var(--tblr-navbar-toggler-border-radius);transition:var(--tblr-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--tblr-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--tblr-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--tblr-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--tblr-navbar-nav-link-padding-x);padding-left:var(--tblr-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;box-shadow:none;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark],body[data-bs-theme=dark] .navbar[data-bs-theme=light]{--tblr-navbar-color: rgba(255, 255, 255, .7);--tblr-navbar-hover-color: rgba(255, 255, 255, .75);--tblr-navbar-disabled-color: var(--tblr-disabled-color);--tblr-navbar-active-color: #ffffff;--tblr-navbar-brand-color: #ffffff;--tblr-navbar-brand-hover-color: #ffffff;--tblr-navbar-toggler-border-color: rgba(255, 255, 255, .1);--tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon,body[data-bs-theme=dark] [data-bs-theme=light] .navbar-toggler-icon{--tblr-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--tblr-card-spacer-y: 1rem;--tblr-card-spacer-x: 1.25rem;--tblr-card-title-spacer-y: 1.25rem;--tblr-card-title-color: ;--tblr-card-subtitle-color: ;--tblr-card-border-width: var(--tblr-border-width);--tblr-card-border-color: var(--tblr-border-color-translucent);--tblr-card-border-radius: var(--tblr-border-radius);--tblr-card-box-shadow: var(--tblr-shadow-card);--tblr-card-inner-border-radius: calc(var(--tblr-border-radius) - (var(--tblr-border-width)));--tblr-card-cap-padding-y: 1rem;--tblr-card-cap-padding-x: 1.25rem;--tblr-card-cap-bg: var(--tblr-bg-surface-tertiary);--tblr-card-cap-color: inherit;--tblr-card-height: ;--tblr-card-color: inherit;--tblr-card-bg: var(--tblr-bg-surface);--tblr-card-img-overlay-padding: 1rem;--tblr-card-group-margin: 1.5rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--tblr-card-height);color:var(--tblr-body-color);word-wrap:break-word;background-color:var(--tblr-card-bg);background-clip:border-box;border:var(--tblr-card-border-width) solid var(--tblr-card-border-color);border-radius:var(--tblr-card-border-radius);box-shadow:var(--tblr-card-box-shadow)}.card>hr,.card>.hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--tblr-card-inner-border-radius);border-top-right-radius:var(--tblr-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--tblr-card-inner-border-radius);border-bottom-left-radius:var(--tblr-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--tblr-card-spacer-y) var(--tblr-card-spacer-x);color:var(--tblr-card-color)}.card-title{margin-bottom:var(--tblr-card-title-spacer-y);color:var(--tblr-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--tblr-card-title-spacer-y));margin-bottom:0;color:var(--tblr-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:var(--tblr-card-spacer-x)}.card-header{padding:var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x);margin-bottom:0;color:var(--tblr-card-cap-color);background-color:var(--tblr-card-cap-bg);border-bottom:var(--tblr-card-border-width) solid var(--tblr-card-border-color)}.card-header:first-child{border-radius:var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius) 0 0}.card-footer{padding:var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x);color:var(--tblr-card-cap-color);background-color:var(--tblr-card-cap-bg);border-top:var(--tblr-card-border-width) solid var(--tblr-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--tblr-card-cap-padding-x));margin-bottom:calc(-1 * var(--tblr-card-cap-padding-y));margin-left:calc(-.5 * var(--tblr-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--tblr-card-bg);border-bottom-color:var(--tblr-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--tblr-card-cap-padding-x));margin-left:calc(-.5 * var(--tblr-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--tblr-card-img-overlay-padding);border-radius:var(--tblr-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--tblr-card-inner-border-radius);border-top-right-radius:var(--tblr-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--tblr-card-inner-border-radius);border-bottom-left-radius:var(--tblr-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--tblr-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--tblr-accordion-color: var(--tblr-body-color);--tblr-accordion-bg: transparent;--tblr-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--tblr-accordion-border-color: var(--tblr-border-color-translucent);--tblr-accordion-border-width: var(--tblr-border-width);--tblr-accordion-border-radius: var(--tblr-border-radius);--tblr-accordion-inner-border-radius: calc(var(--tblr-border-radius) - (var(--tblr-border-width)));--tblr-accordion-btn-padding-x: 1.25rem;--tblr-accordion-btn-padding-y: 1rem;--tblr-accordion-btn-color: var(--tblr-body-color);--tblr-accordion-btn-bg: transparent;--tblr-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23182433' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--tblr-accordion-btn-icon-width: 1rem;--tblr-accordion-btn-icon-transform: rotate(-180deg);--tblr-accordion-btn-icon-transition: transform .2s ease-in-out;--tblr-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23003532' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--tblr-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--tblr-primary-rgb), .25);--tblr-accordion-body-padding-x: 1.25rem;--tblr-accordion-body-padding-y: 1rem;--tblr-accordion-active-color: inherit;--tblr-accordion-active-bg: transparent}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--tblr-accordion-btn-padding-y) var(--tblr-accordion-btn-padding-x);font-size:.875rem;color:var(--tblr-accordion-btn-color);text-align:left;background-color:var(--tblr-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--tblr-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--tblr-accordion-active-color);background-color:var(--tblr-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--tblr-accordion-border-width)) 0 var(--tblr-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--tblr-accordion-btn-active-icon);transform:var(--tblr-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--tblr-accordion-btn-icon-width);height:var(--tblr-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--tblr-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--tblr-accordion-btn-icon-width);transition:var(--tblr-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--tblr-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--tblr-accordion-color);background-color:var(--tblr-accordion-bg);border:var(--tblr-accordion-border-width) solid var(--tblr-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--tblr-accordion-border-radius);border-top-right-radius:var(--tblr-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--tblr-accordion-inner-border-radius);border-top-right-radius:var(--tblr-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--tblr-accordion-border-radius);border-bottom-left-radius:var(--tblr-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--tblr-accordion-inner-border-radius);border-bottom-left-radius:var(--tblr-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--tblr-accordion-border-radius);border-bottom-left-radius:var(--tblr-accordion-border-radius)}.accordion-body{padding:var(--tblr-accordion-body-padding-y) var(--tblr-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--tblr-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366b6b1'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--tblr-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366b6b1'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--tblr-breadcrumb-padding-x: 0;--tblr-breadcrumb-padding-y: 0;--tblr-breadcrumb-margin-bottom: 1rem;--tblr-breadcrumb-bg: ;--tblr-breadcrumb-border-radius: ;--tblr-breadcrumb-divider-color: var(--tblr-gray-500);--tblr-breadcrumb-item-padding-x: .5rem;--tblr-breadcrumb-item-active-color: inherit;display:flex;flex-wrap:wrap;padding:var(--tblr-breadcrumb-padding-y) var(--tblr-breadcrumb-padding-x);margin-bottom:var(--tblr-breadcrumb-margin-bottom);font-size:var(--tblr-breadcrumb-font-size);list-style:none;background-color:var(--tblr-breadcrumb-bg);border-radius:var(--tblr-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--tblr-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--tblr-breadcrumb-item-padding-x);color:var(--tblr-breadcrumb-divider-color);content:var(--tblr-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--tblr-breadcrumb-item-active-color)}.pagination{--tblr-pagination-padding-x: .25rem;--tblr-pagination-padding-y: .25rem;--tblr-pagination-font-size: .875rem;--tblr-pagination-color: var(--tblr-gray-500);--tblr-pagination-bg: transparent;--tblr-pagination-border-width: 0;--tblr-pagination-border-color: var(--tblr-border-color);--tblr-pagination-border-radius: var(--tblr-border-radius);--tblr-pagination-hover-color: var(--tblr-link-hover-color);--tblr-pagination-hover-bg: var(--tblr-tertiary-bg);--tblr-pagination-hover-border-color: var(--tblr-border-color);--tblr-pagination-focus-color: var(--tblr-link-hover-color);--tblr-pagination-focus-bg: var(--tblr-secondary-bg);--tblr-pagination-focus-box-shadow: 0 0 0 .25rem rgba(var(--tblr-primary-rgb), .25);--tblr-pagination-active-color: #ffffff;--tblr-pagination-active-bg: var(--tblr-primary);--tblr-pagination-active-border-color: var(--tblr-primary);--tblr-pagination-disabled-color: var(--tblr-disabled-color);--tblr-pagination-disabled-bg: transparent;--tblr-pagination-disabled-border-color: var(--tblr-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--tblr-pagination-padding-y) var(--tblr-pagination-padding-x);font-size:var(--tblr-pagination-font-size);color:var(--tblr-pagination-color);background-color:var(--tblr-pagination-bg);border:var(--tblr-pagination-border-width) solid var(--tblr-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--tblr-pagination-hover-color);text-decoration:none;background-color:var(--tblr-pagination-hover-bg);border-color:var(--tblr-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--tblr-pagination-focus-color);background-color:var(--tblr-pagination-focus-bg);outline:0;box-shadow:var(--tblr-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--tblr-pagination-active-color);background-color:var(--tblr-pagination-active-bg);border-color:var(--tblr-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--tblr-pagination-disabled-color);pointer-events:none;background-color:var(--tblr-pagination-disabled-bg);border-color:var(--tblr-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:-0}.page-item:first-child .page-link{border-top-left-radius:var(--tblr-pagination-border-radius);border-bottom-left-radius:var(--tblr-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--tblr-pagination-border-radius);border-bottom-right-radius:var(--tblr-pagination-border-radius)}.pagination-lg{--tblr-pagination-padding-x: 1.5rem;--tblr-pagination-padding-y: .75rem;--tblr-pagination-font-size: 1.09375rem;--tblr-pagination-border-radius: var(--tblr-border-radius-lg)}.pagination-sm{--tblr-pagination-padding-x: .5rem;--tblr-pagination-padding-y: .25rem;--tblr-pagination-font-size: .765625rem;--tblr-pagination-border-radius: var(--tblr-border-radius-sm)}.badge{--tblr-badge-padding-x: .5em;--tblr-badge-padding-y: .25em;--tblr-badge-font-size: 85.714285%;--tblr-badge-font-weight: var(--tblr-font-weight-medium);--tblr-badge-color: var(--tblr-gray-500);--tblr-badge-border-radius: var(--tblr-border-radius);display:inline-block;padding:var(--tblr-badge-padding-y) var(--tblr-badge-padding-x);font-size:var(--tblr-badge-font-size);font-weight:var(--tblr-badge-font-weight);line-height:1;color:var(--tblr-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--tblr-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--tblr-alert-bg: transparent;--tblr-alert-padding-x: 1rem;--tblr-alert-padding-y: .75rem;--tblr-alert-margin-bottom: 1rem;--tblr-alert-color: inherit;--tblr-alert-border-color: transparent;--tblr-alert-border: var(--tblr-border-width) solid var(--tblr-alert-border-color);--tblr-alert-border-radius: var(--tblr-border-radius);--tblr-alert-link-color: inherit;position:relative;padding:var(--tblr-alert-padding-y) var(--tblr-alert-padding-x);margin-bottom:var(--tblr-alert-margin-bottom);color:var(--tblr-alert-color);background-color:var(--tblr-alert-bg);border:var(--tblr-alert-border);border-radius:var(--tblr-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:var(--tblr-font-weight-bold);color:var(--tblr-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:.9375rem 1rem}.alert-primary{--tblr-alert-color: var(--tblr-primary-text-emphasis);--tblr-alert-bg: var(--tblr-primary-bg-subtle);--tblr-alert-border-color: var(--tblr-primary-border-subtle);--tblr-alert-link-color: var(--tblr-primary-text-emphasis)}.alert-secondary{--tblr-alert-color: var(--tblr-secondary-text-emphasis);--tblr-alert-bg: var(--tblr-secondary-bg-subtle);--tblr-alert-border-color: var(--tblr-secondary-border-subtle);--tblr-alert-link-color: var(--tblr-secondary-text-emphasis)}.alert-success{--tblr-alert-color: var(--tblr-success-text-emphasis);--tblr-alert-bg: var(--tblr-success-bg-subtle);--tblr-alert-border-color: var(--tblr-success-border-subtle);--tblr-alert-link-color: var(--tblr-success-text-emphasis)}.alert-info{--tblr-alert-color: var(--tblr-info-text-emphasis);--tblr-alert-bg: var(--tblr-info-bg-subtle);--tblr-alert-border-color: var(--tblr-info-border-subtle);--tblr-alert-link-color: var(--tblr-info-text-emphasis)}.alert-warning{--tblr-alert-color: var(--tblr-warning-text-emphasis);--tblr-alert-bg: var(--tblr-warning-bg-subtle);--tblr-alert-border-color: var(--tblr-warning-border-subtle);--tblr-alert-link-color: var(--tblr-warning-text-emphasis)}.alert-danger{--tblr-alert-color: var(--tblr-danger-text-emphasis);--tblr-alert-bg: var(--tblr-danger-bg-subtle);--tblr-alert-border-color: var(--tblr-danger-border-subtle);--tblr-alert-link-color: var(--tblr-danger-text-emphasis)}.alert-light{--tblr-alert-color: var(--tblr-light-text-emphasis);--tblr-alert-bg: var(--tblr-light-bg-subtle);--tblr-alert-border-color: var(--tblr-light-border-subtle);--tblr-alert-link-color: var(--tblr-light-text-emphasis)}.alert-dark{--tblr-alert-color: var(--tblr-dark-text-emphasis);--tblr-alert-bg: var(--tblr-dark-bg-subtle);--tblr-alert-border-color: var(--tblr-dark-border-subtle);--tblr-alert-link-color: var(--tblr-dark-text-emphasis)}.alert-muted{--tblr-alert-color: var(--tblr-muted-text-emphasis);--tblr-alert-bg: var(--tblr-muted-bg-subtle);--tblr-alert-border-color: var(--tblr-muted-border-subtle);--tblr-alert-link-color: var(--tblr-muted-text-emphasis)}.alert-blue{--tblr-alert-color: var(--tblr-blue-text-emphasis);--tblr-alert-bg: var(--tblr-blue-bg-subtle);--tblr-alert-border-color: var(--tblr-blue-border-subtle);--tblr-alert-link-color: var(--tblr-blue-text-emphasis)}.alert-azure{--tblr-alert-color: var(--tblr-azure-text-emphasis);--tblr-alert-bg: var(--tblr-azure-bg-subtle);--tblr-alert-border-color: var(--tblr-azure-border-subtle);--tblr-alert-link-color: var(--tblr-azure-text-emphasis)}.alert-indigo{--tblr-alert-color: var(--tblr-indigo-text-emphasis);--tblr-alert-bg: var(--tblr-indigo-bg-subtle);--tblr-alert-border-color: var(--tblr-indigo-border-subtle);--tblr-alert-link-color: var(--tblr-indigo-text-emphasis)}.alert-purple{--tblr-alert-color: var(--tblr-purple-text-emphasis);--tblr-alert-bg: var(--tblr-purple-bg-subtle);--tblr-alert-border-color: var(--tblr-purple-border-subtle);--tblr-alert-link-color: var(--tblr-purple-text-emphasis)}.alert-pink{--tblr-alert-color: var(--tblr-pink-text-emphasis);--tblr-alert-bg: var(--tblr-pink-bg-subtle);--tblr-alert-border-color: var(--tblr-pink-border-subtle);--tblr-alert-link-color: var(--tblr-pink-text-emphasis)}.alert-red{--tblr-alert-color: var(--tblr-red-text-emphasis);--tblr-alert-bg: var(--tblr-red-bg-subtle);--tblr-alert-border-color: var(--tblr-red-border-subtle);--tblr-alert-link-color: var(--tblr-red-text-emphasis)}.alert-orange{--tblr-alert-color: var(--tblr-orange-text-emphasis);--tblr-alert-bg: var(--tblr-orange-bg-subtle);--tblr-alert-border-color: var(--tblr-orange-border-subtle);--tblr-alert-link-color: var(--tblr-orange-text-emphasis)}.alert-yellow{--tblr-alert-color: var(--tblr-yellow-text-emphasis);--tblr-alert-bg: var(--tblr-yellow-bg-subtle);--tblr-alert-border-color: var(--tblr-yellow-border-subtle);--tblr-alert-link-color: var(--tblr-yellow-text-emphasis)}.alert-lime{--tblr-alert-color: var(--tblr-lime-text-emphasis);--tblr-alert-bg: var(--tblr-lime-bg-subtle);--tblr-alert-border-color: var(--tblr-lime-border-subtle);--tblr-alert-link-color: var(--tblr-lime-text-emphasis)}.alert-green{--tblr-alert-color: var(--tblr-green-text-emphasis);--tblr-alert-bg: var(--tblr-green-bg-subtle);--tblr-alert-border-color: var(--tblr-green-border-subtle);--tblr-alert-link-color: var(--tblr-green-text-emphasis)}.alert-teal{--tblr-alert-color: var(--tblr-teal-text-emphasis);--tblr-alert-bg: var(--tblr-teal-bg-subtle);--tblr-alert-border-color: var(--tblr-teal-border-subtle);--tblr-alert-link-color: var(--tblr-teal-text-emphasis)}.alert-cyan{--tblr-alert-color: var(--tblr-cyan-text-emphasis);--tblr-alert-bg: var(--tblr-cyan-bg-subtle);--tblr-alert-border-color: var(--tblr-cyan-border-subtle);--tblr-alert-link-color: var(--tblr-cyan-text-emphasis)}.alert-x{--tblr-alert-color: var(--tblr-x-text-emphasis);--tblr-alert-bg: var(--tblr-x-bg-subtle);--tblr-alert-border-color: var(--tblr-x-border-subtle);--tblr-alert-link-color: var(--tblr-x-text-emphasis)}.alert-facebook{--tblr-alert-color: var(--tblr-facebook-text-emphasis);--tblr-alert-bg: var(--tblr-facebook-bg-subtle);--tblr-alert-border-color: var(--tblr-facebook-border-subtle);--tblr-alert-link-color: var(--tblr-facebook-text-emphasis)}.alert-twitter{--tblr-alert-color: var(--tblr-twitter-text-emphasis);--tblr-alert-bg: var(--tblr-twitter-bg-subtle);--tblr-alert-border-color: var(--tblr-twitter-border-subtle);--tblr-alert-link-color: var(--tblr-twitter-text-emphasis)}.alert-linkedin{--tblr-alert-color: var(--tblr-linkedin-text-emphasis);--tblr-alert-bg: var(--tblr-linkedin-bg-subtle);--tblr-alert-border-color: var(--tblr-linkedin-border-subtle);--tblr-alert-link-color: var(--tblr-linkedin-text-emphasis)}.alert-google{--tblr-alert-color: var(--tblr-google-text-emphasis);--tblr-alert-bg: var(--tblr-google-bg-subtle);--tblr-alert-border-color: var(--tblr-google-border-subtle);--tblr-alert-link-color: var(--tblr-google-text-emphasis)}.alert-youtube{--tblr-alert-color: var(--tblr-youtube-text-emphasis);--tblr-alert-bg: var(--tblr-youtube-bg-subtle);--tblr-alert-border-color: var(--tblr-youtube-border-subtle);--tblr-alert-link-color: var(--tblr-youtube-text-emphasis)}.alert-vimeo{--tblr-alert-color: var(--tblr-vimeo-text-emphasis);--tblr-alert-bg: var(--tblr-vimeo-bg-subtle);--tblr-alert-border-color: var(--tblr-vimeo-border-subtle);--tblr-alert-link-color: var(--tblr-vimeo-text-emphasis)}.alert-dribbble{--tblr-alert-color: var(--tblr-dribbble-text-emphasis);--tblr-alert-bg: var(--tblr-dribbble-bg-subtle);--tblr-alert-border-color: var(--tblr-dribbble-border-subtle);--tblr-alert-link-color: var(--tblr-dribbble-text-emphasis)}.alert-github{--tblr-alert-color: var(--tblr-github-text-emphasis);--tblr-alert-bg: var(--tblr-github-bg-subtle);--tblr-alert-border-color: var(--tblr-github-border-subtle);--tblr-alert-link-color: var(--tblr-github-text-emphasis)}.alert-instagram{--tblr-alert-color: var(--tblr-instagram-text-emphasis);--tblr-alert-bg: var(--tblr-instagram-bg-subtle);--tblr-alert-border-color: var(--tblr-instagram-border-subtle);--tblr-alert-link-color: var(--tblr-instagram-text-emphasis)}.alert-pinterest{--tblr-alert-color: var(--tblr-pinterest-text-emphasis);--tblr-alert-bg: var(--tblr-pinterest-bg-subtle);--tblr-alert-border-color: var(--tblr-pinterest-border-subtle);--tblr-alert-link-color: var(--tblr-pinterest-text-emphasis)}.alert-vk{--tblr-alert-color: var(--tblr-vk-text-emphasis);--tblr-alert-bg: var(--tblr-vk-bg-subtle);--tblr-alert-border-color: var(--tblr-vk-border-subtle);--tblr-alert-link-color: var(--tblr-vk-text-emphasis)}.alert-rss{--tblr-alert-color: var(--tblr-rss-text-emphasis);--tblr-alert-bg: var(--tblr-rss-bg-subtle);--tblr-alert-border-color: var(--tblr-rss-border-subtle);--tblr-alert-link-color: var(--tblr-rss-text-emphasis)}.alert-flickr{--tblr-alert-color: var(--tblr-flickr-text-emphasis);--tblr-alert-bg: var(--tblr-flickr-bg-subtle);--tblr-alert-border-color: var(--tblr-flickr-border-subtle);--tblr-alert-link-color: var(--tblr-flickr-text-emphasis)}.alert-bitbucket{--tblr-alert-color: var(--tblr-bitbucket-text-emphasis);--tblr-alert-bg: var(--tblr-bitbucket-bg-subtle);--tblr-alert-border-color: var(--tblr-bitbucket-border-subtle);--tblr-alert-link-color: var(--tblr-bitbucket-text-emphasis)}.alert-tabler{--tblr-alert-color: var(--tblr-tabler-text-emphasis);--tblr-alert-bg: var(--tblr-tabler-bg-subtle);--tblr-alert-border-color: var(--tblr-tabler-border-subtle);--tblr-alert-link-color: var(--tblr-tabler-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress,.progress-stacked{--tblr-progress-height: .5rem;--tblr-progress-font-size: .65625rem;--tblr-progress-bg: var(--tblr-border-color);--tblr-progress-border-radius: var(--tblr-border-radius);--tblr-progress-box-shadow: var(--tblr-box-shadow-inset);--tblr-progress-bar-color: #ffffff;--tblr-progress-bar-bg: var(--tblr-primary);--tblr-progress-bar-transition: width .6s ease;display:flex;height:var(--tblr-progress-height);overflow:hidden;font-size:var(--tblr-progress-font-size);background-color:var(--tblr-progress-bg);border-radius:var(--tblr-progress-border-radius);box-shadow:var(--tblr-progress-box-shadow)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--tblr-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--tblr-progress-bar-bg);transition:var(--tblr-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--tblr-progress-height) var(--tblr-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--tblr-list-group-color: var(--tblr-body-color);--tblr-list-group-bg: inherit;--tblr-list-group-border-color: var(--tblr-border-color);--tblr-list-group-border-width: var(--tblr-border-width);--tblr-list-group-border-radius: var(--tblr-border-radius);--tblr-list-group-item-padding-x: 1.25rem;--tblr-list-group-item-padding-y: 1rem;--tblr-list-group-action-color: inherit;--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: rgba(var(--tblr-secondary-rgb), .08);--tblr-list-group-action-active-color: var(--tblr-body-color);--tblr-list-group-action-active-bg: var(--tblr-secondary-bg);--tblr-list-group-disabled-color: var(--tblr-secondary-color);--tblr-list-group-disabled-bg: inherit;--tblr-list-group-active-color: inherit;--tblr-list-group-active-bg: var(--tblr-active-bg);--tblr-list-group-active-border-color: var(--tblr-border-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--tblr-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--tblr-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--tblr-list-group-action-hover-color);text-decoration:none;background-color:var(--tblr-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--tblr-list-group-action-active-color);background-color:var(--tblr-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--tblr-list-group-item-padding-y) var(--tblr-list-group-item-padding-x);color:var(--tblr-list-group-color);background-color:var(--tblr-list-group-bg);border:var(--tblr-list-group-border-width) solid var(--tblr-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--tblr-list-group-disabled-color);pointer-events:none;background-color:var(--tblr-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--tblr-list-group-active-color);background-color:var(--tblr-list-group-active-bg);border-color:var(--tblr-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--tblr-list-group-border-width));border-top-width:var(--tblr-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--tblr-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--tblr-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--tblr-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--tblr-list-group-border-width));border-left-width:var(--tblr-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--tblr-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--tblr-list-group-color: var(--tblr-primary-text-emphasis);--tblr-list-group-bg: var(--tblr-primary-bg-subtle);--tblr-list-group-border-color: var(--tblr-primary-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-primary-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-primary-border-subtle);--tblr-list-group-active-color: var(--tblr-primary-bg-subtle);--tblr-list-group-active-bg: var(--tblr-primary-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-primary-text-emphasis)}.list-group-item-secondary{--tblr-list-group-color: var(--tblr-secondary-text-emphasis);--tblr-list-group-bg: var(--tblr-secondary-bg-subtle);--tblr-list-group-border-color: var(--tblr-secondary-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-secondary-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-secondary-border-subtle);--tblr-list-group-active-color: var(--tblr-secondary-bg-subtle);--tblr-list-group-active-bg: var(--tblr-secondary-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-secondary-text-emphasis)}.list-group-item-success{--tblr-list-group-color: var(--tblr-success-text-emphasis);--tblr-list-group-bg: var(--tblr-success-bg-subtle);--tblr-list-group-border-color: var(--tblr-success-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-success-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-success-border-subtle);--tblr-list-group-active-color: var(--tblr-success-bg-subtle);--tblr-list-group-active-bg: var(--tblr-success-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-success-text-emphasis)}.list-group-item-info{--tblr-list-group-color: var(--tblr-info-text-emphasis);--tblr-list-group-bg: var(--tblr-info-bg-subtle);--tblr-list-group-border-color: var(--tblr-info-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-info-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-info-border-subtle);--tblr-list-group-active-color: var(--tblr-info-bg-subtle);--tblr-list-group-active-bg: var(--tblr-info-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-info-text-emphasis)}.list-group-item-warning{--tblr-list-group-color: var(--tblr-warning-text-emphasis);--tblr-list-group-bg: var(--tblr-warning-bg-subtle);--tblr-list-group-border-color: var(--tblr-warning-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-warning-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-warning-border-subtle);--tblr-list-group-active-color: var(--tblr-warning-bg-subtle);--tblr-list-group-active-bg: var(--tblr-warning-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-warning-text-emphasis)}.list-group-item-danger{--tblr-list-group-color: var(--tblr-danger-text-emphasis);--tblr-list-group-bg: var(--tblr-danger-bg-subtle);--tblr-list-group-border-color: var(--tblr-danger-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-danger-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-danger-border-subtle);--tblr-list-group-active-color: var(--tblr-danger-bg-subtle);--tblr-list-group-active-bg: var(--tblr-danger-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-danger-text-emphasis)}.list-group-item-light{--tblr-list-group-color: var(--tblr-light-text-emphasis);--tblr-list-group-bg: var(--tblr-light-bg-subtle);--tblr-list-group-border-color: var(--tblr-light-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-light-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-light-border-subtle);--tblr-list-group-active-color: var(--tblr-light-bg-subtle);--tblr-list-group-active-bg: var(--tblr-light-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-light-text-emphasis)}.list-group-item-dark{--tblr-list-group-color: var(--tblr-dark-text-emphasis);--tblr-list-group-bg: var(--tblr-dark-bg-subtle);--tblr-list-group-border-color: var(--tblr-dark-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-dark-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-dark-border-subtle);--tblr-list-group-active-color: var(--tblr-dark-bg-subtle);--tblr-list-group-active-bg: var(--tblr-dark-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-dark-text-emphasis)}.list-group-item-muted{--tblr-list-group-color: var(--tblr-muted-text-emphasis);--tblr-list-group-bg: var(--tblr-muted-bg-subtle);--tblr-list-group-border-color: var(--tblr-muted-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-muted-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-muted-border-subtle);--tblr-list-group-active-color: var(--tblr-muted-bg-subtle);--tblr-list-group-active-bg: var(--tblr-muted-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-muted-text-emphasis)}.list-group-item-blue{--tblr-list-group-color: var(--tblr-blue-text-emphasis);--tblr-list-group-bg: var(--tblr-blue-bg-subtle);--tblr-list-group-border-color: var(--tblr-blue-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-blue-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-blue-border-subtle);--tblr-list-group-active-color: var(--tblr-blue-bg-subtle);--tblr-list-group-active-bg: var(--tblr-blue-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-blue-text-emphasis)}.list-group-item-azure{--tblr-list-group-color: var(--tblr-azure-text-emphasis);--tblr-list-group-bg: var(--tblr-azure-bg-subtle);--tblr-list-group-border-color: var(--tblr-azure-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-azure-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-azure-border-subtle);--tblr-list-group-active-color: var(--tblr-azure-bg-subtle);--tblr-list-group-active-bg: var(--tblr-azure-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-azure-text-emphasis)}.list-group-item-indigo{--tblr-list-group-color: var(--tblr-indigo-text-emphasis);--tblr-list-group-bg: var(--tblr-indigo-bg-subtle);--tblr-list-group-border-color: var(--tblr-indigo-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-indigo-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-indigo-border-subtle);--tblr-list-group-active-color: var(--tblr-indigo-bg-subtle);--tblr-list-group-active-bg: var(--tblr-indigo-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-indigo-text-emphasis)}.list-group-item-purple{--tblr-list-group-color: var(--tblr-purple-text-emphasis);--tblr-list-group-bg: var(--tblr-purple-bg-subtle);--tblr-list-group-border-color: var(--tblr-purple-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-purple-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-purple-border-subtle);--tblr-list-group-active-color: var(--tblr-purple-bg-subtle);--tblr-list-group-active-bg: var(--tblr-purple-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-purple-text-emphasis)}.list-group-item-pink{--tblr-list-group-color: var(--tblr-pink-text-emphasis);--tblr-list-group-bg: var(--tblr-pink-bg-subtle);--tblr-list-group-border-color: var(--tblr-pink-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-pink-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-pink-border-subtle);--tblr-list-group-active-color: var(--tblr-pink-bg-subtle);--tblr-list-group-active-bg: var(--tblr-pink-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-pink-text-emphasis)}.list-group-item-red{--tblr-list-group-color: var(--tblr-red-text-emphasis);--tblr-list-group-bg: var(--tblr-red-bg-subtle);--tblr-list-group-border-color: var(--tblr-red-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-red-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-red-border-subtle);--tblr-list-group-active-color: var(--tblr-red-bg-subtle);--tblr-list-group-active-bg: var(--tblr-red-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-red-text-emphasis)}.list-group-item-orange{--tblr-list-group-color: var(--tblr-orange-text-emphasis);--tblr-list-group-bg: var(--tblr-orange-bg-subtle);--tblr-list-group-border-color: var(--tblr-orange-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-orange-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-orange-border-subtle);--tblr-list-group-active-color: var(--tblr-orange-bg-subtle);--tblr-list-group-active-bg: var(--tblr-orange-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-orange-text-emphasis)}.list-group-item-yellow{--tblr-list-group-color: var(--tblr-yellow-text-emphasis);--tblr-list-group-bg: var(--tblr-yellow-bg-subtle);--tblr-list-group-border-color: var(--tblr-yellow-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-yellow-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-yellow-border-subtle);--tblr-list-group-active-color: var(--tblr-yellow-bg-subtle);--tblr-list-group-active-bg: var(--tblr-yellow-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-yellow-text-emphasis)}.list-group-item-lime{--tblr-list-group-color: var(--tblr-lime-text-emphasis);--tblr-list-group-bg: var(--tblr-lime-bg-subtle);--tblr-list-group-border-color: var(--tblr-lime-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-lime-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-lime-border-subtle);--tblr-list-group-active-color: var(--tblr-lime-bg-subtle);--tblr-list-group-active-bg: var(--tblr-lime-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-lime-text-emphasis)}.list-group-item-green{--tblr-list-group-color: var(--tblr-green-text-emphasis);--tblr-list-group-bg: var(--tblr-green-bg-subtle);--tblr-list-group-border-color: var(--tblr-green-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-green-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-green-border-subtle);--tblr-list-group-active-color: var(--tblr-green-bg-subtle);--tblr-list-group-active-bg: var(--tblr-green-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-green-text-emphasis)}.list-group-item-teal{--tblr-list-group-color: var(--tblr-teal-text-emphasis);--tblr-list-group-bg: var(--tblr-teal-bg-subtle);--tblr-list-group-border-color: var(--tblr-teal-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-teal-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-teal-border-subtle);--tblr-list-group-active-color: var(--tblr-teal-bg-subtle);--tblr-list-group-active-bg: var(--tblr-teal-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-teal-text-emphasis)}.list-group-item-cyan{--tblr-list-group-color: var(--tblr-cyan-text-emphasis);--tblr-list-group-bg: var(--tblr-cyan-bg-subtle);--tblr-list-group-border-color: var(--tblr-cyan-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-cyan-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-cyan-border-subtle);--tblr-list-group-active-color: var(--tblr-cyan-bg-subtle);--tblr-list-group-active-bg: var(--tblr-cyan-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-cyan-text-emphasis)}.list-group-item-x{--tblr-list-group-color: var(--tblr-x-text-emphasis);--tblr-list-group-bg: var(--tblr-x-bg-subtle);--tblr-list-group-border-color: var(--tblr-x-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-x-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-x-border-subtle);--tblr-list-group-active-color: var(--tblr-x-bg-subtle);--tblr-list-group-active-bg: var(--tblr-x-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-x-text-emphasis)}.list-group-item-facebook{--tblr-list-group-color: var(--tblr-facebook-text-emphasis);--tblr-list-group-bg: var(--tblr-facebook-bg-subtle);--tblr-list-group-border-color: var(--tblr-facebook-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-facebook-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-facebook-border-subtle);--tblr-list-group-active-color: var(--tblr-facebook-bg-subtle);--tblr-list-group-active-bg: var(--tblr-facebook-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-facebook-text-emphasis)}.list-group-item-twitter{--tblr-list-group-color: var(--tblr-twitter-text-emphasis);--tblr-list-group-bg: var(--tblr-twitter-bg-subtle);--tblr-list-group-border-color: var(--tblr-twitter-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-twitter-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-twitter-border-subtle);--tblr-list-group-active-color: var(--tblr-twitter-bg-subtle);--tblr-list-group-active-bg: var(--tblr-twitter-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-twitter-text-emphasis)}.list-group-item-linkedin{--tblr-list-group-color: var(--tblr-linkedin-text-emphasis);--tblr-list-group-bg: var(--tblr-linkedin-bg-subtle);--tblr-list-group-border-color: var(--tblr-linkedin-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-linkedin-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-linkedin-border-subtle);--tblr-list-group-active-color: var(--tblr-linkedin-bg-subtle);--tblr-list-group-active-bg: var(--tblr-linkedin-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-linkedin-text-emphasis)}.list-group-item-google{--tblr-list-group-color: var(--tblr-google-text-emphasis);--tblr-list-group-bg: var(--tblr-google-bg-subtle);--tblr-list-group-border-color: var(--tblr-google-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-google-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-google-border-subtle);--tblr-list-group-active-color: var(--tblr-google-bg-subtle);--tblr-list-group-active-bg: var(--tblr-google-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-google-text-emphasis)}.list-group-item-youtube{--tblr-list-group-color: var(--tblr-youtube-text-emphasis);--tblr-list-group-bg: var(--tblr-youtube-bg-subtle);--tblr-list-group-border-color: var(--tblr-youtube-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-youtube-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-youtube-border-subtle);--tblr-list-group-active-color: var(--tblr-youtube-bg-subtle);--tblr-list-group-active-bg: var(--tblr-youtube-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-youtube-text-emphasis)}.list-group-item-vimeo{--tblr-list-group-color: var(--tblr-vimeo-text-emphasis);--tblr-list-group-bg: var(--tblr-vimeo-bg-subtle);--tblr-list-group-border-color: var(--tblr-vimeo-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-vimeo-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-vimeo-border-subtle);--tblr-list-group-active-color: var(--tblr-vimeo-bg-subtle);--tblr-list-group-active-bg: var(--tblr-vimeo-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-vimeo-text-emphasis)}.list-group-item-dribbble{--tblr-list-group-color: var(--tblr-dribbble-text-emphasis);--tblr-list-group-bg: var(--tblr-dribbble-bg-subtle);--tblr-list-group-border-color: var(--tblr-dribbble-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-dribbble-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-dribbble-border-subtle);--tblr-list-group-active-color: var(--tblr-dribbble-bg-subtle);--tblr-list-group-active-bg: var(--tblr-dribbble-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-dribbble-text-emphasis)}.list-group-item-github{--tblr-list-group-color: var(--tblr-github-text-emphasis);--tblr-list-group-bg: var(--tblr-github-bg-subtle);--tblr-list-group-border-color: var(--tblr-github-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-github-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-github-border-subtle);--tblr-list-group-active-color: var(--tblr-github-bg-subtle);--tblr-list-group-active-bg: var(--tblr-github-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-github-text-emphasis)}.list-group-item-instagram{--tblr-list-group-color: var(--tblr-instagram-text-emphasis);--tblr-list-group-bg: var(--tblr-instagram-bg-subtle);--tblr-list-group-border-color: var(--tblr-instagram-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-instagram-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-instagram-border-subtle);--tblr-list-group-active-color: var(--tblr-instagram-bg-subtle);--tblr-list-group-active-bg: var(--tblr-instagram-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-instagram-text-emphasis)}.list-group-item-pinterest{--tblr-list-group-color: var(--tblr-pinterest-text-emphasis);--tblr-list-group-bg: var(--tblr-pinterest-bg-subtle);--tblr-list-group-border-color: var(--tblr-pinterest-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-pinterest-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-pinterest-border-subtle);--tblr-list-group-active-color: var(--tblr-pinterest-bg-subtle);--tblr-list-group-active-bg: var(--tblr-pinterest-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-pinterest-text-emphasis)}.list-group-item-vk{--tblr-list-group-color: var(--tblr-vk-text-emphasis);--tblr-list-group-bg: var(--tblr-vk-bg-subtle);--tblr-list-group-border-color: var(--tblr-vk-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-vk-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-vk-border-subtle);--tblr-list-group-active-color: var(--tblr-vk-bg-subtle);--tblr-list-group-active-bg: var(--tblr-vk-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-vk-text-emphasis)}.list-group-item-rss{--tblr-list-group-color: var(--tblr-rss-text-emphasis);--tblr-list-group-bg: var(--tblr-rss-bg-subtle);--tblr-list-group-border-color: var(--tblr-rss-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-rss-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-rss-border-subtle);--tblr-list-group-active-color: var(--tblr-rss-bg-subtle);--tblr-list-group-active-bg: var(--tblr-rss-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-rss-text-emphasis)}.list-group-item-flickr{--tblr-list-group-color: var(--tblr-flickr-text-emphasis);--tblr-list-group-bg: var(--tblr-flickr-bg-subtle);--tblr-list-group-border-color: var(--tblr-flickr-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-flickr-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-flickr-border-subtle);--tblr-list-group-active-color: var(--tblr-flickr-bg-subtle);--tblr-list-group-active-bg: var(--tblr-flickr-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-flickr-text-emphasis)}.list-group-item-bitbucket{--tblr-list-group-color: var(--tblr-bitbucket-text-emphasis);--tblr-list-group-bg: var(--tblr-bitbucket-bg-subtle);--tblr-list-group-border-color: var(--tblr-bitbucket-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-bitbucket-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-bitbucket-border-subtle);--tblr-list-group-active-color: var(--tblr-bitbucket-bg-subtle);--tblr-list-group-active-bg: var(--tblr-bitbucket-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-bitbucket-text-emphasis)}.list-group-item-tabler{--tblr-list-group-color: var(--tblr-tabler-text-emphasis);--tblr-list-group-bg: var(--tblr-tabler-bg-subtle);--tblr-list-group-border-color: var(--tblr-tabler-border-subtle);--tblr-list-group-action-hover-color: var(--tblr-emphasis-color);--tblr-list-group-action-hover-bg: var(--tblr-tabler-border-subtle);--tblr-list-group-action-active-color: var(--tblr-emphasis-color);--tblr-list-group-action-active-bg: var(--tblr-tabler-border-subtle);--tblr-list-group-active-color: var(--tblr-tabler-bg-subtle);--tblr-list-group-active-bg: var(--tblr-tabler-text-emphasis);--tblr-list-group-active-border-color: var(--tblr-tabler-text-emphasis)}.btn-close{--tblr-btn-close-color: #182433;--tblr-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23182433'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--tblr-btn-close-opacity: .4;--tblr-btn-close-hover-opacity: .75;--tblr-btn-close-focus-shadow: 0 0 0 .25rem rgba(var(--tblr-primary-rgb), .25);--tblr-btn-close-focus-opacity: 1;--tblr-btn-close-disabled-opacity: .25;--tblr-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--tblr-btn-close-color);background:transparent var(--tblr-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:4px;opacity:var(--tblr-btn-close-opacity)}.btn-close:hover{color:var(--tblr-btn-close-color);text-decoration:none;opacity:var(--tblr-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--tblr-btn-close-focus-shadow);opacity:var(--tblr-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--tblr-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close,body[data-bs-theme=dark] [data-bs-theme=light] .btn-close{filter:var(--tblr-btn-close-white-filter)}.toast{--tblr-toast-zindex: 1090;--tblr-toast-padding-x: .75rem;--tblr-toast-padding-y: .5rem;--tblr-toast-spacing: calc(var(--tblr-page-padding) * 2);--tblr-toast-max-width: 350px;--tblr-toast-font-size: .875rem;--tblr-toast-color: ;--tblr-toast-bg: rgba(var(--tblr-body-bg-rgb), .85);--tblr-toast-border-width: var(--tblr-border-width);--tblr-toast-border-color: var(--tblr-border-color);--tblr-toast-border-radius: var(--tblr-border-radius);--tblr-toast-box-shadow: var(--tblr-box-shadow);--tblr-toast-header-color: var(--tblr-gray-500);--tblr-toast-header-bg: rgba(var(--tblr-body-bg-rgb), .85);--tblr-toast-header-border-color: var(--tblr-border-color);width:var(--tblr-toast-max-width);max-width:100%;font-size:var(--tblr-toast-font-size);color:var(--tblr-toast-color);pointer-events:auto;background-color:var(--tblr-toast-bg);background-clip:padding-box;border:var(--tblr-toast-border-width) solid var(--tblr-toast-border-color);box-shadow:var(--tblr-toast-box-shadow);border-radius:var(--tblr-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--tblr-toast-zindex: 1090;position:absolute;z-index:var(--tblr-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--tblr-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--tblr-toast-padding-y) var(--tblr-toast-padding-x);color:var(--tblr-toast-header-color);background-color:var(--tblr-toast-header-bg);background-clip:padding-box;border-bottom:var(--tblr-toast-border-width) solid var(--tblr-toast-header-border-color);border-top-left-radius:calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width));border-top-right-radius:calc(var(--tblr-toast-border-radius) - var(--tblr-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--tblr-toast-padding-x));margin-left:var(--tblr-toast-padding-x)}.toast-body{padding:var(--tblr-toast-padding-x);word-wrap:break-word}.modal{--tblr-modal-zindex: 1055;--tblr-modal-width: 540px;--tblr-modal-padding: 1.5rem;--tblr-modal-margin: .5rem;--tblr-modal-color: ;--tblr-modal-bg: var(--tblr-bg-surface);--tblr-modal-border-color: transparent;--tblr-modal-border-width: var(--tblr-border-width);--tblr-modal-border-radius: var(--tblr-border-radius-lg);--tblr-modal-box-shadow: var(--tblr-box-shadow-sm);--tblr-modal-inner-border-radius: calc(var(--tblr-modal-border-radius) - 1px);--tblr-modal-header-padding-x: 1.5rem;--tblr-modal-header-padding-y: 1.5rem;--tblr-modal-header-padding: 1.5rem;--tblr-modal-header-border-color: var(--tblr-border-color);--tblr-modal-header-border-width: var(--tblr-border-width);--tblr-modal-title-line-height: 1.4285714286;--tblr-modal-footer-gap: .75rem;--tblr-modal-footer-bg: var(--tblr-bg-surface-tertiary);--tblr-modal-footer-border-color: var(--tblr-border-color);--tblr-modal-footer-border-width: var(--tblr-border-width);position:fixed;top:0;left:0;z-index:var(--tblr-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--tblr-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-1rem)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--tblr-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--tblr-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--tblr-modal-color);pointer-events:auto;background-color:var(--tblr-modal-bg);background-clip:padding-box;border:var(--tblr-modal-border-width) solid var(--tblr-modal-border-color);border-radius:var(--tblr-modal-border-radius);box-shadow:var(--tblr-modal-box-shadow);outline:0}.modal-backdrop{--tblr-backdrop-zindex: 1050;--tblr-backdrop-bg: #182433;--tblr-backdrop-opacity: .24;position:fixed;top:0;left:0;z-index:var(--tblr-backdrop-zindex);width:100vw;height:100vh;background-color:var(--tblr-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--tblr-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--tblr-modal-header-padding);border-bottom:var(--tblr-modal-header-border-width) solid var(--tblr-modal-header-border-color);border-top-left-radius:var(--tblr-modal-inner-border-radius);border-top-right-radius:var(--tblr-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--tblr-modal-header-padding-y) * .5) calc(var(--tblr-modal-header-padding-x) * .5);margin:calc(-.5 * var(--tblr-modal-header-padding-y)) calc(-.5 * var(--tblr-modal-header-padding-x)) calc(-.5 * var(--tblr-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--tblr-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--tblr-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--tblr-modal-padding) - var(--tblr-modal-footer-gap) * .5);background-color:var(--tblr-modal-footer-bg);border-top:var(--tblr-modal-footer-border-width) solid var(--tblr-modal-footer-border-color);border-bottom-right-radius:var(--tblr-modal-inner-border-radius);border-bottom-left-radius:var(--tblr-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--tblr-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--tblr-modal-margin: 1.75rem;--tblr-modal-box-shadow: var(--tblr-box-shadow)}.modal-dialog{max-width:var(--tblr-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--tblr-modal-width: 380px}}@media (min-width: 992px){.modal-lg,.modal-xl{--tblr-modal-width: 720px}}@media (min-width: 1200px){.modal-xl{--tblr-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--tblr-tooltip-zindex: 1080;--tblr-tooltip-max-width: 200px;--tblr-tooltip-padding-x: var(--tblr-spacer-2);--tblr-tooltip-padding-y: var(--tblr-spacer-2);--tblr-tooltip-margin: ;--tblr-tooltip-font-size: .765625rem;--tblr-tooltip-color: var(--tblr-light);--tblr-tooltip-bg: var(--tblr-bg-surface-dark);--tblr-tooltip-border-radius: var(--tblr-border-radius);--tblr-tooltip-opacity: .9;--tblr-tooltip-arrow-width: .8rem;--tblr-tooltip-arrow-height: .4rem;z-index:var(--tblr-tooltip-zindex);display:block;margin:var(--tblr-tooltip-margin);font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--tblr-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--tblr-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--tblr-tooltip-arrow-width);height:var(--tblr-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--tblr-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * .5) 0;border-top-color:var(--tblr-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--tblr-tooltip-arrow-height));width:var(--tblr-tooltip-arrow-height);height:var(--tblr-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height) calc(var(--tblr-tooltip-arrow-width) * .5) 0;border-right-color:var(--tblr-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--tblr-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height);border-bottom-color:var(--tblr-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--tblr-tooltip-arrow-height));width:var(--tblr-tooltip-arrow-height);height:var(--tblr-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--tblr-tooltip-arrow-width) * .5) 0 calc(var(--tblr-tooltip-arrow-width) * .5) var(--tblr-tooltip-arrow-height);border-left-color:var(--tblr-tooltip-bg)}.tooltip-inner{max-width:var(--tblr-tooltip-max-width);padding:var(--tblr-tooltip-padding-y) var(--tblr-tooltip-padding-x);color:var(--tblr-tooltip-color);text-align:center;background-color:var(--tblr-tooltip-bg);border-radius:var(--tblr-tooltip-border-radius)}.popover{--tblr-popover-zindex: 1070;--tblr-popover-max-width: 276px;--tblr-popover-font-size: .765625rem;--tblr-popover-bg: var(--tblr-bg-surface);--tblr-popover-border-width: var(--tblr-border-width);--tblr-popover-border-color: var(--tblr-border-color);--tblr-popover-border-radius: var(--tblr-border-radius-lg);--tblr-popover-inner-border-radius: calc(var(--tblr-border-radius-lg) - var(--tblr-border-width));--tblr-popover-box-shadow: var(--tblr-box-shadow);--tblr-popover-header-padding-x: 1rem;--tblr-popover-header-padding-y: .5rem;--tblr-popover-header-font-size: .875rem;--tblr-popover-header-color: inherit;--tblr-popover-header-bg: transparent;--tblr-popover-body-padding-x: 1rem;--tblr-popover-body-padding-y: 1rem;--tblr-popover-body-color: inherit;--tblr-popover-arrow-width: 1rem;--tblr-popover-arrow-height: .5rem;--tblr-popover-arrow-border: var(--tblr-popover-border-color);z-index:var(--tblr-popover-zindex);display:block;max-width:var(--tblr-popover-max-width);font-family:var(--tblr-font-sans-serif);font-style:normal;font-weight:400;line-height:1.4285714286;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--tblr-popover-font-size);word-wrap:break-word;background-color:var(--tblr-popover-bg);background-clip:padding-box;border:var(--tblr-popover-border-width) solid var(--tblr-popover-border-color);border-radius:var(--tblr-popover-border-radius);box-shadow:var(--tblr-popover-box-shadow)}.popover .popover-arrow{display:block;width:var(--tblr-popover-arrow-width);height:var(--tblr-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--tblr-popover-arrow-height)) - var(--tblr-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--tblr-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--tblr-popover-border-width);border-top-color:var(--tblr-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--tblr-popover-arrow-height)) - var(--tblr-popover-border-width));width:var(--tblr-popover-arrow-height);height:var(--tblr-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height) calc(var(--tblr-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--tblr-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--tblr-popover-border-width);border-right-color:var(--tblr-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--tblr-popover-arrow-height)) - var(--tblr-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--tblr-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--tblr-popover-border-width);border-bottom-color:var(--tblr-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--tblr-popover-arrow-width);margin-left:calc(-.5 * var(--tblr-popover-arrow-width));content:"";border-bottom:var(--tblr-popover-border-width) solid var(--tblr-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--tblr-popover-arrow-height)) - var(--tblr-popover-border-width));width:var(--tblr-popover-arrow-height);height:var(--tblr-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--tblr-popover-arrow-width) * .5) 0 calc(var(--tblr-popover-arrow-width) * .5) var(--tblr-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--tblr-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--tblr-popover-border-width);border-left-color:var(--tblr-popover-bg)}.popover-header{padding:var(--tblr-popover-header-padding-y) var(--tblr-popover-header-padding-x);margin-bottom:0;font-size:var(--tblr-popover-header-font-size);color:var(--tblr-popover-header-color);background-color:var(--tblr-popover-header-bg);border-bottom:var(--tblr-popover-border-width) solid var(--tblr-popover-border-color);border-top-left-radius:var(--tblr-popover-inner-border-radius);border-top-right-radius:var(--tblr-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--tblr-popover-body-padding-y) var(--tblr-popover-body-padding-x);color:var(--tblr-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:1.5rem;height:1.5rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='15 18 9 12 15 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='9 18 15 12 9 6'%3e%3c/polyline%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--tblr-spinner-width);height:var(--tblr-spinner-height);vertical-align:var(--tblr-spinner-vertical-align);border-radius:50%;animation:var(--tblr-spinner-animation-speed) linear infinite var(--tblr-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--tblr-spinner-width: 1.5rem;--tblr-spinner-height: 1.5rem;--tblr-spinner-vertical-align: -.125em;--tblr-spinner-border-width: 2px;--tblr-spinner-animation-speed: .75s;--tblr-spinner-animation-name: spinner-border;border:var(--tblr-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--tblr-spinner-width: 1rem;--tblr-spinner-height: 1rem;--tblr-spinner-border-width: 1px}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--tblr-spinner-width: 1.5rem;--tblr-spinner-height: 1.5rem;--tblr-spinner-vertical-align: -.125em;--tblr-spinner-animation-speed: .75s;--tblr-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--tblr-spinner-width: 1rem;--tblr-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--tblr-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--tblr-offcanvas-zindex: 1045;--tblr-offcanvas-width: 400px;--tblr-offcanvas-height: 30vh;--tblr-offcanvas-padding-x: 1.5rem;--tblr-offcanvas-padding-y: 1.5rem;--tblr-offcanvas-color: var(--tblr-body-color);--tblr-offcanvas-bg: var(--tblr-bg-surface);--tblr-offcanvas-border-width: var(--tblr-border-width);--tblr-offcanvas-border-color: var(--tblr-border-color);--tblr-offcanvas-box-shadow: var(--tblr-box-shadow-sm);--tblr-offcanvas-transition: transform .3s ease-in-out;--tblr-offcanvas-title-line-height: 1.4285714286}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--tblr-offcanvas-height: auto;--tblr-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--tblr-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--tblr-offcanvas-color);visibility:hidden;background-color:var(--tblr-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--tblr-offcanvas-box-shadow);transition:var(--tblr-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--tblr-offcanvas-width);border-right:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--tblr-offcanvas-width);border-left:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-bottom:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--tblr-offcanvas-height);max-height:100%;border-top:var(--tblr-offcanvas-border-width) solid var(--tblr-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#182433}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.24}.offcanvas-header{display:flex;align-items:center;padding:var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--tblr-offcanvas-padding-y) * .5) calc(var(--tblr-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--tblr-offcanvas-padding-y)) calc(-.5 * var(--tblr-offcanvas-padding-x)) calc(-.5 * var(--tblr-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--tblr-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--tblr-offcanvas-padding-y) var(--tblr-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.2}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.1}}.placeholder-wave{mask-image:linear-gradient(130deg,#000 55%,#000000e6,#000 95%);mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#f6f8fb!important;background-color:RGBA(var(--tblr-primary-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-secondary,.text-bg-gray{color:#f6f8fb!important;background-color:RGBA(var(--tblr-secondary-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-success{color:#f6f8fb!important;background-color:RGBA(var(--tblr-success-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-info{color:#f6f8fb!important;background-color:RGBA(var(--tblr-info-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-warning{color:#f6f8fb!important;background-color:RGBA(var(--tblr-warning-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-danger{color:#f6f8fb!important;background-color:RGBA(var(--tblr-danger-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-light,.text-bg-white{color:#182433!important;background-color:RGBA(var(--tblr-light-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-dark,.text-bg-black{color:#f6f8fb!important;background-color:RGBA(var(--tblr-dark-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-muted{color:#f6f8fb!important;background-color:RGBA(var(--tblr-muted-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-blue{color:#f6f8fb!important;background-color:RGBA(var(--tblr-blue-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-azure{color:#f6f8fb!important;background-color:RGBA(var(--tblr-azure-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-indigo{color:#f6f8fb!important;background-color:RGBA(var(--tblr-indigo-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-purple{color:#f6f8fb!important;background-color:RGBA(var(--tblr-purple-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-pink{color:#f6f8fb!important;background-color:RGBA(var(--tblr-pink-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-red{color:#f6f8fb!important;background-color:RGBA(var(--tblr-red-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-orange{color:#f6f8fb!important;background-color:RGBA(var(--tblr-orange-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-yellow{color:#f6f8fb!important;background-color:RGBA(var(--tblr-yellow-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-lime{color:#f6f8fb!important;background-color:RGBA(var(--tblr-lime-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-green{color:#f6f8fb!important;background-color:RGBA(var(--tblr-green-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-teal{color:#f6f8fb!important;background-color:RGBA(var(--tblr-teal-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-cyan{color:#f6f8fb!important;background-color:RGBA(var(--tblr-cyan-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-x{color:#f6f8fb!important;background-color:RGBA(var(--tblr-x-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-facebook{color:#f6f8fb!important;background-color:RGBA(var(--tblr-facebook-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-twitter{color:#f6f8fb!important;background-color:RGBA(var(--tblr-twitter-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-linkedin{color:#f6f8fb!important;background-color:RGBA(var(--tblr-linkedin-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-google{color:#f6f8fb!important;background-color:RGBA(var(--tblr-google-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-youtube{color:#f6f8fb!important;background-color:RGBA(var(--tblr-youtube-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-vimeo{color:#f6f8fb!important;background-color:RGBA(var(--tblr-vimeo-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-dribbble{color:#f6f8fb!important;background-color:RGBA(var(--tblr-dribbble-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-github{color:#f6f8fb!important;background-color:RGBA(var(--tblr-github-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-instagram{color:#f6f8fb!important;background-color:RGBA(var(--tblr-instagram-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-pinterest{color:#f6f8fb!important;background-color:RGBA(var(--tblr-pinterest-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-vk{color:#f6f8fb!important;background-color:RGBA(var(--tblr-vk-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-rss{color:#f6f8fb!important;background-color:RGBA(var(--tblr-rss-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-flickr{color:#f6f8fb!important;background-color:RGBA(var(--tblr-flickr-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-bitbucket{color:#f6f8fb!important;background-color:RGBA(var(--tblr-bitbucket-rgb),var(--tblr-bg-opacity, 1))!important}.text-bg-tabler{color:#f6f8fb!important;background-color:RGBA(var(--tblr-tabler-rgb),var(--tblr-bg-opacity, 1))!important}.link-primary{color:RGBA(var(--tblr-primary-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-primary-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-primary:hover,.link-primary:focus{color:RGBA(0,106,100,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(0,106,100,var(--tblr-link-underline-opacity, 1))!important}.link-secondary{color:RGBA(var(--tblr-secondary-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-secondary-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,98,116,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(86,98,116,var(--tblr-link-underline-opacity, 1))!important}.link-success{color:RGBA(var(--tblr-success-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-success-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-success:hover,.link-success:focus{color:RGBA(38,143,54,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(38,143,54,var(--tblr-link-underline-opacity, 1))!important}.link-info{color:RGBA(var(--tblr-info-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-info-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-info:hover,.link-info:focus{color:RGBA(53,122,180,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(53,122,180,var(--tblr-link-underline-opacity, 1))!important}.link-warning{color:RGBA(var(--tblr-warning-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-warning-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-warning:hover,.link-warning:focus{color:RGBA(198,82,6,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(198,82,6,var(--tblr-link-underline-opacity, 1))!important}.link-danger{color:RGBA(var(--tblr-danger-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-danger-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-danger:hover,.link-danger:focus{color:RGBA(171,46,46,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(171,46,46,var(--tblr-link-underline-opacity, 1))!important}.link-light{color:RGBA(var(--tblr-light-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-light-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-light:hover,.link-light:focus{color:RGBA(248,249,252,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(248,249,252,var(--tblr-link-underline-opacity, 1))!important}.link-dark{color:RGBA(var(--tblr-dark-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-dark-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-dark:hover,.link-dark:focus{color:RGBA(19,29,41,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(19,29,41,var(--tblr-link-underline-opacity, 1))!important}.link-muted{color:RGBA(var(--tblr-muted-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-muted-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-muted:hover,.link-muted:focus{color:RGBA(86,98,116,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(86,98,116,var(--tblr-link-underline-opacity, 1))!important}.link-blue{color:RGBA(var(--tblr-blue-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-blue-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-blue:hover,.link-blue:focus{color:RGBA(5,89,167,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(5,89,167,var(--tblr-link-underline-opacity, 1))!important}.link-azure{color:RGBA(var(--tblr-azure-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-azure-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-azure:hover,.link-azure:focus{color:RGBA(53,122,180,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(53,122,180,var(--tblr-link-underline-opacity, 1))!important}.link-indigo{color:RGBA(var(--tblr-indigo-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-indigo-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-indigo:hover,.link-indigo:focus{color:RGBA(53,79,188,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(53,79,188,var(--tblr-link-underline-opacity, 1))!important}.link-purple{color:RGBA(var(--tblr-purple-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-purple-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-purple:hover,.link-purple:focus{color:RGBA(139,50,161,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(139,50,161,var(--tblr-link-underline-opacity, 1))!important}.link-pink{color:RGBA(var(--tblr-pink-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-pink-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-pink:hover,.link-pink:focus{color:RGBA(171,41,86,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(171,41,86,var(--tblr-link-underline-opacity, 1))!important}.link-red{color:RGBA(var(--tblr-red-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-red-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-red:hover,.link-red:focus{color:RGBA(171,46,46,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(171,46,46,var(--tblr-link-underline-opacity, 1))!important}.link-orange{color:RGBA(var(--tblr-orange-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-orange-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-orange:hover,.link-orange:focus{color:RGBA(198,82,6,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(198,82,6,var(--tblr-link-underline-opacity, 1))!important}.link-yellow{color:RGBA(var(--tblr-yellow-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-yellow-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-yellow:hover,.link-yellow:focus{color:RGBA(196,127,0,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(196,127,0,var(--tblr-link-underline-opacity, 1))!important}.link-lime{color:RGBA(var(--tblr-lime-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-lime-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-lime:hover,.link-lime:focus{color:RGBA(93,147,18,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(93,147,18,var(--tblr-link-underline-opacity, 1))!important}.link-green{color:RGBA(var(--tblr-green-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-green-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-green:hover,.link-green:focus{color:RGBA(38,143,54,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(38,143,54,var(--tblr-link-underline-opacity, 1))!important}.link-teal{color:RGBA(var(--tblr-teal-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-teal-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-teal:hover,.link-teal:focus{color:RGBA(10,133,96,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(10,133,96,var(--tblr-link-underline-opacity, 1))!important}.link-cyan{color:RGBA(var(--tblr-cyan-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-cyan-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-cyan:hover,.link-cyan:focus{color:RGBA(18,130,147,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(18,130,147,var(--tblr-link-underline-opacity, 1))!important}.link-x{color:RGBA(var(--tblr-x-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-x-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-x:hover,.link-x:focus{color:RGBA(0,0,0,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(0,0,0,var(--tblr-link-underline-opacity, 1))!important}.link-facebook{color:RGBA(var(--tblr-facebook-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-facebook-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-facebook:hover,.link-facebook:focus{color:RGBA(19,95,194,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(19,95,194,var(--tblr-link-underline-opacity, 1))!important}.link-twitter{color:RGBA(var(--tblr-twitter-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-twitter-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-twitter:hover,.link-twitter:focus{color:RGBA(23,129,194,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(23,129,194,var(--tblr-link-underline-opacity, 1))!important}.link-linkedin{color:RGBA(var(--tblr-linkedin-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-linkedin-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-linkedin:hover,.link-linkedin:focus{color:RGBA(8,82,155,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(8,82,155,var(--tblr-link-underline-opacity, 1))!important}.link-google{color:RGBA(var(--tblr-google-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-google-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-google:hover,.link-google:focus{color:RGBA(176,62,52,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(176,62,52,var(--tblr-link-underline-opacity, 1))!important}.link-youtube{color:RGBA(var(--tblr-youtube-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-youtube-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-youtube:hover,.link-youtube:focus{color:RGBA(204,0,0,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(204,0,0,var(--tblr-link-underline-opacity, 1))!important}.link-vimeo{color:RGBA(var(--tblr-vimeo-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-vimeo-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-vimeo:hover,.link-vimeo:focus{color:RGBA(21,146,187,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(21,146,187,var(--tblr-link-underline-opacity, 1))!important}.link-dribbble{color:RGBA(var(--tblr-dribbble-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-dribbble-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-dribbble:hover,.link-dribbble:focus{color:RGBA(187,61,110,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(187,61,110,var(--tblr-link-underline-opacity, 1))!important}.link-github{color:RGBA(var(--tblr-github-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-github-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-github:hover,.link-github:focus{color:RGBA(19,18,18,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(19,18,18,var(--tblr-link-underline-opacity, 1))!important}.link-instagram{color:RGBA(var(--tblr-instagram-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-instagram-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-instagram:hover,.link-instagram:focus{color:RGBA(182,51,76,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(182,51,76,var(--tblr-link-underline-opacity, 1))!important}.link-pinterest{color:RGBA(var(--tblr-pinterest-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-pinterest-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-pinterest:hover,.link-pinterest:focus{color:RGBA(151,6,22,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(151,6,22,var(--tblr-link-underline-opacity, 1))!important}.link-vk{color:RGBA(var(--tblr-vk-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-vk-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-vk:hover,.link-vk:focus{color:RGBA(79,105,134,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(79,105,134,var(--tblr-link-underline-opacity, 1))!important}.link-rss{color:RGBA(var(--tblr-rss-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-rss-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-rss:hover,.link-rss:focus{color:RGBA(204,132,0,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(204,132,0,var(--tblr-link-underline-opacity, 1))!important}.link-flickr{color:RGBA(var(--tblr-flickr-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-flickr-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-flickr:hover,.link-flickr:focus{color:RGBA(0,79,176,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(0,79,176,var(--tblr-link-underline-opacity, 1))!important}.link-bitbucket{color:RGBA(var(--tblr-bitbucket-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-bitbucket-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-bitbucket:hover,.link-bitbucket:focus{color:RGBA(0,66,163,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(0,66,163,var(--tblr-link-underline-opacity, 1))!important}.link-tabler{color:RGBA(var(--tblr-tabler-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-tabler-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-tabler:hover,.link-tabler:focus{color:RGBA(5,89,167,var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(5,89,167,var(--tblr-link-underline-opacity, 1))!important}.link-body-emphasis{color:RGBA(var(--tblr-emphasis-color-rgb),var(--tblr-link-opacity, 1))!important;text-decoration-color:RGBA(var(--tblr-emphasis-color-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--tblr-emphasis-color-rgb),var(--tblr-link-opacity, .75))!important;text-decoration-color:RGBA(var(--tblr-emphasis-color-rgb),var(--tblr-link-underline-opacity, .75))!important}.focus-ring:focus{outline:0;box-shadow:var(--tblr-focus-ring-x, 0) var(--tblr-focus-ring-y, 0) var(--tblr-focus-ring-blur, 0) var(--tblr-focus-ring-width) var(--tblr-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--tblr-link-color-rgb),var(--tblr-link-opacity, .5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--tblr-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--tblr-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--tblr-aspect-ratio: 100%}.ratio-2x1{--tblr-aspect-ratio: 50%}.ratio-1x2{--tblr-aspect-ratio: 200%}.ratio-3x1{--tblr-aspect-ratio: 33.3333333333%}.ratio-1x3{--tblr-aspect-ratio: 300%}.ratio-4x3{--tblr-aspect-ratio: 75%}.ratio-3x4{--tblr-aspect-ratio: 133.3333333333%}.ratio-16x9{--tblr-aspect-ratio: 56.25%}.ratio-9x16{--tblr-aspect-ratio: 177.7777777778%}.ratio-21x9{--tblr-aspect-ratio: 42.8571428571%}.ratio-9x21{--tblr-aspect-ratio: 233.3333333333%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--tblr-border-width);min-height:1em;background-color:currentcolor;opacity:.16}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--tblr-box-shadow)!important}.shadow-sm{box-shadow:var(--tblr-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--tblr-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--tblr-focus-ring-color: rgba(var(--tblr-primary-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-secondary{--tblr-focus-ring-color: rgba(var(--tblr-secondary-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-success{--tblr-focus-ring-color: rgba(var(--tblr-success-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-info{--tblr-focus-ring-color: rgba(var(--tblr-info-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-warning{--tblr-focus-ring-color: rgba(var(--tblr-warning-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-danger{--tblr-focus-ring-color: rgba(var(--tblr-danger-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-light{--tblr-focus-ring-color: rgba(var(--tblr-light-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-dark{--tblr-focus-ring-color: rgba(var(--tblr-dark-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-muted{--tblr-focus-ring-color: rgba(var(--tblr-muted-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-blue{--tblr-focus-ring-color: rgba(var(--tblr-blue-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-azure{--tblr-focus-ring-color: rgba(var(--tblr-azure-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-indigo{--tblr-focus-ring-color: rgba(var(--tblr-indigo-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-purple{--tblr-focus-ring-color: rgba(var(--tblr-purple-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-pink{--tblr-focus-ring-color: rgba(var(--tblr-pink-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-red{--tblr-focus-ring-color: rgba(var(--tblr-red-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-orange{--tblr-focus-ring-color: rgba(var(--tblr-orange-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-yellow{--tblr-focus-ring-color: rgba(var(--tblr-yellow-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-lime{--tblr-focus-ring-color: rgba(var(--tblr-lime-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-green{--tblr-focus-ring-color: rgba(var(--tblr-green-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-teal{--tblr-focus-ring-color: rgba(var(--tblr-teal-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-cyan{--tblr-focus-ring-color: rgba(var(--tblr-cyan-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-x{--tblr-focus-ring-color: rgba(var(--tblr-x-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-facebook{--tblr-focus-ring-color: rgba(var(--tblr-facebook-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-twitter{--tblr-focus-ring-color: rgba(var(--tblr-twitter-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-linkedin{--tblr-focus-ring-color: rgba(var(--tblr-linkedin-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-google{--tblr-focus-ring-color: rgba(var(--tblr-google-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-youtube{--tblr-focus-ring-color: rgba(var(--tblr-youtube-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-vimeo{--tblr-focus-ring-color: rgba(var(--tblr-vimeo-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-dribbble{--tblr-focus-ring-color: rgba(var(--tblr-dribbble-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-github{--tblr-focus-ring-color: rgba(var(--tblr-github-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-instagram{--tblr-focus-ring-color: rgba(var(--tblr-instagram-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-pinterest{--tblr-focus-ring-color: rgba(var(--tblr-pinterest-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-vk{--tblr-focus-ring-color: rgba(var(--tblr-vk-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-rss{--tblr-focus-ring-color: rgba(var(--tblr-rss-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-flickr{--tblr-focus-ring-color: rgba(var(--tblr-flickr-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-bitbucket{--tblr-focus-ring-color: rgba(var(--tblr-bitbucket-rgb), var(--tblr-focus-ring-opacity))}.focus-ring-tabler{--tblr-focus-ring-color: rgba(var(--tblr-tabler-rgb), var(--tblr-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-wide{border:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-0{border:0!important}.border-top{border-top:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-top-wide{border-top:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-end-wide{border-right:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-bottom-wide{border-bottom:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-start-wide{border-left:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-start-0{border-left:0!important}.border-primary{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-primary-rgb),var(--tblr-border-opacity))!important}.border-secondary{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-secondary-rgb),var(--tblr-border-opacity))!important}.border-success{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-success-rgb),var(--tblr-border-opacity))!important}.border-info{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-info-rgb),var(--tblr-border-opacity))!important}.border-warning{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-warning-rgb),var(--tblr-border-opacity))!important}.border-danger{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-danger-rgb),var(--tblr-border-opacity))!important}.border-light{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-light-rgb),var(--tblr-border-opacity))!important}.border-dark{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-dark-rgb),var(--tblr-border-opacity))!important}.border-muted{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-muted-rgb),var(--tblr-border-opacity))!important}.border-blue{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-blue-rgb),var(--tblr-border-opacity))!important}.border-azure{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-azure-rgb),var(--tblr-border-opacity))!important}.border-indigo{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-indigo-rgb),var(--tblr-border-opacity))!important}.border-purple{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-purple-rgb),var(--tblr-border-opacity))!important}.border-pink{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-pink-rgb),var(--tblr-border-opacity))!important}.border-red{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-red-rgb),var(--tblr-border-opacity))!important}.border-orange{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-orange-rgb),var(--tblr-border-opacity))!important}.border-yellow{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-yellow-rgb),var(--tblr-border-opacity))!important}.border-lime{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-lime-rgb),var(--tblr-border-opacity))!important}.border-green{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-green-rgb),var(--tblr-border-opacity))!important}.border-teal{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-teal-rgb),var(--tblr-border-opacity))!important}.border-cyan{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-cyan-rgb),var(--tblr-border-opacity))!important}.border-x{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-x-rgb),var(--tblr-border-opacity))!important}.border-facebook{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-facebook-rgb),var(--tblr-border-opacity))!important}.border-twitter{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-twitter-rgb),var(--tblr-border-opacity))!important}.border-linkedin{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-border-opacity))!important}.border-google{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-google-rgb),var(--tblr-border-opacity))!important}.border-youtube{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-youtube-rgb),var(--tblr-border-opacity))!important}.border-vimeo{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-border-opacity))!important}.border-dribbble{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-border-opacity))!important}.border-github{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-github-rgb),var(--tblr-border-opacity))!important}.border-instagram{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-instagram-rgb),var(--tblr-border-opacity))!important}.border-pinterest{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-border-opacity))!important}.border-vk{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-vk-rgb),var(--tblr-border-opacity))!important}.border-rss{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-rss-rgb),var(--tblr-border-opacity))!important}.border-flickr{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-flickr-rgb),var(--tblr-border-opacity))!important}.border-bitbucket{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-border-opacity))!important}.border-tabler{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-tabler-rgb),var(--tblr-border-opacity))!important}.border-black{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-black-rgb),var(--tblr-border-opacity))!important}.border-white{--tblr-border-opacity: 1;border-color:rgba(var(--tblr-white-rgb),var(--tblr-border-opacity))!important}.border-primary-subtle{border-color:var(--tblr-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--tblr-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--tblr-success-border-subtle)!important}.border-info-subtle{border-color:var(--tblr-info-border-subtle)!important}.border-warning-subtle{border-color:var(--tblr-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--tblr-danger-border-subtle)!important}.border-light-subtle{border-color:var(--tblr-light-border-subtle)!important}.border-dark-subtle{border-color:var(--tblr-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--tblr-border-opacity: .1}.border-opacity-25{--tblr-border-opacity: .25}.border-opacity-50{--tblr-border-opacity: .5}.border-opacity-75{--tblr-border-opacity: .75}.border-opacity-100{--tblr-border-opacity: 1}.w-25{width:25%!important}.w-33{width:33.33333%!important}.w-50{width:50%!important}.w-66{width:66.66666%!important}.w-75{width:75%!important}.w-100{width:100%!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-33{height:33.33333%!important}.h-50{height:50%!important}.h-66{height:66.66666%!important}.h-75{height:75%!important}.h-100{height:100%!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:2rem!important}.m-6{margin:3rem!important}.m-7{margin:5rem!important}.m-8{margin:8rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:2rem!important;margin-left:2rem!important}.mx-6{margin-right:3rem!important;margin-left:3rem!important}.mx-7{margin-right:5rem!important;margin-left:5rem!important}.mx-8{margin-right:8rem!important;margin-left:8rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:2rem!important}.mt-6{margin-top:3rem!important}.mt-7{margin-top:5rem!important}.mt-8{margin-top:8rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:2rem!important}.me-6{margin-right:3rem!important}.me-7{margin-right:5rem!important}.me-8{margin-right:8rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:2rem!important}.mb-6{margin-bottom:3rem!important}.mb-7{margin-bottom:5rem!important}.mb-8{margin-bottom:8rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:2rem!important}.ms-6{margin-left:3rem!important}.ms-7{margin-left:5rem!important}.ms-8{margin-left:8rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:2rem!important}.p-6{padding:3rem!important}.p-7{padding:5rem!important}.p-8{padding:8rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:2rem!important;padding-left:2rem!important}.px-6{padding-right:3rem!important;padding-left:3rem!important}.px-7{padding-right:5rem!important;padding-left:5rem!important}.px-8{padding-right:8rem!important;padding-left:8rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:2rem!important}.pt-6{padding-top:3rem!important}.pt-7{padding-top:5rem!important}.pt-8{padding-top:8rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:2rem!important}.pe-6{padding-right:3rem!important}.pe-7{padding-right:5rem!important}.pe-8{padding-right:8rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:2rem!important}.pb-6{padding-bottom:3rem!important}.pb-7{padding-bottom:5rem!important}.pb-8{padding-bottom:8rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:2rem!important}.ps-6{padding-left:3rem!important}.ps-7{padding-left:5rem!important}.ps-8{padding-left:8rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:2rem!important}.gap-6{gap:3rem!important}.gap-7{gap:5rem!important}.gap-8{gap:8rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:2rem!important}.row-gap-6{row-gap:3rem!important}.row-gap-7{row-gap:5rem!important}.row-gap-8{row-gap:8rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:2rem!important}.column-gap-6{column-gap:3rem!important}.column-gap-7{column-gap:5rem!important}.column-gap-8{column-gap:8rem!important}.font-monospace{font-family:var(--tblr-font-monospace)!important}.fs-1{font-size:1.5rem!important}.fs-2{font-size:1.25rem!important}.fs-3{font-size:1rem!important}.fs-4{font-size:.875rem!important}.fs-5{font-size:.75rem!important}.fs-6{font-size:.625rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold,.fw-bold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.1428571429!important}.lh-base{line-height:1.4285714286!important}.lh-lg{line-height:1.7142857143!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-muted{--tblr-text-opacity: 1;color:var(--tblr-secondary-color)!important}.text-black{--tblr-text-opacity: 1;color:rgba(var(--tblr-black-rgb),var(--tblr-text-opacity))!important}.text-white{--tblr-text-opacity: 1;color:rgba(var(--tblr-white-rgb),var(--tblr-text-opacity))!important}.text-body{--tblr-text-opacity: 1;color:rgba(var(--tblr-body-color-rgb),var(--tblr-text-opacity))!important}.text-black-50{--tblr-text-opacity: 1;color:#00000080!important}.text-white-50{--tblr-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--tblr-text-opacity: 1;color:var(--tblr-secondary-color)!important}.text-body-tertiary{--tblr-text-opacity: 1;color:var(--tblr-tertiary-color)!important}.text-body-emphasis{--tblr-text-opacity: 1;color:var(--tblr-emphasis-color)!important}.text-reset{--tblr-text-opacity: 1;color:inherit!important}.text-opacity-25{--tblr-text-opacity: .25}.text-opacity-50{--tblr-text-opacity: .5}.text-opacity-75{--tblr-text-opacity: .75}.text-opacity-100{--tblr-text-opacity: 1}.text-primary-emphasis{color:var(--tblr-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--tblr-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--tblr-success-text-emphasis)!important}.text-info-emphasis{color:var(--tblr-info-text-emphasis)!important}.text-warning-emphasis{color:var(--tblr-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--tblr-danger-text-emphasis)!important}.text-light-emphasis{color:var(--tblr-light-text-emphasis)!important}.text-dark-emphasis{color:var(--tblr-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--tblr-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--tblr-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--tblr-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--tblr-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--tblr-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-primary-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-secondary{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-secondary-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-success{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-success-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-info{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-info-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-warning{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-warning-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-danger{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-danger-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-light{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-light-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-dark{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-dark-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-muted{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-muted-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-blue{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-blue-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-azure{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-azure-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-indigo{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-indigo-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-purple{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-purple-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-pink{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-pink-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-red{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-red-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-orange{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-orange-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-yellow{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-yellow-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-lime{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-lime-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-green{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-green-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-teal{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-teal-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-cyan{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-cyan-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-x{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-x-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-facebook{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-facebook-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-twitter{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-twitter-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-linkedin{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-google{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-google-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-youtube{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-youtube-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-vimeo{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-dribbble{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-github{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-github-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-instagram{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-instagram-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-pinterest{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-vk{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-vk-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-rss{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-rss-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-flickr{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-flickr-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-bitbucket{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-link-underline-opacity))!important}.link-underline-tabler{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-tabler-rgb),var(--tblr-link-underline-opacity))!important}.link-underline{--tblr-link-underline-opacity: 1;text-decoration-color:rgba(var(--tblr-link-color-rgb),var(--tblr-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--tblr-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--tblr-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--tblr-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--tblr-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--tblr-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--tblr-link-underline-opacity: 1}.bg-black{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-black-rgb),var(--tblr-bg-opacity))!important}.bg-body{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-body-bg-rgb),var(--tblr-bg-opacity))!important}.bg-transparent{--tblr-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-secondary-bg-rgb),var(--tblr-bg-opacity))!important}.bg-body-tertiary{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-tertiary-bg-rgb),var(--tblr-bg-opacity))!important}.bg-opacity-10{--tblr-bg-opacity: .1}.bg-opacity-25{--tblr-bg-opacity: .25}.bg-opacity-50{--tblr-bg-opacity: .5}.bg-opacity-75{--tblr-bg-opacity: .75}.bg-opacity-100{--tblr-bg-opacity: 1}.bg-primary-subtle{background-color:var(--tblr-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--tblr-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--tblr-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--tblr-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--tblr-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--tblr-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--tblr-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--tblr-dark-bg-subtle)!important}.bg-gradient{background-image:var(--tblr-gradient)!important}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--tblr-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--tblr-border-radius-sm)!important}.rounded-2{border-radius:var(--tblr-border-radius)!important}.rounded-3{border-radius:var(--tblr-border-radius-lg)!important}.rounded-4{border-radius:var(--tblr-border-radius-xl)!important}.rounded-5{border-radius:var(--tblr-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--tblr-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--tblr-border-radius)!important;border-top-right-radius:var(--tblr-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--tblr-border-radius-sm)!important;border-top-right-radius:var(--tblr-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--tblr-border-radius)!important;border-top-right-radius:var(--tblr-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--tblr-border-radius-lg)!important;border-top-right-radius:var(--tblr-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--tblr-border-radius-xl)!important;border-top-right-radius:var(--tblr-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--tblr-border-radius-xxl)!important;border-top-right-radius:var(--tblr-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--tblr-border-radius-pill)!important;border-top-right-radius:var(--tblr-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--tblr-border-radius)!important;border-bottom-right-radius:var(--tblr-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--tblr-border-radius-sm)!important;border-bottom-right-radius:var(--tblr-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--tblr-border-radius)!important;border-bottom-right-radius:var(--tblr-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--tblr-border-radius-lg)!important;border-bottom-right-radius:var(--tblr-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--tblr-border-radius-xl)!important;border-bottom-right-radius:var(--tblr-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--tblr-border-radius-xxl)!important;border-bottom-right-radius:var(--tblr-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--tblr-border-radius-pill)!important;border-bottom-right-radius:var(--tblr-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--tblr-border-radius)!important;border-bottom-left-radius:var(--tblr-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--tblr-border-radius-sm)!important;border-bottom-left-radius:var(--tblr-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--tblr-border-radius)!important;border-bottom-left-radius:var(--tblr-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--tblr-border-radius-lg)!important;border-bottom-left-radius:var(--tblr-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--tblr-border-radius-xl)!important;border-bottom-left-radius:var(--tblr-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--tblr-border-radius-xxl)!important;border-bottom-left-radius:var(--tblr-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--tblr-border-radius-pill)!important;border-bottom-left-radius:var(--tblr-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--tblr-border-radius)!important;border-top-left-radius:var(--tblr-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--tblr-border-radius-sm)!important;border-top-left-radius:var(--tblr-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--tblr-border-radius)!important;border-top-left-radius:var(--tblr-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--tblr-border-radius-lg)!important;border-top-left-radius:var(--tblr-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--tblr-border-radius-xl)!important;border-top-left-radius:var(--tblr-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--tblr-border-radius-xxl)!important;border-top-left-radius:var(--tblr-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--tblr-border-radius-pill)!important;border-top-left-radius:var(--tblr-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}.object-contain{object-fit:contain!important}.object-cover{object-fit:cover!important}.object-fill{object-fit:fill!important}.object-scale-down{object-fit:scale-down!important}.object-none{object-fit:none!important}.tracking-tight{letter-spacing:-.05em!important}.tracking-normal{letter-spacing:0!important}.tracking-wide{letter-spacing:.05em!important}.cursor-auto{cursor:auto!important}.cursor-pointer{cursor:pointer!important}.cursor-move{cursor:move!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-zoom-in{cursor:zoom-in!important}.cursor-zoom-out{cursor:zoom-out!important}.cursor-default{cursor:default!important}.cursor-none{cursor:none!important}.cursor-help{cursor:help!important}.cursor-progress{cursor:progress!important}.cursor-wait{cursor:wait!important}.cursor-text{cursor:text!important}.cursor-v-text{cursor:vertical-text!important}.cursor-grab{cursor:grab!important}.cursor-grabbing{cursor:grabbing!important}.border-x{border-left:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important;border-right:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-x-wide{border-left:2px var(--tblr-border-style) rgba(4,32,69,.1)!important;border-right:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-x-0{border-left:0!important;border-right:0!important}.border-y{border-top:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important;border-bottom:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-y-wide{border-top:2px var(--tblr-border-style) rgba(4,32,69,.1)!important;border-bottom:2px var(--tblr-border-style) rgba(4,32,69,.1)!important}.border-y-0{border-top:0!important;border-bottom:0!important}.columns-2{columns:2!important}.columns-3{columns:3!important}.columns-4{columns:4!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:2rem!important}.m-sm-6{margin:3rem!important}.m-sm-7{margin:5rem!important}.m-sm-8{margin:8rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:2rem!important;margin-left:2rem!important}.mx-sm-6{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-7{margin-right:5rem!important;margin-left:5rem!important}.mx-sm-8{margin-right:8rem!important;margin-left:8rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-sm-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-sm-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:2rem!important}.mt-sm-6{margin-top:3rem!important}.mt-sm-7{margin-top:5rem!important}.mt-sm-8{margin-top:8rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:2rem!important}.me-sm-6{margin-right:3rem!important}.me-sm-7{margin-right:5rem!important}.me-sm-8{margin-right:8rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:2rem!important}.mb-sm-6{margin-bottom:3rem!important}.mb-sm-7{margin-bottom:5rem!important}.mb-sm-8{margin-bottom:8rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:2rem!important}.ms-sm-6{margin-left:3rem!important}.ms-sm-7{margin-left:5rem!important}.ms-sm-8{margin-left:8rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:2rem!important}.p-sm-6{padding:3rem!important}.p-sm-7{padding:5rem!important}.p-sm-8{padding:8rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:2rem!important;padding-left:2rem!important}.px-sm-6{padding-right:3rem!important;padding-left:3rem!important}.px-sm-7{padding-right:5rem!important;padding-left:5rem!important}.px-sm-8{padding-right:8rem!important;padding-left:8rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-sm-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-sm-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-sm-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:2rem!important}.pt-sm-6{padding-top:3rem!important}.pt-sm-7{padding-top:5rem!important}.pt-sm-8{padding-top:8rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:2rem!important}.pe-sm-6{padding-right:3rem!important}.pe-sm-7{padding-right:5rem!important}.pe-sm-8{padding-right:8rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:2rem!important}.pb-sm-6{padding-bottom:3rem!important}.pb-sm-7{padding-bottom:5rem!important}.pb-sm-8{padding-bottom:8rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:2rem!important}.ps-sm-6{padding-left:3rem!important}.ps-sm-7{padding-left:5rem!important}.ps-sm-8{padding-left:8rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:2rem!important}.gap-sm-6{gap:3rem!important}.gap-sm-7{gap:5rem!important}.gap-sm-8{gap:8rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:2rem!important}.row-gap-sm-6{row-gap:3rem!important}.row-gap-sm-7{row-gap:5rem!important}.row-gap-sm-8{row-gap:8rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:2rem!important}.column-gap-sm-6{column-gap:3rem!important}.column-gap-sm-7{column-gap:5rem!important}.column-gap-sm-8{column-gap:8rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}.columns-sm-2{columns:2!important}.columns-sm-3{columns:3!important}.columns-sm-4{columns:4!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:2rem!important}.m-md-6{margin:3rem!important}.m-md-7{margin:5rem!important}.m-md-8{margin:8rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:2rem!important;margin-left:2rem!important}.mx-md-6{margin-right:3rem!important;margin-left:3rem!important}.mx-md-7{margin-right:5rem!important;margin-left:5rem!important}.mx-md-8{margin-right:8rem!important;margin-left:8rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-md-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-md-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:2rem!important}.mt-md-6{margin-top:3rem!important}.mt-md-7{margin-top:5rem!important}.mt-md-8{margin-top:8rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:2rem!important}.me-md-6{margin-right:3rem!important}.me-md-7{margin-right:5rem!important}.me-md-8{margin-right:8rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:2rem!important}.mb-md-6{margin-bottom:3rem!important}.mb-md-7{margin-bottom:5rem!important}.mb-md-8{margin-bottom:8rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:2rem!important}.ms-md-6{margin-left:3rem!important}.ms-md-7{margin-left:5rem!important}.ms-md-8{margin-left:8rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:2rem!important}.p-md-6{padding:3rem!important}.p-md-7{padding:5rem!important}.p-md-8{padding:8rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:2rem!important;padding-left:2rem!important}.px-md-6{padding-right:3rem!important;padding-left:3rem!important}.px-md-7{padding-right:5rem!important;padding-left:5rem!important}.px-md-8{padding-right:8rem!important;padding-left:8rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-md-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-md-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-md-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:2rem!important}.pt-md-6{padding-top:3rem!important}.pt-md-7{padding-top:5rem!important}.pt-md-8{padding-top:8rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:2rem!important}.pe-md-6{padding-right:3rem!important}.pe-md-7{padding-right:5rem!important}.pe-md-8{padding-right:8rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:2rem!important}.pb-md-6{padding-bottom:3rem!important}.pb-md-7{padding-bottom:5rem!important}.pb-md-8{padding-bottom:8rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:2rem!important}.ps-md-6{padding-left:3rem!important}.ps-md-7{padding-left:5rem!important}.ps-md-8{padding-left:8rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:2rem!important}.gap-md-6{gap:3rem!important}.gap-md-7{gap:5rem!important}.gap-md-8{gap:8rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:2rem!important}.row-gap-md-6{row-gap:3rem!important}.row-gap-md-7{row-gap:5rem!important}.row-gap-md-8{row-gap:8rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:2rem!important}.column-gap-md-6{column-gap:3rem!important}.column-gap-md-7{column-gap:5rem!important}.column-gap-md-8{column-gap:8rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}.columns-md-2{columns:2!important}.columns-md-3{columns:3!important}.columns-md-4{columns:4!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:2rem!important}.m-lg-6{margin:3rem!important}.m-lg-7{margin:5rem!important}.m-lg-8{margin:8rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:2rem!important;margin-left:2rem!important}.mx-lg-6{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-7{margin-right:5rem!important;margin-left:5rem!important}.mx-lg-8{margin-right:8rem!important;margin-left:8rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-lg-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-lg-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:2rem!important}.mt-lg-6{margin-top:3rem!important}.mt-lg-7{margin-top:5rem!important}.mt-lg-8{margin-top:8rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:2rem!important}.me-lg-6{margin-right:3rem!important}.me-lg-7{margin-right:5rem!important}.me-lg-8{margin-right:8rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:2rem!important}.mb-lg-6{margin-bottom:3rem!important}.mb-lg-7{margin-bottom:5rem!important}.mb-lg-8{margin-bottom:8rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:2rem!important}.ms-lg-6{margin-left:3rem!important}.ms-lg-7{margin-left:5rem!important}.ms-lg-8{margin-left:8rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:2rem!important}.p-lg-6{padding:3rem!important}.p-lg-7{padding:5rem!important}.p-lg-8{padding:8rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:2rem!important;padding-left:2rem!important}.px-lg-6{padding-right:3rem!important;padding-left:3rem!important}.px-lg-7{padding-right:5rem!important;padding-left:5rem!important}.px-lg-8{padding-right:8rem!important;padding-left:8rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-lg-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-lg-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-lg-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:2rem!important}.pt-lg-6{padding-top:3rem!important}.pt-lg-7{padding-top:5rem!important}.pt-lg-8{padding-top:8rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:2rem!important}.pe-lg-6{padding-right:3rem!important}.pe-lg-7{padding-right:5rem!important}.pe-lg-8{padding-right:8rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:2rem!important}.pb-lg-6{padding-bottom:3rem!important}.pb-lg-7{padding-bottom:5rem!important}.pb-lg-8{padding-bottom:8rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:2rem!important}.ps-lg-6{padding-left:3rem!important}.ps-lg-7{padding-left:5rem!important}.ps-lg-8{padding-left:8rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:2rem!important}.gap-lg-6{gap:3rem!important}.gap-lg-7{gap:5rem!important}.gap-lg-8{gap:8rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:2rem!important}.row-gap-lg-6{row-gap:3rem!important}.row-gap-lg-7{row-gap:5rem!important}.row-gap-lg-8{row-gap:8rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:2rem!important}.column-gap-lg-6{column-gap:3rem!important}.column-gap-lg-7{column-gap:5rem!important}.column-gap-lg-8{column-gap:8rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}.columns-lg-2{columns:2!important}.columns-lg-3{columns:3!important}.columns-lg-4{columns:4!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:2rem!important}.m-xl-6{margin:3rem!important}.m-xl-7{margin:5rem!important}.m-xl-8{margin:8rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:2rem!important;margin-left:2rem!important}.mx-xl-6{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-7{margin-right:5rem!important;margin-left:5rem!important}.mx-xl-8{margin-right:8rem!important;margin-left:8rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-xl-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-xl-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:2rem!important}.mt-xl-6{margin-top:3rem!important}.mt-xl-7{margin-top:5rem!important}.mt-xl-8{margin-top:8rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:2rem!important}.me-xl-6{margin-right:3rem!important}.me-xl-7{margin-right:5rem!important}.me-xl-8{margin-right:8rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:2rem!important}.mb-xl-6{margin-bottom:3rem!important}.mb-xl-7{margin-bottom:5rem!important}.mb-xl-8{margin-bottom:8rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:2rem!important}.ms-xl-6{margin-left:3rem!important}.ms-xl-7{margin-left:5rem!important}.ms-xl-8{margin-left:8rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:2rem!important}.p-xl-6{padding:3rem!important}.p-xl-7{padding:5rem!important}.p-xl-8{padding:8rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:2rem!important;padding-left:2rem!important}.px-xl-6{padding-right:3rem!important;padding-left:3rem!important}.px-xl-7{padding-right:5rem!important;padding-left:5rem!important}.px-xl-8{padding-right:8rem!important;padding-left:8rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-xl-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-xl-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-xl-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:2rem!important}.pt-xl-6{padding-top:3rem!important}.pt-xl-7{padding-top:5rem!important}.pt-xl-8{padding-top:8rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:2rem!important}.pe-xl-6{padding-right:3rem!important}.pe-xl-7{padding-right:5rem!important}.pe-xl-8{padding-right:8rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:2rem!important}.pb-xl-6{padding-bottom:3rem!important}.pb-xl-7{padding-bottom:5rem!important}.pb-xl-8{padding-bottom:8rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:2rem!important}.ps-xl-6{padding-left:3rem!important}.ps-xl-7{padding-left:5rem!important}.ps-xl-8{padding-left:8rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:2rem!important}.gap-xl-6{gap:3rem!important}.gap-xl-7{gap:5rem!important}.gap-xl-8{gap:8rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:2rem!important}.row-gap-xl-6{row-gap:3rem!important}.row-gap-xl-7{row-gap:5rem!important}.row-gap-xl-8{row-gap:8rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:2rem!important}.column-gap-xl-6{column-gap:3rem!important}.column-gap-xl-7{column-gap:5rem!important}.column-gap-xl-8{column-gap:8rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}.columns-xl-2{columns:2!important}.columns-xl-3{columns:3!important}.columns-xl-4{columns:4!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:2rem!important}.m-xxl-6{margin:3rem!important}.m-xxl-7{margin:5rem!important}.m-xxl-8{margin:8rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:2rem!important;margin-left:2rem!important}.mx-xxl-6{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-7{margin-right:5rem!important;margin-left:5rem!important}.mx-xxl-8{margin-right:8rem!important;margin-left:8rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:2rem!important;margin-bottom:2rem!important}.my-xxl-6{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-7{margin-top:5rem!important;margin-bottom:5rem!important}.my-xxl-8{margin-top:8rem!important;margin-bottom:8rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:2rem!important}.mt-xxl-6{margin-top:3rem!important}.mt-xxl-7{margin-top:5rem!important}.mt-xxl-8{margin-top:8rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:2rem!important}.me-xxl-6{margin-right:3rem!important}.me-xxl-7{margin-right:5rem!important}.me-xxl-8{margin-right:8rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:2rem!important}.mb-xxl-6{margin-bottom:3rem!important}.mb-xxl-7{margin-bottom:5rem!important}.mb-xxl-8{margin-bottom:8rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:2rem!important}.ms-xxl-6{margin-left:3rem!important}.ms-xxl-7{margin-left:5rem!important}.ms-xxl-8{margin-left:8rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:2rem!important}.p-xxl-6{padding:3rem!important}.p-xxl-7{padding:5rem!important}.p-xxl-8{padding:8rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:2rem!important;padding-left:2rem!important}.px-xxl-6{padding-right:3rem!important;padding-left:3rem!important}.px-xxl-7{padding-right:5rem!important;padding-left:5rem!important}.px-xxl-8{padding-right:8rem!important;padding-left:8rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:2rem!important;padding-bottom:2rem!important}.py-xxl-6{padding-top:3rem!important;padding-bottom:3rem!important}.py-xxl-7{padding-top:5rem!important;padding-bottom:5rem!important}.py-xxl-8{padding-top:8rem!important;padding-bottom:8rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:2rem!important}.pt-xxl-6{padding-top:3rem!important}.pt-xxl-7{padding-top:5rem!important}.pt-xxl-8{padding-top:8rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:2rem!important}.pe-xxl-6{padding-right:3rem!important}.pe-xxl-7{padding-right:5rem!important}.pe-xxl-8{padding-right:8rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:2rem!important}.pb-xxl-6{padding-bottom:3rem!important}.pb-xxl-7{padding-bottom:5rem!important}.pb-xxl-8{padding-bottom:8rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:2rem!important}.ps-xxl-6{padding-left:3rem!important}.ps-xxl-7{padding-left:5rem!important}.ps-xxl-8{padding-left:8rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:2rem!important}.gap-xxl-6{gap:3rem!important}.gap-xxl-7{gap:5rem!important}.gap-xxl-8{gap:8rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:2rem!important}.row-gap-xxl-6{row-gap:3rem!important}.row-gap-xxl-7{row-gap:5rem!important}.row-gap-xxl-8{row-gap:8rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:2rem!important}.column-gap-xxl-6{column-gap:3rem!important}.column-gap-xxl-7{column-gap:5rem!important}.column-gap-xxl-8{column-gap:8rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}.columns-xxl-2{columns:2!important}.columns-xxl-3{columns:3!important}.columns-xxl-4{columns:4!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root,:host{font-size:16px;height:100%}:root,:host,[data-bs-theme=light]{--tblr-primary: #00857D;--tblr-primary-rgb: 0, 133, 125;--tblr-primary-fg: var(--tblr-light);--tblr-primary-darken: #007871;--tblr-primary-lt: #e6f3f2;--tblr-primary-lt-rgb: 230, 243, 242;--tblr-secondary: #6c7a91;--tblr-secondary-rgb: 108, 122, 145;--tblr-secondary-fg: var(--tblr-light);--tblr-secondary-darken: #616e83;--tblr-secondary-lt: #f0f2f4;--tblr-secondary-lt-rgb: 240, 242, 244;--tblr-success: #2fb344;--tblr-success-rgb: 47, 179, 68;--tblr-success-fg: var(--tblr-light);--tblr-success-darken: #2aa13d;--tblr-success-lt: #eaf7ec;--tblr-success-lt-rgb: 234, 247, 236;--tblr-info: #4299e1;--tblr-info-rgb: 66, 153, 225;--tblr-info-fg: var(--tblr-light);--tblr-info-darken: #3b8acb;--tblr-info-lt: #ecf5fc;--tblr-info-lt-rgb: 236, 245, 252;--tblr-warning: #f76707;--tblr-warning-rgb: 247, 103, 7;--tblr-warning-fg: var(--tblr-light);--tblr-warning-darken: #de5d06;--tblr-warning-lt: #fef0e6;--tblr-warning-lt-rgb: 254, 240, 230;--tblr-danger: #d63939;--tblr-danger-rgb: 214, 57, 57;--tblr-danger-fg: var(--tblr-light);--tblr-danger-darken: #c13333;--tblr-danger-lt: #fbebeb;--tblr-danger-lt-rgb: 251, 235, 235;--tblr-light: #f6f8fb;--tblr-light-rgb: 246, 248, 251;--tblr-light-fg: var(--tblr-dark);--tblr-light-darken: #dddfe2;--tblr-light-lt: #fefeff;--tblr-light-lt-rgb: 254, 254, 255;--tblr-dark: #182433;--tblr-dark-rgb: 24, 36, 51;--tblr-dark-fg: var(--tblr-light);--tblr-dark-darken: #16202e;--tblr-dark-lt: #e8e9eb;--tblr-dark-lt-rgb: 232, 233, 235;--tblr-muted: #6c7a91;--tblr-muted-rgb: 108, 122, 145;--tblr-muted-fg: var(--tblr-light);--tblr-muted-darken: #616e83;--tblr-muted-lt: #f0f2f4;--tblr-muted-lt-rgb: 240, 242, 244;--tblr-blue: #066fd1;--tblr-blue-rgb: 6, 111, 209;--tblr-blue-fg: var(--tblr-light);--tblr-blue-darken: #0564bc;--tblr-blue-lt: #e6f1fa;--tblr-blue-lt-rgb: 230, 241, 250;--tblr-azure: #4299e1;--tblr-azure-rgb: 66, 153, 225;--tblr-azure-fg: var(--tblr-light);--tblr-azure-darken: #3b8acb;--tblr-azure-lt: #ecf5fc;--tblr-azure-lt-rgb: 236, 245, 252;--tblr-indigo: #4263eb;--tblr-indigo-rgb: 66, 99, 235;--tblr-indigo-fg: var(--tblr-light);--tblr-indigo-darken: #3b59d4;--tblr-indigo-lt: #eceffd;--tblr-indigo-lt-rgb: 236, 239, 253;--tblr-purple: #ae3ec9;--tblr-purple-rgb: 174, 62, 201;--tblr-purple-fg: var(--tblr-light);--tblr-purple-darken: #9d38b5;--tblr-purple-lt: #f7ecfa;--tblr-purple-lt-rgb: 247, 236, 250;--tblr-pink: #d6336c;--tblr-pink-rgb: 214, 51, 108;--tblr-pink-fg: var(--tblr-light);--tblr-pink-darken: #c12e61;--tblr-pink-lt: #fbebf0;--tblr-pink-lt-rgb: 251, 235, 240;--tblr-red: #d63939;--tblr-red-rgb: 214, 57, 57;--tblr-red-fg: var(--tblr-light);--tblr-red-darken: #c13333;--tblr-red-lt: #fbebeb;--tblr-red-lt-rgb: 251, 235, 235;--tblr-orange: #f76707;--tblr-orange-rgb: 247, 103, 7;--tblr-orange-fg: var(--tblr-light);--tblr-orange-darken: #de5d06;--tblr-orange-lt: #fef0e6;--tblr-orange-lt-rgb: 254, 240, 230;--tblr-yellow: #f59f00;--tblr-yellow-rgb: 245, 159, 0;--tblr-yellow-fg: var(--tblr-light);--tblr-yellow-darken: #dd8f00;--tblr-yellow-lt: #fef5e6;--tblr-yellow-lt-rgb: 254, 245, 230;--tblr-lime: #74b816;--tblr-lime-rgb: 116, 184, 22;--tblr-lime-fg: var(--tblr-light);--tblr-lime-darken: #68a614;--tblr-lime-lt: #f1f8e8;--tblr-lime-lt-rgb: 241, 248, 232;--tblr-green: #2fb344;--tblr-green-rgb: 47, 179, 68;--tblr-green-fg: var(--tblr-light);--tblr-green-darken: #2aa13d;--tblr-green-lt: #eaf7ec;--tblr-green-lt-rgb: 234, 247, 236;--tblr-teal: #0ca678;--tblr-teal-rgb: 12, 166, 120;--tblr-teal-fg: var(--tblr-light);--tblr-teal-darken: #0b956c;--tblr-teal-lt: #e7f6f2;--tblr-teal-lt-rgb: 231, 246, 242;--tblr-cyan: #17a2b8;--tblr-cyan-rgb: 23, 162, 184;--tblr-cyan-fg: var(--tblr-light);--tblr-cyan-darken: #1592a6;--tblr-cyan-lt: #e8f6f8;--tblr-cyan-lt-rgb: 232, 246, 248;--tblr-x: #000000;--tblr-x-rgb: 0, 0, 0;--tblr-x-fg: var(--tblr-light);--tblr-x-darken: black;--tblr-x-lt: #e6e6e6;--tblr-x-lt-rgb: 230, 230, 230;--tblr-facebook: #1877f2;--tblr-facebook-rgb: 24, 119, 242;--tblr-facebook-fg: var(--tblr-light);--tblr-facebook-darken: #166bda;--tblr-facebook-lt: #e8f1fe;--tblr-facebook-lt-rgb: 232, 241, 254;--tblr-twitter: #1da1f2;--tblr-twitter-rgb: 29, 161, 242;--tblr-twitter-fg: var(--tblr-light);--tblr-twitter-darken: #1a91da;--tblr-twitter-lt: #e8f6fe;--tblr-twitter-lt-rgb: 232, 246, 254;--tblr-linkedin: #0a66c2;--tblr-linkedin-rgb: 10, 102, 194;--tblr-linkedin-fg: var(--tblr-light);--tblr-linkedin-darken: #095caf;--tblr-linkedin-lt: #e7f0f9;--tblr-linkedin-lt-rgb: 231, 240, 249;--tblr-google: #dc4e41;--tblr-google-rgb: 220, 78, 65;--tblr-google-fg: var(--tblr-light);--tblr-google-darken: #c6463b;--tblr-google-lt: #fcedec;--tblr-google-lt-rgb: 252, 237, 236;--tblr-youtube: #ff0000;--tblr-youtube-rgb: 255, 0, 0;--tblr-youtube-fg: var(--tblr-light);--tblr-youtube-darken: #e60000;--tblr-youtube-lt: #ffe6e6;--tblr-youtube-lt-rgb: 255, 230, 230;--tblr-vimeo: #1ab7ea;--tblr-vimeo-rgb: 26, 183, 234;--tblr-vimeo-fg: var(--tblr-light);--tblr-vimeo-darken: #17a5d3;--tblr-vimeo-lt: #e8f8fd;--tblr-vimeo-lt-rgb: 232, 248, 253;--tblr-dribbble: #ea4c89;--tblr-dribbble-rgb: 234, 76, 137;--tblr-dribbble-fg: var(--tblr-light);--tblr-dribbble-darken: #d3447b;--tblr-dribbble-lt: #fdedf3;--tblr-dribbble-lt-rgb: 253, 237, 243;--tblr-github: #181717;--tblr-github-rgb: 24, 23, 23;--tblr-github-fg: var(--tblr-light);--tblr-github-darken: #161515;--tblr-github-lt: #e8e8e8;--tblr-github-lt-rgb: 232, 232, 232;--tblr-instagram: #e4405f;--tblr-instagram-rgb: 228, 64, 95;--tblr-instagram-fg: var(--tblr-light);--tblr-instagram-darken: #cd3a56;--tblr-instagram-lt: #fcecef;--tblr-instagram-lt-rgb: 252, 236, 239;--tblr-pinterest: #bd081c;--tblr-pinterest-rgb: 189, 8, 28;--tblr-pinterest-fg: var(--tblr-light);--tblr-pinterest-darken: #aa0719;--tblr-pinterest-lt: #f8e6e8;--tblr-pinterest-lt-rgb: 248, 230, 232;--tblr-vk: #6383a8;--tblr-vk-rgb: 99, 131, 168;--tblr-vk-fg: var(--tblr-light);--tblr-vk-darken: #597697;--tblr-vk-lt: #eff3f6;--tblr-vk-lt-rgb: 239, 243, 246;--tblr-rss: #ffa500;--tblr-rss-rgb: 255, 165, 0;--tblr-rss-fg: var(--tblr-light);--tblr-rss-darken: #e69500;--tblr-rss-lt: #fff6e6;--tblr-rss-lt-rgb: 255, 246, 230;--tblr-flickr: #0063dc;--tblr-flickr-rgb: 0, 99, 220;--tblr-flickr-fg: var(--tblr-light);--tblr-flickr-darken: #0059c6;--tblr-flickr-lt: #e6effc;--tblr-flickr-lt-rgb: 230, 239, 252;--tblr-bitbucket: #0052cc;--tblr-bitbucket-rgb: 0, 82, 204;--tblr-bitbucket-fg: var(--tblr-light);--tblr-bitbucket-darken: #004ab8;--tblr-bitbucket-lt: #e6eefa;--tblr-bitbucket-lt-rgb: 230, 238, 250;--tblr-tabler: #066fd1;--tblr-tabler-rgb: 6, 111, 209;--tblr-tabler-fg: var(--tblr-light);--tblr-tabler-darken: #0564bc;--tblr-tabler-lt: #e6f1fa;--tblr-tabler-lt-rgb: 230, 241, 250;--tblr-gray-50: #f6f8fb;--tblr-gray-50-rgb: 246, 248, 251;--tblr-gray-50-fg: var(--tblr-dark);--tblr-gray-50-darken: #dddfe2;--tblr-gray-50-lt: #fefeff;--tblr-gray-50-lt-rgb: 254, 254, 255;--tblr-gray-100: #eef3f6;--tblr-gray-100-rgb: 238, 243, 246;--tblr-gray-100-fg: var(--tblr-dark);--tblr-gray-100-darken: #d6dbdd;--tblr-gray-100-lt: #fdfefe;--tblr-gray-100-lt-rgb: 253, 254, 254;--tblr-gray-200: #dce1e7;--tblr-gray-200-rgb: 220, 225, 231;--tblr-gray-200-fg: var(--tblr-dark);--tblr-gray-200-darken: #c6cbd0;--tblr-gray-200-lt: #fcfcfd;--tblr-gray-200-lt-rgb: 252, 252, 253;--tblr-gray-300: #b8c4d4;--tblr-gray-300-rgb: 184, 196, 212;--tblr-gray-300-fg: var(--tblr-light);--tblr-gray-300-darken: #a6b0bf;--tblr-gray-300-lt: #f8f9fb;--tblr-gray-300-lt-rgb: 248, 249, 251;--tblr-gray-400: #8a97ab;--tblr-gray-400-rgb: 138, 151, 171;--tblr-gray-400-fg: var(--tblr-light);--tblr-gray-400-darken: #7c889a;--tblr-gray-400-lt: #f3f5f7;--tblr-gray-400-lt-rgb: 243, 245, 247;--tblr-gray-500: #6c7a91;--tblr-gray-500-rgb: 108, 122, 145;--tblr-gray-500-fg: var(--tblr-light);--tblr-gray-500-darken: #616e83;--tblr-gray-500-lt: #f0f2f4;--tblr-gray-500-lt-rgb: 240, 242, 244;--tblr-gray-600: #49566c;--tblr-gray-600-rgb: 73, 86, 108;--tblr-gray-600-fg: var(--tblr-light);--tblr-gray-600-darken: #424d61;--tblr-gray-600-lt: #edeef0;--tblr-gray-600-lt-rgb: 237, 238, 240;--tblr-gray-700: #3a4859;--tblr-gray-700-rgb: 58, 72, 89;--tblr-gray-700-fg: var(--tblr-light);--tblr-gray-700-darken: #344150;--tblr-gray-700-lt: #ebedee;--tblr-gray-700-lt-rgb: 235, 237, 238;--tblr-gray-800: #182433;--tblr-gray-800-rgb: 24, 36, 51;--tblr-gray-800-fg: var(--tblr-light);--tblr-gray-800-darken: #16202e;--tblr-gray-800-lt: #e8e9eb;--tblr-gray-800-lt-rgb: 232, 233, 235;--tblr-gray-900: #040a11;--tblr-gray-900-rgb: 4, 10, 17;--tblr-gray-900-fg: var(--tblr-light);--tblr-gray-900-darken: #04090f;--tblr-gray-900-lt: #e6e7e7;--tblr-gray-900-lt-rgb: 230, 231, 231;--tblr-spacer-0: 0;--tblr-spacer-1: .25rem;--tblr-spacer-2: .5rem;--tblr-spacer-3: 1rem;--tblr-spacer-4: 1.5rem;--tblr-spacer-5: 2rem;--tblr-spacer-6: 3rem;--tblr-spacer-7: 5rem;--tblr-spacer-8: 8rem;--tblr-spacer: 1rem;--tblr-bg-surface: var(--tblr-white);--tblr-bg-surface-secondary: var(--tblr-gray-100);--tblr-bg-surface-tertiary: var(--tblr-gray-50);--tblr-bg-surface-dark: var(--tblr-dark);--tblr-bg-forms: var(--tblr-bg-surface);--tblr-border-color: #dce1e7;--tblr-border-color-translucent: rgba(4, 32, 69, .1);--tblr-border-dark-color: #8a97ab;--tblr-border-dark-color-translucent: rgba(4, 32, 69, .27);--tblr-border-active-color: #aab2bf;--tblr-icon-color: var(--tblr-gray-400);--tblr-active-bg: rgba(var(--tblr-primary-rgb), .04);--tblr-disabled-bg: var(--tblr-bg-surface-secondary);--tblr-disabled-color: var(--tblr-gray-300);--tblr-code-color: var(--tblr-gray-600);--tblr-code-bg: var(--tblr-bg-surface-secondary);--tblr-dark-mode-border-color: #25384f;--tblr-dark-mode-border-color-translucent: rgba(72, 110, 149, .14);--tblr-dark-mode-border-active-color: #2c415d;--tblr-dark-mode-border-dark-color: #1f2e41;--tblr-page-padding: var(--tblr-spacer-3);--tblr-page-padding-y: var(--tblr-spacer-4);--tblr-font-weight-light: 300;--tblr-font-weight-normal: 400;--tblr-font-weight-medium: 500;--tblr-font-weight-bold: 600;--tblr-font-weight-headings: var(--tblr-font-weight-bold);--tblr-font-size-h1: 1.5rem;--tblr-font-size-h2: 1.25rem;--tblr-font-size-h3: 1rem;--tblr-font-size-h4: .875rem;--tblr-font-size-h5: .75rem;--tblr-font-size-h6: .625rem;--tblr-line-height-h1: 2rem;--tblr-line-height-h2: 1.75rem;--tblr-line-height-h3: 1.5rem;--tblr-line-height-h4: 1.25rem;--tblr-line-height-h5: 1rem;--tblr-line-height-h6: 1rem;--tblr-box-shadow: rgba(var(--tblr-body-color-rgb), .04) 0 2px 4px 0;--tblr-box-shadow-border: inset 0 0 0 1px var(--tblr-border-color-translucent);--tblr-box-shadow-transparent: 0 0 0 0 transparent;--tblr-box-shadow-input: 0 1px 1px rgba(var(--tblr-body-color-rgb), .06);--tblr-box-shadow-card: 0 0 4px rgba(var(--tblr-body-color-rgb), .04);--tblr-box-shadow-card-hover: rgba(var(--tblr-body-color-rgb), .16) 0 2px 16px 0;--tblr-box-shadow-dropdown: 0 16px 24px 2px rgba(0, 0, 0, .07), 0 6px 30px 5px rgba(0, 0, 0, .06), 0 8px 10px -5px rgba(0, 0, 0, .1)}@media (max-width: 991.98px){:root,:host,[data-bs-theme=light]{--tblr-page-padding: var(--tblr-spacer-2)}}@keyframes pulse{0%{opacity:1;transform:scale3d(.8,.8,.8)}50%{transform:scaleZ(1);opacity:1}to{opacity:1;transform:scale3d(.8,.8,.8)}}@keyframes tada{0%{transform:scaleZ(1)}10%,5%{transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-5deg)}15%,25%,35%,45%{transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,5deg)}20%,30%,40%{transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-5deg)}50%{transform:scaleZ(1)}}@keyframes rotate-360{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes blink{0%{opacity:0}50%{opacity:1}to{opacity:0}}body{letter-spacing:0;touch-action:manipulation;text-rendering:optimizeLegibility;font-feature-settings:"liga" 0;position:relative;min-height:100%;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media print{body{background:transparent}}*{scrollbar-color:rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.16)}*::-webkit-scrollbar{width:1rem;height:1rem;transition:background .3s}@media (prefers-reduced-motion: reduce){*::-webkit-scrollbar{transition:none}}*::-webkit-scrollbar-thumb{border-radius:1rem;border:5px solid transparent;box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.16)}*::-webkit-scrollbar-track{background:transparent}*:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.32)}*::-webkit-scrollbar-corner{background:transparent}.layout-fluid .container,.layout-fluid [class^=container-],.layout-fluid [class*=" container-"]{max-width:100%}.layout-boxed{--tblr-theme-boxed-border-radius: 0;--tblr-theme-boxed-width: 1320px}@media (min-width: 768px){.layout-boxed{background:#182433 linear-gradient(to right,rgba(255,255,255,.1),transparent) fixed;padding:1rem;--tblr-theme-boxed-border-radius: 4px}}.layout-boxed .page{margin:0 auto;max-width:var(--tblr-theme-boxed-width);border-radius:var(--tblr-theme-boxed-border-radius);color:var(--tblr-body-color)}@media (min-width: 768px){.layout-boxed .page{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);background:var(--tblr-body-bg)}}.layout-boxed .page>.navbar:first-child{border-top-left-radius:var(--tblr-theme-boxed-border-radius);border-top-right-radius:var(--tblr-theme-boxed-border-radius)}.navbar{--tblr-navbar-bg: var(--tblr-bg-surface);--tblr-navbar-border-width: var(--tblr-border-width);--tblr-navbar-active-border-color: #00857D;--tblr-navbar-active-bg: rgba(0, 0, 0, .06);--tblr-navbar-color: var(--tblr-body-color);--tblr-navbar-border-color: var(--tblr-border-color);align-items:stretch;min-height:3.5rem;box-shadow:inset 0 calc(-1 * var(--tblr-navbar-border-width)) 0 0 var(--tblr-navbar-border-color);background:var(--tblr-navbar-bg);color:var(--tblr-navbar-color)}.navbar-collapse .navbar{flex-grow:1}.navbar.collapsing{min-height:0}.navbar .dropdown-menu{position:absolute;z-index:1030}.navbar .navbar-nav{min-height:3rem}.navbar .navbar-nav .nav-link{position:relative;min-width:2rem;min-height:2rem;justify-content:center;border-radius:var(--tblr-border-radius)}.navbar .navbar-nav .nav-link .badge{position:absolute;top:.375rem;right:.375rem;transform:translate(50%,-50%)}.navbar-nav{margin:0;padding:0}@media (max-width: 575.98px){.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-sm .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 576px){.navbar-expand-sm .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-sm .nav-item.active{position:relative}.navbar-expand-sm .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-sm.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-sm.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-sm.navbar-vertical~.navbar,.navbar-expand-sm.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-sm.navbar-vertical.navbar-right~.navbar,.navbar-expand-sm.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}@media (max-width: 767.98px){.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-md .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 768px){.navbar-expand-md .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-md .nav-item.active{position:relative}.navbar-expand-md .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-md.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-md.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-md.navbar-vertical~.navbar,.navbar-expand-md.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-md.navbar-vertical.navbar-right~.navbar,.navbar-expand-md.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}@media (max-width: 991.98px){.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-lg .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 992px){.navbar-expand-lg .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-lg .nav-item.active{position:relative}.navbar-expand-lg .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-lg.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-lg.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-lg.navbar-vertical~.navbar,.navbar-expand-lg.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-lg.navbar-vertical.navbar-right~.navbar,.navbar-expand-lg.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}@media (max-width: 1199.98px){.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-xl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 1200px){.navbar-expand-xl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xl .nav-item.active{position:relative}.navbar-expand-xl .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-xl.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-xl.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-xl.navbar-vertical~.navbar,.navbar-expand-xl.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-xl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xl.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}@media (max-width: 1399.98px){.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 1400px){.navbar-expand-xxl .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand-xxl .nav-item.active{position:relative}.navbar-expand-xxl .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand-xxl.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-xxl.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand-xxl.navbar-vertical~.navbar,.navbar-expand-xxl.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand-xxl.navbar-vertical.navbar-right~.navbar,.navbar-expand-xxl.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}}.navbar-expand .navbar-collapse{flex-direction:column}.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-expand .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}.navbar-expand .navbar-collapse{width:auto;flex:1 1 auto}.navbar-expand .nav-item.active{position:relative}.navbar-expand .nav-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;border:0 var(--tblr-border-style) var(--tblr-navbar-active-border-color);border-bottom-width:2px}.navbar-expand.navbar-vertical{box-shadow:inset calc(-1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand.navbar-vertical.navbar-right{box-shadow:inset calc(1 * var(--tblr-navbar-border-width)) 0 0 0 var(--tblr-navbar-border-color)}.navbar-expand.navbar-vertical~.navbar,.navbar-expand.navbar-vertical~.page-wrapper{margin-left:18rem}.navbar-expand.navbar-vertical.navbar-right~.navbar,.navbar-expand.navbar-vertical.navbar-right~.page-wrapper{margin-left:0;margin-right:18rem}.navbar-brand{display:inline-flex;align-items:center;font-weight:var(--tblr-font-weight-bold);margin:0;line-height:1;gap:.5rem}.navbar-brand-image{height:2rem;width:auto}.navbar-toggler{border:0;width:2rem;height:2rem;position:relative;display:flex;align-items:center;justify-content:center}.navbar-toggler-icon{height:2px;width:1.25em;background:currentColor;border-radius:10px;transition:top .2s .2s,bottom .2s .2s,transform .2s,opacity 0s .2s;position:relative}@media (prefers-reduced-motion: reduce){.navbar-toggler-icon{transition:none}}.navbar-toggler-icon:before,.navbar-toggler-icon:after{content:"";display:block;height:inherit;width:inherit;border-radius:inherit;background:inherit;position:absolute;left:0;transition:inherit}@media (prefers-reduced-motion: reduce){.navbar-toggler-icon:before,.navbar-toggler-icon:after{transition:none}}.navbar-toggler-icon:before{top:-.45em}.navbar-toggler-icon:after{bottom:-.45em}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transform:rotate(45deg);transition:top .3s,bottom .3s,transform .3s .3s,opacity 0s .3s}@media (prefers-reduced-motion: reduce){.navbar-toggler[aria-expanded=true] .navbar-toggler-icon{transition:none}}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:before{top:0;transform:rotate(-90deg)}.navbar-toggler[aria-expanded=true] .navbar-toggler-icon:after{bottom:0;opacity:0}.navbar-transparent{--tblr-navbar-border-color: transparent !important;background:transparent!important}.navbar-nav{align-items:stretch}.navbar-nav .nav-item{display:flex;flex-direction:column;justify-content:center}.navbar-side{margin:0;display:flex;flex-direction:row;align-items:center;justify-content:space-around}@media (min-width: 576px){.navbar-vertical.navbar-expand-sm{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 576px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-sm{transition:none}}@media (min-width: 576px){.navbar-vertical.navbar-expand-sm.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-sm .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-sm .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-sm .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-sm .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-sm>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-sm~.page{padding-left:18rem}.navbar-vertical.navbar-expand-sm~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-sm.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-sm .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-sm .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-sm .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 768px){.navbar-vertical.navbar-expand-md{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 768px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-md{transition:none}}@media (min-width: 768px){.navbar-vertical.navbar-expand-md.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-md .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-md .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-md .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-md .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-md>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-md~.page{padding-left:18rem}.navbar-vertical.navbar-expand-md~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-md.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-md .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-md .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-md .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-md .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 992px){.navbar-vertical.navbar-expand-lg{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 992px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-lg{transition:none}}@media (min-width: 992px){.navbar-vertical.navbar-expand-lg.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-lg .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-lg .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-lg .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-lg .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-lg>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-lg~.page{padding-left:18rem}.navbar-vertical.navbar-expand-lg~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-lg.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-lg .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-lg .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 1200px){.navbar-vertical.navbar-expand-xl{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 1200px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-xl{transition:none}}@media (min-width: 1200px){.navbar-vertical.navbar-expand-xl.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-xl .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-xl .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-xl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-xl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-xl~.page{padding-left:18rem}.navbar-vertical.navbar-expand-xl~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-xl.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-xl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-xl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-xl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}@media (min-width: 1400px){.navbar-vertical.navbar-expand-xxl{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}}@media (min-width: 1400px) and (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand-xxl{transition:none}}@media (min-width: 1400px){.navbar-vertical.navbar-expand-xxl.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand-xxl .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand-xxl .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand-xxl .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand-xxl .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand-xxl>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand-xxl~.page{padding-left:18rem}.navbar-vertical.navbar-expand-xxl~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand-xxl.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand-xxl .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand-xxl .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand-xxl .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}}.navbar-vertical.navbar-expand{width:18rem;position:fixed;top:0;left:0;bottom:0;z-index:1030;align-items:flex-start;transition:transform .3s;overflow-y:scroll;padding:0}@media (prefers-reduced-motion: reduce){.navbar-vertical.navbar-expand{transition:none}}.navbar-vertical.navbar-expand.navbar-right{left:auto;right:0}.navbar-vertical.navbar-expand .navbar-brand{padding:.75rem 0;justify-content:center}.navbar-vertical.navbar-expand .navbar-collapse{align-items:stretch}.navbar-vertical.navbar-expand .navbar-nav{flex-direction:column;flex-grow:1;min-height:auto}.navbar-vertical.navbar-expand .navbar-nav .nav-link{padding-top:.5rem;padding-bottom:.5rem}.navbar-vertical.navbar-expand>[class^=container]{flex-direction:column;align-items:stretch;min-height:100%;justify-content:flex-start;padding:0}.navbar-vertical.navbar-expand~.page{padding-left:18rem}.navbar-vertical.navbar-expand~.page [class^=container]{padding-left:1.5rem;padding-right:1.5rem}.navbar-vertical.navbar-expand.navbar-right~.page{padding-left:0;padding-right:18rem}.navbar-vertical.navbar-expand .navbar-collapse{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse [class^=container]{flex-direction:column;align-items:stretch;padding:0}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav{margin-left:0;margin-right:0}.navbar-vertical.navbar-expand .navbar-collapse .navbar-nav .nav-link{padding:.5rem calc(calc(var(--tblr-page-padding) * 2) / 2);justify-content:flex-start}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu-columns{flex-direction:column}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu{padding:0;background:transparent;position:static;color:inherit;box-shadow:none;border:none;min-width:0;margin:0}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item{min-width:0;display:flex;width:auto;padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);color:inherit}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item.disabled{color:var(--tblr-gray-300);pointer-events:none;background-color:transparent}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item.active,.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-item:active{background:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 3.25rem)}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-menu .dropdown-menu .dropdown-menu .dropdown-item{padding-left:calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 4.75rem)}.navbar-vertical.navbar-expand .navbar-collapse .dropdown-toggle:after{margin-left:auto}.navbar-vertical.navbar-expand .navbar-collapse .nav-item.active:after{border-bottom-width:0;border-left-width:3px;right:auto;top:0;bottom:0}.navbar-overlap:after{content:"";height:9rem;position:absolute;top:100%;left:0;right:0;background:inherit;z-index:-1;box-shadow:inherit}.page{display:flex;flex-direction:column;position:relative;min-height:100%}.page-center{justify-content:center}.page-wrapper{flex:1;display:flex;flex-direction:column}@media print{.page-wrapper{margin:0!important}}.page-wrapper-full .page-body:first-child{margin:0;border-top:0}.page-body{margin-top:var(--tblr-page-padding-y);margin-bottom:var(--tblr-page-padding-y);display:flex;flex-direction:column;flex:1}.page-body-card{background:var(--tblr-bg-surface);border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);padding:var(--tblr-page-padding) 0;margin-bottom:0;flex:1}.page-body~.page-body-card{margin-top:0}.page-cover{background:no-repeat center/cover;min-height:9rem}@media (min-width: 768px){.page-cover{min-height:12rem}}@media (min-width: 992px){.page-cover{min-height:15rem}}.page-cover-overlay{position:relative}.page-cover-overlay:after{content:"";position:absolute;inset:0;background-image:linear-gradient(180deg,#0000,#0009)}.page-header{display:flex;flex-wrap:wrap;min-height:2.25rem;flex-direction:column;justify-content:center}.page-wrapper .page-header{margin:var(--tblr-page-padding-y) 0 0}.page-header-border{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);padding:var(--tblr-page-padding-y) 0;margin:0!important;background-color:var(--tblr-bg-surface)}.page-pretitle{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary)}.page-title{margin:0;font-size:var(--tblr-font-size-h2);line-height:var(--tblr-line-height-h2);font-weight:var(--tblr-font-weight-headings);color:inherit;display:flex;align-items:center}.page-title svg{width:1.5rem;height:1.5rem;margin-right:.25rem}.page-title-lg{font-size:1.5rem;line-height:2rem}.page-subtitle{margin-top:.25rem;color:var(--tblr-secondary)}.page-cover{--tblr-page-cover-blur: 20px;--tblr-page-cover-padding: 1rem;min-height:6rem;padding:var(--tblr-page-cover-padding) 0;position:relative;overflow:hidden}.page-cover-img{position:absolute;top:calc(-2 * var(--tblr-page-cover-blur, 0));left:calc(-2 * var(--tblr-page-cover-blur, 0));right:calc(-2 * var(--tblr-page-cover-blur, 0));bottom:calc(-2 * var(--tblr-page-cover-blur, 0));pointer-events:none;filter:blur(var(--tblr-page-cover-blur));object-fit:cover;background-size:cover;background-position:center;z-index:-1}.page-tabs{margin-top:.5rem;position:relative}.page-header-tabs .nav-bordered{border:0}.page-header-tabs+.page-body-card{margin-top:0}.footer{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);background-color:#fff;padding:2rem 0;color:var(--tblr-gray-500);margin-top:auto}.footer-transparent{background-color:transparent;border-top:0}body:not(.theme-dark):not([data-bs-theme=dark]) .hide-theme-light{display:none!important}body:not(.theme-dark):not([data-bs-theme=dark]) .img-dark{display:none!important}body.theme-dark .hide-theme-dark,body[data-bs-theme=dark] .hide-theme-dark,body.theme-dark .img-light,body[data-bs-theme=dark] .img-light{display:none!important}[data-bs-theme=dark],body[data-bs-theme=dark] [data-bs-theme=light]{--tblr-body-color: #dce1e7;--tblr-body-color-rgb: 220, 225, 231;--tblr-muted: #49566c;--tblr-body-bg: #151f2c;--tblr-body-bg-rgb: 21, 31, 44;--tblr-emphasis-color: #ffffff;--tblr-emphasis-color-rgb: 255, 255, 255;--tblr-bg-forms: #151f2c;--tblr-bg-surface: #182433;--tblr-bg-surface-dark: #151f2c;--tblr-bg-surface-secondary: #1b293a;--tblr-bg-surface-tertiary: #151f2c;--tblr-link-color: #00aea3;--tblr-link-hover-color: #00857D;--tblr-active-bg: #1b293a;--tblr-disabled-color: var(--tblr-gray-700);--tblr-border-color: var(--tblr-dark-mode-border-color);--tblr-border-color-translucent: var( --tblr-dark-mode-border-color-translucent );--tblr-border-dark-color: var(--tblr-dark-mode-border-dark-color);--tblr-border-active-color: var( --tblr-dark-mode-border-active-color );--tblr-btn-color: #151f2c;--tblr-code-color: var(--tblr-body-color);--tblr-code-bg: #1f2e41;--tblr-primary-lt: #162e3a;--tblr-primary-lt-rgb: 22, 46, 58;--tblr-secondary-lt: #202d3c;--tblr-secondary-lt-rgb: 32, 45, 60;--tblr-success-lt: #1a3235;--tblr-success-lt-rgb: 26, 50, 53;--tblr-info-lt: #1c3044;--tblr-info-lt-rgb: 28, 48, 68;--tblr-warning-lt: #2e2b2f;--tblr-warning-lt-rgb: 46, 43, 47;--tblr-danger-lt: #2b2634;--tblr-danger-lt-rgb: 43, 38, 52;--tblr-light-lt: #2e3947;--tblr-light-lt-rgb: 46, 57, 71;--tblr-dark-lt: #182433;--tblr-dark-lt-rgb: 24, 36, 51;--tblr-muted-lt: #202d3c;--tblr-muted-lt-rgb: 32, 45, 60;--tblr-blue-lt: #162c43;--tblr-blue-lt-rgb: 22, 44, 67;--tblr-azure-lt: #1c3044;--tblr-azure-lt-rgb: 28, 48, 68;--tblr-indigo-lt: #1c2a45;--tblr-indigo-lt-rgb: 28, 42, 69;--tblr-purple-lt: #272742;--tblr-purple-lt-rgb: 39, 39, 66;--tblr-pink-lt: #2b2639;--tblr-pink-lt-rgb: 43, 38, 57;--tblr-red-lt: #2b2634;--tblr-red-lt-rgb: 43, 38, 52;--tblr-orange-lt: #2e2b2f;--tblr-orange-lt-rgb: 46, 43, 47;--tblr-yellow-lt: #2e302e;--tblr-yellow-lt-rgb: 46, 48, 46;--tblr-lime-lt: #213330;--tblr-lime-lt-rgb: 33, 51, 48;--tblr-green-lt: #1a3235;--tblr-green-lt-rgb: 26, 50, 53;--tblr-teal-lt: #17313a;--tblr-teal-lt-rgb: 23, 49, 58;--tblr-cyan-lt: #183140;--tblr-cyan-lt-rgb: 24, 49, 64;--tblr-x-lt: #16202e;--tblr-x-lt-rgb: 22, 32, 46;--tblr-facebook-lt: #182c46;--tblr-facebook-lt-rgb: 24, 44, 70;--tblr-twitter-lt: #193146;--tblr-twitter-lt-rgb: 25, 49, 70;--tblr-linkedin-lt: #172b41;--tblr-linkedin-lt-rgb: 23, 43, 65;--tblr-google-lt: #2c2834;--tblr-google-lt-rgb: 44, 40, 52;--tblr-youtube-lt: #2f202e;--tblr-youtube-lt-rgb: 47, 32, 46;--tblr-vimeo-lt: #183345;--tblr-vimeo-lt-rgb: 24, 51, 69;--tblr-dribbble-lt: #2d283c;--tblr-dribbble-lt-rgb: 45, 40, 60;--tblr-github-lt: #182330;--tblr-github-lt-rgb: 24, 35, 48;--tblr-instagram-lt: #2c2737;--tblr-instagram-lt-rgb: 44, 39, 55;--tblr-pinterest-lt: #292131;--tblr-pinterest-lt-rgb: 41, 33, 49;--tblr-vk-lt: #202e3f;--tblr-vk-lt-rgb: 32, 46, 63;--tblr-rss-lt: #2f312e;--tblr-rss-lt-rgb: 47, 49, 46;--tblr-flickr-lt: #162a44;--tblr-flickr-lt-rgb: 22, 42, 68;--tblr-bitbucket-lt: #162942;--tblr-bitbucket-lt-rgb: 22, 41, 66;--tblr-tabler-lt: #162c43;--tblr-tabler-lt-rgb: 22, 44, 67}[data-bs-theme=dark] .navbar-brand-autodark .navbar-brand-image{filter:brightness(0) invert(1)}.accordion{--tblr-accordion-color: var(--tblr-body-color)}.accordion-button:focus:not(:focus-visible){outline:none;box-shadow:none}.accordion-button:after{opacity:.7}.accordion-button:not(.collapsed){font-weight:var(--tblr-font-weight-bold);border-bottom-color:transparent;box-shadow:none}.accordion-button:not(.collapsed):after{opacity:1}.alert{--tblr-alert-color: var(--tblr-secondary);--tblr-alert-bg: var(--tblr-bg-surface);border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);border-left:.25rem var(--tblr-border-style) var(--tblr-alert-color);box-shadow:#1824330a 0 2px 4px}.alert>:last-child{margin-bottom:0}.alert-important{border-color:transparent;background:var(--tblr-alert-color);color:#fff}.alert-important .alert-icon,.alert-important .alert-link,.alert-important .alert-title,.alert-important .alert-link:hover{color:inherit}.alert-important .btn-close{filter:var(--tblr-btn-close-white-filter)}.alert-link,.alert-link:hover{color:var(--tblr-alert-color)}.alert-primary{--tblr-alert-color: var(--tblr-primary)}.alert-secondary{--tblr-alert-color: var(--tblr-secondary)}.alert-success{--tblr-alert-color: var(--tblr-success)}.alert-info{--tblr-alert-color: var(--tblr-info)}.alert-warning{--tblr-alert-color: var(--tblr-warning)}.alert-danger{--tblr-alert-color: var(--tblr-danger)}.alert-light{--tblr-alert-color: var(--tblr-light)}.alert-dark{--tblr-alert-color: var(--tblr-dark)}.alert-muted{--tblr-alert-color: var(--tblr-muted)}.alert-blue{--tblr-alert-color: var(--tblr-blue)}.alert-azure{--tblr-alert-color: var(--tblr-azure)}.alert-indigo{--tblr-alert-color: var(--tblr-indigo)}.alert-purple{--tblr-alert-color: var(--tblr-purple)}.alert-pink{--tblr-alert-color: var(--tblr-pink)}.alert-red{--tblr-alert-color: var(--tblr-red)}.alert-orange{--tblr-alert-color: var(--tblr-orange)}.alert-yellow{--tblr-alert-color: var(--tblr-yellow)}.alert-lime{--tblr-alert-color: var(--tblr-lime)}.alert-green{--tblr-alert-color: var(--tblr-green)}.alert-teal{--tblr-alert-color: var(--tblr-teal)}.alert-cyan{--tblr-alert-color: var(--tblr-cyan)}.alert-x{--tblr-alert-color: var(--tblr-x)}.alert-facebook{--tblr-alert-color: var(--tblr-facebook)}.alert-twitter{--tblr-alert-color: var(--tblr-twitter)}.alert-linkedin{--tblr-alert-color: var(--tblr-linkedin)}.alert-google{--tblr-alert-color: var(--tblr-google)}.alert-youtube{--tblr-alert-color: var(--tblr-youtube)}.alert-vimeo{--tblr-alert-color: var(--tblr-vimeo)}.alert-dribbble{--tblr-alert-color: var(--tblr-dribbble)}.alert-github{--tblr-alert-color: var(--tblr-github)}.alert-instagram{--tblr-alert-color: var(--tblr-instagram)}.alert-pinterest{--tblr-alert-color: var(--tblr-pinterest)}.alert-vk{--tblr-alert-color: var(--tblr-vk)}.alert-rss{--tblr-alert-color: var(--tblr-rss)}.alert-flickr{--tblr-alert-color: var(--tblr-flickr)}.alert-bitbucket{--tblr-alert-color: var(--tblr-bitbucket)}.alert-tabler{--tblr-alert-color: var(--tblr-tabler)}.alert-icon{color:var(--tblr-alert-color);width:1.5rem!important;height:1.5rem!important;margin:-.125rem 1rem -.125rem 0}.alert-title{font-size:.875rem;line-height:1.25rem;font-weight:var(--tblr-font-weight-bold);margin-bottom:.25rem;color:var(--tblr-alert-color)}.avatar{--tblr-avatar-size: 2.5rem;--tblr-avatar-status-size: .75rem;--tblr-avatar-bg: var(--tblr-bg-surface-secondary);--tblr-avatar-box-shadow: var(--tblr-box-shadow-border);--tblr-avatar-font-size: 1rem;--tblr-avatar-icon-size: 1.5rem;position:relative;width:var(--tblr-avatar-size);height:var(--tblr-avatar-size);font-size:var(--tblr-avatar-font-size);font-weight:var(--tblr-font-weight-medium);line-height:1;display:inline-flex;align-items:center;justify-content:center;color:var(--tblr-secondary);text-align:center;text-transform:uppercase;vertical-align:bottom;user-select:none;background:var(--tblr-avatar-bg) no-repeat center/cover;border-radius:var(--tblr-border-radius);box-shadow:var(--tblr-avatar-box-shadow)}.avatar .icon{width:var(--tblr-avatar-icon-size);height:var(--tblr-avatar-icon-size)}.avatar .badge{position:absolute;right:0;bottom:0;border-radius:100rem;box-shadow:0 0 0 calc(var(--tblr-avatar-status-size) / 4) var(--tblr-bg-surface)}a.avatar{cursor:pointer}.avatar-rounded{border-radius:100rem}.avatar-xxs{--tblr-avatar-size: 1rem;--tblr-avatar-status-size: .25rem;--tblr-avatar-font-size: .5rem;--tblr-avatar-icon-size: .75rem}.avatar-xxs .badge:empty{width:.25rem;height:.25rem}.avatar-xs{--tblr-avatar-size: 1.25rem;--tblr-avatar-status-size: .375rem;--tblr-avatar-font-size: .625rem;--tblr-avatar-icon-size: 1rem}.avatar-xs .badge:empty{width:.375rem;height:.375rem}.avatar-sm{--tblr-avatar-size: 2rem;--tblr-avatar-status-size: .5rem;--tblr-avatar-font-size: .75rem;--tblr-avatar-icon-size: 1.25rem}.avatar-sm .badge:empty{width:.5rem;height:.5rem}.avatar-md{--tblr-avatar-size: 2.5rem;--tblr-avatar-status-size: .75rem;--tblr-avatar-font-size: .875rem;--tblr-avatar-icon-size: 1.5rem}.avatar-md .badge:empty{width:.75rem;height:.75rem}.avatar-lg{--tblr-avatar-size: 3rem;--tblr-avatar-status-size: .75rem;--tblr-avatar-font-size: 1.25rem;--tblr-avatar-icon-size: 2rem}.avatar-lg .badge:empty{width:.75rem;height:.75rem}.avatar-xl{--tblr-avatar-size: 5rem;--tblr-avatar-status-size: 1rem;--tblr-avatar-font-size: 2rem;--tblr-avatar-icon-size: 3rem}.avatar-xl .badge:empty{width:1rem;height:1rem}.avatar-2xl{--tblr-avatar-size: 7rem;--tblr-avatar-status-size: 1rem;--tblr-avatar-font-size: 3rem;--tblr-avatar-icon-size: 5rem}.avatar-2xl .badge:empty{width:1rem;height:1rem}.avatar-list{--tblr-list-gap: .5rem;display:flex;flex-wrap:wrap;gap:var(--tblr-list-gap)}.avatar-list a.avatar:hover{z-index:1}.avatar-list-stacked{display:block;--tblr-list-gap: 0}.avatar-list-stacked .avatar{margin-right:calc(-.5 * var(--tblr-avatar-size))!important;box-shadow:var(--tblr-avatar-box-shadow),0 0 0 2px var(--tblr-card-cap-bg, var(--tblr-card-bg, var(--tblr-bg-surface)))}.avatar-upload{width:4rem;height:4rem;border:var(--tblr-border-width) dashed var(--tblr-border-color);background:var(--tblr-bg-forms);flex-direction:column;transition:color .3s,background-color .3s}@media (prefers-reduced-motion: reduce){.avatar-upload{transition:none}}.avatar-upload svg{width:1.5rem;height:1.5rem;stroke-width:1}.avatar-upload:hover{border-color:var(--tblr-primary);color:var(--tblr-primary);text-decoration:none}.avatar-upload-text{font-size:.625rem;line-height:1;margin-top:.25rem}.avatar-cover{margin-top:calc(-.5 * var(--tblr-avatar-size));box-shadow:0 0 0 .25rem var(--tblr-card-bg, var(--tblr-body-bg))}.badge{justify-content:center;align-items:center;background:var(--tblr-bg-surface-secondary);overflow:hidden;user-select:none;border:var(--tblr-border-width) var(--tblr-border-style) transparent;min-width:1.35714285em;font-weight:var(--tblr-font-weight-bold);letter-spacing:.04em;vertical-align:bottom}a.badge{color:var(--tblr-bg-surface)}.badge .avatar{box-sizing:content-box;width:1.25rem;height:1.25rem;margin:0 .5rem 0 -.5rem}.badge .icon{width:1em;height:1em;font-size:1rem;stroke-width:2}.badge:empty,.badge-empty{display:inline-block;width:.5rem;height:.5rem;min-width:0;min-height:auto;padding:0;border-radius:100rem;vertical-align:baseline}.badge-outline{background-color:transparent;border:var(--tblr-border-width) var(--tblr-border-style) currentColor}.badge-pill{border-radius:100rem}.badges-list{--tblr-list-gap: .5rem;display:flex;flex-wrap:wrap;gap:var(--tblr-list-gap)}.badge-notification{position:absolute!important;top:0!important;right:0!important;transform:translate(50%,-50%);z-index:1}.badge-blink{animation:blink 2s infinite}.breadcrumb{--tblr-breadcrumb-item-active-font-weight: var(--tblr-font-weight-bold);--tblr-breadcrumb-item-disabled-color: var(--tblr-disabled-color);--tblr-breadcrumb-link-color: var(--tblr-link-color);padding:0;margin:0;background:transparent}.breadcrumb a{color:var(--tblr-breadcrumb-link-color)}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-muted{--tblr-breadcrumb-link-color: var(--tblr-secondary)}.breadcrumb-item.active{font-weight:var(--tblr-breadcrumb-item-active-font-weight)}.breadcrumb-item.active a{color:inherit;pointer-events:none}.breadcrumb-item.disabled{color:var(--tblr-breadcrumb-item-disabled-color)}.breadcrumb-item.disabled:before{color:inherit}.breadcrumb-item.disabled a{color:inherit;pointer-events:none}.breadcrumb-dots{--tblr-breadcrumb-divider: "\b7"}.breadcrumb-arrows{--tblr-breadcrumb-divider: "\203a"}.breadcrumb-bullets{--tblr-breadcrumb-divider: "\2022"}.btn{--tblr-btn-icon-size: 1.25rem;--tblr-btn-bg: var(--tblr-bg-surface);--tblr-btn-color: var(--tblr-body-color);--tblr-btn-border-color: var(--tblr-border-color);--tblr-btn-hover-bg: var(--tblr-btn-bg);--tblr-btn-hover-border-color: var(--tblr-border-active-color);--tblr-btn-box-shadow: var(--tblr-box-shadow-input);--tblr-btn-active-color: var(--tblr-primary);--tblr-btn-active-bg: rgba(var(--tblr-primary-rgb), .04);--tblr-btn-active-border-color: var(--tblr-primary);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;box-shadow:var(--tblr-btn-box-shadow)}.btn .icon{width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);min-width:var(--tblr-btn-icon-size);margin:0 calc(var(--tblr-btn-padding-x) / 2) 0 calc(var(--tblr-btn-padding-x) / -4);vertical-align:bottom;color:inherit}.btn .avatar{width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);margin:0 calc(var(--tblr-btn-padding-x) / 2) 0 calc(var(--tblr-btn-padding-x) / -4)}.btn .icon-right{margin:0 calc(var(--tblr-btn-padding-x) / -4) 0 calc(var(--tblr-btn-padding-x) / 2)}.btn .badge{top:auto}.btn-check+.btn:hover{color:var(--tblr-btn-hover-color);background-color:var(--tblr-btn-hover-bg);border-color:var(--tblr-btn-hover-border-color)}.btn-link{color:#009f95;background-color:transparent;border-color:transparent;box-shadow:none}.btn-link .icon{color:inherit}.btn-link:hover{color:#006a64;border-color:transparent}.btn-primary{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-primary-fg);--tblr-btn-bg: var(--tblr-primary);--tblr-btn-hover-color: var(--tblr-primary-fg);--tblr-btn-hover-bg: rgba(var(--tblr-primary-rgb), .8);--tblr-btn-active-color: var(--tblr-primary-fg);--tblr-btn-active-bg: rgba(var(--tblr-primary-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-primary);--tblr-btn-disabled-color: var(--tblr-primary-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-primary{--tblr-btn-color: var(--tblr-primary);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-primary);--tblr-btn-hover-color: var(--tblr-primary-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-primary);--tblr-btn-active-color: var(--tblr-primary-fg);--tblr-btn-active-bg: var(--tblr-primary);--tblr-btn-disabled-color: var(--tblr-primary);--tblr-btn-disabled-border-color: var(--tblr-primary)}.btn-secondary{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-secondary-fg);--tblr-btn-bg: var(--tblr-secondary);--tblr-btn-hover-color: var(--tblr-secondary-fg);--tblr-btn-hover-bg: rgba(var(--tblr-secondary-rgb), .8);--tblr-btn-active-color: var(--tblr-secondary-fg);--tblr-btn-active-bg: rgba(var(--tblr-secondary-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-secondary);--tblr-btn-disabled-color: var(--tblr-secondary-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-secondary{--tblr-btn-color: var(--tblr-secondary);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-secondary);--tblr-btn-hover-color: var(--tblr-secondary-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-secondary);--tblr-btn-active-color: var(--tblr-secondary-fg);--tblr-btn-active-bg: var(--tblr-secondary);--tblr-btn-disabled-color: var(--tblr-secondary);--tblr-btn-disabled-border-color: var(--tblr-secondary)}.btn-success{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-success-fg);--tblr-btn-bg: var(--tblr-success);--tblr-btn-hover-color: var(--tblr-success-fg);--tblr-btn-hover-bg: rgba(var(--tblr-success-rgb), .8);--tblr-btn-active-color: var(--tblr-success-fg);--tblr-btn-active-bg: rgba(var(--tblr-success-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-success);--tblr-btn-disabled-color: var(--tblr-success-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-success{--tblr-btn-color: var(--tblr-success);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-success);--tblr-btn-hover-color: var(--tblr-success-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-success);--tblr-btn-active-color: var(--tblr-success-fg);--tblr-btn-active-bg: var(--tblr-success);--tblr-btn-disabled-color: var(--tblr-success);--tblr-btn-disabled-border-color: var(--tblr-success)}.btn-info{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-info-fg);--tblr-btn-bg: var(--tblr-info);--tblr-btn-hover-color: var(--tblr-info-fg);--tblr-btn-hover-bg: rgba(var(--tblr-info-rgb), .8);--tblr-btn-active-color: var(--tblr-info-fg);--tblr-btn-active-bg: rgba(var(--tblr-info-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-info);--tblr-btn-disabled-color: var(--tblr-info-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-info{--tblr-btn-color: var(--tblr-info);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-info);--tblr-btn-hover-color: var(--tblr-info-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-info);--tblr-btn-active-color: var(--tblr-info-fg);--tblr-btn-active-bg: var(--tblr-info);--tblr-btn-disabled-color: var(--tblr-info);--tblr-btn-disabled-border-color: var(--tblr-info)}.btn-warning{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-warning-fg);--tblr-btn-bg: var(--tblr-warning);--tblr-btn-hover-color: var(--tblr-warning-fg);--tblr-btn-hover-bg: rgba(var(--tblr-warning-rgb), .8);--tblr-btn-active-color: var(--tblr-warning-fg);--tblr-btn-active-bg: rgba(var(--tblr-warning-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-warning);--tblr-btn-disabled-color: var(--tblr-warning-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-warning{--tblr-btn-color: var(--tblr-warning);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-warning);--tblr-btn-hover-color: var(--tblr-warning-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-warning);--tblr-btn-active-color: var(--tblr-warning-fg);--tblr-btn-active-bg: var(--tblr-warning);--tblr-btn-disabled-color: var(--tblr-warning);--tblr-btn-disabled-border-color: var(--tblr-warning)}.btn-danger{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-danger-fg);--tblr-btn-bg: var(--tblr-danger);--tblr-btn-hover-color: var(--tblr-danger-fg);--tblr-btn-hover-bg: rgba(var(--tblr-danger-rgb), .8);--tblr-btn-active-color: var(--tblr-danger-fg);--tblr-btn-active-bg: rgba(var(--tblr-danger-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-danger);--tblr-btn-disabled-color: var(--tblr-danger-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-danger{--tblr-btn-color: var(--tblr-danger);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-danger);--tblr-btn-hover-color: var(--tblr-danger-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-danger);--tblr-btn-active-color: var(--tblr-danger-fg);--tblr-btn-active-bg: var(--tblr-danger);--tblr-btn-disabled-color: var(--tblr-danger);--tblr-btn-disabled-border-color: var(--tblr-danger)}.btn-light{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-light-fg);--tblr-btn-bg: var(--tblr-light);--tblr-btn-hover-color: var(--tblr-light-fg);--tblr-btn-hover-bg: rgba(var(--tblr-light-rgb), .8);--tblr-btn-active-color: var(--tblr-light-fg);--tblr-btn-active-bg: rgba(var(--tblr-light-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-light);--tblr-btn-disabled-color: var(--tblr-light-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-light{--tblr-btn-color: var(--tblr-light);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-light);--tblr-btn-hover-color: var(--tblr-light-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-light);--tblr-btn-active-color: var(--tblr-light-fg);--tblr-btn-active-bg: var(--tblr-light);--tblr-btn-disabled-color: var(--tblr-light);--tblr-btn-disabled-border-color: var(--tblr-light)}.btn-dark{--tblr-btn-border-color: var(--tblr-dark-mode-border-color);--tblr-btn-hover-border-color: var(--tblr-dark-mode-border-active-color);--tblr-btn-active-border-color: var(--tblr-dark-mode-border-active-color);--tblr-btn-color: var(--tblr-dark-fg);--tblr-btn-bg: var(--tblr-dark);--tblr-btn-hover-color: var(--tblr-dark-fg);--tblr-btn-hover-bg: rgba(var(--tblr-dark-rgb), .8);--tblr-btn-active-color: var(--tblr-dark-fg);--tblr-btn-active-bg: rgba(var(--tblr-dark-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-dark);--tblr-btn-disabled-color: var(--tblr-dark-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-dark{--tblr-btn-color: var(--tblr-dark);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-dark);--tblr-btn-hover-color: var(--tblr-dark-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-dark);--tblr-btn-active-color: var(--tblr-dark-fg);--tblr-btn-active-bg: var(--tblr-dark);--tblr-btn-disabled-color: var(--tblr-dark);--tblr-btn-disabled-border-color: var(--tblr-dark)}.btn-muted{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-muted-fg);--tblr-btn-bg: var(--tblr-muted);--tblr-btn-hover-color: var(--tblr-muted-fg);--tblr-btn-hover-bg: rgba(var(--tblr-muted-rgb), .8);--tblr-btn-active-color: var(--tblr-muted-fg);--tblr-btn-active-bg: rgba(var(--tblr-muted-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-muted);--tblr-btn-disabled-color: var(--tblr-muted-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-muted{--tblr-btn-color: var(--tblr-muted);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-muted);--tblr-btn-hover-color: var(--tblr-muted-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-muted);--tblr-btn-active-color: var(--tblr-muted-fg);--tblr-btn-active-bg: var(--tblr-muted);--tblr-btn-disabled-color: var(--tblr-muted);--tblr-btn-disabled-border-color: var(--tblr-muted)}.btn-blue{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-blue-fg);--tblr-btn-bg: var(--tblr-blue);--tblr-btn-hover-color: var(--tblr-blue-fg);--tblr-btn-hover-bg: rgba(var(--tblr-blue-rgb), .8);--tblr-btn-active-color: var(--tblr-blue-fg);--tblr-btn-active-bg: rgba(var(--tblr-blue-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-blue);--tblr-btn-disabled-color: var(--tblr-blue-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-blue{--tblr-btn-color: var(--tblr-blue);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-blue);--tblr-btn-hover-color: var(--tblr-blue-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-blue);--tblr-btn-active-color: var(--tblr-blue-fg);--tblr-btn-active-bg: var(--tblr-blue);--tblr-btn-disabled-color: var(--tblr-blue);--tblr-btn-disabled-border-color: var(--tblr-blue)}.btn-azure{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-azure-fg);--tblr-btn-bg: var(--tblr-azure);--tblr-btn-hover-color: var(--tblr-azure-fg);--tblr-btn-hover-bg: rgba(var(--tblr-azure-rgb), .8);--tblr-btn-active-color: var(--tblr-azure-fg);--tblr-btn-active-bg: rgba(var(--tblr-azure-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-azure);--tblr-btn-disabled-color: var(--tblr-azure-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-azure{--tblr-btn-color: var(--tblr-azure);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-azure);--tblr-btn-hover-color: var(--tblr-azure-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-azure);--tblr-btn-active-color: var(--tblr-azure-fg);--tblr-btn-active-bg: var(--tblr-azure);--tblr-btn-disabled-color: var(--tblr-azure);--tblr-btn-disabled-border-color: var(--tblr-azure)}.btn-indigo{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-indigo-fg);--tblr-btn-bg: var(--tblr-indigo);--tblr-btn-hover-color: var(--tblr-indigo-fg);--tblr-btn-hover-bg: rgba(var(--tblr-indigo-rgb), .8);--tblr-btn-active-color: var(--tblr-indigo-fg);--tblr-btn-active-bg: rgba(var(--tblr-indigo-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-indigo);--tblr-btn-disabled-color: var(--tblr-indigo-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-indigo{--tblr-btn-color: var(--tblr-indigo);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-indigo);--tblr-btn-hover-color: var(--tblr-indigo-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-indigo);--tblr-btn-active-color: var(--tblr-indigo-fg);--tblr-btn-active-bg: var(--tblr-indigo);--tblr-btn-disabled-color: var(--tblr-indigo);--tblr-btn-disabled-border-color: var(--tblr-indigo)}.btn-purple{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-purple-fg);--tblr-btn-bg: var(--tblr-purple);--tblr-btn-hover-color: var(--tblr-purple-fg);--tblr-btn-hover-bg: rgba(var(--tblr-purple-rgb), .8);--tblr-btn-active-color: var(--tblr-purple-fg);--tblr-btn-active-bg: rgba(var(--tblr-purple-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-purple);--tblr-btn-disabled-color: var(--tblr-purple-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-purple{--tblr-btn-color: var(--tblr-purple);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-purple);--tblr-btn-hover-color: var(--tblr-purple-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-purple);--tblr-btn-active-color: var(--tblr-purple-fg);--tblr-btn-active-bg: var(--tblr-purple);--tblr-btn-disabled-color: var(--tblr-purple);--tblr-btn-disabled-border-color: var(--tblr-purple)}.btn-pink{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-pink-fg);--tblr-btn-bg: var(--tblr-pink);--tblr-btn-hover-color: var(--tblr-pink-fg);--tblr-btn-hover-bg: rgba(var(--tblr-pink-rgb), .8);--tblr-btn-active-color: var(--tblr-pink-fg);--tblr-btn-active-bg: rgba(var(--tblr-pink-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-pink);--tblr-btn-disabled-color: var(--tblr-pink-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-pink{--tblr-btn-color: var(--tblr-pink);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-pink);--tblr-btn-hover-color: var(--tblr-pink-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-pink);--tblr-btn-active-color: var(--tblr-pink-fg);--tblr-btn-active-bg: var(--tblr-pink);--tblr-btn-disabled-color: var(--tblr-pink);--tblr-btn-disabled-border-color: var(--tblr-pink)}.btn-red{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-red-fg);--tblr-btn-bg: var(--tblr-red);--tblr-btn-hover-color: var(--tblr-red-fg);--tblr-btn-hover-bg: rgba(var(--tblr-red-rgb), .8);--tblr-btn-active-color: var(--tblr-red-fg);--tblr-btn-active-bg: rgba(var(--tblr-red-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-red);--tblr-btn-disabled-color: var(--tblr-red-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-red{--tblr-btn-color: var(--tblr-red);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-red);--tblr-btn-hover-color: var(--tblr-red-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-red);--tblr-btn-active-color: var(--tblr-red-fg);--tblr-btn-active-bg: var(--tblr-red);--tblr-btn-disabled-color: var(--tblr-red);--tblr-btn-disabled-border-color: var(--tblr-red)}.btn-orange{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-orange-fg);--tblr-btn-bg: var(--tblr-orange);--tblr-btn-hover-color: var(--tblr-orange-fg);--tblr-btn-hover-bg: rgba(var(--tblr-orange-rgb), .8);--tblr-btn-active-color: var(--tblr-orange-fg);--tblr-btn-active-bg: rgba(var(--tblr-orange-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-orange);--tblr-btn-disabled-color: var(--tblr-orange-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-orange{--tblr-btn-color: var(--tblr-orange);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-orange);--tblr-btn-hover-color: var(--tblr-orange-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-orange);--tblr-btn-active-color: var(--tblr-orange-fg);--tblr-btn-active-bg: var(--tblr-orange);--tblr-btn-disabled-color: var(--tblr-orange);--tblr-btn-disabled-border-color: var(--tblr-orange)}.btn-yellow{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-yellow-fg);--tblr-btn-bg: var(--tblr-yellow);--tblr-btn-hover-color: var(--tblr-yellow-fg);--tblr-btn-hover-bg: rgba(var(--tblr-yellow-rgb), .8);--tblr-btn-active-color: var(--tblr-yellow-fg);--tblr-btn-active-bg: rgba(var(--tblr-yellow-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-yellow);--tblr-btn-disabled-color: var(--tblr-yellow-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-yellow{--tblr-btn-color: var(--tblr-yellow);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-yellow);--tblr-btn-hover-color: var(--tblr-yellow-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-yellow);--tblr-btn-active-color: var(--tblr-yellow-fg);--tblr-btn-active-bg: var(--tblr-yellow);--tblr-btn-disabled-color: var(--tblr-yellow);--tblr-btn-disabled-border-color: var(--tblr-yellow)}.btn-lime{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-lime-fg);--tblr-btn-bg: var(--tblr-lime);--tblr-btn-hover-color: var(--tblr-lime-fg);--tblr-btn-hover-bg: rgba(var(--tblr-lime-rgb), .8);--tblr-btn-active-color: var(--tblr-lime-fg);--tblr-btn-active-bg: rgba(var(--tblr-lime-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-lime);--tblr-btn-disabled-color: var(--tblr-lime-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-lime{--tblr-btn-color: var(--tblr-lime);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-lime);--tblr-btn-hover-color: var(--tblr-lime-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-lime);--tblr-btn-active-color: var(--tblr-lime-fg);--tblr-btn-active-bg: var(--tblr-lime);--tblr-btn-disabled-color: var(--tblr-lime);--tblr-btn-disabled-border-color: var(--tblr-lime)}.btn-green{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-green-fg);--tblr-btn-bg: var(--tblr-green);--tblr-btn-hover-color: var(--tblr-green-fg);--tblr-btn-hover-bg: rgba(var(--tblr-green-rgb), .8);--tblr-btn-active-color: var(--tblr-green-fg);--tblr-btn-active-bg: rgba(var(--tblr-green-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-green);--tblr-btn-disabled-color: var(--tblr-green-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-green{--tblr-btn-color: var(--tblr-green);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-green);--tblr-btn-hover-color: var(--tblr-green-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-green);--tblr-btn-active-color: var(--tblr-green-fg);--tblr-btn-active-bg: var(--tblr-green);--tblr-btn-disabled-color: var(--tblr-green);--tblr-btn-disabled-border-color: var(--tblr-green)}.btn-teal{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-teal-fg);--tblr-btn-bg: var(--tblr-teal);--tblr-btn-hover-color: var(--tblr-teal-fg);--tblr-btn-hover-bg: rgba(var(--tblr-teal-rgb), .8);--tblr-btn-active-color: var(--tblr-teal-fg);--tblr-btn-active-bg: rgba(var(--tblr-teal-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-teal);--tblr-btn-disabled-color: var(--tblr-teal-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-teal{--tblr-btn-color: var(--tblr-teal);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-teal);--tblr-btn-hover-color: var(--tblr-teal-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-teal);--tblr-btn-active-color: var(--tblr-teal-fg);--tblr-btn-active-bg: var(--tblr-teal);--tblr-btn-disabled-color: var(--tblr-teal);--tblr-btn-disabled-border-color: var(--tblr-teal)}.btn-cyan{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-cyan-fg);--tblr-btn-bg: var(--tblr-cyan);--tblr-btn-hover-color: var(--tblr-cyan-fg);--tblr-btn-hover-bg: rgba(var(--tblr-cyan-rgb), .8);--tblr-btn-active-color: var(--tblr-cyan-fg);--tblr-btn-active-bg: rgba(var(--tblr-cyan-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-cyan);--tblr-btn-disabled-color: var(--tblr-cyan-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-cyan{--tblr-btn-color: var(--tblr-cyan);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-cyan);--tblr-btn-hover-color: var(--tblr-cyan-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-cyan);--tblr-btn-active-color: var(--tblr-cyan-fg);--tblr-btn-active-bg: var(--tblr-cyan);--tblr-btn-disabled-color: var(--tblr-cyan);--tblr-btn-disabled-border-color: var(--tblr-cyan)}.btn-x{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-x-fg);--tblr-btn-bg: var(--tblr-x);--tblr-btn-hover-color: var(--tblr-x-fg);--tblr-btn-hover-bg: rgba(var(--tblr-x-rgb), .8);--tblr-btn-active-color: var(--tblr-x-fg);--tblr-btn-active-bg: rgba(var(--tblr-x-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-x);--tblr-btn-disabled-color: var(--tblr-x-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-x{--tblr-btn-color: var(--tblr-x);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-x);--tblr-btn-hover-color: var(--tblr-x-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-x);--tblr-btn-active-color: var(--tblr-x-fg);--tblr-btn-active-bg: var(--tblr-x);--tblr-btn-disabled-color: var(--tblr-x);--tblr-btn-disabled-border-color: var(--tblr-x)}.btn-facebook{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-facebook-fg);--tblr-btn-bg: var(--tblr-facebook);--tblr-btn-hover-color: var(--tblr-facebook-fg);--tblr-btn-hover-bg: rgba(var(--tblr-facebook-rgb), .8);--tblr-btn-active-color: var(--tblr-facebook-fg);--tblr-btn-active-bg: rgba(var(--tblr-facebook-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-facebook);--tblr-btn-disabled-color: var(--tblr-facebook-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-facebook{--tblr-btn-color: var(--tblr-facebook);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-facebook);--tblr-btn-hover-color: var(--tblr-facebook-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-facebook);--tblr-btn-active-color: var(--tblr-facebook-fg);--tblr-btn-active-bg: var(--tblr-facebook);--tblr-btn-disabled-color: var(--tblr-facebook);--tblr-btn-disabled-border-color: var(--tblr-facebook)}.btn-twitter{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-twitter-fg);--tblr-btn-bg: var(--tblr-twitter);--tblr-btn-hover-color: var(--tblr-twitter-fg);--tblr-btn-hover-bg: rgba(var(--tblr-twitter-rgb), .8);--tblr-btn-active-color: var(--tblr-twitter-fg);--tblr-btn-active-bg: rgba(var(--tblr-twitter-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-twitter);--tblr-btn-disabled-color: var(--tblr-twitter-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-twitter{--tblr-btn-color: var(--tblr-twitter);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-twitter);--tblr-btn-hover-color: var(--tblr-twitter-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-twitter);--tblr-btn-active-color: var(--tblr-twitter-fg);--tblr-btn-active-bg: var(--tblr-twitter);--tblr-btn-disabled-color: var(--tblr-twitter);--tblr-btn-disabled-border-color: var(--tblr-twitter)}.btn-linkedin{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-linkedin-fg);--tblr-btn-bg: var(--tblr-linkedin);--tblr-btn-hover-color: var(--tblr-linkedin-fg);--tblr-btn-hover-bg: rgba(var(--tblr-linkedin-rgb), .8);--tblr-btn-active-color: var(--tblr-linkedin-fg);--tblr-btn-active-bg: rgba(var(--tblr-linkedin-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-linkedin);--tblr-btn-disabled-color: var(--tblr-linkedin-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-linkedin{--tblr-btn-color: var(--tblr-linkedin);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-linkedin);--tblr-btn-hover-color: var(--tblr-linkedin-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-linkedin);--tblr-btn-active-color: var(--tblr-linkedin-fg);--tblr-btn-active-bg: var(--tblr-linkedin);--tblr-btn-disabled-color: var(--tblr-linkedin);--tblr-btn-disabled-border-color: var(--tblr-linkedin)}.btn-google{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-google-fg);--tblr-btn-bg: var(--tblr-google);--tblr-btn-hover-color: var(--tblr-google-fg);--tblr-btn-hover-bg: rgba(var(--tblr-google-rgb), .8);--tblr-btn-active-color: var(--tblr-google-fg);--tblr-btn-active-bg: rgba(var(--tblr-google-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-google);--tblr-btn-disabled-color: var(--tblr-google-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-google{--tblr-btn-color: var(--tblr-google);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-google);--tblr-btn-hover-color: var(--tblr-google-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-google);--tblr-btn-active-color: var(--tblr-google-fg);--tblr-btn-active-bg: var(--tblr-google);--tblr-btn-disabled-color: var(--tblr-google);--tblr-btn-disabled-border-color: var(--tblr-google)}.btn-youtube{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-youtube-fg);--tblr-btn-bg: var(--tblr-youtube);--tblr-btn-hover-color: var(--tblr-youtube-fg);--tblr-btn-hover-bg: rgba(var(--tblr-youtube-rgb), .8);--tblr-btn-active-color: var(--tblr-youtube-fg);--tblr-btn-active-bg: rgba(var(--tblr-youtube-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-youtube);--tblr-btn-disabled-color: var(--tblr-youtube-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-youtube{--tblr-btn-color: var(--tblr-youtube);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-youtube);--tblr-btn-hover-color: var(--tblr-youtube-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-youtube);--tblr-btn-active-color: var(--tblr-youtube-fg);--tblr-btn-active-bg: var(--tblr-youtube);--tblr-btn-disabled-color: var(--tblr-youtube);--tblr-btn-disabled-border-color: var(--tblr-youtube)}.btn-vimeo{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-vimeo-fg);--tblr-btn-bg: var(--tblr-vimeo);--tblr-btn-hover-color: var(--tblr-vimeo-fg);--tblr-btn-hover-bg: rgba(var(--tblr-vimeo-rgb), .8);--tblr-btn-active-color: var(--tblr-vimeo-fg);--tblr-btn-active-bg: rgba(var(--tblr-vimeo-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-vimeo);--tblr-btn-disabled-color: var(--tblr-vimeo-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-vimeo{--tblr-btn-color: var(--tblr-vimeo);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-vimeo);--tblr-btn-hover-color: var(--tblr-vimeo-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-vimeo);--tblr-btn-active-color: var(--tblr-vimeo-fg);--tblr-btn-active-bg: var(--tblr-vimeo);--tblr-btn-disabled-color: var(--tblr-vimeo);--tblr-btn-disabled-border-color: var(--tblr-vimeo)}.btn-dribbble{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-dribbble-fg);--tblr-btn-bg: var(--tblr-dribbble);--tblr-btn-hover-color: var(--tblr-dribbble-fg);--tblr-btn-hover-bg: rgba(var(--tblr-dribbble-rgb), .8);--tblr-btn-active-color: var(--tblr-dribbble-fg);--tblr-btn-active-bg: rgba(var(--tblr-dribbble-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-dribbble);--tblr-btn-disabled-color: var(--tblr-dribbble-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-dribbble{--tblr-btn-color: var(--tblr-dribbble);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-dribbble);--tblr-btn-hover-color: var(--tblr-dribbble-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-dribbble);--tblr-btn-active-color: var(--tblr-dribbble-fg);--tblr-btn-active-bg: var(--tblr-dribbble);--tblr-btn-disabled-color: var(--tblr-dribbble);--tblr-btn-disabled-border-color: var(--tblr-dribbble)}.btn-github{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-github-fg);--tblr-btn-bg: var(--tblr-github);--tblr-btn-hover-color: var(--tblr-github-fg);--tblr-btn-hover-bg: rgba(var(--tblr-github-rgb), .8);--tblr-btn-active-color: var(--tblr-github-fg);--tblr-btn-active-bg: rgba(var(--tblr-github-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-github);--tblr-btn-disabled-color: var(--tblr-github-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-github{--tblr-btn-color: var(--tblr-github);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-github);--tblr-btn-hover-color: var(--tblr-github-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-github);--tblr-btn-active-color: var(--tblr-github-fg);--tblr-btn-active-bg: var(--tblr-github);--tblr-btn-disabled-color: var(--tblr-github);--tblr-btn-disabled-border-color: var(--tblr-github)}.btn-instagram{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-instagram-fg);--tblr-btn-bg: var(--tblr-instagram);--tblr-btn-hover-color: var(--tblr-instagram-fg);--tblr-btn-hover-bg: rgba(var(--tblr-instagram-rgb), .8);--tblr-btn-active-color: var(--tblr-instagram-fg);--tblr-btn-active-bg: rgba(var(--tblr-instagram-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-instagram);--tblr-btn-disabled-color: var(--tblr-instagram-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-instagram{--tblr-btn-color: var(--tblr-instagram);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-instagram);--tblr-btn-hover-color: var(--tblr-instagram-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-instagram);--tblr-btn-active-color: var(--tblr-instagram-fg);--tblr-btn-active-bg: var(--tblr-instagram);--tblr-btn-disabled-color: var(--tblr-instagram);--tblr-btn-disabled-border-color: var(--tblr-instagram)}.btn-pinterest{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-pinterest-fg);--tblr-btn-bg: var(--tblr-pinterest);--tblr-btn-hover-color: var(--tblr-pinterest-fg);--tblr-btn-hover-bg: rgba(var(--tblr-pinterest-rgb), .8);--tblr-btn-active-color: var(--tblr-pinterest-fg);--tblr-btn-active-bg: rgba(var(--tblr-pinterest-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-pinterest);--tblr-btn-disabled-color: var(--tblr-pinterest-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-pinterest{--tblr-btn-color: var(--tblr-pinterest);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-pinterest);--tblr-btn-hover-color: var(--tblr-pinterest-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-pinterest);--tblr-btn-active-color: var(--tblr-pinterest-fg);--tblr-btn-active-bg: var(--tblr-pinterest);--tblr-btn-disabled-color: var(--tblr-pinterest);--tblr-btn-disabled-border-color: var(--tblr-pinterest)}.btn-vk{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-vk-fg);--tblr-btn-bg: var(--tblr-vk);--tblr-btn-hover-color: var(--tblr-vk-fg);--tblr-btn-hover-bg: rgba(var(--tblr-vk-rgb), .8);--tblr-btn-active-color: var(--tblr-vk-fg);--tblr-btn-active-bg: rgba(var(--tblr-vk-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-vk);--tblr-btn-disabled-color: var(--tblr-vk-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-vk{--tblr-btn-color: var(--tblr-vk);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-vk);--tblr-btn-hover-color: var(--tblr-vk-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-vk);--tblr-btn-active-color: var(--tblr-vk-fg);--tblr-btn-active-bg: var(--tblr-vk);--tblr-btn-disabled-color: var(--tblr-vk);--tblr-btn-disabled-border-color: var(--tblr-vk)}.btn-rss{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-rss-fg);--tblr-btn-bg: var(--tblr-rss);--tblr-btn-hover-color: var(--tblr-rss-fg);--tblr-btn-hover-bg: rgba(var(--tblr-rss-rgb), .8);--tblr-btn-active-color: var(--tblr-rss-fg);--tblr-btn-active-bg: rgba(var(--tblr-rss-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-rss);--tblr-btn-disabled-color: var(--tblr-rss-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-rss{--tblr-btn-color: var(--tblr-rss);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-rss);--tblr-btn-hover-color: var(--tblr-rss-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-rss);--tblr-btn-active-color: var(--tblr-rss-fg);--tblr-btn-active-bg: var(--tblr-rss);--tblr-btn-disabled-color: var(--tblr-rss);--tblr-btn-disabled-border-color: var(--tblr-rss)}.btn-flickr{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-flickr-fg);--tblr-btn-bg: var(--tblr-flickr);--tblr-btn-hover-color: var(--tblr-flickr-fg);--tblr-btn-hover-bg: rgba(var(--tblr-flickr-rgb), .8);--tblr-btn-active-color: var(--tblr-flickr-fg);--tblr-btn-active-bg: rgba(var(--tblr-flickr-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-flickr);--tblr-btn-disabled-color: var(--tblr-flickr-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-flickr{--tblr-btn-color: var(--tblr-flickr);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-flickr);--tblr-btn-hover-color: var(--tblr-flickr-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-flickr);--tblr-btn-active-color: var(--tblr-flickr-fg);--tblr-btn-active-bg: var(--tblr-flickr);--tblr-btn-disabled-color: var(--tblr-flickr);--tblr-btn-disabled-border-color: var(--tblr-flickr)}.btn-bitbucket{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-bitbucket-fg);--tblr-btn-bg: var(--tblr-bitbucket);--tblr-btn-hover-color: var(--tblr-bitbucket-fg);--tblr-btn-hover-bg: rgba(var(--tblr-bitbucket-rgb), .8);--tblr-btn-active-color: var(--tblr-bitbucket-fg);--tblr-btn-active-bg: rgba(var(--tblr-bitbucket-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-bitbucket);--tblr-btn-disabled-color: var(--tblr-bitbucket-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-bitbucket{--tblr-btn-color: var(--tblr-bitbucket);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-bitbucket);--tblr-btn-hover-color: var(--tblr-bitbucket-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-bitbucket);--tblr-btn-active-color: var(--tblr-bitbucket-fg);--tblr-btn-active-bg: var(--tblr-bitbucket);--tblr-btn-disabled-color: var(--tblr-bitbucket);--tblr-btn-disabled-border-color: var(--tblr-bitbucket)}.btn-tabler{--tblr-btn-border-color: transparent;--tblr-btn-hover-border-color: transparent;--tblr-btn-active-border-color: transparent;--tblr-btn-color: var(--tblr-tabler-fg);--tblr-btn-bg: var(--tblr-tabler);--tblr-btn-hover-color: var(--tblr-tabler-fg);--tblr-btn-hover-bg: rgba(var(--tblr-tabler-rgb), .8);--tblr-btn-active-color: var(--tblr-tabler-fg);--tblr-btn-active-bg: rgba(var(--tblr-tabler-rgb), .8);--tblr-btn-disabled-bg: var(--tblr-tabler);--tblr-btn-disabled-color: var(--tblr-tabler-fg);--tblr-btn-box-shadow: var(--tblr-box-shadow-input)}.btn-outline-tabler{--tblr-btn-color: var(--tblr-tabler);--tblr-btn-bg: transparent;--tblr-btn-border-color: var(--tblr-tabler);--tblr-btn-hover-color: var(--tblr-tabler-fg);--tblr-btn-hover-border-color: transparent;--tblr-btn-hover-bg: var(--tblr-tabler);--tblr-btn-active-color: var(--tblr-tabler-fg);--tblr-btn-active-bg: var(--tblr-tabler);--tblr-btn-disabled-color: var(--tblr-tabler);--tblr-btn-disabled-border-color: var(--tblr-tabler)}.btn-ghost-primary{--tblr-btn-color: var(--tblr-primary);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-primary-fg);--tblr-btn-hover-bg: var(--tblr-primary);--tblr-btn-hover-border-color: var(--tblr-primary);--tblr-btn-active-color: var(--tblr-primary-fg);--tblr-btn-active-bg: var(--tblr-primary);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-primary);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-secondary{--tblr-btn-color: var(--tblr-secondary);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-secondary-fg);--tblr-btn-hover-bg: var(--tblr-secondary);--tblr-btn-hover-border-color: var(--tblr-secondary);--tblr-btn-active-color: var(--tblr-secondary-fg);--tblr-btn-active-bg: var(--tblr-secondary);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-secondary);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-success{--tblr-btn-color: var(--tblr-success);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-success-fg);--tblr-btn-hover-bg: var(--tblr-success);--tblr-btn-hover-border-color: var(--tblr-success);--tblr-btn-active-color: var(--tblr-success-fg);--tblr-btn-active-bg: var(--tblr-success);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-success);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-info{--tblr-btn-color: var(--tblr-info);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-info-fg);--tblr-btn-hover-bg: var(--tblr-info);--tblr-btn-hover-border-color: var(--tblr-info);--tblr-btn-active-color: var(--tblr-info-fg);--tblr-btn-active-bg: var(--tblr-info);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-info);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-warning{--tblr-btn-color: var(--tblr-warning);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-warning-fg);--tblr-btn-hover-bg: var(--tblr-warning);--tblr-btn-hover-border-color: var(--tblr-warning);--tblr-btn-active-color: var(--tblr-warning-fg);--tblr-btn-active-bg: var(--tblr-warning);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-warning);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-danger{--tblr-btn-color: var(--tblr-danger);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-danger-fg);--tblr-btn-hover-bg: var(--tblr-danger);--tblr-btn-hover-border-color: var(--tblr-danger);--tblr-btn-active-color: var(--tblr-danger-fg);--tblr-btn-active-bg: var(--tblr-danger);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-danger);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-light{--tblr-btn-color: var(--tblr-light);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-light-fg);--tblr-btn-hover-bg: var(--tblr-light);--tblr-btn-hover-border-color: var(--tblr-light);--tblr-btn-active-color: var(--tblr-light-fg);--tblr-btn-active-bg: var(--tblr-light);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-light);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-dark{--tblr-btn-color: var(--tblr-dark);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-dark-fg);--tblr-btn-hover-bg: var(--tblr-dark);--tblr-btn-hover-border-color: var(--tblr-dark);--tblr-btn-active-color: var(--tblr-dark-fg);--tblr-btn-active-bg: var(--tblr-dark);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-dark);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-muted{--tblr-btn-color: var(--tblr-muted);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-muted-fg);--tblr-btn-hover-bg: var(--tblr-muted);--tblr-btn-hover-border-color: var(--tblr-muted);--tblr-btn-active-color: var(--tblr-muted-fg);--tblr-btn-active-bg: var(--tblr-muted);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-muted);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-blue{--tblr-btn-color: var(--tblr-blue);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-blue-fg);--tblr-btn-hover-bg: var(--tblr-blue);--tblr-btn-hover-border-color: var(--tblr-blue);--tblr-btn-active-color: var(--tblr-blue-fg);--tblr-btn-active-bg: var(--tblr-blue);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-blue);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-azure{--tblr-btn-color: var(--tblr-azure);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-azure-fg);--tblr-btn-hover-bg: var(--tblr-azure);--tblr-btn-hover-border-color: var(--tblr-azure);--tblr-btn-active-color: var(--tblr-azure-fg);--tblr-btn-active-bg: var(--tblr-azure);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-azure);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-indigo{--tblr-btn-color: var(--tblr-indigo);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-indigo-fg);--tblr-btn-hover-bg: var(--tblr-indigo);--tblr-btn-hover-border-color: var(--tblr-indigo);--tblr-btn-active-color: var(--tblr-indigo-fg);--tblr-btn-active-bg: var(--tblr-indigo);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-indigo);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-purple{--tblr-btn-color: var(--tblr-purple);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-purple-fg);--tblr-btn-hover-bg: var(--tblr-purple);--tblr-btn-hover-border-color: var(--tblr-purple);--tblr-btn-active-color: var(--tblr-purple-fg);--tblr-btn-active-bg: var(--tblr-purple);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-purple);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-pink{--tblr-btn-color: var(--tblr-pink);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-pink-fg);--tblr-btn-hover-bg: var(--tblr-pink);--tblr-btn-hover-border-color: var(--tblr-pink);--tblr-btn-active-color: var(--tblr-pink-fg);--tblr-btn-active-bg: var(--tblr-pink);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-pink);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-red{--tblr-btn-color: var(--tblr-red);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-red-fg);--tblr-btn-hover-bg: var(--tblr-red);--tblr-btn-hover-border-color: var(--tblr-red);--tblr-btn-active-color: var(--tblr-red-fg);--tblr-btn-active-bg: var(--tblr-red);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-red);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-orange{--tblr-btn-color: var(--tblr-orange);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-orange-fg);--tblr-btn-hover-bg: var(--tblr-orange);--tblr-btn-hover-border-color: var(--tblr-orange);--tblr-btn-active-color: var(--tblr-orange-fg);--tblr-btn-active-bg: var(--tblr-orange);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-orange);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-yellow{--tblr-btn-color: var(--tblr-yellow);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-yellow-fg);--tblr-btn-hover-bg: var(--tblr-yellow);--tblr-btn-hover-border-color: var(--tblr-yellow);--tblr-btn-active-color: var(--tblr-yellow-fg);--tblr-btn-active-bg: var(--tblr-yellow);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-yellow);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-lime{--tblr-btn-color: var(--tblr-lime);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-lime-fg);--tblr-btn-hover-bg: var(--tblr-lime);--tblr-btn-hover-border-color: var(--tblr-lime);--tblr-btn-active-color: var(--tblr-lime-fg);--tblr-btn-active-bg: var(--tblr-lime);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-lime);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-green{--tblr-btn-color: var(--tblr-green);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-green-fg);--tblr-btn-hover-bg: var(--tblr-green);--tblr-btn-hover-border-color: var(--tblr-green);--tblr-btn-active-color: var(--tblr-green-fg);--tblr-btn-active-bg: var(--tblr-green);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-green);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-teal{--tblr-btn-color: var(--tblr-teal);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-teal-fg);--tblr-btn-hover-bg: var(--tblr-teal);--tblr-btn-hover-border-color: var(--tblr-teal);--tblr-btn-active-color: var(--tblr-teal-fg);--tblr-btn-active-bg: var(--tblr-teal);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-teal);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-cyan{--tblr-btn-color: var(--tblr-cyan);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-cyan-fg);--tblr-btn-hover-bg: var(--tblr-cyan);--tblr-btn-hover-border-color: var(--tblr-cyan);--tblr-btn-active-color: var(--tblr-cyan-fg);--tblr-btn-active-bg: var(--tblr-cyan);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-cyan);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-x{--tblr-btn-color: var(--tblr-x);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-x-fg);--tblr-btn-hover-bg: var(--tblr-x);--tblr-btn-hover-border-color: var(--tblr-x);--tblr-btn-active-color: var(--tblr-x-fg);--tblr-btn-active-bg: var(--tblr-x);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-x);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-facebook{--tblr-btn-color: var(--tblr-facebook);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-facebook-fg);--tblr-btn-hover-bg: var(--tblr-facebook);--tblr-btn-hover-border-color: var(--tblr-facebook);--tblr-btn-active-color: var(--tblr-facebook-fg);--tblr-btn-active-bg: var(--tblr-facebook);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-facebook);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-twitter{--tblr-btn-color: var(--tblr-twitter);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-twitter-fg);--tblr-btn-hover-bg: var(--tblr-twitter);--tblr-btn-hover-border-color: var(--tblr-twitter);--tblr-btn-active-color: var(--tblr-twitter-fg);--tblr-btn-active-bg: var(--tblr-twitter);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-twitter);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-linkedin{--tblr-btn-color: var(--tblr-linkedin);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-linkedin-fg);--tblr-btn-hover-bg: var(--tblr-linkedin);--tblr-btn-hover-border-color: var(--tblr-linkedin);--tblr-btn-active-color: var(--tblr-linkedin-fg);--tblr-btn-active-bg: var(--tblr-linkedin);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-linkedin);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-google{--tblr-btn-color: var(--tblr-google);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-google-fg);--tblr-btn-hover-bg: var(--tblr-google);--tblr-btn-hover-border-color: var(--tblr-google);--tblr-btn-active-color: var(--tblr-google-fg);--tblr-btn-active-bg: var(--tblr-google);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-google);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-youtube{--tblr-btn-color: var(--tblr-youtube);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-youtube-fg);--tblr-btn-hover-bg: var(--tblr-youtube);--tblr-btn-hover-border-color: var(--tblr-youtube);--tblr-btn-active-color: var(--tblr-youtube-fg);--tblr-btn-active-bg: var(--tblr-youtube);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-youtube);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-vimeo{--tblr-btn-color: var(--tblr-vimeo);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-vimeo-fg);--tblr-btn-hover-bg: var(--tblr-vimeo);--tblr-btn-hover-border-color: var(--tblr-vimeo);--tblr-btn-active-color: var(--tblr-vimeo-fg);--tblr-btn-active-bg: var(--tblr-vimeo);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-vimeo);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-dribbble{--tblr-btn-color: var(--tblr-dribbble);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-dribbble-fg);--tblr-btn-hover-bg: var(--tblr-dribbble);--tblr-btn-hover-border-color: var(--tblr-dribbble);--tblr-btn-active-color: var(--tblr-dribbble-fg);--tblr-btn-active-bg: var(--tblr-dribbble);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-dribbble);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-github{--tblr-btn-color: var(--tblr-github);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-github-fg);--tblr-btn-hover-bg: var(--tblr-github);--tblr-btn-hover-border-color: var(--tblr-github);--tblr-btn-active-color: var(--tblr-github-fg);--tblr-btn-active-bg: var(--tblr-github);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-github);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-instagram{--tblr-btn-color: var(--tblr-instagram);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-instagram-fg);--tblr-btn-hover-bg: var(--tblr-instagram);--tblr-btn-hover-border-color: var(--tblr-instagram);--tblr-btn-active-color: var(--tblr-instagram-fg);--tblr-btn-active-bg: var(--tblr-instagram);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-instagram);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-pinterest{--tblr-btn-color: var(--tblr-pinterest);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-pinterest-fg);--tblr-btn-hover-bg: var(--tblr-pinterest);--tblr-btn-hover-border-color: var(--tblr-pinterest);--tblr-btn-active-color: var(--tblr-pinterest-fg);--tblr-btn-active-bg: var(--tblr-pinterest);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-pinterest);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-vk{--tblr-btn-color: var(--tblr-vk);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-vk-fg);--tblr-btn-hover-bg: var(--tblr-vk);--tblr-btn-hover-border-color: var(--tblr-vk);--tblr-btn-active-color: var(--tblr-vk-fg);--tblr-btn-active-bg: var(--tblr-vk);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-vk);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-rss{--tblr-btn-color: var(--tblr-rss);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-rss-fg);--tblr-btn-hover-bg: var(--tblr-rss);--tblr-btn-hover-border-color: var(--tblr-rss);--tblr-btn-active-color: var(--tblr-rss-fg);--tblr-btn-active-bg: var(--tblr-rss);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-rss);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-flickr{--tblr-btn-color: var(--tblr-flickr);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-flickr-fg);--tblr-btn-hover-bg: var(--tblr-flickr);--tblr-btn-hover-border-color: var(--tblr-flickr);--tblr-btn-active-color: var(--tblr-flickr-fg);--tblr-btn-active-bg: var(--tblr-flickr);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-flickr);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-bitbucket{--tblr-btn-color: var(--tblr-bitbucket);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-bitbucket-fg);--tblr-btn-hover-bg: var(--tblr-bitbucket);--tblr-btn-hover-border-color: var(--tblr-bitbucket);--tblr-btn-active-color: var(--tblr-bitbucket-fg);--tblr-btn-active-bg: var(--tblr-bitbucket);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-bitbucket);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-ghost-tabler{--tblr-btn-color: var(--tblr-tabler);--tblr-btn-bg: transparent;--tblr-btn-border-color: transparent;--tblr-btn-hover-color: var(--tblr-tabler-fg);--tblr-btn-hover-bg: var(--tblr-tabler);--tblr-btn-hover-border-color: var(--tblr-tabler);--tblr-btn-active-color: var(--tblr-tabler-fg);--tblr-btn-active-bg: var(--tblr-tabler);--tblr-btn-active-border-color: transparent;--tblr-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--tblr-btn-disabled-color: var(--tblr-tabler);--tblr-btn-disabled-bg: transparent;--tblr-btn-disabled-border-color: transparent;--tblr-gradient: none;--tblr-btn-box-shadow: none}.btn-sm,.btn-group-sm>.btn{--tblr-btn-line-height: 1.5;--tblr-btn-icon-size: .75rem}.btn-lg,.btn-group-lg>.btn{--tblr-btn-line-height: 1.5;--tblr-btn-icon-size: 2rem}.btn-pill{padding-right:1.5em;padding-left:1.5em;border-radius:10rem}.btn-pill[class*=btn-icon]{padding:.375rem 15px}.btn-square{border-radius:0}.btn-icon{min-width:calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2);min-height:calc(var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) * 2);padding-left:0;padding-right:0}.btn-icon .icon{margin:calc(-1 * var(--tblr-btn-padding-x))}.btn-list{--tblr-list-gap: .5rem;display:flex;flex-wrap:wrap;gap:var(--tblr-list-gap)}.btn-floating{position:fixed;z-index:1030;bottom:1.5rem;right:1.5rem;border-radius:100rem}.btn-loading{position:relative;color:transparent!important;text-shadow:none!important;pointer-events:none}.btn-loading>*{opacity:0}.btn-loading:after{content:"";display:inline-block;vertical-align:text-bottom;border:2px var(--tblr-border-style) currentColor;border-right-color:transparent;border-radius:100rem;color:var(--tblr-btn-color);position:absolute;width:var(--tblr-btn-icon-size);height:var(--tblr-btn-icon-size);left:calc(50% - var(--tblr-btn-icon-size) / 2);top:calc(50% - var(--tblr-btn-icon-size) / 2);animation:spinner-border .75s linear infinite}.btn-action{padding:0;border:0;color:var(--tblr-secondary);display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:var(--tblr-border-radius);background:transparent}.btn-action:after{content:none}.btn-action:focus{outline:none;box-shadow:none}.btn-action:hover,.btn-action.show{color:var(--tblr-body-color);background:var(--tblr-active-bg)}.btn-action.show{color:var(--tblr-primary)}.btn-action .icon{margin:0;width:1.25rem;height:1.25rem;font-size:1.25rem;stroke-width:1}.btn-actions{display:flex}.btn-group,.btn-group-vertical{box-shadow:var(--tblr-box-shadow-input)}.btn-group>.btn-check:checked+.btn,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:5}.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus{z-index:1}.calendar{display:block;font-size:.765625rem;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.calendar-nav{display:flex;align-items:center}.calendar-title{flex:1;text-align:center}.calendar-body,.calendar-header{display:flex;flex-wrap:wrap;justify-content:flex-start;padding:.5rem 0}.calendar-header{color:var(--tblr-secondary)}.calendar-date{flex:0 0 14.2857142857%;max-width:14.2857142857%;padding:.2rem;text-align:center;border:0}.calendar-date.prev-month,.calendar-date.next-month{opacity:.25}.calendar-date .date-item{position:relative;display:inline-block;width:1.4rem;height:1.4rem;line-height:1.4rem;color:#66758c;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;background:0 0;border:var(--tblr-border-width) var(--tblr-border-style) transparent;border-radius:100rem;outline:0;transition:background .3s,border .3s,box-shadow .32s,color .3s}@media (prefers-reduced-motion: reduce){.calendar-date .date-item{transition:none}}.calendar-date .date-item:hover{color:var(--tblr-primary);text-decoration:none;background:#fefeff;border-color:var(--tblr-border-color)}.calendar-date .date-today{color:var(--tblr-primary);border-color:var(--tblr-border-color)}.calendar-range{position:relative}.calendar-range:before{position:absolute;top:50%;right:0;left:0;height:1.4rem;content:"";background:rgba(var(--tblr-primary-rgb),.1);transform:translateY(-50%)}.calendar-range.range-start .date-item,.calendar-range.range-end .date-item{color:#fff;background:var(--tblr-primary);border-color:var(--tblr-primary)}.calendar-range.range-start:before{left:50%}.calendar-range.range-end:before{right:50%}.carousel-indicators-vertical{left:auto;top:0;margin:0 1rem 0 0;flex-direction:column}.carousel-indicators-vertical [data-bs-target]{margin:3px 0;width:3px;height:30px;border:0;border-left:10px var(--tblr-border-style) transparent;border-right:10px var(--tblr-border-style) transparent}.carousel-indicators-dot [data-bs-target]{width:.5rem;height:.5rem;border-radius:100rem;border:10px var(--tblr-border-style) transparent;margin:0}.carousel-indicators-thumb [data-bs-target]{width:2rem;height:auto;background:no-repeat center/cover;border:0;border-radius:var(--tblr-border-radius);box-shadow:rgba(var(--tblr-body-color-rgb),.04) 0 2px 4px;margin:0 3px;opacity:.75}@media (min-width: 992px){.carousel-indicators-thumb [data-bs-target]{width:4rem}}.carousel-indicators-thumb [data-bs-target]:before{content:"";padding-top:var(--tblr-aspect-ratio, 100%);display:block}.carousel-indicators-thumb.carousel-indicators-vertical [data-bs-target]{margin:3px 0}.carousel-caption-background{background:red;position:absolute;left:0;right:0;bottom:0;height:90%;background:linear-gradient(0deg,#182433e6,#18243300)}.card{transition:transform .3s ease-out,opacity .3s ease-out,box-shadow .3s ease-out}@media (prefers-reduced-motion: reduce){.card{transition:none}}@media print{.card{border:none;box-shadow:none}}a.card{color:inherit}a.card:hover{text-decoration:none;box-shadow:rgba(var(--tblr-body-color-rgb),.16) 0 2px 16px}.card .card{box-shadow:none}.card-borderless,.card-borderless .card-header,.card-borderless .card-footer{border-color:transparent}.card-stamp{--tblr-stamp-size: 7rem;position:absolute;top:0;right:0;width:calc(var(--tblr-stamp-size) * 1);height:calc(var(--tblr-stamp-size) * 1);max-height:100%;border-top-right-radius:4px;opacity:.2;overflow:hidden;pointer-events:none}.card-stamp-lg{--tblr-stamp-size: 13rem}.card-stamp-icon{background:var(--tblr-secondary);color:var(--tblr-card-bg, var(--tblr-bg-surface));display:flex;align-items:center;justify-content:center;border-radius:100rem;width:calc(var(--tblr-stamp-size) * 1);height:calc(var(--tblr-stamp-size) * 1);position:relative;top:calc(var(--tblr-stamp-size) * -.25);right:calc(var(--tblr-stamp-size) * -.25);font-size:calc(var(--tblr-stamp-size) * .75);transform:rotate(10deg)}.card-stamp-icon .icon{stroke-width:2;width:calc(var(--tblr-stamp-size) * .75);height:calc(var(--tblr-stamp-size) * .75)}.card-img,.card-img-start{border-top-left-radius:calc(var(--tblr-border-radius) - (var(--tblr-border-width)));border-bottom-left-radius:calc(var(--tblr-border-radius) - (var(--tblr-border-width)))}.card-img,.card-img-end{border-top-right-radius:calc(var(--tblr-border-radius) - (var(--tblr-border-width)));border-bottom-right-radius:calc(var(--tblr-border-radius) - (var(--tblr-border-width)))}.card-img-overlay{display:flex;flex-direction:column;justify-content:flex-end}.card-img-overlay-dark{background-image:linear-gradient(180deg,#0000,#0009)}.card-inactive{pointer-events:none;box-shadow:none}.card-inactive .card-body{opacity:.64}.card-active{--tblr-card-border-color: var(--tblr-primary);--tblr-card-bg: var(--tblr-active-bg)}.card-btn{display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem;text-align:center;transition:background .3s;border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);flex:1;color:inherit;font-weight:var(--tblr-font-weight-medium)}@media (prefers-reduced-motion: reduce){.card-btn{transition:none}}.card-btn:hover{text-decoration:none;background:rgba(var(--tblr-primary-rgb),.04)}.card-btn+.card-btn{border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.card-stacked{--tblr-card-stacked-offset: .25rem;position:relative}.card-stacked:after{position:absolute;top:calc(-1 * var(--tblr-card-stacked-offset));right:var(--tblr-card-stacked-offset);left:var(--tblr-card-stacked-offset);height:var(--tblr-card-stacked-offset);content:"";background:var(--tblr-card-bg, var(--tblr-bg-surface));border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-card-border-color);border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-cover{position:relative;padding:1rem 1.25rem;background:#666 no-repeat center/cover}.card-cover:before{position:absolute;inset:0;content:"";background:#1824337a}.card-cover:first-child,.card-cover:first-child:before{border-radius:4px 4px 0 0}.card-cover-blurred:before{backdrop-filter:blur(2px)}.card-actions{margin:-.5rem -.5rem -.5rem auto;padding-left:.5rem}.card-actions a{text-decoration:none}.card-header{color:inherit;display:flex;align-items:center;background:transparent}.card-header:first-child{border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-header-light{border-bottom-color:transparent;background:var(--tblr-bg-surface-tertiary)}.card-header-tabs{background:var(--tblr-bg-surface-tertiary);flex:1;margin:calc(var(--tblr-card-cap-padding-y) * -1) calc(var(--tblr-card-cap-padding-x) * -1) calc(var(--tblr-card-cap-padding-y) * -1);padding:calc(var(--tblr-card-cap-padding-y) * .5) calc(var(--tblr-card-cap-padding-x) * .5) 0}.card-header-pills{flex:1;margin-top:-.5rem;margin-bottom:-.5rem}.card-rotate-left{transform:rotate(-1.5deg)}.card-rotate-right{transform:rotate(1.5deg)}.card-link{color:inherit}.card-link:hover{color:inherit;text-decoration:none;box-shadow:0 1px 6px #00000014}.card-link-rotate:hover{transform:rotate(1.5deg);opacity:1}.card-link-pop:hover{transform:translateY(-2px);opacity:1}.card-footer{margin-top:auto}.card-footer:last-child{border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-footer-transparent{background:transparent;border-color:transparent;padding-top:0}.card-footer-borderless{border-top:none}.card-progress{height:.25rem}.card-progress:last-child{border-radius:0 0 2px 2px}.card-progress:first-child{border-radius:2px 2px 0 0}.card-meta{color:var(--tblr-secondary)}.card-title{display:block;margin:0 0 1rem;font-size:1rem;font-weight:var(--tblr-font-weight-medium);color:inherit;line-height:1.5rem}a.card-title:hover{color:inherit}.card-header .card-title{margin:0}.card-subtitle{margin-bottom:1.25rem;color:var(--tblr-secondary);font-weight:400}.card-header .card-subtitle{margin:0}.card-title .card-subtitle{margin:0 0 0 .25rem;font-size:.875rem}.card-body{position:relative}.card-body>:last-child{margin-bottom:0}.card-sm>.card-body{padding:1rem}@media (min-width: 768px){.card-md>.card-body{padding:2.5rem}}@media (min-width: 768px){.card-lg>.card-body{padding:2rem}}@media (min-width: 992px){.card-lg>.card-body{padding:4rem}}@media print{.card-body{padding:0}}.card-body+.card-body{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.card-body-scrollable{overflow:auto}.card-options{top:1.5rem;right:.75rem;display:flex;margin-left:auto}.card-options-link{display:inline-block;min-width:1rem;margin-left:.25rem;color:var(--tblr-secondary)}.card-status-top{position:absolute;top:0;right:0;left:0;height:2px;border-radius:var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0}.card-status-start{position:absolute;right:auto;bottom:0;width:2px;height:100%;border-radius:var(--tblr-card-border-radius) 0 0 var(--tblr-card-border-radius)}.card-status-bottom{position:absolute;top:initial;bottom:0;width:100%;height:2px;border-radius:0 0 var(--tblr-card-border-radius) var(--tblr-card-border-radius)}.card-table{margin-bottom:0!important}.card-table tr td:first-child,.card-table tr th:first-child{padding-left:1.25rem;border-left:0}.card-table tr td:last-child,.card-table tr th:last-child{padding-right:1.25rem;border-right:0}.card-table thead tr:first-child,.card-table tbody tr:first-child,.card-table tfoot tr:first-child,.card-table thead tr:first-child td,.card-table thead tr:first-child th,.card-table tbody tr:first-child td,.card-table tbody tr:first-child th,.card-table tfoot tr:first-child td,.card-table tfoot tr:first-child th{border-top:0}.card-body+.card-table{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-table-border-color)}.card-code{padding:0}.card-code .highlight{margin:0;border:0}.card-code pre{margin:0!important;border:0!important}.card-chart{position:relative;z-index:1;height:3.5rem}.card-avatar{margin-left:auto;margin-right:auto;box-shadow:0 0 0 .25rem var(--tblr-card-bg, var(--tblr-bg-surface));margin-top:calc(-1 * var(--tblr-avatar-size) * .5)}.card-body+.card-list-group{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.card-list-group .list-group-item{padding-right:1.25rem;padding-left:1.25rem;border-right:0;border-left:0;border-radius:0}.card-list-group .list-group-item:last-child{border-bottom:0}.card-list-group .list-group-item:first-child{border-top:0}.card-tabs .nav-tabs{position:relative;z-index:1000;border-bottom:0}.card-tabs .nav-tabs .nav-link{background:var(--tblr-bg-surface-tertiary);border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.card-tabs .nav-tabs .nav-link.active,.card-tabs .nav-tabs .nav-link:active,.card-tabs .nav-tabs .nav-link:hover{border-color:var(--tblr-border-color-translucent);color:var(--tblr-body-color)}.card-tabs .nav-tabs .nav-link.active{color:inherit;background:var(--tblr-card-bg, var(--tblr-bg-surface));border-bottom-color:transparent}.card-tabs .nav-tabs .nav-item:not(:first-child) .nav-link{border-top-left-radius:0}.card-tabs .nav-tabs .nav-item:not(:last-child) .nav-link{border-top-right-radius:0}.card-tabs .nav-tabs .nav-item+.nav-item{margin-left:calc(-1 * var(--tblr-border-width))}.card-tabs .nav-tabs-bottom,.card-tabs .nav-tabs-bottom .nav-link{margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-link.active{border-top-color:transparent}.card-tabs .nav-tabs-bottom .nav-item{margin-top:calc(-1 * var(--tblr-border-width));margin-bottom:0}.card-tabs .nav-tabs-bottom .nav-item .nav-link{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);border-radius:0 0 var(--tblr-border-radius) var(--tblr-border-radius)}.card-tabs .nav-tabs-bottom .nav-item:not(:first-child) .nav-link{border-bottom-left-radius:0}.card-tabs .nav-tabs-bottom .nav-item:not(:last-child) .nav-link{border-bottom-right-radius:0}.card-tabs .card{border-bottom-left-radius:0}.card-tabs .nav-tabs+.tab-content .card{border-bottom-left-radius:var(--tblr-card-border-radius);border-top-left-radius:0}.card-note{--tblr-card-bg: #fff7dd;--tblr-card-border-color: #fff1c9}.btn-close{cursor:pointer}.btn-close:focus{outline:none}.dropdown-menu{user-select:none;background-clip:border-box}.dropdown-menu.card{padding:0;min-width:25rem;display:none}.dropdown-menu.card.show{display:flex}.dropdown-item{min-width:11rem;display:flex;align-items:center;margin:0;line-height:1.4285714286}.dropdown-item-icon{width:1.25rem!important;height:1.25rem!important;margin-right:.5rem;color:var(--tblr-secondary);opacity:.7;text-align:center}.dropdown-item-indicator{margin-right:.5rem;margin-left:-.25rem;height:1.25rem;display:inline-flex;line-height:1;vertical-align:bottom;align-items:center}.dropdown-header{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);padding-bottom:.25rem;pointer-events:none}.dropdown-menu-scrollable{height:auto;max-height:13rem;overflow-x:hidden}.dropdown-menu-column{min-width:11rem}.dropdown-menu-column .dropdown-item{min-width:0}.dropdown-menu-columns{display:flex;flex:0 .25rem}.dropdown-menu-arrow:before{content:"";position:absolute;top:-.25rem;left:.75rem;display:block;background:inherit;width:14px;height:14px;transform:rotate(45deg);transform-origin:center;border:1px solid;border-color:inherit;z-index:-1;clip:rect(0px,9px,9px,0px)}.dropdown-menu-arrow.dropdown-menu-end:before{right:.75rem;left:auto}.dropend>.dropdown-menu{margin-top:calc(-.25rem - 1px);margin-left:-.25rem}.dropend .dropdown-toggle:after{margin-left:auto}.dropdown-menu-card{padding:0}.dropdown-menu-card>.card{margin:0;border:0;box-shadow:none}.datagrid{--tblr-datagrid-padding: 1.5rem;--tblr-datagrid-item-width: 15rem;display:grid;grid-gap:var(--tblr-datagrid-padding);grid-template-columns:repeat(auto-fit,minmax(var(--tblr-datagrid-item-width),1fr))}.datagrid-title{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);margin-bottom:.25rem}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center}@media (min-width: 768px){.empty{padding:3rem}}.empty-icon{margin:0 0 1rem;width:3rem;height:3rem;line-height:1;color:var(--tblr-secondary)}.empty-icon svg{width:100%;height:100%}.empty-img{margin:0 0 2rem;line-height:1}.empty-header{margin:0 0 1rem;font-size:4rem;font-weight:var(--tblr-font-weight-light);line-height:1;color:var(--tblr-secondary)}.empty-title{font-size:1.25rem;line-height:1.75rem;font-weight:var(--tblr-font-weight-bold)}.empty-title,.empty-subtitle{margin:0 0 .5rem}.empty-action{margin-top:1.5rem}.empty-bordered{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.row>*{min-width:0}.col-separator{border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.container-slim{--tblr-gutter-x: calc(var(--tblr-page-padding) * 2);--tblr-gutter-y: 0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto;max-width:16rem}.container-tight{--tblr-gutter-x: calc(var(--tblr-page-padding) * 2);--tblr-gutter-y: 0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto;max-width:30rem}.container-narrow{--tblr-gutter-x: calc(var(--tblr-page-padding) * 2);--tblr-gutter-y: 0;width:100%;padding-right:calc(var(--tblr-gutter-x) * .5);padding-left:calc(var(--tblr-gutter-x) * .5);margin-right:auto;margin-left:auto;max-width:45rem}.row-0{margin-right:0;margin-left:0}.row-0>.col,.row-0>[class*=col-]{padding-right:0;padding-left:0}.row-0 .card{margin-bottom:0}.row-sm{margin-right:-.375rem;margin-left:-.375rem}.row-sm>.col,.row-sm>[class*=col-]{padding-right:.375rem;padding-left:.375rem}.row-sm .card{margin-bottom:.75rem}.row-md{margin-right:-1.5rem;margin-left:-1.5rem}.row-md>.col,.row-md>[class*=col-]{padding-right:1.5rem;padding-left:1.5rem}.row-md .card{margin-bottom:3rem}.row-lg{margin-right:-3rem;margin-left:-3rem}.row-lg>.col,.row-lg>[class*=col-]{padding-right:3rem;padding-left:3rem}.row-lg .card{margin-bottom:6rem}.row-deck>.col,.row-deck>[class*=col-]{display:flex;align-items:stretch}.row-deck>.col .card,.row-deck>[class*=col-] .card{flex:1 1 auto}.row-cards{--tblr-gutter-x: var(--tblr-page-padding);--tblr-gutter-y: var(--tblr-page-padding);min-width:0}.row-cards .row-cards{flex:1}.space-y{display:flex;flex-direction:column;gap:1rem}.space-x{display:flex;gap:1rem}.space-y-0{display:flex;flex-direction:column;gap:0}.space-x-0{display:flex;gap:0}.space-y-1{display:flex;flex-direction:column;gap:.25rem}.space-x-1{display:flex;gap:.25rem}.space-y-2{display:flex;flex-direction:column;gap:.5rem}.space-x-2{display:flex;gap:.5rem}.space-y-3{display:flex;flex-direction:column;gap:1rem}.space-x-3{display:flex;gap:1rem}.space-y-4{display:flex;flex-direction:column;gap:1.5rem}.space-x-4{display:flex;gap:1.5rem}.space-y-5{display:flex;flex-direction:column;gap:2rem}.space-x-5{display:flex;gap:2rem}.space-y-6{display:flex;flex-direction:column;gap:3rem}.space-x-6{display:flex;gap:3rem}.space-y-7{display:flex;flex-direction:column;gap:5rem}.space-x-7{display:flex;gap:5rem}.space-y-8{display:flex;flex-direction:column;gap:8rem}.space-x-8{display:flex;gap:8rem}.divide-y>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y>:not(template):not(:first-child){padding-top:1rem!important}.divide-y>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x>:not(template):not(:first-child){padding-left:1rem!important}.divide-x>:not(template):not(:last-child){padding-right:1rem!important}.divide-y-0>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-0>:not(template):not(:first-child){padding-top:0!important}.divide-y-0>:not(template):not(:last-child){padding-bottom:0!important}.divide-x-0>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-0>:not(template):not(:first-child){padding-left:0!important}.divide-x-0>:not(template):not(:last-child){padding-right:0!important}.divide-y-1>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-1>:not(template):not(:first-child){padding-top:.25rem!important}.divide-y-1>:not(template):not(:last-child){padding-bottom:.25rem!important}.divide-x-1>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-1>:not(template):not(:first-child){padding-left:.25rem!important}.divide-x-1>:not(template):not(:last-child){padding-right:.25rem!important}.divide-y-2>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-2>:not(template):not(:first-child){padding-top:.5rem!important}.divide-y-2>:not(template):not(:last-child){padding-bottom:.5rem!important}.divide-x-2>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-2>:not(template):not(:first-child){padding-left:.5rem!important}.divide-x-2>:not(template):not(:last-child){padding-right:.5rem!important}.divide-y-3>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-3>:not(template):not(:first-child){padding-top:1rem!important}.divide-y-3>:not(template):not(:last-child){padding-bottom:1rem!important}.divide-x-3>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-3>:not(template):not(:first-child){padding-left:1rem!important}.divide-x-3>:not(template):not(:last-child){padding-right:1rem!important}.divide-y-4>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-4>:not(template):not(:first-child){padding-top:1.5rem!important}.divide-y-4>:not(template):not(:last-child){padding-bottom:1.5rem!important}.divide-x-4>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-4>:not(template):not(:first-child){padding-left:1.5rem!important}.divide-x-4>:not(template):not(:last-child){padding-right:1.5rem!important}.divide-y-5>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-5>:not(template):not(:first-child){padding-top:2rem!important}.divide-y-5>:not(template):not(:last-child){padding-bottom:2rem!important}.divide-x-5>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-5>:not(template):not(:first-child){padding-left:2rem!important}.divide-x-5>:not(template):not(:last-child){padding-right:2rem!important}.divide-y-6>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-6>:not(template):not(:first-child){padding-top:3rem!important}.divide-y-6>:not(template):not(:last-child){padding-bottom:3rem!important}.divide-x-6>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-6>:not(template):not(:first-child){padding-left:3rem!important}.divide-x-6>:not(template):not(:last-child){padding-right:3rem!important}.divide-y-7>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-7>:not(template):not(:first-child){padding-top:5rem!important}.divide-y-7>:not(template):not(:last-child){padding-bottom:5rem!important}.divide-x-7>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-7>:not(template):not(:first-child){padding-left:5rem!important}.divide-x-7>:not(template):not(:last-child){padding-right:5rem!important}.divide-y-8>:not(template)~:not(template){border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-y-8>:not(template):not(:first-child){padding-top:8rem!important}.divide-y-8>:not(template):not(:last-child){padding-bottom:8rem!important}.divide-x-8>:not(template)~:not(template){border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)!important}.divide-x-8>:not(template):not(:first-child){padding-left:8rem!important}.divide-x-8>:not(template):not(:last-child){padding-right:8rem!important}.divide-y-fill{display:flex;flex-direction:column;height:100%}.divide-y-fill>:not(template){flex:1;display:flex;justify-content:center;flex-direction:column}.icon{--tblr-icon-size: 1.25rem;width:var(--tblr-icon-size);height:var(--tblr-icon-size);font-size:var(--tblr-icon-size);vertical-align:bottom;stroke-width:1.5}.icon:hover{text-decoration:none}.icon-inline{--tblr-icon-size: 1rem;vertical-align:-.2rem}.icon-filled{fill:currentColor}.icon-sm{--tblr-icon-size: 1rem;stroke-width:1}.icon-md{--tblr-icon-size: 2.5rem;stroke-width:1}.icon-lg{--tblr-icon-size: 3.5rem;stroke-width:1}.icon-pulse{transition:all .15s ease 0s;animation:pulse 2s ease infinite;animation-fill-mode:both}.icon-tada{transition:all .15s ease 0s;animation:tada 3s ease infinite;animation-fill-mode:both}.icon-rotate{transition:all .15s ease 0s;animation:rotate-360 3s linear infinite;animation-fill-mode:both}.img-responsive{--tblr-img-responsive-ratio: 75%;background:no-repeat center/cover;padding-top:var(--tblr-img-responsive-ratio)}.img-responsive-grid{padding-top:calc(var(--tblr-img-responsive-ratio) - var(--tblr-gutter-y) / 2)}.img-responsive-1x1{--tblr-img-responsive-ratio: 100%}.img-responsive-2x1{--tblr-img-responsive-ratio: 50%}.img-responsive-1x2{--tblr-img-responsive-ratio: 200%}.img-responsive-3x1{--tblr-img-responsive-ratio: 33.3333333333%}.img-responsive-1x3{--tblr-img-responsive-ratio: 300%}.img-responsive-4x3{--tblr-img-responsive-ratio: 75%}.img-responsive-3x4{--tblr-img-responsive-ratio: 133.3333333333%}.img-responsive-16x9{--tblr-img-responsive-ratio: 56.25%}.img-responsive-9x16{--tblr-img-responsive-ratio: 177.7777777778%}.img-responsive-21x9{--tblr-img-responsive-ratio: 42.8571428571%}.img-responsive-9x21{--tblr-img-responsive-ratio: 233.3333333333%}textarea[cols]{height:auto}.col-form-label,.form-label{display:block;font-weight:var(--tblr-font-weight-medium)}.col-form-label.required:after,.form-label.required:after{content:"*";margin-left:.25rem;color:#d63939}.form-label-description{float:right;font-weight:var(--tblr-font-weight-normal);color:var(--tblr-gray-500)}.form-hint{display:block;color:var(--tblr-gray-500)}.form-hint:last-child{margin-bottom:0}.form-hint+.form-control{margin-top:.25rem}.form-label+.form-hint{margin-top:-.25rem}.input-group+.form-hint,.form-control+.form-hint,.form-select+.form-hint{margin-top:.5rem;color:var(--tblr-gray-500)}.form-select:-moz-focusring{color:var(--tblr-body-color)}.form-control:-webkit-autofill{box-shadow:0 0 0 1000px var(--tblr-body-bg) inset;color:var(--tblr-body-color);-webkit-text-fill-color:var(--tblr-body-color)}.form-control:disabled,.form-control.disabled{color:var(--tblr-gray-500);user-select:none}.form-control[size]{width:auto}.form-control-light{background-color:var(--tblr-gray-100);border-color:transparent}.form-control-dark{background-color:#0000001a;color:#fff;border-color:transparent}.form-control-dark:focus{background-color:#0000001a;box-shadow:none;border-color:#ffffff3d}.form-control-dark::placeholder{color:#fff9}.form-control-rounded{border-radius:10rem}.form-control-flush{padding:0;background:none!important;border-color:transparent!important;resize:none;box-shadow:none!important;line-height:inherit}.form-footer{margin-top:2rem}.form-fieldset{padding:1rem;margin-bottom:1rem;background:var(--tblr-body-bg);border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.form-help{display:inline-flex;font-weight:var(--tblr-font-weight-bold);align-items:center;justify-content:center;width:1.125rem;height:1.125rem;font-size:.75rem;color:var(--tblr-gray-500);text-align:center;text-decoration:none;cursor:pointer;user-select:none;background:var(--tblr-gray-100);border-radius:100rem;transition:background-color .3s,color .3s}@media (prefers-reduced-motion: reduce){.form-help{transition:none}}.form-help:hover,.form-help[aria-describedby]{color:#fff;background:var(--tblr-primary)}.input-group{box-shadow:var(--tblr-box-shadow-input);border-radius:var(--tblr-border-radius)}.input-group .form-control,.input-group .btn{box-shadow:none}.input-group-link{font-size:.75rem}.input-group-flat:focus-within{box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25);border-radius:var(--tblr-border-radius)}.input-group-flat:focus-within .form-control,.input-group-flat:focus-within .input-group-text{border-color:#80c2be!important}.input-group-flat .form-control:focus{border-color:var(--tblr-border-color);box-shadow:none}.input-group-flat .form-control:not(:last-child){border-right:0}.input-group-flat .form-control:not(:first-child){border-left:0}.input-group-flat .input-group-text{background:var(--tblr-bg-forms);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.input-group-flat .input-group-text{transition:none}}.input-group-flat .input-group-text:first-child{padding-right:0}.input-group-flat .input-group-text:last-child{padding-left:0}.form-file-button{margin-left:0;border-left:0}.input-icon{position:relative}.input-icon .form-control:not(:last-child),.input-icon .form-select:not(:last-child){padding-right:2.5rem}.input-icon .form-control:not(:first-child),.input-icon .form-select:not(:last-child){padding-left:2.5rem}.input-icon-addon{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;min-width:2.5rem;color:var(--tblr-icon-color);pointer-events:none;font-size:1.2em}.input-icon-addon:last-child{right:0;left:auto}.form-colorinput{position:relative;display:inline-block;margin:0;line-height:1;cursor:pointer}.form-colorinput-input{position:absolute;z-index:-1;opacity:0}.form-colorinput-color{display:block;width:1.5rem;height:1.5rem;color:#fff;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);border-radius:3px;box-shadow:0 1px 2px #0000000d}.form-colorinput-color:before{position:absolute;top:0;left:0;width:100%;height:100%;content:"";background:no-repeat center center/1.25rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");opacity:0;transition:opacity .3s}@media (prefers-reduced-motion: reduce){.form-colorinput-color:before{transition:none}}.form-colorinput-input:checked~.form-colorinput-color:before{opacity:1}.form-colorinput-input:focus~.form-colorinput-color{border-color:var(--tblr-primary);box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-colorinput-light .form-colorinput-color:before{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23182433' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-imagecheck{position:relative;margin:0;cursor:pointer}.form-imagecheck-input{position:absolute;z-index:-1;opacity:0}.form-imagecheck-figure{position:relative;display:block;margin:0;user-select:none;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:3px}.form-imagecheck-input:focus~.form-imagecheck-figure{border-color:var(--tblr-primary);box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-imagecheck-input:checked~.form-imagecheck-figure{border-color:var(--tblr-primary)}.form-imagecheck-figure:before{position:absolute;top:.25rem;left:.25rem;z-index:1;display:block;width:1.25rem;height:1.25rem;color:#fff;pointer-events:none;content:"";user-select:none;background:var(--tblr-bg-forms);border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:var(--tblr-border-radius);transition:opacity .3s}@media (prefers-reduced-motion: reduce){.form-imagecheck-figure:before{transition:none}}.form-imagecheck-input:checked~.form-imagecheck-figure:before{background-color:var(--tblr-primary);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");background-repeat:repeat;background-position:center;background-size:1.25rem;border-color:var(--tblr-border-color-translucent)}.form-imagecheck-input[type=radio]~.form-imagecheck-figure:before{border-radius:50%}.form-imagecheck-input[type=radio]:checked~.form-imagecheck-figure:before{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-imagecheck-image{max-width:100%;display:block;opacity:.64;transition:opacity .3s}@media (prefers-reduced-motion: reduce){.form-imagecheck-image{transition:none}}.form-imagecheck-image:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.form-imagecheck-image:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.form-imagecheck:hover .form-imagecheck-image,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-image,.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-image{opacity:1}.form-imagecheck-caption{padding:.25rem;font-size:.765625rem;color:var(--tblr-secondary);text-align:center;transition:color .3s}@media (prefers-reduced-motion: reduce){.form-imagecheck-caption{transition:none}}.form-imagecheck:hover .form-imagecheck-caption,.form-imagecheck-input:focus~.form-imagecheck-figure .form-imagecheck-caption,.form-imagecheck-input:checked~.form-imagecheck-figure .form-imagecheck-caption{color:var(--tblr-body-color)}.form-selectgroup{display:inline-flex;margin:0 -.5rem -.5rem 0;flex-wrap:wrap}.form-selectgroup .form-selectgroup-item{margin:0 .5rem .5rem 0}.form-selectgroup-vertical{flex-direction:column}.form-selectgroup-item{display:block;position:relative}.form-selectgroup-input{position:absolute;top:0;left:0;z-index:-1;opacity:0}.form-selectgroup-label{position:relative;display:block;min-width:calc(1.4285714286em + 1.125rem + calc(var(--tblr-border-width) * 2));margin:0;padding:.5625rem .75rem;font-size:.875rem;line-height:1.4285714286;color:var(--tblr-secondary);background:var(--tblr-bg-forms);text-align:center;cursor:pointer;user-select:none;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:3px;box-shadow:var(--tblr-box-shadow-input);transition:border-color .3s,background .3s,color .3s}@media (prefers-reduced-motion: reduce){.form-selectgroup-label{transition:none}}.form-selectgroup-label .icon:only-child{margin:0 -.25rem}.form-selectgroup-label:hover{color:var(--tblr-body-color)}.form-selectgroup-check{display:inline-block;width:1.25rem;height:1.25rem;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);vertical-align:middle;box-shadow:var(--tblr-box-shadow-input)}.form-selectgroup-input[type=checkbox]+.form-selectgroup-label .form-selectgroup-check{border-radius:var(--tblr-border-radius)}.form-selectgroup-input[type=radio]+.form-selectgroup-label .form-selectgroup-check{border-radius:50%}.form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-check{background-color:var(--tblr-primary);background-repeat:repeat;background-position:center;background-size:1.25rem;border-color:var(--tblr-border-color-translucent)}.form-selectgroup-input[type=checkbox]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.form-selectgroup-input[type=radio]:checked+.form-selectgroup-label .form-selectgroup-check{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3ccircle r='3' fill='%23ffffff' cx='8' cy='8' /%3e%3c/svg%3e")}.form-selectgroup-check-floated{position:absolute;top:.5625rem;right:.5625rem}.form-selectgroup-input:checked+.form-selectgroup-label{z-index:1;color:var(--tblr-primary);background:rgba(var(--tblr-primary-rgb),.04);border-color:var(--tblr-primary)}.form-selectgroup-input:focus+.form-selectgroup-label{z-index:2;color:var(--tblr-primary);border-color:var(--tblr-primary);box-shadow:0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.form-selectgroup-boxes .form-selectgroup-label{text-align:left;padding:1.25rem 1rem;color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label{color:inherit}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-title{color:var(--tblr-primary)}.form-selectgroup-boxes .form-selectgroup-input:checked+.form-selectgroup-label .form-selectgroup-label-content{opacity:1}.form-selectgroup-pills{flex-wrap:wrap;align-items:flex-start}.form-selectgroup-pills .form-selectgroup-item{flex-grow:0}.form-selectgroup-pills .form-selectgroup-label{border-radius:50px}.form-control-color::-webkit-color-swatch{border:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.form-control::file-selector-button{background-color:var(--tblr-btn-color, var(--tblr-tertiary-bg))}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--tblr-btn-color, var(--tblr-secondary-bg))}.form-check{user-select:none}.form-check.form-check-highlight .form-check-input:not(:checked)~.form-check-label{color:var(--tblr-secondary)}.form-check .form-check-label-off{color:var(--tblr-secondary)}.form-check .form-check-input:checked~.form-check-label-off{display:none}.form-check .form-check-input:not(:checked)~.form-check-label-on{display:none}.form-check-input{background-size:1.25rem;margin-top:0rem;box-shadow:var(--tblr-box-shadow-input)}.form-switch .form-check-input{transition:background-color .3s,background-position .3s}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-check-label{display:block}.form-check-label.required:after{content:"*";margin-left:.25rem;color:#d63939}.form-check-description{display:block;color:var(--tblr-secondary);font-size:.75rem;margin-top:.25rem}.form-check-single,.form-check-single .form-check-input{margin:0}.form-switch .form-check-input{height:1.25rem;margin-top:0rem}.form-switch-lg{padding-left:3.5rem;min-height:1.5rem}.form-switch-lg .form-check-input{height:1.5rem;width:2.75rem;background-size:1.5rem;margin-left:-3.5rem}.form-switch-lg .form-check-label{padding-top:.125rem}.form-check-input:checked{border:none}.form-select.is-invalid-lite,.form-control.is-invalid-lite,.form-select.is-valid-lite,.form-control.is-valid-lite{border-color:var(--tblr-border-color)!important}.legend{--tblr-legend-size: .75em;display:inline-block;background:var(--tblr-border-color);width:var(--tblr-legend-size);height:var(--tblr-legend-size);border-radius:var(--tblr-border-radius-sm);border:1px solid var(--tblr-border-color-translucent)}.list-group{margin-left:0;margin-right:0}.list-group-header{background:var(--tblr-bg-surface-tertiary);padding:.5rem 1.25rem;font-size:.75rem;font-weight:var(--tblr-font-weight-medium);line-height:1;text-transform:uppercase;color:var(--tblr-gray-500);border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.list-group-flush>.list-group-header:last-child{border-bottom-width:0}.list-group-item{background-color:inherit}.list-group-item.active{background-color:rgba(var(--tblr-secondary-rgb),.08);border-left-color:#00857d;border-left-width:2px}.list-group-item:active,.list-group-item:focus,.list-group-item:hover{background-color:rgba(var(--tblr-secondary-rgb),.08)}.list-group-item.disabled,.list-group-item:disabled{color:#6c7a91;background-color:rgba(var(--tblr-secondary-rgb),.08)}.list-bordered .list-item{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);margin-top:-1px}.list-bordered .list-item:first-child{border-top:none}.list-group-hoverable .list-group-item-actions{opacity:0;transition:opacity .3s}@media (prefers-reduced-motion: reduce){.list-group-hoverable .list-group-item-actions{transition:none}}.list-group-hoverable .list-group-item:hover .list-group-item-actions,.list-group-hoverable .list-group-item-actions.show{opacity:1}.list-group-transparent{--tblr-list-group-border-radius: 0;margin:0 -1.25rem}.list-group-transparent .list-group-item{background:none;border:0}.list-group-transparent .list-group-item .icon{color:var(--tblr-secondary)}.list-group-transparent .list-group-item.active{font-weight:var(--tblr-font-weight-bold);color:inherit;background:var(--tblr-active-bg)}.list-group-transparent .list-group-item.active .icon{color:inherit}.list-separated-item{padding:1rem 0}.list-separated-item:first-child{padding-top:0}.list-separated-item:last-child{padding-bottom:0}.list-separated-item+.list-separated-item{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.list-inline-item:not(:last-child){margin-right:auto;margin-inline-end:.5rem}.list-inline-dots .list-inline-item+.list-inline-item:before{content:" \b7 ";margin-inline-end:.5rem}.loader{position:relative;display:block;width:2.5rem;height:2.5rem;color:#066fd1;vertical-align:middle}.loader:after{position:absolute;top:0;left:0;width:100%;height:100%;content:"";border:1px var(--tblr-border-style);border-color:transparent;border-top-color:currentColor;border-left-color:currentColor;border-radius:100rem;animation:rotate-360 .6s linear;animation-iteration-count:infinite}.dimmer{position:relative}.dimmer .loader{position:absolute;top:50%;right:0;left:0;display:none;margin:0 auto;transform:translateY(-50%)}.dimmer.active .loader{display:block}.dimmer.active .dimmer-content{pointer-events:none;opacity:.1}@keyframes animated-dots{0%{transform:translate(-100%)}}.animated-dots{display:inline-block;overflow:hidden;vertical-align:bottom}.animated-dots:after{display:inline-block;content:"...";animation:animated-dots 1.2s steps(4,jump-none) infinite}.modal-content>.btn-close,.modal-header>.btn-close{position:absolute;top:0;right:0;width:3.5rem;height:3.5rem;margin:0;padding:0;z-index:10}.modal-body{scrollbar-color:rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.16)}.modal-body::-webkit-scrollbar{width:1rem;height:1rem;transition:background .3s}@media (prefers-reduced-motion: reduce){.modal-body::-webkit-scrollbar{transition:none}}.modal-body::-webkit-scrollbar-thumb{border-radius:1rem;border:5px solid transparent;box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.16)}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)),.32)}.modal-body::-webkit-scrollbar-corner{background:transparent}.modal-body .modal-title{margin-bottom:1rem}.modal-body+.modal-body{border-top:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.modal-status{position:absolute;top:0;left:0;right:0;height:2px;background:var(--tblr-secondary);border-radius:var(--tblr-border-radius-lg) var(--tblr-border-radius-lg) 0 0}.modal-header{align-items:center;min-height:3.5rem;background:transparent;padding:0 3.5rem 0 1.5rem}.modal-title{font-size:1rem;font-weight:var(--tblr-font-weight-bold);color:inherit;line-height:1.4285714286}.modal-footer{padding-top:.75rem;padding-bottom:.75rem}.modal-blur{backdrop-filter:blur(4px)}.modal-full-width{max-width:none;margin:0 .5rem}.nav-vertical,.nav-vertical .nav{flex-direction:column;flex-wrap:nowrap}.nav-vertical .nav{margin-left:1.25rem;border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);padding-left:.5rem}.nav-vertical .nav-link.active,.nav-vertical .nav-item.show .nav-link{font-weight:var(--tblr-font-weight-bold)}.nav-vertical.nav-pills{margin:0 -.75rem}.nav-bordered{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)}.nav-bordered .nav-item+.nav-item{margin-left:1.25rem}.nav-bordered .nav-link{padding-left:0;padding-right:0;margin:0 0 -var(--tblr-border-width);border:0;border-bottom:2px var(--tblr-border-style) transparent;color:var(--tblr-secondary)}.nav-bordered .nav-link.active,.nav-bordered .nav-item.show .nav-link{color:var(--tblr-primary);border-color:var(--tblr-primary)}.nav-link{display:flex;transition:color .3s;align-items:center}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link-toggle{margin-left:auto;padding:0 .25rem;transition:transform .3s}@media (prefers-reduced-motion: reduce){.nav-link-toggle{transition:none}}.nav-link-toggle:after{content:"";display:inline-block;vertical-align:.306em;width:.36em;height:.36em;border-bottom:1px var(--tblr-border-style);border-left:1px var(--tblr-border-style);margin-right:.1em;margin-left:.4em;transform:rotate(-45deg)}.nav-link-toggle:after{margin:0}.nav-link[aria-expanded=true] .nav-link-toggle{transform:rotate(180deg)}.nav-link-icon{width:1.25rem;height:1.25rem;margin-right:.5rem;color:var(--tblr-icon-color)}.nav-link-icon svg{display:block;height:100%}.nav-fill .nav-item .nav-link{justify-content:center}.stars{display:inline-flex;color:#8a97ab;font-size:.75rem}.stars .star:not(:first-child){margin-left:.25rem}.pagination{user-select:none}.page-link{min-width:1.75rem;border-radius:var(--tblr-border-radius)}.page-item{text-align:center}.page-item:not(.active) .page-link:hover{background:transparent}.page-item.page-prev,.page-item.page-next{flex:0 0 50%;text-align:left}.page-item.page-next{margin-left:auto;text-align:right}.page-item-subtitle{margin-bottom:2px;font-size:12px;color:var(--tblr-secondary);text-transform:uppercase}.page-item.disabled .page-item-subtitle{color:var(--tblr-disabled-color)}.page-item-title{font-size:1rem;font-weight:var(--tblr-font-weight-normal);color:var(--tblr-body-color)}.page-link:hover .page-item-title{color:#00857d}.page-item.disabled .page-item-title{color:var(--tblr-disabled-color)}@keyframes progress-indeterminate{0%{right:100%;left:-35%}to,60%{right:-90%;left:100%}}.progress{position:relative;width:100%;line-height:.5rem;appearance:none}.progress::-webkit-progress-bar{background:var(--tblr-progress-bg)}.progress::-webkit-progress-value{background-color:var(--tblr-primary)}.progress::-moz-progress-bar{background-color:var(--tblr-primary)}.progress::-ms-fill{background-color:var(--tblr-primary);border:none}.progress-sm{height:.25rem}.progress-bar{height:100%}.progress-bar-indeterminate:after,.progress-bar-indeterminate:before{position:absolute;top:0;bottom:0;left:0;content:"";background-color:inherit;will-change:left,right}.progress-bar-indeterminate:before{animation:progress-indeterminate 1.5s cubic-bezier(.65,.815,.735,.395) infinite}.progress-separated .progress-bar{box-shadow:0 0 0 2px var(--tblr-card-bg, var(--tblr-bg-surface))}.progressbg{position:relative;padding:.25rem .5rem;display:flex}.progressbg-text{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progressbg-progress{position:absolute;inset:0;z-index:0;height:100%;background:transparent;pointer-events:none}.progressbg-value{font-weight:var(--tblr-font-weight-medium);margin-left:auto;padding-left:2rem}.ribbon{--tblr-ribbon-margin: .25rem;--tblr-ribbon-border-radius: var(--tblr-border-radius);position:absolute;top:.75rem;right:calc(-1 * var(--tblr-ribbon-margin));z-index:1;padding:.25rem .75rem;font-size:.625rem;font-weight:var(--tblr-font-weight-bold);line-height:1;color:#fff;text-align:center;text-transform:uppercase;background:var(--tblr-primary);border-color:var(--tblr-primary);border-radius:var(--tblr-ribbon-border-radius) 0 var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius);display:inline-flex;align-items:center;justify-content:center;min-height:2rem;min-width:2rem}.ribbon:before{position:absolute;right:0;bottom:100%;width:0;height:0;content:"";filter:brightness(70%);border:calc(var(--tblr-ribbon-margin) * .5) var(--tblr-border-style);border-color:inherit;border-top-color:transparent;border-right-color:transparent}.ribbon.bg-blue{border-color:var(--tblr-blue)}.ribbon.bg-blue-lt{border-color:rgba(var(--tblr-blue-rgb),.1)!important}.ribbon.bg-azure{border-color:var(--tblr-azure)}.ribbon.bg-azure-lt{border-color:rgba(var(--tblr-azure-rgb),.1)!important}.ribbon.bg-indigo{border-color:var(--tblr-indigo)}.ribbon.bg-indigo-lt{border-color:rgba(var(--tblr-indigo-rgb),.1)!important}.ribbon.bg-purple{border-color:var(--tblr-purple)}.ribbon.bg-purple-lt{border-color:rgba(var(--tblr-purple-rgb),.1)!important}.ribbon.bg-pink{border-color:var(--tblr-pink)}.ribbon.bg-pink-lt{border-color:rgba(var(--tblr-pink-rgb),.1)!important}.ribbon.bg-red{border-color:var(--tblr-red)}.ribbon.bg-red-lt{border-color:rgba(var(--tblr-red-rgb),.1)!important}.ribbon.bg-orange{border-color:var(--tblr-orange)}.ribbon.bg-orange-lt{border-color:rgba(var(--tblr-orange-rgb),.1)!important}.ribbon.bg-yellow{border-color:var(--tblr-yellow)}.ribbon.bg-yellow-lt{border-color:rgba(var(--tblr-yellow-rgb),.1)!important}.ribbon.bg-lime{border-color:var(--tblr-lime)}.ribbon.bg-lime-lt{border-color:rgba(var(--tblr-lime-rgb),.1)!important}.ribbon.bg-green{border-color:var(--tblr-green)}.ribbon.bg-green-lt{border-color:rgba(var(--tblr-green-rgb),.1)!important}.ribbon.bg-teal{border-color:var(--tblr-teal)}.ribbon.bg-teal-lt{border-color:rgba(var(--tblr-teal-rgb),.1)!important}.ribbon.bg-cyan{border-color:var(--tblr-cyan)}.ribbon.bg-cyan-lt{border-color:rgba(var(--tblr-cyan-rgb),.1)!important}.ribbon .icon{width:1.25rem;height:1.25rem;font-size:1.25rem}.ribbon-top{top:calc(-1 * var(--tblr-ribbon-margin));right:.75rem;width:2rem;padding:.5rem 0;border-radius:0 var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius)}.ribbon-top:before{top:0;right:100%;bottom:auto;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon-top.ribbon-start{right:auto;left:.75rem}.ribbon-top.ribbon-start:before{top:0;right:100%;left:auto}.ribbon-start{right:auto;left:calc(-1 * var(--tblr-ribbon-margin));border-radius:0 var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius) var(--tblr-ribbon-border-radius)}.ribbon-start:before{top:auto;bottom:100%;left:0;border-color:inherit;border-top-color:transparent;border-left-color:transparent}.ribbon-bottom{top:auto;bottom:.75rem}.ribbon-bookmark{padding-left:.25rem;border-radius:0 0 var(--tblr-ribbon-border-radius) 0}.ribbon-bookmark:after{position:absolute;top:0;right:100%;display:block;width:0;height:0;content:"";border:1rem var(--tblr-border-style);border-color:inherit;border-right-width:0;border-left-color:transparent;border-left-width:.5rem}.ribbon-bookmark.ribbon-left{padding-right:.5rem}.ribbon-bookmark.ribbon-left:after{right:auto;left:100%;border-right-color:transparent;border-right-width:.5rem;border-left-width:0}.ribbon-bookmark.ribbon-top{padding-right:0;padding-bottom:.25rem;padding-left:0;border-radius:0 var(--tblr-ribbon-border-radius) 0 0}.ribbon-bookmark.ribbon-top:after{top:100%;right:0;left:0;border-color:inherit;border-width:1rem;border-top-width:0;border-bottom-color:transparent;border-bottom-width:.5rem}.markdown{line-height:1.7142857143}.markdown>:first-child{margin-top:0}.markdown>:last-child,.markdown>:last-child .highlight{margin-bottom:0}@media (min-width: 768px){.markdown>hr,.markdown>.hr{margin-top:3em;margin-bottom:3em}}.markdown>h1,.markdown>.h1,.markdown>h2,.markdown>.h2,.markdown>h3,.markdown>.h3,.markdown>h4,.markdown>.h4,.markdown>h5,.markdown>.h5,.markdown>h6,.markdown>.h6{font-weight:var(--tblr-font-weight-bold)}.markdown>blockquote{font-size:1rem;margin:1.5rem 0;padding:.5rem 1.5rem}.markdown>img{border-radius:var(--tblr-border-radius)}.placeholder:not(.btn):not([class*=bg-]){background-color:currentColor!important}.placeholder:not(.avatar):not([class*=card-img-]){border-radius:var(--tblr-border-radius)}.steps{--tblr-steps-color: var(--tblr-primary);--tblr-steps-inactive-color: var(--tblr-border-color);--tblr-steps-dot-size: .5rem;--tblr-steps-border-width: 2px;display:flex;flex-wrap:nowrap;width:100%;padding:0;margin:0;list-style:none}.steps-blue{--tblr-steps-color: var(--tblr-blue)}.steps-azure{--tblr-steps-color: var(--tblr-azure)}.steps-indigo{--tblr-steps-color: var(--tblr-indigo)}.steps-purple{--tblr-steps-color: var(--tblr-purple)}.steps-pink{--tblr-steps-color: var(--tblr-pink)}.steps-red{--tblr-steps-color: var(--tblr-red)}.steps-orange{--tblr-steps-color: var(--tblr-orange)}.steps-yellow{--tblr-steps-color: var(--tblr-yellow)}.steps-lime{--tblr-steps-color: var(--tblr-lime)}.steps-green{--tblr-steps-color: var(--tblr-green)}.steps-teal{--tblr-steps-color: var(--tblr-teal)}.steps-cyan{--tblr-steps-color: var(--tblr-cyan)}.step-item{position:relative;flex:1 1 0;min-height:1rem;margin-top:0;color:inherit;text-align:center;cursor:default;padding-top:calc(var(--tblr-steps-dot-size))}a.step-item{cursor:pointer}a.step-item:hover{color:inherit}.step-item:after,.step-item:before{background:var(--tblr-steps-color)}.step-item:not(:last-child):after{position:absolute;left:50%;width:100%;content:"";transform:translateY(-50%)}.step-item:after{top:calc(var(--tblr-steps-dot-size) * .5);height:var(--tblr-steps-border-width)}.step-item:before{content:"";position:absolute;top:0;left:50%;z-index:1;box-sizing:content-box;display:flex;align-items:center;justify-content:center;border-radius:100rem;transform:translate(-50%);color:var(--tblr-white);width:var(--tblr-steps-dot-size);height:var(--tblr-steps-dot-size)}.step-item.active{font-weight:var(--tblr-font-weight-bold)}.step-item.active:after{background:var(--tblr-steps-inactive-color)}.step-item.active~.step-item{color:var(--tblr-disabled-color)}.step-item.active~.step-item:after,.step-item.active~.step-item:before{background:var(--tblr-steps-inactive-color)}.steps-counter{--tblr-steps-dot-size: 1.5rem;counter-reset:steps}.steps-counter .step-item{counter-increment:steps}.steps-counter .step-item:before{content:counter(steps)}.steps-vertical{--tblr-steps-dot-offset: 6px;flex-direction:column}.steps-vertical.steps-counter{--tblr-steps-dot-offset: -2px}.steps-vertical .step-item{text-align:left;padding-top:0;padding-left:calc(var(--tblr-steps-dot-size) + 1rem);min-height:auto}.steps-vertical .step-item:not(:first-child){margin-top:1rem}.steps-vertical .step-item:before{top:var(--tblr-steps-dot-offset);left:0;transform:translate(0)}.steps-vertical .step-item:not(:last-child):after{position:absolute;content:"";transform:translate(-50%);top:var(--tblr-steps-dot-offset);left:calc(var(--tblr-steps-dot-size) * .5);width:var(--tblr-steps-border-width);height:calc(100% + 1rem)}@keyframes status-pulsate-main{40%{transform:scale(1.25)}60%{transform:scale(1.25)}}@keyframes status-pulsate-secondary{10%{transform:scale(1)}30%{transform:scale(3)}80%{transform:scale(3)}to{transform:scale(1)}}@keyframes status-pulsate-tertiary{25%{transform:scale(1)}80%{transform:scale(3);opacity:0}to{transform:scale(3);opacity:0}}.status{--tblr-status-height: 1.5rem;--tblr-status-color: #6c7a91;--tblr-status-color-rgb: 108, 122, 145;display:inline-flex;align-items:center;height:var(--tblr-status-height);padding:.25rem .75rem;gap:.5rem;color:var(--tblr-status-color);background:rgba(var(--tblr-status-color-rgb),.1);font-size:.875rem;text-transform:none;letter-spacing:normal;border-radius:100rem;font-weight:var(--tblr-font-weight-medium);line-height:1;margin:0}.status .status-dot{background:var(--tblr-status-color)}.status .icon{font-size:1.25rem}.status-lite{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color)!important;background:transparent!important;color:var(--tblr-body-color)!important}.status-primary{--tblr-status-color: #00857D;--tblr-status-color-rgb: 0, 133, 125}.status-secondary{--tblr-status-color: #6c7a91;--tblr-status-color-rgb: 108, 122, 145}.status-success{--tblr-status-color: #2fb344;--tblr-status-color-rgb: 47, 179, 68}.status-info{--tblr-status-color: #4299e1;--tblr-status-color-rgb: 66, 153, 225}.status-warning{--tblr-status-color: #f76707;--tblr-status-color-rgb: 247, 103, 7}.status-danger{--tblr-status-color: #d63939;--tblr-status-color-rgb: 214, 57, 57}.status-light{--tblr-status-color: #f6f8fb;--tblr-status-color-rgb: 246, 248, 251}.status-dark{--tblr-status-color: #182433;--tblr-status-color-rgb: 24, 36, 51}.status-muted{--tblr-status-color: #6c7a91;--tblr-status-color-rgb: 108, 122, 145}.status-blue{--tblr-status-color: #066fd1;--tblr-status-color-rgb: 6, 111, 209}.status-azure{--tblr-status-color: #4299e1;--tblr-status-color-rgb: 66, 153, 225}.status-indigo{--tblr-status-color: #4263eb;--tblr-status-color-rgb: 66, 99, 235}.status-purple{--tblr-status-color: #ae3ec9;--tblr-status-color-rgb: 174, 62, 201}.status-pink{--tblr-status-color: #d6336c;--tblr-status-color-rgb: 214, 51, 108}.status-red{--tblr-status-color: #d63939;--tblr-status-color-rgb: 214, 57, 57}.status-orange{--tblr-status-color: #f76707;--tblr-status-color-rgb: 247, 103, 7}.status-yellow{--tblr-status-color: #f59f00;--tblr-status-color-rgb: 245, 159, 0}.status-lime{--tblr-status-color: #74b816;--tblr-status-color-rgb: 116, 184, 22}.status-green{--tblr-status-color: #2fb344;--tblr-status-color-rgb: 47, 179, 68}.status-teal{--tblr-status-color: #0ca678;--tblr-status-color-rgb: 12, 166, 120}.status-cyan{--tblr-status-color: #17a2b8;--tblr-status-color-rgb: 23, 162, 184}.status-x{--tblr-status-color: #000000;--tblr-status-color-rgb: 0, 0, 0}.status-facebook{--tblr-status-color: #1877f2;--tblr-status-color-rgb: 24, 119, 242}.status-twitter{--tblr-status-color: #1da1f2;--tblr-status-color-rgb: 29, 161, 242}.status-linkedin{--tblr-status-color: #0a66c2;--tblr-status-color-rgb: 10, 102, 194}.status-google{--tblr-status-color: #dc4e41;--tblr-status-color-rgb: 220, 78, 65}.status-youtube{--tblr-status-color: #ff0000;--tblr-status-color-rgb: 255, 0, 0}.status-vimeo{--tblr-status-color: #1ab7ea;--tblr-status-color-rgb: 26, 183, 234}.status-dribbble{--tblr-status-color: #ea4c89;--tblr-status-color-rgb: 234, 76, 137}.status-github{--tblr-status-color: #181717;--tblr-status-color-rgb: 24, 23, 23}.status-instagram{--tblr-status-color: #e4405f;--tblr-status-color-rgb: 228, 64, 95}.status-pinterest{--tblr-status-color: #bd081c;--tblr-status-color-rgb: 189, 8, 28}.status-vk{--tblr-status-color: #6383a8;--tblr-status-color-rgb: 99, 131, 168}.status-rss{--tblr-status-color: #ffa500;--tblr-status-color-rgb: 255, 165, 0}.status-flickr{--tblr-status-color: #0063dc;--tblr-status-color-rgb: 0, 99, 220}.status-bitbucket{--tblr-status-color: #0052cc;--tblr-status-color-rgb: 0, 82, 204}.status-tabler{--tblr-status-color: #066fd1;--tblr-status-color-rgb: 6, 111, 209}.status-dot{--tblr-status-dot-color: var(--tblr-status-color, #6c7a91);--tblr-status-size: .5rem;position:relative;display:inline-block;width:var(--tblr-status-size);height:var(--tblr-status-size);background:var(--tblr-status-dot-color);border-radius:100rem}.status-dot-animated:before{content:"";position:absolute;inset:0;z-index:0;background:inherit;border-radius:inherit;opacity:.6;animation:1s linear 2s backwards infinite status-pulsate-tertiary}.status-indicator{--tblr-status-indicator-size: 2.5rem;--tblr-status-indicator-color: var(--tblr-status-color, #6c7a91);display:block;position:relative;width:var(--tblr-status-indicator-size);height:var(--tblr-status-indicator-size)}.status-indicator-circle{--tblr-status-circle-size: .75rem;position:absolute;left:50%;top:50%;margin:calc(var(--tblr-status-circle-size) / -2) 0 0 calc(var(--tblr-status-circle-size) / -2);width:var(--tblr-status-circle-size);height:var(--tblr-status-circle-size);border-radius:100rem;background:var(--tblr-status-color)}.status-indicator-circle:nth-child(1){z-index:3}.status-indicator-circle:nth-child(2){z-index:2;opacity:.1}.status-indicator-circle:nth-child(3){z-index:1;opacity:.3}.status-indicator-animated .status-indicator-circle:nth-child(1){animation:2s linear 1s infinite backwards status-pulsate-main}.status-indicator-animated .status-indicator-circle:nth-child(2){animation:2s linear 1s infinite backwards status-pulsate-secondary}.status-indicator-animated .status-indicator-circle:nth-child(3){animation:2s linear 1s infinite backwards status-pulsate-tertiary}.switch-icon{display:inline-block;line-height:1;border:0;padding:0;background:transparent;width:1.25rem;height:1.25rem;vertical-align:bottom;position:relative;cursor:pointer}.switch-icon.disabled{pointer-events:none;opacity:.4}.switch-icon:focus{outline:none}.switch-icon svg{display:block;width:100%;height:100%}.switch-icon .switch-icon-a,.switch-icon .switch-icon-b{display:block;width:100%;height:100%}.switch-icon .switch-icon-a{opacity:1}.switch-icon .switch-icon-b{position:absolute;top:0;left:0;opacity:0}.switch-icon.active .switch-icon-a{opacity:0}.switch-icon.active .switch-icon-b{opacity:1}.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:opacity .5s}@media (prefers-reduced-motion: reduce){.switch-icon-fade .switch-icon-a,.switch-icon-fade .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:opacity .5s,transform 0s .5s}@media (prefers-reduced-motion: reduce){.switch-icon-scale .switch-icon-a,.switch-icon-scale .switch-icon-b{transition:none}}.switch-icon-scale .switch-icon-b{transform:scale(1.5)}.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:opacity 0s,transform .5s}@media (prefers-reduced-motion: reduce){.switch-icon-scale.active .switch-icon-a,.switch-icon-scale.active .switch-icon-b{transition:none}}.switch-icon-scale.active .switch-icon-b{transform:scale(1)}.switch-icon-flip{perspective:10em}.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{backface-visibility:hidden;transform-style:preserve-3d;transition:opacity 0s .2s,transform .4s ease-in-out}@media (prefers-reduced-motion: reduce){.switch-icon-flip .switch-icon-a,.switch-icon-flip .switch-icon-b{transition:none}}.switch-icon-flip .switch-icon-a{opacity:1;transform:rotateY(0)}.switch-icon-flip .switch-icon-b{opacity:1;transform:rotateY(-180deg)}.switch-icon-flip.active .switch-icon-a{opacity:1;transform:rotateY(180deg)}.switch-icon-flip.active .switch-icon-b{opacity:1;transform:rotateY(0)}.switch-icon-slide-up,.switch-icon-slide-left,.switch-icon-slide-right,.switch-icon-slide-down{overflow:hidden}.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b{transition:opacity .3s,transform .3s}@media (prefers-reduced-motion: reduce){.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-up .switch-icon-b,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-down .switch-icon-a,.switch-icon-slide-down .switch-icon-b{transition:none}}.switch-icon-slide-up .switch-icon-a,.switch-icon-slide-left .switch-icon-a,.switch-icon-slide-right .switch-icon-a,.switch-icon-slide-down .switch-icon-a{transform:translateY(0)}.switch-icon-slide-up .switch-icon-b,.switch-icon-slide-left .switch-icon-b,.switch-icon-slide-right .switch-icon-b,.switch-icon-slide-down .switch-icon-b{transform:translateY(100%)}.switch-icon-slide-up.active .switch-icon-a,.switch-icon-slide-left.active .switch-icon-a,.switch-icon-slide-right.active .switch-icon-a,.switch-icon-slide-down.active .switch-icon-a{transform:translateY(-100%)}.switch-icon-slide-up.active .switch-icon-b,.switch-icon-slide-left.active .switch-icon-b,.switch-icon-slide-right.active .switch-icon-b,.switch-icon-slide-down.active .switch-icon-b{transform:translateY(0)}.switch-icon-slide-left .switch-icon-a{transform:translate(0)}.switch-icon-slide-left .switch-icon-b{transform:translate(100%)}.switch-icon-slide-left.active .switch-icon-a{transform:translate(-100%)}.switch-icon-slide-left.active .switch-icon-b,.switch-icon-slide-right .switch-icon-a{transform:translate(0)}.switch-icon-slide-right .switch-icon-b{transform:translate(-100%)}.switch-icon-slide-right.active .switch-icon-a{transform:translate(100%)}.switch-icon-slide-right.active .switch-icon-b{transform:translate(0)}.switch-icon-slide-down .switch-icon-a{transform:translateY(0)}.switch-icon-slide-down .switch-icon-b{transform:translateY(-100%)}.switch-icon-slide-down.active .switch-icon-a{transform:translateY(100%)}.switch-icon-slide-down.active .switch-icon-b{transform:translateY(0)}.table thead th,.markdown>table thead th{color:var(--tblr-gray-500);background:var(--tblr-bg-surface-tertiary);font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);padding-top:.5rem;padding-bottom:.5rem;white-space:nowrap}@media print{.table thead th,.markdown>table thead th{background:transparent}}.table-responsive .table,.table-responsive .markdown>table{margin-bottom:0}.table-responsive+.card-footer{border-top:0}.table-transparent thead th{background:transparent}.table-nowrap>:not(caption)>*>*{white-space:nowrap}.table-vcenter>:not(caption)>*>*{vertical-align:middle}.table-center>:not(caption)>*>*{text-align:center}.td-truncate{max-width:1px;width:100%}.table-mobile{display:block}.table-mobile thead{display:none}.table-mobile tbody,.table-mobile tr{display:flex;flex-direction:column}.table-mobile td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile .btn{display:block}@media (max-width: 575.98px){.table-mobile-sm{display:block}.table-mobile-sm thead{display:none}.table-mobile-sm tbody,.table-mobile-sm tr{display:flex;flex-direction:column}.table-mobile-sm td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-sm td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-sm tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-sm .btn{display:block}}@media (max-width: 767.98px){.table-mobile-md{display:block}.table-mobile-md thead{display:none}.table-mobile-md tbody,.table-mobile-md tr{display:flex;flex-direction:column}.table-mobile-md td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-md td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-md tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-md .btn{display:block}}@media (max-width: 991.98px){.table-mobile-lg{display:block}.table-mobile-lg thead{display:none}.table-mobile-lg tbody,.table-mobile-lg tr{display:flex;flex-direction:column}.table-mobile-lg td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-lg td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-lg tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-lg .btn{display:block}}@media (max-width: 1199.98px){.table-mobile-xl{display:block}.table-mobile-xl thead{display:none}.table-mobile-xl tbody,.table-mobile-xl tr{display:flex;flex-direction:column}.table-mobile-xl td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-xl td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-xl tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-xl .btn{display:block}}@media (max-width: 1399.98px){.table-mobile-xxl{display:block}.table-mobile-xxl thead{display:none}.table-mobile-xxl tbody,.table-mobile-xxl tr{display:flex;flex-direction:column}.table-mobile-xxl td{display:block;padding:.5rem!important;border:none;color:var(--tblr-body-color)!important}.table-mobile-xxl td[data-label]:before{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);content:attr(data-label);display:block}.table-mobile-xxl tr{border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent)}.table-mobile-xxl .btn{display:block}}.table-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;border:0;background:inherit;display:block;width:100%;text-align:inherit;transition:color .3s;margin:-.5rem;padding:.5rem}@media (prefers-reduced-motion: reduce){.table-sort{transition:none}}.table-sort:hover,.table-sort.asc,.table-sort.desc{color:var(--tblr-body-color)}.table-sort:after{content:"";display:inline-flex;width:1rem;height:1rem;vertical-align:bottom;mask-image:url("data:image/svg+xml, ");background:currentColor;margin-left:.25rem}.table-sort.asc:after{mask-image:url("data:image/svg+xml, ")}.table-sort.desc:after{mask-image:url("data:image/svg+xml, ")}.table-borderless thead th{background:transparent}.tag{--tblr-tag-height: 1.5rem;border:1px solid var(--tblr-border-color);display:inline-flex;align-items:center;height:var(--tblr-tag-height);border-radius:var(--tblr-border-radius);padding:0 .5rem;background:var(--tblr-bg-surface);box-shadow:var(--tblr-box-shadow-input);gap:.5rem}.tag .btn-close{margin-right:-.25rem;margin-left:-.125rem;padding:0;width:1rem;height:1rem;font-size:.5rem}.tag-badge{--tblr-badge-font-size: .625rem;--tblr-badge-padding-x: .25rem;--tblr-badge-padding-y: .125rem;margin-right:-.25rem}.tag-avatar,.tag-flag,.tag-payment,.tag-icon,.tag-check{margin-left:-.25rem}.tag-icon{color:var(--tblr-secondary);margin-right:-.125rem;width:1rem;height:1rem}.tag-check{width:1rem;height:1rem;background-size:1rem}.tags-list{--tblr-list-gap: .5rem;display:flex;flex-wrap:wrap;gap:var(--tblr-list-gap)}.toast{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color-translucent);box-shadow:#1824330a 0 2px 4px}.toast .toast-header{user-select:none}.toast button[data-bs-dismiss=toast]{outline:none}.toast-primary{--tblr-toast-color: #00857D}.toast-secondary{--tblr-toast-color: #6c7a91}.toast-success{--tblr-toast-color: #2fb344}.toast-info{--tblr-toast-color: #4299e1}.toast-warning{--tblr-toast-color: #f76707}.toast-danger{--tblr-toast-color: #d63939}.toast-light{--tblr-toast-color: #f6f8fb}.toast-dark{--tblr-toast-color: #182433}.toast-muted{--tblr-toast-color: #6c7a91}.toast-blue{--tblr-toast-color: #066fd1}.toast-azure{--tblr-toast-color: #4299e1}.toast-indigo{--tblr-toast-color: #4263eb}.toast-purple{--tblr-toast-color: #ae3ec9}.toast-pink{--tblr-toast-color: #d6336c}.toast-red{--tblr-toast-color: #d63939}.toast-orange{--tblr-toast-color: #f76707}.toast-yellow{--tblr-toast-color: #f59f00}.toast-lime{--tblr-toast-color: #74b816}.toast-green{--tblr-toast-color: #2fb344}.toast-teal{--tblr-toast-color: #0ca678}.toast-cyan{--tblr-toast-color: #17a2b8}.toast-x{--tblr-toast-color: #000000}.toast-facebook{--tblr-toast-color: #1877f2}.toast-twitter{--tblr-toast-color: #1da1f2}.toast-linkedin{--tblr-toast-color: #0a66c2}.toast-google{--tblr-toast-color: #dc4e41}.toast-youtube{--tblr-toast-color: #ff0000}.toast-vimeo{--tblr-toast-color: #1ab7ea}.toast-dribbble{--tblr-toast-color: #ea4c89}.toast-github{--tblr-toast-color: #181717}.toast-instagram{--tblr-toast-color: #e4405f}.toast-pinterest{--tblr-toast-color: #bd081c}.toast-vk{--tblr-toast-color: #6383a8}.toast-rss{--tblr-toast-color: #ffa500}.toast-flickr{--tblr-toast-color: #0063dc}.toast-bitbucket{--tblr-toast-color: #0052cc}.toast-tabler{--tblr-toast-color: #066fd1}.toolbar{display:flex;flex-wrap:nowrap;flex-shrink:0;margin:0 -.5rem}.toolbar>*{margin:0 .5rem}.tracking{--tblr-tracking-height: 1.5rem;--tblr-tracking-gap-width: .125rem;--tblr-tracking-block-border-radius: var(--tblr-border-radius);display:flex;gap:var(--tblr-tracking-gap-width)}.tracking-squares{--tblr-tracking-block-border-radius: var(--tblr-border-radius-sm)}.tracking-squares .tracking-block{height:auto}.tracking-squares .tracking-block:before{content:"";display:block;padding-top:100%}.tracking-block{flex:1;border-radius:var(--tblr-tracking-block-border-radius);height:var(--tblr-tracking-height);min-width:.25rem;background:var(--tblr-border-color)}.timeline{--tblr-timeline-icon-size: 2.5rem;position:relative;list-style:none;padding:0}.timeline-event{position:relative}.timeline-event:not(:last-child){margin-bottom:var(--tblr-page-padding)}.timeline-event:not(:last-child):before{content:"";position:absolute;top:var(--tblr-timeline-icon-size);left:calc(var(--tblr-timeline-icon-size) / 2);bottom:calc(-1 * var(--tblr-page-padding));width:var(--tblr-border-width);background-color:var(--tblr-border-color);border-radius:var(--tblr-border-radius)}.timeline-event-icon{position:absolute;display:flex;align-items:center;justify-content:center;width:var(--tblr-timeline-icon-size, 2.5rem);height:var(--tblr-timeline-icon-size, 2.5rem);background:var(--tblr-gray-200);color:var(--tblr-secondary);border-radius:var(--tblr-border-radius);z-index:5}.timeline-event-card{margin-left:calc(var(--tblr-timeline-icon-size, 2.5rem) + var(--tblr-page-padding))}.timeline-simple .timeline-event-icon{display:none}.timeline-simple .timeline-event-card{margin-left:0}.hr-text{display:flex;align-items:center;margin:2rem 0;font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary);height:1px}.hr-text:after,.hr-text:before{flex:1 1 auto;height:1px;background-color:var(--tblr-border-color)}.hr-text:before{content:"";margin-right:.5rem}.hr-text:after{content:"";margin-left:.5rem}.hr-text>*:first-child{padding-right:.5rem;padding-left:0;color:var(--tblr-secondary)}.hr-text.hr-text-left:before{content:none}.hr-text.hr-text-left>*:first-child{padding-right:.5rem;padding-left:.5rem}.hr-text.hr-text-right:before{content:""}.hr-text.hr-text-right:after{content:none}.hr-text.hr-text-right>*:first-child{padding-right:0;padding-left:.5rem}.card>.hr-text{margin:0}.hr-text-spaceless{margin:-.5rem 0}.lead{line-height:1.4}a{text-decoration-skip-ink:auto}h1 a,h2 a,h3 a,.field-group h2 a,h4 a,h5 a,h6 a,.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover,.h1 a:hover,.h2 a:hover,.h3 a:hover,.h4 a:hover,.h5 a:hover,.h6 a:hover{color:inherit}h1,.h1{font-size:var(--tblr-font-size-h1);line-height:var(--tblr-line-height-h1)}h2,.h2{font-size:var(--tblr-font-size-h2);line-height:var(--tblr-line-height-h2)}h3,.field-group h2,.field-group .h2,.h3{font-size:var(--tblr-font-size-h3);line-height:var(--tblr-line-height-h3)}h4,.h4{font-size:var(--tblr-font-size-h4);line-height:var(--tblr-line-height-h4)}h5,.h5{font-size:var(--tblr-font-size-h5);line-height:var(--tblr-line-height-h5)}h6,.h6{font-size:var(--tblr-font-size-h6);line-height:var(--tblr-line-height-h6)}strong,.strong,b{font-weight:var(--tblr-font-weight-bold)}blockquote{padding-left:1rem;border-left:2px var(--tblr-border-style) var(--tblr-border-color)}blockquote p{margin-bottom:1rem}blockquote cite{display:block;text-align:right}blockquote cite:before{content:"\2014 "}ul,ol{padding-left:1.5rem}hr,.hr{margin:2rem 0}dl dd:last-child{margin-bottom:0}pre{padding:1rem;background:var(--tblr-bg-surface-dark);color:var(--tblr-light);border-radius:var(--tblr-border-radius)}pre code{background:transparent}code{background:var(--tblr-code-bg);padding:2px 4px;border-radius:var(--tblr-border-radius)}kbd,.kbd{border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);display:inline-block;box-sizing:border-box;max-width:100%;font-size:var(--tblr-font-size-h5);font-weight:var(--tblr-font-weight-medium);line-height:1;vertical-align:baseline;border-radius:var(--tblr-border-radius)}img,svg{max-width:100%;height:auto}.list-unstyled{margin-left:0}::selection{background-color:rgba(var(--tblr-primary-rgb),.16)}[class^=link-].disabled,[class*=" link-"].disabled{color:var(--tblr-disabled-color)!important;pointer-events:none}.subheader{font-size:.625rem;font-weight:var(--tblr-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1rem;color:var(--tblr-secondary)}.chart{display:block;min-height:10rem}.chart text{font-family:inherit}.chart-sm{height:2.5rem}.chart-lg{height:15rem}.chart-square{height:5.75rem}.chart-sparkline{position:relative;width:4rem;height:2.5rem;line-height:1;min-height:0!important}.chart-sparkline-sm{height:1.5rem}.chart-sparkline-square{width:2.5rem}.chart-sparkline-wide{width:6rem}.chart-sparkline-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.625rem}.chart-sparkline-label .icon{width:1rem;height:1rem;font-size:1rem}.offcanvas-header{border-bottom:var(--tblr-border-width) var(--tblr-border-style) rgba(4,32,69,.1)}.offcanvas-footer{padding:1.5rem}.offcanvas-title{font-size:1rem;font-weight:var(--tblr-font-weight-medium);line-height:1.5rem}.offcanvas-narrow{width:20rem}.chat-bubbles{display:flex;flex-direction:column;gap:1rem}.chat-bubble{background:var(--tblr-bg-surface-secondary);border-radius:var(--tblr-border-radius-lg);padding:1rem;position:relative}.chat-bubble-me{background-color:var(--tblr-primary-lt);box-shadow:none}.chat-bubble-title{margin-bottom:.25rem}.chat-bubble-author{font-weight:600}.chat-bubble-date{color:var(--tblr-secondary)}.chat-bubble-body>*:last-child{margin-bottom:0}.bg-white-overlay{color:#fff;background-color:#f6f8fb3d}.bg-dark-overlay{color:#fff;background-color:#1824333d}.bg-cover{background-repeat:no-repeat;background-size:cover;background-position:center}.bg-primary{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-primary-rgb),var(--tblr-bg-opacity))!important}.bg-primary-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-primary-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-primary-lt-rgb),var(--tblr-bg-opacity))!important}.border-primary{border-color:#00857d!important}.bg-secondary{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-secondary-rgb),var(--tblr-bg-opacity))!important}.bg-secondary-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-secondary-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-secondary-lt-rgb),var(--tblr-bg-opacity))!important}.border-secondary{border-color:#6c7a91!important}.bg-success{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-success-rgb),var(--tblr-bg-opacity))!important}.bg-success-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-success-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-success-lt-rgb),var(--tblr-bg-opacity))!important}.border-success{border-color:#2fb344!important}.bg-info{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-info-rgb),var(--tblr-bg-opacity))!important}.bg-info-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-info-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-info-lt-rgb),var(--tblr-bg-opacity))!important}.border-info{border-color:#4299e1!important}.bg-warning{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-warning-rgb),var(--tblr-bg-opacity))!important}.bg-warning-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-warning-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-warning-lt-rgb),var(--tblr-bg-opacity))!important}.border-warning{border-color:#f76707!important}.bg-danger{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-danger-rgb),var(--tblr-bg-opacity))!important}.bg-danger-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-danger-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-danger-lt-rgb),var(--tblr-bg-opacity))!important}.border-danger{border-color:#d63939!important}.bg-light{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-light-rgb),var(--tblr-bg-opacity))!important}.bg-light-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-light-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-light-lt-rgb),var(--tblr-bg-opacity))!important}.border-light{border-color:#f6f8fb!important}.bg-dark{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-dark-rgb),var(--tblr-bg-opacity))!important}.bg-dark-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-dark-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-dark-lt-rgb),var(--tblr-bg-opacity))!important}.border-dark{border-color:#182433!important}.bg-muted{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-muted-rgb),var(--tblr-bg-opacity))!important}.bg-muted-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-muted-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-muted-lt-rgb),var(--tblr-bg-opacity))!important}.border-muted{border-color:#6c7a91!important}.bg-blue{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-blue-rgb),var(--tblr-bg-opacity))!important}.bg-blue-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-blue-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-blue-lt-rgb),var(--tblr-bg-opacity))!important}.border-blue{border-color:#066fd1!important}.bg-azure{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-azure-rgb),var(--tblr-bg-opacity))!important}.bg-azure-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-azure-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-azure-lt-rgb),var(--tblr-bg-opacity))!important}.border-azure{border-color:#4299e1!important}.bg-indigo{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-indigo-rgb),var(--tblr-bg-opacity))!important}.bg-indigo-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-indigo-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-indigo-lt-rgb),var(--tblr-bg-opacity))!important}.border-indigo{border-color:#4263eb!important}.bg-purple{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-purple-rgb),var(--tblr-bg-opacity))!important}.bg-purple-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-purple-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-purple-lt-rgb),var(--tblr-bg-opacity))!important}.border-purple{border-color:#ae3ec9!important}.bg-pink{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-pink-rgb),var(--tblr-bg-opacity))!important}.bg-pink-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-pink-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-pink-lt-rgb),var(--tblr-bg-opacity))!important}.border-pink{border-color:#d6336c!important}.bg-red{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-red-rgb),var(--tblr-bg-opacity))!important}.bg-red-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-red-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-red-lt-rgb),var(--tblr-bg-opacity))!important}.border-red{border-color:#d63939!important}.bg-orange{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-orange-rgb),var(--tblr-bg-opacity))!important}.bg-orange-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-orange-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-orange-lt-rgb),var(--tblr-bg-opacity))!important}.border-orange{border-color:#f76707!important}.bg-yellow{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-yellow-rgb),var(--tblr-bg-opacity))!important}.bg-yellow-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-yellow-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-yellow-lt-rgb),var(--tblr-bg-opacity))!important}.border-yellow{border-color:#f59f00!important}.bg-lime{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-lime-rgb),var(--tblr-bg-opacity))!important}.bg-lime-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-lime-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-lime-lt-rgb),var(--tblr-bg-opacity))!important}.border-lime{border-color:#74b816!important}.bg-green{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-green-rgb),var(--tblr-bg-opacity))!important}.bg-green-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-green-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-green-lt-rgb),var(--tblr-bg-opacity))!important}.border-green{border-color:#2fb344!important}.bg-teal{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-teal-rgb),var(--tblr-bg-opacity))!important}.bg-teal-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-teal-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-teal-lt-rgb),var(--tblr-bg-opacity))!important}.border-teal{border-color:#0ca678!important}.bg-cyan{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-cyan-rgb),var(--tblr-bg-opacity))!important}.bg-cyan-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-cyan-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-cyan-lt-rgb),var(--tblr-bg-opacity))!important}.border-cyan{border-color:#17a2b8!important}.bg-x{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-x-rgb),var(--tblr-bg-opacity))!important}.bg-x-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-x-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-x-lt-rgb),var(--tblr-bg-opacity))!important}.border-x{border-color:#000!important}.bg-facebook{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-facebook-rgb),var(--tblr-bg-opacity))!important}.bg-facebook-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-facebook-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-facebook-lt-rgb),var(--tblr-bg-opacity))!important}.border-facebook{border-color:#1877f2!important}.bg-twitter{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-twitter-rgb),var(--tblr-bg-opacity))!important}.bg-twitter-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-twitter-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-twitter-lt-rgb),var(--tblr-bg-opacity))!important}.border-twitter{border-color:#1da1f2!important}.bg-linkedin{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-linkedin-rgb),var(--tblr-bg-opacity))!important}.bg-linkedin-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-linkedin-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-linkedin-lt-rgb),var(--tblr-bg-opacity))!important}.border-linkedin{border-color:#0a66c2!important}.bg-google{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-google-rgb),var(--tblr-bg-opacity))!important}.bg-google-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-google-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-google-lt-rgb),var(--tblr-bg-opacity))!important}.border-google{border-color:#dc4e41!important}.bg-youtube{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-youtube-rgb),var(--tblr-bg-opacity))!important}.bg-youtube-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-youtube-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-youtube-lt-rgb),var(--tblr-bg-opacity))!important}.border-youtube{border-color:red!important}.bg-vimeo{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-vimeo-rgb),var(--tblr-bg-opacity))!important}.bg-vimeo-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-vimeo-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-vimeo-lt-rgb),var(--tblr-bg-opacity))!important}.border-vimeo{border-color:#1ab7ea!important}.bg-dribbble{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-dribbble-rgb),var(--tblr-bg-opacity))!important}.bg-dribbble-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-dribbble-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-dribbble-lt-rgb),var(--tblr-bg-opacity))!important}.border-dribbble{border-color:#ea4c89!important}.bg-github{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-github-rgb),var(--tblr-bg-opacity))!important}.bg-github-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-github-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-github-lt-rgb),var(--tblr-bg-opacity))!important}.border-github{border-color:#181717!important}.bg-instagram{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-instagram-rgb),var(--tblr-bg-opacity))!important}.bg-instagram-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-instagram-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-instagram-lt-rgb),var(--tblr-bg-opacity))!important}.border-instagram{border-color:#e4405f!important}.bg-pinterest{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-pinterest-rgb),var(--tblr-bg-opacity))!important}.bg-pinterest-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-pinterest-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-pinterest-lt-rgb),var(--tblr-bg-opacity))!important}.border-pinterest{border-color:#bd081c!important}.bg-vk{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-vk-rgb),var(--tblr-bg-opacity))!important}.bg-vk-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-vk-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-vk-lt-rgb),var(--tblr-bg-opacity))!important}.border-vk{border-color:#6383a8!important}.bg-rss{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-rss-rgb),var(--tblr-bg-opacity))!important}.bg-rss-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-rss-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-rss-lt-rgb),var(--tblr-bg-opacity))!important}.border-rss{border-color:orange!important}.bg-flickr{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-flickr-rgb),var(--tblr-bg-opacity))!important}.bg-flickr-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-flickr-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-flickr-lt-rgb),var(--tblr-bg-opacity))!important}.border-flickr{border-color:#0063dc!important}.bg-bitbucket{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-bg-opacity))!important}.bg-bitbucket-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-bitbucket-lt-rgb),var(--tblr-bg-opacity))!important}.border-bitbucket{border-color:#0052cc!important}.bg-tabler{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-tabler-rgb),var(--tblr-bg-opacity))!important}.bg-tabler-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-tabler-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-tabler-lt-rgb),var(--tblr-bg-opacity))!important}.border-tabler{border-color:#066fd1!important}.bg-white{--tblr-bg-opacity: 1;background-color:rgba(var(--tblr-white-rgb),var(--tblr-bg-opacity))!important}.bg-white-lt{--tblr-bg-opacity: 1;--tblr-text-opacity: 1;color:rgba(var(--tblr-white-rgb),var(--tblr-text-opacity))!important;background-color:rgba(var(--tblr-white-lt-rgb),var(--tblr-bg-opacity))!important}.border-white{border-color:#fff!important}.text-primary{--tblr-text-opacity: 1;color:rgba(var(--tblr-primary-rgb),var(--tblr-text-opacity))!important}.text-primary-fg{color:var(--tblr-primary-fg)!important}.text-secondary{--tblr-text-opacity: 1;color:rgba(var(--tblr-secondary-rgb),var(--tblr-text-opacity))!important}.text-secondary-fg{color:var(--tblr-secondary-fg)!important}.text-success{--tblr-text-opacity: 1;color:rgba(var(--tblr-success-rgb),var(--tblr-text-opacity))!important}.text-success-fg{color:var(--tblr-success-fg)!important}.text-info{--tblr-text-opacity: 1;color:rgba(var(--tblr-info-rgb),var(--tblr-text-opacity))!important}.text-info-fg{color:var(--tblr-info-fg)!important}.text-warning{--tblr-text-opacity: 1;color:rgba(var(--tblr-warning-rgb),var(--tblr-text-opacity))!important}.text-warning-fg{color:var(--tblr-warning-fg)!important}.text-danger{--tblr-text-opacity: 1;color:rgba(var(--tblr-danger-rgb),var(--tblr-text-opacity))!important}.text-danger-fg{color:var(--tblr-danger-fg)!important}.text-light{--tblr-text-opacity: 1;color:rgba(var(--tblr-light-rgb),var(--tblr-text-opacity))!important}.text-light-fg{color:var(--tblr-light-fg)!important}.text-dark{--tblr-text-opacity: 1;color:rgba(var(--tblr-dark-rgb),var(--tblr-text-opacity))!important}.text-dark-fg{color:var(--tblr-dark-fg)!important}.text-muted{--tblr-text-opacity: 1;color:rgba(var(--tblr-muted-rgb),var(--tblr-text-opacity))!important}.text-muted-fg{color:var(--tblr-muted-fg)!important}.text-blue{--tblr-text-opacity: 1;color:rgba(var(--tblr-blue-rgb),var(--tblr-text-opacity))!important}.text-blue-fg{color:var(--tblr-blue-fg)!important}.text-azure{--tblr-text-opacity: 1;color:rgba(var(--tblr-azure-rgb),var(--tblr-text-opacity))!important}.text-azure-fg{color:var(--tblr-azure-fg)!important}.text-indigo{--tblr-text-opacity: 1;color:rgba(var(--tblr-indigo-rgb),var(--tblr-text-opacity))!important}.text-indigo-fg{color:var(--tblr-indigo-fg)!important}.text-purple{--tblr-text-opacity: 1;color:rgba(var(--tblr-purple-rgb),var(--tblr-text-opacity))!important}.text-purple-fg{color:var(--tblr-purple-fg)!important}.text-pink{--tblr-text-opacity: 1;color:rgba(var(--tblr-pink-rgb),var(--tblr-text-opacity))!important}.text-pink-fg{color:var(--tblr-pink-fg)!important}.text-red{--tblr-text-opacity: 1;color:rgba(var(--tblr-red-rgb),var(--tblr-text-opacity))!important}.text-red-fg{color:var(--tblr-red-fg)!important}.text-orange{--tblr-text-opacity: 1;color:rgba(var(--tblr-orange-rgb),var(--tblr-text-opacity))!important}.text-orange-fg{color:var(--tblr-orange-fg)!important}.text-yellow{--tblr-text-opacity: 1;color:rgba(var(--tblr-yellow-rgb),var(--tblr-text-opacity))!important}.text-yellow-fg{color:var(--tblr-yellow-fg)!important}.text-lime{--tblr-text-opacity: 1;color:rgba(var(--tblr-lime-rgb),var(--tblr-text-opacity))!important}.text-lime-fg{color:var(--tblr-lime-fg)!important}.text-green{--tblr-text-opacity: 1;color:rgba(var(--tblr-green-rgb),var(--tblr-text-opacity))!important}.text-green-fg{color:var(--tblr-green-fg)!important}.text-teal{--tblr-text-opacity: 1;color:rgba(var(--tblr-teal-rgb),var(--tblr-text-opacity))!important}.text-teal-fg{color:var(--tblr-teal-fg)!important}.text-cyan{--tblr-text-opacity: 1;color:rgba(var(--tblr-cyan-rgb),var(--tblr-text-opacity))!important}.text-cyan-fg{color:var(--tblr-cyan-fg)!important}.text-x{--tblr-text-opacity: 1;color:rgba(var(--tblr-x-rgb),var(--tblr-text-opacity))!important}.text-x-fg{color:var(--tblr-x-fg)!important}.text-facebook{--tblr-text-opacity: 1;color:rgba(var(--tblr-facebook-rgb),var(--tblr-text-opacity))!important}.text-facebook-fg{color:var(--tblr-facebook-fg)!important}.text-twitter{--tblr-text-opacity: 1;color:rgba(var(--tblr-twitter-rgb),var(--tblr-text-opacity))!important}.text-twitter-fg{color:var(--tblr-twitter-fg)!important}.text-linkedin{--tblr-text-opacity: 1;color:rgba(var(--tblr-linkedin-rgb),var(--tblr-text-opacity))!important}.text-linkedin-fg{color:var(--tblr-linkedin-fg)!important}.text-google{--tblr-text-opacity: 1;color:rgba(var(--tblr-google-rgb),var(--tblr-text-opacity))!important}.text-google-fg{color:var(--tblr-google-fg)!important}.text-youtube{--tblr-text-opacity: 1;color:rgba(var(--tblr-youtube-rgb),var(--tblr-text-opacity))!important}.text-youtube-fg{color:var(--tblr-youtube-fg)!important}.text-vimeo{--tblr-text-opacity: 1;color:rgba(var(--tblr-vimeo-rgb),var(--tblr-text-opacity))!important}.text-vimeo-fg{color:var(--tblr-vimeo-fg)!important}.text-dribbble{--tblr-text-opacity: 1;color:rgba(var(--tblr-dribbble-rgb),var(--tblr-text-opacity))!important}.text-dribbble-fg{color:var(--tblr-dribbble-fg)!important}.text-github{--tblr-text-opacity: 1;color:rgba(var(--tblr-github-rgb),var(--tblr-text-opacity))!important}.text-github-fg{color:var(--tblr-github-fg)!important}.text-instagram{--tblr-text-opacity: 1;color:rgba(var(--tblr-instagram-rgb),var(--tblr-text-opacity))!important}.text-instagram-fg{color:var(--tblr-instagram-fg)!important}.text-pinterest{--tblr-text-opacity: 1;color:rgba(var(--tblr-pinterest-rgb),var(--tblr-text-opacity))!important}.text-pinterest-fg{color:var(--tblr-pinterest-fg)!important}.text-vk{--tblr-text-opacity: 1;color:rgba(var(--tblr-vk-rgb),var(--tblr-text-opacity))!important}.text-vk-fg{color:var(--tblr-vk-fg)!important}.text-rss{--tblr-text-opacity: 1;color:rgba(var(--tblr-rss-rgb),var(--tblr-text-opacity))!important}.text-rss-fg{color:var(--tblr-rss-fg)!important}.text-flickr{--tblr-text-opacity: 1;color:rgba(var(--tblr-flickr-rgb),var(--tblr-text-opacity))!important}.text-flickr-fg{color:var(--tblr-flickr-fg)!important}.text-bitbucket{--tblr-text-opacity: 1;color:rgba(var(--tblr-bitbucket-rgb),var(--tblr-text-opacity))!important}.text-bitbucket-fg{color:var(--tblr-bitbucket-fg)!important}.text-tabler{--tblr-text-opacity: 1;color:rgba(var(--tblr-tabler-rgb),var(--tblr-text-opacity))!important}.text-tabler-fg{color:var(--tblr-tabler-fg)!important}.bg-gray-50{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-50-rgb),var(--tblr-bg-opacity))!important}.text-gray-50-fg{color:#182433!important}.bg-gray-100{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-100-rgb),var(--tblr-bg-opacity))!important}.text-gray-100-fg{color:#182433!important}.bg-gray-200{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-200-rgb),var(--tblr-bg-opacity))!important}.text-gray-200-fg{color:#182433!important}.bg-gray-300{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-300-rgb),var(--tblr-bg-opacity))!important}.text-gray-300-fg{color:#f6f8fb!important}.bg-gray-400{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-400-rgb),var(--tblr-bg-opacity))!important}.text-gray-400-fg{color:#f6f8fb!important}.bg-gray-500{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-500-rgb),var(--tblr-bg-opacity))!important}.text-gray-500-fg{color:#f6f8fb!important}.bg-gray-600{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-600-rgb),var(--tblr-bg-opacity))!important}.text-gray-600-fg{color:#f6f8fb!important}.bg-gray-700{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-700-rgb),var(--tblr-bg-opacity))!important}.text-gray-700-fg{color:#f6f8fb!important}.bg-gray-800{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-800-rgb),var(--tblr-bg-opacity))!important}.text-gray-800-fg{color:#f6f8fb!important}.bg-gray-900{--tblr-bg-opacity: .1;background-color:rgba(var(--tblr-gray-900-rgb),var(--tblr-bg-opacity))!important}.text-gray-900-fg{color:#f6f8fb!important}.scrollable{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.hover{overflow-y:hidden}.scrollable.hover>*{margin-top:-1px}.scrollable.hover:hover,.scrollable.hover:focus,.scrollable.hover:active{overflow:visible;overflow-y:auto}.touch .scrollable{overflow-y:auto!important}.scroll-x,.scroll-y{overflow:hidden;-webkit-overflow-scrolling:touch}.scroll-y{overflow-y:auto}.scroll-x{overflow-x:auto}.no-scroll{overflow:hidden}.w-0{width:0!important}.h-0{height:0!important}.w-1{width:.25rem!important}.h-1{height:.25rem!important}.w-2{width:.5rem!important}.h-2{height:.5rem!important}.w-3{width:1rem!important}.h-3{height:1rem!important}.w-4{width:1.5rem!important}.h-4{height:1.5rem!important}.w-5{width:2rem!important}.h-5{height:2rem!important}.w-6{width:3rem!important}.h-6{height:3rem!important}.w-7{width:5rem!important}.h-7{height:5rem!important}.w-8{width:8rem!important}.h-8{height:8rem!important}.w-auto{width:auto!important}.h-auto{height:auto!important}.w-px{width:1px!important}.h-px{height:1px!important}.w-full{width:100%!important}.h-full{height:100%!important}.opacity-0{opacity:0!important}.opacity-5{opacity:.05!important}.opacity-10{opacity:.1!important}.opacity-15{opacity:.15!important}.opacity-20{opacity:.2!important}.opacity-25{opacity:.25!important}.opacity-30{opacity:.3!important}.opacity-35{opacity:.35!important}.opacity-40{opacity:.4!important}.opacity-45{opacity:.45!important}.opacity-50{opacity:.5!important}.opacity-55{opacity:.55!important}.opacity-60{opacity:.6!important}.opacity-65{opacity:.65!important}.opacity-70{opacity:.7!important}.opacity-75{opacity:.75!important}.opacity-80{opacity:.8!important}.opacity-85{opacity:.85!important}.opacity-90{opacity:.9!important}.opacity-95{opacity:.95!important}.opacity-100{opacity:1!important}.hover-shadow-sm:hover{box-shadow:0 .125rem .25rem #00000013!important}.hover-shadow:hover{box-shadow:rgba(var(--tblr-body-color-rgb),.04) 0 2px 4px!important}.hover-shadow-lg:hover{box-shadow:0 1rem 3rem #0000002d!important}.hover-shadow-none:hover{box-shadow:none!important}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.ts-control{border:1px solid var(--tblr-border-color);padding:.5625rem .75rem;width:100%;overflow:hidden;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:var(--tblr-border-radius);display:flex;flex-wrap:wrap}.ts-wrapper.multi.has-items .ts-control{padding:calc(.5625rem - 1px + -0) .75rem calc(.5625rem - 4px + -0)}.full .ts-control{background-color:var(--tblr-bg-forms)}.disabled .ts-control,.disabled .ts-control *{cursor:default!important}.focus .ts-control{box-shadow:none}.ts-control>*{vertical-align:baseline;display:inline-block}.ts-wrapper.multi .ts-control>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#182433;border:0 solid #dce1e7}.ts-wrapper.multi .ts-control>div.active{background:#00857d;color:#fff;border:0 solid rgba(0,0,0,0)}.ts-wrapper.multi.disabled .ts-control>div,.ts-wrapper.multi.disabled .ts-control>div.active{color:#727272;background:#fff;border:0 solid white}.ts-control>input{flex:1 1 auto;min-width:7rem;display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0 none!important;background:none!important;line-height:inherit!important;user-select:auto!important;box-shadow:none!important}.ts-control>input::-ms-clear{display:none}.ts-control>input:focus{outline:none!important}.has-items .ts-control>input{margin:0 4px!important}.ts-control.rtl{text-align:right}.ts-control.rtl.single .ts-control:after{left:calc(.75rem + 5px);right:auto}.ts-control.rtl .ts-control>input{margin:0 4px 0 -2px!important}.disabled .ts-control{opacity:.5;background-color:var(--tblr-bg-surface-secondary)}.input-hidden .ts-control>input{opacity:0;position:absolute;left:-10000px}.ts-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:.25rem 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px #0000001a;border-radius:0 0 var(--tblr-border-radius) var(--tblr-border-radius)}.ts-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.ts-dropdown [data-selectable] .highlight{background:#ffed2866;border-radius:1px}.ts-dropdown .option,.ts-dropdown .optgroup-header,.ts-dropdown .no-results,.ts-dropdown .create{padding:3px .75rem}.ts-dropdown .option,.ts-dropdown [data-disabled],.ts-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.ts-dropdown [data-selectable].option{opacity:1;cursor:pointer}.ts-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.ts-dropdown .optgroup-header{color:#49566c;background:var(--tblr-bg-surface);cursor:default}.ts-dropdown .active{background-color:rgba(var(--tblr-secondary-rgb),.08);color:inherit}.ts-dropdown .active.create{color:inherit}.ts-dropdown .create{color:#18243380}.ts-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.ts-dropdown .spinner:after{content:" ";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ts-dropdown-content{overflow:hidden auto;max-height:200px;scroll-behavior:smooth}.ts-wrapper.plugin-drag_drop .ts-dragging{color:transparent!important}.ts-wrapper.plugin-drag_drop .ts-dragging>*{visibility:hidden!important}.plugin-checkbox_options:not(.rtl) .option input{margin-right:.5rem}.plugin-checkbox_options.rtl .option input{margin-left:.5rem}.plugin-clear_button{--ts-pr-clear-button: 1em}.plugin-clear_button .clear-button{opacity:0;position:absolute;top:50%;transform:translateY(-50%);right:calc(.75rem - 5px);margin-right:0!important;background:transparent!important;transition:opacity .5s;cursor:pointer}.plugin-clear_button.form-select .clear-button,.plugin-clear_button.single .clear-button{right:max(var(--ts-pr-caret),.75rem)}.plugin-clear_button.focus.has-items .clear-button,.plugin-clear_button:not(.disabled):hover.has-items .clear-button{opacity:1}.ts-wrapper .dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:color-mix(#fff,#d0d0d0,85%);border-radius:var(--tblr-border-radius) var(--tblr-border-radius) 0 0}.ts-wrapper .dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#182433;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.ts-wrapper .dropdown-header-close:hover{color:#000}.plugin-dropdown_input.focus.dropdown-active .ts-control{box-shadow:none;border:1px solid var(--tblr-border-color);box-shadow:var(--tblr-box-shadow-input)}.plugin-dropdown_input .dropdown-input{border:1px solid #d0d0d0;border-width:0 0 1px;display:block;padding:.5625rem .75rem;box-shadow:none;width:100%;background:transparent}.plugin-dropdown_input.focus .ts-dropdown .dropdown-input{border-color:#80c2be;outline:0;box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.plugin-dropdown_input .items-placeholder{border:0 none!important;box-shadow:none!important;width:100%}.plugin-dropdown_input.has-items .items-placeholder,.plugin-dropdown_input.dropdown-active .items-placeholder{display:none!important}.ts-wrapper.plugin-input_autogrow.has-items .ts-control>input{min-width:0}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input{flex:none;min-width:4px}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::placeholder{color:transparent}.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content{display:flex}.ts-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.ts-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.ts-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.ts-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.ts-wrapper.plugin-remove_button .item{display:inline-flex;align-items:center}.ts-wrapper.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:0 5px;border-radius:0 2px 2px 0;box-sizing:border-box}.ts-wrapper.plugin-remove_button .item .remove:hover{background:#0000000d}.ts-wrapper.plugin-remove_button.disabled .item .remove:hover{background:none}.ts-wrapper.plugin-remove_button .remove-single{position:absolute;right:0;top:0;font-size:23px}.ts-wrapper.plugin-remove_button:not(.rtl) .item{padding-right:0!important}.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove{border-left:1px solid #dce1e7;margin-left:5px}.ts-wrapper.plugin-remove_button:not(.rtl) .item.active .remove{border-left-color:#0000}.ts-wrapper.plugin-remove_button:not(.rtl).disabled .item .remove{border-left-color:#fff}.ts-wrapper.plugin-remove_button.rtl .item{padding-left:0!important}.ts-wrapper.plugin-remove_button.rtl .item .remove{border-right:1px solid #dce1e7;margin-right:5px}.ts-wrapper.plugin-remove_button.rtl .item.active .remove{border-right-color:#0000}.ts-wrapper.plugin-remove_button.rtl.disabled .item .remove{border-right-color:#fff}:root{--ts-pr-clear-button: 0;--ts-pr-caret: 0;--ts-pr-min: .75rem}.ts-wrapper.single .ts-control,.ts-wrapper.single .ts-control input{cursor:pointer}.ts-control:not(.rtl){padding-right:max(var(--ts-pr-min),var(--ts-pr-clear-button) + var(--ts-pr-caret))!important}.ts-control.rtl{padding-left:max(var(--ts-pr-min),var(--ts-pr-clear-button) + var(--ts-pr-caret))!important}.ts-wrapper{position:relative}.ts-dropdown,.ts-control,.ts-control input{color:#182433;font-family:inherit;font-size:inherit;line-height:1.4285714286}.ts-control,.ts-wrapper.single.input-active .ts-control{background:var(--tblr-bg-forms);cursor:text}.ts-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.ts-dropdown,.ts-dropdown.form-control,.ts-dropdown.form-select{height:auto;padding:0;z-index:1000;background:#fff;border:1px solid var(--tblr-border-color-translucent);border-radius:4px;box-shadow:0 6px 12px #0000002d}.ts-dropdown .optgroup-header{font-size:.765625rem;line-height:1.4285714286}.ts-dropdown .optgroup:first-child:before{display:none}.ts-dropdown .optgroup:before{content:" ";display:block;height:0;margin:var(--tblr-spacer-2) 0;overflow:hidden;border-top:1px solid var(--tblr-border-color-translucent);margin-left:-.75rem;margin-right:-.75rem}.ts-dropdown .create{padding-left:.75rem}.ts-dropdown-content{padding:5px 0}.ts-control{box-shadow:var(--tblr-box-shadow-input);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:flex;align-items:center}@media (prefers-reduced-motion: reduce){.ts-control{transition:none}}.focus .ts-control{border-color:#80c2be;outline:0;box-shadow:var(--tblr-box-shadow-input),0 0 0 .25rem rgba(var(--tblr-primary-rgb),.25)}.ts-control .item{display:flex;align-items:center}.ts-wrapper.is-invalid,.was-validated .invalid,.was-validated :invalid+.ts-wrapper{border-color:var(--tblr-form-invalid-color)}.ts-wrapper.is-invalid:not(.single),.was-validated .invalid:not(.single),.was-validated :invalid+.ts-wrapper:not(.single){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:right calc(.3571428572em + .28125rem) center;background-size:calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem);background-repeat:no-repeat}.ts-wrapper.is-invalid.single,.was-validated .invalid.single,.was-validated :invalid+.ts-wrapper.single{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a97ab' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem);background-repeat:no-repeat}.ts-wrapper.is-invalid.focus .ts-control,.was-validated .invalid.focus .ts-control,.was-validated :invalid+.ts-wrapper.focus .ts-control{border-color:var(--tblr-form-invalid-color);box-shadow:0 0 0 .25rem rgba(var(--tblr-form-invalid-color),.25)}.ts-wrapper.is-valid,.was-validated .valid,.was-validated :valid+.ts-wrapper{border-color:var(--tblr-form-valid-color)}.ts-wrapper.is-valid:not(.single),.was-validated .valid:not(.single),.was-validated :valid+.ts-wrapper:not(.single){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:right calc(.3571428572em + .28125rem) center;background-size:calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem);background-repeat:no-repeat}.ts-wrapper.is-valid.single,.was-validated .valid.single,.was-validated :valid+.ts-wrapper.single{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a97ab' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.7142857143em + .5625rem) calc(.7142857143em + .5625rem);background-repeat:no-repeat}.ts-wrapper.is-valid.focus .ts-control,.was-validated .valid.focus .ts-control,.was-validated :valid+.ts-wrapper.focus .ts-control{border-color:var(--tblr-form-valid-color);box-shadow:0 0 0 .25rem rgba(var(--tblr-form-valid-color),.25)}.ts-wrapper{min-height:calc(1.4285714286em + 1.125rem + calc(var(--tblr-border-width) * 2));display:flex}.input-group-sm>.ts-wrapper,.ts-wrapper.form-select-sm,.ts-wrapper.form-control-sm{min-height:calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2))}.input-group-sm>.ts-wrapper .ts-control,.ts-wrapper.form-select-sm .ts-control,.ts-wrapper.form-control-sm .ts-control{border-radius:var(--tblr-border-radius-sm);font-size:.75rem}.input-group-sm>.ts-wrapper.has-items .ts-control,.ts-wrapper.form-select-sm.has-items .ts-control,.ts-wrapper.form-control-sm.has-items .ts-control{font-size:.75rem;padding-bottom:0}.input-group-sm>.ts-wrapper.multi.has-items .ts-control,.ts-wrapper.form-select-sm.multi.has-items .ts-control,.ts-wrapper.form-control-sm.multi.has-items .ts-control{padding-top:calc((calc(1.4285714286em + .25rem + calc(var(--tblr-border-width) * 2)) - 1.4285714286 * .75rem - 4px) / 2)!important}.ts-wrapper.multi.has-items .ts-control{padding-left:calc(.75rem - 5px);--ts-pr-min: calc(.75rem - 5px) }.ts-wrapper.multi .ts-control>div{border-radius:calc(var(--tblr-border-radius) - 1px)}.input-group-lg>.ts-wrapper,.ts-wrapper.form-control-lg,.ts-wrapper.form-select-lg{min-height:calc(1.4285714286em + 1rem + calc(var(--tblr-border-width) * 2))}.input-group-lg>.ts-wrapper .ts-control,.ts-wrapper.form-control-lg .ts-control,.ts-wrapper.form-select-lg .ts-control{border-radius:var(--tblr-border-radius-lg);font-size:1.25rem}.ts-wrapper:not(.form-control,.form-select){padding:0;border:none;height:auto;box-shadow:none;background:none}.ts-wrapper:not(.form-control,.form-select).single .ts-control{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a97ab' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px}.ts-wrapper.form-select,.ts-wrapper.single{--ts-pr-caret: 2.25rem}.ts-wrapper.form-control,.ts-wrapper.form-select{padding:0!important;height:auto;box-shadow:none;display:flex}.ts-wrapper.form-control .ts-control,.ts-wrapper.form-control.single.input-active .ts-control,.ts-wrapper.form-select .ts-control,.ts-wrapper.form-select.single.input-active .ts-control{border:none!important}.ts-wrapper.form-control:not(.disabled) .ts-control,.ts-wrapper.form-control:not(.disabled).single.input-active .ts-control,.ts-wrapper.form-select:not(.disabled) .ts-control,.ts-wrapper.form-select:not(.disabled).single.input-active .ts-control{background:transparent!important}.input-group>.ts-wrapper{flex-grow:1;width:1%}.input-group>.ts-wrapper:not(:nth-child(2))>.ts-control{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.ts-wrapper:not(:last-child)>.ts-control{border-top-right-radius:0;border-bottom-right-radius:0}:root{--ts-pr-clear-button: 0rem;--ts-pr-caret: 0rem}.ts-input,.ts-control{color:inherit}.ts-control .dropdown-menu{width:100%;height:auto}.ts-wrapper .form-control,.ts-wrapper .form-select,.ts-wrapper.form-control,.ts-wrapper.form-select{box-shadow:var(--tblr-box-shadow-input)}.ts-wrapper.is-invalid .ts-control,.ts-wrapper.is-valid .ts-control{--ts-pr-clear-button: 1.5rem}.ts-dropdown{background:var(--tblr-bg-surface);color:var(--tblr-body-color);box-shadow:var(--tblr-box-shadow-dropdown)}.ts-dropdown .option{padding:.5rem .75rem}.ts-control,.ts-control input{color:var(--tblr-body-color)}.ts-control input::placeholder{color:#8a97ab}.ts-wrapper.multi .ts-control>div{background:var(--tblr-bg-surface-secondary);border:1px solid var(--tblr-border-color);color:var(--tblr-body-color)}html{scroll-behavior:auto!important}.table-responsive .dropdown,.table-responsive .btn-group,.table-responsive .btn-group-vertical{position:static}.progress{min-width:80px}hr.dropdown-divider,.dropdown-divider.hr{margin-bottom:.25rem;margin-top:.25rem}.dropdown-item{font-weight:400}*{font-feature-settings:"liga" 0;font-variant-ligatures:none}pre{background-color:transparent;color:inherit}.alert{background:var(--tblr-bg-surface)}.btn{display:inline-block}.btn:focus{border:1px solid var(--tblr-primary-fg);outline:2px solid var(--tblr-primary)!important}.btn-sm,.btn-group-sm>.btn{border-radius:4px}.dropdown-item{display:inline-block}.footer .text-primary{color:#001423!important}.nav-tabs .nav-link{display:inline-block}.page,.page-tabs .nav-tabs .nav-link.active{background-color:var(--tblr-bg-surface-tertiary)!important}.page-body .card .card-header{background:var(--tblr-bg-surface-secondary)!important}[data-bs-theme=dark],body[data-bs-theme=dark] [data-bs-theme=light]{--tblr-alert-color: darken(var(--tblr-warning),10%);--tblr-link-color: #00F2D4;--tblr-link-color-rgb: 0,242,212;--tblr-link-hover-color-rgb: 0,242,212;--tblr-secondary: #8a97ab;--tblr-primary: #00F2D4;--tblr-primary-fg: #001423;--tblr-primary-rgb: 0,242,212;--tblr-btn-active-color: #001423}body[data-bs-theme=dark],body[data-bs-theme=dark] body[data-bs-theme=light]{background-color:#001423}body[data-bs-theme=dark] ::selection,body[data-bs-theme=dark] body[data-bs-theme=light] ::selection{background-color:rgba(var(--tblr-primary-rgb),.48)}body[data-bs-theme=dark] .btn-primary,body[data-bs-theme=dark] .bg-primary .card-title,body[data-bs-theme=dark] .bg-primary a,body[data-bs-theme=dark] .bg-primary i,body[data-bs-theme=dark] .text-bg-primary{color:#001423!important}body[data-bs-theme=dark] .card{background:#001423!important}body[data-bs-theme=dark] .navbar,body[data-bs-theme=dark] .page-header{background-color:#001423}body[data-bs-theme=dark] .page,body[data-bs-theme=dark] .page-tabs .nav-tabs .nav-link.active{background-color:#081b2a!important}body[data-bs-theme=dark] .page-link.active,body[data-bs-theme=dark] .active>.page-link{color:#001423}body[data-bs-theme=dark] .text-bg-primary{color:#001423!important}body[data-bs-theme=dark] .text-muted{color:var(--tblr-secondary-color)!important}body[data-bs-theme=dark] .text-secondary{color:#8a97ab!important}body[data-bs-theme=dark] .footer .text-primary{color:#fff!important}body[data-bs-theme=dark] .toast{color:var(--tblr-body-color)}pre code{padding:unset}.dropdown-toggle:after{font-family:Material Design Icons;content:"\f0140";padding-right:9px;border-bottom:none;border-left:none;transform:none;vertical-align:.05em;height:auto}.ts-wrapper.multi .ts-control{padding:7px 7px 3px}.ts-wrapper.multi .ts-control div{margin:0 4px 4px 0}.badge a{color:inherit;text-decoration:none}.page-body .card{margin-bottom:1rem}.page-body .card .card-header,.page-body .card .card-body,.page-body .card .card-footer{padding:.75rem}.page-body .card .card-header{background:var(--tblr-bg-surface-tertiary)}.page-body .card h2.card-header,.page-body .card .card-header.h2{font-size:var(--tblr-font-size-h5);line-height:var(--tblr-line-height-h5);margin-bottom:0}.page-body .card .list-group-item{padding:.5rem .75rem}.page-body .card .table,.page-body .card .markdown>table{margin-bottom:0}form.object-edit{margin:auto;max-width:800px}.col-form-label.required{font-weight:700}.col-form-label.required:after{position:absolute;display:inline-block;margin-left:0;font-family:Material Design Icons;font-size:8px;content:"\f06c4"}.has-errors input,.has-errors select,.has-errors textarea{border:1px solid #d63939}.page{background-color:var(--tblr-bg-surface-secondary)}.page-header{background-color:var(--tblr-bg-surface);min-height:0}@media (min-width: 992px){.navbar-vertical.navbar-expand-lg{padding-bottom:2rem}}.navbar-vertical.navbar-expand-lg .navbar-collapse .nav-link-icon{color:var(--tblr-nav-link-color)!important}.navbar-vertical.navbar-expand-lg .navbar-collapse .text-secondary{color:#00857d!important}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item a{color:#001423}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item .btn-group{visibility:hidden}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:hover{background-color:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:hover a{text-decoration:none}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item:hover .btn-group{visibility:visible}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active{background-color:var(--tblr-navbar-active-bg)}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active a{color:#001423}.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item.active .btn-group{visibility:visible}.navbar-vertical.navbar-expand-lg .navbar-nav{z-index:1}@media (max-width: 991.98px){.navbar-vertical.navbar-expand-lg .navbar-brand{padding:.2rem 0}}.navbar-vertical.navbar-expand-lg .navbar-brand a:hover{text-decoration:none}.navbar-vertical.navbar-expand-lg img.motif{bottom:0;display:none;left:0;mask-image:linear-gradient(180deg,#0000,#0000004d);opacity:.5;position:fixed;user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;width:18rem}@media (min-width: 992px){.navbar-vertical.navbar-expand-lg img.motif{display:block}}body[data-bs-theme=light] .navbar-vertical.navbar-expand-lg{background:linear-gradient(180deg,#00857d00,#00857d1a),#fff}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg{background:linear-gradient(180deg,#00f2d400,#00f2d41a),#001423}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .nav-item.dropdown.active:after{border-color:#00f2d4!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item a{color:#fff!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item.active{background-color:#ffffff0f!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item.active a{color:#fff!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item:hover{background-color:#ffffff0f!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .dropdown-item .nav-link-title{color:#fff!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg .text-secondary{color:#00f2d4!important}body[data-bs-theme=dark] .navbar-vertical.navbar-expand-lg img.motif{opacity:.25}.progress{height:20px}.progress .progress-label{display:flex;flex-direction:column;justify-content:center;padding-left:.25rem}table.object-list tbody>tr:last-child>td{border-bottom-width:0}table.object-list th.asc>a:after{content:"\f0140";font-family:Material Design Icons}table.object-list th.desc>a:after{content:"\f0143";font-family:Material Design Icons}table.attr-table th{font-weight:400;width:min-content}table.attr-table th,table.attr-table td{border-bottom-style:dashed}table.attr-table tr:last-child{border-bottom-style:hidden}table.attr-table td{overflow-wrap:anywhere}td pre{margin-bottom:0}table th.orderable a{color:var(--tblr-body-color)}body[data-bs-theme=dark] .table thead th,body[data-bs-theme=dark] .markdown>table thead th{background:#001423!important}.page-tabs{border-bottom:1px solid var(--tblr-border-color-translucent)}.page-tabs .nav-tabs{position:relative;border:none}.page-tabs .nav-tabs .nav-link.active,.page-tabs .nav-tabs .nav-link:active,.page-tabs .nav-tabs .nav-link:hover{border-color:var(--tblr-border-color-translucent);border-bottom-color:transparent}.page-tabs .nav-tabs .nav-link.active{color:inherit;background:var(--tblr-bg-surface-secondary);border-bottom-color:transparent}pre.change-data{border-radius:0;padding:0}pre.change-data>span{display:block;padding-right:1rem;padding-left:1rem}pre.change-data>span.added{background-color:#2fb344}pre.change-data>span.removed{background-color:#d63939}pre.change-diff{border-color:transparent}pre.change-diff.change-added{background-color:#2fb344}pre.change-diff.change-removed{background-color:#d63939}pre.block{padding:1rem;border:1px solid #dce1e7;border-radius:4px}.grid-stack .card-header.bg-default{background:var(--tblr-bg-surface-secondary)!important}.grid-stack .card-header a{color:inherit!important}tr[data-cable-status=connected]{background-color:#2fb34426}tr[data-cable-status=planned]{background-color:#066fd126}tr[data-cable-status=decommissioning]{background-color:#f59f0026}tr[data-mark-connected=true]{background-color:#2fb34426}tr[data-virtual=true]{background-color:#00857d26}tr[data-enabled=disabled]{background-color:#d6393926}tr[data-cable-status=connected] button.mark-installed{display:none}tr:not([data-cable-status=connected]) button.mark-planned{display:none}.rendered-markdown table{width:100%}.rendered-markdown table th{border-bottom:2px solid #dddddd;padding:8px}.rendered-markdown table td{border-top:1px solid #dddddd;padding:8px}.rendered-markdown table th[align=left]{text-align:left}.rendered-markdown table th[align=center]{text-align:center}.rendered-markdown table th[align=right]{text-align:right}td>.rendered-markdown{max-height:200px;overflow-y:scroll}td>.rendered-markdown p:last-of-type{margin-bottom:0}.markdown-widget .preview{border:1px solid #dce1e7;border-radius:4px;min-height:200px}span.color-label{display:inline-block;width:5rem;height:1rem;padding:.25em .5em;border:1px solid #303030;border-radius:4px}.record-depth{display:inline;user-select:none;opacity:33%}.record-depth span:only-of-type,.record-depth span:last-of-type{margin-right:.25rem}.hide-last-child :last-child{visibility:hidden;opacity:0}.netbox-edition{letter-spacing:.15rem}.btn-float-group,.btn-float-group-right,.btn-float-group-left{position:sticky;bottom:10px;z-index:2}.btn-float-group-left{float:left}.btn-float-group-right{float:right}.btn-float{--tblr-btn-bg: var(--tblr-bg-surface-tertiary) !important}.logo{height:80px}.sso-icon{height:24px}tr[data-read=True] td{background-color:var(--tblr-bg-surface-secondary);color:var(--tblr-secondary-color)}
diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js
index afdbea0f820..969d5c73a70 100644
--- a/netbox/project-static/dist/netbox.js
+++ b/netbox/project-static/dist/netbox.js
@@ -1,12 +1,12 @@
-"use strict";(()=>{var nh=Object.create;var Ua=Object.defineProperty,rh=Object.defineProperties,sh=Object.getOwnPropertyDescriptor,oh=Object.getOwnPropertyDescriptors,ah=Object.getOwnPropertyNames,du=Object.getOwnPropertySymbols,lh=Object.getPrototypeOf,fu=Object.prototype.hasOwnProperty,ch=Object.prototype.propertyIsEnumerable;var tc=(ii,ti,ei)=>ti in ii?Ua(ii,ti,{enumerable:!0,configurable:!0,writable:!0,value:ei}):ii[ti]=ei,Ui=(ii,ti)=>{for(var ei in ti||(ti={}))fu.call(ti,ei)&&tc(ii,ei,ti[ei]);if(du)for(var ei of du(ti))ch.call(ti,ei)&&tc(ii,ei,ti[ei]);return ii},Hn=(ii,ti)=>rh(ii,oh(ti));var Ya=(ii,ti)=>()=>(ti||ii((ti={exports:{}}).exports,ti),ti.exports),hu=(ii,ti)=>{for(var ei in ti)Ua(ii,ei,{get:ti[ei],enumerable:!0})},uh=(ii,ti,ei,ni)=>{if(ti&&typeof ti=="object"||typeof ti=="function")for(let ri of ah(ti))!fu.call(ii,ri)&&ri!==ei&&Ua(ii,ri,{get:()=>ti[ri],enumerable:!(ni=sh(ti,ri))||ni.enumerable});return ii};var zo=(ii,ti,ei)=>(ei=ii!=null?nh(lh(ii)):{},uh(ti||!ii||!ii.__esModule?Ua(ei,"default",{value:ii,enumerable:!0}):ei,ii));var Rn=(ii,ti,ei)=>tc(ii,typeof ti!="symbol"?ti+"":ti,ei);var ks=(ii,ti,ei)=>new Promise((ni,ri)=>{var si=di=>{try{li(ei.next(di))}catch(mi){ri(mi)}},ai=di=>{try{li(ei.throw(di))}catch(mi){ri(mi)}},li=di=>di.done?ni(di.value):Promise.resolve(di.value).then(si,ai);li((ei=ei.apply(ii,ti)).next())});var Id=Ya((exports,module)=>{(function(ii,ti){typeof define=="function"&&define.amd?define([],ti):typeof module=="object"&&module.exports?module.exports=ti():ii.htmx=ii.htmx||ti()})(typeof self!="undefined"?self:exports,function(){return function(){"use strict";var Q={onLoad:F,process:zt,on:de,off:ge,trigger:ce,ajax:Nr,find:C,findAll:f,closest:v,values:function(ii,ti){var ei=dr(ii,ti||"post");return ei.values},remove:_,addClass:z,removeClass:n,toggleClass:$,takeClass:W,defineExtension:Ur,removeExtension:Br,logAll:V,logNone:j,logger:null,config:{historyEnabled:!0,historyCacheSize:10,refreshOnHistoryMiss:!1,defaultSwapStyle:"innerHTML",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:!0,indicatorClass:"htmx-indicator",requestClass:"htmx-request",addedClass:"htmx-added",settlingClass:"htmx-settling",swappingClass:"htmx-swapping",allowEval:!0,allowScriptTags:!0,inlineScriptNonce:"",attributesToSettle:["class","style","width","height"],withCredentials:!1,timeout:0,wsReconnectDelay:"full-jitter",wsBinaryType:"blob",disableSelector:"[hx-disable], [data-hx-disable]",useTemplateFragments:!1,scrollBehavior:"smooth",defaultFocusScroll:!1,getCacheBusterParam:!1,globalViewTransitions:!1,methodsThatUseUrlParams:["get"],selfRequestsOnly:!1,ignoreTitle:!1,scrollIntoViewOnBoost:!0,triggerSpecsCache:null},parseInterval:d,_:t,createEventSource:function(ii){return new EventSource(ii,{withCredentials:!0})},createWebSocket:function(ii){var ti=new WebSocket(ii,[]);return ti.binaryType=Q.config.wsBinaryType,ti},version:"1.9.12"},r={addTriggerHandler:Lt,bodyContains:se,canAccessLocalStorage:U,findThisElement:xe,filterValues:yr,hasAttribute:o,getAttributeValue:te,getClosestAttributeValue:ne,getClosestMatch:c,getExpressionVars:Hr,getHeaders:xr,getInputValues:dr,getInternalData:ae,getSwapSpecification:wr,getTriggerSpecs:it,getTarget:ye,makeFragment:l,mergeObjects:le,makeSettleInfo:T,oobSwap:Ee,querySelectorExt:ue,selectAndSwap:je,settleImmediately:nr,shouldCancel:ut,triggerEvent:ce,triggerErrorEvent:fe,withExtensions:R},w=["get","post","put","delete","patch"],i=w.map(function(ii){return"[hx-"+ii+"], [data-hx-"+ii+"]"}).join(", "),S=e("head"),q=e("title"),H=e("svg",!0);function e(ii,ti){return new RegExp("<"+ii+"(\\s[^>]*>|>)([\\s\\S]*?)<\\/"+ii+">",ti?"gim":"im")}function d(ii){if(ii==null)return;let ti=NaN;return ii.slice(-2)=="ms"?ti=parseFloat(ii.slice(0,-2)):ii.slice(-1)=="s"?ti=parseFloat(ii.slice(0,-1))*1e3:ii.slice(-1)=="m"?ti=parseFloat(ii.slice(0,-1))*1e3*60:ti=parseFloat(ii),isNaN(ti)?void 0:ti}function ee(ii,ti){return ii.getAttribute&&ii.getAttribute(ti)}function o(ii,ti){return ii.hasAttribute&&(ii.hasAttribute(ti)||ii.hasAttribute("data-"+ti))}function te(ii,ti){return ee(ii,ti)||ee(ii,"data-"+ti)}function u(ii){return ii.parentElement}function re(){return document}function c(ii,ti){for(;ii&&!ti(ii);)ii=u(ii);return ii||null}function L(ii,ti,ei){var ni=te(ti,ei),ri=te(ti,"hx-disinherit");return ii!==ti&&ri&&(ri==="*"||ri.split(" ").indexOf(ei)>=0)?"unset":ni}function ne(ii,ti){var ei=null;if(c(ii,function(ni){return ei=L(ii,ni,ti)}),ei!=="unset")return ei}function h(ii,ti){var ei=ii.matches||ii.matchesSelector||ii.msMatchesSelector||ii.mozMatchesSelector||ii.webkitMatchesSelector||ii.oMatchesSelector;return ei&&ei.call(ii,ti)}function A(ii){var ti=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,ei=ti.exec(ii);return ei?ei[1].toLowerCase():""}function s(ii,ti){for(var ei=new DOMParser,ni=ei.parseFromString(ii,"text/html"),ri=ni.body;ti>0;)ti--,ri=ri.firstChild;return ri==null&&(ri=re().createDocumentFragment()),ri}function N(ii){return/
"+ni+" ",0),si=ri.querySelector("template").content;return Q.config.allowScriptTags?oe(si.querySelectorAll("script"),function(ai){Q.config.inlineScriptNonce&&(ai.nonce=Q.config.inlineScriptNonce),ai.htmxExecuted=navigator.userAgent.indexOf("Firefox")===-1}):oe(si.querySelectorAll("script"),function(ai){_(ai)}),si}switch(ei){case"thead":case"tbody":case"tfoot":case"colgroup":case"caption":return s("",1);case"col":return s("",2);case"tr":return s("",2);case"td":case"th":return s("",3);case"script":case"style":return s(""+ni+"
",1);default:return s(ni,0)}}function ie(ii){ii&&ii()}function I(ii,ti){return Object.prototype.toString.call(ii)==="[object "+ti+"]"}function k(ii){return I(ii,"Function")}function P(ii){return I(ii,"Object")}function ae(ii){var ti="htmx-internal-data",ei=ii[ti];return ei||(ei=ii[ti]={}),ei}function M(ii){var ti=[];if(ii)for(var ei=0;ei=0}function se(ii){return ii.getRootNode&&ii.getRootNode()instanceof window.ShadowRoot?re().body.contains(ii.getRootNode().host):re().body.contains(ii)}function D(ii){return ii.trim().split(/\s+/)}function le(ii,ti){for(var ei in ti)ti.hasOwnProperty(ei)&&(ii[ei]=ti[ei]);return ii}function E(ii){try{return JSON.parse(ii)}catch(ti){return b(ti),null}}function U(){var ii="htmx:localStorageTest";try{return localStorage.setItem(ii,ii),localStorage.removeItem(ii),!0}catch(ti){return!1}}function B(ii){try{var ti=new URL(ii);return ti&&(ii=ti.pathname+ti.search),/^\/$/.test(ii)||(ii=ii.replace(/\/+$/,"")),ii}catch(ei){return ii}}function t(e){return Tr(re().body,function(){return eval(e)})}function F(ii){var ti=Q.on("htmx:load",function(ei){ii(ei.detail.elt)});return ti}function V(){Q.logger=function(ii,ti,ei){console&&console.log(ti,ii,ei)}}function j(){Q.logger=null}function C(ii,ti){return ti?ii.querySelector(ti):C(re(),ii)}function f(ii,ti){return ti?ii.querySelectorAll(ti):f(re(),ii)}function _(ii,ti){ii=p(ii),ti?setTimeout(function(){_(ii),ii=null},ti):ii.parentElement.removeChild(ii)}function z(ii,ti,ei){ii=p(ii),ei?setTimeout(function(){z(ii,ti),ii=null},ei):ii.classList&&ii.classList.add(ti)}function n(ii,ti,ei){ii=p(ii),ei?setTimeout(function(){n(ii,ti),ii=null},ei):ii.classList&&(ii.classList.remove(ti),ii.classList.length===0&&ii.removeAttribute("class"))}function $(ii,ti){ii=p(ii),ii.classList.toggle(ti)}function W(ii,ti){ii=p(ii),oe(ii.parentElement.children,function(ei){n(ei,ti)}),z(ii,ti)}function v(ii,ti){if(ii=p(ii),ii.closest)return ii.closest(ti);do if(ii==null||h(ii,ti))return ii;while(ii=ii&&u(ii));return null}function g(ii,ti){return ii.substring(0,ti.length)===ti}function G(ii,ti){return ii.substring(ii.length-ti.length)===ti}function J(ii){var ti=ii.trim();return g(ti,"<")&&G(ti,"/>")?ti.substring(1,ti.length-2):ti}function Z(ii,ti){return ti.indexOf("closest ")===0?[v(ii,J(ti.substr(8)))]:ti.indexOf("find ")===0?[C(ii,J(ti.substr(5)))]:ti==="next"?[ii.nextElementSibling]:ti.indexOf("next ")===0?[K(ii,J(ti.substr(5)))]:ti==="previous"?[ii.previousElementSibling]:ti.indexOf("previous ")===0?[Y(ii,J(ti.substr(9)))]:ti==="document"?[document]:ti==="window"?[window]:ti==="body"?[document.body]:re().querySelectorAll(J(ti))}var K=function(ii,ti){for(var ei=re().querySelectorAll(ti),ni=0;ni=0;ni--){var ri=ei[ni];if(ri.compareDocumentPosition(ii)===Node.DOCUMENT_POSITION_FOLLOWING)return ri}};function ue(ii,ti){return ti?Z(ii,ti)[0]:Z(re().body,ii)[0]}function p(ii){return I(ii,"String")?C(ii):ii}function ve(ii,ti,ei){return k(ti)?{target:re().body,event:ii,listener:ti}:{target:p(ii),event:ti,listener:ei}}function de(ii,ti,ei){jr(function(){var ri=ve(ii,ti,ei);ri.target.addEventListener(ri.event,ri.listener)});var ni=k(ti);return ni?ti:ei}function ge(ii,ti,ei){return jr(function(){var ni=ve(ii,ti,ei);ni.target.removeEventListener(ni.event,ni.listener)}),k(ti)?ti:ei}var pe=re().createElement("output");function me(ii,ti){var ei=ne(ii,ti);if(ei){if(ei==="this")return[xe(ii,ti)];var ni=Z(ii,ei);return ni.length===0?(b('The selector "'+ei+'" on '+ti+" returned no matches!"),[pe]):ni}}function xe(ii,ti){return c(ii,function(ei){return te(ei,ti)!=null})}function ye(ii){var ti=ne(ii,"hx-target");if(ti)return ti==="this"?xe(ii,"hx-target"):ue(ii,ti);var ei=ae(ii);return ei.boosted?re().body:ii}function be(ii){for(var ti=Q.config.attributesToSettle,ei=0;ei0?(ri=ii.substr(0,ii.indexOf(":")),ni=ii.substr(ii.indexOf(":")+1,ii.length)):ri=ii);var si=re().querySelectorAll(ni);return si?(oe(si,function(ai){var li,di=ti.cloneNode(!0);li=re().createDocumentFragment(),li.appendChild(di),Se(ri,ai)||(li=di);var mi={shouldSwap:!0,target:ai,fragment:li};ce(ai,"htmx:oobBeforeSwap",mi)&&(ai=mi.target,mi.shouldSwap&&Fe(ri,ai,ai,li,ei),oe(ei.elts,function(hi){ce(hi,"htmx:oobAfterSwap",mi)}))}),ti.parentNode.removeChild(ti)):(ti.parentNode.removeChild(ti),fe(re().body,"htmx:oobErrorNoTarget",{content:ti})),ii}function Ce(ii,ti,ei){var ni=ne(ii,"hx-select-oob");if(ni)for(var ri=ni.split(","),si=0;si0){var si=ri.replace("'","\\'"),ai=ni.tagName.replace(":","\\:"),li=ii.querySelector(ai+"[id='"+si+"']");if(li&&li!==ii){var di=ni.cloneNode();we(ni,li),ei.tasks.push(function(){we(ni,di)})}}})}function Oe(ii){return function(){n(ii,Q.config.addedClass),zt(ii),Nt(ii),qe(ii),ce(ii,"htmx:load")}}function qe(ii){var ti="[autofocus]",ei=h(ii,ti)?ii:ii.querySelector(ti);ei!=null&&ei.focus()}function a(ii,ti,ei,ni){for(Te(ii,ei,ni);ei.childNodes.length>0;){var ri=ei.firstChild;z(ri,Q.config.addedClass),ii.insertBefore(ri,ti),ri.nodeType!==Node.TEXT_NODE&&ri.nodeType!==Node.COMMENT_NODE&&ni.tasks.push(Oe(ri))}}function He(ii,ti){for(var ei=0;ei-1){var ti=ii.replace(H,""),ei=ti.match(q);if(ei)return ei[2]}}function je(ii,ti,ei,ni,ri,si){ri.title=Ve(ni);var ai=l(ni);if(ai)return Ce(ei,ai,ri),ai=Be(ei,ai,si),Re(ai),Fe(ii,ei,ti,ai,ri)}function _e(ii,ti,ei){var ni=ii.getResponseHeader(ti);if(ni.indexOf("{")===0){var ri=E(ni);for(var si in ri)if(ri.hasOwnProperty(si)){var ai=ri[si];P(ai)||(ai={value:ai}),ce(ei,si,ai)}}else for(var li=ni.split(","),di=0;di0;){var ai=ti[0];if(ai==="]"){if(ni--,ni===0){si===null&&(ri=ri+"true"),ti.shift(),ri+=")})";try{var li=Tr(ii,function(){return Function(ri)()},function(){return!0});return li.source=ri,li}catch(di){return fe(re().body,"htmx:syntax:error",{error:di,source:ri}),null}}}else ai==="["&&ni++;Qe(ai,si,ei)?ri+="(("+ei+"."+ai+") ? ("+ei+"."+ai+") : (window."+ai+"))":ri=ri+ai,si=ti.shift()}}}function y(ii,ti){for(var ei="";ii.length>0&&!ti.test(ii[0]);)ei+=ii.shift();return ei}function tt(ii){var ti;return ii.length>0&&Ze.test(ii[0])?(ii.shift(),ti=y(ii,Ke).trim(),ii.shift()):ti=y(ii,x),ti}var rt="input, textarea, select";function nt(ii,ti,ei){var ni=[],ri=Ye(ti);do{y(ri,Je);var si=ri.length,ai=y(ri,/[,\[\s]/);if(ai!=="")if(ai==="every"){var li={trigger:"every"};y(ri,Je),li.pollInterval=d(y(ri,/[,\[\s]/)),y(ri,Je);var di=et(ii,ri,"event");di&&(li.eventFilter=di),ni.push(li)}else if(ai.indexOf("sse:")===0)ni.push({trigger:"sse",sseEvent:ai.substr(4)});else{var mi={trigger:ai},di=et(ii,ri,"event");for(di&&(mi.eventFilter=di);ri.length>0&&ri[0]!==",";){y(ri,Je);var hi=ri.shift();if(hi==="changed")mi.changed=!0;else if(hi==="once")mi.once=!0;else if(hi==="consume")mi.consume=!0;else if(hi==="delay"&&ri[0]===":")ri.shift(),mi.delay=d(y(ri,x));else if(hi==="from"&&ri[0]===":"){if(ri.shift(),Ze.test(ri[0]))var _i=tt(ri);else{var _i=y(ri,x);if(_i==="closest"||_i==="find"||_i==="next"||_i==="previous"){ri.shift();var Ei=tt(ri);Ei.length>0&&(_i+=" "+Ei)}}mi.from=_i}else hi==="target"&&ri[0]===":"?(ri.shift(),mi.target=tt(ri)):hi==="throttle"&&ri[0]===":"?(ri.shift(),mi.throttle=d(y(ri,x))):hi==="queue"&&ri[0]===":"?(ri.shift(),mi.queue=y(ri,x)):hi==="root"&&ri[0]===":"?(ri.shift(),mi[hi]=tt(ri)):hi==="threshold"&&ri[0]===":"?(ri.shift(),mi[hi]=y(ri,x)):fe(ii,"htmx:syntax:error",{token:ri.shift()})}ni.push(mi)}ri.length===si&&fe(ii,"htmx:syntax:error",{token:ri.shift()}),y(ri,Je)}while(ri[0]===","&&ri.shift());return ei&&(ei[ti]=ni),ni}function it(ii){var ti=te(ii,"hx-trigger"),ei=[];if(ti){var ni=Q.config.triggerSpecsCache;ei=ni&&ni[ti]||nt(ii,ti,ni)}return ei.length>0?ei:h(ii,"form")?[{trigger:"submit"}]:h(ii,'input[type="button"], input[type="submit"]')?[{trigger:"click"}]:h(ii,rt)?[{trigger:"change"}]:[{trigger:"click"}]}function at(ii){ae(ii).cancelled=!0}function ot(ii,ti,ei){var ni=ae(ii);ni.timeout=setTimeout(function(){se(ii)&&ni.cancelled!==!0&&(ct(ei,ii,Wt("hx:poll:trigger",{triggerSpec:ei,target:ii}))||ti(ii),ot(ii,ti,ei))},ei.pollInterval)}function st(ii){return location.hostname===ii.hostname&&ee(ii,"href")&&ee(ii,"href").indexOf("#")!==0}function lt(ii,ti,ei){if(ii.tagName==="A"&&st(ii)&&(ii.target===""||ii.target==="_self")||ii.tagName==="FORM"){ti.boosted=!0;var ni,ri;if(ii.tagName==="A")ni="get",ri=ee(ii,"href");else{var si=ee(ii,"method");ni=si?si.toLowerCase():"get",ri=ee(ii,"action")}ei.forEach(function(ai){ht(ii,function(li,di){if(v(li,Q.config.disableSelector)){m(li);return}he(ni,ri,li,di)},ti,ai,!0)})}}function ut(ii,ti){return!!((ii.type==="submit"||ii.type==="click")&&(ti.tagName==="FORM"||h(ti,'input[type="submit"], button')&&v(ti,"form")!==null||ti.tagName==="A"&&ti.href&&(ti.getAttribute("href")==="#"||ti.getAttribute("href").indexOf("#")!==0)))}function ft(ii,ti){return ae(ii).boosted&&ii.tagName==="A"&&ti.type==="click"&&(ti.ctrlKey||ti.metaKey)}function ct(ii,ti,ei){var ni=ii.eventFilter;if(ni)try{return ni.call(ti,ei)!==!0}catch(ri){return fe(re().body,"htmx:eventFilter:error",{error:ri,source:ni.source}),!0}return!1}function ht(ii,ti,ei,ni,ri){var si=ae(ii),ai;ni.from?ai=Z(ii,ni.from):ai=[ii],ni.changed&&ai.forEach(function(li){var di=ae(li);di.lastValue=li.value}),oe(ai,function(li){var di=function(mi){if(!se(ii)){li.removeEventListener(ni.trigger,di);return}if(!ft(ii,mi)&&((ri||ut(mi,ii))&&mi.preventDefault(),!ct(ni,ii,mi))){var hi=ae(mi);if(hi.triggerSpec=ni,hi.handledFor==null&&(hi.handledFor=[]),hi.handledFor.indexOf(ii)<0){if(hi.handledFor.push(ii),ni.consume&&mi.stopPropagation(),ni.target&&mi.target&&!h(mi.target,ni.target))return;if(ni.once){if(si.triggeredOnce)return;si.triggeredOnce=!0}if(ni.changed){var _i=ae(li);if(_i.lastValue===li.value)return;_i.lastValue=li.value}if(si.delayed&&clearTimeout(si.delayed),si.throttle)return;ni.throttle>0?si.throttle||(ti(ii,mi),si.throttle=setTimeout(function(){si.throttle=null},ni.throttle)):ni.delay>0?si.delayed=setTimeout(function(){ti(ii,mi)},ni.delay):(ce(ii,"htmx:trigger"),ti(ii,mi))}}};ei.listenerInfos==null&&(ei.listenerInfos=[]),ei.listenerInfos.push({trigger:ni.trigger,listener:di,on:li}),li.addEventListener(ni.trigger,di)})}var vt=!1,dt=null;function gt(){dt||(dt=function(){vt=!0},window.addEventListener("scroll",dt),setInterval(function(){vt&&(vt=!1,oe(re().querySelectorAll("[hx-trigger='revealed'],[data-hx-trigger='revealed']"),function(ii){pt(ii)}))},200))}function pt(ii){if(!o(ii,"data-hx-revealed")&&X(ii)){ii.setAttribute("data-hx-revealed","true");var ti=ae(ii);ti.initHash?ce(ii,"revealed"):ii.addEventListener("htmx:afterProcessNode",function(ei){ce(ii,"revealed")},{once:!0})}}function mt(ii,ti,ei){for(var ni=D(ei),ri=0;ri=0){var ai=wt(ei);setTimeout(function(){xt(ii,ti,ei+1)},ai)}},ri.onopen=function(si){ei=0},ae(ii).webSocket=ri,ri.addEventListener("message",function(si){if(!yt(ii)){var ai=si.data;R(ii,function(Ei){ai=Ei.transformResponse(ai,null,ii)});for(var li=T(ii),di=l(ai),mi=M(di.children),hi=0;hi0){ce(ii,"htmx:validation:halted",ai);return}ni.send(JSON.stringify(hi)),ut(ei,ii)&&ei.preventDefault()}):fe(ii,"htmx:noWebSocketSourceError")}function wt(ii){var ti=Q.config.wsReconnectDelay;if(typeof ti=="function")return ti(ii);if(ti==="full-jitter"){var ei=Math.min(ii,6),ni=1e3*Math.pow(2,ei);return ni*Math.random()}b('htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"')}function St(ii,ti,ei){for(var ni=D(ei),ri=0;ri0?setTimeout(ri,ni):ri()}function Ht(ii,ti,ei){var ni=!1;return oe(w,function(ri){if(o(ii,"hx-"+ri)){var si=te(ii,"hx-"+ri);ni=!0,ti.path=si,ti.verb=ri,ei.forEach(function(ai){Lt(ii,ai,ti,function(li,di){if(v(li,Q.config.disableSelector)){m(li);return}he(ri,si,li,di)})})}}),ni}function Lt(ii,ti,ei,ni){if(ti.sseEvent)Rt(ii,ni,ti.sseEvent);else if(ti.trigger==="revealed")gt(),ht(ii,ni,ei,ti),pt(ii);else if(ti.trigger==="intersect"){var ri={};ti.root&&(ri.root=ue(ii,ti.root)),ti.threshold&&(ri.threshold=parseFloat(ti.threshold));var si=new IntersectionObserver(function(ai){for(var li=0;li0?(ei.polling=!0,ot(ii,ni,ti)):ht(ii,ni,ei,ti)}function At(ii){if(!ii.htmxExecuted&&Q.config.allowScriptTags&&(ii.type==="text/javascript"||ii.type==="module"||ii.type==="")){var ti=re().createElement("script");oe(ii.attributes,function(ni){ti.setAttribute(ni.name,ni.value)}),ti.textContent=ii.textContent,ti.async=!1,Q.config.inlineScriptNonce&&(ti.nonce=Q.config.inlineScriptNonce);var ei=ii.parentElement;try{ei.insertBefore(ti,ii)}catch(ni){b(ni)}finally{ii.parentElement&&ii.parentElement.removeChild(ii)}}}function Nt(ii){h(ii,"script")&&At(ii),oe(f(ii,"script"),function(ti){At(ti)})}function It(ii){var ti=ii.attributes;if(!ti)return!1;for(var ei=0;ei0;){var ai=ni.shift(),li=ai.match(/^\s*([a-zA-Z:\-\.]+:)(.*)/);si===0&&li?(ai.split(":"),ri=li[1].slice(0,-1),ei[ri]=li[2]):ei[ri]+=ai,si+=Bt(ai)}for(var di in ei)Ft(ii,di,ei[di])}}function jt(ii){Ae(ii);for(var ti=0;tiQ.config.historyCacheSize;)ri.shift();for(;ri.length>0;)try{localStorage.setItem("htmx-history-cache",JSON.stringify(ri));break}catch(li){fe(re().body,"htmx:historyCacheError",{cause:li,cache:ri}),ri.shift()}}}function Yt(ii){if(!U())return null;ii=B(ii);for(var ti=E(localStorage.getItem("htmx-history-cache"))||[],ei=0;ei=200&&this.status<400){ce(re().body,"htmx:historyCacheMissLoad",ei);var ni=l(this.response);ni=ni.querySelector("[hx-history-elt],[data-hx-history-elt]")||ni;var ri=Zt(),si=T(ri),ai=Ve(this.response);if(ai){var li=C("title");li?li.innerHTML=ai:window.document.title=ai}Ue(ri,ni,si),nr(si.tasks),Jt=ii,ce(re().body,"htmx:historyRestore",{path:ii,cacheMiss:!0,serverResponse:this.response})}else fe(re().body,"htmx:historyCacheMissLoadError",ei)},ti.send()}function ar(ii){er(),ii=ii||location.pathname+location.search;var ti=Yt(ii);if(ti){var ei=l(ti.content),ni=Zt(),ri=T(ni);Ue(ni,ei,ri),nr(ri.tasks),document.title=ti.title,setTimeout(function(){window.scrollTo(0,ti.scroll)},0),Jt=ii,ce(re().body,"htmx:historyRestore",{path:ii,item:ti})}else Q.config.refreshOnHistoryMiss?window.location.reload(!0):ir(ii)}function or(ii){var ti=me(ii,"hx-indicator");return ti==null&&(ti=[ii]),oe(ti,function(ei){var ni=ae(ei);ni.requestCount=(ni.requestCount||0)+1,ei.classList.add.call(ei.classList,Q.config.requestClass)}),ti}function sr(ii){var ti=me(ii,"hx-disabled-elt");return ti==null&&(ti=[]),oe(ti,function(ei){var ni=ae(ei);ni.requestCount=(ni.requestCount||0)+1,ei.setAttribute("disabled","")}),ti}function lr(ii,ti){oe(ii,function(ei){var ni=ae(ei);ni.requestCount=(ni.requestCount||0)-1,ni.requestCount===0&&ei.classList.remove.call(ei.classList,Q.config.requestClass)}),oe(ti,function(ei){var ni=ae(ei);ni.requestCount=(ni.requestCount||0)-1,ni.requestCount===0&&ei.removeAttribute("disabled")})}function ur(ii,ti){for(var ei=0;ei=0}function wr(ii,ti){var ei=ti||ne(ii,"hx-swap"),ni={swapStyle:ae(ii).boosted?"innerHTML":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&ae(ii).boosted&&!br(ii)&&(ni.show="top"),ei){var ri=D(ei);if(ri.length>0)for(var si=0;si0?di.join(":"):null;ni.scroll=mi,ni.scrollTarget=hi}else if(ai.indexOf("show:")===0){var _i=ai.substr(5),di=_i.split(":"),Ei=di.pop(),hi=di.length>0?di.join(":"):null;ni.show=Ei,ni.showTarget=hi}else if(ai.indexOf("focus-scroll:")===0){var Ai=ai.substr(13);ni.focusScroll=Ai=="true"}else si==0?ni.swapStyle=ai:b("Unknown modifier in hx-swap: "+ai)}}return ni}function Sr(ii){return ne(ii,"hx-encoding")==="multipart/form-data"||h(ii,"form")&&ee(ii,"enctype")==="multipart/form-data"}function Er(ii,ti,ei){var ni=null;return R(ti,function(ri){ni==null&&(ni=ri.encodeParameters(ii,ei,ti))}),ni!=null?ni:Sr(ti)?mr(ei):pr(ei)}function T(ii){return{tasks:[],elts:[ii]}}function Cr(ii,ti){var ei=ii[0],ni=ii[ii.length-1];if(ti.scroll){var ri=null;ti.scrollTarget&&(ri=ue(ei,ti.scrollTarget)),ti.scroll==="top"&&(ei||ri)&&(ri=ri||ei,ri.scrollTop=0),ti.scroll==="bottom"&&(ni||ri)&&(ri=ri||ni,ri.scrollTop=ri.scrollHeight)}if(ti.show){var ri=null;if(ti.showTarget){var si=ti.showTarget;ti.showTarget==="window"&&(si="body"),ri=ue(ei,si)}ti.show==="top"&&(ei||ri)&&(ri=ri||ei,ri.scrollIntoView({block:"start",behavior:Q.config.scrollBehavior})),ti.show==="bottom"&&(ni||ri)&&(ri=ri||ni,ri.scrollIntoView({block:"end",behavior:Q.config.scrollBehavior}))}}function Rr(ii,ti,ei,ni){if(ni==null&&(ni={}),ii==null)return ni;var ri=te(ii,ti);if(ri){var si=ri.trim(),ai=ei;if(si==="unset")return null;si.indexOf("javascript:")===0?(si=si.substr(11),ai=!0):si.indexOf("js:")===0&&(si=si.substr(3),ai=!0),si.indexOf("{")!==0&&(si="{"+si+"}");var li;ai?li=Tr(ii,function(){return Function("return ("+si+")")()},{}):li=E(si);for(var di in li)li.hasOwnProperty(di)&&ni[di]==null&&(ni[di]=li[di])}return Rr(u(ii),ti,ei,ni)}function Tr(ii,ti,ei){return Q.config.allowEval?ti():(fe(ii,"htmx:evalDisallowedError"),ei)}function Or(ii,ti){return Rr(ii,"hx-vars",!0,ti)}function qr(ii,ti){return Rr(ii,"hx-vals",!1,ti)}function Hr(ii){return le(Or(ii),qr(ii))}function Lr(ii,ti,ei){if(ei!==null)try{ii.setRequestHeader(ti,ei)}catch(ni){ii.setRequestHeader(ti,encodeURIComponent(ei)),ii.setRequestHeader(ti+"-URI-AutoEncoded","true")}}function Ar(ii){if(ii.responseURL&&typeof URL!="undefined")try{var ti=new URL(ii.responseURL);return ti.pathname+ti.search}catch(ei){fe(re().body,"htmx:badResponseUrl",{url:ii.responseURL})}}function O(ii,ti){return ti.test(ii.getAllResponseHeaders())}function Nr(ii,ti,ei){return ii=ii.toLowerCase(),ei?ei instanceof Element||I(ei,"String")?he(ii,ti,null,null,{targetOverride:p(ei),returnPromise:!0}):he(ii,ti,p(ei.source),ei.event,{handler:ei.handler,headers:ei.headers,values:ei.values,targetOverride:p(ei.target),swapOverride:ei.swap,select:ei.select,returnPromise:!0}):he(ii,ti,null,null,{returnPromise:!0})}function Ir(ii){for(var ti=[];ii;)ti.push(ii),ii=ii.parentElement;return ti}function kr(ii,ti,ei){var ni,ri;if(typeof URL=="function"){ri=new URL(ti,document.location.href);var si=document.location.origin;ni=si===ri.origin}else ri=ti,ni=g(ti,document.location.origin);return Q.config.selfRequestsOnly&&!ni?!1:ce(ii,"htmx:validateUrl",le({url:ri,sameHost:ni},ei))}function he(ii,ti,ei,ni,ri,si){var ai=null,li=null;if(ri=ri!=null?ri:{},ri.returnPromise&&typeof Promise!="undefined")var di=new Promise(function(qn,yn){ai=qn,li=yn});ei==null&&(ei=re().body);var mi=ri.handler||Mr,hi=ri.select||null;if(!se(ei))return ie(ai),di;var _i=ri.targetOverride||ye(ei);if(_i==null||_i==pe)return fe(ei,"htmx:targetError",{target:te(ei,"hx-target")}),ie(li),di;var Ei=ae(ei),Ai=Ei.lastButtonClicked;if(Ai){var ki=ee(Ai,"formaction");ki!=null&&(ti=ki);var Ti=ee(Ai,"formmethod");Ti!=null&&Ti.toLowerCase()!=="dialog"&&(ii=Ti)}var Fi=ne(ei,"hx-confirm");if(si===void 0){var en=function(qn){return he(ii,ti,ei,ni,ri,!!qn)},rn={target:_i,elt:ei,path:ti,verb:ii,triggeringEvent:ni,etc:ri,issueRequest:en,question:Fi};if(ce(ei,"htmx:confirm",rn)===!1)return ie(ai),di}var ln=ei,Yi=ne(ei,"hx-sync"),on=null,an=!1;if(Yi){var bn=Yi.split(":"),hn=bn[0].trim();if(hn==="this"?ln=xe(ei,"hx-sync"):ln=ue(ei,hn),Yi=(bn[1]||"drop").trim(),Ei=ae(ln),Yi==="drop"&&Ei.xhr&&Ei.abortable!==!0)return ie(ai),di;if(Yi==="abort"){if(Ei.xhr)return ie(ai),di;an=!0}else if(Yi==="replace")ce(ln,"htmx:abort");else if(Yi.indexOf("queue")===0){var pn=Yi.split(" ");on=(pn[1]||"last").trim()}}if(Ei.xhr)if(Ei.abortable)ce(ln,"htmx:abort");else{if(on==null){if(ni){var gn=ae(ni);gn&&gn.triggerSpec&&gn.triggerSpec.queue&&(on=gn.triggerSpec.queue)}on==null&&(on="last")}return Ei.queuedRequests==null&&(Ei.queuedRequests=[]),on==="first"&&Ei.queuedRequests.length===0?Ei.queuedRequests.push(function(){he(ii,ti,ei,ni,ri)}):on==="all"?Ei.queuedRequests.push(function(){he(ii,ti,ei,ni,ri)}):on==="last"&&(Ei.queuedRequests=[],Ei.queuedRequests.push(function(){he(ii,ti,ei,ni,ri)})),ie(ai),di}var un=new XMLHttpRequest;Ei.xhr=un,Ei.abortable=an;var vn=function(){if(Ei.xhr=null,Ei.abortable=!1,Ei.queuedRequests!=null&&Ei.queuedRequests.length>0){var qn=Ei.queuedRequests.shift();qn()}},Tn=ne(ei,"hx-prompt");if(Tn){var Ni=prompt(Tn);if(Ni===null||!ce(ei,"htmx:prompt",{prompt:Ni,target:_i}))return ie(ai),vn(),di}if(Fi&&!si&&!confirm(Fi))return ie(ai),vn(),di;var Hi=xr(ei,_i,Ni);ii!=="get"&&!Sr(ei)&&(Hi["Content-Type"]="application/x-www-form-urlencoded"),ri.headers&&(Hi=le(Hi,ri.headers));var Pi=dr(ei,ii),$i=Pi.errors,mn=Pi.values;ri.values&&(mn=le(mn,ri.values));var tn=Hr(ei),zi=le(mn,tn),Li=yr(zi,ei);Q.config.getCacheBusterParam&&ii==="get"&&(Li["org.htmx.cache-buster"]=ee(_i,"id")||"true"),(ti==null||ti==="")&&(ti=re().location.href);var ji=Rr(ei,"hx-request"),Ji=ae(ei).boosted,Vi=Q.config.methodsThatUseUrlParams.indexOf(ii)>=0,Ii={boosted:Ji,useUrlParams:Vi,parameters:Li,unfilteredParameters:zi,headers:Hi,target:_i,verb:ii,errors:$i,withCredentials:ri.credentials||ji.credentials||Q.config.withCredentials,timeout:ri.timeout||ji.timeout||Q.config.timeout,path:ti,triggeringEvent:ni};if(!ce(ei,"htmx:configRequest",Ii))return ie(ai),vn(),di;if(ti=Ii.path,ii=Ii.verb,Hi=Ii.headers,Li=Ii.parameters,$i=Ii.errors,Vi=Ii.useUrlParams,$i&&$i.length>0)return ce(ei,"htmx:validation:halted",Ii),ie(ai),vn(),di;var Sn=ti.split("#"),Yn=Sn[0],Fn=Sn[1],Bn=ti;if(Vi){Bn=Yn;var Gn=Object.keys(Li).length!==0;Gn&&(Bn.indexOf("?")<0?Bn+="?":Bn+="&",Bn+=pr(Li),Fn&&(Bn+="#"+Fn))}if(!kr(ei,Bn,Ii))return fe(ei,"htmx:invalidPath",Ii),ie(li),di;if(un.open(ii.toUpperCase(),Bn,!0),un.overrideMimeType("text/html"),un.withCredentials=Ii.withCredentials,un.timeout=Ii.timeout,!ji.noHeaders){for(var Qn in Hi)if(Hi.hasOwnProperty(Qn)){var Ts=Hi[Qn];Lr(un,Qn,Ts)}}var zn={xhr:un,target:_i,requestConfig:Ii,etc:ri,boosted:Ji,select:hi,pathInfo:{requestPath:ti,finalRequestPath:Bn,anchor:Fn}};if(un.onload=function(){try{var qn=Ir(ei);if(zn.pathInfo.responsePath=Ar(un),mi(ei,zn),lr(hs,ms),ce(ei,"htmx:afterRequest",zn),ce(ei,"htmx:afterOnLoad",zn),!se(ei)){for(var yn=null;qn.length>0&&yn==null;){var Kr=qn.shift();se(Kr)&&(yn=Kr)}yn&&(ce(yn,"htmx:afterRequest",zn),ce(yn,"htmx:afterOnLoad",zn))}ie(ai),vn()}catch(as){throw fe(ei,"htmx:onLoadError",le({error:as},zn)),as}},un.onerror=function(){lr(hs,ms),fe(ei,"htmx:afterRequest",zn),fe(ei,"htmx:sendError",zn),ie(li),vn()},un.onabort=function(){lr(hs,ms),fe(ei,"htmx:afterRequest",zn),fe(ei,"htmx:sendAbort",zn),ie(li),vn()},un.ontimeout=function(){lr(hs,ms),fe(ei,"htmx:afterRequest",zn),fe(ei,"htmx:timeout",zn),ie(li),vn()},!ce(ei,"htmx:beforeRequest",zn))return ie(ai),vn(),di;var hs=or(ei),ms=sr(ei);oe(["loadstart","loadend","progress","abort"],function(qn){oe([un,un.upload],function(yn){yn.addEventListener(qn,function(Kr){ce(ei,"htmx:xhr:"+qn,{lengthComputable:Kr.lengthComputable,loaded:Kr.loaded,total:Kr.total})})})}),ce(ei,"htmx:beforeSend",zn);var qs=Vi?null:Er(un,ei,Li);return un.send(qs),di}function Pr(ii,ti){var ei=ti.xhr,ni=null,ri=null;if(O(ei,/HX-Push:/i)?(ni=ei.getResponseHeader("HX-Push"),ri="push"):O(ei,/HX-Push-Url:/i)?(ni=ei.getResponseHeader("HX-Push-Url"),ri="push"):O(ei,/HX-Replace-Url:/i)&&(ni=ei.getResponseHeader("HX-Replace-Url"),ri="replace"),ni)return ni==="false"?{}:{type:ri,path:ni};var si=ti.pathInfo.finalRequestPath,ai=ti.pathInfo.responsePath,li=ne(ii,"hx-push-url"),di=ne(ii,"hx-replace-url"),mi=ae(ii).boosted,hi=null,_i=null;return li?(hi="push",_i=li):di?(hi="replace",_i=di):mi&&(hi="push",_i=ai||si),_i?_i==="false"?{}:(_i==="true"&&(_i=ai||si),ti.pathInfo.anchor&&_i.indexOf("#")===-1&&(_i=_i+"#"+ti.pathInfo.anchor),{type:hi,path:_i}):{}}function Mr(ii,ti){var ei=ti.xhr,ni=ti.target,ri=ti.etc,si=ti.requestConfig,ai=ti.select;if(ce(ii,"htmx:beforeOnLoad",ti)){if(O(ei,/HX-Trigger:/i)&&_e(ei,"HX-Trigger",ii),O(ei,/HX-Location:/i)){er();var li=ei.getResponseHeader("HX-Location"),di;li.indexOf("{")===0&&(di=E(li),li=di.path,delete di.path),Nr("GET",li,di).then(function(){tr(li)});return}var mi=O(ei,/HX-Refresh:/i)&&ei.getResponseHeader("HX-Refresh")==="true";if(O(ei,/HX-Redirect:/i)){location.href=ei.getResponseHeader("HX-Redirect"),mi&&location.reload();return}if(mi){location.reload();return}O(ei,/HX-Retarget:/i)&&(ei.getResponseHeader("HX-Retarget")==="this"?ti.target=ii:ti.target=ue(ii,ei.getResponseHeader("HX-Retarget")));var hi=Pr(ii,ti),_i=ei.status>=200&&ei.status<400&&ei.status!==204,Ei=ei.response,Ai=ei.status>=400,ki=Q.config.ignoreTitle,Ti=le({shouldSwap:_i,serverResponse:Ei,isError:Ai,ignoreTitle:ki},ti);if(ce(ni,"htmx:beforeSwap",Ti)){if(ni=Ti.target,Ei=Ti.serverResponse,Ai=Ti.isError,ki=Ti.ignoreTitle,ti.target=ni,ti.failed=Ai,ti.successful=!Ai,Ti.shouldSwap){ei.status===286&&at(ii),R(ii,function(hn){Ei=hn.transformResponse(Ei,ei,ii)}),hi.type&&er();var Fi=ri.swapOverride;O(ei,/HX-Reswap:/i)&&(Fi=ei.getResponseHeader("HX-Reswap"));var di=wr(ii,Fi);di.hasOwnProperty("ignoreTitle")&&(ki=di.ignoreTitle),ni.classList.add(Q.config.swappingClass);var en=null,rn=null,ln=function(){try{var hn=document.activeElement,pn={};try{pn={elt:hn,start:hn?hn.selectionStart:null,end:hn?hn.selectionEnd:null}}catch(Pi){}var gn;ai&&(gn=ai),O(ei,/HX-Reselect:/i)&&(gn=ei.getResponseHeader("HX-Reselect")),hi.type&&(ce(re().body,"htmx:beforeHistoryUpdate",le({history:hi},ti)),hi.type==="push"?(tr(hi.path),ce(re().body,"htmx:pushedIntoHistory",{path:hi.path})):(rr(hi.path),ce(re().body,"htmx:replacedInHistory",{path:hi.path})));var un=T(ni);if(je(di.swapStyle,ni,ii,Ei,un,gn),pn.elt&&!se(pn.elt)&&ee(pn.elt,"id")){var vn=document.getElementById(ee(pn.elt,"id")),Tn={preventScroll:di.focusScroll!==void 0?!di.focusScroll:!Q.config.defaultFocusScroll};if(vn){if(pn.start&&vn.setSelectionRange)try{vn.setSelectionRange(pn.start,pn.end)}catch(Pi){}vn.focus(Tn)}}if(ni.classList.remove(Q.config.swappingClass),oe(un.elts,function(Pi){Pi.classList&&Pi.classList.add(Q.config.settlingClass),ce(Pi,"htmx:afterSwap",ti)}),O(ei,/HX-Trigger-After-Swap:/i)){var Ni=ii;se(ii)||(Ni=re().body),_e(ei,"HX-Trigger-After-Swap",Ni)}var Hi=function(){if(oe(un.tasks,function(tn){tn.call()}),oe(un.elts,function(tn){tn.classList&&tn.classList.remove(Q.config.settlingClass),ce(tn,"htmx:afterSettle",ti)}),ti.pathInfo.anchor){var Pi=re().getElementById(ti.pathInfo.anchor);Pi&&Pi.scrollIntoView({block:"start",behavior:"auto"})}if(un.title&&!ki){var $i=C("title");$i?$i.innerHTML=un.title:window.document.title=un.title}if(Cr(un.elts,di),O(ei,/HX-Trigger-After-Settle:/i)){var mn=ii;se(ii)||(mn=re().body),_e(ei,"HX-Trigger-After-Settle",mn)}ie(en)};di.settleDelay>0?setTimeout(Hi,di.settleDelay):Hi()}catch(Pi){throw fe(ii,"htmx:swapError",ti),ie(rn),Pi}},Yi=Q.config.globalViewTransitions;if(di.hasOwnProperty("transition")&&(Yi=di.transition),Yi&&ce(ii,"htmx:beforeTransition",ti)&&typeof Promise!="undefined"&&document.startViewTransition){var on=new Promise(function(hn,pn){en=hn,rn=pn}),an=ln;ln=function(){document.startViewTransition(function(){return an(),on})}}di.swapDelay>0?setTimeout(ln,di.swapDelay):ln()}Ai&&fe(ii,"htmx:responseError",le({error:"Response Status Error Code "+ei.status+" from "+ti.pathInfo.requestPath},ti))}}}var Xr={};function Dr(){return{init:function(ii){return null},onEvent:function(ii,ti){return!0},transformResponse:function(ii,ti,ei){return ii},isInlineSwap:function(ii){return!1},handleSwap:function(ii,ti,ei,ni){return!1},encodeParameters:function(ii,ti,ei){return null}}}function Ur(ii,ti){ti.init&&ti.init(r),Xr[ii]=le(Dr(),ti)}function Br(ii){delete Xr[ii]}function Fr(ii,ti,ei){if(ii==null)return ti;ti==null&&(ti=[]),ei==null&&(ei=[]);var ni=te(ii,"hx-ext");return ni&&oe(ni.split(","),function(ri){if(ri=ri.replace(/ /g,""),ri.slice(0,7)=="ignore:"){ei.push(ri.slice(7));return}if(ei.indexOf(ri)<0){var si=Xr[ri];si&&ti.indexOf(si)<0&&ti.push(si)}}),Fr(u(ii),ti,ei)}var Vr=!1;re().addEventListener("DOMContentLoaded",function(){Vr=!0});function jr(ii){Vr||re().readyState==="complete"?ii():re().addEventListener("DOMContentLoaded",ii)}function _r(){Q.config.includeIndicatorStyles!==!1&&re().head.insertAdjacentHTML("beforeend","")}function zr(){var ii=re().querySelector('meta[name="htmx-config"]');return ii?E(ii.content):null}function $r(){var ii=zr();ii&&(Q.config=le(Q.config,ii))}return jr(function(){$r(),_r();var ii=re().body;zt(ii);var ti=re().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");ii.addEventListener("htmx:abort",function(ni){var ri=ni.target,si=ae(ri);si&&si.xhr&&si.xhr.abort()});let ei=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(ni){ni.state&&ni.state.htmx?(ar(),oe(ti,function(ri){ce(ri,"htmx:restored",{document:re(),triggerEvent:ce})})):ei&&ei(ni)},setTimeout(function(){ce(ii,"htmx:load",{}),ii=null},0)}),Q}()})});var El=Ya((Bc,zc)=>{(function(ii,ti){typeof Bc=="object"&&typeof zc!="undefined"?zc.exports=ti():typeof define=="function"&&define.amd?define(ti):(ii=typeof globalThis!="undefined"?globalThis:ii||self,ii.TomSelect=ti())})(Bc,function(){"use strict";function ii(fi,oi){fi.split(/\s+/).forEach(ci=>{oi(ci)})}class ti{constructor(){this._events=void 0,this._events={}}on(oi,ci){ii(oi,ui=>{let gi=this._events[ui]||[];gi.push(ci),this._events[ui]=gi})}off(oi,ci){var ui=arguments.length;if(ui===0){this._events={};return}ii(oi,gi=>{if(ui===1){delete this._events[gi];return}let bi=this._events[gi];bi!==void 0&&(bi.splice(bi.indexOf(ci),1),this._events[gi]=bi)})}trigger(oi,...ci){var ui=this;ii(oi,gi=>{let bi=ui._events[gi];bi!==void 0&&bi.forEach(yi=>{yi.apply(ui,ci)})})}}function ei(fi){return fi.plugins={},class extends fi{constructor(...oi){super(...oi),this.plugins={names:[],settings:{},requested:{},loaded:{}}}static define(oi,ci){fi.plugins[oi]={name:oi,fn:ci}}initializePlugins(oi){var ci,ui;let gi=this,bi=[];if(Array.isArray(oi))oi.forEach(yi=>{typeof yi=="string"?bi.push(yi):(gi.plugins.settings[yi.name]=yi.options,bi.push(yi.name))});else if(oi)for(ci in oi)oi.hasOwnProperty(ci)&&(gi.plugins.settings[ci]=oi[ci],bi.push(ci));for(;ui=bi.shift();)gi.require(ui)}loadPlugin(oi){var ci=this,ui=ci.plugins,gi=fi.plugins[oi];if(!fi.plugins.hasOwnProperty(oi))throw new Error('Unable to find "'+oi+'" plugin');ui.requested[oi]=!0,ui.loaded[oi]=gi.fn.apply(ci,[ci.plugins.settings[oi]||{}]),ui.names.push(oi)}require(oi){var ci=this,ui=ci.plugins;if(!ci.plugins.loaded.hasOwnProperty(oi)){if(ui.requested[oi])throw new Error('Plugin has circular dependency ("'+oi+'")');ci.loadPlugin(oi)}return ui.loaded[oi]}}}let ni=fi=>(fi=fi.filter(Boolean),fi.length<2?fi[0]||"":di(fi)==1?"["+fi.join("")+"]":"(?:"+fi.join("|")+")"),ri=fi=>{if(!ai(fi))return fi.join("");let oi="",ci=0,ui=()=>{ci>1&&(oi+="{"+ci+"}")};return fi.forEach((gi,bi)=>{if(gi===fi[bi-1]){ci++;return}ui(),oi+=gi,ci=1}),ui(),oi},si=fi=>{let oi=hi(fi);return ni(oi)},ai=fi=>new Set(fi).size!==fi.length,li=fi=>(fi+"").replace(/([\$\(\)\*\+\.\?\[\]\^\{\|\}\\])/gu,"\\$1"),di=fi=>fi.reduce((oi,ci)=>Math.max(oi,mi(ci)),0),mi=fi=>hi(fi).length,hi=fi=>Array.from(fi);let _i=fi=>{if(fi.length===1)return[[fi]];let oi=[],ci=fi.substring(1);return _i(ci).forEach(function(gi){let bi=gi.slice(0);bi[0]=fi.charAt(0)+bi[0],oi.push(bi),bi=gi.slice(0),bi.unshift(fi.charAt(0)),oi.push(bi)}),oi};let Ei=[[0,65535]],Ai="[\u0300-\u036F\xB7\u02BE\u02BC]",ki,Ti,Fi=3,en={},rn={"/":"\u2044\u2215",0:"\u07C0",a:"\u2C65\u0250\u0251",aa:"\uA733",ae:"\xE6\u01FD\u01E3",ao:"\uA735",au:"\uA737",av:"\uA739\uA73B",ay:"\uA73D",b:"\u0180\u0253\u0183",c:"\uA73F\u0188\u023C\u2184",d:"\u0111\u0257\u0256\u1D05\u018C\uABB7\u0501\u0266",e:"\u025B\u01DD\u1D07\u0247",f:"\uA77C\u0192",g:"\u01E5\u0260\uA7A1\u1D79\uA77F\u0262",h:"\u0127\u2C68\u2C76\u0265",i:"\u0268\u0131",j:"\u0249\u0237",k:"\u0199\u2C6A\uA741\uA743\uA745\uA7A3",l:"\u0142\u019A\u026B\u2C61\uA749\uA747\uA781\u026D",m:"\u0271\u026F\u03FB",n:"\uA7A5\u019E\u0272\uA791\u1D0E\u043B\u0509",o:"\xF8\u01FF\u0254\u0275\uA74B\uA74D\u1D11",oe:"\u0153",oi:"\u01A3",oo:"\uA74F",ou:"\u0223",p:"\u01A5\u1D7D\uA751\uA753\uA755\u03C1",q:"\uA757\uA759\u024B",r:"\u024D\u027D\uA75B\uA7A7\uA783",s:"\xDF\u023F\uA7A9\uA785\u0282",t:"\u0167\u01AD\u0288\u2C66\uA787",th:"\xFE",tz:"\uA729",u:"\u0289",v:"\u028B\uA75F\u028C",vy:"\uA761",w:"\u2C73",y:"\u01B4\u024F\u1EFF",z:"\u01B6\u0225\u0240\u2C6C\uA763",hv:"\u0195"};for(let fi in rn){let oi=rn[fi]||"";for(let ci=0;ci{ki===void 0&&(ki=gn(fi||Ei))},on=(fi,oi="NFKD")=>fi.normalize(oi),an=fi=>hi(fi).reduce((oi,ci)=>oi+bn(ci),""),bn=fi=>(fi=on(fi).toLowerCase().replace(ln,oi=>en[oi]||""),on(fi,"NFC"));function*hn(fi){for(let[oi,ci]of fi)for(let ui=oi;ui<=ci;ui++){let gi=String.fromCharCode(ui),bi=an(gi);bi!=gi.toLowerCase()&&(bi.length>Fi||bi.length!=0&&(yield{folded:bi,composed:gi,code_point:ui}))}}let pn=fi=>{let oi={},ci=(ui,gi)=>{let bi=oi[ui]||new Set,yi=new RegExp("^"+si(bi)+"$","iu");gi.match(yi)||(bi.add(li(gi)),oi[ui]=bi)};for(let ui of hn(fi))ci(ui.folded,ui.folded),ci(ui.folded,ui.composed);return oi},gn=fi=>{let oi=pn(fi),ci={},ui=[];for(let bi in oi){let yi=oi[bi];yi&&(ci[bi]=si(yi)),bi.length>1&&ui.push(li(bi))}ui.sort((bi,yi)=>yi.length-bi.length);let gi=ni(ui);return Ti=new RegExp("^"+gi,"u"),ci},un=(fi,oi=1)=>{let ci=0;return fi=fi.map(ui=>(ki[ui]&&(ci+=ui.length),ki[ui]||ui)),ci>=oi?ri(fi):""},vn=(fi,oi=1)=>(oi=Math.max(oi,fi.length-1),ni(_i(fi).map(ci=>un(ci,oi)))),Tn=(fi,oi=!0)=>{let ci=fi.length>1?1:0;return ni(fi.map(ui=>{let gi=[],bi=oi?ui.length():ui.length()-1;for(let yi=0;yi{for(let ci of oi){if(ci.start!=fi.start||ci.end!=fi.end||ci.substrs.join("")!==fi.substrs.join(""))continue;let ui=fi.parts,gi=yi=>{for(let Ci of ui){if(Ci.start===yi.start&&Ci.substr===yi.substr)return!1;if(!(yi.length==1||Ci.length==1)&&(yi.startCi.start||Ci.startyi.start))return!0}return!1};if(!(ci.parts.filter(gi).length>0))return!0}return!1};class Hi{constructor(){this.parts=[],this.substrs=[],this.start=0,this.end=0}add(oi){oi&&(this.parts.push(oi),this.substrs.push(oi.substr),this.start=Math.min(oi.start,this.start),this.end=Math.max(oi.end,this.end))}last(){return this.parts[this.parts.length-1]}length(){return this.parts.length}clone(oi,ci){let ui=new Hi,gi=JSON.parse(JSON.stringify(this.parts)),bi=gi.pop();for(let Oi of gi)ui.add(Oi);let yi=ci.substr.substring(0,oi-bi.start),Ci=yi.length;return ui.add({start:bi.start,end:bi.start+Ci,length:Ci,substr:yi}),ui}}let Pi=fi=>{Yi(),fi=an(fi);let oi="",ci=[new Hi];for(let ui=0;ui0){Oi=Oi.sort((Wi,Bi)=>Wi.length()-Bi.length());for(let Wi of Oi)Ni(Wi,ci)||ci.push(Wi);continue}if(ui>0&&Di.size==1&&!Di.has("3")){oi+=Tn(ci,!1);let Wi=new Hi,Bi=ci[0];Bi&&Wi.add(Bi.last()),ci=[Wi]}}return oi+=Tn(ci,!0),oi};let $i=(fi,oi)=>{if(fi)return fi[oi]},mn=(fi,oi)=>{if(fi){for(var ci,ui=oi.split(".");(ci=ui.shift())&&(fi=fi[ci]););return fi}},tn=(fi,oi,ci)=>{var ui,gi;return!fi||(fi=fi+"",oi.regex==null)||(gi=fi.search(oi.regex),gi===-1)?0:(ui=oi.string.length/fi.length,gi===0&&(ui+=.5),ui*ci)},zi=(fi,oi)=>{var ci=fi[oi];if(typeof ci=="function")return ci;ci&&!Array.isArray(ci)&&(fi[oi]=[ci])},Li=(fi,oi)=>{if(Array.isArray(fi))fi.forEach(oi);else for(var ci in fi)fi.hasOwnProperty(ci)&&oi(fi[ci],ci)},ji=(fi,oi)=>typeof fi=="number"&&typeof oi=="number"?fi>oi?1:fioi?1:oi>fi?-1:0);class Ji{constructor(oi,ci){this.items=void 0,this.settings=void 0,this.items=oi,this.settings=ci||{diacritics:!0}}tokenize(oi,ci,ui){if(!oi||!oi.length)return[];let gi=[],bi=oi.split(/\s+/);var yi;return ui&&(yi=new RegExp("^("+Object.keys(ui).map(li).join("|")+"):(.*)$")),bi.forEach(Ci=>{let Oi,Di=null,Wi=null;yi&&(Oi=Ci.match(yi))&&(Di=Oi[1],Ci=Oi[2]),Ci.length>0&&(this.settings.diacritics?Wi=Pi(Ci)||null:Wi=li(Ci),Wi&&ci&&(Wi="\\b"+Wi)),gi.push({string:Ci,regex:Wi?new RegExp(Wi,"iu"):null,field:Di})}),gi}getScoreFunction(oi,ci){var ui=this.prepareSearch(oi,ci);return this._getScoreFunction(ui)}_getScoreFunction(oi){let ci=oi.tokens,ui=ci.length;if(!ui)return function(){return 0};let gi=oi.options.fields,bi=oi.weights,yi=gi.length,Ci=oi.getAttrFn;if(!yi)return function(){return 1};let Oi=function(){return yi===1?function(Di,Wi){let Bi=gi[0].field;return tn(Ci(Wi,Bi),Di,bi[Bi]||1)}:function(Di,Wi){var Bi=0;if(Di.field){let Zi=Ci(Wi,Di.field);!Di.regex&&Zi?Bi+=1/yi:Bi+=tn(Zi,Di,1)}else Li(bi,(Zi,In)=>{Bi+=tn(Ci(Wi,In),Di,Zi)});return Bi/yi}}();return ui===1?function(Di){return Oi(ci[0],Di)}:oi.options.conjunction==="and"?function(Di){var Wi,Bi=0;for(let Zi of ci){if(Wi=Oi(Zi,Di),Wi<=0)return 0;Bi+=Wi}return Bi/ui}:function(Di){var Wi=0;return Li(ci,Bi=>{Wi+=Oi(Bi,Di)}),Wi/ui}}getSortFunction(oi,ci){var ui=this.prepareSearch(oi,ci);return this._getSortFunction(ui)}_getSortFunction(oi){var ci,ui=[];let gi=this,bi=oi.options,yi=!oi.query&&bi.sort_empty?bi.sort_empty:bi.sort;if(typeof yi=="function")return yi.bind(this);let Ci=function(Wi,Bi){return Wi==="$score"?Bi.score:oi.getAttrFn(gi.items[Bi.id],Wi)};if(yi)for(let Di of yi)(oi.query||Di.field!=="$score")&&ui.push(Di);if(oi.query){ci=!0;for(let Di of ui)if(Di.field==="$score"){ci=!1;break}ci&&ui.unshift({field:"$score",direction:"desc"})}else ui=ui.filter(Di=>Di.field!=="$score");return ui.length?function(Di,Wi){var Bi,Zi;for(let In of ui)if(Zi=In.field,Bi=(In.direction==="desc"?-1:1)*ji(Ci(Zi,Di),Ci(Zi,Wi)),Bi)return Bi;return 0}:null}prepareSearch(oi,ci){let ui={};var gi=Object.assign({},ci);if(zi(gi,"sort"),zi(gi,"sort_empty"),gi.fields){zi(gi,"fields");let bi=[];gi.fields.forEach(yi=>{typeof yi=="string"&&(yi={field:yi,weight:1}),bi.push(yi),ui[yi.field]="weight"in yi?yi.weight:1}),gi.fields=bi}return{options:gi,query:oi.toLowerCase().trim(),tokens:this.tokenize(oi,gi.respect_word_boundaries,ui),total:0,items:[],weights:ui,getAttrFn:gi.nesting?mn:$i}}search(oi,ci){var ui=this,gi,bi;bi=this.prepareSearch(oi,ci),ci=bi.options,oi=bi.query;let yi=ci.score||ui._getScoreFunction(bi);oi.length?Li(ui.items,(Oi,Di)=>{gi=yi(Oi),(ci.filter===!1||gi>0)&&bi.items.push({score:gi,id:Di})}):Li(ui.items,(Oi,Di)=>{bi.items.push({score:1,id:Di})});let Ci=ui._getSortFunction(bi);return Ci&&bi.items.sort(Ci),bi.total=bi.items.length,typeof ci.limit=="number"&&(bi.items=bi.items.slice(0,ci.limit)),bi}}let Vi=(fi,oi)=>{if(Array.isArray(fi))fi.forEach(oi);else for(var ci in fi)fi.hasOwnProperty(ci)&&oi(fi[ci],ci)},Ii=fi=>{if(fi.jquery)return fi[0];if(fi instanceof HTMLElement)return fi;if(Sn(fi)){var oi=document.createElement("template");return oi.innerHTML=fi.trim(),oi.content.firstChild}return document.querySelector(fi)},Sn=fi=>typeof fi=="string"&&fi.indexOf("<")>-1,Yn=fi=>fi.replace(/['"\\]/g,"\\$&"),Fn=(fi,oi)=>{var ci=document.createEvent("HTMLEvents");ci.initEvent(oi,!0,!1),fi.dispatchEvent(ci)},Bn=(fi,oi)=>{Object.assign(fi.style,oi)},Gn=(fi,...oi)=>{var ci=Ts(oi);fi=zn(fi),fi.map(ui=>{ci.map(gi=>{ui.classList.add(gi)})})},Qn=(fi,...oi)=>{var ci=Ts(oi);fi=zn(fi),fi.map(ui=>{ci.map(gi=>{ui.classList.remove(gi)})})},Ts=fi=>{var oi=[];return Vi(fi,ci=>{typeof ci=="string"&&(ci=ci.trim().split(/[\11\12\14\15\40]/)),Array.isArray(ci)&&(oi=oi.concat(ci))}),oi.filter(Boolean)},zn=fi=>(Array.isArray(fi)||(fi=[fi]),fi),hs=(fi,oi,ci)=>{if(!(ci&&!ci.contains(fi)))for(;fi&&fi.matches;){if(fi.matches(oi))return fi;fi=fi.parentNode}},ms=(fi,oi=0)=>oi>0?fi[fi.length-1]:fi[0],qs=fi=>Object.keys(fi).length===0,qn=(fi,oi)=>{if(!fi)return-1;oi=oi||fi.nodeName;for(var ci=0;fi=fi.previousElementSibling;)fi.matches(oi)&&ci++;return ci},yn=(fi,oi)=>{Vi(oi,(ci,ui)=>{ci==null?fi.removeAttribute(ui):fi.setAttribute(ui,""+ci)})},Kr=(fi,oi)=>{fi.parentNode&&fi.parentNode.replaceChild(oi,fi)},as=(fi,oi)=>{if(oi===null)return;if(typeof oi=="string"){if(!oi.length)return;oi=new RegExp(oi,"i")}let ci=bi=>{var yi=bi.data.match(oi);if(yi&&bi.data.length>0){var Ci=document.createElement("span");Ci.className="highlight";var Oi=bi.splitText(yi.index);Oi.splitText(yi[0].length);var Di=Oi.cloneNode(!0);return Ci.appendChild(Di),Kr(Oi,Ci),1}return 0},ui=bi=>{bi.nodeType===1&&bi.childNodes&&!/(script|style)/i.test(bi.tagName)&&(bi.className!=="highlight"||bi.tagName!=="SPAN")&&Array.from(bi.childNodes).forEach(yi=>{gi(yi)})},gi=bi=>bi.nodeType===3?ci(bi):(ui(bi),0);gi(fi)},Ws=fi=>{var oi=fi.querySelectorAll("span.highlight");Array.prototype.forEach.call(oi,function(ci){var ui=ci.parentNode;ui.replaceChild(ci.firstChild,ci),ui.normalize()})},po=65,Us=13,Ms=27,Ss=37,Ro=38,Ys=39,Po=40,ha=8,Wl=46,pa=9,Ho=(typeof navigator=="undefined"?!1:/Mac/.test(navigator.userAgent))?"metaKey":"ctrlKey";var ja={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:null,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,shouldOpen:null,maxOptions:50,maxItems:null,hideSelected:null,duplicates:!1,addPrecedence:!1,selectOnTab:!1,preload:null,allowEmptyOption:!1,refreshThrottle:300,loadThrottle:300,loadingClass:"loading",dataAttr:null,optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"ts-wrapper",controlClass:"ts-control",dropdownClass:"ts-dropdown",dropdownContentClass:"ts-dropdown-content",itemClass:"item",optionClass:"option",dropdownParent:null,controlInput:' ',copyClassesToDropdown:!1,placeholder:null,hidePlaceholder:null,shouldLoad:function(fi){return fi.length>0},render:{}};let wn=fi=>typeof fi=="undefined"||fi===null?null:Gs(fi),Gs=fi=>typeof fi=="boolean"?fi?"1":"0":fi+"",Ks=fi=>(fi+"").replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),Yl=(fi,oi)=>oi>0?setTimeout(fi,oi):(fi.call(null),null),Fo=(fi,oi)=>{var ci;return function(ui,gi){var bi=this;ci&&(bi.loading=Math.max(bi.loading-1,0),clearTimeout(ci)),ci=setTimeout(function(){ci=null,bi.loadedSearches[ui]=!0,fi.call(bi,ui,gi)},oi)}},$o=(fi,oi,ci)=>{var ui,gi=fi.trigger,bi={};fi.trigger=function(){var yi=arguments[0];if(oi.indexOf(yi)!==-1)bi[yi]=arguments;else return gi.apply(fi,arguments)},ci.apply(fi,[]),fi.trigger=gi;for(ui of oi)ui in bi&&gi.apply(fi,bi[ui])},Cs=fi=>({start:fi.selectionStart||0,length:(fi.selectionEnd||0)-(fi.selectionStart||0)}),Dn=(fi,oi=!1)=>{fi&&(fi.preventDefault(),oi&&fi.stopPropagation())},On=(fi,oi,ci,ui)=>{fi.addEventListener(oi,ci,ui)},pi=(fi,oi)=>{if(!oi||!oi[fi])return!1;var ci=(oi.altKey?1:0)+(oi.ctrlKey?1:0)+(oi.shiftKey?1:0)+(oi.metaKey?1:0);return ci===1},vi=(fi,oi)=>{let ci=fi.getAttribute("id");return ci||(fi.setAttribute("id",oi),oi)},wi=fi=>fi.replace(/[\\"']/g,"\\$&"),Si=(fi,oi)=>{oi&&fi.append(oi)};function Ri(fi,oi){var ci=Object.assign({},ja,oi),ui=ci.dataAttr,gi=ci.labelField,bi=ci.valueField,yi=ci.disabledField,Ci=ci.optgroupField,Oi=ci.optgroupLabelField,Di=ci.optgroupValueField,Wi=fi.tagName.toLowerCase(),Bi=fi.getAttribute("placeholder")||fi.getAttribute("data-placeholder");if(!Bi&&!ci.allowEmptyOption){let Cn=fi.querySelector('option[value=""]');Cn&&(Bi=Cn.textContent)}var Zi={placeholder:Bi,options:[],optgroups:[],items:[],maxItems:null},In=()=>{var Cn,Pn=Zi.options,kn={},dn=1;let jn=0;var Os=xn=>{var Ln=Object.assign({},xn.dataset),En=ui&&Ln[ui];return typeof En=="string"&&En.length&&(Ln=Object.assign(Ln,JSON.parse(En))),Ln},Va=(xn,Ln)=>{var En=wn(xn.value);if(En!=null&&!(!En&&!ci.allowEmptyOption)){if(kn.hasOwnProperty(En)){if(Ln){var Jr=kn[En][Ci];Jr?Array.isArray(Jr)?Jr.push(Ln):kn[En][Ci]=[Jr,Ln]:kn[En][Ci]=Ln}}else{var Nn=Os(xn);Nn[gi]=Nn[gi]||xn.textContent,Nn[bi]=Nn[bi]||En,Nn[yi]=Nn[yi]||xn.disabled,Nn[Ci]=Nn[Ci]||Ln,Nn.$option=xn,Nn.$order=Nn.$order||++jn,kn[En]=Nn,Pn.push(Nn)}xn.selected&&Zi.items.push(En)}},Bo=xn=>{var Ln,En;En=Os(xn),En[Oi]=En[Oi]||xn.getAttribute("label")||"",En[Di]=En[Di]||dn++,En[yi]=En[yi]||xn.disabled,En.$order=En.$order||++jn,Zi.optgroups.push(En),Ln=En[Di],Vi(xn.children,Jr=>{Va(Jr,Ln)})};Zi.maxItems=fi.hasAttribute("multiple")?null:1,Vi(fi.children,xn=>{Cn=xn.tagName.toLowerCase(),Cn==="optgroup"?Bo(xn):Cn==="option"&&Va(xn)})},Ki=()=>{let Cn=fi.getAttribute(ui);if(Cn)Zi.options=JSON.parse(Cn),Vi(Zi.options,kn=>{Zi.items.push(kn[bi])});else{var Pn=fi.value.trim()||"";if(!ci.allowEmptyOption&&!Pn.length)return;let kn=Pn.split(ci.delimiter);Vi(kn,dn=>{let jn={};jn[gi]=dn,jn[bi]=dn,Zi.options.push(jn)}),Zi.items=kn}};return Wi==="select"?In():Ki(),Object.assign({},ja,Zi,oi)}var qi=0;class nn extends ei(ti){constructor(oi,ci){super(),this.control_input=void 0,this.wrapper=void 0,this.dropdown=void 0,this.control=void 0,this.dropdown_content=void 0,this.focus_node=void 0,this.order=0,this.settings=void 0,this.input=void 0,this.tabIndex=void 0,this.is_select_tag=void 0,this.rtl=void 0,this.inputId=void 0,this._destroy=void 0,this.sifter=void 0,this.isOpen=!1,this.isDisabled=!1,this.isReadOnly=!1,this.isRequired=void 0,this.isInvalid=!1,this.isValid=!0,this.isLocked=!1,this.isFocused=!1,this.isInputHidden=!1,this.isSetup=!1,this.ignoreFocus=!1,this.ignoreHover=!1,this.hasOptions=!1,this.currentResults=void 0,this.lastValue="",this.caretPos=0,this.loading=0,this.loadedSearches={},this.activeOption=null,this.activeItems=[],this.optgroups={},this.options={},this.userOptions={},this.items=[],this.refreshTimeout=null,qi++;var ui,gi=Ii(oi);if(gi.tomselect)throw new Error("Tom Select already initialized on this element");gi.tomselect=this;var bi=window.getComputedStyle&&window.getComputedStyle(gi,null);ui=bi.getPropertyValue("direction");let yi=Ri(gi,ci);this.settings=yi,this.input=gi,this.tabIndex=gi.tabIndex||0,this.is_select_tag=gi.tagName.toLowerCase()==="select",this.rtl=/rtl/i.test(ui),this.inputId=vi(gi,"tomselect-"+qi),this.isRequired=gi.required,this.sifter=new Ji(this.options,{diacritics:yi.diacritics}),yi.mode=yi.mode||(yi.maxItems===1?"single":"multi"),typeof yi.hideSelected!="boolean"&&(yi.hideSelected=yi.mode==="multi"),typeof yi.hidePlaceholder!="boolean"&&(yi.hidePlaceholder=yi.mode!=="multi");var Ci=yi.createFilter;typeof Ci!="function"&&(typeof Ci=="string"&&(Ci=new RegExp(Ci)),Ci instanceof RegExp?yi.createFilter=Pn=>Ci.test(Pn):yi.createFilter=Pn=>this.settings.duplicates||!this.options[Pn]),this.initializePlugins(yi.plugins),this.setupCallbacks(),this.setupTemplates();let Oi=Ii(""),Di=Ii("
"),Wi=this._render("dropdown"),Bi=Ii('
'),Zi=this.input.getAttribute("class")||"",In=yi.mode;var Ki;if(Gn(Oi,yi.wrapperClass,Zi,In),Gn(Di,yi.controlClass),Si(Oi,Di),Gn(Wi,yi.dropdownClass,In),yi.copyClassesToDropdown&&Gn(Wi,Zi),Gn(Bi,yi.dropdownContentClass),Si(Wi,Bi),Ii(yi.dropdownParent||Oi).appendChild(Wi),Sn(yi.controlInput)){Ki=Ii(yi.controlInput);var Cn=["autocorrect","autocapitalize","autocomplete","spellcheck"];Li(Cn,Pn=>{gi.getAttribute(Pn)&&yn(Ki,{[Pn]:gi.getAttribute(Pn)})}),Ki.tabIndex=-1,Di.appendChild(Ki),this.focus_node=Ki}else yi.controlInput?(Ki=Ii(yi.controlInput),this.focus_node=Ki):(Ki=Ii("
"),this.focus_node=Di);this.wrapper=Oi,this.dropdown=Wi,this.dropdown_content=Bi,this.control=Di,this.control_input=Ki,this.setup()}setup(){let oi=this,ci=oi.settings,ui=oi.control_input,gi=oi.dropdown,bi=oi.dropdown_content,yi=oi.wrapper,Ci=oi.control,Oi=oi.input,Di=oi.focus_node,Wi={passive:!0},Bi=oi.inputId+"-ts-dropdown";yn(bi,{id:Bi}),yn(Di,{role:"combobox","aria-haspopup":"listbox","aria-expanded":"false","aria-controls":Bi});let Zi=vi(Di,oi.inputId+"-ts-control"),In="label[for='"+Yn(oi.inputId)+"']",Ki=document.querySelector(In),Cn=oi.focus.bind(oi);if(Ki){On(Ki,"click",Cn),yn(Ki,{for:Zi});let dn=vi(Ki,oi.inputId+"-ts-label");yn(Di,{"aria-labelledby":dn}),yn(bi,{"aria-labelledby":dn})}if(yi.style.width=Oi.style.width,oi.plugins.names.length){let dn="plugin-"+oi.plugins.names.join(" plugin-");Gn([yi,gi],dn)}(ci.maxItems===null||ci.maxItems>1)&&oi.is_select_tag&&yn(Oi,{multiple:"multiple"}),ci.placeholder&&yn(ui,{placeholder:ci.placeholder}),!ci.splitOn&&ci.delimiter&&(ci.splitOn=new RegExp("\\s*"+li(ci.delimiter)+"+\\s*")),ci.load&&ci.loadThrottle&&(ci.load=Fo(ci.load,ci.loadThrottle)),On(gi,"mousemove",()=>{oi.ignoreHover=!1}),On(gi,"mouseenter",dn=>{var jn=hs(dn.target,"[data-selectable]",gi);jn&&oi.onOptionHover(dn,jn)},{capture:!0}),On(gi,"click",dn=>{let jn=hs(dn.target,"[data-selectable]");jn&&(oi.onOptionSelect(dn,jn),Dn(dn,!0))}),On(Ci,"click",dn=>{var jn=hs(dn.target,"[data-ts-item]",Ci);if(jn&&oi.onItemSelect(dn,jn)){Dn(dn,!0);return}ui.value==""&&(oi.onClick(),Dn(dn,!0))}),On(Di,"keydown",dn=>oi.onKeyDown(dn)),On(ui,"keypress",dn=>oi.onKeyPress(dn)),On(ui,"input",dn=>oi.onInput(dn)),On(Di,"blur",dn=>oi.onBlur(dn)),On(Di,"focus",dn=>oi.onFocus(dn)),On(ui,"paste",dn=>oi.onPaste(dn));let Pn=dn=>{let jn=dn.composedPath()[0];if(!yi.contains(jn)&&!gi.contains(jn)){oi.isFocused&&oi.blur(),oi.inputState();return}jn==ui&&oi.isOpen?dn.stopPropagation():Dn(dn,!0)},kn=()=>{oi.isOpen&&oi.positionDropdown()};On(document,"mousedown",Pn),On(window,"scroll",kn,Wi),On(window,"resize",kn,Wi),this._destroy=()=>{document.removeEventListener("mousedown",Pn),window.removeEventListener("scroll",kn),window.removeEventListener("resize",kn),Ki&&Ki.removeEventListener("click",Cn)},this.revertSettings={innerHTML:Oi.innerHTML,tabIndex:Oi.tabIndex},Oi.tabIndex=-1,Oi.insertAdjacentElement("afterend",oi.wrapper),oi.sync(!1),ci.items=[],delete ci.optgroups,delete ci.options,On(Oi,"invalid",()=>{oi.isValid&&(oi.isValid=!1,oi.isInvalid=!0,oi.refreshState())}),oi.updateOriginalInput(),oi.refreshItems(),oi.close(!1),oi.inputState(),oi.isSetup=!0,Oi.disabled?oi.disable():Oi.readOnly?oi.setReadOnly(!0):oi.enable(),oi.on("change",this.onChange),Gn(Oi,"tomselected","ts-hidden-accessible"),oi.trigger("initialize"),ci.preload===!0&&oi.preload()}setupOptions(oi=[],ci=[]){this.addOptions(oi),Li(ci,ui=>{this.registerOptionGroup(ui)})}setupTemplates(){var oi=this,ci=oi.settings.labelField,ui=oi.settings.optgroupLabelField,gi={optgroup:bi=>{let yi=document.createElement("div");return yi.className="optgroup",yi.appendChild(bi.options),yi},optgroup_header:(bi,yi)=>'",option:(bi,yi)=>"
"+yi(bi[ci])+"
",item:(bi,yi)=>"
"+yi(bi[ci])+"
",option_create:(bi,yi)=>'
Add '+yi(bi.input)+" …
",no_results:()=>'
No results found
',loading:()=>'
',not_loading:()=>{},dropdown:()=>"
"};oi.settings.render=Object.assign({},gi,oi.settings.render)}setupCallbacks(){var oi,ci,ui={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",item_select:"onItemSelect",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(oi in ui)ci=this.settings[ui[oi]],ci&&this.on(oi,ci)}sync(oi=!0){let ci=this,ui=oi?Ri(ci.input,{delimiter:ci.settings.delimiter}):ci.settings;ci.setupOptions(ui.options,ui.optgroups),ci.setValue(ui.items||[],!0),ci.lastQuery=null}onClick(){var oi=this;if(oi.activeItems.length>0){oi.clearActiveItems(),oi.focus();return}oi.isFocused&&oi.isOpen?oi.blur():oi.focus()}onMouseDown(){}onChange(){Fn(this.input,"input"),Fn(this.input,"change")}onPaste(oi){var ci=this;if(ci.isInputHidden||ci.isLocked){Dn(oi);return}ci.settings.splitOn&&setTimeout(()=>{var ui=ci.inputValue();if(ui.match(ci.settings.splitOn)){var gi=ui.trim().split(ci.settings.splitOn);Li(gi,bi=>{wn(bi)&&(this.options[bi]?ci.addItem(bi):ci.createItem(bi))})}},0)}onKeyPress(oi){var ci=this;if(ci.isLocked){Dn(oi);return}var ui=String.fromCharCode(oi.keyCode||oi.which);if(ci.settings.create&&ci.settings.mode==="multi"&&ui===ci.settings.delimiter){ci.createItem(),Dn(oi);return}}onKeyDown(oi){var ci=this;if(ci.ignoreHover=!0,ci.isLocked){oi.keyCode!==pa&&Dn(oi);return}switch(oi.keyCode){case po:if(pi(Ho,oi)&&ci.control_input.value==""){Dn(oi),ci.selectAll();return}break;case Ms:ci.isOpen&&(Dn(oi,!0),ci.close()),ci.clearActiveItems();return;case Po:if(!ci.isOpen&&ci.hasOptions)ci.open();else if(ci.activeOption){let ui=ci.getAdjacent(ci.activeOption,1);ui&&ci.setActiveOption(ui)}Dn(oi);return;case Ro:if(ci.activeOption){let ui=ci.getAdjacent(ci.activeOption,-1);ui&&ci.setActiveOption(ui)}Dn(oi);return;case Us:ci.canSelect(ci.activeOption)?(ci.onOptionSelect(oi,ci.activeOption),Dn(oi)):(ci.settings.create&&ci.createItem()||document.activeElement==ci.control_input&&ci.isOpen)&&Dn(oi);return;case Ss:ci.advanceSelection(-1,oi);return;case Ys:ci.advanceSelection(1,oi);return;case pa:ci.settings.selectOnTab&&(ci.canSelect(ci.activeOption)&&(ci.onOptionSelect(oi,ci.activeOption),Dn(oi)),ci.settings.create&&ci.createItem()&&Dn(oi));return;case ha:case Wl:ci.deleteSelection(oi);return}ci.isInputHidden&&!pi(Ho,oi)&&Dn(oi)}onInput(oi){if(this.isLocked)return;let ci=this.inputValue();if(this.lastValue!==ci){if(this.lastValue=ci,ci==""){this._onInput();return}this.refreshTimeout&&clearTimeout(this.refreshTimeout),this.refreshTimeout=Yl(()=>{this.refreshTimeout=null,this._onInput()},this.settings.refreshThrottle)}}_onInput(){let oi=this.lastValue;this.settings.shouldLoad.call(this,oi)&&this.load(oi),this.refreshOptions(),this.trigger("type",oi)}onOptionHover(oi,ci){this.ignoreHover||this.setActiveOption(ci,!1)}onFocus(oi){var ci=this,ui=ci.isFocused;if(ci.isDisabled||ci.isReadOnly){ci.blur(),Dn(oi);return}ci.ignoreFocus||(ci.isFocused=!0,ci.settings.preload==="focus"&&ci.preload(),ui||ci.trigger("focus"),ci.activeItems.length||(ci.inputState(),ci.refreshOptions(!!ci.settings.openOnFocus)),ci.refreshState())}onBlur(oi){if(document.hasFocus()!==!1){var ci=this;if(ci.isFocused){ci.isFocused=!1,ci.ignoreFocus=!1;var ui=()=>{ci.close(),ci.setActiveItem(),ci.setCaret(ci.items.length),ci.trigger("blur")};ci.settings.create&&ci.settings.createOnBlur?ci.createItem(null,ui):ui()}}}onOptionSelect(oi,ci){var ui,gi=this;ci.parentElement&&ci.parentElement.matches("[data-disabled]")||(ci.classList.contains("create")?gi.createItem(null,()=>{gi.settings.closeAfterSelect&&gi.close()}):(ui=ci.dataset.value,typeof ui!="undefined"&&(gi.lastQuery=null,gi.addItem(ui),gi.settings.closeAfterSelect&&gi.close(),!gi.settings.hideSelected&&oi.type&&/click/.test(oi.type)&&gi.setActiveOption(ci))))}canSelect(oi){return!!(this.isOpen&&oi&&this.dropdown_content.contains(oi))}onItemSelect(oi,ci){var ui=this;return!ui.isLocked&&ui.settings.mode==="multi"?(Dn(oi),ui.setActiveItem(ci,oi),!0):!1}canLoad(oi){return!(!this.settings.load||this.loadedSearches.hasOwnProperty(oi))}load(oi){let ci=this;if(!ci.canLoad(oi))return;Gn(ci.wrapper,ci.settings.loadingClass),ci.loading++;let ui=ci.loadCallback.bind(ci);ci.settings.load.call(ci,oi,ui)}loadCallback(oi,ci){let ui=this;ui.loading=Math.max(ui.loading-1,0),ui.lastQuery=null,ui.clearActiveOption(),ui.setupOptions(oi,ci),ui.refreshOptions(ui.isFocused&&!ui.isInputHidden),ui.loading||Qn(ui.wrapper,ui.settings.loadingClass),ui.trigger("load",oi,ci)}preload(){var oi=this.wrapper.classList;oi.contains("preloaded")||(oi.add("preloaded"),this.load(""))}setTextboxValue(oi=""){var ci=this.control_input,ui=ci.value!==oi;ui&&(ci.value=oi,Fn(ci,"update"),this.lastValue=oi)}getValue(){return this.is_select_tag&&this.input.hasAttribute("multiple")?this.items:this.items.join(this.settings.delimiter)}setValue(oi,ci){var ui=ci?[]:["change"];$o(this,ui,()=>{this.clear(ci),this.addItems(oi,ci)})}setMaxItems(oi){oi===0&&(oi=null),this.settings.maxItems=oi,this.refreshState()}setActiveItem(oi,ci){var ui=this,gi,bi,yi,Ci,Oi,Di;if(ui.settings.mode!=="single"){if(!oi){ui.clearActiveItems(),ui.isFocused&&ui.inputState();return}if(gi=ci&&ci.type.toLowerCase(),gi==="click"&&pi("shiftKey",ci)&&ui.activeItems.length){for(Di=ui.getLastActive(),yi=Array.prototype.indexOf.call(ui.control.children,Di),Ci=Array.prototype.indexOf.call(ui.control.children,oi),yi>Ci&&(Oi=yi,yi=Ci,Ci=Oi),bi=yi;bi<=Ci;bi++)oi=ui.control.children[bi],ui.activeItems.indexOf(oi)===-1&&ui.setActiveItemClass(oi);Dn(ci)}else gi==="click"&&pi(Ho,ci)||gi==="keydown"&&pi("shiftKey",ci)?oi.classList.contains("active")?ui.removeActiveItem(oi):ui.setActiveItemClass(oi):(ui.clearActiveItems(),ui.setActiveItemClass(oi));ui.inputState(),ui.isFocused||ui.focus()}}setActiveItemClass(oi){let ci=this,ui=ci.control.querySelector(".last-active");ui&&Qn(ui,"last-active"),Gn(oi,"active last-active"),ci.trigger("item_select",oi),ci.activeItems.indexOf(oi)==-1&&ci.activeItems.push(oi)}removeActiveItem(oi){var ci=this.activeItems.indexOf(oi);this.activeItems.splice(ci,1),Qn(oi,"active")}clearActiveItems(){Qn(this.activeItems,"active"),this.activeItems=[]}setActiveOption(oi,ci=!0){oi!==this.activeOption&&(this.clearActiveOption(),oi&&(this.activeOption=oi,yn(this.focus_node,{"aria-activedescendant":oi.getAttribute("id")}),yn(oi,{"aria-selected":"true"}),Gn(oi,"active"),ci&&this.scrollToOption(oi)))}scrollToOption(oi,ci){if(!oi)return;let ui=this.dropdown_content,gi=ui.clientHeight,bi=ui.scrollTop||0,yi=oi.offsetHeight,Ci=oi.getBoundingClientRect().top-ui.getBoundingClientRect().top+bi;Ci+yi>gi+bi?this.scroll(Ci-gi+yi,ci):Ci
{oi.setActiveItemClass(ui)}))}inputState(){var oi=this;oi.control.contains(oi.control_input)&&(yn(oi.control_input,{placeholder:oi.settings.placeholder}),oi.activeItems.length>0||!oi.isFocused&&oi.settings.hidePlaceholder&&oi.items.length>0?(oi.setTextboxValue(),oi.isInputHidden=!0):(oi.settings.hidePlaceholder&&oi.items.length>0&&yn(oi.control_input,{placeholder:""}),oi.isInputHidden=!1),oi.wrapper.classList.toggle("input-hidden",oi.isInputHidden))}inputValue(){return this.control_input.value.trim()}focus(){var oi=this;oi.isDisabled||oi.isReadOnly||(oi.ignoreFocus=!0,oi.control_input.offsetWidth?oi.control_input.focus():oi.focus_node.focus(),setTimeout(()=>{oi.ignoreFocus=!1,oi.onFocus()},0))}blur(){this.focus_node.blur(),this.onBlur()}getScoreFunction(oi){return this.sifter.getScoreFunction(oi,this.getSearchOptions())}getSearchOptions(){var oi=this.settings,ci=oi.sortField;return typeof oi.sortField=="string"&&(ci=[{field:oi.sortField}]),{fields:oi.searchField,conjunction:oi.searchConjunction,sort:ci,nesting:oi.nesting}}search(oi){var ci,ui,gi=this,bi=this.getSearchOptions();if(gi.settings.score&&(ui=gi.settings.score.call(gi,oi),typeof ui!="function"))throw new Error('Tom Select "score" setting must be a function that returns a function');return oi!==gi.lastQuery?(gi.lastQuery=oi,ci=gi.sifter.search(oi,Object.assign(bi,{score:ui})),gi.currentResults=ci):ci=Object.assign({},gi.currentResults),gi.settings.hideSelected&&(ci.items=ci.items.filter(yi=>{let Ci=wn(yi.id);return!(Ci&&gi.items.indexOf(Ci)!==-1)})),ci}refreshOptions(oi=!0){var ci,ui,gi,bi,yi,Ci,Oi,Di,Wi,Bi;let Zi={},In=[];var Ki=this,Cn=Ki.inputValue();let Pn=Cn===Ki.lastQuery||Cn==""&&Ki.lastQuery==null;var kn=Ki.search(Cn),dn=null,jn=Ki.settings.shouldOpen||!1,Os=Ki.dropdown_content;Pn&&(dn=Ki.activeOption,dn&&(Wi=dn.closest("[data-group]"))),bi=kn.items.length,typeof Ki.settings.maxOptions=="number"&&(bi=Math.min(bi,Ki.settings.maxOptions)),bi>0&&(jn=!0);let Va=(xn,Ln)=>{let En=Zi[xn];if(En!==void 0){let Nn=In[En];if(Nn!==void 0)return[En,Nn.fragment]}let Jr=document.createDocumentFragment();return En=In.length,In.push({fragment:Jr,order:Ln,optgroup:xn}),[En,Jr]};for(ci=0;ci0&&(Nn=Nn.cloneNode(!0),yn(Nn,{id:En.$id+"-clone-"+ui,"aria-selected":null}),Nn.classList.add("ts-cloned"),Qn(Nn,"active"),Ki.activeOption&&Ki.activeOption.dataset.value==Ln&&Wi&&Wi.dataset.group===yi.toString()&&(dn=Nn)),ih.appendChild(Nn),yi!=""&&(Zi[yi]=th)}}Ki.settings.lockOptgroupOrder&&In.sort((xn,Ln)=>xn.order-Ln.order),Oi=document.createDocumentFragment(),Li(In,xn=>{let Ln=xn.fragment,En=xn.optgroup;if(!Ln||!Ln.children.length)return;let Jr=Ki.optgroups[En];if(Jr!==void 0){let Nn=document.createDocumentFragment(),qa=Ki.render("optgroup_header",Jr);Si(Nn,qa),Si(Nn,Ln);let Wa=Ki.render("optgroup",{group:Jr,options:Nn});Si(Oi,Wa)}else Si(Oi,Ln)}),Os.innerHTML="",Si(Os,Oi),Ki.settings.highlight&&(Ws(Os),kn.query.length&&kn.tokens.length&&Li(kn.tokens,xn=>{as(Os,xn.regex)}));var Bo=xn=>{let Ln=Ki.render(xn,{input:Cn});return Ln&&(jn=!0,Os.insertBefore(Ln,Os.firstChild)),Ln};if(Ki.loading?Bo("loading"):Ki.settings.shouldLoad.call(Ki,Cn)?kn.items.length===0&&Bo("no_results"):Bo("not_loading"),Di=Ki.canCreate(Cn),Di&&(Bi=Bo("option_create")),Ki.hasOptions=kn.items.length>0||Di,jn){if(kn.items.length>0){if(!dn&&Ki.settings.mode==="single"&&Ki.items[0]!=null&&(dn=Ki.getOption(Ki.items[0])),!Os.contains(dn)){let xn=0;Bi&&!Ki.settings.addPrecedence&&(xn=1),dn=Ki.selectable()[xn]}}else Bi&&(dn=Bi);oi&&!Ki.isOpen&&(Ki.open(),Ki.scrollToOption(dn,"auto")),Ki.setActiveOption(dn)}else Ki.clearActiveOption(),oi&&Ki.isOpen&&Ki.close(!1)}selectable(){return this.dropdown_content.querySelectorAll("[data-selectable]")}addOption(oi,ci=!1){let ui=this;if(Array.isArray(oi))return ui.addOptions(oi,ci),!1;let gi=wn(oi[ui.settings.valueField]);return gi===null||ui.options.hasOwnProperty(gi)?!1:(oi.$order=oi.$order||++ui.order,oi.$id=ui.inputId+"-opt-"+oi.$order,ui.options[gi]=oi,ui.lastQuery=null,ci&&(ui.userOptions[gi]=ci,ui.trigger("option_add",gi,oi)),gi)}addOptions(oi,ci=!1){Li(oi,ui=>{this.addOption(ui,ci)})}registerOption(oi){return this.addOption(oi)}registerOptionGroup(oi){var ci=wn(oi[this.settings.optgroupValueField]);return ci===null?!1:(oi.$order=oi.$order||++this.order,this.optgroups[ci]=oi,ci)}addOptionGroup(oi,ci){var ui;ci[this.settings.optgroupValueField]=oi,(ui=this.registerOptionGroup(ci))&&this.trigger("optgroup_add",ui,ci)}removeOptionGroup(oi){this.optgroups.hasOwnProperty(oi)&&(delete this.optgroups[oi],this.clearCache(),this.trigger("optgroup_remove",oi))}clearOptionGroups(){this.optgroups={},this.clearCache(),this.trigger("optgroup_clear")}updateOption(oi,ci){let ui=this;var gi,bi;let yi=wn(oi),Ci=wn(ci[ui.settings.valueField]);if(yi===null)return;let Oi=ui.options[yi];if(Oi==null)return;if(typeof Ci!="string")throw new Error("Value must be set in option data");let Di=ui.getOption(yi),Wi=ui.getItem(yi);if(ci.$order=ci.$order||Oi.$order,delete ui.options[yi],ui.uncacheValue(Ci),ui.options[Ci]=ci,Di){if(ui.dropdown_content.contains(Di)){let Bi=ui._render("option",ci);Kr(Di,Bi),ui.activeOption===Di&&ui.setActiveOption(Bi)}Di.remove()}Wi&&(bi=ui.items.indexOf(yi),bi!==-1&&ui.items.splice(bi,1,Ci),gi=ui._render("item",ci),Wi.classList.contains("active")&&Gn(gi,"active"),Kr(Wi,gi)),ui.lastQuery=null}removeOption(oi,ci){let ui=this;oi=Gs(oi),ui.uncacheValue(oi),delete ui.userOptions[oi],delete ui.options[oi],ui.lastQuery=null,ui.trigger("option_remove",oi),ui.removeItem(oi,ci)}clearOptions(oi){let ci=(oi||this.clearFilter).bind(this);this.loadedSearches={},this.userOptions={},this.clearCache();let ui={};Li(this.options,(gi,bi)=>{ci(gi,bi)&&(ui[bi]=gi)}),this.options=this.sifter.items=ui,this.lastQuery=null,this.trigger("option_clear")}clearFilter(oi,ci){return this.items.indexOf(ci)>=0}getOption(oi,ci=!1){let ui=wn(oi);if(ui===null)return null;let gi=this.options[ui];if(gi!=null){if(gi.$div)return gi.$div;if(ci)return this._render("option",gi)}return null}getAdjacent(oi,ci,ui="option"){var gi=this,bi;if(!oi)return null;ui=="item"?bi=gi.controlChildren():bi=gi.dropdown_content.querySelectorAll("[data-selectable]");for(let yi=0;yi0?bi[yi+1]:bi[yi-1];return null}getItem(oi){if(typeof oi=="object")return oi;var ci=wn(oi);return ci!==null?this.control.querySelector(`[data-value="${wi(ci)}"]`):null}addItems(oi,ci){var ui=this,gi=Array.isArray(oi)?oi:[oi];gi=gi.filter(yi=>ui.items.indexOf(yi)===-1);let bi=gi[gi.length-1];gi.forEach(yi=>{ui.isPending=yi!==bi,ui.addItem(yi,ci)})}addItem(oi,ci){var ui=ci?[]:["change","dropdown_close"];$o(this,ui,()=>{var gi,bi;let yi=this,Ci=yi.settings.mode,Oi=wn(oi);if(!(Oi&&yi.items.indexOf(Oi)!==-1&&(Ci==="single"&&yi.close(),Ci==="single"||!yi.settings.duplicates))&&!(Oi===null||!yi.options.hasOwnProperty(Oi))&&(Ci==="single"&&yi.clear(ci),!(Ci==="multi"&&yi.isFull()))){if(gi=yi._render("item",yi.options[Oi]),yi.control.contains(gi)&&(gi=gi.cloneNode(!0)),bi=yi.isFull(),yi.items.splice(yi.caretPos,0,Oi),yi.insertAtCaret(gi),yi.isSetup){if(!yi.isPending&&yi.settings.hideSelected){let Di=yi.getOption(Oi),Wi=yi.getAdjacent(Di,1);Wi&&yi.setActiveOption(Wi)}!yi.isPending&&!yi.settings.closeAfterSelect&&yi.refreshOptions(yi.isFocused&&Ci!=="single"),yi.settings.closeAfterSelect!=!1&&yi.isFull()?yi.close():yi.isPending||yi.positionDropdown(),yi.trigger("item_add",Oi,gi),yi.isPending||yi.updateOriginalInput({silent:ci})}(!yi.isPending||!bi&&yi.isFull())&&(yi.inputState(),yi.refreshState())}})}removeItem(oi=null,ci){let ui=this;if(oi=ui.getItem(oi),!oi)return;var gi,bi;let yi=oi.dataset.value;gi=qn(oi),oi.remove(),oi.classList.contains("active")&&(bi=ui.activeItems.indexOf(oi),ui.activeItems.splice(bi,1),Qn(oi,"active")),ui.items.splice(gi,1),ui.lastQuery=null,!ui.settings.persist&&ui.userOptions.hasOwnProperty(yi)&&ui.removeOption(yi,ci),gi{}){arguments.length===3&&(ci=arguments[2]),typeof ci!="function"&&(ci=()=>{});var ui=this,gi=ui.caretPos,bi;if(oi=oi||ui.inputValue(),!ui.canCreate(oi))return ci(),!1;ui.lock();var yi=!1,Ci=Oi=>{if(ui.unlock(),!Oi||typeof Oi!="object")return ci();var Di=wn(Oi[ui.settings.valueField]);if(typeof Di!="string")return ci();ui.setTextboxValue(),ui.addOption(Oi,!0),ui.setCaret(gi),ui.addItem(Di),ci(Oi),yi=!0};return typeof ui.settings.create=="function"?bi=ui.settings.create.call(this,oi,Ci):bi={[ui.settings.labelField]:oi,[ui.settings.valueField]:oi},yi||Ci(bi),!0}refreshItems(){var oi=this;oi.lastQuery=null,oi.isSetup&&oi.addItems(oi.items),oi.updateOriginalInput(),oi.refreshState()}refreshState(){let oi=this;oi.refreshValidityState();let ci=oi.isFull(),ui=oi.isLocked;oi.wrapper.classList.toggle("rtl",oi.rtl);let gi=oi.wrapper.classList;gi.toggle("focus",oi.isFocused),gi.toggle("disabled",oi.isDisabled),gi.toggle("readonly",oi.isReadOnly),gi.toggle("required",oi.isRequired),gi.toggle("invalid",!oi.isValid),gi.toggle("locked",ui),gi.toggle("full",ci),gi.toggle("input-active",oi.isFocused&&!oi.isInputHidden),gi.toggle("dropdown-active",oi.isOpen),gi.toggle("has-options",qs(oi.options)),gi.toggle("has-items",oi.items.length>0)}refreshValidityState(){var oi=this;oi.input.validity&&(oi.isValid=oi.input.validity.valid,oi.isInvalid=!oi.isValid)}isFull(){return this.settings.maxItems!==null&&this.items.length>=this.settings.maxItems}updateOriginalInput(oi={}){let ci=this;var ui,gi;let bi=ci.input.querySelector('option[value=""]');if(ci.is_select_tag){let Oi=function(Di,Wi,Bi){return Di||(Di=Ii(''+Ks(Bi)+" ")),Di!=bi&&ci.input.append(Di),yi.push(Di),(Di!=bi||Ci>0)&&(Di.selected=!0),Di},yi=[],Ci=ci.input.querySelectorAll("option:checked").length;ci.input.querySelectorAll("option:checked").forEach(Di=>{Di.selected=!1}),ci.items.length==0&&ci.settings.mode=="single"?Oi(bi,"",""):ci.items.forEach(Di=>{if(ui=ci.options[Di],gi=ui[ci.settings.labelField]||"",yi.includes(ui.$option)){let Wi=ci.input.querySelector(`option[value="${wi(Di)}"]:not(:checked)`);Oi(Wi,Di,gi)}else ui.$option=Oi(ui.$option,Di,gi)})}else ci.input.value=ci.getValue();ci.isSetup&&(oi.silent||ci.trigger("change",ci.getValue()))}open(){var oi=this;oi.isLocked||oi.isOpen||oi.settings.mode==="multi"&&oi.isFull()||(oi.isOpen=!0,yn(oi.focus_node,{"aria-expanded":"true"}),oi.refreshState(),Bn(oi.dropdown,{visibility:"hidden",display:"block"}),oi.positionDropdown(),Bn(oi.dropdown,{visibility:"visible",display:"block"}),oi.focus(),oi.trigger("dropdown_open",oi.dropdown))}close(oi=!0){var ci=this,ui=ci.isOpen;oi&&(ci.setTextboxValue(),ci.settings.mode==="single"&&ci.items.length&&ci.inputState()),ci.isOpen=!1,yn(ci.focus_node,{"aria-expanded":"false"}),Bn(ci.dropdown,{display:"none"}),ci.settings.hideSelected&&ci.clearActiveOption(),ci.refreshState(),ui&&ci.trigger("dropdown_close",ci.dropdown)}positionDropdown(){if(this.settings.dropdownParent==="body"){var oi=this.control,ci=oi.getBoundingClientRect(),ui=oi.offsetHeight+ci.top+window.scrollY,gi=ci.left+window.scrollX;Bn(this.dropdown,{width:ci.width+"px",top:ui+"px",left:gi+"px"})}}clear(oi){var ci=this;if(ci.items.length){var ui=ci.controlChildren();Li(ui,gi=>{ci.removeItem(gi,!0)}),ci.inputState(),oi||ci.updateOriginalInput(),ci.trigger("clear")}}insertAtCaret(oi){let ci=this,ui=ci.caretPos,gi=ci.control;gi.insertBefore(oi,gi.children[ui]||null),ci.setCaret(ui+1)}deleteSelection(oi){var ci,ui,gi,bi,yi=this;ci=oi&&oi.keyCode===ha?-1:1,ui=Cs(yi.control_input);let Ci=[];if(yi.activeItems.length)bi=ms(yi.activeItems,ci),gi=qn(bi),ci>0&&gi++,Li(yi.activeItems,Oi=>Ci.push(Oi));else if((yi.isFocused||yi.settings.mode==="single")&&yi.items.length){let Oi=yi.controlChildren(),Di;ci<0&&ui.start===0&&ui.length===0?Di=Oi[yi.caretPos-1]:ci>0&&ui.start===yi.inputValue().length&&(Di=Oi[yi.caretPos]),Di!==void 0&&Ci.push(Di)}if(!yi.shouldDelete(Ci,oi))return!1;for(Dn(oi,!0),typeof gi!="undefined"&&yi.setCaret(gi);Ci.length;)yi.removeItem(Ci.pop());return yi.inputState(),yi.positionDropdown(),yi.refreshOptions(!1),!0}shouldDelete(oi,ci){let ui=oi.map(gi=>gi.dataset.value);return!(!ui.length||typeof this.settings.onDelete=="function"&&this.settings.onDelete(ui,ci)===!1)}advanceSelection(oi,ci){var ui,gi,bi=this;bi.rtl&&(oi*=-1),!bi.inputValue().length&&(pi(Ho,ci)||pi("shiftKey",ci)?(ui=bi.getLastActive(oi),ui?ui.classList.contains("active")?gi=bi.getAdjacent(ui,oi,"item"):gi=ui:oi>0?gi=bi.control_input.nextElementSibling:gi=bi.control_input.previousElementSibling,gi&&(gi.classList.contains("active")&&bi.removeActiveItem(ui),bi.setActiveItemClass(gi))):bi.moveCaret(oi))}moveCaret(oi){}getLastActive(oi){let ci=this.control.querySelector(".last-active");if(ci)return ci;var ui=this.control.querySelectorAll(".active");if(ui)return ms(ui,oi)}setCaret(oi){this.caretPos=this.items.length}controlChildren(){return Array.from(this.control.querySelectorAll("[data-ts-item]"))}lock(){this.setLocked(!0)}unlock(){this.setLocked(!1)}setLocked(oi=this.isReadOnly||this.isDisabled){this.isLocked=oi,this.refreshState()}disable(){this.setDisabled(!0),this.close()}enable(){this.setDisabled(!1)}setDisabled(oi){this.focus_node.tabIndex=oi?-1:this.tabIndex,this.isDisabled=oi,this.input.disabled=oi,this.control_input.disabled=oi,this.setLocked()}setReadOnly(oi){this.isReadOnly=oi,this.input.readOnly=oi,this.control_input.readOnly=oi,this.setLocked()}destroy(){var oi=this,ci=oi.revertSettings;oi.trigger("destroy"),oi.off(),oi.wrapper.remove(),oi.dropdown.remove(),oi.input.innerHTML=ci.innerHTML,oi.input.tabIndex=ci.tabIndex,Qn(oi.input,"tomselected","ts-hidden-accessible"),oi._destroy(),delete oi.input.tomselect}render(oi,ci){var ui,gi;let bi=this;if(typeof this.settings.render[oi]!="function"||(gi=bi.settings.render[oi].call(this,ci,Ks),!gi))return null;if(gi=Ii(gi),oi==="option"||oi==="option_create"?ci[bi.settings.disabledField]?yn(gi,{"aria-disabled":"true"}):yn(gi,{"data-selectable":""}):oi==="optgroup"&&(ui=ci.group[bi.settings.optgroupValueField],yn(gi,{"data-group":ui}),ci.group[bi.settings.disabledField]&&yn(gi,{"data-disabled":""})),oi==="option"||oi==="item"){let yi=Gs(ci[bi.settings.valueField]);yn(gi,{"data-value":yi}),oi==="item"?(Gn(gi,bi.settings.itemClass),yn(gi,{"data-ts-item":""})):(Gn(gi,bi.settings.optionClass),yn(gi,{role:"option",id:ci.$id}),ci.$div=gi,bi.options[yi]=ci)}return gi}_render(oi,ci){let ui=this.render(oi,ci);if(ui==null)throw"HTMLElement expected";return ui}clearCache(){Li(this.options,oi=>{oi.$div&&(oi.$div.remove(),delete oi.$div)})}uncacheValue(oi){let ci=this.getOption(oi);ci&&ci.remove()}canCreate(oi){return this.settings.create&&oi.length>0&&this.settings.createFilter.call(this,oi)}hook(oi,ci,ui){var gi=this,bi=gi[ci];gi[ci]=function(){var yi,Ci;return oi==="after"&&(yi=bi.apply(gi,arguments)),Ci=ui.apply(gi,arguments),oi==="instead"?Ci:(oi==="before"&&(yi=bi.apply(gi,arguments)),yi)}}}function Qi(){On(this.input,"change",()=>{this.sync()})}function _n(fi){var oi=this,ci=oi.onOptionSelect;oi.settings.hideSelected=!1;let ui=Object.assign({className:"tomselect-checkbox",checkedClassNames:void 0,uncheckedClassNames:void 0},fi);var gi=function(Ci,Oi){Oi?(Ci.checked=!0,ui.uncheckedClassNames&&Ci.classList.remove(...ui.uncheckedClassNames),ui.checkedClassNames&&Ci.classList.add(...ui.checkedClassNames)):(Ci.checked=!1,ui.checkedClassNames&&Ci.classList.remove(...ui.checkedClassNames),ui.uncheckedClassNames&&Ci.classList.add(...ui.uncheckedClassNames))},bi=function(Ci){setTimeout(()=>{var Oi=Ci.querySelector("input."+ui.className);Oi instanceof HTMLInputElement&&gi(Oi,Ci.classList.contains("selected"))},1)};oi.hook("after","setupTemplates",()=>{var yi=oi.settings.render.option;oi.settings.render.option=(Ci,Oi)=>{var Di=Ii(yi.call(oi,Ci,Oi)),Wi=document.createElement("input");ui.className&&Wi.classList.add(ui.className),Wi.addEventListener("click",function(Zi){Dn(Zi)}),Wi.type="checkbox";let Bi=wn(Ci[oi.settings.valueField]);return gi(Wi,!!(Bi&&oi.items.indexOf(Bi)>-1)),Di.prepend(Wi),Di}}),oi.on("item_remove",yi=>{var Ci=oi.getOption(yi);Ci&&(Ci.classList.remove("selected"),bi(Ci))}),oi.on("item_add",yi=>{var Ci=oi.getOption(yi);Ci&&bi(Ci)}),oi.hook("instead","onOptionSelect",(yi,Ci)=>{if(Ci.classList.contains("selected")){Ci.classList.remove("selected"),oi.removeItem(Ci.dataset.value),oi.refreshOptions(),Dn(yi,!0);return}ci.call(oi,yi,Ci),bi(Ci)})}function Gi(fi){let oi=this,ci=Object.assign({className:"clear-button",title:"Clear All",html:ui=>`⨯
`},fi);oi.on("initialize",()=>{var ui=Ii(ci.html(ci));ui.addEventListener("click",gi=>{oi.isLocked||(oi.clear(),oi.settings.mode==="single"&&oi.settings.allowEmptyOption&&oi.addItem(""),gi.preventDefault(),gi.stopPropagation())}),oi.control.appendChild(ui)})}let fn=(fi,oi)=>{var ci;(ci=fi.parentNode)==null||ci.insertBefore(oi,fi.nextSibling)},Mn=(fi,oi)=>{var ci;(ci=fi.parentNode)==null||ci.insertBefore(oi,fi)},gs=(fi,oi)=>{do{var ci;if(oi=(ci=oi)==null?void 0:ci.previousElementSibling,fi==oi)return!0}while(oi&&oi.previousElementSibling);return!1};function is(){var fi=this;if(fi.settings.mode!=="multi")return;var oi=fi.lock,ci=fi.unlock;let ui=!0,gi;fi.hook("after","setupTemplates",()=>{var bi=fi.settings.render.item;fi.settings.render.item=(yi,Ci)=>{let Oi=Ii(bi.call(fi,yi,Ci));yn(Oi,{draggable:"true"});let Di=Cn=>{ui||Dn(Cn),Cn.stopPropagation()},Wi=Cn=>{gi=Oi,setTimeout(()=>{Oi.classList.add("ts-dragging")},0)},Bi=Cn=>{Cn.preventDefault(),Oi.classList.add("ts-drag-over"),In(Oi,gi)},Zi=()=>{Oi.classList.remove("ts-drag-over")},In=(Cn,Pn)=>{Pn!==void 0&&(gs(Pn,Oi)?fn(Cn,Pn):Mn(Cn,Pn))},Ki=()=>{var Cn;document.querySelectorAll(".ts-drag-over").forEach(kn=>kn.classList.remove("ts-drag-over")),(Cn=gi)==null||Cn.classList.remove("ts-dragging"),gi=void 0;var Pn=[];fi.control.querySelectorAll("[data-value]").forEach(kn=>{if(kn.dataset.value){let dn=kn.dataset.value;dn&&Pn.push(dn)}}),fi.setValue(Pn)};return On(Oi,"mousedown",Di),On(Oi,"dragstart",Wi),On(Oi,"dragenter",Bi),On(Oi,"dragover",Bi),On(Oi,"dragleave",Zi),On(Oi,"dragend",Ki),Oi}}),fi.hook("instead","lock",()=>(ui=!1,oi.call(fi))),fi.hook("instead","unlock",()=>(ui=!0,ci.call(fi)))}function mo(fi){let oi=this,ci=Object.assign({title:"Untitled",headerClass:"dropdown-header",titleRowClass:"dropdown-header-title",labelClass:"dropdown-header-label",closeClass:"dropdown-header-close",html:ui=>''},fi);oi.on("initialize",()=>{var ui=Ii(ci.html(ci)),gi=ui.querySelector("."+ci.closeClass);gi&&gi.addEventListener("click",bi=>{Dn(bi,!0),oi.close()}),oi.dropdown.insertBefore(ui,oi.dropdown.firstChild)})}function Qs(){var fi=this;fi.hook("instead","setCaret",oi=>{fi.settings.mode==="single"||!fi.control.contains(fi.control_input)?oi=fi.items.length:(oi=Math.max(0,Math.min(fi.items.length,oi)),oi!=fi.caretPos&&!fi.isPending&&fi.controlChildren().forEach((ci,ui)=>{ui{if(!fi.isFocused)return;let ci=fi.getLastActive(oi);if(ci){let ui=qn(ci);fi.setCaret(oi>0?ui+1:ui),fi.setActiveItem(),Qn(ci,"last-active")}else fi.setCaret(fi.caretPos+oi)})}function Gl(){let fi=this;fi.settings.shouldOpen=!0,fi.hook("before","setup",()=>{fi.focus_node=fi.control,Gn(fi.control_input,"dropdown-input");let oi=Ii('');oi.append(fi.control_input),fi.dropdown.insertBefore(oi,fi.dropdown.firstChild);let ci=Ii('
');ci.placeholder=fi.settings.placeholder||"",fi.control.append(ci)}),fi.on("initialize",()=>{fi.control_input.addEventListener("keydown",ci=>{switch(ci.keyCode){case Ms:fi.isOpen&&(Dn(ci,!0),fi.close()),fi.clearActiveItems();return;case pa:fi.focus_node.tabIndex=-1;break}return fi.onKeyDown.call(fi,ci)}),fi.on("blur",()=>{fi.focus_node.tabIndex=fi.isDisabled?-1:fi.tabIndex}),fi.on("dropdown_open",()=>{fi.control_input.focus()});let oi=fi.onBlur;fi.hook("instead","onBlur",ci=>{if(!(ci&&ci.relatedTarget==fi.control_input))return oi.call(fi)}),On(fi.control_input,"blur",()=>fi.onBlur()),fi.hook("before","close",()=>{fi.isOpen&&fi.focus_node.focus({preventScroll:!0})})})}function ma(){var fi=this;fi.on("initialize",()=>{var oi=document.createElement("span"),ci=fi.control_input;oi.style.cssText="position:absolute; top:-99999px; left:-99999px; width:auto; padding:0; white-space:pre; ",fi.wrapper.appendChild(oi);var ui=["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"];for(let bi of ui)oi.style[bi]=ci.style[bi];var gi=()=>{oi.textContent=ci.value,ci.style.width=oi.clientWidth+"px"};gi(),fi.on("update item_add item_remove",gi),On(ci,"input",gi),On(ci,"keyup",gi),On(ci,"blur",gi),On(ci,"update",gi)})}function Kl(){var fi=this,oi=fi.deleteSelection;this.hook("instead","deleteSelection",ci=>fi.activeItems.length?oi.call(fi,ci):!1)}function Ql(){this.hook("instead","setActiveItem",()=>{}),this.hook("instead","selectAll",()=>{})}function Xl(){var fi=this,oi=fi.onKeyDown;fi.hook("instead","onKeyDown",ci=>{var ui,gi,bi,yi;if(!fi.isOpen||!(ci.keyCode===Ss||ci.keyCode===Ys))return oi.call(fi,ci);fi.ignoreHover=!0,yi=hs(fi.activeOption,"[data-group]"),ui=qn(fi.activeOption,"[data-selectable]"),yi&&(ci.keyCode===Ss?yi=yi.previousSibling:yi=yi.nextSibling,yi&&(bi=yi.querySelectorAll("[data-selectable]"),gi=bi[Math.min(bi.length-1,ui)],gi&&fi.setActiveOption(gi)))})}function Jl(fi){let oi=Object.assign({label:"×",title:"Remove",className:"remove",append:!0},fi);var ci=this;if(oi.append){var ui='
'+oi.label+" ";ci.hook("after","setupTemplates",()=>{var gi=ci.settings.render.item;ci.settings.render.item=(bi,yi)=>{var Ci=Ii(gi.call(ci,bi,yi)),Oi=Ii(ui);return Ci.appendChild(Oi),On(Oi,"mousedown",Di=>{Dn(Di,!0)}),On(Oi,"click",Di=>{ci.isLocked||(Dn(Di,!0),!ci.isLocked&&ci.shouldDelete([Ci],Di)&&(ci.removeItem(Ci),ci.refreshOptions(!1),ci.inputState()))}),Ci}})}}function Zl(fi){let oi=this,ci=Object.assign({text:ui=>ui[oi.settings.labelField]},fi);oi.on("item_remove",function(ui){if(oi.isFocused&&oi.control_input.value.trim()===""){var gi=oi.options[ui];gi&&oi.setTextboxValue(ci.text.call(oi,gi))}})}function ec(){let fi=this,oi=fi.canLoad,ci=fi.clearActiveOption,ui=fi.loadCallback;var gi={},bi,yi=!1,Ci,Oi=[];if(fi.settings.shouldLoadMore||(fi.settings.shouldLoadMore=()=>{if(bi.clientHeight/(bi.scrollHeight-bi.scrollTop)>.9)return!0;if(fi.activeOption){var Zi=fi.selectable(),In=Array.from(Zi).indexOf(fi.activeOption);if(In>=Zi.length-2)return!0}return!1}),!fi.settings.firstUrl)throw"virtual_scroll plugin requires a firstUrl() method";fi.settings.sortField=[{field:"$order"},{field:"$score"}];let Di=Bi=>typeof fi.settings.maxOptions=="number"&&bi.children.length>=fi.settings.maxOptions?!1:!!(Bi in gi&&gi[Bi]),Wi=(Bi,Zi)=>fi.items.indexOf(Zi)>=0||Oi.indexOf(Zi)>=0;fi.setNextUrl=(Bi,Zi)=>{gi[Bi]=Zi},fi.getUrl=Bi=>{if(Bi in gi){let Zi=gi[Bi];return gi[Bi]=!1,Zi}return fi.clearPagination(),fi.settings.firstUrl.call(fi,Bi)},fi.clearPagination=()=>{gi={}},fi.hook("instead","clearActiveOption",()=>{if(!yi)return ci.call(fi)}),fi.hook("instead","canLoad",Bi=>Bi in gi?Di(Bi):oi.call(fi,Bi)),fi.hook("instead","loadCallback",(Bi,Zi)=>{if(!yi)fi.clearOptions(Wi);else if(Ci){let In=Bi[0];In!==void 0&&(Ci.dataset.value=In[fi.settings.valueField])}ui.call(fi,Bi,Zi),yi=!1}),fi.hook("after","refreshOptions",()=>{let Bi=fi.lastValue;var Zi;Di(Bi)?(Zi=fi.render("loading_more",{query:Bi}),Zi&&(Zi.setAttribute("data-selectable",""),Ci=Zi)):Bi in gi&&!bi.querySelector(".no-results")&&(Zi=fi.render("no_more_results",{query:Bi})),Zi&&(Gn(Zi,fi.settings.optionClass),bi.append(Zi))}),fi.on("initialize",()=>{Oi=Object.keys(fi.options),bi=fi.dropdown_content,fi.settings.render=Object.assign({},{loading_more:()=>'
Loading more results ...
',no_more_results:()=>'
No more results
'},fi.settings.render),bi.addEventListener("scroll",()=>{fi.settings.shouldLoadMore.call(fi)&&Di(fi.lastValue)&&(yi||(yi=!0,fi.load.call(fi,fi.lastValue)))})})}return nn.define("change_listener",Qi),nn.define("checkbox_options",_n),nn.define("clear_button",Gi),nn.define("drag_drop",is),nn.define("dropdown_header",mo),nn.define("caret_position",Qs),nn.define("dropdown_input",Gl),nn.define("input_autogrow",ma),nn.define("no_backspace_delete",Kl),nn.define("no_active_items",Ql),nn.define("optgroup_columns",Xl),nn.define("remove_button",Jl),nn.define("restore_on_backspace",Zl),nn.define("virtual_scroll",ec),nn})});var Ud=Ya((Tl,Wd)=>{(function(ii,ti){typeof Tl=="object"&&typeof Wd!="undefined"?ti(Tl):typeof define=="function"&&define.amd?define(["exports"],ti):(ii=typeof globalThis!="undefined"?globalThis:ii||self,ti(ii.diacritics={}))})(Tl,function(ii){"use strict";let ti=Ni=>(Ni=Ni.filter(Boolean),Ni.length<2?Ni[0]||"":ai(Ni)==1?"["+Ni.join("")+"]":"(?:"+Ni.join("|")+")"),ei=Ni=>{if(!ri(Ni))return Ni.join("");let Hi="",Pi=0,$i=()=>{Pi>1&&(Hi+="{"+Pi+"}")};return Ni.forEach((mn,tn)=>{if(mn===Ni[tn-1]){Pi++;return}$i(),Hi+=mn,Pi=1}),$i(),Hi},ni=Ni=>{let Hi=di(Ni);return ti(Hi)},ri=Ni=>new Set(Ni).size!==Ni.length,si=Ni=>(Ni+"").replace(/([\$\(\)\*\+\.\?\[\]\^\{\|\}\\])/gu,"\\$1"),ai=Ni=>Ni.reduce((Hi,Pi)=>Math.max(Hi,li(Pi)),0),li=Ni=>di(Ni).length,di=Ni=>Array.from(Ni),mi=Ni=>{if(Ni.length===1)return[[Ni]];let Hi=[],Pi=Ni.substring(1);return mi(Pi).forEach(function(mn){let tn=mn.slice(0);tn[0]=Ni.charAt(0)+tn[0],Hi.push(tn),tn=mn.slice(0),tn.unshift(Ni.charAt(0)),Hi.push(tn)}),Hi},hi=[[0,65535]],_i="[\u0300-\u036F\xB7\u02BE\u02BC]";ii.unicode_map=void 0;let Ei,Ai=3,ki={},Ti={"/":"\u2044\u2215",0:"\u07C0",a:"\u2C65\u0250\u0251",aa:"\uA733",ae:"\xE6\u01FD\u01E3",ao:"\uA735",au:"\uA737",av:"\uA739\uA73B",ay:"\uA73D",b:"\u0180\u0253\u0183",c:"\uA73F\u0188\u023C\u2184",d:"\u0111\u0257\u0256\u1D05\u018C\uABB7\u0501\u0266",e:"\u025B\u01DD\u1D07\u0247",f:"\uA77C\u0192",g:"\u01E5\u0260\uA7A1\u1D79\uA77F\u0262",h:"\u0127\u2C68\u2C76\u0265",i:"\u0268\u0131",j:"\u0249\u0237",k:"\u0199\u2C6A\uA741\uA743\uA745\uA7A3",l:"\u0142\u019A\u026B\u2C61\uA749\uA747\uA781\u026D",m:"\u0271\u026F\u03FB",n:"\uA7A5\u019E\u0272\uA791\u1D0E\u043B\u0509",o:"\xF8\u01FF\u0254\u0275\uA74B\uA74D\u1D11",oe:"\u0153",oi:"\u01A3",oo:"\uA74F",ou:"\u0223",p:"\u01A5\u1D7D\uA751\uA753\uA755\u03C1",q:"\uA757\uA759\u024B",r:"\u024D\u027D\uA75B\uA7A7\uA783",s:"\xDF\u023F\uA7A9\uA785\u0282",t:"\u0167\u01AD\u0288\u2C66\uA787",th:"\xFE",tz:"\uA729",u:"\u0289",v:"\u028B\uA75F\u028C",vy:"\uA761",w:"\u2C73",y:"\u01B4\u024F\u1EFF",z:"\u01B6\u0225\u0240\u2C6C\uA763",hv:"\u0195"};for(let Ni in Ti){let Hi=Ti[Ni]||"";for(let Pi=0;Pi
{ii.unicode_map===void 0&&(ii.unicode_map=bn(Ni||hi))},rn=(Ni,Hi="NFKD")=>Ni.normalize(Hi),ln=Ni=>di(Ni).reduce((Hi,Pi)=>Hi+Yi(Pi),""),Yi=Ni=>(Ni=rn(Ni).toLowerCase().replace(Fi,Hi=>ki[Hi]||""),rn(Ni,"NFC"));function*on(Ni){for(let[Hi,Pi]of Ni)for(let $i=Hi;$i<=Pi;$i++){let mn=String.fromCharCode($i),tn=ln(mn);tn!=mn.toLowerCase()&&(tn.length>Ai||tn.length!=0&&(yield{folded:tn,composed:mn,code_point:$i}))}}let an=Ni=>{let Hi={},Pi=($i,mn)=>{let tn=Hi[$i]||new Set,zi=new RegExp("^"+ni(tn)+"$","iu");mn.match(zi)||(tn.add(si(mn)),Hi[$i]=tn)};for(let $i of on(Ni))Pi($i.folded,$i.folded),Pi($i.folded,$i.composed);return Hi},bn=Ni=>{let Hi=an(Ni),Pi={},$i=[];for(let tn in Hi){let zi=Hi[tn];zi&&(Pi[tn]=ni(zi)),tn.length>1&&$i.push(si(tn))}$i.sort((tn,zi)=>zi.length-tn.length);let mn=ti($i);return Ei=new RegExp("^"+mn,"u"),Pi},hn=(Ni,Hi=1)=>{let Pi=0;return Ni=Ni.map($i=>(ii.unicode_map[$i]&&(Pi+=$i.length),ii.unicode_map[$i]||$i)),Pi>=Hi?ei(Ni):""},pn=(Ni,Hi=1)=>(Hi=Math.max(Hi,Ni.length-1),ti(mi(Ni).map(Pi=>hn(Pi,Hi)))),gn=(Ni,Hi=!0)=>{let Pi=Ni.length>1?1:0;return ti(Ni.map($i=>{let mn=[],tn=Hi?$i.length():$i.length()-1;for(let zi=0;zi{for(let Pi of Hi){if(Pi.start!=Ni.start||Pi.end!=Ni.end||Pi.substrs.join("")!==Ni.substrs.join(""))continue;let $i=Ni.parts,mn=zi=>{for(let Li of $i){if(Li.start===zi.start&&Li.substr===zi.substr)return!1;if(!(zi.length==1||Li.length==1)&&(zi.startLi.start||Li.startzi.start))return!0}return!1};if(!(Pi.parts.filter(mn).length>0))return!0}return!1};class vn{constructor(){this.parts=[],this.substrs=[],this.start=0,this.end=0}add(Hi){Hi&&(this.parts.push(Hi),this.substrs.push(Hi.substr),this.start=Math.min(Hi.start,this.start),this.end=Math.max(Hi.end,this.end))}last(){return this.parts[this.parts.length-1]}length(){return this.parts.length}clone(Hi,Pi){let $i=new vn,mn=JSON.parse(JSON.stringify(this.parts)),tn=mn.pop();for(let ji of mn)$i.add(ji);let zi=Pi.substr.substring(0,Hi-tn.start),Li=zi.length;return $i.add({start:tn.start,end:tn.start+Li,length:Li,substr:zi}),$i}}let Tn=Ni=>{en(),Ni=ln(Ni);let Hi="",Pi=[new vn];for(let $i=0;$i0){ji=ji.sort((Vi,Ii)=>Vi.length()-Ii.length());for(let Vi of ji)un(Vi,Pi)||Pi.push(Vi);continue}if($i>0&&Ji.size==1&&!Ji.has("3")){Hi+=gn(Pi,!1);let Vi=new vn,Ii=Pi[0];Ii&&Vi.add(Ii.last()),Pi=[Vi]}}return Hi+=gn(Pi,!0),Hi};ii._asciifold=Yi,ii.asciifold=ln,ii.code_points=hi,ii.escape_regex=si,ii.generateMap=bn,ii.generateSets=an,ii.generator=on,ii.getPattern=Tn,ii.initialize=en,ii.mapSequence=hn,ii.normalize=rn,ii.substringsToPattern=pn,Object.defineProperty(ii,"__esModule",{value:!0})})});var kf=Ya((Ra,eu)=>{(function(ti,ei){typeof Ra=="object"&&typeof eu=="object"?eu.exports=ei():typeof define=="function"&&define.amd?define([],ei):typeof Ra=="object"?Ra.ClipboardJS=ei():ti.ClipboardJS=ei()})(Ra,function(){return function(){var ii={686:function(ni,ri,si){"use strict";si.d(ri,{default:function(){return tn}});var ai=si(279),li=si.n(ai),di=si(370),mi=si.n(di),hi=si(817),_i=si.n(hi);function Ei(zi){try{return document.execCommand(zi)}catch(Li){return!1}}var Ai=function(Li){var ji=_i()(Li);return Ei("cut"),ji},ki=Ai;function Ti(zi){var Li=document.documentElement.getAttribute("dir")==="rtl",ji=document.createElement("textarea");ji.style.fontSize="12pt",ji.style.border="0",ji.style.padding="0",ji.style.margin="0",ji.style.position="absolute",ji.style[Li?"right":"left"]="-9999px";var Ji=window.pageYOffset||document.documentElement.scrollTop;return ji.style.top="".concat(Ji,"px"),ji.setAttribute("readonly",""),ji.value=zi,ji}var Fi=function(Li,ji){var Ji=Ti(Li);ji.container.appendChild(Ji);var Vi=_i()(Ji);return Ei("copy"),Ji.remove(),Vi},en=function(Li){var ji=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},Ji="";return typeof Li=="string"?Ji=Fi(Li,ji):Li instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(Li==null?void 0:Li.type)?Ji=Fi(Li.value,ji):(Ji=_i()(Li),Ei("copy")),Ji},rn=en;function ln(zi){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ln=function(ji){return typeof ji}:ln=function(ji){return ji&&typeof Symbol=="function"&&ji.constructor===Symbol&&ji!==Symbol.prototype?"symbol":typeof ji},ln(zi)}var Yi=function(){var Li=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ji=Li.action,Ji=ji===void 0?"copy":ji,Vi=Li.container,Ii=Li.target,Sn=Li.text;if(Ji!=="copy"&&Ji!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Ii!==void 0)if(Ii&&ln(Ii)==="object"&&Ii.nodeType===1){if(Ji==="copy"&&Ii.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(Ji==="cut"&&(Ii.hasAttribute("readonly")||Ii.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Sn)return rn(Sn,{container:Vi});if(Ii)return Ji==="cut"?ki(Ii):rn(Ii,{container:Vi})},on=Yi;function an(zi){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?an=function(ji){return typeof ji}:an=function(ji){return ji&&typeof Symbol=="function"&&ji.constructor===Symbol&&ji!==Symbol.prototype?"symbol":typeof ji},an(zi)}function bn(zi,Li){if(!(zi instanceof Li))throw new TypeError("Cannot call a class as a function")}function hn(zi,Li){for(var ji=0;ji0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof Vi.action=="function"?Vi.action:this.defaultAction,this.target=typeof Vi.target=="function"?Vi.target:this.defaultTarget,this.text=typeof Vi.text=="function"?Vi.text:this.defaultText,this.container=an(Vi.container)==="object"?Vi.container:document.body}},{key:"listenClick",value:function(Vi){var Ii=this;this.listener=mi()(Vi,"click",function(Sn){return Ii.onClick(Sn)})}},{key:"onClick",value:function(Vi){var Ii=Vi.delegateTarget||Vi.currentTarget,Sn=this.action(Ii)||"copy",Yn=on({action:Sn,container:this.container,target:this.target(Ii),text:this.text(Ii)});this.emit(Yn?"success":"error",{action:Sn,text:Yn,trigger:Ii,clearSelection:function(){Ii&&Ii.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(Vi){return $i("action",Vi)}},{key:"defaultTarget",value:function(Vi){var Ii=$i("target",Vi);if(Ii)return document.querySelector(Ii)}},{key:"defaultText",value:function(Vi){return $i("text",Vi)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(Vi){var Ii=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return rn(Vi,Ii)}},{key:"cut",value:function(Vi){return ki(Vi)}},{key:"isSupported",value:function(){var Vi=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Ii=typeof Vi=="string"?[Vi]:Vi,Sn=!!document.queryCommandSupported;return Ii.forEach(function(Yn){Sn=Sn&&!!document.queryCommandSupported(Yn)}),Sn}}]),ji}(li()),tn=mn},828:function(ni){var ri=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var si=Element.prototype;si.matches=si.matchesSelector||si.mozMatchesSelector||si.msMatchesSelector||si.oMatchesSelector||si.webkitMatchesSelector}function ai(li,di){for(;li&&li.nodeType!==ri;){if(typeof li.matches=="function"&&li.matches(di))return li;li=li.parentNode}}ni.exports=ai},438:function(ni,ri,si){var ai=si(828);function li(hi,_i,Ei,Ai,ki){var Ti=mi.apply(this,arguments);return hi.addEventListener(Ei,Ti,ki),{destroy:function(){hi.removeEventListener(Ei,Ti,ki)}}}function di(hi,_i,Ei,Ai,ki){return typeof hi.addEventListener=="function"?li.apply(null,arguments):typeof Ei=="function"?li.bind(null,document).apply(null,arguments):(typeof hi=="string"&&(hi=document.querySelectorAll(hi)),Array.prototype.map.call(hi,function(Ti){return li(Ti,_i,Ei,Ai,ki)}))}function mi(hi,_i,Ei,Ai){return function(ki){ki.delegateTarget=ai(ki.target,_i),ki.delegateTarget&&Ai.call(hi,ki)}}ni.exports=di},879:function(ni,ri){ri.node=function(si){return si!==void 0&&si instanceof HTMLElement&&si.nodeType===1},ri.nodeList=function(si){var ai=Object.prototype.toString.call(si);return si!==void 0&&(ai==="[object NodeList]"||ai==="[object HTMLCollection]")&&"length"in si&&(si.length===0||ri.node(si[0]))},ri.string=function(si){return typeof si=="string"||si instanceof String},ri.fn=function(si){var ai=Object.prototype.toString.call(si);return ai==="[object Function]"}},370:function(ni,ri,si){var ai=si(879),li=si(438);function di(Ei,Ai,ki){if(!Ei&&!Ai&&!ki)throw new Error("Missing required arguments");if(!ai.string(Ai))throw new TypeError("Second argument must be a String");if(!ai.fn(ki))throw new TypeError("Third argument must be a Function");if(ai.node(Ei))return mi(Ei,Ai,ki);if(ai.nodeList(Ei))return hi(Ei,Ai,ki);if(ai.string(Ei))return _i(Ei,Ai,ki);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function mi(Ei,Ai,ki){return Ei.addEventListener(Ai,ki),{destroy:function(){Ei.removeEventListener(Ai,ki)}}}function hi(Ei,Ai,ki){return Array.prototype.forEach.call(Ei,function(Ti){Ti.addEventListener(Ai,ki)}),{destroy:function(){Array.prototype.forEach.call(Ei,function(Ti){Ti.removeEventListener(Ai,ki)})}}}function _i(Ei,Ai,ki){return li(document.body,Ei,Ai,ki)}ni.exports=di},817:function(ni){function ri(si){var ai;if(si.nodeName==="SELECT")si.focus(),ai=si.value;else if(si.nodeName==="INPUT"||si.nodeName==="TEXTAREA"){var li=si.hasAttribute("readonly");li||si.setAttribute("readonly",""),si.select(),si.setSelectionRange(0,si.value.length),li||si.removeAttribute("readonly"),ai=si.value}else{si.hasAttribute("contenteditable")&&si.focus();var di=window.getSelection(),mi=document.createRange();mi.selectNodeContents(si),di.removeAllRanges(),di.addRange(mi),ai=di.toString()}return ai}ni.exports=ri},279:function(ni){function ri(){}ri.prototype={on:function(si,ai,li){var di=this.e||(this.e={});return(di[si]||(di[si]=[])).push({fn:ai,ctx:li}),this},once:function(si,ai,li){var di=this;function mi(){di.off(si,mi),ai.apply(li,arguments)}return mi._=ai,this.on(si,mi,li)},emit:function(si){var ai=[].slice.call(arguments,1),li=((this.e||(this.e={}))[si]||[]).slice(),di=0,mi=li.length;for(di;di_u,afterRead:()=>gu,afterWrite:()=>wu,applyStyles:()=>Vo,arrow:()=>Ka,auto:()=>ga,basePlacements:()=>Ns,beforeMain:()=>vu,beforeRead:()=>pu,beforeWrite:()=>bu,bottom:()=>Xn,clippingParents:()=>ic,computeStyles:()=>Wo,createPopper:()=>Sa,createPopperBase:()=>Mu,createPopperLite:()=>ku,detectOverflow:()=>rs,end:()=>Xs,eventListeners:()=>Uo,flip:()=>Za,hide:()=>el,left:()=>Wn,main:()=>yu,modifierPhases:()=>rc,offset:()=>tl,placements:()=>ya,popper:()=>go,popperGenerator:()=>To,popperOffsets:()=>Ko,preventOverflow:()=>il,read:()=>mu,reference:()=>nc,right:()=>Kn,start:()=>Ls,top:()=>Vn,variationPlacements:()=>Ga,viewport:()=>va,write:()=>Eu});var Vn="top",Xn="bottom",Kn="right",Wn="left",ga="auto",Ns=[Vn,Xn,Kn,Wn],Ls="start",Xs="end",ic="clippingParents",va="viewport",go="popper",nc="reference",Ga=Ns.reduce(function(ii,ti){return ii.concat([ti+"-"+Ls,ti+"-"+Xs])},[]),ya=[].concat(Ns,[ga]).reduce(function(ii,ti){return ii.concat([ti,ti+"-"+Ls,ti+"-"+Xs])},[]),pu="beforeRead",mu="read",gu="afterRead",vu="beforeMain",yu="main",_u="afterMain",bu="beforeWrite",Eu="write",wu="afterWrite",rc=[pu,mu,gu,vu,yu,_u,bu,Eu,wu];function Yr(ii){return ii?(ii.nodeName||"").toLowerCase():null}function $n(ii){if(ii==null)return window;if(ii.toString()!=="[object Window]"){var ti=ii.ownerDocument;return ti&&ti.defaultView||window}return ii}function vs(ii){var ti=$n(ii).Element;return ii instanceof ti||ii instanceof Element}function Wr(ii){var ti=$n(ii).HTMLElement;return ii instanceof ti||ii instanceof HTMLElement}function jo(ii){if(typeof ShadowRoot=="undefined")return!1;var ti=$n(ii).ShadowRoot;return ii instanceof ti||ii instanceof ShadowRoot}function dh(ii){var ti=ii.state;Object.keys(ti.elements).forEach(function(ei){var ni=ti.styles[ei]||{},ri=ti.attributes[ei]||{},si=ti.elements[ei];!Wr(si)||!Yr(si)||(Object.assign(si.style,ni),Object.keys(ri).forEach(function(ai){var li=ri[ai];li===!1?si.removeAttribute(ai):si.setAttribute(ai,li===!0?"":li)}))})}function fh(ii){var ti=ii.state,ei={popper:{position:ti.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(ti.elements.popper.style,ei.popper),ti.styles=ei,ti.elements.arrow&&Object.assign(ti.elements.arrow.style,ei.arrow),function(){Object.keys(ti.elements).forEach(function(ni){var ri=ti.elements[ni],si=ti.attributes[ni]||{},ai=Object.keys(ti.styles.hasOwnProperty(ni)?ti.styles[ni]:ei[ni]),li=ai.reduce(function(di,mi){return di[mi]="",di},{});!Wr(ri)||!Yr(ri)||(Object.assign(ri.style,li),Object.keys(si).forEach(function(di){ri.removeAttribute(di)}))})}}var Vo={name:"applyStyles",enabled:!0,phase:"write",fn:dh,effect:fh,requires:["computeStyles"]};function Gr(ii){return ii.split("-")[0]}var As=Math.max,vo=Math.min,Is=Math.round;function qo(){var ii=navigator.userAgentData;return ii!=null&&ii.brands&&Array.isArray(ii.brands)?ii.brands.map(function(ti){return ti.brand+"/"+ti.version}).join(" "):navigator.userAgent}function _a(){return!/^((?!chrome|android).)*safari/i.test(qo())}function ys(ii,ti,ei){ti===void 0&&(ti=!1),ei===void 0&&(ei=!1);var ni=ii.getBoundingClientRect(),ri=1,si=1;ti&&Wr(ii)&&(ri=ii.offsetWidth>0&&Is(ni.width)/ii.offsetWidth||1,si=ii.offsetHeight>0&&Is(ni.height)/ii.offsetHeight||1);var ai=vs(ii)?$n(ii):window,li=ai.visualViewport,di=!_a()&&ei,mi=(ni.left+(di&&li?li.offsetLeft:0))/ri,hi=(ni.top+(di&&li?li.offsetTop:0))/si,_i=ni.width/ri,Ei=ni.height/si;return{width:_i,height:Ei,top:hi,right:mi+_i,bottom:hi+Ei,left:mi,x:mi,y:hi}}function yo(ii){var ti=ys(ii),ei=ii.offsetWidth,ni=ii.offsetHeight;return Math.abs(ti.width-ei)<=1&&(ei=ti.width),Math.abs(ti.height-ni)<=1&&(ni=ti.height),{x:ii.offsetLeft,y:ii.offsetTop,width:ei,height:ni}}function ba(ii,ti){var ei=ti.getRootNode&&ti.getRootNode();if(ii.contains(ti))return!0;if(ei&&jo(ei)){var ni=ti;do{if(ni&&ii.isSameNode(ni))return!0;ni=ni.parentNode||ni.host}while(ni)}return!1}function ns(ii){return $n(ii).getComputedStyle(ii)}function sc(ii){return["table","td","th"].indexOf(Yr(ii))>=0}function Qr(ii){return((vs(ii)?ii.ownerDocument:ii.document)||window.document).documentElement}function Rs(ii){return Yr(ii)==="html"?ii:ii.assignedSlot||ii.parentNode||(jo(ii)?ii.host:null)||Qr(ii)}function xu(ii){return!Wr(ii)||ns(ii).position==="fixed"?null:ii.offsetParent}function hh(ii){var ti=/firefox/i.test(qo()),ei=/Trident/i.test(qo());if(ei&&Wr(ii)){var ni=ns(ii);if(ni.position==="fixed")return null}var ri=Rs(ii);for(jo(ri)&&(ri=ri.host);Wr(ri)&&["html","body"].indexOf(Yr(ri))<0;){var si=ns(ri);if(si.transform!=="none"||si.perspective!=="none"||si.contain==="paint"||["transform","perspective"].indexOf(si.willChange)!==-1||ti&&si.willChange==="filter"||ti&&si.filter&&si.filter!=="none")return ri;ri=ri.parentNode}return null}function Ds(ii){for(var ti=$n(ii),ei=xu(ii);ei&&sc(ei)&&ns(ei).position==="static";)ei=xu(ei);return ei&&(Yr(ei)==="html"||Yr(ei)==="body"&&ns(ei).position==="static")?ti:ei||hh(ii)||ti}function _o(ii){return["top","bottom"].indexOf(ii)>=0?"x":"y"}function bo(ii,ti,ei){return As(ii,vo(ti,ei))}function Tu(ii,ti,ei){var ni=bo(ii,ti,ei);return ni>ei?ei:ni}function Ea(){return{top:0,right:0,bottom:0,left:0}}function wa(ii){return Object.assign({},Ea(),ii)}function xa(ii,ti){return ti.reduce(function(ei,ni){return ei[ni]=ii,ei},{})}var ph=function(ti,ei){return ti=typeof ti=="function"?ti(Object.assign({},ei.rects,{placement:ei.placement})):ti,wa(typeof ti!="number"?ti:xa(ti,Ns))};function mh(ii){var ti,ei=ii.state,ni=ii.name,ri=ii.options,si=ei.elements.arrow,ai=ei.modifiersData.popperOffsets,li=Gr(ei.placement),di=_o(li),mi=[Wn,Kn].indexOf(li)>=0,hi=mi?"height":"width";if(!(!si||!ai)){var _i=ph(ri.padding,ei),Ei=yo(si),Ai=di==="y"?Vn:Wn,ki=di==="y"?Xn:Kn,Ti=ei.rects.reference[hi]+ei.rects.reference[di]-ai[di]-ei.rects.popper[hi],Fi=ai[di]-ei.rects.reference[di],en=Ds(si),rn=en?di==="y"?en.clientHeight||0:en.clientWidth||0:0,ln=Ti/2-Fi/2,Yi=_i[Ai],on=rn-Ei[hi]-_i[ki],an=rn/2-Ei[hi]/2+ln,bn=bo(Yi,an,on),hn=di;ei.modifiersData[ni]=(ti={},ti[hn]=bn,ti.centerOffset=bn-an,ti)}}function gh(ii){var ti=ii.state,ei=ii.options,ni=ei.element,ri=ni===void 0?"[data-popper-arrow]":ni;ri!=null&&(typeof ri=="string"&&(ri=ti.elements.popper.querySelector(ri),!ri)||ba(ti.elements.popper,ri)&&(ti.elements.arrow=ri))}var Ka={name:"arrow",enabled:!0,phase:"main",fn:mh,effect:gh,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function _s(ii){return ii.split("-")[1]}var vh={top:"auto",right:"auto",bottom:"auto",left:"auto"};function yh(ii,ti){var ei=ii.x,ni=ii.y,ri=ti.devicePixelRatio||1;return{x:Is(ei*ri)/ri||0,y:Is(ni*ri)/ri||0}}function Su(ii){var ti,ei=ii.popper,ni=ii.popperRect,ri=ii.placement,si=ii.variation,ai=ii.offsets,li=ii.position,di=ii.gpuAcceleration,mi=ii.adaptive,hi=ii.roundOffsets,_i=ii.isFixed,Ei=ai.x,Ai=Ei===void 0?0:Ei,ki=ai.y,Ti=ki===void 0?0:ki,Fi=typeof hi=="function"?hi({x:Ai,y:Ti}):{x:Ai,y:Ti};Ai=Fi.x,Ti=Fi.y;var en=ai.hasOwnProperty("x"),rn=ai.hasOwnProperty("y"),ln=Wn,Yi=Vn,on=window;if(mi){var an=Ds(ei),bn="clientHeight",hn="clientWidth";if(an===$n(ei)&&(an=Qr(ei),ns(an).position!=="static"&&li==="absolute"&&(bn="scrollHeight",hn="scrollWidth")),an=an,ri===Vn||(ri===Wn||ri===Kn)&&si===Xs){Yi=Xn;var pn=_i&&an===on&&on.visualViewport?on.visualViewport.height:an[bn];Ti-=pn-ni.height,Ti*=di?1:-1}if(ri===Wn||(ri===Vn||ri===Xn)&&si===Xs){ln=Kn;var gn=_i&&an===on&&on.visualViewport?on.visualViewport.width:an[hn];Ai-=gn-ni.width,Ai*=di?1:-1}}var un=Object.assign({position:li},mi&&vh),vn=hi===!0?yh({x:Ai,y:Ti},$n(ei)):{x:Ai,y:Ti};if(Ai=vn.x,Ti=vn.y,di){var Tn;return Object.assign({},un,(Tn={},Tn[Yi]=rn?"0":"",Tn[ln]=en?"0":"",Tn.transform=(on.devicePixelRatio||1)<=1?"translate("+Ai+"px, "+Ti+"px)":"translate3d("+Ai+"px, "+Ti+"px, 0)",Tn))}return Object.assign({},un,(ti={},ti[Yi]=rn?Ti+"px":"",ti[ln]=en?Ai+"px":"",ti.transform="",ti))}function _h(ii){var ti=ii.state,ei=ii.options,ni=ei.gpuAcceleration,ri=ni===void 0?!0:ni,si=ei.adaptive,ai=si===void 0?!0:si,li=ei.roundOffsets,di=li===void 0?!0:li,mi={placement:Gr(ti.placement),variation:_s(ti.placement),popper:ti.elements.popper,popperRect:ti.rects.popper,gpuAcceleration:ri,isFixed:ti.options.strategy==="fixed"};ti.modifiersData.popperOffsets!=null&&(ti.styles.popper=Object.assign({},ti.styles.popper,Su(Object.assign({},mi,{offsets:ti.modifiersData.popperOffsets,position:ti.options.strategy,adaptive:ai,roundOffsets:di})))),ti.modifiersData.arrow!=null&&(ti.styles.arrow=Object.assign({},ti.styles.arrow,Su(Object.assign({},mi,{offsets:ti.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:di})))),ti.attributes.popper=Object.assign({},ti.attributes.popper,{"data-popper-placement":ti.placement})}var Wo={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:_h,data:{}};var Qa={passive:!0};function bh(ii){var ti=ii.state,ei=ii.instance,ni=ii.options,ri=ni.scroll,si=ri===void 0?!0:ri,ai=ni.resize,li=ai===void 0?!0:ai,di=$n(ti.elements.popper),mi=[].concat(ti.scrollParents.reference,ti.scrollParents.popper);return si&&mi.forEach(function(hi){hi.addEventListener("scroll",ei.update,Qa)}),li&&di.addEventListener("resize",ei.update,Qa),function(){si&&mi.forEach(function(hi){hi.removeEventListener("scroll",ei.update,Qa)}),li&&di.removeEventListener("resize",ei.update,Qa)}}var Uo={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:bh,data:{}};var Eh={left:"right",right:"left",bottom:"top",top:"bottom"};function Yo(ii){return ii.replace(/left|right|bottom|top/g,function(ti){return Eh[ti]})}var wh={start:"end",end:"start"};function Xa(ii){return ii.replace(/start|end/g,function(ti){return wh[ti]})}function Eo(ii){var ti=$n(ii),ei=ti.pageXOffset,ni=ti.pageYOffset;return{scrollLeft:ei,scrollTop:ni}}function wo(ii){return ys(Qr(ii)).left+Eo(ii).scrollLeft}function oc(ii,ti){var ei=$n(ii),ni=Qr(ii),ri=ei.visualViewport,si=ni.clientWidth,ai=ni.clientHeight,li=0,di=0;if(ri){si=ri.width,ai=ri.height;var mi=_a();(mi||!mi&&ti==="fixed")&&(li=ri.offsetLeft,di=ri.offsetTop)}return{width:si,height:ai,x:li+wo(ii),y:di}}function ac(ii){var ti,ei=Qr(ii),ni=Eo(ii),ri=(ti=ii.ownerDocument)==null?void 0:ti.body,si=As(ei.scrollWidth,ei.clientWidth,ri?ri.scrollWidth:0,ri?ri.clientWidth:0),ai=As(ei.scrollHeight,ei.clientHeight,ri?ri.scrollHeight:0,ri?ri.clientHeight:0),li=-ni.scrollLeft+wo(ii),di=-ni.scrollTop;return ns(ri||ei).direction==="rtl"&&(li+=As(ei.clientWidth,ri?ri.clientWidth:0)-si),{width:si,height:ai,x:li,y:di}}function xo(ii){var ti=ns(ii),ei=ti.overflow,ni=ti.overflowX,ri=ti.overflowY;return/auto|scroll|overlay|hidden/.test(ei+ri+ni)}function Ja(ii){return["html","body","#document"].indexOf(Yr(ii))>=0?ii.ownerDocument.body:Wr(ii)&&xo(ii)?ii:Ja(Rs(ii))}function Js(ii,ti){var ei;ti===void 0&&(ti=[]);var ni=Ja(ii),ri=ni===((ei=ii.ownerDocument)==null?void 0:ei.body),si=$n(ni),ai=ri?[si].concat(si.visualViewport||[],xo(ni)?ni:[]):ni,li=ti.concat(ai);return ri?li:li.concat(Js(Rs(ai)))}function Go(ii){return Object.assign({},ii,{left:ii.x,top:ii.y,right:ii.x+ii.width,bottom:ii.y+ii.height})}function xh(ii,ti){var ei=ys(ii,!1,ti==="fixed");return ei.top=ei.top+ii.clientTop,ei.left=ei.left+ii.clientLeft,ei.bottom=ei.top+ii.clientHeight,ei.right=ei.left+ii.clientWidth,ei.width=ii.clientWidth,ei.height=ii.clientHeight,ei.x=ei.left,ei.y=ei.top,ei}function Cu(ii,ti,ei){return ti===va?Go(oc(ii,ei)):vs(ti)?xh(ti,ei):Go(ac(Qr(ii)))}function Th(ii){var ti=Js(Rs(ii)),ei=["absolute","fixed"].indexOf(ns(ii).position)>=0,ni=ei&&Wr(ii)?Ds(ii):ii;return vs(ni)?ti.filter(function(ri){return vs(ri)&&ba(ri,ni)&&Yr(ri)!=="body"}):[]}function lc(ii,ti,ei,ni){var ri=ti==="clippingParents"?Th(ii):[].concat(ti),si=[].concat(ri,[ei]),ai=si[0],li=si.reduce(function(di,mi){var hi=Cu(ii,mi,ni);return di.top=As(hi.top,di.top),di.right=vo(hi.right,di.right),di.bottom=vo(hi.bottom,di.bottom),di.left=As(hi.left,di.left),di},Cu(ii,ai,ni));return li.width=li.right-li.left,li.height=li.bottom-li.top,li.x=li.left,li.y=li.top,li}function Ta(ii){var ti=ii.reference,ei=ii.element,ni=ii.placement,ri=ni?Gr(ni):null,si=ni?_s(ni):null,ai=ti.x+ti.width/2-ei.width/2,li=ti.y+ti.height/2-ei.height/2,di;switch(ri){case Vn:di={x:ai,y:ti.y-ei.height};break;case Xn:di={x:ai,y:ti.y+ti.height};break;case Kn:di={x:ti.x+ti.width,y:li};break;case Wn:di={x:ti.x-ei.width,y:li};break;default:di={x:ti.x,y:ti.y}}var mi=ri?_o(ri):null;if(mi!=null){var hi=mi==="y"?"height":"width";switch(si){case Ls:di[mi]=di[mi]-(ti[hi]/2-ei[hi]/2);break;case Xs:di[mi]=di[mi]+(ti[hi]/2-ei[hi]/2);break;default:}}return di}function rs(ii,ti){ti===void 0&&(ti={});var ei=ti,ni=ei.placement,ri=ni===void 0?ii.placement:ni,si=ei.strategy,ai=si===void 0?ii.strategy:si,li=ei.boundary,di=li===void 0?ic:li,mi=ei.rootBoundary,hi=mi===void 0?va:mi,_i=ei.elementContext,Ei=_i===void 0?go:_i,Ai=ei.altBoundary,ki=Ai===void 0?!1:Ai,Ti=ei.padding,Fi=Ti===void 0?0:Ti,en=wa(typeof Fi!="number"?Fi:xa(Fi,Ns)),rn=Ei===go?nc:go,ln=ii.rects.popper,Yi=ii.elements[ki?rn:Ei],on=lc(vs(Yi)?Yi:Yi.contextElement||Qr(ii.elements.popper),di,hi,ai),an=ys(ii.elements.reference),bn=Ta({reference:an,element:ln,strategy:"absolute",placement:ri}),hn=Go(Object.assign({},ln,bn)),pn=Ei===go?hn:an,gn={top:on.top-pn.top+en.top,bottom:pn.bottom-on.bottom+en.bottom,left:on.left-pn.left+en.left,right:pn.right-on.right+en.right},un=ii.modifiersData.offset;if(Ei===go&&un){var vn=un[ri];Object.keys(gn).forEach(function(Tn){var Ni=[Kn,Xn].indexOf(Tn)>=0?1:-1,Hi=[Vn,Xn].indexOf(Tn)>=0?"y":"x";gn[Tn]+=vn[Hi]*Ni})}return gn}function cc(ii,ti){ti===void 0&&(ti={});var ei=ti,ni=ei.placement,ri=ei.boundary,si=ei.rootBoundary,ai=ei.padding,li=ei.flipVariations,di=ei.allowedAutoPlacements,mi=di===void 0?ya:di,hi=_s(ni),_i=hi?li?Ga:Ga.filter(function(ki){return _s(ki)===hi}):Ns,Ei=_i.filter(function(ki){return mi.indexOf(ki)>=0});Ei.length===0&&(Ei=_i);var Ai=Ei.reduce(function(ki,Ti){return ki[Ti]=rs(ii,{placement:Ti,boundary:ri,rootBoundary:si,padding:ai})[Gr(Ti)],ki},{});return Object.keys(Ai).sort(function(ki,Ti){return Ai[ki]-Ai[Ti]})}function Sh(ii){if(Gr(ii)===ga)return[];var ti=Yo(ii);return[Xa(ii),ti,Xa(ti)]}function Ch(ii){var ti=ii.state,ei=ii.options,ni=ii.name;if(!ti.modifiersData[ni]._skip){for(var ri=ei.mainAxis,si=ri===void 0?!0:ri,ai=ei.altAxis,li=ai===void 0?!0:ai,di=ei.fallbackPlacements,mi=ei.padding,hi=ei.boundary,_i=ei.rootBoundary,Ei=ei.altBoundary,Ai=ei.flipVariations,ki=Ai===void 0?!0:Ai,Ti=ei.allowedAutoPlacements,Fi=ti.options.placement,en=Gr(Fi),rn=en===Fi,ln=di||(rn||!ki?[Yo(Fi)]:Sh(Fi)),Yi=[Fi].concat(ln).reduce(function(Vi,Ii){return Vi.concat(Gr(Ii)===ga?cc(ti,{placement:Ii,boundary:hi,rootBoundary:_i,padding:mi,flipVariations:ki,allowedAutoPlacements:Ti}):Ii)},[]),on=ti.rects.reference,an=ti.rects.popper,bn=new Map,hn=!0,pn=Yi[0],gn=0;gn=0,Hi=Ni?"width":"height",Pi=rs(ti,{placement:un,boundary:hi,rootBoundary:_i,altBoundary:Ei,padding:mi}),$i=Ni?Tn?Kn:Wn:Tn?Xn:Vn;on[Hi]>an[Hi]&&($i=Yo($i));var mn=Yo($i),tn=[];if(si&&tn.push(Pi[vn]<=0),li&&tn.push(Pi[$i]<=0,Pi[mn]<=0),tn.every(function(Vi){return Vi})){pn=un,hn=!1;break}bn.set(un,tn)}if(hn)for(var zi=ki?3:1,Li=function(Ii){var Sn=Yi.find(function(Yn){var Fn=bn.get(Yn);if(Fn)return Fn.slice(0,Ii).every(function(Bn){return Bn})});if(Sn)return pn=Sn,"break"},ji=zi;ji>0;ji--){var Ji=Li(ji);if(Ji==="break")break}ti.placement!==pn&&(ti.modifiersData[ni]._skip=!0,ti.placement=pn,ti.reset=!0)}}var Za={name:"flip",enabled:!0,phase:"main",fn:Ch,requiresIfExists:["offset"],data:{_skip:!1}};function Au(ii,ti,ei){return ei===void 0&&(ei={x:0,y:0}),{top:ii.top-ti.height-ei.y,right:ii.right-ti.width+ei.x,bottom:ii.bottom-ti.height+ei.y,left:ii.left-ti.width-ei.x}}function Du(ii){return[Vn,Kn,Xn,Wn].some(function(ti){return ii[ti]>=0})}function Ah(ii){var ti=ii.state,ei=ii.name,ni=ti.rects.reference,ri=ti.rects.popper,si=ti.modifiersData.preventOverflow,ai=rs(ti,{elementContext:"reference"}),li=rs(ti,{altBoundary:!0}),di=Au(ai,ni),mi=Au(li,ri,si),hi=Du(di),_i=Du(mi);ti.modifiersData[ei]={referenceClippingOffsets:di,popperEscapeOffsets:mi,isReferenceHidden:hi,hasPopperEscaped:_i},ti.attributes.popper=Object.assign({},ti.attributes.popper,{"data-popper-reference-hidden":hi,"data-popper-escaped":_i})}var el={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Ah};function Dh(ii,ti,ei){var ni=Gr(ii),ri=[Wn,Vn].indexOf(ni)>=0?-1:1,si=typeof ei=="function"?ei(Object.assign({},ti,{placement:ii})):ei,ai=si[0],li=si[1];return ai=ai||0,li=(li||0)*ri,[Wn,Kn].indexOf(ni)>=0?{x:li,y:ai}:{x:ai,y:li}}function Oh(ii){var ti=ii.state,ei=ii.options,ni=ii.name,ri=ei.offset,si=ri===void 0?[0,0]:ri,ai=ya.reduce(function(hi,_i){return hi[_i]=Dh(_i,ti.rects,si),hi},{}),li=ai[ti.placement],di=li.x,mi=li.y;ti.modifiersData.popperOffsets!=null&&(ti.modifiersData.popperOffsets.x+=di,ti.modifiersData.popperOffsets.y+=mi),ti.modifiersData[ni]=ai}var tl={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Oh};function Lh(ii){var ti=ii.state,ei=ii.name;ti.modifiersData[ei]=Ta({reference:ti.rects.reference,element:ti.rects.popper,strategy:"absolute",placement:ti.placement})}var Ko={name:"popperOffsets",enabled:!0,phase:"read",fn:Lh,data:{}};function uc(ii){return ii==="x"?"y":"x"}function Mh(ii){var ti=ii.state,ei=ii.options,ni=ii.name,ri=ei.mainAxis,si=ri===void 0?!0:ri,ai=ei.altAxis,li=ai===void 0?!1:ai,di=ei.boundary,mi=ei.rootBoundary,hi=ei.altBoundary,_i=ei.padding,Ei=ei.tether,Ai=Ei===void 0?!0:Ei,ki=ei.tetherOffset,Ti=ki===void 0?0:ki,Fi=rs(ti,{boundary:di,rootBoundary:mi,padding:_i,altBoundary:hi}),en=Gr(ti.placement),rn=_s(ti.placement),ln=!rn,Yi=_o(en),on=uc(Yi),an=ti.modifiersData.popperOffsets,bn=ti.rects.reference,hn=ti.rects.popper,pn=typeof Ti=="function"?Ti(Object.assign({},ti.rects,{placement:ti.placement})):Ti,gn=typeof pn=="number"?{mainAxis:pn,altAxis:pn}:Object.assign({mainAxis:0,altAxis:0},pn),un=ti.modifiersData.offset?ti.modifiersData.offset[ti.placement]:null,vn={x:0,y:0};if(an){if(si){var Tn,Ni=Yi==="y"?Vn:Wn,Hi=Yi==="y"?Xn:Kn,Pi=Yi==="y"?"height":"width",$i=an[Yi],mn=$i+Fi[Ni],tn=$i-Fi[Hi],zi=Ai?-hn[Pi]/2:0,Li=rn===Ls?bn[Pi]:hn[Pi],ji=rn===Ls?-hn[Pi]:-bn[Pi],Ji=ti.elements.arrow,Vi=Ai&&Ji?yo(Ji):{width:0,height:0},Ii=ti.modifiersData["arrow#persistent"]?ti.modifiersData["arrow#persistent"].padding:Ea(),Sn=Ii[Ni],Yn=Ii[Hi],Fn=bo(0,bn[Pi],Vi[Pi]),Bn=ln?bn[Pi]/2-zi-Fn-Sn-gn.mainAxis:Li-Fn-Sn-gn.mainAxis,Gn=ln?-bn[Pi]/2+zi+Fn+Yn+gn.mainAxis:ji+Fn+Yn+gn.mainAxis,Qn=ti.elements.arrow&&Ds(ti.elements.arrow),Ts=Qn?Yi==="y"?Qn.clientTop||0:Qn.clientLeft||0:0,zn=(Tn=un==null?void 0:un[Yi])!=null?Tn:0,hs=$i+Bn-zn-Ts,ms=$i+Gn-zn,qs=bo(Ai?vo(mn,hs):mn,$i,Ai?As(tn,ms):tn);an[Yi]=qs,vn[Yi]=qs-$i}if(li){var qn,yn=Yi==="x"?Vn:Wn,Kr=Yi==="x"?Xn:Kn,as=an[on],Ws=on==="y"?"height":"width",po=as+Fi[yn],Us=as-Fi[Kr],Ms=[Vn,Wn].indexOf(en)!==-1,Ss=(qn=un==null?void 0:un[on])!=null?qn:0,Ro=Ms?po:as-bn[Ws]-hn[Ws]-Ss+gn.altAxis,Ys=Ms?as+bn[Ws]+hn[Ws]-Ss-gn.altAxis:Us,Po=Ai&&Ms?Tu(Ro,as,Ys):bo(Ai?Ro:po,as,Ai?Ys:Us);an[on]=Po,vn[on]=Po-as}ti.modifiersData[ni]=vn}}var il={name:"preventOverflow",enabled:!0,phase:"main",fn:Mh,requiresIfExists:["offset"]};function dc(ii){return{scrollLeft:ii.scrollLeft,scrollTop:ii.scrollTop}}function fc(ii){return ii===$n(ii)||!Wr(ii)?Eo(ii):dc(ii)}function kh(ii){var ti=ii.getBoundingClientRect(),ei=Is(ti.width)/ii.offsetWidth||1,ni=Is(ti.height)/ii.offsetHeight||1;return ei!==1||ni!==1}function hc(ii,ti,ei){ei===void 0&&(ei=!1);var ni=Wr(ti),ri=Wr(ti)&&kh(ti),si=Qr(ti),ai=ys(ii,ri,ei),li={scrollLeft:0,scrollTop:0},di={x:0,y:0};return(ni||!ni&&!ei)&&((Yr(ti)!=="body"||xo(si))&&(li=fc(ti)),Wr(ti)?(di=ys(ti,!0),di.x+=ti.clientLeft,di.y+=ti.clientTop):si&&(di.x=wo(si))),{x:ai.left+li.scrollLeft-di.x,y:ai.top+li.scrollTop-di.y,width:ai.width,height:ai.height}}function Nh(ii){var ti=new Map,ei=new Set,ni=[];ii.forEach(function(si){ti.set(si.name,si)});function ri(si){ei.add(si.name);var ai=[].concat(si.requires||[],si.requiresIfExists||[]);ai.forEach(function(li){if(!ei.has(li)){var di=ti.get(li);di&&ri(di)}}),ni.push(si)}return ii.forEach(function(si){ei.has(si.name)||ri(si)}),ni}function pc(ii){var ti=Nh(ii);return rc.reduce(function(ei,ni){return ei.concat(ti.filter(function(ri){return ri.phase===ni}))},[])}function mc(ii){var ti;return function(){return ti||(ti=new Promise(function(ei){Promise.resolve().then(function(){ti=void 0,ei(ii())})})),ti}}function gc(ii){var ti=ii.reduce(function(ei,ni){var ri=ei[ni.name];return ei[ni.name]=ri?Object.assign({},ri,ni,{options:Object.assign({},ri.options,ni.options),data:Object.assign({},ri.data,ni.data)}):ni,ei},{});return Object.keys(ti).map(function(ei){return ti[ei]})}var Ou={placement:"bottom",modifiers:[],strategy:"absolute"};function Lu(){for(var ii=arguments.length,ti=new Array(ii),ei=0;ei(ii&&window.CSS&&window.CSS.escape&&(ii=ii.replace(/#([^\s"#']+)/g,(ti,ei)=>`#${CSS.escape(ei)}`)),ii),Fh=ii=>ii==null?`${ii}`:Object.prototype.toString.call(ii).match(/\s([a-z]+)/i)[1].toLowerCase(),$h=ii=>{do ii+=Math.floor(Math.random()*Ph);while(document.getElementById(ii));return ii},Bh=ii=>{if(!ii)return 0;let{transitionDuration:ti,transitionDelay:ei}=window.getComputedStyle(ii),ni=Number.parseFloat(ti),ri=Number.parseFloat(ei);return!ni&&!ri?0:(ti=ti.split(",")[0],ei=ei.split(",")[0],(Number.parseFloat(ti)+Number.parseFloat(ei))*Hh)},ld=ii=>{ii.dispatchEvent(new Event(kc))},Ps=ii=>!ii||typeof ii!="object"?!1:(typeof ii.jquery!="undefined"&&(ii=ii[0]),typeof ii.nodeType!="undefined"),eo=ii=>Ps(ii)?ii.jquery?ii[0]:ii:typeof ii=="string"&&ii.length>0?document.querySelector(ad(ii)):null,ia=ii=>{if(!Ps(ii)||ii.getClientRects().length===0)return!1;let ti=getComputedStyle(ii).getPropertyValue("visibility")==="visible",ei=ii.closest("details:not([open])");if(!ei)return ti;if(ei!==ii){let ni=ii.closest("summary");if(ni&&ni.parentNode!==ei||ni===null)return!1}return ti},to=ii=>!ii||ii.nodeType!==Node.ELEMENT_NODE||ii.classList.contains("disabled")?!0:typeof ii.disabled!="undefined"?ii.disabled:ii.hasAttribute("disabled")&&ii.getAttribute("disabled")!=="false",cd=ii=>{if(!document.documentElement.attachShadow)return null;if(typeof ii.getRootNode=="function"){let ti=ii.getRootNode();return ti instanceof ShadowRoot?ti:null}return ii instanceof ShadowRoot?ii:ii.parentNode?cd(ii.parentNode):null},fl=()=>{},La=ii=>{ii.offsetHeight},ud=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,yc=[],zh=ii=>{document.readyState==="loading"?(yc.length||document.addEventListener("DOMContentLoaded",()=>{for(let ti of yc)ti()}),yc.push(ii)):ii()},bs=()=>document.documentElement.dir==="rtl",ws=ii=>{zh(()=>{let ti=ud();if(ti){let ei=ii.NAME,ni=ti.fn[ei];ti.fn[ei]=ii.jQueryInterface,ti.fn[ei].Constructor=ii,ti.fn[ei].noConflict=()=>(ti.fn[ei]=ni,ii.jQueryInterface)}})},ls=(ii,ti=[],ei=ii)=>typeof ii=="function"?ii(...ti):ei,dd=(ii,ti,ei=!0)=>{if(!ei){ls(ii);return}let ri=Bh(ti)+5,si=!1,ai=({target:li})=>{li===ti&&(si=!0,ti.removeEventListener(kc,ai),ls(ii))};ti.addEventListener(kc,ai),setTimeout(()=>{si||ld(ti)},ri)},Pc=(ii,ti,ei,ni)=>{let ri=ii.length,si=ii.indexOf(ti);return si===-1?!ei&&ni?ii[ri-1]:ii[0]:(si+=ei?1:-1,ni&&(si=(si+ri)%ri),ii[Math.max(0,Math.min(si,ri-1))])},jh=/[^.]*(?=\..*)\.|.*/,Vh=/\..*/,qh=/::\d+$/,_c={},Nu=1,fd={mouseenter:"mouseover",mouseleave:"mouseout"},Wh=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function hd(ii,ti){return ti&&`${ti}::${Nu++}`||ii.uidEvent||Nu++}function pd(ii){let ti=hd(ii);return ii.uidEvent=ti,_c[ti]=_c[ti]||{},_c[ti]}function Uh(ii,ti){return function ei(ni){return Hc(ni,{delegateTarget:ii}),ei.oneOff&&Mi.off(ii,ni.type,ti),ti.apply(ii,[ni])}}function Yh(ii,ti,ei){return function ni(ri){let si=ii.querySelectorAll(ti);for(let{target:ai}=ri;ai&&ai!==this;ai=ai.parentNode)for(let li of si)if(li===ai)return Hc(ri,{delegateTarget:ai}),ni.oneOff&&Mi.off(ii,ri.type,ti,ei),ei.apply(ai,[ri])}}function md(ii,ti,ei=null){return Object.values(ii).find(ni=>ni.callable===ti&&ni.delegationSelector===ei)}function gd(ii,ti,ei){let ni=typeof ti=="string",ri=ni?ei:ti||ei,si=vd(ii);return Wh.has(si)||(si=ii),[ni,ri,si]}function Iu(ii,ti,ei,ni,ri){if(typeof ti!="string"||!ii)return;let[si,ai,li]=gd(ti,ei,ni);ti in fd&&(ai=(ki=>function(Ti){if(!Ti.relatedTarget||Ti.relatedTarget!==Ti.delegateTarget&&!Ti.delegateTarget.contains(Ti.relatedTarget))return ki.call(this,Ti)})(ai));let di=pd(ii),mi=di[li]||(di[li]={}),hi=md(mi,ai,si?ei:null);if(hi){hi.oneOff=hi.oneOff&&ri;return}let _i=hd(ai,ti.replace(jh,"")),Ei=si?Yh(ii,ei,ai):Uh(ii,ai);Ei.delegationSelector=si?ei:null,Ei.callable=ai,Ei.oneOff=ri,Ei.uidEvent=_i,mi[_i]=Ei,ii.addEventListener(li,Ei,si)}function Nc(ii,ti,ei,ni,ri){let si=md(ti[ei],ni,ri);si&&(ii.removeEventListener(ei,si,!!ri),delete ti[ei][si.uidEvent])}function Gh(ii,ti,ei,ni){let ri=ti[ei]||{};for(let[si,ai]of Object.entries(ri))si.includes(ni)&&Nc(ii,ti,ei,ai.callable,ai.delegationSelector)}function vd(ii){return ii=ii.replace(Vh,""),fd[ii]||ii}var Mi={on(ii,ti,ei,ni){Iu(ii,ti,ei,ni,!1)},one(ii,ti,ei,ni){Iu(ii,ti,ei,ni,!0)},off(ii,ti,ei,ni){if(typeof ti!="string"||!ii)return;let[ri,si,ai]=gd(ti,ei,ni),li=ai!==ti,di=pd(ii),mi=di[ai]||{},hi=ti.startsWith(".");if(typeof si!="undefined"){if(!Object.keys(mi).length)return;Nc(ii,di,ai,si,ri?ei:null);return}if(hi)for(let _i of Object.keys(di))Gh(ii,di,_i,ti.slice(1));for(let[_i,Ei]of Object.entries(mi)){let Ai=_i.replace(qh,"");(!li||ti.includes(Ai))&&Nc(ii,di,ai,Ei.callable,Ei.delegationSelector)}},trigger(ii,ti,ei){if(typeof ti!="string"||!ii)return null;let ni=ud(),ri=vd(ti),si=ti!==ri,ai=null,li=!0,di=!0,mi=!1;si&&ni&&(ai=ni.Event(ti,ei),ni(ii).trigger(ai),li=!ai.isPropagationStopped(),di=!ai.isImmediatePropagationStopped(),mi=ai.isDefaultPrevented());let hi=Hc(new Event(ti,{bubbles:li,cancelable:!0}),ei);return mi&&hi.preventDefault(),di&&ii.dispatchEvent(hi),hi.defaultPrevented&&ai&&ai.preventDefault(),hi}};function Hc(ii,ti={}){for(let[ei,ni]of Object.entries(ti))try{ii[ei]=ni}catch(ri){Object.defineProperty(ii,ei,{configurable:!0,get(){return ni}})}return ii}function Ru(ii){if(ii==="true")return!0;if(ii==="false")return!1;if(ii===Number(ii).toString())return Number(ii);if(ii===""||ii==="null")return null;if(typeof ii!="string")return ii;try{return JSON.parse(decodeURIComponent(ii))}catch(ti){return ii}}function bc(ii){return ii.replace(/[A-Z]/g,ti=>`-${ti.toLowerCase()}`)}var Hs={setDataAttribute(ii,ti,ei){ii.setAttribute(`data-bs-${bc(ti)}`,ei)},removeDataAttribute(ii,ti){ii.removeAttribute(`data-bs-${bc(ti)}`)},getDataAttributes(ii){if(!ii)return{};let ti={},ei=Object.keys(ii.dataset).filter(ni=>ni.startsWith("bs")&&!ni.startsWith("bsConfig"));for(let ni of ei){let ri=ni.replace(/^bs/,"");ri=ri.charAt(0).toLowerCase()+ri.slice(1,ri.length),ti[ri]=Ru(ii.dataset[ni])}return ti},getDataAttribute(ii,ti){return Ru(ii.getAttribute(`data-bs-${bc(ti)}`))}},Ao=class{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(ti){return ti=this._mergeConfigObj(ti),ti=this._configAfterMerge(ti),this._typeCheckConfig(ti),ti}_configAfterMerge(ti){return ti}_mergeConfigObj(ti,ei){let ni=Ps(ei)?Hs.getDataAttribute(ei,"config"):{};return Ui(Ui(Ui(Ui({},this.constructor.Default),typeof ni=="object"?ni:{}),Ps(ei)?Hs.getDataAttributes(ei):{}),typeof ti=="object"?ti:{})}_typeCheckConfig(ti,ei=this.constructor.DefaultType){for(let[ni,ri]of Object.entries(ei)){let si=ti[ni],ai=Ps(si)?"element":Fh(si);if(!new RegExp(ri).test(ai))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${ni}" provided type "${ai}" but expected type "${ri}".`)}}},Kh="5.3.3",ps=class extends Ao{constructor(ti,ei){super(),ti=eo(ti),ti&&(this._element=ti,this._config=this._getConfig(ei),vc.set(this._element,this.constructor.DATA_KEY,this))}dispose(){vc.remove(this._element,this.constructor.DATA_KEY),Mi.off(this._element,this.constructor.EVENT_KEY);for(let ti of Object.getOwnPropertyNames(this))this[ti]=null}_queueCallback(ti,ei,ni=!0){dd(ti,ei,ni)}_getConfig(ti){return ti=this._mergeConfigObj(ti,this._element),ti=this._configAfterMerge(ti),this._typeCheckConfig(ti),ti}static getInstance(ti){return vc.get(eo(ti),this.DATA_KEY)}static getOrCreateInstance(ti,ei={}){return this.getInstance(ti)||new this(ti,typeof ei=="object"?ei:null)}static get VERSION(){return Kh}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(ti){return`${ti}${this.EVENT_KEY}`}},Ec=ii=>{let ti=ii.getAttribute("data-bs-target");if(!ti||ti==="#"){let ei=ii.getAttribute("href");if(!ei||!ei.includes("#")&&!ei.startsWith("."))return null;ei.includes("#")&&!ei.startsWith("#")&&(ei=`#${ei.split("#")[1]}`),ti=ei&&ei!=="#"?ei.trim():null}return ti?ti.split(",").map(ei=>ad(ei)).join(","):null},cn={find(ii,ti=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(ti,ii))},findOne(ii,ti=document.documentElement){return Element.prototype.querySelector.call(ti,ii)},children(ii,ti){return[].concat(...ii.children).filter(ei=>ei.matches(ti))},parents(ii,ti){let ei=[],ni=ii.parentNode.closest(ti);for(;ni;)ei.push(ni),ni=ni.parentNode.closest(ti);return ei},prev(ii,ti){let ei=ii.previousElementSibling;for(;ei;){if(ei.matches(ti))return[ei];ei=ei.previousElementSibling}return[]},next(ii,ti){let ei=ii.nextElementSibling;for(;ei;){if(ei.matches(ti))return[ei];ei=ei.nextElementSibling}return[]},focusableChildren(ii){let ti=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(ei=>`${ei}:not([tabindex^="-"])`).join(",");return this.find(ti,ii).filter(ei=>!to(ei)&&ia(ei))},getSelectorFromElement(ii){let ti=Ec(ii);return ti&&cn.findOne(ti)?ti:null},getElementFromSelector(ii){let ti=Ec(ii);return ti?cn.findOne(ti):null},getMultipleElementsFromSelector(ii){let ti=Ec(ii);return ti?cn.find(ti):[]}},bl=(ii,ti="hide")=>{let ei=`click.dismiss${ii.EVENT_KEY}`,ni=ii.NAME;Mi.on(document,ei,`[data-bs-dismiss="${ni}"]`,function(ri){if(["A","AREA"].includes(this.tagName)&&ri.preventDefault(),to(this))return;let si=cn.getElementFromSelector(this)||this.closest(`.${ni}`);ii.getOrCreateInstance(si)[ti]()})},Qh="alert",Xh="bs.alert",yd=`.${Xh}`,Jh=`close${yd}`,Zh=`closed${yd}`,ep="fade",tp="show",hl=class ii extends ps{static get NAME(){return Qh}close(){if(Mi.trigger(this._element,Jh).defaultPrevented)return;this._element.classList.remove(tp);let ei=this._element.classList.contains(ep);this._queueCallback(()=>this._destroyElement(),this._element,ei)}_destroyElement(){this._element.remove(),Mi.trigger(this._element,Zh),this.dispose()}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this);if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti](this)}})}};bl(hl,"close");ws(hl);var ip="button",np="bs.button",rp=`.${np}`,sp=".data-api",op="active",Pu='[data-bs-toggle="button"]',ap=`click${rp}${sp}`,pl=class ii extends ps{static get NAME(){return ip}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(op))}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this);ti==="toggle"&&ei[ti]()})}};Mi.on(document,ap,Pu,ii=>{ii.preventDefault();let ti=ii.target.closest(Pu);pl.getOrCreateInstance(ti).toggle()});ws(pl);var lp="swipe",na=".bs.swipe",cp=`touchstart${na}`,up=`touchmove${na}`,dp=`touchend${na}`,fp=`pointerdown${na}`,hp=`pointerup${na}`,pp="touch",mp="pen",gp="pointer-event",vp=40,yp={endCallback:null,leftCallback:null,rightCallback:null},_p={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"},ml=class ii extends Ao{constructor(ti,ei){super(),this._element=ti,!(!ti||!ii.isSupported())&&(this._config=this._getConfig(ei),this._deltaX=0,this._supportPointerEvents=!!window.PointerEvent,this._initEvents())}static get Default(){return yp}static get DefaultType(){return _p}static get NAME(){return lp}dispose(){Mi.off(this._element,na)}_start(ti){if(!this._supportPointerEvents){this._deltaX=ti.touches[0].clientX;return}this._eventIsPointerPenTouch(ti)&&(this._deltaX=ti.clientX)}_end(ti){this._eventIsPointerPenTouch(ti)&&(this._deltaX=ti.clientX-this._deltaX),this._handleSwipe(),ls(this._config.endCallback)}_move(ti){this._deltaX=ti.touches&&ti.touches.length>1?0:ti.touches[0].clientX-this._deltaX}_handleSwipe(){let ti=Math.abs(this._deltaX);if(ti<=vp)return;let ei=ti/this._deltaX;this._deltaX=0,ei&&ls(ei>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(Mi.on(this._element,fp,ti=>this._start(ti)),Mi.on(this._element,hp,ti=>this._end(ti)),this._element.classList.add(gp)):(Mi.on(this._element,cp,ti=>this._start(ti)),Mi.on(this._element,up,ti=>this._move(ti)),Mi.on(this._element,dp,ti=>this._end(ti)))}_eventIsPointerPenTouch(ti){return this._supportPointerEvents&&(ti.pointerType===mp||ti.pointerType===pp)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}},bp="carousel",Ep="bs.carousel",so=`.${Ep}`,_d=".data-api",wp="ArrowLeft",xp="ArrowRight",Tp=500,Ca="next",Qo="prev",Jo="left",ul="right",Sp=`slide${so}`,wc=`slid${so}`,Cp=`keydown${so}`,Ap=`mouseenter${so}`,Dp=`mouseleave${so}`,Op=`dragstart${so}`,Lp=`load${so}${_d}`,Mp=`click${so}${_d}`,bd="carousel",rl="active",kp="slide",Np="carousel-item-end",Ip="carousel-item-start",Rp="carousel-item-next",Pp="carousel-item-prev",Ed=".active",wd=".carousel-item",Hp=Ed+wd,Fp=".carousel-item img",$p=".carousel-indicators",Bp="[data-bs-slide], [data-bs-slide-to]",zp='[data-bs-ride="carousel"]',jp={[wp]:ul,[xp]:Jo},Vp={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},qp={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"},Da=class ii extends ps{constructor(ti,ei){super(ti,ei),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=cn.findOne($p,this._element),this._addEventListeners(),this._config.ride===bd&&this.cycle()}static get Default(){return Vp}static get DefaultType(){return qp}static get NAME(){return bp}next(){this._slide(Ca)}nextWhenVisible(){!document.hidden&&ia(this._element)&&this.next()}prev(){this._slide(Qo)}pause(){this._isSliding&&ld(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding){Mi.one(this._element,wc,()=>this.cycle());return}this.cycle()}}to(ti){let ei=this._getItems();if(ti>ei.length-1||ti<0)return;if(this._isSliding){Mi.one(this._element,wc,()=>this.to(ti));return}let ni=this._getItemIndex(this._getActive());if(ni===ti)return;let ri=ti>ni?Ca:Qo;this._slide(ri,ei[ti])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(ti){return ti.defaultInterval=ti.interval,ti}_addEventListeners(){this._config.keyboard&&Mi.on(this._element,Cp,ti=>this._keydown(ti)),this._config.pause==="hover"&&(Mi.on(this._element,Ap,()=>this.pause()),Mi.on(this._element,Dp,()=>this._maybeEnableCycle())),this._config.touch&&ml.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(let ni of cn.find(Fp,this._element))Mi.on(ni,Op,ri=>ri.preventDefault());let ei={leftCallback:()=>this._slide(this._directionToOrder(Jo)),rightCallback:()=>this._slide(this._directionToOrder(ul)),endCallback:()=>{this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),Tp+this._config.interval))}};this._swipeHelper=new ml(this._element,ei)}_keydown(ti){if(/input|textarea/i.test(ti.target.tagName))return;let ei=jp[ti.key];ei&&(ti.preventDefault(),this._slide(this._directionToOrder(ei)))}_getItemIndex(ti){return this._getItems().indexOf(ti)}_setActiveIndicatorElement(ti){if(!this._indicatorsElement)return;let ei=cn.findOne(Ed,this._indicatorsElement);ei.classList.remove(rl),ei.removeAttribute("aria-current");let ni=cn.findOne(`[data-bs-slide-to="${ti}"]`,this._indicatorsElement);ni&&(ni.classList.add(rl),ni.setAttribute("aria-current","true"))}_updateInterval(){let ti=this._activeElement||this._getActive();if(!ti)return;let ei=Number.parseInt(ti.getAttribute("data-bs-interval"),10);this._config.interval=ei||this._config.defaultInterval}_slide(ti,ei=null){if(this._isSliding)return;let ni=this._getActive(),ri=ti===Ca,si=ei||Pc(this._getItems(),ni,ri,this._config.wrap);if(si===ni)return;let ai=this._getItemIndex(si),li=Ai=>Mi.trigger(this._element,Ai,{relatedTarget:si,direction:this._orderToDirection(ti),from:this._getItemIndex(ni),to:ai});if(li(Sp).defaultPrevented||!ni||!si)return;let mi=!!this._interval;this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(ai),this._activeElement=si;let hi=ri?Ip:Np,_i=ri?Rp:Pp;si.classList.add(_i),La(si),ni.classList.add(hi),si.classList.add(hi);let Ei=()=>{si.classList.remove(hi,_i),si.classList.add(rl),ni.classList.remove(rl,_i,hi),this._isSliding=!1,li(wc)};this._queueCallback(Ei,ni,this._isAnimated()),mi&&this.cycle()}_isAnimated(){return this._element.classList.contains(kp)}_getActive(){return cn.findOne(Hp,this._element)}_getItems(){return cn.find(wd,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(ti){return bs()?ti===Jo?Qo:Ca:ti===Jo?Ca:Qo}_orderToDirection(ti){return bs()?ti===Qo?Jo:ul:ti===Qo?ul:Jo}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="number"){ei.to(ti);return}if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};Mi.on(document,Mp,Bp,function(ii){let ti=cn.getElementFromSelector(this);if(!ti||!ti.classList.contains(bd))return;ii.preventDefault();let ei=Da.getOrCreateInstance(ti),ni=this.getAttribute("data-bs-slide-to");if(ni){ei.to(ni),ei._maybeEnableCycle();return}if(Hs.getDataAttribute(this,"slide")==="next"){ei.next(),ei._maybeEnableCycle();return}ei.prev(),ei._maybeEnableCycle()});Mi.on(window,Lp,()=>{let ii=cn.find(zp);for(let ti of ii)Da.getOrCreateInstance(ti)});ws(Da);var Wp="collapse",Up="bs.collapse",Ma=`.${Up}`,Yp=".data-api",Gp=`show${Ma}`,Kp=`shown${Ma}`,Qp=`hide${Ma}`,Xp=`hidden${Ma}`,Jp=`click${Ma}${Yp}`,xc="show",ea="collapse",sl="collapsing",Zp="collapsed",em=`:scope .${ea} .${ea}`,tm="collapse-horizontal",im="width",nm="height",rm=".collapse.show, .collapse.collapsing",Ic='[data-bs-toggle="collapse"]',sm={parent:null,toggle:!0},om={parent:"(null|element)",toggle:"boolean"},io=class ii extends ps{constructor(ti,ei){super(ti,ei),this._isTransitioning=!1,this._triggerArray=[];let ni=cn.find(Ic);for(let ri of ni){let si=cn.getSelectorFromElement(ri),ai=cn.find(si).filter(li=>li===this._element);si!==null&&ai.length&&this._triggerArray.push(ri)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return sm}static get DefaultType(){return om}static get NAME(){return Wp}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let ti=[];if(this._config.parent&&(ti=this._getFirstLevelChildren(rm).filter(li=>li!==this._element).map(li=>ii.getOrCreateInstance(li,{toggle:!1}))),ti.length&&ti[0]._isTransitioning||Mi.trigger(this._element,Gp).defaultPrevented)return;for(let li of ti)li.hide();let ni=this._getDimension();this._element.classList.remove(ea),this._element.classList.add(sl),this._element.style[ni]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;let ri=()=>{this._isTransitioning=!1,this._element.classList.remove(sl),this._element.classList.add(ea,xc),this._element.style[ni]="",Mi.trigger(this._element,Kp)},ai=`scroll${ni[0].toUpperCase()+ni.slice(1)}`;this._queueCallback(ri,this._element,!0),this._element.style[ni]=`${this._element[ai]}px`}hide(){if(this._isTransitioning||!this._isShown()||Mi.trigger(this._element,Qp).defaultPrevented)return;let ei=this._getDimension();this._element.style[ei]=`${this._element.getBoundingClientRect()[ei]}px`,La(this._element),this._element.classList.add(sl),this._element.classList.remove(ea,xc);for(let ri of this._triggerArray){let si=cn.getElementFromSelector(ri);si&&!this._isShown(si)&&this._addAriaAndCollapsedClass([ri],!1)}this._isTransitioning=!0;let ni=()=>{this._isTransitioning=!1,this._element.classList.remove(sl),this._element.classList.add(ea),Mi.trigger(this._element,Xp)};this._element.style[ei]="",this._queueCallback(ni,this._element,!0)}_isShown(ti=this._element){return ti.classList.contains(xc)}_configAfterMerge(ti){return ti.toggle=!!ti.toggle,ti.parent=eo(ti.parent),ti}_getDimension(){return this._element.classList.contains(tm)?im:nm}_initializeChildren(){if(!this._config.parent)return;let ti=this._getFirstLevelChildren(Ic);for(let ei of ti){let ni=cn.getElementFromSelector(ei);ni&&this._addAriaAndCollapsedClass([ei],this._isShown(ni))}}_getFirstLevelChildren(ti){let ei=cn.find(em,this._config.parent);return cn.find(ti,this._config.parent).filter(ni=>!ei.includes(ni))}_addAriaAndCollapsedClass(ti,ei){if(ti.length)for(let ni of ti)ni.classList.toggle(Zp,!ei),ni.setAttribute("aria-expanded",ei)}static jQueryInterface(ti){let ei={};return typeof ti=="string"&&/show|hide/.test(ti)&&(ei.toggle=!1),this.each(function(){let ni=ii.getOrCreateInstance(this,ei);if(typeof ti=="string"){if(typeof ni[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ni[ti]()}})}};Mi.on(document,Jp,Ic,function(ii){(ii.target.tagName==="A"||ii.delegateTarget&&ii.delegateTarget.tagName==="A")&&ii.preventDefault();for(let ti of cn.getMultipleElementsFromSelector(this))io.getOrCreateInstance(ti,{toggle:!1}).toggle()});ws(io);var Hu="dropdown",am="bs.dropdown",Oo=`.${am}`,Fc=".data-api",lm="Escape",Fu="Tab",cm="ArrowUp",$u="ArrowDown",um=2,dm=`hide${Oo}`,fm=`hidden${Oo}`,hm=`show${Oo}`,pm=`shown${Oo}`,xd=`click${Oo}${Fc}`,Td=`keydown${Oo}${Fc}`,mm=`keyup${Oo}${Fc}`,Zo="show",gm="dropup",vm="dropend",ym="dropstart",_m="dropup-center",bm="dropdown-center",So='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Em=`${So}.${Zo}`,dl=".dropdown-menu",wm=".navbar",xm=".navbar-nav",Tm=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Sm=bs()?"top-end":"top-start",Cm=bs()?"top-start":"top-end",Am=bs()?"bottom-end":"bottom-start",Dm=bs()?"bottom-start":"bottom-end",Om=bs()?"left-start":"right-start",Lm=bs()?"right-start":"left-start",Mm="top",km="bottom",Nm={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Im={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"},no=class ii extends ps{constructor(ti,ei){super(ti,ei),this._popper=null,this._parent=this._element.parentNode,this._menu=cn.next(this._element,dl)[0]||cn.prev(this._element,dl)[0]||cn.findOne(dl,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Nm}static get DefaultType(){return Im}static get NAME(){return Hu}toggle(){return this._isShown()?this.hide():this.show()}show(){if(to(this._element)||this._isShown())return;let ti={relatedTarget:this._element};if(!Mi.trigger(this._element,hm,ti).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(xm))for(let ni of[].concat(...document.body.children))Mi.on(ni,"mouseover",fl);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Zo),this._element.classList.add(Zo),Mi.trigger(this._element,pm,ti)}}hide(){if(to(this._element)||!this._isShown())return;let ti={relatedTarget:this._element};this._completeHide(ti)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(ti){if(!Mi.trigger(this._element,dm,ti).defaultPrevented){if("ontouchstart"in document.documentElement)for(let ni of[].concat(...document.body.children))Mi.off(ni,"mouseover",fl);this._popper&&this._popper.destroy(),this._menu.classList.remove(Zo),this._element.classList.remove(Zo),this._element.setAttribute("aria-expanded","false"),Hs.removeDataAttribute(this._menu,"popper"),Mi.trigger(this._element,fm,ti)}}_getConfig(ti){if(ti=super._getConfig(ti),typeof ti.reference=="object"&&!Ps(ti.reference)&&typeof ti.reference.getBoundingClientRect!="function")throw new TypeError(`${Hu.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return ti}_createPopper(){if(typeof nl=="undefined")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let ti=this._element;this._config.reference==="parent"?ti=this._parent:Ps(this._config.reference)?ti=eo(this._config.reference):typeof this._config.reference=="object"&&(ti=this._config.reference);let ei=this._getPopperConfig();this._popper=Sa(ti,this._menu,ei)}_isShown(){return this._menu.classList.contains(Zo)}_getPlacement(){let ti=this._parent;if(ti.classList.contains(vm))return Om;if(ti.classList.contains(ym))return Lm;if(ti.classList.contains(_m))return Mm;if(ti.classList.contains(bm))return km;let ei=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return ti.classList.contains(gm)?ei?Cm:Sm:ei?Dm:Am}_detectNavbar(){return this._element.closest(wm)!==null}_getOffset(){let{offset:ti}=this._config;return typeof ti=="string"?ti.split(",").map(ei=>Number.parseInt(ei,10)):typeof ti=="function"?ei=>ti(ei,this._element):ti}_getPopperConfig(){let ti={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||this._config.display==="static")&&(Hs.setDataAttribute(this._menu,"popper","static"),ti.modifiers=[{name:"applyStyles",enabled:!1}]),Ui(Ui({},ti),ls(this._config.popperConfig,[ti]))}_selectMenuItem({key:ti,target:ei}){let ni=cn.find(Tm,this._menu).filter(ri=>ia(ri));ni.length&&Pc(ni,ei,ti===$u,!ni.includes(ei)).focus()}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ei[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}static clearMenus(ti){if(ti.button===um||ti.type==="keyup"&&ti.key!==Fu)return;let ei=cn.find(Em);for(let ni of ei){let ri=ii.getInstance(ni);if(!ri||ri._config.autoClose===!1)continue;let si=ti.composedPath(),ai=si.includes(ri._menu);if(si.includes(ri._element)||ri._config.autoClose==="inside"&&!ai||ri._config.autoClose==="outside"&&ai||ri._menu.contains(ti.target)&&(ti.type==="keyup"&&ti.key===Fu||/input|select|option|textarea|form/i.test(ti.target.tagName)))continue;let li={relatedTarget:ri._element};ti.type==="click"&&(li.clickEvent=ti),ri._completeHide(li)}}static dataApiKeydownHandler(ti){let ei=/input|textarea/i.test(ti.target.tagName),ni=ti.key===lm,ri=[cm,$u].includes(ti.key);if(!ri&&!ni||ei&&!ni)return;ti.preventDefault();let si=this.matches(So)?this:cn.prev(this,So)[0]||cn.next(this,So)[0]||cn.findOne(So,ti.delegateTarget.parentNode),ai=ii.getOrCreateInstance(si);if(ri){ti.stopPropagation(),ai.show(),ai._selectMenuItem(ti);return}ai._isShown()&&(ti.stopPropagation(),ai.hide(),si.focus())}};Mi.on(document,Td,So,no.dataApiKeydownHandler);Mi.on(document,Td,dl,no.dataApiKeydownHandler);Mi.on(document,xd,no.clearMenus);Mi.on(document,mm,no.clearMenus);Mi.on(document,xd,So,function(ii){ii.preventDefault(),no.getOrCreateInstance(this).toggle()});ws(no);var Sd="backdrop",Rm="fade",Bu="show",zu=`mousedown.bs.${Sd}`,Pm={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Hm={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"},gl=class extends Ao{constructor(ti){super(),this._config=this._getConfig(ti),this._isAppended=!1,this._element=null}static get Default(){return Pm}static get DefaultType(){return Hm}static get NAME(){return Sd}show(ti){if(!this._config.isVisible){ls(ti);return}this._append();let ei=this._getElement();this._config.isAnimated&&La(ei),ei.classList.add(Bu),this._emulateAnimation(()=>{ls(ti)})}hide(ti){if(!this._config.isVisible){ls(ti);return}this._getElement().classList.remove(Bu),this._emulateAnimation(()=>{this.dispose(),ls(ti)})}dispose(){this._isAppended&&(Mi.off(this._element,zu),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){let ti=document.createElement("div");ti.className=this._config.className,this._config.isAnimated&&ti.classList.add(Rm),this._element=ti}return this._element}_configAfterMerge(ti){return ti.rootElement=eo(ti.rootElement),ti}_append(){if(this._isAppended)return;let ti=this._getElement();this._config.rootElement.append(ti),Mi.on(ti,zu,()=>{ls(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(ti){dd(ti,this._getElement(),this._config.isAnimated)}},Fm="focustrap",$m="bs.focustrap",vl=`.${$m}`,Bm=`focusin${vl}`,zm=`keydown.tab${vl}`,jm="Tab",Vm="forward",ju="backward",qm={autofocus:!0,trapElement:null},Wm={autofocus:"boolean",trapElement:"element"},yl=class extends Ao{constructor(ti){super(),this._config=this._getConfig(ti),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return qm}static get DefaultType(){return Wm}static get NAME(){return Fm}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),Mi.off(document,vl),Mi.on(document,Bm,ti=>this._handleFocusin(ti)),Mi.on(document,zm,ti=>this._handleKeydown(ti)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,Mi.off(document,vl))}_handleFocusin(ti){let{trapElement:ei}=this._config;if(ti.target===document||ti.target===ei||ei.contains(ti.target))return;let ni=cn.focusableChildren(ei);ni.length===0?ei.focus():this._lastTabNavDirection===ju?ni[ni.length-1].focus():ni[0].focus()}_handleKeydown(ti){ti.key===jm&&(this._lastTabNavDirection=ti.shiftKey?ju:Vm)}},Vu=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",qu=".sticky-top",ol="padding-right",Wu="margin-right",Oa=class{constructor(){this._element=document.body}getWidth(){let ti=document.documentElement.clientWidth;return Math.abs(window.innerWidth-ti)}hide(){let ti=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,ol,ei=>ei+ti),this._setElementAttributes(Vu,ol,ei=>ei+ti),this._setElementAttributes(qu,Wu,ei=>ei-ti)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,ol),this._resetElementAttributes(Vu,ol),this._resetElementAttributes(qu,Wu)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(ti,ei,ni){let ri=this.getWidth(),si=ai=>{if(ai!==this._element&&window.innerWidth>ai.clientWidth+ri)return;this._saveInitialAttribute(ai,ei);let li=window.getComputedStyle(ai).getPropertyValue(ei);ai.style.setProperty(ei,`${ni(Number.parseFloat(li))}px`)};this._applyManipulationCallback(ti,si)}_saveInitialAttribute(ti,ei){let ni=ti.style.getPropertyValue(ei);ni&&Hs.setDataAttribute(ti,ei,ni)}_resetElementAttributes(ti,ei){let ni=ri=>{let si=Hs.getDataAttribute(ri,ei);if(si===null){ri.style.removeProperty(ei);return}Hs.removeDataAttribute(ri,ei),ri.style.setProperty(ei,si)};this._applyManipulationCallback(ti,ni)}_applyManipulationCallback(ti,ei){if(Ps(ti)){ei(ti);return}for(let ni of cn.find(ti,this._element))ei(ni)}},Um="modal",Ym="bs.modal",Es=`.${Ym}`,Gm=".data-api",Km="Escape",Qm=`hide${Es}`,Xm=`hidePrevented${Es}`,Cd=`hidden${Es}`,Ad=`show${Es}`,Jm=`shown${Es}`,Zm=`resize${Es}`,eg=`click.dismiss${Es}`,tg=`mousedown.dismiss${Es}`,ig=`keydown.dismiss${Es}`,ng=`click${Es}${Gm}`,Uu="modal-open",rg="fade",Yu="show",Tc="modal-static",sg=".modal.show",og=".modal-dialog",ag=".modal-body",lg='[data-bs-toggle="modal"]',cg={backdrop:!0,focus:!0,keyboard:!0},ug={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"},Fs=class ii extends ps{constructor(ti,ei){super(ti,ei),this._dialog=cn.findOne(og,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Oa,this._addEventListeners()}static get Default(){return cg}static get DefaultType(){return ug}static get NAME(){return Um}toggle(ti){return this._isShown?this.hide():this.show(ti)}show(ti){this._isShown||this._isTransitioning||Mi.trigger(this._element,Ad,{relatedTarget:ti}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Uu),this._adjustDialog(),this._backdrop.show(()=>this._showElement(ti)))}hide(){!this._isShown||this._isTransitioning||Mi.trigger(this._element,Qm).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Yu),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){Mi.off(window,Es),Mi.off(this._dialog,Es),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new gl({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new yl({trapElement:this._element})}_showElement(ti){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;let ei=cn.findOne(ag,this._dialog);ei&&(ei.scrollTop=0),La(this._element),this._element.classList.add(Yu);let ni=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,Mi.trigger(this._element,Jm,{relatedTarget:ti})};this._queueCallback(ni,this._dialog,this._isAnimated())}_addEventListeners(){Mi.on(this._element,ig,ti=>{if(ti.key===Km){if(this._config.keyboard){this.hide();return}this._triggerBackdropTransition()}}),Mi.on(window,Zm,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),Mi.on(this._element,tg,ti=>{Mi.one(this._element,eg,ei=>{if(!(this._element!==ti.target||this._element!==ei.target)){if(this._config.backdrop==="static"){this._triggerBackdropTransition();return}this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Uu),this._resetAdjustments(),this._scrollBar.reset(),Mi.trigger(this._element,Cd)})}_isAnimated(){return this._element.classList.contains(rg)}_triggerBackdropTransition(){if(Mi.trigger(this._element,Xm).defaultPrevented)return;let ei=this._element.scrollHeight>document.documentElement.clientHeight,ni=this._element.style.overflowY;ni==="hidden"||this._element.classList.contains(Tc)||(ei||(this._element.style.overflowY="hidden"),this._element.classList.add(Tc),this._queueCallback(()=>{this._element.classList.remove(Tc),this._queueCallback(()=>{this._element.style.overflowY=ni},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){let ti=this._element.scrollHeight>document.documentElement.clientHeight,ei=this._scrollBar.getWidth(),ni=ei>0;if(ni&&!ti){let ri=bs()?"paddingLeft":"paddingRight";this._element.style[ri]=`${ei}px`}if(!ni&&ti){let ri=bs()?"paddingRight":"paddingLeft";this._element.style[ri]=`${ei}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(ti,ei){return this.each(function(){let ni=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ni[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ni[ti](ei)}})}};Mi.on(document,ng,lg,function(ii){let ti=cn.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&ii.preventDefault(),Mi.one(ti,Ad,ri=>{ri.defaultPrevented||Mi.one(ti,Cd,()=>{ia(this)&&this.focus()})});let ei=cn.findOne(sg);ei&&Fs.getInstance(ei).hide(),Fs.getOrCreateInstance(ti).toggle(this)});bl(Fs);ws(Fs);var dg="offcanvas",fg="bs.offcanvas",zs=`.${fg}`,Dd=".data-api",hg=`load${zs}${Dd}`,pg="Escape",Gu="show",Ku="showing",Qu="hiding",mg="offcanvas-backdrop",Od=".offcanvas.show",gg=`show${zs}`,vg=`shown${zs}`,yg=`hide${zs}`,Xu=`hidePrevented${zs}`,Ld=`hidden${zs}`,_g=`resize${zs}`,bg=`click${zs}${Dd}`,Eg=`keydown.dismiss${zs}`,wg='[data-bs-toggle="offcanvas"]',xg={backdrop:!0,keyboard:!0,scroll:!1},Tg={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"},ro=class ii extends ps{constructor(ti,ei){super(ti,ei),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return xg}static get DefaultType(){return Tg}static get NAME(){return dg}toggle(ti){return this._isShown?this.hide():this.show(ti)}show(ti){if(this._isShown||Mi.trigger(this._element,gg,{relatedTarget:ti}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||new Oa().hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Ku);let ni=()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add(Gu),this._element.classList.remove(Ku),Mi.trigger(this._element,vg,{relatedTarget:ti})};this._queueCallback(ni,this._element,!0)}hide(){if(!this._isShown||Mi.trigger(this._element,yg).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Qu),this._backdrop.hide();let ei=()=>{this._element.classList.remove(Gu,Qu),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||new Oa().reset(),Mi.trigger(this._element,Ld)};this._queueCallback(ei,this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){let ti=()=>{if(this._config.backdrop==="static"){Mi.trigger(this._element,Xu);return}this.hide()},ei=!!this._config.backdrop;return new gl({className:mg,isVisible:ei,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:ei?ti:null})}_initializeFocusTrap(){return new yl({trapElement:this._element})}_addEventListeners(){Mi.on(this._element,Eg,ti=>{if(ti.key===pg){if(this._config.keyboard){this.hide();return}Mi.trigger(this._element,Xu)}})}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti](this)}})}};Mi.on(document,bg,wg,function(ii){let ti=cn.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&ii.preventDefault(),to(this))return;Mi.one(ti,Ld,()=>{ia(this)&&this.focus()});let ei=cn.findOne(Od);ei&&ei!==ti&&ro.getInstance(ei).hide(),ro.getOrCreateInstance(ti).toggle(this)});Mi.on(window,hg,()=>{for(let ii of cn.find(Od))ro.getOrCreateInstance(ii).show()});Mi.on(window,_g,()=>{for(let ii of cn.find("[aria-modal][class*=show][class*=offcanvas-]"))getComputedStyle(ii).position!=="fixed"&&ro.getOrCreateInstance(ii).hide()});bl(ro);ws(ro);var Sg=/^aria-[\w-]*$/i,Md={"*":["class","dir","id","lang","role",Sg],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Cg=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Ag=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Dg=(ii,ti)=>{let ei=ii.nodeName.toLowerCase();return ti.includes(ei)?Cg.has(ei)?!!Ag.test(ii.nodeValue):!0:ti.filter(ni=>ni instanceof RegExp).some(ni=>ni.test(ei))};function Og(ii,ti,ei){if(!ii.length)return ii;if(ei&&typeof ei=="function")return ei(ii);let ri=new window.DOMParser().parseFromString(ii,"text/html"),si=[].concat(...ri.body.querySelectorAll("*"));for(let ai of si){let li=ai.nodeName.toLowerCase();if(!Object.keys(ti).includes(li)){ai.remove();continue}let di=[].concat(...ai.attributes),mi=[].concat(ti["*"]||[],ti[li]||[]);for(let hi of di)Dg(hi,mi)||ai.removeAttribute(hi.nodeName)}return ri.body.innerHTML}var Lg="TemplateFactory",Mg={allowList:Md,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},kg={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ng={entry:"(string|element|function|null)",selector:"(string|element)"},Rc=class extends Ao{constructor(ti){super(),this._config=this._getConfig(ti)}static get Default(){return Mg}static get DefaultType(){return kg}static get NAME(){return Lg}getContent(){return Object.values(this._config.content).map(ti=>this._resolvePossibleFunction(ti)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(ti){return this._checkContent(ti),this._config.content=Ui(Ui({},this._config.content),ti),this}toHtml(){let ti=document.createElement("div");ti.innerHTML=this._maybeSanitize(this._config.template);for(let[ri,si]of Object.entries(this._config.content))this._setContent(ti,si,ri);let ei=ti.children[0],ni=this._resolvePossibleFunction(this._config.extraClass);return ni&&ei.classList.add(...ni.split(" ")),ei}_typeCheckConfig(ti){super._typeCheckConfig(ti),this._checkContent(ti.content)}_checkContent(ti){for(let[ei,ni]of Object.entries(ti))super._typeCheckConfig({selector:ei,entry:ni},Ng)}_setContent(ti,ei,ni){let ri=cn.findOne(ni,ti);if(ri){if(ei=this._resolvePossibleFunction(ei),!ei){ri.remove();return}if(Ps(ei)){this._putElementInTemplate(eo(ei),ri);return}if(this._config.html){ri.innerHTML=this._maybeSanitize(ei);return}ri.textContent=ei}}_maybeSanitize(ti){return this._config.sanitize?Og(ti,this._config.allowList,this._config.sanitizeFn):ti}_resolvePossibleFunction(ti){return ls(ti,[this])}_putElementInTemplate(ti,ei){if(this._config.html){ei.innerHTML="",ei.append(ti);return}ei.textContent=ti.textContent}},Ig="tooltip",Rg=new Set(["sanitize","allowList","sanitizeFn"]),Sc="fade",Pg="modal",al="show",Hg=".tooltip-inner",Ju=`.${Pg}`,Zu="hide.bs.modal",Aa="hover",Cc="focus",Fg="click",$g="manual",Bg="hide",zg="hidden",jg="show",Vg="shown",qg="inserted",Wg="click",Ug="focusin",Yg="focusout",Gg="mouseenter",Kg="mouseleave",Qg={AUTO:"auto",TOP:"top",RIGHT:bs()?"left":"right",BOTTOM:"bottom",LEFT:bs()?"right":"left"},Xg={allowList:Md,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Jg={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"},$s=class ii extends ps{constructor(ti,ei){if(typeof nl=="undefined")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(ti,ei),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Xg}static get DefaultType(){return Jg}static get NAME(){return Ig}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()){this._leave();return}this._enter()}}dispose(){clearTimeout(this._timeout),Mi.off(this._element.closest(Ju),Zu,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(!(this._isWithContent()&&this._isEnabled))return;let ti=Mi.trigger(this._element,this.constructor.eventName(jg)),ni=(cd(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(ti.defaultPrevented||!ni)return;this._disposePopper();let ri=this._getTipElement();this._element.setAttribute("aria-describedby",ri.getAttribute("id"));let{container:si}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(si.append(ri),Mi.trigger(this._element,this.constructor.eventName(qg))),this._popper=this._createPopper(ri),ri.classList.add(al),"ontouchstart"in document.documentElement)for(let li of[].concat(...document.body.children))Mi.on(li,"mouseover",fl);let ai=()=>{Mi.trigger(this._element,this.constructor.eventName(Vg)),this._isHovered===!1&&this._leave(),this._isHovered=!1};this._queueCallback(ai,this.tip,this._isAnimated())}hide(){if(!this._isShown()||Mi.trigger(this._element,this.constructor.eventName(Bg)).defaultPrevented)return;if(this._getTipElement().classList.remove(al),"ontouchstart"in document.documentElement)for(let ri of[].concat(...document.body.children))Mi.off(ri,"mouseover",fl);this._activeTrigger[Fg]=!1,this._activeTrigger[Cc]=!1,this._activeTrigger[Aa]=!1,this._isHovered=null;let ni=()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),Mi.trigger(this._element,this.constructor.eventName(zg)))};this._queueCallback(ni,this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return!!this._getTitle()}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(ti){let ei=this._getTemplateFactory(ti).toHtml();if(!ei)return null;ei.classList.remove(Sc,al),ei.classList.add(`bs-${this.constructor.NAME}-auto`);let ni=$h(this.constructor.NAME).toString();return ei.setAttribute("id",ni),this._isAnimated()&&ei.classList.add(Sc),ei}setContent(ti){this._newContent=ti,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(ti){return this._templateFactory?this._templateFactory.changeContent(ti):this._templateFactory=new Rc(Hn(Ui({},this._config),{content:ti,extraClass:this._resolvePossibleFunction(this._config.customClass)})),this._templateFactory}_getContentForTemplate(){return{[Hg]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(ti){return this.constructor.getOrCreateInstance(ti.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Sc)}_isShown(){return this.tip&&this.tip.classList.contains(al)}_createPopper(ti){let ei=ls(this._config.placement,[this,ti,this._element]),ni=Qg[ei.toUpperCase()];return Sa(this._element,ti,this._getPopperConfig(ni))}_getOffset(){let{offset:ti}=this._config;return typeof ti=="string"?ti.split(",").map(ei=>Number.parseInt(ei,10)):typeof ti=="function"?ei=>ti(ei,this._element):ti}_resolvePossibleFunction(ti){return ls(ti,[this._element])}_getPopperConfig(ti){let ei={placement:ti,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:ni=>{this._getTipElement().setAttribute("data-popper-placement",ni.state.placement)}}]};return Ui(Ui({},ei),ls(this._config.popperConfig,[ei]))}_setListeners(){let ti=this._config.trigger.split(" ");for(let ei of ti)if(ei==="click")Mi.on(this._element,this.constructor.eventName(Wg),this._config.selector,ni=>{this._initializeOnDelegatedTarget(ni).toggle()});else if(ei!==$g){let ni=ei===Aa?this.constructor.eventName(Gg):this.constructor.eventName(Ug),ri=ei===Aa?this.constructor.eventName(Kg):this.constructor.eventName(Yg);Mi.on(this._element,ni,this._config.selector,si=>{let ai=this._initializeOnDelegatedTarget(si);ai._activeTrigger[si.type==="focusin"?Cc:Aa]=!0,ai._enter()}),Mi.on(this._element,ri,this._config.selector,si=>{let ai=this._initializeOnDelegatedTarget(si);ai._activeTrigger[si.type==="focusout"?Cc:Aa]=ai._element.contains(si.relatedTarget),ai._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},Mi.on(this._element.closest(Ju),Zu,this._hideModalHandler)}_fixTitle(){let ti=this._element.getAttribute("title");ti&&(!this._element.getAttribute("aria-label")&&!this._element.textContent.trim()&&this._element.setAttribute("aria-label",ti),this._element.setAttribute("data-bs-original-title",ti),this._element.removeAttribute("title"))}_enter(){if(this._isShown()||this._isHovered){this._isHovered=!0;return}this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show)}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(ti,ei){clearTimeout(this._timeout),this._timeout=setTimeout(ti,ei)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(ti){let ei=Hs.getDataAttributes(this._element);for(let ni of Object.keys(ei))Rg.has(ni)&&delete ei[ni];return ti=Ui(Ui({},ei),typeof ti=="object"&&ti?ti:{}),ti=this._mergeConfigObj(ti),ti=this._configAfterMerge(ti),this._typeCheckConfig(ti),ti}_configAfterMerge(ti){return ti.container=ti.container===!1?document.body:eo(ti.container),typeof ti.delay=="number"&&(ti.delay={show:ti.delay,hide:ti.delay}),typeof ti.title=="number"&&(ti.title=ti.title.toString()),typeof ti.content=="number"&&(ti.content=ti.content.toString()),ti}_getDelegateConfig(){let ti={};for(let[ei,ni]of Object.entries(this._config))this.constructor.Default[ei]!==ni&&(ti[ei]=ni);return ti.selector=!1,ti.trigger="manual",ti}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ei[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};ws($s);var Zg="popover",ev=".popover-header",tv=".popover-body",iv=Hn(Ui({},$s.Default),{content:"",offset:[0,8],placement:"right",template:'',trigger:"click"}),nv=Hn(Ui({},$s.DefaultType),{content:"(null|string|element|function)"}),ta=class ii extends $s{static get Default(){return iv}static get DefaultType(){return nv}static get NAME(){return Zg}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[ev]:this._getTitle(),[tv]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ei[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};ws(ta);var rv="scrollspy",sv="bs.scrollspy",$c=`.${sv}`,ov=".data-api",av=`activate${$c}`,ed=`click${$c}`,lv=`load${$c}${ov}`,cv="dropdown-item",Xo="active",uv='[data-bs-spy="scroll"]',Ac="[href]",dv=".nav, .list-group",td=".nav-link",fv=".nav-item",hv=".list-group-item",pv=`${td}, ${fv} > ${td}, ${hv}`,mv=".dropdown",gv=".dropdown-toggle",vv={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},yv={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"},_l=class ii extends ps{constructor(ti,ei){super(ti,ei),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=getComputedStyle(this._element).overflowY==="visible"?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return vv}static get DefaultType(){return yv}static get NAME(){return rv}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(let ti of this._observableSections.values())this._observer.observe(ti)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(ti){return ti.target=eo(ti.target)||document.body,ti.rootMargin=ti.offset?`${ti.offset}px 0px -30%`:ti.rootMargin,typeof ti.threshold=="string"&&(ti.threshold=ti.threshold.split(",").map(ei=>Number.parseFloat(ei))),ti}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(Mi.off(this._config.target,ed),Mi.on(this._config.target,ed,Ac,ti=>{let ei=this._observableSections.get(ti.target.hash);if(ei){ti.preventDefault();let ni=this._rootElement||window,ri=ei.offsetTop-this._element.offsetTop;if(ni.scrollTo){ni.scrollTo({top:ri,behavior:"smooth"});return}ni.scrollTop=ri}}))}_getNewObserver(){let ti={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(ei=>this._observerCallback(ei),ti)}_observerCallback(ti){let ei=ai=>this._targetLinks.get(`#${ai.target.id}`),ni=ai=>{this._previousScrollData.visibleEntryTop=ai.target.offsetTop,this._process(ei(ai))},ri=(this._rootElement||document.documentElement).scrollTop,si=ri>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=ri;for(let ai of ti){if(!ai.isIntersecting){this._activeTarget=null,this._clearActiveClass(ei(ai));continue}let li=ai.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(si&&li){if(ni(ai),!ri)return;continue}!si&&!li&&ni(ai)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;let ti=cn.find(Ac,this._config.target);for(let ei of ti){if(!ei.hash||to(ei))continue;let ni=cn.findOne(decodeURI(ei.hash),this._element);ia(ni)&&(this._targetLinks.set(decodeURI(ei.hash),ei),this._observableSections.set(ei.hash,ni))}}_process(ti){this._activeTarget!==ti&&(this._clearActiveClass(this._config.target),this._activeTarget=ti,ti.classList.add(Xo),this._activateParents(ti),Mi.trigger(this._element,av,{relatedTarget:ti}))}_activateParents(ti){if(ti.classList.contains(cv)){cn.findOne(gv,ti.closest(mv)).classList.add(Xo);return}for(let ei of cn.parents(ti,dv))for(let ni of cn.prev(ei,pv))ni.classList.add(Xo)}_clearActiveClass(ti){ti.classList.remove(Xo);let ei=cn.find(`${Ac}.${Xo}`,ti);for(let ni of ei)ni.classList.remove(Xo)}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};Mi.on(window,lv,()=>{for(let ii of cn.find(uv))_l.getOrCreateInstance(ii)});ws(_l);var _v="tab",bv="bs.tab",Lo=`.${bv}`,Ev=`hide${Lo}`,wv=`hidden${Lo}`,xv=`show${Lo}`,Tv=`shown${Lo}`,Sv=`click${Lo}`,Cv=`keydown${Lo}`,Av=`load${Lo}`,Dv="ArrowLeft",id="ArrowRight",Ov="ArrowUp",nd="ArrowDown",Dc="Home",rd="End",Co="active",sd="fade",Oc="show",Lv="dropdown",kd=".dropdown-toggle",Mv=".dropdown-menu",Lc=`:not(${kd})`,kv='.list-group, .nav, [role="tablist"]',Nv=".nav-item, .list-group-item",Iv=`.nav-link${Lc}, .list-group-item${Lc}, [role="tab"]${Lc}`,Nd='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Mc=`${Iv}, ${Nd}`,Rv=`.${Co}[data-bs-toggle="tab"], .${Co}[data-bs-toggle="pill"], .${Co}[data-bs-toggle="list"]`,Do=class ii extends ps{constructor(ti){super(ti),this._parent=this._element.closest(kv),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),Mi.on(this._element,Cv,ei=>this._keydown(ei)))}static get NAME(){return _v}show(){let ti=this._element;if(this._elemIsActive(ti))return;let ei=this._getActiveElem(),ni=ei?Mi.trigger(ei,Ev,{relatedTarget:ti}):null;Mi.trigger(ti,xv,{relatedTarget:ei}).defaultPrevented||ni&&ni.defaultPrevented||(this._deactivate(ei,ti),this._activate(ti,ei))}_activate(ti,ei){if(!ti)return;ti.classList.add(Co),this._activate(cn.getElementFromSelector(ti));let ni=()=>{if(ti.getAttribute("role")!=="tab"){ti.classList.add(Oc);return}ti.removeAttribute("tabindex"),ti.setAttribute("aria-selected",!0),this._toggleDropDown(ti,!0),Mi.trigger(ti,Tv,{relatedTarget:ei})};this._queueCallback(ni,ti,ti.classList.contains(sd))}_deactivate(ti,ei){if(!ti)return;ti.classList.remove(Co),ti.blur(),this._deactivate(cn.getElementFromSelector(ti));let ni=()=>{if(ti.getAttribute("role")!=="tab"){ti.classList.remove(Oc);return}ti.setAttribute("aria-selected",!1),ti.setAttribute("tabindex","-1"),this._toggleDropDown(ti,!1),Mi.trigger(ti,wv,{relatedTarget:ei})};this._queueCallback(ni,ti,ti.classList.contains(sd))}_keydown(ti){if(![Dv,id,Ov,nd,Dc,rd].includes(ti.key))return;ti.stopPropagation(),ti.preventDefault();let ei=this._getChildren().filter(ri=>!to(ri)),ni;if([Dc,rd].includes(ti.key))ni=ei[ti.key===Dc?0:ei.length-1];else{let ri=[id,nd].includes(ti.key);ni=Pc(ei,ti.target,ri,!0)}ni&&(ni.focus({preventScroll:!0}),ii.getOrCreateInstance(ni).show())}_getChildren(){return cn.find(Mc,this._parent)}_getActiveElem(){return this._getChildren().find(ti=>this._elemIsActive(ti))||null}_setInitialAttributes(ti,ei){this._setAttributeIfNotExists(ti,"role","tablist");for(let ni of ei)this._setInitialAttributesOnChild(ni)}_setInitialAttributesOnChild(ti){ti=this._getInnerElement(ti);let ei=this._elemIsActive(ti),ni=this._getOuterElement(ti);ti.setAttribute("aria-selected",ei),ni!==ti&&this._setAttributeIfNotExists(ni,"role","presentation"),ei||ti.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(ti,"role","tab"),this._setInitialAttributesOnTargetPanel(ti)}_setInitialAttributesOnTargetPanel(ti){let ei=cn.getElementFromSelector(ti);ei&&(this._setAttributeIfNotExists(ei,"role","tabpanel"),ti.id&&this._setAttributeIfNotExists(ei,"aria-labelledby",`${ti.id}`))}_toggleDropDown(ti,ei){let ni=this._getOuterElement(ti);if(!ni.classList.contains(Lv))return;let ri=(si,ai)=>{let li=cn.findOne(si,ni);li&&li.classList.toggle(ai,ei)};ri(kd,Co),ri(Mv,Oc),ni.setAttribute("aria-expanded",ei)}_setAttributeIfNotExists(ti,ei,ni){ti.hasAttribute(ei)||ti.setAttribute(ei,ni)}_elemIsActive(ti){return ti.classList.contains(Co)}_getInnerElement(ti){return ti.matches(Mc)?ti:cn.findOne(Mc,ti)}_getOuterElement(ti){return ti.closest(Nv)||ti}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this);if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};Mi.on(document,Sv,Nd,function(ii){["A","AREA"].includes(this.tagName)&&ii.preventDefault(),!to(this)&&Do.getOrCreateInstance(this).show()});Mi.on(window,Av,()=>{for(let ii of cn.find(Rv))Do.getOrCreateInstance(ii)});ws(Do);var Pv="toast",Hv="bs.toast",oo=`.${Hv}`,Fv=`mouseover${oo}`,$v=`mouseout${oo}`,Bv=`focusin${oo}`,zv=`focusout${oo}`,jv=`hide${oo}`,Vv=`hidden${oo}`,qv=`show${oo}`,Wv=`shown${oo}`,Uv="fade",od="hide",ll="show",cl="showing",Yv={animation:"boolean",autohide:"boolean",delay:"number"},Gv={animation:!0,autohide:!0,delay:5e3},Bs=class ii extends ps{constructor(ti,ei){super(ti,ei),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Gv}static get DefaultType(){return Yv}static get NAME(){return Pv}show(){if(Mi.trigger(this._element,qv).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(Uv);let ei=()=>{this._element.classList.remove(cl),Mi.trigger(this._element,Wv),this._maybeScheduleHide()};this._element.classList.remove(od),La(this._element),this._element.classList.add(ll,cl),this._queueCallback(ei,this._element,this._config.animation)}hide(){if(!this.isShown()||Mi.trigger(this._element,jv).defaultPrevented)return;let ei=()=>{this._element.classList.add(od),this._element.classList.remove(cl,ll),Mi.trigger(this._element,Vv)};this._element.classList.add(cl),this._queueCallback(ei,this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ll),super.dispose()}isShown(){return this._element.classList.contains(ll)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(ti,ei){switch(ti.type){case"mouseover":case"mouseout":{this._hasMouseInteraction=ei;break}case"focusin":case"focusout":{this._hasKeyboardInteraction=ei;break}}if(ei){this._clearTimeout();return}let ni=ti.relatedTarget;this._element===ni||this._element.contains(ni)||this._maybeScheduleHide()}_setListeners(){Mi.on(this._element,Fv,ti=>this._onInteraction(ti,!0)),Mi.on(this._element,$v,ti=>this._onInteraction(ti,!1)),Mi.on(this._element,Bv,ti=>this._onInteraction(ti,!0)),Mi.on(this._element,zv,ti=>this._onInteraction(ti,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ei[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ei[ti](this)}})}};bl(Bs);ws(Bs);var gA=zo(Id()),vA=zo(El());function Mo(ii){return"error"in ii}function Un(ii){let ti=["","null","undefined"];return Array.isArray(ii)?ii.length>0:typeof ii=="string"&&!ti.includes(ii)||typeof ii=="number"||typeof ii=="boolean"?!0:typeof ii=="object"&&ii!==null}function wl(ii){return typeof ii!==null&&typeof ii!="undefined"}function Kv(ii,ti,ei){return ks(this,null,function*(){let ni=window.CSRF_TOKEN,ri=new Headers({"X-CSRFToken":ni}),si;typeof ei!="undefined"&&(si=JSON.stringify(ei),ri.set("content-type","application/json"));let ai=yield fetch(ii,{method:ti,body:si,headers:ri,credentials:"same-origin"}),li=ai.headers.get("Content-Type");if(typeof li=="string"&&li.includes("text"))return{error:yield ai.text()};let di=yield ai.json();return!ai.ok&&Array.isArray(di)?{error:di.join(`
-`)}:!ai.ok&&"detail"in di?{error:di.detail}:di})}function ra(ii,ti){return ks(this,null,function*(){return yield Kv(ii,"PATCH",ti)})}function*Xi(...ii){for(let ti of ii)for(let ei of document.querySelectorAll(ti))ei!==null&&(yield ei)}function ka(ii){return document.getElementById(ii)}function Rd(ii,ti=0){let ei=ti,ni=document.getElementById("content-title");ni!==null&&(ei+=ni.getBoundingClientRect().bottom);let ri=ii.getBoundingClientRect().top+window.pageYOffset+ei;window.scrollTo({top:ri,behavior:"smooth"})}function Pd(ii,ti="select"){let ei=[];for(let ni of ii.querySelectorAll(ti))if(ni!==null){let ri={name:ni.name,options:[]};for(let si of ni.options)si.selected&&ri.options.push(si.value);ei=[...ei,ri]}return ei}function ko(ii,ti,ei){function ni(si){return!!(typeof ei=="string"&&si!==null&&si.matches(ei))}function ri(si){if(si!==null&&si.parentElement!==null&&!ni(si)){for(let ai of si.parentElement.querySelectorAll(ti))if(ai!==null)return ai;return ri(si.parentElement.parentElement)}return null}return ri(ii)}function jc(ii,ti,ei=null,ni=[]){let ri=document.createElement(ii);if(ti!==null)for(let si of Object.keys(ti)){let ai=si,li=ti[ai];ai in ri&&(ri[ai]=li)}ei!==null&&ei.length>0&&ri.classList.add(...ei);for(let si of ni)ri.appendChild(si);return ri}function sa(ii,ti,ei){if(typeof ii!="string")throw new TypeError("replaceAll 'input' argument must be a string");if(typeof ti!="string"&&!(ti instanceof RegExp))throw new TypeError("replaceAll 'pattern' argument must be a string or RegExp instance");switch(typeof ei){case"boolean":ei=String(ei);break;case"number":ei=String(ei);break;case"string":break;default:throw new TypeError("replaceAll 'replacement' argument must be stringifyable")}if(ti instanceof RegExp){let ni=Array.from(new Set([...ti.flags.split(""),"g"])).join("");ti=new RegExp(ti.source,ni)}else ti=new RegExp(ti,"g");return ii.replace(ti,ei)}function Qv(ii,ti){let ei=new Set;for(let ni of ti.querySelectorAll("*[name]"))ni.validity.valid?ni.classList.contains("is-invalid")&&ni.classList.remove("is-invalid"):(ei.add(ni.name),ni.classList.contains("is-invalid")||ni.classList.add("is-invalid"));if(ei.size!==0){let ni=ti.elements.namedItem(Array.from(ei)[0]);Rd(ni),ii.preventDefault()}}function Hd(){for(let ii of Xi("form")){let ti=ii.querySelectorAll("button[type=submit]");for(let ni of ti)ni.addEventListener("click",ri=>Qv(ri,ii));let ei=document.querySelector("button[data-reset-select]");ei!==null&&ei.addEventListener("click",()=>{window.location.assign(window.location.origin+window.location.pathname)})}}function Fd(){for(let ti of Xi("a.set_field_value"))if(ti!==null){let ei=function(ni){ni.preventDefault();let ri=ti.getAttribute("data"),si=document.getElementById(ti.target);si!==null&&ri!==null&&(si.value=ri)};var ii=ei;ti.addEventListener("click",ei)}}function $d(){for(let ii of[Hd,Fd])ii()}window.Collapse=io;window.Modal=Fs;window.Popover=ta;window.Toast=Bs;window.Tooltip=$s;function Xv(){for(let ii of Xi('[data-bs-toggle="tooltip"]'))new $s(ii,{container:"body"})}function Jv(){for(let ii of Xi('[data-bs-toggle="modal"]'))new Fs(ii)}function ao(ii,ti,ei,ni){let ri="mdi-alert";switch(ii){case"warning":ri="mdi-alert";break;case"success":ri="mdi-check-circle";break;case"info":ri="mdi-information";break;case"danger":ri="mdi-alert";break}let si=document.createElement("div");si.setAttribute("class","toast-container position-fixed bottom-0 end-0 m-3");let ai=document.createElement("div");ai.setAttribute("class",`toast bg-${ii}`),ai.setAttribute("role","alert"),ai.setAttribute("aria-live","assertive"),ai.setAttribute("aria-atomic","true");let li=document.createElement("div");li.setAttribute("class",`toast-header bg-${ii} text-body`);let di=document.createElement("i");di.setAttribute("class",`mdi ${ri}`);let mi=document.createElement("strong");mi.setAttribute("class","me-auto ms-1"),mi.innerText=ti;let hi=document.createElement("button");hi.setAttribute("type","button"),hi.setAttribute("class","btn-close"),hi.setAttribute("data-bs-dismiss","toast"),hi.setAttribute("aria-label","Close");let _i=document.createElement("div");if(_i.setAttribute("class","toast-body"),li.appendChild(di),li.appendChild(mi),typeof ni!="undefined"){let Ai=document.createElement("small");Ai.setAttribute("class","text-muted"),li.appendChild(Ai)}return li.appendChild(hi),_i.innerText=ei.trim(),ai.appendChild(li),ai.appendChild(_i),si.appendChild(ai),document.body.appendChild(si),new Bs(ai)}function Zv(){let{hash:ii}=location;if(ii&&ii.match(/^#tab_.+$/)){let ti=ii.replace("tab_","");for(let ei of Xi(`ul.nav.nav-tabs .nav-link[data-bs-target="${ti}"]`))new Do(ei).show()}}function ey(){let ii=document.querySelectorAll(".sidebar .accordion-item");function ti(ei){for(let ni of ii)ni!==ei?ni.classList.remove("is-open"):ni.classList.toggle("is-open")}for(let ei of ii)for(let ni of ei.querySelectorAll(".accordion-button"))ni.addEventListener("click",()=>{ti(ei)})}function ty(){for(let ii of Xi("a.image-preview")){let ti=`${Math.round(window.innerWidth/4)}px`,ei=jc("img",{src:ii.href});ei.style.maxWidth=ti;let ni=jc("div",null,null,[ei]);new ta(ii,{customClass:"image-preview-popover",trigger:"hover",html:!0,content:ni})}}function xl(){for(let ii of[Xv,Jv,Zv,ty,ey])ii()}function Bd(ii){let ti=ii.currentTarget,ei=document.getElementById("quicksearch_clear");Un(ei)&&(ti.value===""?ei.classList.add("invisible"):ei.classList.remove("invisible"))}function zd(){let ii=document.getElementById("export_current_view"),ti=ii==null?void 0:ii.href.split("&")[0];ii.setAttribute("href",ti)}function iy(ii){let ti=ii.currentTarget;if(zd(),ti!=null){let ei=document.getElementById("export_current_view"),ni=`q=${ti.value}`,ri=(ei==null?void 0:ei.href)+"&"+ni;ei.setAttribute("href",ri)}}function jd(){let ii=document.getElementById("quicksearch"),ti=document.getElementById("quicksearch_clear");Un(ii)&&(ii.addEventListener("keyup",Bd,{passive:!0}),ii.addEventListener("search",Bd,{passive:!0}),ii.addEventListener("change",iy,{passive:!0}),Un(ti)&&ti.addEventListener("click",()=>ks(this,null,function*(){let ei=new Event("search");ii.value="",yield new Promise(ni=>setTimeout(ni,100)),ii.dispatchEvent(ei),zd()}),{passive:!0}))}var Vc=zo(El());function Na(ii){let ti={};return ti.clear_button={html:ei=>` `},ii.hasAttribute("multiple")&&(ti.remove_button={title:"Remove"}),{plugins:ti}}function Vd(){for(let ii of Xi("select:not(.tomselected):not(.no-ts):not([size]):not(.api-select):not(.color-select)"))new Vc.default(ii,Hn(Ui({},Na(ii)),{maxOptions:void 0}))}function qd(){function ii(ti,ei){return` ${ei(ti.text)}
`}for(let ti of Xi("select.color-select:not(.tomselected)"))new Vc.default(ti,Hn(Ui({},Na(ti)),{maxOptions:void 0,render:{option:ii,item:ii}}))}var ny=zo(Ud());var Yd=(ii,ti)=>{if(Array.isArray(ii))ii.forEach(ti);else for(var ei in ii)ii.hasOwnProperty(ei)&&ti(ii[ei],ei)};var Gd=(ii,...ti)=>{var ei=ry(ti);ii=sy(ii),ii.map(ni=>{ei.map(ri=>{ni.classList.add(ri)})})};var ry=ii=>{var ti=[];return Yd(ii,ei=>{typeof ei=="string"&&(ei=ei.trim().split(/[\11\12\14\15\40]/)),Array.isArray(ei)&&(ti=ti.concat(ei))}),ti.filter(Boolean)},sy=ii=>(Array.isArray(ii)||(ii=[ii]),ii);var Kc={};hu(Kc,{exclude:()=>hy,extract:()=>Yc,parse:()=>Gc,parseUrl:()=>sf,pick:()=>af,stringify:()=>rf,stringifyUrl:()=>of});var Xd="%[a-f0-9]{2}",Kd=new RegExp("("+Xd+")|([^%]+?)","gi"),Qd=new RegExp("("+Xd+")+","gi");function qc(ii,ti){try{return[decodeURIComponent(ii.join(""))]}catch(ri){}if(ii.length===1)return ii;ti=ti||1;let ei=ii.slice(0,ti),ni=ii.slice(ti);return Array.prototype.concat.call([],qc(ei),qc(ni))}function oy(ii){try{return decodeURIComponent(ii)}catch(ti){let ei=ii.match(Kd)||[];for(let ni=1;niii==null,cy=ii=>encodeURIComponent(ii).replaceAll(/[!'()*]/g,ti=>`%${ti.charCodeAt(0).toString(16).toUpperCase()}`),Uc=Symbol("encodeFragmentIdentifier");function uy(ii){switch(ii.arrayFormat){case"index":return ti=>(ei,ni)=>{let ri=ei.length;return ni===void 0||ii.skipNull&&ni===null||ii.skipEmptyString&&ni===""?ei:ni===null?[...ei,[Jn(ti,ii),"[",ri,"]"].join("")]:[...ei,[Jn(ti,ii),"[",Jn(ri,ii),"]=",Jn(ni,ii)].join("")]};case"bracket":return ti=>(ei,ni)=>ni===void 0||ii.skipNull&&ni===null||ii.skipEmptyString&&ni===""?ei:ni===null?[...ei,[Jn(ti,ii),"[]"].join("")]:[...ei,[Jn(ti,ii),"[]=",Jn(ni,ii)].join("")];case"colon-list-separator":return ti=>(ei,ni)=>ni===void 0||ii.skipNull&&ni===null||ii.skipEmptyString&&ni===""?ei:ni===null?[...ei,[Jn(ti,ii),":list="].join("")]:[...ei,[Jn(ti,ii),":list=",Jn(ni,ii)].join("")];case"comma":case"separator":case"bracket-separator":{let ti=ii.arrayFormat==="bracket-separator"?"[]=":"=";return ei=>(ni,ri)=>ri===void 0||ii.skipNull&&ri===null||ii.skipEmptyString&&ri===""?ni:(ri=ri===null?"":ri,ni.length===0?[[Jn(ei,ii),ti,Jn(ri,ii)].join("")]:[[ni,Jn(ri,ii)].join(ii.arrayFormatSeparator)])}default:return ti=>(ei,ni)=>ni===void 0||ii.skipNull&&ni===null||ii.skipEmptyString&&ni===""?ei:ni===null?[...ei,Jn(ti,ii)]:[...ei,[Jn(ti,ii),"=",Jn(ni,ii)].join("")]}}function dy(ii){let ti;switch(ii.arrayFormat){case"index":return(ei,ni,ri)=>{if(ti=/\[(\d*)]$/.exec(ei),ei=ei.replace(/\[\d*]$/,""),!ti){ri[ei]=ni;return}ri[ei]===void 0&&(ri[ei]={}),ri[ei][ti[1]]=ni};case"bracket":return(ei,ni,ri)=>{if(ti=/(\[])$/.exec(ei),ei=ei.replace(/\[]$/,""),!ti){ri[ei]=ni;return}if(ri[ei]===void 0){ri[ei]=[ni];return}ri[ei]=[...ri[ei],ni]};case"colon-list-separator":return(ei,ni,ri)=>{if(ti=/(:list)$/.exec(ei),ei=ei.replace(/:list$/,""),!ti){ri[ei]=ni;return}if(ri[ei]===void 0){ri[ei]=[ni];return}ri[ei]=[...ri[ei],ni]};case"comma":case"separator":return(ei,ni,ri)=>{let si=typeof ni=="string"&&ni.includes(ii.arrayFormatSeparator),ai=typeof ni=="string"&&!si&&js(ni,ii).includes(ii.arrayFormatSeparator);ni=ai?js(ni,ii):ni;let li=si||ai?ni.split(ii.arrayFormatSeparator).map(di=>js(di,ii)):ni===null?ni:js(ni,ii);ri[ei]=li};case"bracket-separator":return(ei,ni,ri)=>{let si=/(\[])$/.test(ei);if(ei=ei.replace(/\[]$/,""),!si){ri[ei]=ni&&js(ni,ii);return}let ai=ni===null?[]:ni.split(ii.arrayFormatSeparator).map(li=>js(li,ii));if(ri[ei]===void 0){ri[ei]=ai;return}ri[ei]=[...ri[ei],...ai]};default:return(ei,ni,ri)=>{if(ri[ei]===void 0){ri[ei]=ni;return}ri[ei]=[...[ri[ei]].flat(),ni]}}}function ef(ii){if(typeof ii!="string"||ii.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Jn(ii,ti){return ti.encode?ti.strict?cy(ii):encodeURIComponent(ii):ii}function js(ii,ti){return ti.decode?Wc(ii):ii}function tf(ii){return Array.isArray(ii)?ii.sort():typeof ii=="object"?tf(Object.keys(ii)).sort((ti,ei)=>Number(ti)-Number(ei)).map(ti=>ii[ti]):ii}function nf(ii){let ti=ii.indexOf("#");return ti!==-1&&(ii=ii.slice(0,ti)),ii}function fy(ii){let ti="",ei=ii.indexOf("#");return ei!==-1&&(ti=ii.slice(ei)),ti}function Zd(ii,ti,ei){return ei==="string"&&typeof ii=="string"?ii:typeof ei=="function"&&typeof ii=="string"?ei(ii):ti.parseBooleans&&ii!==null&&(ii.toLowerCase()==="true"||ii.toLowerCase()==="false")?ii.toLowerCase()==="true":ei==="number"&&!Number.isNaN(Number(ii))&&typeof ii=="string"&&ii.trim()!==""||ti.parseNumbers&&!Number.isNaN(Number(ii))&&typeof ii=="string"&&ii.trim()!==""?Number(ii):ii}function Yc(ii){ii=nf(ii);let ti=ii.indexOf("?");return ti===-1?"":ii.slice(ti+1)}function Gc(ii,ti){ti=Ui({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,types:Object.create(null)},ti),ef(ti.arrayFormatSeparator);let ei=dy(ti),ni=Object.create(null);if(typeof ii!="string"||(ii=ii.trim().replace(/^[?#&]/,""),!ii))return ni;for(let ri of ii.split("&")){if(ri==="")continue;let si=ti.decode?ri.replaceAll("+"," "):ri,[ai,li]=Sl(si,"=");ai===void 0&&(ai=si),li=li===void 0?null:["comma","separator","bracket-separator"].includes(ti.arrayFormat)?li:js(li,ti),ei(js(ai,ti),li,ni)}for(let[ri,si]of Object.entries(ni))if(typeof si=="object"&&si!==null&&ti.types[ri]!=="string")for(let[ai,li]of Object.entries(si)){let di=ti.types[ri]?ti.types[ri].replace("[]",""):void 0;si[ai]=Zd(li,ti,di)}else typeof si=="object"&&si!==null&&ti.types[ri]==="string"?ni[ri]=Object.values(si).join(ti.arrayFormatSeparator):ni[ri]=Zd(si,ti,ti.types[ri]);return ti.sort===!1?ni:(ti.sort===!0?Object.keys(ni).sort():Object.keys(ni).sort(ti.sort)).reduce((ri,si)=>{let ai=ni[si];return ri[si]=ai&&typeof ai=="object"&&!Array.isArray(ai)?tf(ai):ai,ri},Object.create(null))}function rf(ii,ti){if(!ii)return"";ti=Ui({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},ti),ef(ti.arrayFormatSeparator);let ei=ai=>ti.skipNull&&ly(ii[ai])||ti.skipEmptyString&&ii[ai]==="",ni=uy(ti),ri={};for(let[ai,li]of Object.entries(ii))ei(ai)||(ri[ai]=li);let si=Object.keys(ri);return ti.sort!==!1&&si.sort(ti.sort),si.map(ai=>{let li=ii[ai];return li===void 0?"":li===null?Jn(ai,ti):Array.isArray(li)?li.length===0&&ti.arrayFormat==="bracket-separator"?Jn(ai,ti)+"[]":li.reduce(ni(ai),[]).join("&"):Jn(ai,ti)+"="+Jn(li,ti)}).filter(ai=>ai.length>0).join("&")}function sf(ii,ti){var ri,si;ti=Ui({decode:!0},ti);let[ei,ni]=Sl(ii,"#");return ei===void 0&&(ei=ii),Ui({url:(si=(ri=ei==null?void 0:ei.split("?"))==null?void 0:ri[0])!=null?si:"",query:Gc(Yc(ii),ti)},ti&&ti.parseFragmentIdentifier&&ni?{fragmentIdentifier:js(ni,ti)}:{})}function of(ii,ti){ti=Ui({encode:!0,strict:!0,[Uc]:!0},ti);let ei=nf(ii.url).split("?")[0]||"",ni=Yc(ii.url),ri=Ui(Ui({},Gc(ni,{sort:!1})),ii.query),si=rf(ri,ti);si&&(si=`?${si}`);let ai=fy(ii.url);if(typeof ii.fragmentIdentifier=="string"){let li=new URL(ei);li.hash=ii.fragmentIdentifier,ai=ti[Uc]?li.hash:`#${ii.fragmentIdentifier}`}return`${ei}${si}${ai}`}function af(ii,ti,ei){ei=Ui({parseFragmentIdentifier:!0,[Uc]:!1},ei);let{url:ni,query:ri,fragmentIdentifier:si}=sf(ii,ei);return of({url:ni,query:Jd(ri,ti),fragmentIdentifier:si},ei)}function hy(ii,ti,ei){let ni=Array.isArray(ti)?ri=>!ti.includes(ri):(ri,si)=>!ti(ri,si);return af(ii,ni,ei)}var lf=Kc;var uf=zo(El());function cf(ii){if(Array.isArray(ii)){for(let ti of ii)if(typeof ti=="object"&&ti!==null&&"fieldName"in ti&&"queryParam"in ti)return typeof ti.fieldName=="string"&&typeof ti.queryParam=="string"}return!1}var Cl=class extends Map{queryParam(ti){let ei=this.get(ti);return typeof ei!="undefined"?ei.queryParam:null}queryValue(ti){let ei=this.get(ti);return typeof ei!="undefined"?ei.queryValue:[]}updateValue(ti,ei){let ni=this.get(ti);if(Un(ni)){let{queryParam:ri}=ni;return this.set(ti,{queryParam:ri,queryValue:ei}),!0}return!1}addFromJson(ti){if(Un(ti)){let ei=JSON.parse(ti);if(cf(ei))for(let{queryParam:ni,fieldName:ri}of ei)this.set(ri,{queryParam:ni,queryValue:[]});else throw new Error(`Data from 'data-dynamic-params' attribute is improperly formatted: '${ti}'`)}}};var Al=class extends uf.default{constructor(ei,ni){super(ei,ni);Rn(this,"nullOption",null);Rn(this,"queryParams",new Map);Rn(this,"staticParams",new Map);Rn(this,"dynamicParams",new Cl);Rn(this,"pathValues",new Map);this.api_url=this.input.getAttribute("data-url"),this.valueField=this.input.getAttribute("ts-value-field")||this.settings.valueField,this.labelField=this.input.getAttribute("ts-label-field")||this.settings.labelField,this.disabledField=this.input.getAttribute("ts-disabled-field")||this.settings.disabledField,this.descriptionField=this.input.getAttribute("ts-description-field")||"description",this.depthField=this.input.getAttribute("ts-depth-field")||"_depth",this.parentField=this.input.getAttribute("ts-parent-field")||null,this.countField=this.input.getAttribute("ts-count-field")||null;let ri=this.input.getAttribute("data-null-option");if(ri){let si=this.settings.valueField,ai=this.settings.labelField;this.nullOption={},this.nullOption[si]="null",this.nullOption[ai]=ri}this.getStaticParams();for(let[si,ai]of this.staticParams.entries())this.queryParams.set(si,ai);this.getDynamicParams();for(let si of this.dynamicParams.keys())this.updateQueryParams(si);this.getPathKeys();for(let si of this.pathValues.keys())this.updatePathValues(si);this.addEventListeners()}load(ei){let ni=this;ni.clearOptions(),ni.nullOption&&!ei&&ni.addOption(ni.nullOption);let ri=ni.getRequestUrl(ei);ri&&(Gd(ni.wrapper,ni.settings.loadingClass),ni.loading++,fetch(ri).then(si=>si.json()).then(si=>{let ai=si.results,li=[];for(let di of ai){let mi=ni.getOptionFromData(di);li.push(mi)}return li}).then(si=>{ni.loadCallback(si,[])}).catch(()=>{ni.loadCallback([],[])}))}getRequestUrl(ei){let ni=this.api_url,ri={};for(let[si,ai]of this.queryParams.entries())ri[si]=ai;for(let[si,ai]of this.pathValues.entries())for(let li of this.api_url.matchAll(new RegExp(`({{${si}}})`,"g")))if(ai)ni=sa(ni,li[1],ai.toString());else return"";return ei&&(ri.q=[ei]),ri.brief=[!0],ri.limit=[this.settings.maxOptions],lf.stringifyUrl({url:ni,query:ri})}getOptionFromData(ei){let ni={id:ei[this.valueField],display:ei[this.labelField],depth:ei[this.depthField]||null,description:ei[this.descriptionField]||null};if(ei[this.parentField]){let ri=ei[this.parentField];ni.parent=ri[this.labelField]}return ei[this.countField]&&(ni.count=ei[this.countField]),ei[this.disabledField]&&(ni.disabled=ei[this.disabledField]),ni}getStaticParams(){let ei=this.input.getAttribute("data-static-params");try{if(ei){let ni=JSON.parse(ei);if(ni)for(let{queryParam:ri,queryValue:si}of ni)Array.isArray(si)?this.staticParams.set(ri,si):this.staticParams.set(ri,[si])}}catch(ni){console.group(`Unable to determine static query parameters for select field '${this.name}'`),console.warn(ni),console.groupEnd()}}getDynamicParams(){let ei=this.input.getAttribute("data-dynamic-params");try{this.dynamicParams.addFromJson(ei)}catch(ni){console.group(`Unable to determine dynamic query parameters for select field '${this.name}'`),console.warn(ni),console.groupEnd()}}getPathKeys(){for(let ei of this.api_url.matchAll(new RegExp("{{(.+)}}","g")))this.pathValues.set(ei[1],"")}updateQueryParams(ei){let ni=document.querySelector(`[name="${ei}"]`);if(ni!==null){let ri=[];if(ni.multiple?ri=Array.from(ni.options).filter(si=>si.selected).map(si=>si.value):ni.value!==""&&(ri=[ni.value]),ri.length>0){this.dynamicParams.updateValue(ei,ri);let si=this.dynamicParams.get(ei);if(typeof si!="undefined"){let{queryParam:ai,queryValue:li}=si,di=[];if(this.staticParams.has(ai)){let mi=this.staticParams.get(ai);typeof mi!="undefined"&&(di=[...mi,...li])}else di=li;di.length>0?this.queryParams.set(ai,di):this.queryParams.delete(ai)}}else{let si=this.dynamicParams.queryParam(ei);si!==null&&this.queryParams.delete(si)}}}updatePathValues(ei){let ni=sa(ei,/^id_/i,""),ri=ka(`id_${ni}`);ri!==null&&this.api_url.includes("{{")&&this.api_url.match(new RegExp(`({{(${ei})}})`,"g"))&&(ri.value?this.pathValues.set(ei,ri.value):this.pathValues.set(ei,""))}addEventListeners(){let ei=new Set([...this.dynamicParams.keys(),...this.pathValues.keys()]);for(let ni of ei){let ri=document.querySelector(`[name="${ni}"]`);ri!==null&&ri.addEventListener("change",si=>this.handleEvent(si)),this.input.addEventListener(`netbox.select.onload.${ni}`,si=>this.handleEvent(si))}}handleEvent(ei){let ni=ei.target;this.updateQueryParams(ni.name),this.updatePathValues(ni.name),this.clear(),this.load(this.lastValue)}};var py="id",Dl="display",my=100;function gy(ii,ti){let ei="";return typeof ii.depth=="number"&&ii.depth>0&&(ei=`${ei}${"\u2500".repeat(ii.depth)} `),ei=`${ei}${ti(ii[Dl])}`,ii.parent&&(ei=`${ei} ${ti(ii.parent)} `),ii.count&&(ei=`${ei} ${ti(ii.count)} `),ii.description&&(ei=`${ei}${ti(ii.description)} `),ei=`${ei}
`,ei}function vy(ii,ti){return ii.parent?`${ti(ii.parent)} > ${ti(ii[Dl])}
`:`${ti(ii[Dl])}
`}function df(){for(let ii of Xi("select.api-select:not(.tomselected)"))new Al(ii,Hn(Ui({},Na(ii)),{valueField:py,labelField:Dl,maxOptions:my,searchField:[],preload:"focus",render:{option:gy,item:vy},shouldLoad:function(){return!0}}))}function Ol(){Vd(),df(),qd()}function ff(ii,ti){var ri;let ei=(ri=ii.parentElement)==null?void 0:ri.parentElement,ni=ii.getAttribute("data-url");Un(ni)&&ra(ni,{status:ti}).then(si=>{if(Mo(si)){ao("danger","Error",si.error).show();return}else ei.setAttribute("data-cable-status",ti)})}function hf(){for(let ii of Xi("button.mark-planned"))ii.addEventListener("click",()=>ff(ii,"planned"));for(let ii of Xi("button.mark-installed"))ii.addEventListener("click",()=>ff(ii,"connected"))}var Qc=class{set(ti,ei,ni){return ti[ei]=ni,!0}get(ti,ei){return ti[ei]}has(ti,ei){return ei in ti}},Ia=class{constructor(ti,ei){Rn(this,"handlers");Rn(this,"proxy");Rn(this,"options");Rn(this,"key","");if(this.options=ei,typeof this.options.key=="string"?this.key=this.options.key:this.key=this.generateStateKey(ti),this.options.persist){let ni=this.retrieve();ni!==null&&(ti=Ui(Ui({},ti),ni))}this.handlers=new Qc,this.proxy=new Proxy(ti,this.handlers),this.options.persist&&this.save()}generateStateKey(ti){return`netbox-${window.btoa(Object.keys(ti).join("---"))}`}get(ti){return this.handlers.get(this.proxy,ti)}set(ti,ei){this.handlers.set(this.proxy,ti,ei),this.options.persist&&this.save()}all(){return this.proxy}keys(){return Object.keys(this.proxy)}values(){return Object.values(this.proxy)}save(){let ti=JSON.stringify(this.proxy);localStorage.setItem(this.key,ti)}retrieve(){let ti=localStorage.getItem(this.key);return ti!==null?JSON.parse(ti):null}};function lo(ii,ti={}){return new Ia(ii,ti)}var Xc=lo({hidden:!1},{persist:!0,key:"netbox-object-depth"});var Jc=lo({view:"images-and-labels"},{persist:!0});var pf=lo({element:null},{persist:!1});var mf=lo({hidden:!0},{persist:!0,key:"netbox-secret"});function gf(ii,ti){ti.setAttribute("data-depth-indicators",ii?"hidden":"shown"),ti.innerText=ii?"Show Depth Indicators":"Hide Depth Indicators"}function vf(){for(let ii of Xi(".record-depth"))ii.style.display=""}function yf(){for(let ii of Xi(".record-depth"))ii.style.display="none"}function yy(ii,ti){let ei=ii.get("hidden");ii.set("hidden",!ei);let ni=ii.get("hidden");ni?yf():vf(),gf(ni,ti)}function _f(){let ii=Xc.get("hidden");for(let ti of Xi("button.toggle-depth"))gf(ii,ti),ti.addEventListener("click",ei=>{yy(Xc,ei.currentTarget)},!1);ii?yf():ii||vf()}function _y(ii){let ti=Array.from(ii.options);for(let ei=1;ei
=0;ei--){let ni=ti[ei];if(ni.selected){let ri=ii.options[ei+1];ni=ii.removeChild(ni),ri=ii.replaceChild(ni,ri),ii.insertBefore(ri,ni)}}}function bf(){for(let ii of Xi("#move-option-up")){let ti=ii.getAttribute("data-target");if(ti!==null)for(let ei of Xi(`#${ti}`))ii.addEventListener("click",()=>_y(ei))}for(let ii of Xi("#move-option-down")){let ti=ii.getAttribute("data-target");if(ti!==null)for(let ei of Xi(`#${ti}`))ii.addEventListener("click",()=>by(ei))}}function Ef(ii,ti){return ii.replace(/[^\-.\w\s]/g,"").replace(/^[\s.]+|[\s.]+$/g,"").replace(/[-.\s]+/g,"-").toLowerCase().substring(0,ti)}function wf(){let ii=document.getElementById("id_slug"),ti=document.getElementById("reslug");if(ii===null||ti===null)return;let ei=ii.getAttribute("slug-source"),ni=document.getElementById(`id_${ei}`);if(ni===null){console.error("Unable to find field for slug field.");return}let ri=ii.getAttribute("maxlength"),si=50;ri&&(si=Number(ri)),ni.addEventListener("blur",()=>{ii.value||(ii.value=Ef(ni.value,si))}),ti.addEventListener("click",()=>{ii.value=Ef(ni.value,si)})}function Ey(ii){if(!ii.currentTarget.checked)for(let ei of Xi('input[type="checkbox"].toggle',"input#select-all"))ei.checked=!1}function wy(ii){let ti=ii.currentTarget,ei=ko(ti,"table"),ni=document.getElementById("select-all-box"),ri=document.getElementById("select-all");if(ei!==null){for(let si of ei.querySelectorAll('tr:not(.d-none) input[type="checkbox"][name="pk"]'))ti.checked?si.checked=!0:si.checked=!1;ni!==null&&(ti.checked?ni.classList.remove("d-none"):(ni.classList.add("d-none"),ri!==null&&(ri.checked=!1)))}}function xf(){for(let ii of Xi('table tr th > input[type="checkbox"].toggle'))ii.addEventListener("change",wy);for(let ii of Xi('input[type="checkbox"][name="pk"]'))ii.addEventListener("change",Ey)}function Sf(){var ii;(ii=window.getSelection())==null||ii.removeAllRanges()}function Tf(ii,ti){ti.set("element",ii)}function xy(ii,ti,ei){let ni=!1;for(let ri of ei){let si=ri;if(ni===!0&&(si.checked=ii.checked),ri===ti){if(ni===!0){ni=!1;return}ni=!0,si.checked=ii.checked}if(ri===ii){if(ni===!0){ni=!1;return}ni=!0}}}function Ty(ii,ti){let ei=ii.target,ni=ti.get("element");if(Tf(ei,ti),!ii.shiftKey)return;if(Sf(),ni===null)return Tf(ei,ti);let ri=Xi('input[type="checkbox"][name="pk"]');xy(ei,ni,ri)}function Cf(){let ii=Xi('input[type="checkbox"][name="pk"]');for(let ti of ii)ti.addEventListener("click",ei=>{Sf(),ei.stopPropagation(),Ty(ei,pf)})}function Sy(ii){let ti=ii.querySelector("button.preview-button"),ei=ii.querySelector("textarea"),ni=ii.querySelector("div.preview");if(!Un(ei.style.height)){let{height:ri}=ei.getBoundingClientRect();ei.style.height=`${ri}px`}ti.addEventListener("htmx:configRequest",ri=>{ri.detail.parameters={text:ei.value||""},ri.detail.headers["X-CSRFToken"]=window.CSRF_TOKEN,ni.style.minHeight=ei.style.height,ni.innerHTML=""})}function Af(){for(let ii of document.querySelectorAll(".markdown-widget"))Sy(ii)}function Cy(ii,ti){ti.setAttribute("data-secret-visibility",ii?"hidden":"shown"),ti.innerText=ii?"Show Secret":"Hide Secret"}function Ay(){let ii=ka("secret");if(Un(ii)){let ti=ii.getAttribute("data-secret");Un(ti)&&(ii.innerText=ti)}}function Of(){let ii=ka("secret");if(Un(ii)){let ti=ii.getAttribute("data-secret");Un(ti)&&(ii.innerText="\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022")}}function Dy(ii,ti){ii.set("hidden",!ii.get("hidden"));let ei=ii.get("hidden");ei?Of():Ay(),Cy(ei,ti)}function Df(ii){Dy(mf,ii.currentTarget)}function Lf(){Of();for(let ii of Xi("button.toggle-secret"))ii.removeEventListener("click",Df),ii.addEventListener("click",Df)}function Ll(){for(let ii of[_f,hf,wf,xf,Cf,bf,Af,Lf])ii()}var Zc="netbox-color-mode";function Oy(ii){return ii==="dark"||ii==="light"}function Ly(ii){return localStorage.setItem(Zc,ii)}function My(ii){var ei,ni;let ti=document.querySelector("body");ti&&ii=="dark"?ti.setAttribute("data-bs-theme","dark"):ti&&ti.setAttribute("data-bs-theme","light");for(let ri of Xi(".rack_elevation")){let si=(ni=(ei=ri.contentDocument)==null?void 0:ei.querySelector("svg"))!=null?ni:null;si!==null&&si.setAttribute("data-bs-theme",ii)}}function co(ii){Ly(ii),My(ii)}function ky(){let ii=localStorage.getItem(Zc);ii==="light"?co("dark"):ii==="dark"?co("light"):console.warn("Unable to determine the current color mode")}function Ny(){let ii=localStorage.getItem(Zc);if(Un(ii))return co(ii);let ti="none";for(let ei of["dark","light"])if(window.matchMedia(`(prefers-color-scheme: ${ei})`).matches){ti=ei;break}if(Un(ii)&&Oy(ii))return co(ii);switch(ti){case"dark":return co("dark");case"light":return co("light");case"none":return co("light");default:return co("light")}}function Iy(){for(let ii of Xi("button.color-mode-toggle"))ii.addEventListener("click",ky)}function Mf(){window.addEventListener("load",Ny);for(let ii of[Iy])ii()}function Ml(){let ii=document.querySelectorAll("body > div#django-messages > div.toast");for(let ti of ii)if(ti!==null){let ei=new Bs(ti);ei.isShown()||ei.show()}}var Nf=zo(kf());function kl(){for(let ii of Xi(".copy-content"))new Nf.default(ii)}var Nl=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],uo={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(ii){return typeof console!="undefined"&&console.warn(ii)},getWeek:function(ii){var ti=new Date(ii.getTime());ti.setHours(0,0,0,0),ti.setDate(ti.getDate()+3-(ti.getDay()+6)%7);var ei=new Date(ti.getFullYear(),0,4);return 1+Math.round(((ti.getTime()-ei.getTime())/864e5-3+(ei.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:" ",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:" ",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1};var Il={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(ii){var ti=ii%100;if(ti>3&&ti<21)return"th";switch(ti%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},Rl=Il;var Zr=function(ii,ti){return ti===void 0&&(ti=2),("000"+ii).slice(ti*-1)},cs=function(ii){return ii===!0?1:0};function tu(ii,ti){var ei;return function(){var ni=this,ri=arguments;clearTimeout(ei),ei=setTimeout(function(){return ii.apply(ni,ri)},ti)}}var Pl=function(ii){return ii instanceof Array?ii:[ii]};function es(ii,ti,ei){if(ei===!0)return ii.classList.add(ti);ii.classList.remove(ti)}function An(ii,ti,ei){var ni=window.document.createElement(ii);return ti=ti||"",ei=ei||"",ni.className=ti,ei!==void 0&&(ni.textContent=ei),ni}function Pa(ii){for(;ii.firstChild;)ii.removeChild(ii.firstChild)}function iu(ii,ti){if(ti(ii))return ii;if(ii.parentNode)return iu(ii.parentNode,ti)}function Ha(ii,ti){var ei=An("div","numInputWrapper"),ni=An("input","numInput "+ii),ri=An("span","arrowUp"),si=An("span","arrowDown");if(navigator.userAgent.indexOf("MSIE 9.0")===-1?ni.type="number":(ni.type="text",ni.pattern="\\d*"),ti!==void 0)for(var ai in ti)ni.setAttribute(ai,ti[ai]);return ei.appendChild(ni),ei.appendChild(ri),ei.appendChild(si),ei}function us(ii){try{if(typeof ii.composedPath=="function"){var ti=ii.composedPath();return ti[0]}return ii.target}catch(ei){return ii.target}}var nu=function(){},Fa=function(ii,ti,ei){return ei.months[ti?"shorthand":"longhand"][ii]},If={D:nu,F:function(ii,ti,ei){ii.setMonth(ei.months.longhand.indexOf(ti))},G:function(ii,ti){ii.setHours((ii.getHours()>=12?12:0)+parseFloat(ti))},H:function(ii,ti){ii.setHours(parseFloat(ti))},J:function(ii,ti){ii.setDate(parseFloat(ti))},K:function(ii,ti,ei){ii.setHours(ii.getHours()%12+12*cs(new RegExp(ei.amPM[1],"i").test(ti)))},M:function(ii,ti,ei){ii.setMonth(ei.months.shorthand.indexOf(ti))},S:function(ii,ti){ii.setSeconds(parseFloat(ti))},U:function(ii,ti){return new Date(parseFloat(ti)*1e3)},W:function(ii,ti,ei){var ni=parseInt(ti),ri=new Date(ii.getFullYear(),0,2+(ni-1)*7,0,0,0,0);return ri.setDate(ri.getDate()-ri.getDay()+ei.firstDayOfWeek),ri},Y:function(ii,ti){ii.setFullYear(parseFloat(ti))},Z:function(ii,ti){return new Date(ti)},d:function(ii,ti){ii.setDate(parseFloat(ti))},h:function(ii,ti){ii.setHours((ii.getHours()>=12?12:0)+parseFloat(ti))},i:function(ii,ti){ii.setMinutes(parseFloat(ti))},j:function(ii,ti){ii.setDate(parseFloat(ti))},l:nu,m:function(ii,ti){ii.setMonth(parseFloat(ti)-1)},n:function(ii,ti){ii.setMonth(parseFloat(ti)-1)},s:function(ii,ti){ii.setSeconds(parseFloat(ti))},u:function(ii,ti){return new Date(parseFloat(ti))},w:nu,y:function(ii,ti){ii.setFullYear(2e3+parseFloat(ti))}},Vs={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},oa={Z:function(ii){return ii.toISOString()},D:function(ii,ti,ei){return ti.weekdays.shorthand[oa.w(ii,ti,ei)]},F:function(ii,ti,ei){return Fa(oa.n(ii,ti,ei)-1,!1,ti)},G:function(ii,ti,ei){return Zr(oa.h(ii,ti,ei))},H:function(ii){return Zr(ii.getHours())},J:function(ii,ti){return ti.ordinal!==void 0?ii.getDate()+ti.ordinal(ii.getDate()):ii.getDate()},K:function(ii,ti){return ti.amPM[cs(ii.getHours()>11)]},M:function(ii,ti){return Fa(ii.getMonth(),!0,ti)},S:function(ii){return Zr(ii.getSeconds())},U:function(ii){return ii.getTime()/1e3},W:function(ii,ti,ei){return ei.getWeek(ii)},Y:function(ii){return Zr(ii.getFullYear(),4)},d:function(ii){return Zr(ii.getDate())},h:function(ii){return ii.getHours()%12?ii.getHours()%12:12},i:function(ii){return Zr(ii.getMinutes())},j:function(ii){return ii.getDate()},l:function(ii,ti){return ti.weekdays.longhand[ii.getDay()]},m:function(ii){return Zr(ii.getMonth()+1)},n:function(ii){return ii.getMonth()+1},s:function(ii){return ii.getSeconds()},u:function(ii){return ii.getTime()},w:function(ii){return ii.getDay()},y:function(ii){return String(ii.getFullYear()).substring(2)}};var ru=function(ii){var ti=ii.config,ei=ti===void 0?uo:ti,ni=ii.l10n,ri=ni===void 0?Il:ni,si=ii.isMobile,ai=si===void 0?!1:si;return function(li,di,mi){var hi=mi||ri;return ei.formatDate!==void 0&&!ai?ei.formatDate(li,di,hi):di.split("").map(function(_i,Ei,Ai){return oa[_i]&&Ai[Ei-1]!=="\\"?oa[_i](li,hi,ei):_i!=="\\"?_i:""}).join("")}},Hl=function(ii){var ti=ii.config,ei=ti===void 0?uo:ti,ni=ii.l10n,ri=ni===void 0?Il:ni;return function(si,ai,li,di){if(!(si!==0&&!si)){var mi=di||ri,hi,_i=si;if(si instanceof Date)hi=new Date(si.getTime());else if(typeof si!="string"&&si.toFixed!==void 0)hi=new Date(si);else if(typeof si=="string"){var Ei=ai||(ei||uo).dateFormat,Ai=String(si).trim();if(Ai==="today")hi=new Date,li=!0;else if(ei&&ei.parseDate)hi=ei.parseDate(si,Ei);else if(/Z$/.test(Ai)||/GMT$/.test(Ai))hi=new Date(si);else{for(var ki=void 0,Ti=[],Fi=0,en=0,rn="";FiMath.min(ti,ei)&&ii=0?new Date:new Date(ei.config.minDate.getTime()),wi=$l(ei.config);vi.setHours(wi.hours,wi.minutes,wi.seconds,vi.getMilliseconds()),ei.selectedDates=[vi],ei.latestSelectedDateObj=vi}pi!==void 0&&pi.type!=="blur"&&On(pi);var Si=ei._input.value;_i(),Cs(),ei._input.value!==Si&&ei._debouncedChange()}function mi(pi,vi){return pi%12+12*cs(vi===ei.l10n.amPM[1])}function hi(pi){switch(pi%24){case 0:case 12:return 12;default:return pi%12}}function _i(){if(!(ei.hourElement===void 0||ei.minuteElement===void 0)){var pi=(parseInt(ei.hourElement.value.slice(-2),10)||0)%24,vi=(parseInt(ei.minuteElement.value,10)||0)%60,wi=ei.secondElement!==void 0?(parseInt(ei.secondElement.value,10)||0)%60:0;ei.amPM!==void 0&&(pi=mi(pi,ei.amPM.textContent));var Si=ei.config.minTime!==void 0||ei.config.minDate&&ei.minDateHasTime&&ei.latestSelectedDateObj&&ds(ei.latestSelectedDateObj,ei.config.minDate,!0)===0,Ri=ei.config.maxTime!==void 0||ei.config.maxDate&&ei.maxDateHasTime&&ei.latestSelectedDateObj&&ds(ei.latestSelectedDateObj,ei.config.maxDate,!0)===0;if(ei.config.maxTime!==void 0&&ei.config.minTime!==void 0&&ei.config.minTime>ei.config.maxTime){var qi=Fl(ei.config.minTime.getHours(),ei.config.minTime.getMinutes(),ei.config.minTime.getSeconds()),nn=Fl(ei.config.maxTime.getHours(),ei.config.maxTime.getMinutes(),ei.config.maxTime.getSeconds()),Qi=Fl(pi,vi,wi);if(Qi>nn&&Qi=12)]),ei.secondElement!==void 0&&(ei.secondElement.value=Zr(wi)))}function ki(pi){var vi=us(pi),wi=parseInt(vi.value)+(pi.delta||0);(wi/1e3>1||pi.key==="Enter"&&!/[^\d]/.test(wi.toString()))&&Yn(wi)}function Ti(pi,vi,wi,Si){if(vi instanceof Array)return vi.forEach(function(Ri){return Ti(pi,Ri,wi,Si)});if(pi instanceof Array)return pi.forEach(function(Ri){return Ti(Ri,vi,wi,Si)});pi.addEventListener(vi,wi,Si),ei._handlers.push({remove:function(){return pi.removeEventListener(vi,wi,Si)}})}function Fi(){wn("onChange")}function en(){if(ei.config.wrap&&["open","close","toggle","clear"].forEach(function(wi){Array.prototype.forEach.call(ei.element.querySelectorAll("[data-"+wi+"]"),function(Si){return Ti(Si,"click",ei[wi])})}),ei.isMobile){Ho();return}var pi=tu(zn,50);if(ei._debouncedChange=tu(Fi,Ry),ei.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&Ti(ei.daysContainer,"mouseover",function(wi){ei.config.mode==="range"&&Ts(us(wi))}),Ti(ei._input,"keydown",Qn),ei.calendarContainer!==void 0&&Ti(ei.calendarContainer,"keydown",Qn),!ei.config.inline&&!ei.config.static&&Ti(window,"resize",pi),window.ontouchstart!==void 0?Ti(window.document,"touchstart",Sn):Ti(window.document,"mousedown",Sn),Ti(window.document,"focus",Sn,{capture:!0}),ei.config.clickOpens===!0&&(Ti(ei._input,"focus",ei.open),Ti(ei._input,"click",ei.open)),ei.daysContainer!==void 0&&(Ti(ei.monthNav,"click",Dn),Ti(ei.monthNav,["keyup","increment"],ki),Ti(ei.daysContainer,"click",Ms)),ei.timeContainer!==void 0&&ei.minuteElement!==void 0&&ei.hourElement!==void 0){var vi=function(wi){return us(wi).select()};Ti(ei.timeContainer,["increment"],di),Ti(ei.timeContainer,"blur",di,{capture:!0}),Ti(ei.timeContainer,"click",ln),Ti([ei.hourElement,ei.minuteElement],["focus","click"],vi),ei.secondElement!==void 0&&Ti(ei.secondElement,"focus",function(){return ei.secondElement&&ei.secondElement.select()}),ei.amPM!==void 0&&Ti(ei.amPM,"click",function(wi){di(wi)})}ei.config.allowInput&&Ti(ei._input,"blur",Gn)}function rn(pi,vi){var wi=pi!==void 0?ei.parseDate(pi):ei.latestSelectedDateObj||(ei.config.minDate&&ei.config.minDate>ei.now?ei.config.minDate:ei.config.maxDate&&ei.config.maxDate1),ei.calendarContainer.appendChild(pi);var Ri=ei.config.appendTo!==void 0&&ei.config.appendTo.nodeType!==void 0;if((ei.config.inline||ei.config.static)&&(ei.calendarContainer.classList.add(ei.config.inline?"inline":"static"),ei.config.inline&&(!Ri&&ei.element.parentNode?ei.element.parentNode.insertBefore(ei.calendarContainer,ei._input.nextSibling):ei.config.appendTo!==void 0&&ei.config.appendTo.appendChild(ei.calendarContainer)),ei.config.static)){var qi=An("div","flatpickr-wrapper");ei.element.parentNode&&ei.element.parentNode.insertBefore(qi,ei.element),qi.appendChild(ei.element),ei.altInput&&qi.appendChild(ei.altInput),qi.appendChild(ei.calendarContainer)}!ei.config.static&&!ei.config.inline&&(ei.config.appendTo!==void 0?ei.config.appendTo:window.document.body).appendChild(ei.calendarContainer)}function an(pi,vi,wi,Si){var Ri=Fn(vi,!0),qi=An("span",pi,vi.getDate().toString());return qi.dateObj=vi,qi.$i=Si,qi.setAttribute("aria-label",ei.formatDate(vi,ei.config.ariaDateFormat)),pi.indexOf("hidden")===-1&&ds(vi,ei.now)===0&&(ei.todayDateElem=qi,qi.classList.add("today"),qi.setAttribute("aria-current","date")),Ri?(qi.tabIndex=-1,Ks(vi)&&(qi.classList.add("selected"),ei.selectedDateElem=qi,ei.config.mode==="range"&&(es(qi,"startRange",ei.selectedDates[0]&&ds(vi,ei.selectedDates[0],!0)===0),es(qi,"endRange",ei.selectedDates[1]&&ds(vi,ei.selectedDates[1],!0)===0),pi==="nextMonthDay"&&qi.classList.add("inRange")))):qi.classList.add("flatpickr-disabled"),ei.config.mode==="range"&&Yl(vi)&&!Ks(vi)&&qi.classList.add("inRange"),ei.weekNumbers&&ei.config.showMonths===1&&pi!=="prevMonthDay"&&Si%7===6&&ei.weekNumbers.insertAdjacentHTML("beforeend",""+ei.config.getWeek(vi)+" "),wn("onDayCreate",qi),qi}function bn(pi){pi.focus(),ei.config.mode==="range"&&Ts(pi)}function hn(pi){for(var vi=pi>0?0:ei.config.showMonths-1,wi=pi>0?ei.config.showMonths:-1,Si=vi;Si!=wi;Si+=pi)for(var Ri=ei.daysContainer.children[Si],qi=pi>0?0:Ri.children.length-1,nn=pi>0?Ri.children.length:-1,Qi=qi;Qi!=nn;Qi+=pi){var _n=Ri.children[Qi];if(_n.className.indexOf("hidden")===-1&&Fn(_n.dateObj))return _n}}function pn(pi,vi){for(var wi=pi.className.indexOf("Month")===-1?pi.dateObj.getMonth():ei.currentMonth,Si=vi>0?ei.config.showMonths:-1,Ri=vi>0?1:-1,qi=wi-ei.currentMonth;qi!=Si;qi+=Ri)for(var nn=ei.daysContainer.children[qi],Qi=wi-ei.currentMonth===qi?pi.$i+vi:vi<0?nn.children.length-1:0,_n=nn.children.length,Gi=Qi;Gi>=0&&Gi<_n&&Gi!=(vi>0?_n:-1);Gi+=Ri){var fn=nn.children[Gi];if(fn.className.indexOf("hidden")===-1&&Fn(fn.dateObj)&&Math.abs(pi.$i-Gi)>=Math.abs(vi))return bn(fn)}ei.changeMonth(Ri),gn(hn(Ri),0)}function gn(pi,vi){var wi=si(),Si=Bn(wi||document.body),Ri=pi!==void 0?pi:Si?wi:ei.selectedDateElem!==void 0&&Bn(ei.selectedDateElem)?ei.selectedDateElem:ei.todayDateElem!==void 0&&Bn(ei.todayDateElem)?ei.todayDateElem:hn(vi>0?1:-1);Ri===void 0?ei._input.focus():Si?pn(Ri,vi):bn(Ri)}function un(pi,vi){for(var wi=(new Date(pi,vi,1).getDay()-ei.l10n.firstDayOfWeek+7)%7,Si=ei.utils.getDaysInMonth((vi-1+12)%12,pi),Ri=ei.utils.getDaysInMonth(vi,pi),qi=window.document.createDocumentFragment(),nn=ei.config.showMonths>1,Qi=nn?"prevMonthDay hidden":"prevMonthDay",_n=nn?"nextMonthDay hidden":"nextMonthDay",Gi=Si+1-wi,fn=0;Gi<=Si;Gi++,fn++)qi.appendChild(an("flatpickr-day "+Qi,new Date(pi,vi-1,Gi),Gi,fn));for(Gi=1;Gi<=Ri;Gi++,fn++)qi.appendChild(an("flatpickr-day",new Date(pi,vi,Gi),Gi,fn));for(var Mn=Ri+1;Mn<=42-wi&&(ei.config.showMonths===1||fn%7!==0);Mn++,fn++)qi.appendChild(an("flatpickr-day "+_n,new Date(pi,vi+1,Mn%Ri),Mn,fn));var gs=An("div","dayContainer");return gs.appendChild(qi),gs}function vn(){if(ei.daysContainer!==void 0){Pa(ei.daysContainer),ei.weekNumbers&&Pa(ei.weekNumbers);for(var pi=document.createDocumentFragment(),vi=0;vi1||ei.config.monthSelectorType!=="dropdown")){var pi=function(Si){return ei.config.minDate!==void 0&&ei.currentYear===ei.config.minDate.getFullYear()&&Siei.config.maxDate.getMonth())};ei.monthsDropdownContainer.tabIndex=-1,ei.monthsDropdownContainer.innerHTML="";for(var vi=0;vi<12;vi++)if(pi(vi)){var wi=An("option","flatpickr-monthDropdown-month");wi.value=new Date(ei.currentYear,vi).getMonth().toString(),wi.textContent=Fa(vi,ei.config.shorthandCurrentMonth,ei.l10n),wi.tabIndex=-1,ei.currentMonth===vi&&(wi.selected=!0),ei.monthsDropdownContainer.appendChild(wi)}}}function Ni(){var pi=An("div","flatpickr-month"),vi=window.document.createDocumentFragment(),wi;ei.config.showMonths>1||ei.config.monthSelectorType==="static"?wi=An("span","cur-month"):(ei.monthsDropdownContainer=An("select","flatpickr-monthDropdown-months"),ei.monthsDropdownContainer.setAttribute("aria-label",ei.l10n.monthAriaLabel),Ti(ei.monthsDropdownContainer,"change",function(nn){var Qi=us(nn),_n=parseInt(Qi.value,10);ei.changeMonth(_n-ei.currentMonth),wn("onMonthChange")}),Tn(),wi=ei.monthsDropdownContainer);var Si=Ha("cur-year",{tabindex:"-1"}),Ri=Si.getElementsByTagName("input")[0];Ri.setAttribute("aria-label",ei.l10n.yearAriaLabel),ei.config.minDate&&Ri.setAttribute("min",ei.config.minDate.getFullYear().toString()),ei.config.maxDate&&(Ri.setAttribute("max",ei.config.maxDate.getFullYear().toString()),Ri.disabled=!!ei.config.minDate&&ei.config.minDate.getFullYear()===ei.config.maxDate.getFullYear());var qi=An("div","flatpickr-current-month");return qi.appendChild(wi),qi.appendChild(Si),vi.appendChild(qi),pi.appendChild(vi),{container:pi,yearElement:Ri,monthElement:wi}}function Hi(){Pa(ei.monthNav),ei.monthNav.appendChild(ei.prevMonthNav),ei.config.showMonths&&(ei.yearElements=[],ei.monthElements=[]);for(var pi=ei.config.showMonths;pi--;){var vi=Ni();ei.yearElements.push(vi.yearElement),ei.monthElements.push(vi.monthElement),ei.monthNav.appendChild(vi.container)}ei.monthNav.appendChild(ei.nextMonthNav)}function Pi(){return ei.monthNav=An("div","flatpickr-months"),ei.yearElements=[],ei.monthElements=[],ei.prevMonthNav=An("span","flatpickr-prev-month"),ei.prevMonthNav.innerHTML=ei.config.prevArrow,ei.nextMonthNav=An("span","flatpickr-next-month"),ei.nextMonthNav.innerHTML=ei.config.nextArrow,Hi(),Object.defineProperty(ei,"_hidePrevMonthArrow",{get:function(){return ei.__hidePrevMonthArrow},set:function(pi){ei.__hidePrevMonthArrow!==pi&&(es(ei.prevMonthNav,"flatpickr-disabled",pi),ei.__hidePrevMonthArrow=pi)}}),Object.defineProperty(ei,"_hideNextMonthArrow",{get:function(){return ei.__hideNextMonthArrow},set:function(pi){ei.__hideNextMonthArrow!==pi&&(es(ei.nextMonthNav,"flatpickr-disabled",pi),ei.__hideNextMonthArrow=pi)}}),ei.currentYearElement=ei.yearElements[0],Fo(),ei.monthNav}function $i(){ei.calendarContainer.classList.add("hasTime"),ei.config.noCalendar&&ei.calendarContainer.classList.add("noCalendar");var pi=$l(ei.config);ei.timeContainer=An("div","flatpickr-time"),ei.timeContainer.tabIndex=-1;var vi=An("span","flatpickr-time-separator",":"),wi=Ha("flatpickr-hour",{"aria-label":ei.l10n.hourAriaLabel});ei.hourElement=wi.getElementsByTagName("input")[0];var Si=Ha("flatpickr-minute",{"aria-label":ei.l10n.minuteAriaLabel});if(ei.minuteElement=Si.getElementsByTagName("input")[0],ei.hourElement.tabIndex=ei.minuteElement.tabIndex=-1,ei.hourElement.value=Zr(ei.latestSelectedDateObj?ei.latestSelectedDateObj.getHours():ei.config.time_24hr?pi.hours:hi(pi.hours)),ei.minuteElement.value=Zr(ei.latestSelectedDateObj?ei.latestSelectedDateObj.getMinutes():pi.minutes),ei.hourElement.setAttribute("step",ei.config.hourIncrement.toString()),ei.minuteElement.setAttribute("step",ei.config.minuteIncrement.toString()),ei.hourElement.setAttribute("min",ei.config.time_24hr?"0":"1"),ei.hourElement.setAttribute("max",ei.config.time_24hr?"23":"12"),ei.hourElement.setAttribute("maxlength","2"),ei.minuteElement.setAttribute("min","0"),ei.minuteElement.setAttribute("max","59"),ei.minuteElement.setAttribute("maxlength","2"),ei.timeContainer.appendChild(wi),ei.timeContainer.appendChild(vi),ei.timeContainer.appendChild(Si),ei.config.time_24hr&&ei.timeContainer.classList.add("time24hr"),ei.config.enableSeconds){ei.timeContainer.classList.add("hasSeconds");var Ri=Ha("flatpickr-second");ei.secondElement=Ri.getElementsByTagName("input")[0],ei.secondElement.value=Zr(ei.latestSelectedDateObj?ei.latestSelectedDateObj.getSeconds():pi.seconds),ei.secondElement.setAttribute("step",ei.minuteElement.getAttribute("step")),ei.secondElement.setAttribute("min","0"),ei.secondElement.setAttribute("max","59"),ei.secondElement.setAttribute("maxlength","2"),ei.timeContainer.appendChild(An("span","flatpickr-time-separator",":")),ei.timeContainer.appendChild(Ri)}return ei.config.time_24hr||(ei.amPM=An("span","flatpickr-am-pm",ei.l10n.amPM[cs((ei.latestSelectedDateObj?ei.hourElement.value:ei.config.defaultHour)>11)]),ei.amPM.title=ei.l10n.toggleTitle,ei.amPM.tabIndex=-1,ei.timeContainer.appendChild(ei.amPM)),ei.timeContainer}function mn(){ei.weekdayContainer?Pa(ei.weekdayContainer):ei.weekdayContainer=An("div","flatpickr-weekdays");for(var pi=ei.config.showMonths;pi--;){var vi=An("div","flatpickr-weekdaycontainer");ei.weekdayContainer.appendChild(vi)}return tn(),ei.weekdayContainer}function tn(){if(ei.weekdayContainer){var pi=ei.l10n.firstDayOfWeek,vi=Ff(ei.l10n.weekdays.shorthand);pi>0&&pi{var sh=Object.create;var Ua=Object.defineProperty,oh=Object.defineProperties,ah=Object.getOwnPropertyDescriptor,lh=Object.getOwnPropertyDescriptors,ch=Object.getOwnPropertyNames,du=Object.getOwnPropertySymbols,uh=Object.getPrototypeOf,fu=Object.prototype.hasOwnProperty,dh=Object.prototype.propertyIsEnumerable;var tc=(ii,ti,ei)=>ti in ii?Ua(ii,ti,{enumerable:!0,configurable:!0,writable:!0,value:ei}):ii[ti]=ei,Ui=(ii,ti)=>{for(var ei in ti||(ti={}))fu.call(ti,ei)&&tc(ii,ei,ti[ei]);if(du)for(var ei of du(ti))dh.call(ti,ei)&&tc(ii,ei,ti[ei]);return ii},Hn=(ii,ti)=>oh(ii,lh(ti));var Ya=(ii,ti)=>()=>(ti||ii((ti={exports:{}}).exports,ti),ti.exports),hu=(ii,ti)=>{for(var ei in ti)Ua(ii,ei,{get:ti[ei],enumerable:!0})},fh=(ii,ti,ei,ni)=>{if(ti&&typeof ti=="object"||typeof ti=="function")for(let ri of ch(ti))!fu.call(ii,ri)&&ri!==ei&&Ua(ii,ri,{get:()=>ti[ri],enumerable:!(ni=ah(ti,ri))||ni.enumerable});return ii};var zo=(ii,ti,ei)=>(ei=ii!=null?sh(uh(ii)):{},fh(ti||!ii||!ii.__esModule?Ua(ei,"default",{value:ii,enumerable:!0}):ei,ii));var Rn=(ii,ti,ei)=>tc(ii,typeof ti!="symbol"?ti+"":ti,ei);var ks=(ii,ti,ei)=>new Promise((ni,ri)=>{var si=di=>{try{li(ei.next(di))}catch(mi){ri(mi)}},ai=di=>{try{li(ei.throw(di))}catch(mi){ri(mi)}},li=di=>di.done?ni(di.value):Promise.resolve(di.value).then(si,ai);li((ei=ei.apply(ii,ti)).next())});var Id=Ya((exports,module)=>{(function(ii,ti){typeof define=="function"&&define.amd?define([],ti):typeof module=="object"&&module.exports?module.exports=ti():ii.htmx=ii.htmx||ti()})(typeof self!="undefined"?self:exports,function(){return function(){"use strict";var Q={onLoad:F,process:zt,on:de,off:ge,trigger:ce,ajax:Nr,find:C,findAll:f,closest:v,values:function(ii,ti){var ei=dr(ii,ti||"post");return ei.values},remove:_,addClass:z,removeClass:n,toggleClass:$,takeClass:W,defineExtension:Ur,removeExtension:Br,logAll:V,logNone:j,logger:null,config:{historyEnabled:!0,historyCacheSize:10,refreshOnHistoryMiss:!1,defaultSwapStyle:"innerHTML",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:!0,indicatorClass:"htmx-indicator",requestClass:"htmx-request",addedClass:"htmx-added",settlingClass:"htmx-settling",swappingClass:"htmx-swapping",allowEval:!0,allowScriptTags:!0,inlineScriptNonce:"",attributesToSettle:["class","style","width","height"],withCredentials:!1,timeout:0,wsReconnectDelay:"full-jitter",wsBinaryType:"blob",disableSelector:"[hx-disable], [data-hx-disable]",useTemplateFragments:!1,scrollBehavior:"smooth",defaultFocusScroll:!1,getCacheBusterParam:!1,globalViewTransitions:!1,methodsThatUseUrlParams:["get"],selfRequestsOnly:!1,ignoreTitle:!1,scrollIntoViewOnBoost:!0,triggerSpecsCache:null},parseInterval:d,_:t,createEventSource:function(ii){return new EventSource(ii,{withCredentials:!0})},createWebSocket:function(ii){var ti=new WebSocket(ii,[]);return ti.binaryType=Q.config.wsBinaryType,ti},version:"1.9.12"},r={addTriggerHandler:Lt,bodyContains:se,canAccessLocalStorage:U,findThisElement:xe,filterValues:yr,hasAttribute:o,getAttributeValue:te,getClosestAttributeValue:ne,getClosestMatch:c,getExpressionVars:Hr,getHeaders:xr,getInputValues:dr,getInternalData:ae,getSwapSpecification:wr,getTriggerSpecs:it,getTarget:ye,makeFragment:l,mergeObjects:le,makeSettleInfo:T,oobSwap:Ee,querySelectorExt:ue,selectAndSwap:je,settleImmediately:nr,shouldCancel:ut,triggerEvent:ce,triggerErrorEvent:fe,withExtensions:R},w=["get","post","put","delete","patch"],i=w.map(function(ii){return"[hx-"+ii+"], [data-hx-"+ii+"]"}).join(", "),S=e("head"),q=e("title"),H=e("svg",!0);function e(ii,ti){return new RegExp("<"+ii+"(\\s[^>]*>|>)([\\s\\S]*?)<\\/"+ii+">",ti?"gim":"im")}function d(ii){if(ii==null)return;let ti=NaN;return ii.slice(-2)=="ms"?ti=parseFloat(ii.slice(0,-2)):ii.slice(-1)=="s"?ti=parseFloat(ii.slice(0,-1))*1e3:ii.slice(-1)=="m"?ti=parseFloat(ii.slice(0,-1))*1e3*60:ti=parseFloat(ii),isNaN(ti)?void 0:ti}function ee(ii,ti){return ii.getAttribute&&ii.getAttribute(ti)}function o(ii,ti){return ii.hasAttribute&&(ii.hasAttribute(ti)||ii.hasAttribute("data-"+ti))}function te(ii,ti){return ee(ii,ti)||ee(ii,"data-"+ti)}function u(ii){return ii.parentElement}function re(){return document}function c(ii,ti){for(;ii&&!ti(ii);)ii=u(ii);return ii||null}function L(ii,ti,ei){var ni=te(ti,ei),ri=te(ti,"hx-disinherit");return ii!==ti&&ri&&(ri==="*"||ri.split(" ").indexOf(ei)>=0)?"unset":ni}function ne(ii,ti){var ei=null;if(c(ii,function(ni){return ei=L(ii,ni,ti)}),ei!=="unset")return ei}function h(ii,ti){var ei=ii.matches||ii.matchesSelector||ii.msMatchesSelector||ii.mozMatchesSelector||ii.webkitMatchesSelector||ii.oMatchesSelector;return ei&&ei.call(ii,ti)}function A(ii){var ti=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,ei=ti.exec(ii);return ei?ei[1].toLowerCase():""}function s(ii,ti){for(var ei=new DOMParser,ni=ei.parseFromString(ii,"text/html"),ri=ni.body;ti>0;)ti--,ri=ri.firstChild;return ri==null&&(ri=re().createDocumentFragment()),ri}function N(ii){return/"+ni+" ",0),si=ri.querySelector("template").content;return Q.config.allowScriptTags?oe(si.querySelectorAll("script"),function(ai){Q.config.inlineScriptNonce&&(ai.nonce=Q.config.inlineScriptNonce),ai.htmxExecuted=navigator.userAgent.indexOf("Firefox")===-1}):oe(si.querySelectorAll("script"),function(ai){_(ai)}),si}switch(ei){case"thead":case"tbody":case"tfoot":case"colgroup":case"caption":return s("",1);case"col":return s("",2);case"tr":return s("",2);case"td":case"th":return s("",3);case"script":case"style":return s(""+ni+"
",1);default:return s(ni,0)}}function ie(ii){ii&&ii()}function I(ii,ti){return Object.prototype.toString.call(ii)==="[object "+ti+"]"}function k(ii){return I(ii,"Function")}function P(ii){return I(ii,"Object")}function ae(ii){var ti="htmx-internal-data",ei=ii[ti];return ei||(ei=ii[ti]={}),ei}function M(ii){var ti=[];if(ii)for(var ei=0;ei=0}function se(ii){return ii.getRootNode&&ii.getRootNode()instanceof window.ShadowRoot?re().body.contains(ii.getRootNode().host):re().body.contains(ii)}function D(ii){return ii.trim().split(/\s+/)}function le(ii,ti){for(var ei in ti)ti.hasOwnProperty(ei)&&(ii[ei]=ti[ei]);return ii}function E(ii){try{return JSON.parse(ii)}catch(ti){return b(ti),null}}function U(){var ii="htmx:localStorageTest";try{return localStorage.setItem(ii,ii),localStorage.removeItem(ii),!0}catch(ti){return!1}}function B(ii){try{var ti=new URL(ii);return ti&&(ii=ti.pathname+ti.search),/^\/$/.test(ii)||(ii=ii.replace(/\/+$/,"")),ii}catch(ei){return ii}}function t(e){return Tr(re().body,function(){return eval(e)})}function F(ii){var ti=Q.on("htmx:load",function(ei){ii(ei.detail.elt)});return ti}function V(){Q.logger=function(ii,ti,ei){console&&console.log(ti,ii,ei)}}function j(){Q.logger=null}function C(ii,ti){return ti?ii.querySelector(ti):C(re(),ii)}function f(ii,ti){return ti?ii.querySelectorAll(ti):f(re(),ii)}function _(ii,ti){ii=p(ii),ti?setTimeout(function(){_(ii),ii=null},ti):ii.parentElement.removeChild(ii)}function z(ii,ti,ei){ii=p(ii),ei?setTimeout(function(){z(ii,ti),ii=null},ei):ii.classList&&ii.classList.add(ti)}function n(ii,ti,ei){ii=p(ii),ei?setTimeout(function(){n(ii,ti),ii=null},ei):ii.classList&&(ii.classList.remove(ti),ii.classList.length===0&&ii.removeAttribute("class"))}function $(ii,ti){ii=p(ii),ii.classList.toggle(ti)}function W(ii,ti){ii=p(ii),oe(ii.parentElement.children,function(ei){n(ei,ti)}),z(ii,ti)}function v(ii,ti){if(ii=p(ii),ii.closest)return ii.closest(ti);do if(ii==null||h(ii,ti))return ii;while(ii=ii&&u(ii));return null}function g(ii,ti){return ii.substring(0,ti.length)===ti}function G(ii,ti){return ii.substring(ii.length-ti.length)===ti}function J(ii){var ti=ii.trim();return g(ti,"<")&&G(ti,"/>")?ti.substring(1,ti.length-2):ti}function Z(ii,ti){return ti.indexOf("closest ")===0?[v(ii,J(ti.substr(8)))]:ti.indexOf("find ")===0?[C(ii,J(ti.substr(5)))]:ti==="next"?[ii.nextElementSibling]:ti.indexOf("next ")===0?[K(ii,J(ti.substr(5)))]:ti==="previous"?[ii.previousElementSibling]:ti.indexOf("previous ")===0?[Y(ii,J(ti.substr(9)))]:ti==="document"?[document]:ti==="window"?[window]:ti==="body"?[document.body]:re().querySelectorAll(J(ti))}var K=function(ii,ti){for(var ei=re().querySelectorAll(ti),ni=0;ni=0;ni--){var ri=ei[ni];if(ri.compareDocumentPosition(ii)===Node.DOCUMENT_POSITION_FOLLOWING)return ri}};function ue(ii,ti){return ti?Z(ii,ti)[0]:Z(re().body,ii)[0]}function p(ii){return I(ii,"String")?C(ii):ii}function ve(ii,ti,ei){return k(ti)?{target:re().body,event:ii,listener:ti}:{target:p(ii),event:ti,listener:ei}}function de(ii,ti,ei){jr(function(){var ri=ve(ii,ti,ei);ri.target.addEventListener(ri.event,ri.listener)});var ni=k(ti);return ni?ti:ei}function ge(ii,ti,ei){return jr(function(){var ni=ve(ii,ti,ei);ni.target.removeEventListener(ni.event,ni.listener)}),k(ti)?ti:ei}var pe=re().createElement("output");function me(ii,ti){var ei=ne(ii,ti);if(ei){if(ei==="this")return[xe(ii,ti)];var ni=Z(ii,ei);return ni.length===0?(b('The selector "'+ei+'" on '+ti+" returned no matches!"),[pe]):ni}}function xe(ii,ti){return c(ii,function(ei){return te(ei,ti)!=null})}function ye(ii){var ti=ne(ii,"hx-target");if(ti)return ti==="this"?xe(ii,"hx-target"):ue(ii,ti);var ei=ae(ii);return ei.boosted?re().body:ii}function be(ii){for(var ti=Q.config.attributesToSettle,ei=0;ei0?(ri=ii.substr(0,ii.indexOf(":")),ni=ii.substr(ii.indexOf(":")+1,ii.length)):ri=ii);var si=re().querySelectorAll(ni);return si?(oe(si,function(ai){var li,di=ti.cloneNode(!0);li=re().createDocumentFragment(),li.appendChild(di),Se(ri,ai)||(li=di);var mi={shouldSwap:!0,target:ai,fragment:li};ce(ai,"htmx:oobBeforeSwap",mi)&&(ai=mi.target,mi.shouldSwap&&Fe(ri,ai,ai,li,ei),oe(ei.elts,function(hi){ce(hi,"htmx:oobAfterSwap",mi)}))}),ti.parentNode.removeChild(ti)):(ti.parentNode.removeChild(ti),fe(re().body,"htmx:oobErrorNoTarget",{content:ti})),ii}function Ce(ii,ti,ei){var ni=ne(ii,"hx-select-oob");if(ni)for(var ri=ni.split(","),si=0;si0){var si=ri.replace("'","\\'"),ai=ni.tagName.replace(":","\\:"),li=ii.querySelector(ai+"[id='"+si+"']");if(li&&li!==ii){var di=ni.cloneNode();we(ni,li),ei.tasks.push(function(){we(ni,di)})}}})}function Oe(ii){return function(){n(ii,Q.config.addedClass),zt(ii),Nt(ii),qe(ii),ce(ii,"htmx:load")}}function qe(ii){var ti="[autofocus]",ei=h(ii,ti)?ii:ii.querySelector(ti);ei!=null&&ei.focus()}function a(ii,ti,ei,ni){for(Te(ii,ei,ni);ei.childNodes.length>0;){var ri=ei.firstChild;z(ri,Q.config.addedClass),ii.insertBefore(ri,ti),ri.nodeType!==Node.TEXT_NODE&&ri.nodeType!==Node.COMMENT_NODE&&ni.tasks.push(Oe(ri))}}function He(ii,ti){for(var ei=0;ei-1){var ti=ii.replace(H,""),ei=ti.match(q);if(ei)return ei[2]}}function je(ii,ti,ei,ni,ri,si){ri.title=Ve(ni);var ai=l(ni);if(ai)return Ce(ei,ai,ri),ai=Be(ei,ai,si),Re(ai),Fe(ii,ei,ti,ai,ri)}function _e(ii,ti,ei){var ni=ii.getResponseHeader(ti);if(ni.indexOf("{")===0){var ri=E(ni);for(var si in ri)if(ri.hasOwnProperty(si)){var ai=ri[si];P(ai)||(ai={value:ai}),ce(ei,si,ai)}}else for(var li=ni.split(","),di=0;di0;){var ai=ti[0];if(ai==="]"){if(ni--,ni===0){si===null&&(ri=ri+"true"),ti.shift(),ri+=")})";try{var li=Tr(ii,function(){return Function(ri)()},function(){return!0});return li.source=ri,li}catch(di){return fe(re().body,"htmx:syntax:error",{error:di,source:ri}),null}}}else ai==="["&&ni++;Qe(ai,si,ei)?ri+="(("+ei+"."+ai+") ? ("+ei+"."+ai+") : (window."+ai+"))":ri=ri+ai,si=ti.shift()}}}function y(ii,ti){for(var ei="";ii.length>0&&!ti.test(ii[0]);)ei+=ii.shift();return ei}function tt(ii){var ti;return ii.length>0&&Ze.test(ii[0])?(ii.shift(),ti=y(ii,Ke).trim(),ii.shift()):ti=y(ii,x),ti}var rt="input, textarea, select";function nt(ii,ti,ei){var ni=[],ri=Ye(ti);do{y(ri,Je);var si=ri.length,ai=y(ri,/[,\[\s]/);if(ai!=="")if(ai==="every"){var li={trigger:"every"};y(ri,Je),li.pollInterval=d(y(ri,/[,\[\s]/)),y(ri,Je);var di=et(ii,ri,"event");di&&(li.eventFilter=di),ni.push(li)}else if(ai.indexOf("sse:")===0)ni.push({trigger:"sse",sseEvent:ai.substr(4)});else{var mi={trigger:ai},di=et(ii,ri,"event");for(di&&(mi.eventFilter=di);ri.length>0&&ri[0]!==",";){y(ri,Je);var hi=ri.shift();if(hi==="changed")mi.changed=!0;else if(hi==="once")mi.once=!0;else if(hi==="consume")mi.consume=!0;else if(hi==="delay"&&ri[0]===":")ri.shift(),mi.delay=d(y(ri,x));else if(hi==="from"&&ri[0]===":"){if(ri.shift(),Ze.test(ri[0]))var _i=tt(ri);else{var _i=y(ri,x);if(_i==="closest"||_i==="find"||_i==="next"||_i==="previous"){ri.shift();var Ei=tt(ri);Ei.length>0&&(_i+=" "+Ei)}}mi.from=_i}else hi==="target"&&ri[0]===":"?(ri.shift(),mi.target=tt(ri)):hi==="throttle"&&ri[0]===":"?(ri.shift(),mi.throttle=d(y(ri,x))):hi==="queue"&&ri[0]===":"?(ri.shift(),mi.queue=y(ri,x)):hi==="root"&&ri[0]===":"?(ri.shift(),mi[hi]=tt(ri)):hi==="threshold"&&ri[0]===":"?(ri.shift(),mi[hi]=y(ri,x)):fe(ii,"htmx:syntax:error",{token:ri.shift()})}ni.push(mi)}ri.length===si&&fe(ii,"htmx:syntax:error",{token:ri.shift()}),y(ri,Je)}while(ri[0]===","&&ri.shift());return ei&&(ei[ti]=ni),ni}function it(ii){var ti=te(ii,"hx-trigger"),ei=[];if(ti){var ni=Q.config.triggerSpecsCache;ei=ni&&ni[ti]||nt(ii,ti,ni)}return ei.length>0?ei:h(ii,"form")?[{trigger:"submit"}]:h(ii,'input[type="button"], input[type="submit"]')?[{trigger:"click"}]:h(ii,rt)?[{trigger:"change"}]:[{trigger:"click"}]}function at(ii){ae(ii).cancelled=!0}function ot(ii,ti,ei){var ni=ae(ii);ni.timeout=setTimeout(function(){se(ii)&&ni.cancelled!==!0&&(ct(ei,ii,Wt("hx:poll:trigger",{triggerSpec:ei,target:ii}))||ti(ii),ot(ii,ti,ei))},ei.pollInterval)}function st(ii){return location.hostname===ii.hostname&&ee(ii,"href")&&ee(ii,"href").indexOf("#")!==0}function lt(ii,ti,ei){if(ii.tagName==="A"&&st(ii)&&(ii.target===""||ii.target==="_self")||ii.tagName==="FORM"){ti.boosted=!0;var ni,ri;if(ii.tagName==="A")ni="get",ri=ee(ii,"href");else{var si=ee(ii,"method");ni=si?si.toLowerCase():"get",ri=ee(ii,"action")}ei.forEach(function(ai){ht(ii,function(li,di){if(v(li,Q.config.disableSelector)){m(li);return}he(ni,ri,li,di)},ti,ai,!0)})}}function ut(ii,ti){return!!((ii.type==="submit"||ii.type==="click")&&(ti.tagName==="FORM"||h(ti,'input[type="submit"], button')&&v(ti,"form")!==null||ti.tagName==="A"&&ti.href&&(ti.getAttribute("href")==="#"||ti.getAttribute("href").indexOf("#")!==0)))}function ft(ii,ti){return ae(ii).boosted&&ii.tagName==="A"&&ti.type==="click"&&(ti.ctrlKey||ti.metaKey)}function ct(ii,ti,ei){var ni=ii.eventFilter;if(ni)try{return ni.call(ti,ei)!==!0}catch(ri){return fe(re().body,"htmx:eventFilter:error",{error:ri,source:ni.source}),!0}return!1}function ht(ii,ti,ei,ni,ri){var si=ae(ii),ai;ni.from?ai=Z(ii,ni.from):ai=[ii],ni.changed&&ai.forEach(function(li){var di=ae(li);di.lastValue=li.value}),oe(ai,function(li){var di=function(mi){if(!se(ii)){li.removeEventListener(ni.trigger,di);return}if(!ft(ii,mi)&&((ri||ut(mi,ii))&&mi.preventDefault(),!ct(ni,ii,mi))){var hi=ae(mi);if(hi.triggerSpec=ni,hi.handledFor==null&&(hi.handledFor=[]),hi.handledFor.indexOf(ii)<0){if(hi.handledFor.push(ii),ni.consume&&mi.stopPropagation(),ni.target&&mi.target&&!h(mi.target,ni.target))return;if(ni.once){if(si.triggeredOnce)return;si.triggeredOnce=!0}if(ni.changed){var _i=ae(li);if(_i.lastValue===li.value)return;_i.lastValue=li.value}if(si.delayed&&clearTimeout(si.delayed),si.throttle)return;ni.throttle>0?si.throttle||(ti(ii,mi),si.throttle=setTimeout(function(){si.throttle=null},ni.throttle)):ni.delay>0?si.delayed=setTimeout(function(){ti(ii,mi)},ni.delay):(ce(ii,"htmx:trigger"),ti(ii,mi))}}};ei.listenerInfos==null&&(ei.listenerInfos=[]),ei.listenerInfos.push({trigger:ni.trigger,listener:di,on:li}),li.addEventListener(ni.trigger,di)})}var vt=!1,dt=null;function gt(){dt||(dt=function(){vt=!0},window.addEventListener("scroll",dt),setInterval(function(){vt&&(vt=!1,oe(re().querySelectorAll("[hx-trigger='revealed'],[data-hx-trigger='revealed']"),function(ii){pt(ii)}))},200))}function pt(ii){if(!o(ii,"data-hx-revealed")&&X(ii)){ii.setAttribute("data-hx-revealed","true");var ti=ae(ii);ti.initHash?ce(ii,"revealed"):ii.addEventListener("htmx:afterProcessNode",function(ei){ce(ii,"revealed")},{once:!0})}}function mt(ii,ti,ei){for(var ni=D(ei),ri=0;ri=0){var ai=wt(ei);setTimeout(function(){xt(ii,ti,ei+1)},ai)}},ri.onopen=function(si){ei=0},ae(ii).webSocket=ri,ri.addEventListener("message",function(si){if(!yt(ii)){var ai=si.data;R(ii,function(Ei){ai=Ei.transformResponse(ai,null,ii)});for(var li=T(ii),di=l(ai),mi=M(di.children),hi=0;hi0){ce(ii,"htmx:validation:halted",ai);return}ni.send(JSON.stringify(hi)),ut(ei,ii)&&ei.preventDefault()}):fe(ii,"htmx:noWebSocketSourceError")}function wt(ii){var ti=Q.config.wsReconnectDelay;if(typeof ti=="function")return ti(ii);if(ti==="full-jitter"){var ei=Math.min(ii,6),ni=1e3*Math.pow(2,ei);return ni*Math.random()}b('htmx.config.wsReconnectDelay must either be a function or the string "full-jitter"')}function St(ii,ti,ei){for(var ni=D(ei),ri=0;ri0?setTimeout(ri,ni):ri()}function Ht(ii,ti,ei){var ni=!1;return oe(w,function(ri){if(o(ii,"hx-"+ri)){var si=te(ii,"hx-"+ri);ni=!0,ti.path=si,ti.verb=ri,ei.forEach(function(ai){Lt(ii,ai,ti,function(li,di){if(v(li,Q.config.disableSelector)){m(li);return}he(ri,si,li,di)})})}}),ni}function Lt(ii,ti,ei,ni){if(ti.sseEvent)Rt(ii,ni,ti.sseEvent);else if(ti.trigger==="revealed")gt(),ht(ii,ni,ei,ti),pt(ii);else if(ti.trigger==="intersect"){var ri={};ti.root&&(ri.root=ue(ii,ti.root)),ti.threshold&&(ri.threshold=parseFloat(ti.threshold));var si=new IntersectionObserver(function(ai){for(var li=0;li0?(ei.polling=!0,ot(ii,ni,ti)):ht(ii,ni,ei,ti)}function At(ii){if(!ii.htmxExecuted&&Q.config.allowScriptTags&&(ii.type==="text/javascript"||ii.type==="module"||ii.type==="")){var ti=re().createElement("script");oe(ii.attributes,function(ni){ti.setAttribute(ni.name,ni.value)}),ti.textContent=ii.textContent,ti.async=!1,Q.config.inlineScriptNonce&&(ti.nonce=Q.config.inlineScriptNonce);var ei=ii.parentElement;try{ei.insertBefore(ti,ii)}catch(ni){b(ni)}finally{ii.parentElement&&ii.parentElement.removeChild(ii)}}}function Nt(ii){h(ii,"script")&&At(ii),oe(f(ii,"script"),function(ti){At(ti)})}function It(ii){var ti=ii.attributes;if(!ti)return!1;for(var ei=0;ei0;){var ai=ni.shift(),li=ai.match(/^\s*([a-zA-Z:\-\.]+:)(.*)/);si===0&&li?(ai.split(":"),ri=li[1].slice(0,-1),ei[ri]=li[2]):ei[ri]+=ai,si+=Bt(ai)}for(var di in ei)Ft(ii,di,ei[di])}}function jt(ii){Ae(ii);for(var ti=0;tiQ.config.historyCacheSize;)ri.shift();for(;ri.length>0;)try{localStorage.setItem("htmx-history-cache",JSON.stringify(ri));break}catch(li){fe(re().body,"htmx:historyCacheError",{cause:li,cache:ri}),ri.shift()}}}function Yt(ii){if(!U())return null;ii=B(ii);for(var ti=E(localStorage.getItem("htmx-history-cache"))||[],ei=0;ei=200&&this.status<400){ce(re().body,"htmx:historyCacheMissLoad",ei);var ni=l(this.response);ni=ni.querySelector("[hx-history-elt],[data-hx-history-elt]")||ni;var ri=Zt(),si=T(ri),ai=Ve(this.response);if(ai){var li=C("title");li?li.innerHTML=ai:window.document.title=ai}Ue(ri,ni,si),nr(si.tasks),Jt=ii,ce(re().body,"htmx:historyRestore",{path:ii,cacheMiss:!0,serverResponse:this.response})}else fe(re().body,"htmx:historyCacheMissLoadError",ei)},ti.send()}function ar(ii){er(),ii=ii||location.pathname+location.search;var ti=Yt(ii);if(ti){var ei=l(ti.content),ni=Zt(),ri=T(ni);Ue(ni,ei,ri),nr(ri.tasks),document.title=ti.title,setTimeout(function(){window.scrollTo(0,ti.scroll)},0),Jt=ii,ce(re().body,"htmx:historyRestore",{path:ii,item:ti})}else Q.config.refreshOnHistoryMiss?window.location.reload(!0):ir(ii)}function or(ii){var ti=me(ii,"hx-indicator");return ti==null&&(ti=[ii]),oe(ti,function(ei){var ni=ae(ei);ni.requestCount=(ni.requestCount||0)+1,ei.classList.add.call(ei.classList,Q.config.requestClass)}),ti}function sr(ii){var ti=me(ii,"hx-disabled-elt");return ti==null&&(ti=[]),oe(ti,function(ei){var ni=ae(ei);ni.requestCount=(ni.requestCount||0)+1,ei.setAttribute("disabled","")}),ti}function lr(ii,ti){oe(ii,function(ei){var ni=ae(ei);ni.requestCount=(ni.requestCount||0)-1,ni.requestCount===0&&ei.classList.remove.call(ei.classList,Q.config.requestClass)}),oe(ti,function(ei){var ni=ae(ei);ni.requestCount=(ni.requestCount||0)-1,ni.requestCount===0&&ei.removeAttribute("disabled")})}function ur(ii,ti){for(var ei=0;ei=0}function wr(ii,ti){var ei=ti||ne(ii,"hx-swap"),ni={swapStyle:ae(ii).boosted?"innerHTML":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&ae(ii).boosted&&!br(ii)&&(ni.show="top"),ei){var ri=D(ei);if(ri.length>0)for(var si=0;si0?di.join(":"):null;ni.scroll=mi,ni.scrollTarget=hi}else if(ai.indexOf("show:")===0){var _i=ai.substr(5),di=_i.split(":"),Ei=di.pop(),hi=di.length>0?di.join(":"):null;ni.show=Ei,ni.showTarget=hi}else if(ai.indexOf("focus-scroll:")===0){var Ai=ai.substr(13);ni.focusScroll=Ai=="true"}else si==0?ni.swapStyle=ai:b("Unknown modifier in hx-swap: "+ai)}}return ni}function Sr(ii){return ne(ii,"hx-encoding")==="multipart/form-data"||h(ii,"form")&&ee(ii,"enctype")==="multipart/form-data"}function Er(ii,ti,ei){var ni=null;return R(ti,function(ri){ni==null&&(ni=ri.encodeParameters(ii,ei,ti))}),ni!=null?ni:Sr(ti)?mr(ei):pr(ei)}function T(ii){return{tasks:[],elts:[ii]}}function Cr(ii,ti){var ei=ii[0],ni=ii[ii.length-1];if(ti.scroll){var ri=null;ti.scrollTarget&&(ri=ue(ei,ti.scrollTarget)),ti.scroll==="top"&&(ei||ri)&&(ri=ri||ei,ri.scrollTop=0),ti.scroll==="bottom"&&(ni||ri)&&(ri=ri||ni,ri.scrollTop=ri.scrollHeight)}if(ti.show){var ri=null;if(ti.showTarget){var si=ti.showTarget;ti.showTarget==="window"&&(si="body"),ri=ue(ei,si)}ti.show==="top"&&(ei||ri)&&(ri=ri||ei,ri.scrollIntoView({block:"start",behavior:Q.config.scrollBehavior})),ti.show==="bottom"&&(ni||ri)&&(ri=ri||ni,ri.scrollIntoView({block:"end",behavior:Q.config.scrollBehavior}))}}function Rr(ii,ti,ei,ni){if(ni==null&&(ni={}),ii==null)return ni;var ri=te(ii,ti);if(ri){var si=ri.trim(),ai=ei;if(si==="unset")return null;si.indexOf("javascript:")===0?(si=si.substr(11),ai=!0):si.indexOf("js:")===0&&(si=si.substr(3),ai=!0),si.indexOf("{")!==0&&(si="{"+si+"}");var li;ai?li=Tr(ii,function(){return Function("return ("+si+")")()},{}):li=E(si);for(var di in li)li.hasOwnProperty(di)&&ni[di]==null&&(ni[di]=li[di])}return Rr(u(ii),ti,ei,ni)}function Tr(ii,ti,ei){return Q.config.allowEval?ti():(fe(ii,"htmx:evalDisallowedError"),ei)}function Or(ii,ti){return Rr(ii,"hx-vars",!0,ti)}function qr(ii,ti){return Rr(ii,"hx-vals",!1,ti)}function Hr(ii){return le(Or(ii),qr(ii))}function Lr(ii,ti,ei){if(ei!==null)try{ii.setRequestHeader(ti,ei)}catch(ni){ii.setRequestHeader(ti,encodeURIComponent(ei)),ii.setRequestHeader(ti+"-URI-AutoEncoded","true")}}function Ar(ii){if(ii.responseURL&&typeof URL!="undefined")try{var ti=new URL(ii.responseURL);return ti.pathname+ti.search}catch(ei){fe(re().body,"htmx:badResponseUrl",{url:ii.responseURL})}}function O(ii,ti){return ti.test(ii.getAllResponseHeaders())}function Nr(ii,ti,ei){return ii=ii.toLowerCase(),ei?ei instanceof Element||I(ei,"String")?he(ii,ti,null,null,{targetOverride:p(ei),returnPromise:!0}):he(ii,ti,p(ei.source),ei.event,{handler:ei.handler,headers:ei.headers,values:ei.values,targetOverride:p(ei.target),swapOverride:ei.swap,select:ei.select,returnPromise:!0}):he(ii,ti,null,null,{returnPromise:!0})}function Ir(ii){for(var ti=[];ii;)ti.push(ii),ii=ii.parentElement;return ti}function kr(ii,ti,ei){var ni,ri;if(typeof URL=="function"){ri=new URL(ti,document.location.href);var si=document.location.origin;ni=si===ri.origin}else ri=ti,ni=g(ti,document.location.origin);return Q.config.selfRequestsOnly&&!ni?!1:ce(ii,"htmx:validateUrl",le({url:ri,sameHost:ni},ei))}function he(ii,ti,ei,ni,ri,si){var ai=null,li=null;if(ri=ri!=null?ri:{},ri.returnPromise&&typeof Promise!="undefined")var di=new Promise(function(qn,yn){ai=qn,li=yn});ei==null&&(ei=re().body);var mi=ri.handler||Mr,hi=ri.select||null;if(!se(ei))return ie(ai),di;var _i=ri.targetOverride||ye(ei);if(_i==null||_i==pe)return fe(ei,"htmx:targetError",{target:te(ei,"hx-target")}),ie(li),di;var Ei=ae(ei),Ai=Ei.lastButtonClicked;if(Ai){var ki=ee(Ai,"formaction");ki!=null&&(ti=ki);var Ti=ee(Ai,"formmethod");Ti!=null&&Ti.toLowerCase()!=="dialog"&&(ii=Ti)}var Fi=ne(ei,"hx-confirm");if(si===void 0){var en=function(qn){return he(ii,ti,ei,ni,ri,!!qn)},rn={target:_i,elt:ei,path:ti,verb:ii,triggeringEvent:ni,etc:ri,issueRequest:en,question:Fi};if(ce(ei,"htmx:confirm",rn)===!1)return ie(ai),di}var ln=ei,Yi=ne(ei,"hx-sync"),on=null,an=!1;if(Yi){var bn=Yi.split(":"),hn=bn[0].trim();if(hn==="this"?ln=xe(ei,"hx-sync"):ln=ue(ei,hn),Yi=(bn[1]||"drop").trim(),Ei=ae(ln),Yi==="drop"&&Ei.xhr&&Ei.abortable!==!0)return ie(ai),di;if(Yi==="abort"){if(Ei.xhr)return ie(ai),di;an=!0}else if(Yi==="replace")ce(ln,"htmx:abort");else if(Yi.indexOf("queue")===0){var pn=Yi.split(" ");on=(pn[1]||"last").trim()}}if(Ei.xhr)if(Ei.abortable)ce(ln,"htmx:abort");else{if(on==null){if(ni){var gn=ae(ni);gn&&gn.triggerSpec&&gn.triggerSpec.queue&&(on=gn.triggerSpec.queue)}on==null&&(on="last")}return Ei.queuedRequests==null&&(Ei.queuedRequests=[]),on==="first"&&Ei.queuedRequests.length===0?Ei.queuedRequests.push(function(){he(ii,ti,ei,ni,ri)}):on==="all"?Ei.queuedRequests.push(function(){he(ii,ti,ei,ni,ri)}):on==="last"&&(Ei.queuedRequests=[],Ei.queuedRequests.push(function(){he(ii,ti,ei,ni,ri)})),ie(ai),di}var un=new XMLHttpRequest;Ei.xhr=un,Ei.abortable=an;var vn=function(){if(Ei.xhr=null,Ei.abortable=!1,Ei.queuedRequests!=null&&Ei.queuedRequests.length>0){var qn=Ei.queuedRequests.shift();qn()}},Tn=ne(ei,"hx-prompt");if(Tn){var Ni=prompt(Tn);if(Ni===null||!ce(ei,"htmx:prompt",{prompt:Ni,target:_i}))return ie(ai),vn(),di}if(Fi&&!si&&!confirm(Fi))return ie(ai),vn(),di;var Hi=xr(ei,_i,Ni);ii!=="get"&&!Sr(ei)&&(Hi["Content-Type"]="application/x-www-form-urlencoded"),ri.headers&&(Hi=le(Hi,ri.headers));var Pi=dr(ei,ii),$i=Pi.errors,mn=Pi.values;ri.values&&(mn=le(mn,ri.values));var tn=Hr(ei),zi=le(mn,tn),Li=yr(zi,ei);Q.config.getCacheBusterParam&&ii==="get"&&(Li["org.htmx.cache-buster"]=ee(_i,"id")||"true"),(ti==null||ti==="")&&(ti=re().location.href);var ji=Rr(ei,"hx-request"),Ji=ae(ei).boosted,Vi=Q.config.methodsThatUseUrlParams.indexOf(ii)>=0,Ii={boosted:Ji,useUrlParams:Vi,parameters:Li,unfilteredParameters:zi,headers:Hi,target:_i,verb:ii,errors:$i,withCredentials:ri.credentials||ji.credentials||Q.config.withCredentials,timeout:ri.timeout||ji.timeout||Q.config.timeout,path:ti,triggeringEvent:ni};if(!ce(ei,"htmx:configRequest",Ii))return ie(ai),vn(),di;if(ti=Ii.path,ii=Ii.verb,Hi=Ii.headers,Li=Ii.parameters,$i=Ii.errors,Vi=Ii.useUrlParams,$i&&$i.length>0)return ce(ei,"htmx:validation:halted",Ii),ie(ai),vn(),di;var Sn=ti.split("#"),Yn=Sn[0],Fn=Sn[1],Bn=ti;if(Vi){Bn=Yn;var Gn=Object.keys(Li).length!==0;Gn&&(Bn.indexOf("?")<0?Bn+="?":Bn+="&",Bn+=pr(Li),Fn&&(Bn+="#"+Fn))}if(!kr(ei,Bn,Ii))return fe(ei,"htmx:invalidPath",Ii),ie(li),di;if(un.open(ii.toUpperCase(),Bn,!0),un.overrideMimeType("text/html"),un.withCredentials=Ii.withCredentials,un.timeout=Ii.timeout,!ji.noHeaders){for(var Qn in Hi)if(Hi.hasOwnProperty(Qn)){var Ts=Hi[Qn];Lr(un,Qn,Ts)}}var zn={xhr:un,target:_i,requestConfig:Ii,etc:ri,boosted:Ji,select:hi,pathInfo:{requestPath:ti,finalRequestPath:Bn,anchor:Fn}};if(un.onload=function(){try{var qn=Ir(ei);if(zn.pathInfo.responsePath=Ar(un),mi(ei,zn),lr(hs,ms),ce(ei,"htmx:afterRequest",zn),ce(ei,"htmx:afterOnLoad",zn),!se(ei)){for(var yn=null;qn.length>0&&yn==null;){var Kr=qn.shift();se(Kr)&&(yn=Kr)}yn&&(ce(yn,"htmx:afterRequest",zn),ce(yn,"htmx:afterOnLoad",zn))}ie(ai),vn()}catch(as){throw fe(ei,"htmx:onLoadError",le({error:as},zn)),as}},un.onerror=function(){lr(hs,ms),fe(ei,"htmx:afterRequest",zn),fe(ei,"htmx:sendError",zn),ie(li),vn()},un.onabort=function(){lr(hs,ms),fe(ei,"htmx:afterRequest",zn),fe(ei,"htmx:sendAbort",zn),ie(li),vn()},un.ontimeout=function(){lr(hs,ms),fe(ei,"htmx:afterRequest",zn),fe(ei,"htmx:timeout",zn),ie(li),vn()},!ce(ei,"htmx:beforeRequest",zn))return ie(ai),vn(),di;var hs=or(ei),ms=sr(ei);oe(["loadstart","loadend","progress","abort"],function(qn){oe([un,un.upload],function(yn){yn.addEventListener(qn,function(Kr){ce(ei,"htmx:xhr:"+qn,{lengthComputable:Kr.lengthComputable,loaded:Kr.loaded,total:Kr.total})})})}),ce(ei,"htmx:beforeSend",zn);var qs=Vi?null:Er(un,ei,Li);return un.send(qs),di}function Pr(ii,ti){var ei=ti.xhr,ni=null,ri=null;if(O(ei,/HX-Push:/i)?(ni=ei.getResponseHeader("HX-Push"),ri="push"):O(ei,/HX-Push-Url:/i)?(ni=ei.getResponseHeader("HX-Push-Url"),ri="push"):O(ei,/HX-Replace-Url:/i)&&(ni=ei.getResponseHeader("HX-Replace-Url"),ri="replace"),ni)return ni==="false"?{}:{type:ri,path:ni};var si=ti.pathInfo.finalRequestPath,ai=ti.pathInfo.responsePath,li=ne(ii,"hx-push-url"),di=ne(ii,"hx-replace-url"),mi=ae(ii).boosted,hi=null,_i=null;return li?(hi="push",_i=li):di?(hi="replace",_i=di):mi&&(hi="push",_i=ai||si),_i?_i==="false"?{}:(_i==="true"&&(_i=ai||si),ti.pathInfo.anchor&&_i.indexOf("#")===-1&&(_i=_i+"#"+ti.pathInfo.anchor),{type:hi,path:_i}):{}}function Mr(ii,ti){var ei=ti.xhr,ni=ti.target,ri=ti.etc,si=ti.requestConfig,ai=ti.select;if(ce(ii,"htmx:beforeOnLoad",ti)){if(O(ei,/HX-Trigger:/i)&&_e(ei,"HX-Trigger",ii),O(ei,/HX-Location:/i)){er();var li=ei.getResponseHeader("HX-Location"),di;li.indexOf("{")===0&&(di=E(li),li=di.path,delete di.path),Nr("GET",li,di).then(function(){tr(li)});return}var mi=O(ei,/HX-Refresh:/i)&&ei.getResponseHeader("HX-Refresh")==="true";if(O(ei,/HX-Redirect:/i)){location.href=ei.getResponseHeader("HX-Redirect"),mi&&location.reload();return}if(mi){location.reload();return}O(ei,/HX-Retarget:/i)&&(ei.getResponseHeader("HX-Retarget")==="this"?ti.target=ii:ti.target=ue(ii,ei.getResponseHeader("HX-Retarget")));var hi=Pr(ii,ti),_i=ei.status>=200&&ei.status<400&&ei.status!==204,Ei=ei.response,Ai=ei.status>=400,ki=Q.config.ignoreTitle,Ti=le({shouldSwap:_i,serverResponse:Ei,isError:Ai,ignoreTitle:ki},ti);if(ce(ni,"htmx:beforeSwap",Ti)){if(ni=Ti.target,Ei=Ti.serverResponse,Ai=Ti.isError,ki=Ti.ignoreTitle,ti.target=ni,ti.failed=Ai,ti.successful=!Ai,Ti.shouldSwap){ei.status===286&&at(ii),R(ii,function(hn){Ei=hn.transformResponse(Ei,ei,ii)}),hi.type&&er();var Fi=ri.swapOverride;O(ei,/HX-Reswap:/i)&&(Fi=ei.getResponseHeader("HX-Reswap"));var di=wr(ii,Fi);di.hasOwnProperty("ignoreTitle")&&(ki=di.ignoreTitle),ni.classList.add(Q.config.swappingClass);var en=null,rn=null,ln=function(){try{var hn=document.activeElement,pn={};try{pn={elt:hn,start:hn?hn.selectionStart:null,end:hn?hn.selectionEnd:null}}catch(Pi){}var gn;ai&&(gn=ai),O(ei,/HX-Reselect:/i)&&(gn=ei.getResponseHeader("HX-Reselect")),hi.type&&(ce(re().body,"htmx:beforeHistoryUpdate",le({history:hi},ti)),hi.type==="push"?(tr(hi.path),ce(re().body,"htmx:pushedIntoHistory",{path:hi.path})):(rr(hi.path),ce(re().body,"htmx:replacedInHistory",{path:hi.path})));var un=T(ni);if(je(di.swapStyle,ni,ii,Ei,un,gn),pn.elt&&!se(pn.elt)&&ee(pn.elt,"id")){var vn=document.getElementById(ee(pn.elt,"id")),Tn={preventScroll:di.focusScroll!==void 0?!di.focusScroll:!Q.config.defaultFocusScroll};if(vn){if(pn.start&&vn.setSelectionRange)try{vn.setSelectionRange(pn.start,pn.end)}catch(Pi){}vn.focus(Tn)}}if(ni.classList.remove(Q.config.swappingClass),oe(un.elts,function(Pi){Pi.classList&&Pi.classList.add(Q.config.settlingClass),ce(Pi,"htmx:afterSwap",ti)}),O(ei,/HX-Trigger-After-Swap:/i)){var Ni=ii;se(ii)||(Ni=re().body),_e(ei,"HX-Trigger-After-Swap",Ni)}var Hi=function(){if(oe(un.tasks,function(tn){tn.call()}),oe(un.elts,function(tn){tn.classList&&tn.classList.remove(Q.config.settlingClass),ce(tn,"htmx:afterSettle",ti)}),ti.pathInfo.anchor){var Pi=re().getElementById(ti.pathInfo.anchor);Pi&&Pi.scrollIntoView({block:"start",behavior:"auto"})}if(un.title&&!ki){var $i=C("title");$i?$i.innerHTML=un.title:window.document.title=un.title}if(Cr(un.elts,di),O(ei,/HX-Trigger-After-Settle:/i)){var mn=ii;se(ii)||(mn=re().body),_e(ei,"HX-Trigger-After-Settle",mn)}ie(en)};di.settleDelay>0?setTimeout(Hi,di.settleDelay):Hi()}catch(Pi){throw fe(ii,"htmx:swapError",ti),ie(rn),Pi}},Yi=Q.config.globalViewTransitions;if(di.hasOwnProperty("transition")&&(Yi=di.transition),Yi&&ce(ii,"htmx:beforeTransition",ti)&&typeof Promise!="undefined"&&document.startViewTransition){var on=new Promise(function(hn,pn){en=hn,rn=pn}),an=ln;ln=function(){document.startViewTransition(function(){return an(),on})}}di.swapDelay>0?setTimeout(ln,di.swapDelay):ln()}Ai&&fe(ii,"htmx:responseError",le({error:"Response Status Error Code "+ei.status+" from "+ti.pathInfo.requestPath},ti))}}}var Xr={};function Dr(){return{init:function(ii){return null},onEvent:function(ii,ti){return!0},transformResponse:function(ii,ti,ei){return ii},isInlineSwap:function(ii){return!1},handleSwap:function(ii,ti,ei,ni){return!1},encodeParameters:function(ii,ti,ei){return null}}}function Ur(ii,ti){ti.init&&ti.init(r),Xr[ii]=le(Dr(),ti)}function Br(ii){delete Xr[ii]}function Fr(ii,ti,ei){if(ii==null)return ti;ti==null&&(ti=[]),ei==null&&(ei=[]);var ni=te(ii,"hx-ext");return ni&&oe(ni.split(","),function(ri){if(ri=ri.replace(/ /g,""),ri.slice(0,7)=="ignore:"){ei.push(ri.slice(7));return}if(ei.indexOf(ri)<0){var si=Xr[ri];si&&ti.indexOf(si)<0&&ti.push(si)}}),Fr(u(ii),ti,ei)}var Vr=!1;re().addEventListener("DOMContentLoaded",function(){Vr=!0});function jr(ii){Vr||re().readyState==="complete"?ii():re().addEventListener("DOMContentLoaded",ii)}function _r(){Q.config.includeIndicatorStyles!==!1&&re().head.insertAdjacentHTML("beforeend","")}function zr(){var ii=re().querySelector('meta[name="htmx-config"]');return ii?E(ii.content):null}function $r(){var ii=zr();ii&&(Q.config=le(Q.config,ii))}return jr(function(){$r(),_r();var ii=re().body;zt(ii);var ti=re().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");ii.addEventListener("htmx:abort",function(ni){var ri=ni.target,si=ae(ri);si&&si.xhr&&si.xhr.abort()});let ei=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(ni){ni.state&&ni.state.htmx?(ar(),oe(ti,function(ri){ce(ri,"htmx:restored",{document:re(),triggerEvent:ce})})):ei&&ei(ni)},setTimeout(function(){ce(ii,"htmx:load",{}),ii=null},0)}),Q}()})});var El=Ya((Bc,zc)=>{(function(ii,ti){typeof Bc=="object"&&typeof zc!="undefined"?zc.exports=ti():typeof define=="function"&&define.amd?define(ti):(ii=typeof globalThis!="undefined"?globalThis:ii||self,ii.TomSelect=ti())})(Bc,function(){"use strict";function ii(fi,oi){fi.split(/\s+/).forEach(ci=>{oi(ci)})}class ti{constructor(){this._events=void 0,this._events={}}on(oi,ci){ii(oi,ui=>{let gi=this._events[ui]||[];gi.push(ci),this._events[ui]=gi})}off(oi,ci){var ui=arguments.length;if(ui===0){this._events={};return}ii(oi,gi=>{if(ui===1){delete this._events[gi];return}let bi=this._events[gi];bi!==void 0&&(bi.splice(bi.indexOf(ci),1),this._events[gi]=bi)})}trigger(oi,...ci){var ui=this;ii(oi,gi=>{let bi=ui._events[gi];bi!==void 0&&bi.forEach(yi=>{yi.apply(ui,ci)})})}}function ei(fi){return fi.plugins={},class extends fi{constructor(...oi){super(...oi),this.plugins={names:[],settings:{},requested:{},loaded:{}}}static define(oi,ci){fi.plugins[oi]={name:oi,fn:ci}}initializePlugins(oi){var ci,ui;let gi=this,bi=[];if(Array.isArray(oi))oi.forEach(yi=>{typeof yi=="string"?bi.push(yi):(gi.plugins.settings[yi.name]=yi.options,bi.push(yi.name))});else if(oi)for(ci in oi)oi.hasOwnProperty(ci)&&(gi.plugins.settings[ci]=oi[ci],bi.push(ci));for(;ui=bi.shift();)gi.require(ui)}loadPlugin(oi){var ci=this,ui=ci.plugins,gi=fi.plugins[oi];if(!fi.plugins.hasOwnProperty(oi))throw new Error('Unable to find "'+oi+'" plugin');ui.requested[oi]=!0,ui.loaded[oi]=gi.fn.apply(ci,[ci.plugins.settings[oi]||{}]),ui.names.push(oi)}require(oi){var ci=this,ui=ci.plugins;if(!ci.plugins.loaded.hasOwnProperty(oi)){if(ui.requested[oi])throw new Error('Plugin has circular dependency ("'+oi+'")');ci.loadPlugin(oi)}return ui.loaded[oi]}}}let ni=fi=>(fi=fi.filter(Boolean),fi.length<2?fi[0]||"":di(fi)==1?"["+fi.join("")+"]":"(?:"+fi.join("|")+")"),ri=fi=>{if(!ai(fi))return fi.join("");let oi="",ci=0,ui=()=>{ci>1&&(oi+="{"+ci+"}")};return fi.forEach((gi,bi)=>{if(gi===fi[bi-1]){ci++;return}ui(),oi+=gi,ci=1}),ui(),oi},si=fi=>{let oi=hi(fi);return ni(oi)},ai=fi=>new Set(fi).size!==fi.length,li=fi=>(fi+"").replace(/([\$\(\)\*\+\.\?\[\]\^\{\|\}\\])/gu,"\\$1"),di=fi=>fi.reduce((oi,ci)=>Math.max(oi,mi(ci)),0),mi=fi=>hi(fi).length,hi=fi=>Array.from(fi);let _i=fi=>{if(fi.length===1)return[[fi]];let oi=[],ci=fi.substring(1);return _i(ci).forEach(function(gi){let bi=gi.slice(0);bi[0]=fi.charAt(0)+bi[0],oi.push(bi),bi=gi.slice(0),bi.unshift(fi.charAt(0)),oi.push(bi)}),oi};let Ei=[[0,65535]],Ai="[\u0300-\u036F\xB7\u02BE\u02BC]",ki,Ti,Fi=3,en={},rn={"/":"\u2044\u2215",0:"\u07C0",a:"\u2C65\u0250\u0251",aa:"\uA733",ae:"\xE6\u01FD\u01E3",ao:"\uA735",au:"\uA737",av:"\uA739\uA73B",ay:"\uA73D",b:"\u0180\u0253\u0183",c:"\uA73F\u0188\u023C\u2184",d:"\u0111\u0257\u0256\u1D05\u018C\uABB7\u0501\u0266",e:"\u025B\u01DD\u1D07\u0247",f:"\uA77C\u0192",g:"\u01E5\u0260\uA7A1\u1D79\uA77F\u0262",h:"\u0127\u2C68\u2C76\u0265",i:"\u0268\u0131",j:"\u0249\u0237",k:"\u0199\u2C6A\uA741\uA743\uA745\uA7A3",l:"\u0142\u019A\u026B\u2C61\uA749\uA747\uA781\u026D",m:"\u0271\u026F\u03FB",n:"\uA7A5\u019E\u0272\uA791\u1D0E\u043B\u0509",o:"\xF8\u01FF\u0254\u0275\uA74B\uA74D\u1D11",oe:"\u0153",oi:"\u01A3",oo:"\uA74F",ou:"\u0223",p:"\u01A5\u1D7D\uA751\uA753\uA755\u03C1",q:"\uA757\uA759\u024B",r:"\u024D\u027D\uA75B\uA7A7\uA783",s:"\xDF\u023F\uA7A9\uA785\u0282",t:"\u0167\u01AD\u0288\u2C66\uA787",th:"\xFE",tz:"\uA729",u:"\u0289",v:"\u028B\uA75F\u028C",vy:"\uA761",w:"\u2C73",y:"\u01B4\u024F\u1EFF",z:"\u01B6\u0225\u0240\u2C6C\uA763",hv:"\u0195"};for(let fi in rn){let oi=rn[fi]||"";for(let ci=0;ci{ki===void 0&&(ki=gn(fi||Ei))},on=(fi,oi="NFKD")=>fi.normalize(oi),an=fi=>hi(fi).reduce((oi,ci)=>oi+bn(ci),""),bn=fi=>(fi=on(fi).toLowerCase().replace(ln,oi=>en[oi]||""),on(fi,"NFC"));function*hn(fi){for(let[oi,ci]of fi)for(let ui=oi;ui<=ci;ui++){let gi=String.fromCharCode(ui),bi=an(gi);bi!=gi.toLowerCase()&&(bi.length>Fi||bi.length!=0&&(yield{folded:bi,composed:gi,code_point:ui}))}}let pn=fi=>{let oi={},ci=(ui,gi)=>{let bi=oi[ui]||new Set,yi=new RegExp("^"+si(bi)+"$","iu");gi.match(yi)||(bi.add(li(gi)),oi[ui]=bi)};for(let ui of hn(fi))ci(ui.folded,ui.folded),ci(ui.folded,ui.composed);return oi},gn=fi=>{let oi=pn(fi),ci={},ui=[];for(let bi in oi){let yi=oi[bi];yi&&(ci[bi]=si(yi)),bi.length>1&&ui.push(li(bi))}ui.sort((bi,yi)=>yi.length-bi.length);let gi=ni(ui);return Ti=new RegExp("^"+gi,"u"),ci},un=(fi,oi=1)=>{let ci=0;return fi=fi.map(ui=>(ki[ui]&&(ci+=ui.length),ki[ui]||ui)),ci>=oi?ri(fi):""},vn=(fi,oi=1)=>(oi=Math.max(oi,fi.length-1),ni(_i(fi).map(ci=>un(ci,oi)))),Tn=(fi,oi=!0)=>{let ci=fi.length>1?1:0;return ni(fi.map(ui=>{let gi=[],bi=oi?ui.length():ui.length()-1;for(let yi=0;yi{for(let ci of oi){if(ci.start!=fi.start||ci.end!=fi.end||ci.substrs.join("")!==fi.substrs.join(""))continue;let ui=fi.parts,gi=yi=>{for(let Ci of ui){if(Ci.start===yi.start&&Ci.substr===yi.substr)return!1;if(!(yi.length==1||Ci.length==1)&&(yi.startCi.start||Ci.startyi.start))return!0}return!1};if(!(ci.parts.filter(gi).length>0))return!0}return!1};class Hi{constructor(){this.parts=[],this.substrs=[],this.start=0,this.end=0}add(oi){oi&&(this.parts.push(oi),this.substrs.push(oi.substr),this.start=Math.min(oi.start,this.start),this.end=Math.max(oi.end,this.end))}last(){return this.parts[this.parts.length-1]}length(){return this.parts.length}clone(oi,ci){let ui=new Hi,gi=JSON.parse(JSON.stringify(this.parts)),bi=gi.pop();for(let Oi of gi)ui.add(Oi);let yi=ci.substr.substring(0,oi-bi.start),Ci=yi.length;return ui.add({start:bi.start,end:bi.start+Ci,length:Ci,substr:yi}),ui}}let Pi=fi=>{Yi(),fi=an(fi);let oi="",ci=[new Hi];for(let ui=0;ui0){Oi=Oi.sort((Wi,Bi)=>Wi.length()-Bi.length());for(let Wi of Oi)Ni(Wi,ci)||ci.push(Wi);continue}if(ui>0&&Di.size==1&&!Di.has("3")){oi+=Tn(ci,!1);let Wi=new Hi,Bi=ci[0];Bi&&Wi.add(Bi.last()),ci=[Wi]}}return oi+=Tn(ci,!0),oi};let $i=(fi,oi)=>{if(fi)return fi[oi]},mn=(fi,oi)=>{if(fi){for(var ci,ui=oi.split(".");(ci=ui.shift())&&(fi=fi[ci]););return fi}},tn=(fi,oi,ci)=>{var ui,gi;return!fi||(fi=fi+"",oi.regex==null)||(gi=fi.search(oi.regex),gi===-1)?0:(ui=oi.string.length/fi.length,gi===0&&(ui+=.5),ui*ci)},zi=(fi,oi)=>{var ci=fi[oi];if(typeof ci=="function")return ci;ci&&!Array.isArray(ci)&&(fi[oi]=[ci])},Li=(fi,oi)=>{if(Array.isArray(fi))fi.forEach(oi);else for(var ci in fi)fi.hasOwnProperty(ci)&&oi(fi[ci],ci)},ji=(fi,oi)=>typeof fi=="number"&&typeof oi=="number"?fi>oi?1:fioi?1:oi>fi?-1:0);class Ji{constructor(oi,ci){this.items=void 0,this.settings=void 0,this.items=oi,this.settings=ci||{diacritics:!0}}tokenize(oi,ci,ui){if(!oi||!oi.length)return[];let gi=[],bi=oi.split(/\s+/);var yi;return ui&&(yi=new RegExp("^("+Object.keys(ui).map(li).join("|")+"):(.*)$")),bi.forEach(Ci=>{let Oi,Di=null,Wi=null;yi&&(Oi=Ci.match(yi))&&(Di=Oi[1],Ci=Oi[2]),Ci.length>0&&(this.settings.diacritics?Wi=Pi(Ci)||null:Wi=li(Ci),Wi&&ci&&(Wi="\\b"+Wi)),gi.push({string:Ci,regex:Wi?new RegExp(Wi,"iu"):null,field:Di})}),gi}getScoreFunction(oi,ci){var ui=this.prepareSearch(oi,ci);return this._getScoreFunction(ui)}_getScoreFunction(oi){let ci=oi.tokens,ui=ci.length;if(!ui)return function(){return 0};let gi=oi.options.fields,bi=oi.weights,yi=gi.length,Ci=oi.getAttrFn;if(!yi)return function(){return 1};let Oi=function(){return yi===1?function(Di,Wi){let Bi=gi[0].field;return tn(Ci(Wi,Bi),Di,bi[Bi]||1)}:function(Di,Wi){var Bi=0;if(Di.field){let Zi=Ci(Wi,Di.field);!Di.regex&&Zi?Bi+=1/yi:Bi+=tn(Zi,Di,1)}else Li(bi,(Zi,In)=>{Bi+=tn(Ci(Wi,In),Di,Zi)});return Bi/yi}}();return ui===1?function(Di){return Oi(ci[0],Di)}:oi.options.conjunction==="and"?function(Di){var Wi,Bi=0;for(let Zi of ci){if(Wi=Oi(Zi,Di),Wi<=0)return 0;Bi+=Wi}return Bi/ui}:function(Di){var Wi=0;return Li(ci,Bi=>{Wi+=Oi(Bi,Di)}),Wi/ui}}getSortFunction(oi,ci){var ui=this.prepareSearch(oi,ci);return this._getSortFunction(ui)}_getSortFunction(oi){var ci,ui=[];let gi=this,bi=oi.options,yi=!oi.query&&bi.sort_empty?bi.sort_empty:bi.sort;if(typeof yi=="function")return yi.bind(this);let Ci=function(Wi,Bi){return Wi==="$score"?Bi.score:oi.getAttrFn(gi.items[Bi.id],Wi)};if(yi)for(let Di of yi)(oi.query||Di.field!=="$score")&&ui.push(Di);if(oi.query){ci=!0;for(let Di of ui)if(Di.field==="$score"){ci=!1;break}ci&&ui.unshift({field:"$score",direction:"desc"})}else ui=ui.filter(Di=>Di.field!=="$score");return ui.length?function(Di,Wi){var Bi,Zi;for(let In of ui)if(Zi=In.field,Bi=(In.direction==="desc"?-1:1)*ji(Ci(Zi,Di),Ci(Zi,Wi)),Bi)return Bi;return 0}:null}prepareSearch(oi,ci){let ui={};var gi=Object.assign({},ci);if(zi(gi,"sort"),zi(gi,"sort_empty"),gi.fields){zi(gi,"fields");let bi=[];gi.fields.forEach(yi=>{typeof yi=="string"&&(yi={field:yi,weight:1}),bi.push(yi),ui[yi.field]="weight"in yi?yi.weight:1}),gi.fields=bi}return{options:gi,query:oi.toLowerCase().trim(),tokens:this.tokenize(oi,gi.respect_word_boundaries,ui),total:0,items:[],weights:ui,getAttrFn:gi.nesting?mn:$i}}search(oi,ci){var ui=this,gi,bi;bi=this.prepareSearch(oi,ci),ci=bi.options,oi=bi.query;let yi=ci.score||ui._getScoreFunction(bi);oi.length?Li(ui.items,(Oi,Di)=>{gi=yi(Oi),(ci.filter===!1||gi>0)&&bi.items.push({score:gi,id:Di})}):Li(ui.items,(Oi,Di)=>{bi.items.push({score:1,id:Di})});let Ci=ui._getSortFunction(bi);return Ci&&bi.items.sort(Ci),bi.total=bi.items.length,typeof ci.limit=="number"&&(bi.items=bi.items.slice(0,ci.limit)),bi}}let Vi=(fi,oi)=>{if(Array.isArray(fi))fi.forEach(oi);else for(var ci in fi)fi.hasOwnProperty(ci)&&oi(fi[ci],ci)},Ii=fi=>{if(fi.jquery)return fi[0];if(fi instanceof HTMLElement)return fi;if(Sn(fi)){var oi=document.createElement("template");return oi.innerHTML=fi.trim(),oi.content.firstChild}return document.querySelector(fi)},Sn=fi=>typeof fi=="string"&&fi.indexOf("<")>-1,Yn=fi=>fi.replace(/['"\\]/g,"\\$&"),Fn=(fi,oi)=>{var ci=document.createEvent("HTMLEvents");ci.initEvent(oi,!0,!1),fi.dispatchEvent(ci)},Bn=(fi,oi)=>{Object.assign(fi.style,oi)},Gn=(fi,...oi)=>{var ci=Ts(oi);fi=zn(fi),fi.map(ui=>{ci.map(gi=>{ui.classList.add(gi)})})},Qn=(fi,...oi)=>{var ci=Ts(oi);fi=zn(fi),fi.map(ui=>{ci.map(gi=>{ui.classList.remove(gi)})})},Ts=fi=>{var oi=[];return Vi(fi,ci=>{typeof ci=="string"&&(ci=ci.trim().split(/[\11\12\14\15\40]/)),Array.isArray(ci)&&(oi=oi.concat(ci))}),oi.filter(Boolean)},zn=fi=>(Array.isArray(fi)||(fi=[fi]),fi),hs=(fi,oi,ci)=>{if(!(ci&&!ci.contains(fi)))for(;fi&&fi.matches;){if(fi.matches(oi))return fi;fi=fi.parentNode}},ms=(fi,oi=0)=>oi>0?fi[fi.length-1]:fi[0],qs=fi=>Object.keys(fi).length===0,qn=(fi,oi)=>{if(!fi)return-1;oi=oi||fi.nodeName;for(var ci=0;fi=fi.previousElementSibling;)fi.matches(oi)&&ci++;return ci},yn=(fi,oi)=>{Vi(oi,(ci,ui)=>{ci==null?fi.removeAttribute(ui):fi.setAttribute(ui,""+ci)})},Kr=(fi,oi)=>{fi.parentNode&&fi.parentNode.replaceChild(oi,fi)},as=(fi,oi)=>{if(oi===null)return;if(typeof oi=="string"){if(!oi.length)return;oi=new RegExp(oi,"i")}let ci=bi=>{var yi=bi.data.match(oi);if(yi&&bi.data.length>0){var Ci=document.createElement("span");Ci.className="highlight";var Oi=bi.splitText(yi.index);Oi.splitText(yi[0].length);var Di=Oi.cloneNode(!0);return Ci.appendChild(Di),Kr(Oi,Ci),1}return 0},ui=bi=>{bi.nodeType===1&&bi.childNodes&&!/(script|style)/i.test(bi.tagName)&&(bi.className!=="highlight"||bi.tagName!=="SPAN")&&Array.from(bi.childNodes).forEach(yi=>{gi(yi)})},gi=bi=>bi.nodeType===3?ci(bi):(ui(bi),0);gi(fi)},Ws=fi=>{var oi=fi.querySelectorAll("span.highlight");Array.prototype.forEach.call(oi,function(ci){var ui=ci.parentNode;ui.replaceChild(ci.firstChild,ci),ui.normalize()})},po=65,Us=13,Ms=27,Ss=37,Ro=38,Ys=39,Po=40,ha=8,Wl=46,pa=9,Ho=(typeof navigator=="undefined"?!1:/Mac/.test(navigator.userAgent))?"metaKey":"ctrlKey";var ja={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:null,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,shouldOpen:null,maxOptions:50,maxItems:null,hideSelected:null,duplicates:!1,addPrecedence:!1,selectOnTab:!1,preload:null,allowEmptyOption:!1,refreshThrottle:300,loadThrottle:300,loadingClass:"loading",dataAttr:null,optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"ts-wrapper",controlClass:"ts-control",dropdownClass:"ts-dropdown",dropdownContentClass:"ts-dropdown-content",itemClass:"item",optionClass:"option",dropdownParent:null,controlInput:' ',copyClassesToDropdown:!1,placeholder:null,hidePlaceholder:null,shouldLoad:function(fi){return fi.length>0},render:{}};let wn=fi=>typeof fi=="undefined"||fi===null?null:Gs(fi),Gs=fi=>typeof fi=="boolean"?fi?"1":"0":fi+"",Ks=fi=>(fi+"").replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),Yl=(fi,oi)=>oi>0?setTimeout(fi,oi):(fi.call(null),null),Fo=(fi,oi)=>{var ci;return function(ui,gi){var bi=this;ci&&(bi.loading=Math.max(bi.loading-1,0),clearTimeout(ci)),ci=setTimeout(function(){ci=null,bi.loadedSearches[ui]=!0,fi.call(bi,ui,gi)},oi)}},$o=(fi,oi,ci)=>{var ui,gi=fi.trigger,bi={};fi.trigger=function(){var yi=arguments[0];if(oi.indexOf(yi)!==-1)bi[yi]=arguments;else return gi.apply(fi,arguments)},ci.apply(fi,[]),fi.trigger=gi;for(ui of oi)ui in bi&&gi.apply(fi,bi[ui])},Cs=fi=>({start:fi.selectionStart||0,length:(fi.selectionEnd||0)-(fi.selectionStart||0)}),Dn=(fi,oi=!1)=>{fi&&(fi.preventDefault(),oi&&fi.stopPropagation())},On=(fi,oi,ci,ui)=>{fi.addEventListener(oi,ci,ui)},pi=(fi,oi)=>{if(!oi||!oi[fi])return!1;var ci=(oi.altKey?1:0)+(oi.ctrlKey?1:0)+(oi.shiftKey?1:0)+(oi.metaKey?1:0);return ci===1},vi=(fi,oi)=>{let ci=fi.getAttribute("id");return ci||(fi.setAttribute("id",oi),oi)},wi=fi=>fi.replace(/[\\"']/g,"\\$&"),Si=(fi,oi)=>{oi&&fi.append(oi)};function Ri(fi,oi){var ci=Object.assign({},ja,oi),ui=ci.dataAttr,gi=ci.labelField,bi=ci.valueField,yi=ci.disabledField,Ci=ci.optgroupField,Oi=ci.optgroupLabelField,Di=ci.optgroupValueField,Wi=fi.tagName.toLowerCase(),Bi=fi.getAttribute("placeholder")||fi.getAttribute("data-placeholder");if(!Bi&&!ci.allowEmptyOption){let Cn=fi.querySelector('option[value=""]');Cn&&(Bi=Cn.textContent)}var Zi={placeholder:Bi,options:[],optgroups:[],items:[],maxItems:null},In=()=>{var Cn,Pn=Zi.options,kn={},dn=1;let jn=0;var Os=xn=>{var Ln=Object.assign({},xn.dataset),En=ui&&Ln[ui];return typeof En=="string"&&En.length&&(Ln=Object.assign(Ln,JSON.parse(En))),Ln},Va=(xn,Ln)=>{var En=wn(xn.value);if(En!=null&&!(!En&&!ci.allowEmptyOption)){if(kn.hasOwnProperty(En)){if(Ln){var Jr=kn[En][Ci];Jr?Array.isArray(Jr)?Jr.push(Ln):kn[En][Ci]=[Jr,Ln]:kn[En][Ci]=Ln}}else{var Nn=Os(xn);Nn[gi]=Nn[gi]||xn.textContent,Nn[bi]=Nn[bi]||En,Nn[yi]=Nn[yi]||xn.disabled,Nn[Ci]=Nn[Ci]||Ln,Nn.$option=xn,Nn.$order=Nn.$order||++jn,kn[En]=Nn,Pn.push(Nn)}xn.selected&&Zi.items.push(En)}},Bo=xn=>{var Ln,En;En=Os(xn),En[Oi]=En[Oi]||xn.getAttribute("label")||"",En[Di]=En[Di]||dn++,En[yi]=En[yi]||xn.disabled,En.$order=En.$order||++jn,Zi.optgroups.push(En),Ln=En[Di],Vi(xn.children,Jr=>{Va(Jr,Ln)})};Zi.maxItems=fi.hasAttribute("multiple")?null:1,Vi(fi.children,xn=>{Cn=xn.tagName.toLowerCase(),Cn==="optgroup"?Bo(xn):Cn==="option"&&Va(xn)})},Qi=()=>{let Cn=fi.getAttribute(ui);if(Cn)Zi.options=JSON.parse(Cn),Vi(Zi.options,kn=>{Zi.items.push(kn[bi])});else{var Pn=fi.value.trim()||"";if(!ci.allowEmptyOption&&!Pn.length)return;let kn=Pn.split(ci.delimiter);Vi(kn,dn=>{let jn={};jn[gi]=dn,jn[bi]=dn,Zi.options.push(jn)}),Zi.items=kn}};return Wi==="select"?In():Qi(),Object.assign({},ja,Zi,oi)}var qi=0;class nn extends ei(ti){constructor(oi,ci){super(),this.control_input=void 0,this.wrapper=void 0,this.dropdown=void 0,this.control=void 0,this.dropdown_content=void 0,this.focus_node=void 0,this.order=0,this.settings=void 0,this.input=void 0,this.tabIndex=void 0,this.is_select_tag=void 0,this.rtl=void 0,this.inputId=void 0,this._destroy=void 0,this.sifter=void 0,this.isOpen=!1,this.isDisabled=!1,this.isReadOnly=!1,this.isRequired=void 0,this.isInvalid=!1,this.isValid=!0,this.isLocked=!1,this.isFocused=!1,this.isInputHidden=!1,this.isSetup=!1,this.ignoreFocus=!1,this.ignoreHover=!1,this.hasOptions=!1,this.currentResults=void 0,this.lastValue="",this.caretPos=0,this.loading=0,this.loadedSearches={},this.activeOption=null,this.activeItems=[],this.optgroups={},this.options={},this.userOptions={},this.items=[],this.refreshTimeout=null,qi++;var ui,gi=Ii(oi);if(gi.tomselect)throw new Error("Tom Select already initialized on this element");gi.tomselect=this;var bi=window.getComputedStyle&&window.getComputedStyle(gi,null);ui=bi.getPropertyValue("direction");let yi=Ri(gi,ci);this.settings=yi,this.input=gi,this.tabIndex=gi.tabIndex||0,this.is_select_tag=gi.tagName.toLowerCase()==="select",this.rtl=/rtl/i.test(ui),this.inputId=vi(gi,"tomselect-"+qi),this.isRequired=gi.required,this.sifter=new Ji(this.options,{diacritics:yi.diacritics}),yi.mode=yi.mode||(yi.maxItems===1?"single":"multi"),typeof yi.hideSelected!="boolean"&&(yi.hideSelected=yi.mode==="multi"),typeof yi.hidePlaceholder!="boolean"&&(yi.hidePlaceholder=yi.mode!=="multi");var Ci=yi.createFilter;typeof Ci!="function"&&(typeof Ci=="string"&&(Ci=new RegExp(Ci)),Ci instanceof RegExp?yi.createFilter=Pn=>Ci.test(Pn):yi.createFilter=Pn=>this.settings.duplicates||!this.options[Pn]),this.initializePlugins(yi.plugins),this.setupCallbacks(),this.setupTemplates();let Oi=Ii(""),Di=Ii("
"),Wi=this._render("dropdown"),Bi=Ii('
'),Zi=this.input.getAttribute("class")||"",In=yi.mode;var Qi;if(Gn(Oi,yi.wrapperClass,Zi,In),Gn(Di,yi.controlClass),Si(Oi,Di),Gn(Wi,yi.dropdownClass,In),yi.copyClassesToDropdown&&Gn(Wi,Zi),Gn(Bi,yi.dropdownContentClass),Si(Wi,Bi),Ii(yi.dropdownParent||Oi).appendChild(Wi),Sn(yi.controlInput)){Qi=Ii(yi.controlInput);var Cn=["autocorrect","autocapitalize","autocomplete","spellcheck"];Li(Cn,Pn=>{gi.getAttribute(Pn)&&yn(Qi,{[Pn]:gi.getAttribute(Pn)})}),Qi.tabIndex=-1,Di.appendChild(Qi),this.focus_node=Qi}else yi.controlInput?(Qi=Ii(yi.controlInput),this.focus_node=Qi):(Qi=Ii("
"),this.focus_node=Di);this.wrapper=Oi,this.dropdown=Wi,this.dropdown_content=Bi,this.control=Di,this.control_input=Qi,this.setup()}setup(){let oi=this,ci=oi.settings,ui=oi.control_input,gi=oi.dropdown,bi=oi.dropdown_content,yi=oi.wrapper,Ci=oi.control,Oi=oi.input,Di=oi.focus_node,Wi={passive:!0},Bi=oi.inputId+"-ts-dropdown";yn(bi,{id:Bi}),yn(Di,{role:"combobox","aria-haspopup":"listbox","aria-expanded":"false","aria-controls":Bi});let Zi=vi(Di,oi.inputId+"-ts-control"),In="label[for='"+Yn(oi.inputId)+"']",Qi=document.querySelector(In),Cn=oi.focus.bind(oi);if(Qi){On(Qi,"click",Cn),yn(Qi,{for:Zi});let dn=vi(Qi,oi.inputId+"-ts-label");yn(Di,{"aria-labelledby":dn}),yn(bi,{"aria-labelledby":dn})}if(yi.style.width=Oi.style.width,oi.plugins.names.length){let dn="plugin-"+oi.plugins.names.join(" plugin-");Gn([yi,gi],dn)}(ci.maxItems===null||ci.maxItems>1)&&oi.is_select_tag&&yn(Oi,{multiple:"multiple"}),ci.placeholder&&yn(ui,{placeholder:ci.placeholder}),!ci.splitOn&&ci.delimiter&&(ci.splitOn=new RegExp("\\s*"+li(ci.delimiter)+"+\\s*")),ci.load&&ci.loadThrottle&&(ci.load=Fo(ci.load,ci.loadThrottle)),On(gi,"mousemove",()=>{oi.ignoreHover=!1}),On(gi,"mouseenter",dn=>{var jn=hs(dn.target,"[data-selectable]",gi);jn&&oi.onOptionHover(dn,jn)},{capture:!0}),On(gi,"click",dn=>{let jn=hs(dn.target,"[data-selectable]");jn&&(oi.onOptionSelect(dn,jn),Dn(dn,!0))}),On(Ci,"click",dn=>{var jn=hs(dn.target,"[data-ts-item]",Ci);if(jn&&oi.onItemSelect(dn,jn)){Dn(dn,!0);return}ui.value==""&&(oi.onClick(),Dn(dn,!0))}),On(Di,"keydown",dn=>oi.onKeyDown(dn)),On(ui,"keypress",dn=>oi.onKeyPress(dn)),On(ui,"input",dn=>oi.onInput(dn)),On(Di,"blur",dn=>oi.onBlur(dn)),On(Di,"focus",dn=>oi.onFocus(dn)),On(ui,"paste",dn=>oi.onPaste(dn));let Pn=dn=>{let jn=dn.composedPath()[0];if(!yi.contains(jn)&&!gi.contains(jn)){oi.isFocused&&oi.blur(),oi.inputState();return}jn==ui&&oi.isOpen?dn.stopPropagation():Dn(dn,!0)},kn=()=>{oi.isOpen&&oi.positionDropdown()};On(document,"mousedown",Pn),On(window,"scroll",kn,Wi),On(window,"resize",kn,Wi),this._destroy=()=>{document.removeEventListener("mousedown",Pn),window.removeEventListener("scroll",kn),window.removeEventListener("resize",kn),Qi&&Qi.removeEventListener("click",Cn)},this.revertSettings={innerHTML:Oi.innerHTML,tabIndex:Oi.tabIndex},Oi.tabIndex=-1,Oi.insertAdjacentElement("afterend",oi.wrapper),oi.sync(!1),ci.items=[],delete ci.optgroups,delete ci.options,On(Oi,"invalid",()=>{oi.isValid&&(oi.isValid=!1,oi.isInvalid=!0,oi.refreshState())}),oi.updateOriginalInput(),oi.refreshItems(),oi.close(!1),oi.inputState(),oi.isSetup=!0,Oi.disabled?oi.disable():Oi.readOnly?oi.setReadOnly(!0):oi.enable(),oi.on("change",this.onChange),Gn(Oi,"tomselected","ts-hidden-accessible"),oi.trigger("initialize"),ci.preload===!0&&oi.preload()}setupOptions(oi=[],ci=[]){this.addOptions(oi),Li(ci,ui=>{this.registerOptionGroup(ui)})}setupTemplates(){var oi=this,ci=oi.settings.labelField,ui=oi.settings.optgroupLabelField,gi={optgroup:bi=>{let yi=document.createElement("div");return yi.className="optgroup",yi.appendChild(bi.options),yi},optgroup_header:(bi,yi)=>'",option:(bi,yi)=>"
"+yi(bi[ci])+"
",item:(bi,yi)=>"
"+yi(bi[ci])+"
",option_create:(bi,yi)=>'
Add '+yi(bi.input)+" …
",no_results:()=>'
No results found
',loading:()=>'
',not_loading:()=>{},dropdown:()=>"
"};oi.settings.render=Object.assign({},gi,oi.settings.render)}setupCallbacks(){var oi,ci,ui={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",item_select:"onItemSelect",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(oi in ui)ci=this.settings[ui[oi]],ci&&this.on(oi,ci)}sync(oi=!0){let ci=this,ui=oi?Ri(ci.input,{delimiter:ci.settings.delimiter}):ci.settings;ci.setupOptions(ui.options,ui.optgroups),ci.setValue(ui.items||[],!0),ci.lastQuery=null}onClick(){var oi=this;if(oi.activeItems.length>0){oi.clearActiveItems(),oi.focus();return}oi.isFocused&&oi.isOpen?oi.blur():oi.focus()}onMouseDown(){}onChange(){Fn(this.input,"input"),Fn(this.input,"change")}onPaste(oi){var ci=this;if(ci.isInputHidden||ci.isLocked){Dn(oi);return}ci.settings.splitOn&&setTimeout(()=>{var ui=ci.inputValue();if(ui.match(ci.settings.splitOn)){var gi=ui.trim().split(ci.settings.splitOn);Li(gi,bi=>{wn(bi)&&(this.options[bi]?ci.addItem(bi):ci.createItem(bi))})}},0)}onKeyPress(oi){var ci=this;if(ci.isLocked){Dn(oi);return}var ui=String.fromCharCode(oi.keyCode||oi.which);if(ci.settings.create&&ci.settings.mode==="multi"&&ui===ci.settings.delimiter){ci.createItem(),Dn(oi);return}}onKeyDown(oi){var ci=this;if(ci.ignoreHover=!0,ci.isLocked){oi.keyCode!==pa&&Dn(oi);return}switch(oi.keyCode){case po:if(pi(Ho,oi)&&ci.control_input.value==""){Dn(oi),ci.selectAll();return}break;case Ms:ci.isOpen&&(Dn(oi,!0),ci.close()),ci.clearActiveItems();return;case Po:if(!ci.isOpen&&ci.hasOptions)ci.open();else if(ci.activeOption){let ui=ci.getAdjacent(ci.activeOption,1);ui&&ci.setActiveOption(ui)}Dn(oi);return;case Ro:if(ci.activeOption){let ui=ci.getAdjacent(ci.activeOption,-1);ui&&ci.setActiveOption(ui)}Dn(oi);return;case Us:ci.canSelect(ci.activeOption)?(ci.onOptionSelect(oi,ci.activeOption),Dn(oi)):(ci.settings.create&&ci.createItem()||document.activeElement==ci.control_input&&ci.isOpen)&&Dn(oi);return;case Ss:ci.advanceSelection(-1,oi);return;case Ys:ci.advanceSelection(1,oi);return;case pa:ci.settings.selectOnTab&&(ci.canSelect(ci.activeOption)&&(ci.onOptionSelect(oi,ci.activeOption),Dn(oi)),ci.settings.create&&ci.createItem()&&Dn(oi));return;case ha:case Wl:ci.deleteSelection(oi);return}ci.isInputHidden&&!pi(Ho,oi)&&Dn(oi)}onInput(oi){if(this.isLocked)return;let ci=this.inputValue();if(this.lastValue!==ci){if(this.lastValue=ci,ci==""){this._onInput();return}this.refreshTimeout&&clearTimeout(this.refreshTimeout),this.refreshTimeout=Yl(()=>{this.refreshTimeout=null,this._onInput()},this.settings.refreshThrottle)}}_onInput(){let oi=this.lastValue;this.settings.shouldLoad.call(this,oi)&&this.load(oi),this.refreshOptions(),this.trigger("type",oi)}onOptionHover(oi,ci){this.ignoreHover||this.setActiveOption(ci,!1)}onFocus(oi){var ci=this,ui=ci.isFocused;if(ci.isDisabled||ci.isReadOnly){ci.blur(),Dn(oi);return}ci.ignoreFocus||(ci.isFocused=!0,ci.settings.preload==="focus"&&ci.preload(),ui||ci.trigger("focus"),ci.activeItems.length||(ci.inputState(),ci.refreshOptions(!!ci.settings.openOnFocus)),ci.refreshState())}onBlur(oi){if(document.hasFocus()!==!1){var ci=this;if(ci.isFocused){ci.isFocused=!1,ci.ignoreFocus=!1;var ui=()=>{ci.close(),ci.setActiveItem(),ci.setCaret(ci.items.length),ci.trigger("blur")};ci.settings.create&&ci.settings.createOnBlur?ci.createItem(null,ui):ui()}}}onOptionSelect(oi,ci){var ui,gi=this;ci.parentElement&&ci.parentElement.matches("[data-disabled]")||(ci.classList.contains("create")?gi.createItem(null,()=>{gi.settings.closeAfterSelect&&gi.close()}):(ui=ci.dataset.value,typeof ui!="undefined"&&(gi.lastQuery=null,gi.addItem(ui),gi.settings.closeAfterSelect&&gi.close(),!gi.settings.hideSelected&&oi.type&&/click/.test(oi.type)&&gi.setActiveOption(ci))))}canSelect(oi){return!!(this.isOpen&&oi&&this.dropdown_content.contains(oi))}onItemSelect(oi,ci){var ui=this;return!ui.isLocked&&ui.settings.mode==="multi"?(Dn(oi),ui.setActiveItem(ci,oi),!0):!1}canLoad(oi){return!(!this.settings.load||this.loadedSearches.hasOwnProperty(oi))}load(oi){let ci=this;if(!ci.canLoad(oi))return;Gn(ci.wrapper,ci.settings.loadingClass),ci.loading++;let ui=ci.loadCallback.bind(ci);ci.settings.load.call(ci,oi,ui)}loadCallback(oi,ci){let ui=this;ui.loading=Math.max(ui.loading-1,0),ui.lastQuery=null,ui.clearActiveOption(),ui.setupOptions(oi,ci),ui.refreshOptions(ui.isFocused&&!ui.isInputHidden),ui.loading||Qn(ui.wrapper,ui.settings.loadingClass),ui.trigger("load",oi,ci)}preload(){var oi=this.wrapper.classList;oi.contains("preloaded")||(oi.add("preloaded"),this.load(""))}setTextboxValue(oi=""){var ci=this.control_input,ui=ci.value!==oi;ui&&(ci.value=oi,Fn(ci,"update"),this.lastValue=oi)}getValue(){return this.is_select_tag&&this.input.hasAttribute("multiple")?this.items:this.items.join(this.settings.delimiter)}setValue(oi,ci){var ui=ci?[]:["change"];$o(this,ui,()=>{this.clear(ci),this.addItems(oi,ci)})}setMaxItems(oi){oi===0&&(oi=null),this.settings.maxItems=oi,this.refreshState()}setActiveItem(oi,ci){var ui=this,gi,bi,yi,Ci,Oi,Di;if(ui.settings.mode!=="single"){if(!oi){ui.clearActiveItems(),ui.isFocused&&ui.inputState();return}if(gi=ci&&ci.type.toLowerCase(),gi==="click"&&pi("shiftKey",ci)&&ui.activeItems.length){for(Di=ui.getLastActive(),yi=Array.prototype.indexOf.call(ui.control.children,Di),Ci=Array.prototype.indexOf.call(ui.control.children,oi),yi>Ci&&(Oi=yi,yi=Ci,Ci=Oi),bi=yi;bi<=Ci;bi++)oi=ui.control.children[bi],ui.activeItems.indexOf(oi)===-1&&ui.setActiveItemClass(oi);Dn(ci)}else gi==="click"&&pi(Ho,ci)||gi==="keydown"&&pi("shiftKey",ci)?oi.classList.contains("active")?ui.removeActiveItem(oi):ui.setActiveItemClass(oi):(ui.clearActiveItems(),ui.setActiveItemClass(oi));ui.inputState(),ui.isFocused||ui.focus()}}setActiveItemClass(oi){let ci=this,ui=ci.control.querySelector(".last-active");ui&&Qn(ui,"last-active"),Gn(oi,"active last-active"),ci.trigger("item_select",oi),ci.activeItems.indexOf(oi)==-1&&ci.activeItems.push(oi)}removeActiveItem(oi){var ci=this.activeItems.indexOf(oi);this.activeItems.splice(ci,1),Qn(oi,"active")}clearActiveItems(){Qn(this.activeItems,"active"),this.activeItems=[]}setActiveOption(oi,ci=!0){oi!==this.activeOption&&(this.clearActiveOption(),oi&&(this.activeOption=oi,yn(this.focus_node,{"aria-activedescendant":oi.getAttribute("id")}),yn(oi,{"aria-selected":"true"}),Gn(oi,"active"),ci&&this.scrollToOption(oi)))}scrollToOption(oi,ci){if(!oi)return;let ui=this.dropdown_content,gi=ui.clientHeight,bi=ui.scrollTop||0,yi=oi.offsetHeight,Ci=oi.getBoundingClientRect().top-ui.getBoundingClientRect().top+bi;Ci+yi>gi+bi?this.scroll(Ci-gi+yi,ci):Ci
{oi.setActiveItemClass(ui)}))}inputState(){var oi=this;oi.control.contains(oi.control_input)&&(yn(oi.control_input,{placeholder:oi.settings.placeholder}),oi.activeItems.length>0||!oi.isFocused&&oi.settings.hidePlaceholder&&oi.items.length>0?(oi.setTextboxValue(),oi.isInputHidden=!0):(oi.settings.hidePlaceholder&&oi.items.length>0&&yn(oi.control_input,{placeholder:""}),oi.isInputHidden=!1),oi.wrapper.classList.toggle("input-hidden",oi.isInputHidden))}inputValue(){return this.control_input.value.trim()}focus(){var oi=this;oi.isDisabled||oi.isReadOnly||(oi.ignoreFocus=!0,oi.control_input.offsetWidth?oi.control_input.focus():oi.focus_node.focus(),setTimeout(()=>{oi.ignoreFocus=!1,oi.onFocus()},0))}blur(){this.focus_node.blur(),this.onBlur()}getScoreFunction(oi){return this.sifter.getScoreFunction(oi,this.getSearchOptions())}getSearchOptions(){var oi=this.settings,ci=oi.sortField;return typeof oi.sortField=="string"&&(ci=[{field:oi.sortField}]),{fields:oi.searchField,conjunction:oi.searchConjunction,sort:ci,nesting:oi.nesting}}search(oi){var ci,ui,gi=this,bi=this.getSearchOptions();if(gi.settings.score&&(ui=gi.settings.score.call(gi,oi),typeof ui!="function"))throw new Error('Tom Select "score" setting must be a function that returns a function');return oi!==gi.lastQuery?(gi.lastQuery=oi,ci=gi.sifter.search(oi,Object.assign(bi,{score:ui})),gi.currentResults=ci):ci=Object.assign({},gi.currentResults),gi.settings.hideSelected&&(ci.items=ci.items.filter(yi=>{let Ci=wn(yi.id);return!(Ci&&gi.items.indexOf(Ci)!==-1)})),ci}refreshOptions(oi=!0){var ci,ui,gi,bi,yi,Ci,Oi,Di,Wi,Bi;let Zi={},In=[];var Qi=this,Cn=Qi.inputValue();let Pn=Cn===Qi.lastQuery||Cn==""&&Qi.lastQuery==null;var kn=Qi.search(Cn),dn=null,jn=Qi.settings.shouldOpen||!1,Os=Qi.dropdown_content;Pn&&(dn=Qi.activeOption,dn&&(Wi=dn.closest("[data-group]"))),bi=kn.items.length,typeof Qi.settings.maxOptions=="number"&&(bi=Math.min(bi,Qi.settings.maxOptions)),bi>0&&(jn=!0);let Va=(xn,Ln)=>{let En=Zi[xn];if(En!==void 0){let Nn=In[En];if(Nn!==void 0)return[En,Nn.fragment]}let Jr=document.createDocumentFragment();return En=In.length,In.push({fragment:Jr,order:Ln,optgroup:xn}),[En,Jr]};for(ci=0;ci0&&(Nn=Nn.cloneNode(!0),yn(Nn,{id:En.$id+"-clone-"+ui,"aria-selected":null}),Nn.classList.add("ts-cloned"),Qn(Nn,"active"),Qi.activeOption&&Qi.activeOption.dataset.value==Ln&&Wi&&Wi.dataset.group===yi.toString()&&(dn=Nn)),rh.appendChild(Nn),yi!=""&&(Zi[yi]=nh)}}Qi.settings.lockOptgroupOrder&&In.sort((xn,Ln)=>xn.order-Ln.order),Oi=document.createDocumentFragment(),Li(In,xn=>{let Ln=xn.fragment,En=xn.optgroup;if(!Ln||!Ln.children.length)return;let Jr=Qi.optgroups[En];if(Jr!==void 0){let Nn=document.createDocumentFragment(),qa=Qi.render("optgroup_header",Jr);Si(Nn,qa),Si(Nn,Ln);let Wa=Qi.render("optgroup",{group:Jr,options:Nn});Si(Oi,Wa)}else Si(Oi,Ln)}),Os.innerHTML="",Si(Os,Oi),Qi.settings.highlight&&(Ws(Os),kn.query.length&&kn.tokens.length&&Li(kn.tokens,xn=>{as(Os,xn.regex)}));var Bo=xn=>{let Ln=Qi.render(xn,{input:Cn});return Ln&&(jn=!0,Os.insertBefore(Ln,Os.firstChild)),Ln};if(Qi.loading?Bo("loading"):Qi.settings.shouldLoad.call(Qi,Cn)?kn.items.length===0&&Bo("no_results"):Bo("not_loading"),Di=Qi.canCreate(Cn),Di&&(Bi=Bo("option_create")),Qi.hasOptions=kn.items.length>0||Di,jn){if(kn.items.length>0){if(!dn&&Qi.settings.mode==="single"&&Qi.items[0]!=null&&(dn=Qi.getOption(Qi.items[0])),!Os.contains(dn)){let xn=0;Bi&&!Qi.settings.addPrecedence&&(xn=1),dn=Qi.selectable()[xn]}}else Bi&&(dn=Bi);oi&&!Qi.isOpen&&(Qi.open(),Qi.scrollToOption(dn,"auto")),Qi.setActiveOption(dn)}else Qi.clearActiveOption(),oi&&Qi.isOpen&&Qi.close(!1)}selectable(){return this.dropdown_content.querySelectorAll("[data-selectable]")}addOption(oi,ci=!1){let ui=this;if(Array.isArray(oi))return ui.addOptions(oi,ci),!1;let gi=wn(oi[ui.settings.valueField]);return gi===null||ui.options.hasOwnProperty(gi)?!1:(oi.$order=oi.$order||++ui.order,oi.$id=ui.inputId+"-opt-"+oi.$order,ui.options[gi]=oi,ui.lastQuery=null,ci&&(ui.userOptions[gi]=ci,ui.trigger("option_add",gi,oi)),gi)}addOptions(oi,ci=!1){Li(oi,ui=>{this.addOption(ui,ci)})}registerOption(oi){return this.addOption(oi)}registerOptionGroup(oi){var ci=wn(oi[this.settings.optgroupValueField]);return ci===null?!1:(oi.$order=oi.$order||++this.order,this.optgroups[ci]=oi,ci)}addOptionGroup(oi,ci){var ui;ci[this.settings.optgroupValueField]=oi,(ui=this.registerOptionGroup(ci))&&this.trigger("optgroup_add",ui,ci)}removeOptionGroup(oi){this.optgroups.hasOwnProperty(oi)&&(delete this.optgroups[oi],this.clearCache(),this.trigger("optgroup_remove",oi))}clearOptionGroups(){this.optgroups={},this.clearCache(),this.trigger("optgroup_clear")}updateOption(oi,ci){let ui=this;var gi,bi;let yi=wn(oi),Ci=wn(ci[ui.settings.valueField]);if(yi===null)return;let Oi=ui.options[yi];if(Oi==null)return;if(typeof Ci!="string")throw new Error("Value must be set in option data");let Di=ui.getOption(yi),Wi=ui.getItem(yi);if(ci.$order=ci.$order||Oi.$order,delete ui.options[yi],ui.uncacheValue(Ci),ui.options[Ci]=ci,Di){if(ui.dropdown_content.contains(Di)){let Bi=ui._render("option",ci);Kr(Di,Bi),ui.activeOption===Di&&ui.setActiveOption(Bi)}Di.remove()}Wi&&(bi=ui.items.indexOf(yi),bi!==-1&&ui.items.splice(bi,1,Ci),gi=ui._render("item",ci),Wi.classList.contains("active")&&Gn(gi,"active"),Kr(Wi,gi)),ui.lastQuery=null}removeOption(oi,ci){let ui=this;oi=Gs(oi),ui.uncacheValue(oi),delete ui.userOptions[oi],delete ui.options[oi],ui.lastQuery=null,ui.trigger("option_remove",oi),ui.removeItem(oi,ci)}clearOptions(oi){let ci=(oi||this.clearFilter).bind(this);this.loadedSearches={},this.userOptions={},this.clearCache();let ui={};Li(this.options,(gi,bi)=>{ci(gi,bi)&&(ui[bi]=gi)}),this.options=this.sifter.items=ui,this.lastQuery=null,this.trigger("option_clear")}clearFilter(oi,ci){return this.items.indexOf(ci)>=0}getOption(oi,ci=!1){let ui=wn(oi);if(ui===null)return null;let gi=this.options[ui];if(gi!=null){if(gi.$div)return gi.$div;if(ci)return this._render("option",gi)}return null}getAdjacent(oi,ci,ui="option"){var gi=this,bi;if(!oi)return null;ui=="item"?bi=gi.controlChildren():bi=gi.dropdown_content.querySelectorAll("[data-selectable]");for(let yi=0;yi0?bi[yi+1]:bi[yi-1];return null}getItem(oi){if(typeof oi=="object")return oi;var ci=wn(oi);return ci!==null?this.control.querySelector(`[data-value="${wi(ci)}"]`):null}addItems(oi,ci){var ui=this,gi=Array.isArray(oi)?oi:[oi];gi=gi.filter(yi=>ui.items.indexOf(yi)===-1);let bi=gi[gi.length-1];gi.forEach(yi=>{ui.isPending=yi!==bi,ui.addItem(yi,ci)})}addItem(oi,ci){var ui=ci?[]:["change","dropdown_close"];$o(this,ui,()=>{var gi,bi;let yi=this,Ci=yi.settings.mode,Oi=wn(oi);if(!(Oi&&yi.items.indexOf(Oi)!==-1&&(Ci==="single"&&yi.close(),Ci==="single"||!yi.settings.duplicates))&&!(Oi===null||!yi.options.hasOwnProperty(Oi))&&(Ci==="single"&&yi.clear(ci),!(Ci==="multi"&&yi.isFull()))){if(gi=yi._render("item",yi.options[Oi]),yi.control.contains(gi)&&(gi=gi.cloneNode(!0)),bi=yi.isFull(),yi.items.splice(yi.caretPos,0,Oi),yi.insertAtCaret(gi),yi.isSetup){if(!yi.isPending&&yi.settings.hideSelected){let Di=yi.getOption(Oi),Wi=yi.getAdjacent(Di,1);Wi&&yi.setActiveOption(Wi)}!yi.isPending&&!yi.settings.closeAfterSelect&&yi.refreshOptions(yi.isFocused&&Ci!=="single"),yi.settings.closeAfterSelect!=!1&&yi.isFull()?yi.close():yi.isPending||yi.positionDropdown(),yi.trigger("item_add",Oi,gi),yi.isPending||yi.updateOriginalInput({silent:ci})}(!yi.isPending||!bi&&yi.isFull())&&(yi.inputState(),yi.refreshState())}})}removeItem(oi=null,ci){let ui=this;if(oi=ui.getItem(oi),!oi)return;var gi,bi;let yi=oi.dataset.value;gi=qn(oi),oi.remove(),oi.classList.contains("active")&&(bi=ui.activeItems.indexOf(oi),ui.activeItems.splice(bi,1),Qn(oi,"active")),ui.items.splice(gi,1),ui.lastQuery=null,!ui.settings.persist&&ui.userOptions.hasOwnProperty(yi)&&ui.removeOption(yi,ci),gi{}){arguments.length===3&&(ci=arguments[2]),typeof ci!="function"&&(ci=()=>{});var ui=this,gi=ui.caretPos,bi;if(oi=oi||ui.inputValue(),!ui.canCreate(oi))return ci(),!1;ui.lock();var yi=!1,Ci=Oi=>{if(ui.unlock(),!Oi||typeof Oi!="object")return ci();var Di=wn(Oi[ui.settings.valueField]);if(typeof Di!="string")return ci();ui.setTextboxValue(),ui.addOption(Oi,!0),ui.setCaret(gi),ui.addItem(Di),ci(Oi),yi=!0};return typeof ui.settings.create=="function"?bi=ui.settings.create.call(this,oi,Ci):bi={[ui.settings.labelField]:oi,[ui.settings.valueField]:oi},yi||Ci(bi),!0}refreshItems(){var oi=this;oi.lastQuery=null,oi.isSetup&&oi.addItems(oi.items),oi.updateOriginalInput(),oi.refreshState()}refreshState(){let oi=this;oi.refreshValidityState();let ci=oi.isFull(),ui=oi.isLocked;oi.wrapper.classList.toggle("rtl",oi.rtl);let gi=oi.wrapper.classList;gi.toggle("focus",oi.isFocused),gi.toggle("disabled",oi.isDisabled),gi.toggle("readonly",oi.isReadOnly),gi.toggle("required",oi.isRequired),gi.toggle("invalid",!oi.isValid),gi.toggle("locked",ui),gi.toggle("full",ci),gi.toggle("input-active",oi.isFocused&&!oi.isInputHidden),gi.toggle("dropdown-active",oi.isOpen),gi.toggle("has-options",qs(oi.options)),gi.toggle("has-items",oi.items.length>0)}refreshValidityState(){var oi=this;oi.input.validity&&(oi.isValid=oi.input.validity.valid,oi.isInvalid=!oi.isValid)}isFull(){return this.settings.maxItems!==null&&this.items.length>=this.settings.maxItems}updateOriginalInput(oi={}){let ci=this;var ui,gi;let bi=ci.input.querySelector('option[value=""]');if(ci.is_select_tag){let Oi=function(Di,Wi,Bi){return Di||(Di=Ii(''+Ks(Bi)+" ")),Di!=bi&&ci.input.append(Di),yi.push(Di),(Di!=bi||Ci>0)&&(Di.selected=!0),Di},yi=[],Ci=ci.input.querySelectorAll("option:checked").length;ci.input.querySelectorAll("option:checked").forEach(Di=>{Di.selected=!1}),ci.items.length==0&&ci.settings.mode=="single"?Oi(bi,"",""):ci.items.forEach(Di=>{if(ui=ci.options[Di],gi=ui[ci.settings.labelField]||"",yi.includes(ui.$option)){let Wi=ci.input.querySelector(`option[value="${wi(Di)}"]:not(:checked)`);Oi(Wi,Di,gi)}else ui.$option=Oi(ui.$option,Di,gi)})}else ci.input.value=ci.getValue();ci.isSetup&&(oi.silent||ci.trigger("change",ci.getValue()))}open(){var oi=this;oi.isLocked||oi.isOpen||oi.settings.mode==="multi"&&oi.isFull()||(oi.isOpen=!0,yn(oi.focus_node,{"aria-expanded":"true"}),oi.refreshState(),Bn(oi.dropdown,{visibility:"hidden",display:"block"}),oi.positionDropdown(),Bn(oi.dropdown,{visibility:"visible",display:"block"}),oi.focus(),oi.trigger("dropdown_open",oi.dropdown))}close(oi=!0){var ci=this,ui=ci.isOpen;oi&&(ci.setTextboxValue(),ci.settings.mode==="single"&&ci.items.length&&ci.inputState()),ci.isOpen=!1,yn(ci.focus_node,{"aria-expanded":"false"}),Bn(ci.dropdown,{display:"none"}),ci.settings.hideSelected&&ci.clearActiveOption(),ci.refreshState(),ui&&ci.trigger("dropdown_close",ci.dropdown)}positionDropdown(){if(this.settings.dropdownParent==="body"){var oi=this.control,ci=oi.getBoundingClientRect(),ui=oi.offsetHeight+ci.top+window.scrollY,gi=ci.left+window.scrollX;Bn(this.dropdown,{width:ci.width+"px",top:ui+"px",left:gi+"px"})}}clear(oi){var ci=this;if(ci.items.length){var ui=ci.controlChildren();Li(ui,gi=>{ci.removeItem(gi,!0)}),ci.inputState(),oi||ci.updateOriginalInput(),ci.trigger("clear")}}insertAtCaret(oi){let ci=this,ui=ci.caretPos,gi=ci.control;gi.insertBefore(oi,gi.children[ui]||null),ci.setCaret(ui+1)}deleteSelection(oi){var ci,ui,gi,bi,yi=this;ci=oi&&oi.keyCode===ha?-1:1,ui=Cs(yi.control_input);let Ci=[];if(yi.activeItems.length)bi=ms(yi.activeItems,ci),gi=qn(bi),ci>0&&gi++,Li(yi.activeItems,Oi=>Ci.push(Oi));else if((yi.isFocused||yi.settings.mode==="single")&&yi.items.length){let Oi=yi.controlChildren(),Di;ci<0&&ui.start===0&&ui.length===0?Di=Oi[yi.caretPos-1]:ci>0&&ui.start===yi.inputValue().length&&(Di=Oi[yi.caretPos]),Di!==void 0&&Ci.push(Di)}if(!yi.shouldDelete(Ci,oi))return!1;for(Dn(oi,!0),typeof gi!="undefined"&&yi.setCaret(gi);Ci.length;)yi.removeItem(Ci.pop());return yi.inputState(),yi.positionDropdown(),yi.refreshOptions(!1),!0}shouldDelete(oi,ci){let ui=oi.map(gi=>gi.dataset.value);return!(!ui.length||typeof this.settings.onDelete=="function"&&this.settings.onDelete(ui,ci)===!1)}advanceSelection(oi,ci){var ui,gi,bi=this;bi.rtl&&(oi*=-1),!bi.inputValue().length&&(pi(Ho,ci)||pi("shiftKey",ci)?(ui=bi.getLastActive(oi),ui?ui.classList.contains("active")?gi=bi.getAdjacent(ui,oi,"item"):gi=ui:oi>0?gi=bi.control_input.nextElementSibling:gi=bi.control_input.previousElementSibling,gi&&(gi.classList.contains("active")&&bi.removeActiveItem(ui),bi.setActiveItemClass(gi))):bi.moveCaret(oi))}moveCaret(oi){}getLastActive(oi){let ci=this.control.querySelector(".last-active");if(ci)return ci;var ui=this.control.querySelectorAll(".active");if(ui)return ms(ui,oi)}setCaret(oi){this.caretPos=this.items.length}controlChildren(){return Array.from(this.control.querySelectorAll("[data-ts-item]"))}lock(){this.setLocked(!0)}unlock(){this.setLocked(!1)}setLocked(oi=this.isReadOnly||this.isDisabled){this.isLocked=oi,this.refreshState()}disable(){this.setDisabled(!0),this.close()}enable(){this.setDisabled(!1)}setDisabled(oi){this.focus_node.tabIndex=oi?-1:this.tabIndex,this.isDisabled=oi,this.input.disabled=oi,this.control_input.disabled=oi,this.setLocked()}setReadOnly(oi){this.isReadOnly=oi,this.input.readOnly=oi,this.control_input.readOnly=oi,this.setLocked()}destroy(){var oi=this,ci=oi.revertSettings;oi.trigger("destroy"),oi.off(),oi.wrapper.remove(),oi.dropdown.remove(),oi.input.innerHTML=ci.innerHTML,oi.input.tabIndex=ci.tabIndex,Qn(oi.input,"tomselected","ts-hidden-accessible"),oi._destroy(),delete oi.input.tomselect}render(oi,ci){var ui,gi;let bi=this;if(typeof this.settings.render[oi]!="function"||(gi=bi.settings.render[oi].call(this,ci,Ks),!gi))return null;if(gi=Ii(gi),oi==="option"||oi==="option_create"?ci[bi.settings.disabledField]?yn(gi,{"aria-disabled":"true"}):yn(gi,{"data-selectable":""}):oi==="optgroup"&&(ui=ci.group[bi.settings.optgroupValueField],yn(gi,{"data-group":ui}),ci.group[bi.settings.disabledField]&&yn(gi,{"data-disabled":""})),oi==="option"||oi==="item"){let yi=Gs(ci[bi.settings.valueField]);yn(gi,{"data-value":yi}),oi==="item"?(Gn(gi,bi.settings.itemClass),yn(gi,{"data-ts-item":""})):(Gn(gi,bi.settings.optionClass),yn(gi,{role:"option",id:ci.$id}),ci.$div=gi,bi.options[yi]=ci)}return gi}_render(oi,ci){let ui=this.render(oi,ci);if(ui==null)throw"HTMLElement expected";return ui}clearCache(){Li(this.options,oi=>{oi.$div&&(oi.$div.remove(),delete oi.$div)})}uncacheValue(oi){let ci=this.getOption(oi);ci&&ci.remove()}canCreate(oi){return this.settings.create&&oi.length>0&&this.settings.createFilter.call(this,oi)}hook(oi,ci,ui){var gi=this,bi=gi[ci];gi[ci]=function(){var yi,Ci;return oi==="after"&&(yi=bi.apply(gi,arguments)),Ci=ui.apply(gi,arguments),oi==="instead"?Ci:(oi==="before"&&(yi=bi.apply(gi,arguments)),yi)}}}function Xi(){On(this.input,"change",()=>{this.sync()})}function _n(fi){var oi=this,ci=oi.onOptionSelect;oi.settings.hideSelected=!1;let ui=Object.assign({className:"tomselect-checkbox",checkedClassNames:void 0,uncheckedClassNames:void 0},fi);var gi=function(Ci,Oi){Oi?(Ci.checked=!0,ui.uncheckedClassNames&&Ci.classList.remove(...ui.uncheckedClassNames),ui.checkedClassNames&&Ci.classList.add(...ui.checkedClassNames)):(Ci.checked=!1,ui.checkedClassNames&&Ci.classList.remove(...ui.checkedClassNames),ui.uncheckedClassNames&&Ci.classList.add(...ui.uncheckedClassNames))},bi=function(Ci){setTimeout(()=>{var Oi=Ci.querySelector("input."+ui.className);Oi instanceof HTMLInputElement&&gi(Oi,Ci.classList.contains("selected"))},1)};oi.hook("after","setupTemplates",()=>{var yi=oi.settings.render.option;oi.settings.render.option=(Ci,Oi)=>{var Di=Ii(yi.call(oi,Ci,Oi)),Wi=document.createElement("input");ui.className&&Wi.classList.add(ui.className),Wi.addEventListener("click",function(Zi){Dn(Zi)}),Wi.type="checkbox";let Bi=wn(Ci[oi.settings.valueField]);return gi(Wi,!!(Bi&&oi.items.indexOf(Bi)>-1)),Di.prepend(Wi),Di}}),oi.on("item_remove",yi=>{var Ci=oi.getOption(yi);Ci&&(Ci.classList.remove("selected"),bi(Ci))}),oi.on("item_add",yi=>{var Ci=oi.getOption(yi);Ci&&bi(Ci)}),oi.hook("instead","onOptionSelect",(yi,Ci)=>{if(Ci.classList.contains("selected")){Ci.classList.remove("selected"),oi.removeItem(Ci.dataset.value),oi.refreshOptions(),Dn(yi,!0);return}ci.call(oi,yi,Ci),bi(Ci)})}function Ki(fi){let oi=this,ci=Object.assign({className:"clear-button",title:"Clear All",html:ui=>`⨯
`},fi);oi.on("initialize",()=>{var ui=Ii(ci.html(ci));ui.addEventListener("click",gi=>{oi.isLocked||(oi.clear(),oi.settings.mode==="single"&&oi.settings.allowEmptyOption&&oi.addItem(""),gi.preventDefault(),gi.stopPropagation())}),oi.control.appendChild(ui)})}let fn=(fi,oi)=>{var ci;(ci=fi.parentNode)==null||ci.insertBefore(oi,fi.nextSibling)},Mn=(fi,oi)=>{var ci;(ci=fi.parentNode)==null||ci.insertBefore(oi,fi)},gs=(fi,oi)=>{do{var ci;if(oi=(ci=oi)==null?void 0:ci.previousElementSibling,fi==oi)return!0}while(oi&&oi.previousElementSibling);return!1};function is(){var fi=this;if(fi.settings.mode!=="multi")return;var oi=fi.lock,ci=fi.unlock;let ui=!0,gi;fi.hook("after","setupTemplates",()=>{var bi=fi.settings.render.item;fi.settings.render.item=(yi,Ci)=>{let Oi=Ii(bi.call(fi,yi,Ci));yn(Oi,{draggable:"true"});let Di=Cn=>{ui||Dn(Cn),Cn.stopPropagation()},Wi=Cn=>{gi=Oi,setTimeout(()=>{Oi.classList.add("ts-dragging")},0)},Bi=Cn=>{Cn.preventDefault(),Oi.classList.add("ts-drag-over"),In(Oi,gi)},Zi=()=>{Oi.classList.remove("ts-drag-over")},In=(Cn,Pn)=>{Pn!==void 0&&(gs(Pn,Oi)?fn(Cn,Pn):Mn(Cn,Pn))},Qi=()=>{var Cn;document.querySelectorAll(".ts-drag-over").forEach(kn=>kn.classList.remove("ts-drag-over")),(Cn=gi)==null||Cn.classList.remove("ts-dragging"),gi=void 0;var Pn=[];fi.control.querySelectorAll("[data-value]").forEach(kn=>{if(kn.dataset.value){let dn=kn.dataset.value;dn&&Pn.push(dn)}}),fi.setValue(Pn)};return On(Oi,"mousedown",Di),On(Oi,"dragstart",Wi),On(Oi,"dragenter",Bi),On(Oi,"dragover",Bi),On(Oi,"dragleave",Zi),On(Oi,"dragend",Qi),Oi}}),fi.hook("instead","lock",()=>(ui=!1,oi.call(fi))),fi.hook("instead","unlock",()=>(ui=!0,ci.call(fi)))}function mo(fi){let oi=this,ci=Object.assign({title:"Untitled",headerClass:"dropdown-header",titleRowClass:"dropdown-header-title",labelClass:"dropdown-header-label",closeClass:"dropdown-header-close",html:ui=>''},fi);oi.on("initialize",()=>{var ui=Ii(ci.html(ci)),gi=ui.querySelector("."+ci.closeClass);gi&&gi.addEventListener("click",bi=>{Dn(bi,!0),oi.close()}),oi.dropdown.insertBefore(ui,oi.dropdown.firstChild)})}function Qs(){var fi=this;fi.hook("instead","setCaret",oi=>{fi.settings.mode==="single"||!fi.control.contains(fi.control_input)?oi=fi.items.length:(oi=Math.max(0,Math.min(fi.items.length,oi)),oi!=fi.caretPos&&!fi.isPending&&fi.controlChildren().forEach((ci,ui)=>{ui{if(!fi.isFocused)return;let ci=fi.getLastActive(oi);if(ci){let ui=qn(ci);fi.setCaret(oi>0?ui+1:ui),fi.setActiveItem(),Qn(ci,"last-active")}else fi.setCaret(fi.caretPos+oi)})}function Gl(){let fi=this;fi.settings.shouldOpen=!0,fi.hook("before","setup",()=>{fi.focus_node=fi.control,Gn(fi.control_input,"dropdown-input");let oi=Ii('');oi.append(fi.control_input),fi.dropdown.insertBefore(oi,fi.dropdown.firstChild);let ci=Ii('
');ci.placeholder=fi.settings.placeholder||"",fi.control.append(ci)}),fi.on("initialize",()=>{fi.control_input.addEventListener("keydown",ci=>{switch(ci.keyCode){case Ms:fi.isOpen&&(Dn(ci,!0),fi.close()),fi.clearActiveItems();return;case pa:fi.focus_node.tabIndex=-1;break}return fi.onKeyDown.call(fi,ci)}),fi.on("blur",()=>{fi.focus_node.tabIndex=fi.isDisabled?-1:fi.tabIndex}),fi.on("dropdown_open",()=>{fi.control_input.focus()});let oi=fi.onBlur;fi.hook("instead","onBlur",ci=>{if(!(ci&&ci.relatedTarget==fi.control_input))return oi.call(fi)}),On(fi.control_input,"blur",()=>fi.onBlur()),fi.hook("before","close",()=>{fi.isOpen&&fi.focus_node.focus({preventScroll:!0})})})}function ma(){var fi=this;fi.on("initialize",()=>{var oi=document.createElement("span"),ci=fi.control_input;oi.style.cssText="position:absolute; top:-99999px; left:-99999px; width:auto; padding:0; white-space:pre; ",fi.wrapper.appendChild(oi);var ui=["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"];for(let bi of ui)oi.style[bi]=ci.style[bi];var gi=()=>{oi.textContent=ci.value,ci.style.width=oi.clientWidth+"px"};gi(),fi.on("update item_add item_remove",gi),On(ci,"input",gi),On(ci,"keyup",gi),On(ci,"blur",gi),On(ci,"update",gi)})}function Kl(){var fi=this,oi=fi.deleteSelection;this.hook("instead","deleteSelection",ci=>fi.activeItems.length?oi.call(fi,ci):!1)}function Ql(){this.hook("instead","setActiveItem",()=>{}),this.hook("instead","selectAll",()=>{})}function Xl(){var fi=this,oi=fi.onKeyDown;fi.hook("instead","onKeyDown",ci=>{var ui,gi,bi,yi;if(!fi.isOpen||!(ci.keyCode===Ss||ci.keyCode===Ys))return oi.call(fi,ci);fi.ignoreHover=!0,yi=hs(fi.activeOption,"[data-group]"),ui=qn(fi.activeOption,"[data-selectable]"),yi&&(ci.keyCode===Ss?yi=yi.previousSibling:yi=yi.nextSibling,yi&&(bi=yi.querySelectorAll("[data-selectable]"),gi=bi[Math.min(bi.length-1,ui)],gi&&fi.setActiveOption(gi)))})}function Jl(fi){let oi=Object.assign({label:"×",title:"Remove",className:"remove",append:!0},fi);var ci=this;if(oi.append){var ui='
'+oi.label+" ";ci.hook("after","setupTemplates",()=>{var gi=ci.settings.render.item;ci.settings.render.item=(bi,yi)=>{var Ci=Ii(gi.call(ci,bi,yi)),Oi=Ii(ui);return Ci.appendChild(Oi),On(Oi,"mousedown",Di=>{Dn(Di,!0)}),On(Oi,"click",Di=>{ci.isLocked||(Dn(Di,!0),!ci.isLocked&&ci.shouldDelete([Ci],Di)&&(ci.removeItem(Ci),ci.refreshOptions(!1),ci.inputState()))}),Ci}})}}function Zl(fi){let oi=this,ci=Object.assign({text:ui=>ui[oi.settings.labelField]},fi);oi.on("item_remove",function(ui){if(oi.isFocused&&oi.control_input.value.trim()===""){var gi=oi.options[ui];gi&&oi.setTextboxValue(ci.text.call(oi,gi))}})}function ec(){let fi=this,oi=fi.canLoad,ci=fi.clearActiveOption,ui=fi.loadCallback;var gi={},bi,yi=!1,Ci,Oi=[];if(fi.settings.shouldLoadMore||(fi.settings.shouldLoadMore=()=>{if(bi.clientHeight/(bi.scrollHeight-bi.scrollTop)>.9)return!0;if(fi.activeOption){var Zi=fi.selectable(),In=Array.from(Zi).indexOf(fi.activeOption);if(In>=Zi.length-2)return!0}return!1}),!fi.settings.firstUrl)throw"virtual_scroll plugin requires a firstUrl() method";fi.settings.sortField=[{field:"$order"},{field:"$score"}];let Di=Bi=>typeof fi.settings.maxOptions=="number"&&bi.children.length>=fi.settings.maxOptions?!1:!!(Bi in gi&&gi[Bi]),Wi=(Bi,Zi)=>fi.items.indexOf(Zi)>=0||Oi.indexOf(Zi)>=0;fi.setNextUrl=(Bi,Zi)=>{gi[Bi]=Zi},fi.getUrl=Bi=>{if(Bi in gi){let Zi=gi[Bi];return gi[Bi]=!1,Zi}return fi.clearPagination(),fi.settings.firstUrl.call(fi,Bi)},fi.clearPagination=()=>{gi={}},fi.hook("instead","clearActiveOption",()=>{if(!yi)return ci.call(fi)}),fi.hook("instead","canLoad",Bi=>Bi in gi?Di(Bi):oi.call(fi,Bi)),fi.hook("instead","loadCallback",(Bi,Zi)=>{if(!yi)fi.clearOptions(Wi);else if(Ci){let In=Bi[0];In!==void 0&&(Ci.dataset.value=In[fi.settings.valueField])}ui.call(fi,Bi,Zi),yi=!1}),fi.hook("after","refreshOptions",()=>{let Bi=fi.lastValue;var Zi;Di(Bi)?(Zi=fi.render("loading_more",{query:Bi}),Zi&&(Zi.setAttribute("data-selectable",""),Ci=Zi)):Bi in gi&&!bi.querySelector(".no-results")&&(Zi=fi.render("no_more_results",{query:Bi})),Zi&&(Gn(Zi,fi.settings.optionClass),bi.append(Zi))}),fi.on("initialize",()=>{Oi=Object.keys(fi.options),bi=fi.dropdown_content,fi.settings.render=Object.assign({},{loading_more:()=>'
Loading more results ...
',no_more_results:()=>'
No more results
'},fi.settings.render),bi.addEventListener("scroll",()=>{fi.settings.shouldLoadMore.call(fi)&&Di(fi.lastValue)&&(yi||(yi=!0,fi.load.call(fi,fi.lastValue)))})})}return nn.define("change_listener",Xi),nn.define("checkbox_options",_n),nn.define("clear_button",Ki),nn.define("drag_drop",is),nn.define("dropdown_header",mo),nn.define("caret_position",Qs),nn.define("dropdown_input",Gl),nn.define("input_autogrow",ma),nn.define("no_backspace_delete",Kl),nn.define("no_active_items",Ql),nn.define("optgroup_columns",Xl),nn.define("remove_button",Jl),nn.define("restore_on_backspace",Zl),nn.define("virtual_scroll",ec),nn})});var Ud=Ya((Tl,Wd)=>{(function(ii,ti){typeof Tl=="object"&&typeof Wd!="undefined"?ti(Tl):typeof define=="function"&&define.amd?define(["exports"],ti):(ii=typeof globalThis!="undefined"?globalThis:ii||self,ti(ii.diacritics={}))})(Tl,function(ii){"use strict";let ti=Ni=>(Ni=Ni.filter(Boolean),Ni.length<2?Ni[0]||"":ai(Ni)==1?"["+Ni.join("")+"]":"(?:"+Ni.join("|")+")"),ei=Ni=>{if(!ri(Ni))return Ni.join("");let Hi="",Pi=0,$i=()=>{Pi>1&&(Hi+="{"+Pi+"}")};return Ni.forEach((mn,tn)=>{if(mn===Ni[tn-1]){Pi++;return}$i(),Hi+=mn,Pi=1}),$i(),Hi},ni=Ni=>{let Hi=di(Ni);return ti(Hi)},ri=Ni=>new Set(Ni).size!==Ni.length,si=Ni=>(Ni+"").replace(/([\$\(\)\*\+\.\?\[\]\^\{\|\}\\])/gu,"\\$1"),ai=Ni=>Ni.reduce((Hi,Pi)=>Math.max(Hi,li(Pi)),0),li=Ni=>di(Ni).length,di=Ni=>Array.from(Ni),mi=Ni=>{if(Ni.length===1)return[[Ni]];let Hi=[],Pi=Ni.substring(1);return mi(Pi).forEach(function(mn){let tn=mn.slice(0);tn[0]=Ni.charAt(0)+tn[0],Hi.push(tn),tn=mn.slice(0),tn.unshift(Ni.charAt(0)),Hi.push(tn)}),Hi},hi=[[0,65535]],_i="[\u0300-\u036F\xB7\u02BE\u02BC]";ii.unicode_map=void 0;let Ei,Ai=3,ki={},Ti={"/":"\u2044\u2215",0:"\u07C0",a:"\u2C65\u0250\u0251",aa:"\uA733",ae:"\xE6\u01FD\u01E3",ao:"\uA735",au:"\uA737",av:"\uA739\uA73B",ay:"\uA73D",b:"\u0180\u0253\u0183",c:"\uA73F\u0188\u023C\u2184",d:"\u0111\u0257\u0256\u1D05\u018C\uABB7\u0501\u0266",e:"\u025B\u01DD\u1D07\u0247",f:"\uA77C\u0192",g:"\u01E5\u0260\uA7A1\u1D79\uA77F\u0262",h:"\u0127\u2C68\u2C76\u0265",i:"\u0268\u0131",j:"\u0249\u0237",k:"\u0199\u2C6A\uA741\uA743\uA745\uA7A3",l:"\u0142\u019A\u026B\u2C61\uA749\uA747\uA781\u026D",m:"\u0271\u026F\u03FB",n:"\uA7A5\u019E\u0272\uA791\u1D0E\u043B\u0509",o:"\xF8\u01FF\u0254\u0275\uA74B\uA74D\u1D11",oe:"\u0153",oi:"\u01A3",oo:"\uA74F",ou:"\u0223",p:"\u01A5\u1D7D\uA751\uA753\uA755\u03C1",q:"\uA757\uA759\u024B",r:"\u024D\u027D\uA75B\uA7A7\uA783",s:"\xDF\u023F\uA7A9\uA785\u0282",t:"\u0167\u01AD\u0288\u2C66\uA787",th:"\xFE",tz:"\uA729",u:"\u0289",v:"\u028B\uA75F\u028C",vy:"\uA761",w:"\u2C73",y:"\u01B4\u024F\u1EFF",z:"\u01B6\u0225\u0240\u2C6C\uA763",hv:"\u0195"};for(let Ni in Ti){let Hi=Ti[Ni]||"";for(let Pi=0;Pi
{ii.unicode_map===void 0&&(ii.unicode_map=bn(Ni||hi))},rn=(Ni,Hi="NFKD")=>Ni.normalize(Hi),ln=Ni=>di(Ni).reduce((Hi,Pi)=>Hi+Yi(Pi),""),Yi=Ni=>(Ni=rn(Ni).toLowerCase().replace(Fi,Hi=>ki[Hi]||""),rn(Ni,"NFC"));function*on(Ni){for(let[Hi,Pi]of Ni)for(let $i=Hi;$i<=Pi;$i++){let mn=String.fromCharCode($i),tn=ln(mn);tn!=mn.toLowerCase()&&(tn.length>Ai||tn.length!=0&&(yield{folded:tn,composed:mn,code_point:$i}))}}let an=Ni=>{let Hi={},Pi=($i,mn)=>{let tn=Hi[$i]||new Set,zi=new RegExp("^"+ni(tn)+"$","iu");mn.match(zi)||(tn.add(si(mn)),Hi[$i]=tn)};for(let $i of on(Ni))Pi($i.folded,$i.folded),Pi($i.folded,$i.composed);return Hi},bn=Ni=>{let Hi=an(Ni),Pi={},$i=[];for(let tn in Hi){let zi=Hi[tn];zi&&(Pi[tn]=ni(zi)),tn.length>1&&$i.push(si(tn))}$i.sort((tn,zi)=>zi.length-tn.length);let mn=ti($i);return Ei=new RegExp("^"+mn,"u"),Pi},hn=(Ni,Hi=1)=>{let Pi=0;return Ni=Ni.map($i=>(ii.unicode_map[$i]&&(Pi+=$i.length),ii.unicode_map[$i]||$i)),Pi>=Hi?ei(Ni):""},pn=(Ni,Hi=1)=>(Hi=Math.max(Hi,Ni.length-1),ti(mi(Ni).map(Pi=>hn(Pi,Hi)))),gn=(Ni,Hi=!0)=>{let Pi=Ni.length>1?1:0;return ti(Ni.map($i=>{let mn=[],tn=Hi?$i.length():$i.length()-1;for(let zi=0;zi{for(let Pi of Hi){if(Pi.start!=Ni.start||Pi.end!=Ni.end||Pi.substrs.join("")!==Ni.substrs.join(""))continue;let $i=Ni.parts,mn=zi=>{for(let Li of $i){if(Li.start===zi.start&&Li.substr===zi.substr)return!1;if(!(zi.length==1||Li.length==1)&&(zi.startLi.start||Li.startzi.start))return!0}return!1};if(!(Pi.parts.filter(mn).length>0))return!0}return!1};class vn{constructor(){this.parts=[],this.substrs=[],this.start=0,this.end=0}add(Hi){Hi&&(this.parts.push(Hi),this.substrs.push(Hi.substr),this.start=Math.min(Hi.start,this.start),this.end=Math.max(Hi.end,this.end))}last(){return this.parts[this.parts.length-1]}length(){return this.parts.length}clone(Hi,Pi){let $i=new vn,mn=JSON.parse(JSON.stringify(this.parts)),tn=mn.pop();for(let ji of mn)$i.add(ji);let zi=Pi.substr.substring(0,Hi-tn.start),Li=zi.length;return $i.add({start:tn.start,end:tn.start+Li,length:Li,substr:zi}),$i}}let Tn=Ni=>{en(),Ni=ln(Ni);let Hi="",Pi=[new vn];for(let $i=0;$i0){ji=ji.sort((Vi,Ii)=>Vi.length()-Ii.length());for(let Vi of ji)un(Vi,Pi)||Pi.push(Vi);continue}if($i>0&&Ji.size==1&&!Ji.has("3")){Hi+=gn(Pi,!1);let Vi=new vn,Ii=Pi[0];Ii&&Vi.add(Ii.last()),Pi=[Vi]}}return Hi+=gn(Pi,!0),Hi};ii._asciifold=Yi,ii.asciifold=ln,ii.code_points=hi,ii.escape_regex=si,ii.generateMap=bn,ii.generateSets=an,ii.generator=on,ii.getPattern=Tn,ii.initialize=en,ii.mapSequence=hn,ii.normalize=rn,ii.substringsToPattern=pn,Object.defineProperty(ii,"__esModule",{value:!0})})});var If=Ya((Ra,eu)=>{(function(ti,ei){typeof Ra=="object"&&typeof eu=="object"?eu.exports=ei():typeof define=="function"&&define.amd?define([],ei):typeof Ra=="object"?Ra.ClipboardJS=ei():ti.ClipboardJS=ei()})(Ra,function(){return function(){var ii={686:function(ni,ri,si){"use strict";si.d(ri,{default:function(){return tn}});var ai=si(279),li=si.n(ai),di=si(370),mi=si.n(di),hi=si(817),_i=si.n(hi);function Ei(zi){try{return document.execCommand(zi)}catch(Li){return!1}}var Ai=function(Li){var ji=_i()(Li);return Ei("cut"),ji},ki=Ai;function Ti(zi){var Li=document.documentElement.getAttribute("dir")==="rtl",ji=document.createElement("textarea");ji.style.fontSize="12pt",ji.style.border="0",ji.style.padding="0",ji.style.margin="0",ji.style.position="absolute",ji.style[Li?"right":"left"]="-9999px";var Ji=window.pageYOffset||document.documentElement.scrollTop;return ji.style.top="".concat(Ji,"px"),ji.setAttribute("readonly",""),ji.value=zi,ji}var Fi=function(Li,ji){var Ji=Ti(Li);ji.container.appendChild(Ji);var Vi=_i()(Ji);return Ei("copy"),Ji.remove(),Vi},en=function(Li){var ji=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},Ji="";return typeof Li=="string"?Ji=Fi(Li,ji):Li instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(Li==null?void 0:Li.type)?Ji=Fi(Li.value,ji):(Ji=_i()(Li),Ei("copy")),Ji},rn=en;function ln(zi){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ln=function(ji){return typeof ji}:ln=function(ji){return ji&&typeof Symbol=="function"&&ji.constructor===Symbol&&ji!==Symbol.prototype?"symbol":typeof ji},ln(zi)}var Yi=function(){var Li=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ji=Li.action,Ji=ji===void 0?"copy":ji,Vi=Li.container,Ii=Li.target,Sn=Li.text;if(Ji!=="copy"&&Ji!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Ii!==void 0)if(Ii&&ln(Ii)==="object"&&Ii.nodeType===1){if(Ji==="copy"&&Ii.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(Ji==="cut"&&(Ii.hasAttribute("readonly")||Ii.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Sn)return rn(Sn,{container:Vi});if(Ii)return Ji==="cut"?ki(Ii):rn(Ii,{container:Vi})},on=Yi;function an(zi){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?an=function(ji){return typeof ji}:an=function(ji){return ji&&typeof Symbol=="function"&&ji.constructor===Symbol&&ji!==Symbol.prototype?"symbol":typeof ji},an(zi)}function bn(zi,Li){if(!(zi instanceof Li))throw new TypeError("Cannot call a class as a function")}function hn(zi,Li){for(var ji=0;ji0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof Vi.action=="function"?Vi.action:this.defaultAction,this.target=typeof Vi.target=="function"?Vi.target:this.defaultTarget,this.text=typeof Vi.text=="function"?Vi.text:this.defaultText,this.container=an(Vi.container)==="object"?Vi.container:document.body}},{key:"listenClick",value:function(Vi){var Ii=this;this.listener=mi()(Vi,"click",function(Sn){return Ii.onClick(Sn)})}},{key:"onClick",value:function(Vi){var Ii=Vi.delegateTarget||Vi.currentTarget,Sn=this.action(Ii)||"copy",Yn=on({action:Sn,container:this.container,target:this.target(Ii),text:this.text(Ii)});this.emit(Yn?"success":"error",{action:Sn,text:Yn,trigger:Ii,clearSelection:function(){Ii&&Ii.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(Vi){return $i("action",Vi)}},{key:"defaultTarget",value:function(Vi){var Ii=$i("target",Vi);if(Ii)return document.querySelector(Ii)}},{key:"defaultText",value:function(Vi){return $i("text",Vi)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(Vi){var Ii=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return rn(Vi,Ii)}},{key:"cut",value:function(Vi){return ki(Vi)}},{key:"isSupported",value:function(){var Vi=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Ii=typeof Vi=="string"?[Vi]:Vi,Sn=!!document.queryCommandSupported;return Ii.forEach(function(Yn){Sn=Sn&&!!document.queryCommandSupported(Yn)}),Sn}}]),ji}(li()),tn=mn},828:function(ni){var ri=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var si=Element.prototype;si.matches=si.matchesSelector||si.mozMatchesSelector||si.msMatchesSelector||si.oMatchesSelector||si.webkitMatchesSelector}function ai(li,di){for(;li&&li.nodeType!==ri;){if(typeof li.matches=="function"&&li.matches(di))return li;li=li.parentNode}}ni.exports=ai},438:function(ni,ri,si){var ai=si(828);function li(hi,_i,Ei,Ai,ki){var Ti=mi.apply(this,arguments);return hi.addEventListener(Ei,Ti,ki),{destroy:function(){hi.removeEventListener(Ei,Ti,ki)}}}function di(hi,_i,Ei,Ai,ki){return typeof hi.addEventListener=="function"?li.apply(null,arguments):typeof Ei=="function"?li.bind(null,document).apply(null,arguments):(typeof hi=="string"&&(hi=document.querySelectorAll(hi)),Array.prototype.map.call(hi,function(Ti){return li(Ti,_i,Ei,Ai,ki)}))}function mi(hi,_i,Ei,Ai){return function(ki){ki.delegateTarget=ai(ki.target,_i),ki.delegateTarget&&Ai.call(hi,ki)}}ni.exports=di},879:function(ni,ri){ri.node=function(si){return si!==void 0&&si instanceof HTMLElement&&si.nodeType===1},ri.nodeList=function(si){var ai=Object.prototype.toString.call(si);return si!==void 0&&(ai==="[object NodeList]"||ai==="[object HTMLCollection]")&&"length"in si&&(si.length===0||ri.node(si[0]))},ri.string=function(si){return typeof si=="string"||si instanceof String},ri.fn=function(si){var ai=Object.prototype.toString.call(si);return ai==="[object Function]"}},370:function(ni,ri,si){var ai=si(879),li=si(438);function di(Ei,Ai,ki){if(!Ei&&!Ai&&!ki)throw new Error("Missing required arguments");if(!ai.string(Ai))throw new TypeError("Second argument must be a String");if(!ai.fn(ki))throw new TypeError("Third argument must be a Function");if(ai.node(Ei))return mi(Ei,Ai,ki);if(ai.nodeList(Ei))return hi(Ei,Ai,ki);if(ai.string(Ei))return _i(Ei,Ai,ki);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function mi(Ei,Ai,ki){return Ei.addEventListener(Ai,ki),{destroy:function(){Ei.removeEventListener(Ai,ki)}}}function hi(Ei,Ai,ki){return Array.prototype.forEach.call(Ei,function(Ti){Ti.addEventListener(Ai,ki)}),{destroy:function(){Array.prototype.forEach.call(Ei,function(Ti){Ti.removeEventListener(Ai,ki)})}}}function _i(Ei,Ai,ki){return li(document.body,Ei,Ai,ki)}ni.exports=di},817:function(ni){function ri(si){var ai;if(si.nodeName==="SELECT")si.focus(),ai=si.value;else if(si.nodeName==="INPUT"||si.nodeName==="TEXTAREA"){var li=si.hasAttribute("readonly");li||si.setAttribute("readonly",""),si.select(),si.setSelectionRange(0,si.value.length),li||si.removeAttribute("readonly"),ai=si.value}else{si.hasAttribute("contenteditable")&&si.focus();var di=window.getSelection(),mi=document.createRange();mi.selectNodeContents(si),di.removeAllRanges(),di.addRange(mi),ai=di.toString()}return ai}ni.exports=ri},279:function(ni){function ri(){}ri.prototype={on:function(si,ai,li){var di=this.e||(this.e={});return(di[si]||(di[si]=[])).push({fn:ai,ctx:li}),this},once:function(si,ai,li){var di=this;function mi(){di.off(si,mi),ai.apply(li,arguments)}return mi._=ai,this.on(si,mi,li)},emit:function(si){var ai=[].slice.call(arguments,1),li=((this.e||(this.e={}))[si]||[]).slice(),di=0,mi=li.length;for(di;di_u,afterRead:()=>gu,afterWrite:()=>wu,applyStyles:()=>Vo,arrow:()=>Ka,auto:()=>ga,basePlacements:()=>Ns,beforeMain:()=>vu,beforeRead:()=>pu,beforeWrite:()=>bu,bottom:()=>Xn,clippingParents:()=>ic,computeStyles:()=>Wo,createPopper:()=>Sa,createPopperBase:()=>Mu,createPopperLite:()=>ku,detectOverflow:()=>rs,end:()=>Xs,eventListeners:()=>Uo,flip:()=>Za,hide:()=>el,left:()=>Wn,main:()=>yu,modifierPhases:()=>rc,offset:()=>tl,placements:()=>ya,popper:()=>go,popperGenerator:()=>To,popperOffsets:()=>Ko,preventOverflow:()=>il,read:()=>mu,reference:()=>nc,right:()=>Kn,start:()=>Ls,top:()=>Vn,variationPlacements:()=>Ga,viewport:()=>va,write:()=>Eu});var Vn="top",Xn="bottom",Kn="right",Wn="left",ga="auto",Ns=[Vn,Xn,Kn,Wn],Ls="start",Xs="end",ic="clippingParents",va="viewport",go="popper",nc="reference",Ga=Ns.reduce(function(ii,ti){return ii.concat([ti+"-"+Ls,ti+"-"+Xs])},[]),ya=[].concat(Ns,[ga]).reduce(function(ii,ti){return ii.concat([ti,ti+"-"+Ls,ti+"-"+Xs])},[]),pu="beforeRead",mu="read",gu="afterRead",vu="beforeMain",yu="main",_u="afterMain",bu="beforeWrite",Eu="write",wu="afterWrite",rc=[pu,mu,gu,vu,yu,_u,bu,Eu,wu];function Yr(ii){return ii?(ii.nodeName||"").toLowerCase():null}function $n(ii){if(ii==null)return window;if(ii.toString()!=="[object Window]"){var ti=ii.ownerDocument;return ti&&ti.defaultView||window}return ii}function vs(ii){var ti=$n(ii).Element;return ii instanceof ti||ii instanceof Element}function Wr(ii){var ti=$n(ii).HTMLElement;return ii instanceof ti||ii instanceof HTMLElement}function jo(ii){if(typeof ShadowRoot=="undefined")return!1;var ti=$n(ii).ShadowRoot;return ii instanceof ti||ii instanceof ShadowRoot}function hh(ii){var ti=ii.state;Object.keys(ti.elements).forEach(function(ei){var ni=ti.styles[ei]||{},ri=ti.attributes[ei]||{},si=ti.elements[ei];!Wr(si)||!Yr(si)||(Object.assign(si.style,ni),Object.keys(ri).forEach(function(ai){var li=ri[ai];li===!1?si.removeAttribute(ai):si.setAttribute(ai,li===!0?"":li)}))})}function ph(ii){var ti=ii.state,ei={popper:{position:ti.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(ti.elements.popper.style,ei.popper),ti.styles=ei,ti.elements.arrow&&Object.assign(ti.elements.arrow.style,ei.arrow),function(){Object.keys(ti.elements).forEach(function(ni){var ri=ti.elements[ni],si=ti.attributes[ni]||{},ai=Object.keys(ti.styles.hasOwnProperty(ni)?ti.styles[ni]:ei[ni]),li=ai.reduce(function(di,mi){return di[mi]="",di},{});!Wr(ri)||!Yr(ri)||(Object.assign(ri.style,li),Object.keys(si).forEach(function(di){ri.removeAttribute(di)}))})}}var Vo={name:"applyStyles",enabled:!0,phase:"write",fn:hh,effect:ph,requires:["computeStyles"]};function Gr(ii){return ii.split("-")[0]}var As=Math.max,vo=Math.min,Is=Math.round;function qo(){var ii=navigator.userAgentData;return ii!=null&&ii.brands&&Array.isArray(ii.brands)?ii.brands.map(function(ti){return ti.brand+"/"+ti.version}).join(" "):navigator.userAgent}function _a(){return!/^((?!chrome|android).)*safari/i.test(qo())}function ys(ii,ti,ei){ti===void 0&&(ti=!1),ei===void 0&&(ei=!1);var ni=ii.getBoundingClientRect(),ri=1,si=1;ti&&Wr(ii)&&(ri=ii.offsetWidth>0&&Is(ni.width)/ii.offsetWidth||1,si=ii.offsetHeight>0&&Is(ni.height)/ii.offsetHeight||1);var ai=vs(ii)?$n(ii):window,li=ai.visualViewport,di=!_a()&&ei,mi=(ni.left+(di&&li?li.offsetLeft:0))/ri,hi=(ni.top+(di&&li?li.offsetTop:0))/si,_i=ni.width/ri,Ei=ni.height/si;return{width:_i,height:Ei,top:hi,right:mi+_i,bottom:hi+Ei,left:mi,x:mi,y:hi}}function yo(ii){var ti=ys(ii),ei=ii.offsetWidth,ni=ii.offsetHeight;return Math.abs(ti.width-ei)<=1&&(ei=ti.width),Math.abs(ti.height-ni)<=1&&(ni=ti.height),{x:ii.offsetLeft,y:ii.offsetTop,width:ei,height:ni}}function ba(ii,ti){var ei=ti.getRootNode&&ti.getRootNode();if(ii.contains(ti))return!0;if(ei&&jo(ei)){var ni=ti;do{if(ni&&ii.isSameNode(ni))return!0;ni=ni.parentNode||ni.host}while(ni)}return!1}function ns(ii){return $n(ii).getComputedStyle(ii)}function sc(ii){return["table","td","th"].indexOf(Yr(ii))>=0}function Qr(ii){return((vs(ii)?ii.ownerDocument:ii.document)||window.document).documentElement}function Rs(ii){return Yr(ii)==="html"?ii:ii.assignedSlot||ii.parentNode||(jo(ii)?ii.host:null)||Qr(ii)}function xu(ii){return!Wr(ii)||ns(ii).position==="fixed"?null:ii.offsetParent}function mh(ii){var ti=/firefox/i.test(qo()),ei=/Trident/i.test(qo());if(ei&&Wr(ii)){var ni=ns(ii);if(ni.position==="fixed")return null}var ri=Rs(ii);for(jo(ri)&&(ri=ri.host);Wr(ri)&&["html","body"].indexOf(Yr(ri))<0;){var si=ns(ri);if(si.transform!=="none"||si.perspective!=="none"||si.contain==="paint"||["transform","perspective"].indexOf(si.willChange)!==-1||ti&&si.willChange==="filter"||ti&&si.filter&&si.filter!=="none")return ri;ri=ri.parentNode}return null}function Ds(ii){for(var ti=$n(ii),ei=xu(ii);ei&&sc(ei)&&ns(ei).position==="static";)ei=xu(ei);return ei&&(Yr(ei)==="html"||Yr(ei)==="body"&&ns(ei).position==="static")?ti:ei||mh(ii)||ti}function _o(ii){return["top","bottom"].indexOf(ii)>=0?"x":"y"}function bo(ii,ti,ei){return As(ii,vo(ti,ei))}function Tu(ii,ti,ei){var ni=bo(ii,ti,ei);return ni>ei?ei:ni}function Ea(){return{top:0,right:0,bottom:0,left:0}}function wa(ii){return Object.assign({},Ea(),ii)}function xa(ii,ti){return ti.reduce(function(ei,ni){return ei[ni]=ii,ei},{})}var gh=function(ti,ei){return ti=typeof ti=="function"?ti(Object.assign({},ei.rects,{placement:ei.placement})):ti,wa(typeof ti!="number"?ti:xa(ti,Ns))};function vh(ii){var ti,ei=ii.state,ni=ii.name,ri=ii.options,si=ei.elements.arrow,ai=ei.modifiersData.popperOffsets,li=Gr(ei.placement),di=_o(li),mi=[Wn,Kn].indexOf(li)>=0,hi=mi?"height":"width";if(!(!si||!ai)){var _i=gh(ri.padding,ei),Ei=yo(si),Ai=di==="y"?Vn:Wn,ki=di==="y"?Xn:Kn,Ti=ei.rects.reference[hi]+ei.rects.reference[di]-ai[di]-ei.rects.popper[hi],Fi=ai[di]-ei.rects.reference[di],en=Ds(si),rn=en?di==="y"?en.clientHeight||0:en.clientWidth||0:0,ln=Ti/2-Fi/2,Yi=_i[Ai],on=rn-Ei[hi]-_i[ki],an=rn/2-Ei[hi]/2+ln,bn=bo(Yi,an,on),hn=di;ei.modifiersData[ni]=(ti={},ti[hn]=bn,ti.centerOffset=bn-an,ti)}}function yh(ii){var ti=ii.state,ei=ii.options,ni=ei.element,ri=ni===void 0?"[data-popper-arrow]":ni;ri!=null&&(typeof ri=="string"&&(ri=ti.elements.popper.querySelector(ri),!ri)||ba(ti.elements.popper,ri)&&(ti.elements.arrow=ri))}var Ka={name:"arrow",enabled:!0,phase:"main",fn:vh,effect:yh,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function _s(ii){return ii.split("-")[1]}var _h={top:"auto",right:"auto",bottom:"auto",left:"auto"};function bh(ii,ti){var ei=ii.x,ni=ii.y,ri=ti.devicePixelRatio||1;return{x:Is(ei*ri)/ri||0,y:Is(ni*ri)/ri||0}}function Su(ii){var ti,ei=ii.popper,ni=ii.popperRect,ri=ii.placement,si=ii.variation,ai=ii.offsets,li=ii.position,di=ii.gpuAcceleration,mi=ii.adaptive,hi=ii.roundOffsets,_i=ii.isFixed,Ei=ai.x,Ai=Ei===void 0?0:Ei,ki=ai.y,Ti=ki===void 0?0:ki,Fi=typeof hi=="function"?hi({x:Ai,y:Ti}):{x:Ai,y:Ti};Ai=Fi.x,Ti=Fi.y;var en=ai.hasOwnProperty("x"),rn=ai.hasOwnProperty("y"),ln=Wn,Yi=Vn,on=window;if(mi){var an=Ds(ei),bn="clientHeight",hn="clientWidth";if(an===$n(ei)&&(an=Qr(ei),ns(an).position!=="static"&&li==="absolute"&&(bn="scrollHeight",hn="scrollWidth")),an=an,ri===Vn||(ri===Wn||ri===Kn)&&si===Xs){Yi=Xn;var pn=_i&&an===on&&on.visualViewport?on.visualViewport.height:an[bn];Ti-=pn-ni.height,Ti*=di?1:-1}if(ri===Wn||(ri===Vn||ri===Xn)&&si===Xs){ln=Kn;var gn=_i&&an===on&&on.visualViewport?on.visualViewport.width:an[hn];Ai-=gn-ni.width,Ai*=di?1:-1}}var un=Object.assign({position:li},mi&&_h),vn=hi===!0?bh({x:Ai,y:Ti},$n(ei)):{x:Ai,y:Ti};if(Ai=vn.x,Ti=vn.y,di){var Tn;return Object.assign({},un,(Tn={},Tn[Yi]=rn?"0":"",Tn[ln]=en?"0":"",Tn.transform=(on.devicePixelRatio||1)<=1?"translate("+Ai+"px, "+Ti+"px)":"translate3d("+Ai+"px, "+Ti+"px, 0)",Tn))}return Object.assign({},un,(ti={},ti[Yi]=rn?Ti+"px":"",ti[ln]=en?Ai+"px":"",ti.transform="",ti))}function Eh(ii){var ti=ii.state,ei=ii.options,ni=ei.gpuAcceleration,ri=ni===void 0?!0:ni,si=ei.adaptive,ai=si===void 0?!0:si,li=ei.roundOffsets,di=li===void 0?!0:li,mi={placement:Gr(ti.placement),variation:_s(ti.placement),popper:ti.elements.popper,popperRect:ti.rects.popper,gpuAcceleration:ri,isFixed:ti.options.strategy==="fixed"};ti.modifiersData.popperOffsets!=null&&(ti.styles.popper=Object.assign({},ti.styles.popper,Su(Object.assign({},mi,{offsets:ti.modifiersData.popperOffsets,position:ti.options.strategy,adaptive:ai,roundOffsets:di})))),ti.modifiersData.arrow!=null&&(ti.styles.arrow=Object.assign({},ti.styles.arrow,Su(Object.assign({},mi,{offsets:ti.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:di})))),ti.attributes.popper=Object.assign({},ti.attributes.popper,{"data-popper-placement":ti.placement})}var Wo={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Eh,data:{}};var Qa={passive:!0};function wh(ii){var ti=ii.state,ei=ii.instance,ni=ii.options,ri=ni.scroll,si=ri===void 0?!0:ri,ai=ni.resize,li=ai===void 0?!0:ai,di=$n(ti.elements.popper),mi=[].concat(ti.scrollParents.reference,ti.scrollParents.popper);return si&&mi.forEach(function(hi){hi.addEventListener("scroll",ei.update,Qa)}),li&&di.addEventListener("resize",ei.update,Qa),function(){si&&mi.forEach(function(hi){hi.removeEventListener("scroll",ei.update,Qa)}),li&&di.removeEventListener("resize",ei.update,Qa)}}var Uo={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:wh,data:{}};var xh={left:"right",right:"left",bottom:"top",top:"bottom"};function Yo(ii){return ii.replace(/left|right|bottom|top/g,function(ti){return xh[ti]})}var Th={start:"end",end:"start"};function Xa(ii){return ii.replace(/start|end/g,function(ti){return Th[ti]})}function Eo(ii){var ti=$n(ii),ei=ti.pageXOffset,ni=ti.pageYOffset;return{scrollLeft:ei,scrollTop:ni}}function wo(ii){return ys(Qr(ii)).left+Eo(ii).scrollLeft}function oc(ii,ti){var ei=$n(ii),ni=Qr(ii),ri=ei.visualViewport,si=ni.clientWidth,ai=ni.clientHeight,li=0,di=0;if(ri){si=ri.width,ai=ri.height;var mi=_a();(mi||!mi&&ti==="fixed")&&(li=ri.offsetLeft,di=ri.offsetTop)}return{width:si,height:ai,x:li+wo(ii),y:di}}function ac(ii){var ti,ei=Qr(ii),ni=Eo(ii),ri=(ti=ii.ownerDocument)==null?void 0:ti.body,si=As(ei.scrollWidth,ei.clientWidth,ri?ri.scrollWidth:0,ri?ri.clientWidth:0),ai=As(ei.scrollHeight,ei.clientHeight,ri?ri.scrollHeight:0,ri?ri.clientHeight:0),li=-ni.scrollLeft+wo(ii),di=-ni.scrollTop;return ns(ri||ei).direction==="rtl"&&(li+=As(ei.clientWidth,ri?ri.clientWidth:0)-si),{width:si,height:ai,x:li,y:di}}function xo(ii){var ti=ns(ii),ei=ti.overflow,ni=ti.overflowX,ri=ti.overflowY;return/auto|scroll|overlay|hidden/.test(ei+ri+ni)}function Ja(ii){return["html","body","#document"].indexOf(Yr(ii))>=0?ii.ownerDocument.body:Wr(ii)&&xo(ii)?ii:Ja(Rs(ii))}function Js(ii,ti){var ei;ti===void 0&&(ti=[]);var ni=Ja(ii),ri=ni===((ei=ii.ownerDocument)==null?void 0:ei.body),si=$n(ni),ai=ri?[si].concat(si.visualViewport||[],xo(ni)?ni:[]):ni,li=ti.concat(ai);return ri?li:li.concat(Js(Rs(ai)))}function Go(ii){return Object.assign({},ii,{left:ii.x,top:ii.y,right:ii.x+ii.width,bottom:ii.y+ii.height})}function Sh(ii,ti){var ei=ys(ii,!1,ti==="fixed");return ei.top=ei.top+ii.clientTop,ei.left=ei.left+ii.clientLeft,ei.bottom=ei.top+ii.clientHeight,ei.right=ei.left+ii.clientWidth,ei.width=ii.clientWidth,ei.height=ii.clientHeight,ei.x=ei.left,ei.y=ei.top,ei}function Cu(ii,ti,ei){return ti===va?Go(oc(ii,ei)):vs(ti)?Sh(ti,ei):Go(ac(Qr(ii)))}function Ch(ii){var ti=Js(Rs(ii)),ei=["absolute","fixed"].indexOf(ns(ii).position)>=0,ni=ei&&Wr(ii)?Ds(ii):ii;return vs(ni)?ti.filter(function(ri){return vs(ri)&&ba(ri,ni)&&Yr(ri)!=="body"}):[]}function lc(ii,ti,ei,ni){var ri=ti==="clippingParents"?Ch(ii):[].concat(ti),si=[].concat(ri,[ei]),ai=si[0],li=si.reduce(function(di,mi){var hi=Cu(ii,mi,ni);return di.top=As(hi.top,di.top),di.right=vo(hi.right,di.right),di.bottom=vo(hi.bottom,di.bottom),di.left=As(hi.left,di.left),di},Cu(ii,ai,ni));return li.width=li.right-li.left,li.height=li.bottom-li.top,li.x=li.left,li.y=li.top,li}function Ta(ii){var ti=ii.reference,ei=ii.element,ni=ii.placement,ri=ni?Gr(ni):null,si=ni?_s(ni):null,ai=ti.x+ti.width/2-ei.width/2,li=ti.y+ti.height/2-ei.height/2,di;switch(ri){case Vn:di={x:ai,y:ti.y-ei.height};break;case Xn:di={x:ai,y:ti.y+ti.height};break;case Kn:di={x:ti.x+ti.width,y:li};break;case Wn:di={x:ti.x-ei.width,y:li};break;default:di={x:ti.x,y:ti.y}}var mi=ri?_o(ri):null;if(mi!=null){var hi=mi==="y"?"height":"width";switch(si){case Ls:di[mi]=di[mi]-(ti[hi]/2-ei[hi]/2);break;case Xs:di[mi]=di[mi]+(ti[hi]/2-ei[hi]/2);break;default:}}return di}function rs(ii,ti){ti===void 0&&(ti={});var ei=ti,ni=ei.placement,ri=ni===void 0?ii.placement:ni,si=ei.strategy,ai=si===void 0?ii.strategy:si,li=ei.boundary,di=li===void 0?ic:li,mi=ei.rootBoundary,hi=mi===void 0?va:mi,_i=ei.elementContext,Ei=_i===void 0?go:_i,Ai=ei.altBoundary,ki=Ai===void 0?!1:Ai,Ti=ei.padding,Fi=Ti===void 0?0:Ti,en=wa(typeof Fi!="number"?Fi:xa(Fi,Ns)),rn=Ei===go?nc:go,ln=ii.rects.popper,Yi=ii.elements[ki?rn:Ei],on=lc(vs(Yi)?Yi:Yi.contextElement||Qr(ii.elements.popper),di,hi,ai),an=ys(ii.elements.reference),bn=Ta({reference:an,element:ln,strategy:"absolute",placement:ri}),hn=Go(Object.assign({},ln,bn)),pn=Ei===go?hn:an,gn={top:on.top-pn.top+en.top,bottom:pn.bottom-on.bottom+en.bottom,left:on.left-pn.left+en.left,right:pn.right-on.right+en.right},un=ii.modifiersData.offset;if(Ei===go&&un){var vn=un[ri];Object.keys(gn).forEach(function(Tn){var Ni=[Kn,Xn].indexOf(Tn)>=0?1:-1,Hi=[Vn,Xn].indexOf(Tn)>=0?"y":"x";gn[Tn]+=vn[Hi]*Ni})}return gn}function cc(ii,ti){ti===void 0&&(ti={});var ei=ti,ni=ei.placement,ri=ei.boundary,si=ei.rootBoundary,ai=ei.padding,li=ei.flipVariations,di=ei.allowedAutoPlacements,mi=di===void 0?ya:di,hi=_s(ni),_i=hi?li?Ga:Ga.filter(function(ki){return _s(ki)===hi}):Ns,Ei=_i.filter(function(ki){return mi.indexOf(ki)>=0});Ei.length===0&&(Ei=_i);var Ai=Ei.reduce(function(ki,Ti){return ki[Ti]=rs(ii,{placement:Ti,boundary:ri,rootBoundary:si,padding:ai})[Gr(Ti)],ki},{});return Object.keys(Ai).sort(function(ki,Ti){return Ai[ki]-Ai[Ti]})}function Ah(ii){if(Gr(ii)===ga)return[];var ti=Yo(ii);return[Xa(ii),ti,Xa(ti)]}function Dh(ii){var ti=ii.state,ei=ii.options,ni=ii.name;if(!ti.modifiersData[ni]._skip){for(var ri=ei.mainAxis,si=ri===void 0?!0:ri,ai=ei.altAxis,li=ai===void 0?!0:ai,di=ei.fallbackPlacements,mi=ei.padding,hi=ei.boundary,_i=ei.rootBoundary,Ei=ei.altBoundary,Ai=ei.flipVariations,ki=Ai===void 0?!0:Ai,Ti=ei.allowedAutoPlacements,Fi=ti.options.placement,en=Gr(Fi),rn=en===Fi,ln=di||(rn||!ki?[Yo(Fi)]:Ah(Fi)),Yi=[Fi].concat(ln).reduce(function(Vi,Ii){return Vi.concat(Gr(Ii)===ga?cc(ti,{placement:Ii,boundary:hi,rootBoundary:_i,padding:mi,flipVariations:ki,allowedAutoPlacements:Ti}):Ii)},[]),on=ti.rects.reference,an=ti.rects.popper,bn=new Map,hn=!0,pn=Yi[0],gn=0;gn=0,Hi=Ni?"width":"height",Pi=rs(ti,{placement:un,boundary:hi,rootBoundary:_i,altBoundary:Ei,padding:mi}),$i=Ni?Tn?Kn:Wn:Tn?Xn:Vn;on[Hi]>an[Hi]&&($i=Yo($i));var mn=Yo($i),tn=[];if(si&&tn.push(Pi[vn]<=0),li&&tn.push(Pi[$i]<=0,Pi[mn]<=0),tn.every(function(Vi){return Vi})){pn=un,hn=!1;break}bn.set(un,tn)}if(hn)for(var zi=ki?3:1,Li=function(Ii){var Sn=Yi.find(function(Yn){var Fn=bn.get(Yn);if(Fn)return Fn.slice(0,Ii).every(function(Bn){return Bn})});if(Sn)return pn=Sn,"break"},ji=zi;ji>0;ji--){var Ji=Li(ji);if(Ji==="break")break}ti.placement!==pn&&(ti.modifiersData[ni]._skip=!0,ti.placement=pn,ti.reset=!0)}}var Za={name:"flip",enabled:!0,phase:"main",fn:Dh,requiresIfExists:["offset"],data:{_skip:!1}};function Au(ii,ti,ei){return ei===void 0&&(ei={x:0,y:0}),{top:ii.top-ti.height-ei.y,right:ii.right-ti.width+ei.x,bottom:ii.bottom-ti.height+ei.y,left:ii.left-ti.width-ei.x}}function Du(ii){return[Vn,Kn,Xn,Wn].some(function(ti){return ii[ti]>=0})}function Oh(ii){var ti=ii.state,ei=ii.name,ni=ti.rects.reference,ri=ti.rects.popper,si=ti.modifiersData.preventOverflow,ai=rs(ti,{elementContext:"reference"}),li=rs(ti,{altBoundary:!0}),di=Au(ai,ni),mi=Au(li,ri,si),hi=Du(di),_i=Du(mi);ti.modifiersData[ei]={referenceClippingOffsets:di,popperEscapeOffsets:mi,isReferenceHidden:hi,hasPopperEscaped:_i},ti.attributes.popper=Object.assign({},ti.attributes.popper,{"data-popper-reference-hidden":hi,"data-popper-escaped":_i})}var el={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Oh};function Lh(ii,ti,ei){var ni=Gr(ii),ri=[Wn,Vn].indexOf(ni)>=0?-1:1,si=typeof ei=="function"?ei(Object.assign({},ti,{placement:ii})):ei,ai=si[0],li=si[1];return ai=ai||0,li=(li||0)*ri,[Wn,Kn].indexOf(ni)>=0?{x:li,y:ai}:{x:ai,y:li}}function Mh(ii){var ti=ii.state,ei=ii.options,ni=ii.name,ri=ei.offset,si=ri===void 0?[0,0]:ri,ai=ya.reduce(function(hi,_i){return hi[_i]=Lh(_i,ti.rects,si),hi},{}),li=ai[ti.placement],di=li.x,mi=li.y;ti.modifiersData.popperOffsets!=null&&(ti.modifiersData.popperOffsets.x+=di,ti.modifiersData.popperOffsets.y+=mi),ti.modifiersData[ni]=ai}var tl={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Mh};function kh(ii){var ti=ii.state,ei=ii.name;ti.modifiersData[ei]=Ta({reference:ti.rects.reference,element:ti.rects.popper,strategy:"absolute",placement:ti.placement})}var Ko={name:"popperOffsets",enabled:!0,phase:"read",fn:kh,data:{}};function uc(ii){return ii==="x"?"y":"x"}function Nh(ii){var ti=ii.state,ei=ii.options,ni=ii.name,ri=ei.mainAxis,si=ri===void 0?!0:ri,ai=ei.altAxis,li=ai===void 0?!1:ai,di=ei.boundary,mi=ei.rootBoundary,hi=ei.altBoundary,_i=ei.padding,Ei=ei.tether,Ai=Ei===void 0?!0:Ei,ki=ei.tetherOffset,Ti=ki===void 0?0:ki,Fi=rs(ti,{boundary:di,rootBoundary:mi,padding:_i,altBoundary:hi}),en=Gr(ti.placement),rn=_s(ti.placement),ln=!rn,Yi=_o(en),on=uc(Yi),an=ti.modifiersData.popperOffsets,bn=ti.rects.reference,hn=ti.rects.popper,pn=typeof Ti=="function"?Ti(Object.assign({},ti.rects,{placement:ti.placement})):Ti,gn=typeof pn=="number"?{mainAxis:pn,altAxis:pn}:Object.assign({mainAxis:0,altAxis:0},pn),un=ti.modifiersData.offset?ti.modifiersData.offset[ti.placement]:null,vn={x:0,y:0};if(an){if(si){var Tn,Ni=Yi==="y"?Vn:Wn,Hi=Yi==="y"?Xn:Kn,Pi=Yi==="y"?"height":"width",$i=an[Yi],mn=$i+Fi[Ni],tn=$i-Fi[Hi],zi=Ai?-hn[Pi]/2:0,Li=rn===Ls?bn[Pi]:hn[Pi],ji=rn===Ls?-hn[Pi]:-bn[Pi],Ji=ti.elements.arrow,Vi=Ai&&Ji?yo(Ji):{width:0,height:0},Ii=ti.modifiersData["arrow#persistent"]?ti.modifiersData["arrow#persistent"].padding:Ea(),Sn=Ii[Ni],Yn=Ii[Hi],Fn=bo(0,bn[Pi],Vi[Pi]),Bn=ln?bn[Pi]/2-zi-Fn-Sn-gn.mainAxis:Li-Fn-Sn-gn.mainAxis,Gn=ln?-bn[Pi]/2+zi+Fn+Yn+gn.mainAxis:ji+Fn+Yn+gn.mainAxis,Qn=ti.elements.arrow&&Ds(ti.elements.arrow),Ts=Qn?Yi==="y"?Qn.clientTop||0:Qn.clientLeft||0:0,zn=(Tn=un==null?void 0:un[Yi])!=null?Tn:0,hs=$i+Bn-zn-Ts,ms=$i+Gn-zn,qs=bo(Ai?vo(mn,hs):mn,$i,Ai?As(tn,ms):tn);an[Yi]=qs,vn[Yi]=qs-$i}if(li){var qn,yn=Yi==="x"?Vn:Wn,Kr=Yi==="x"?Xn:Kn,as=an[on],Ws=on==="y"?"height":"width",po=as+Fi[yn],Us=as-Fi[Kr],Ms=[Vn,Wn].indexOf(en)!==-1,Ss=(qn=un==null?void 0:un[on])!=null?qn:0,Ro=Ms?po:as-bn[Ws]-hn[Ws]-Ss+gn.altAxis,Ys=Ms?as+bn[Ws]+hn[Ws]-Ss-gn.altAxis:Us,Po=Ai&&Ms?Tu(Ro,as,Ys):bo(Ai?Ro:po,as,Ai?Ys:Us);an[on]=Po,vn[on]=Po-as}ti.modifiersData[ni]=vn}}var il={name:"preventOverflow",enabled:!0,phase:"main",fn:Nh,requiresIfExists:["offset"]};function dc(ii){return{scrollLeft:ii.scrollLeft,scrollTop:ii.scrollTop}}function fc(ii){return ii===$n(ii)||!Wr(ii)?Eo(ii):dc(ii)}function Ih(ii){var ti=ii.getBoundingClientRect(),ei=Is(ti.width)/ii.offsetWidth||1,ni=Is(ti.height)/ii.offsetHeight||1;return ei!==1||ni!==1}function hc(ii,ti,ei){ei===void 0&&(ei=!1);var ni=Wr(ti),ri=Wr(ti)&&Ih(ti),si=Qr(ti),ai=ys(ii,ri,ei),li={scrollLeft:0,scrollTop:0},di={x:0,y:0};return(ni||!ni&&!ei)&&((Yr(ti)!=="body"||xo(si))&&(li=fc(ti)),Wr(ti)?(di=ys(ti,!0),di.x+=ti.clientLeft,di.y+=ti.clientTop):si&&(di.x=wo(si))),{x:ai.left+li.scrollLeft-di.x,y:ai.top+li.scrollTop-di.y,width:ai.width,height:ai.height}}function Rh(ii){var ti=new Map,ei=new Set,ni=[];ii.forEach(function(si){ti.set(si.name,si)});function ri(si){ei.add(si.name);var ai=[].concat(si.requires||[],si.requiresIfExists||[]);ai.forEach(function(li){if(!ei.has(li)){var di=ti.get(li);di&&ri(di)}}),ni.push(si)}return ii.forEach(function(si){ei.has(si.name)||ri(si)}),ni}function pc(ii){var ti=Rh(ii);return rc.reduce(function(ei,ni){return ei.concat(ti.filter(function(ri){return ri.phase===ni}))},[])}function mc(ii){var ti;return function(){return ti||(ti=new Promise(function(ei){Promise.resolve().then(function(){ti=void 0,ei(ii())})})),ti}}function gc(ii){var ti=ii.reduce(function(ei,ni){var ri=ei[ni.name];return ei[ni.name]=ri?Object.assign({},ri,ni,{options:Object.assign({},ri.options,ni.options),data:Object.assign({},ri.data,ni.data)}):ni,ei},{});return Object.keys(ti).map(function(ei){return ti[ei]})}var Ou={placement:"bottom",modifiers:[],strategy:"absolute"};function Lu(){for(var ii=arguments.length,ti=new Array(ii),ei=0;ei(ii&&window.CSS&&window.CSS.escape&&(ii=ii.replace(/#([^\s"#']+)/g,(ti,ei)=>`#${CSS.escape(ei)}`)),ii),Bh=ii=>ii==null?`${ii}`:Object.prototype.toString.call(ii).match(/\s([a-z]+)/i)[1].toLowerCase(),zh=ii=>{do ii+=Math.floor(Math.random()*Fh);while(document.getElementById(ii));return ii},jh=ii=>{if(!ii)return 0;let{transitionDuration:ti,transitionDelay:ei}=window.getComputedStyle(ii),ni=Number.parseFloat(ti),ri=Number.parseFloat(ei);return!ni&&!ri?0:(ti=ti.split(",")[0],ei=ei.split(",")[0],(Number.parseFloat(ti)+Number.parseFloat(ei))*$h)},ld=ii=>{ii.dispatchEvent(new Event(kc))},Ps=ii=>!ii||typeof ii!="object"?!1:(typeof ii.jquery!="undefined"&&(ii=ii[0]),typeof ii.nodeType!="undefined"),eo=ii=>Ps(ii)?ii.jquery?ii[0]:ii:typeof ii=="string"&&ii.length>0?document.querySelector(ad(ii)):null,ia=ii=>{if(!Ps(ii)||ii.getClientRects().length===0)return!1;let ti=getComputedStyle(ii).getPropertyValue("visibility")==="visible",ei=ii.closest("details:not([open])");if(!ei)return ti;if(ei!==ii){let ni=ii.closest("summary");if(ni&&ni.parentNode!==ei||ni===null)return!1}return ti},to=ii=>!ii||ii.nodeType!==Node.ELEMENT_NODE||ii.classList.contains("disabled")?!0:typeof ii.disabled!="undefined"?ii.disabled:ii.hasAttribute("disabled")&&ii.getAttribute("disabled")!=="false",cd=ii=>{if(!document.documentElement.attachShadow)return null;if(typeof ii.getRootNode=="function"){let ti=ii.getRootNode();return ti instanceof ShadowRoot?ti:null}return ii instanceof ShadowRoot?ii:ii.parentNode?cd(ii.parentNode):null},fl=()=>{},La=ii=>{ii.offsetHeight},ud=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,yc=[],Vh=ii=>{document.readyState==="loading"?(yc.length||document.addEventListener("DOMContentLoaded",()=>{for(let ti of yc)ti()}),yc.push(ii)):ii()},bs=()=>document.documentElement.dir==="rtl",ws=ii=>{Vh(()=>{let ti=ud();if(ti){let ei=ii.NAME,ni=ti.fn[ei];ti.fn[ei]=ii.jQueryInterface,ti.fn[ei].Constructor=ii,ti.fn[ei].noConflict=()=>(ti.fn[ei]=ni,ii.jQueryInterface)}})},ls=(ii,ti=[],ei=ii)=>typeof ii=="function"?ii(...ti):ei,dd=(ii,ti,ei=!0)=>{if(!ei){ls(ii);return}let ri=jh(ti)+5,si=!1,ai=({target:li})=>{li===ti&&(si=!0,ti.removeEventListener(kc,ai),ls(ii))};ti.addEventListener(kc,ai),setTimeout(()=>{si||ld(ti)},ri)},Pc=(ii,ti,ei,ni)=>{let ri=ii.length,si=ii.indexOf(ti);return si===-1?!ei&&ni?ii[ri-1]:ii[0]:(si+=ei?1:-1,ni&&(si=(si+ri)%ri),ii[Math.max(0,Math.min(si,ri-1))])},qh=/[^.]*(?=\..*)\.|.*/,Wh=/\..*/,Uh=/::\d+$/,_c={},Nu=1,fd={mouseenter:"mouseover",mouseleave:"mouseout"},Yh=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function hd(ii,ti){return ti&&`${ti}::${Nu++}`||ii.uidEvent||Nu++}function pd(ii){let ti=hd(ii);return ii.uidEvent=ti,_c[ti]=_c[ti]||{},_c[ti]}function Gh(ii,ti){return function ei(ni){return Hc(ni,{delegateTarget:ii}),ei.oneOff&&Mi.off(ii,ni.type,ti),ti.apply(ii,[ni])}}function Kh(ii,ti,ei){return function ni(ri){let si=ii.querySelectorAll(ti);for(let{target:ai}=ri;ai&&ai!==this;ai=ai.parentNode)for(let li of si)if(li===ai)return Hc(ri,{delegateTarget:ai}),ni.oneOff&&Mi.off(ii,ri.type,ti,ei),ei.apply(ai,[ri])}}function md(ii,ti,ei=null){return Object.values(ii).find(ni=>ni.callable===ti&&ni.delegationSelector===ei)}function gd(ii,ti,ei){let ni=typeof ti=="string",ri=ni?ei:ti||ei,si=vd(ii);return Yh.has(si)||(si=ii),[ni,ri,si]}function Iu(ii,ti,ei,ni,ri){if(typeof ti!="string"||!ii)return;let[si,ai,li]=gd(ti,ei,ni);ti in fd&&(ai=(ki=>function(Ti){if(!Ti.relatedTarget||Ti.relatedTarget!==Ti.delegateTarget&&!Ti.delegateTarget.contains(Ti.relatedTarget))return ki.call(this,Ti)})(ai));let di=pd(ii),mi=di[li]||(di[li]={}),hi=md(mi,ai,si?ei:null);if(hi){hi.oneOff=hi.oneOff&&ri;return}let _i=hd(ai,ti.replace(qh,"")),Ei=si?Kh(ii,ei,ai):Gh(ii,ai);Ei.delegationSelector=si?ei:null,Ei.callable=ai,Ei.oneOff=ri,Ei.uidEvent=_i,mi[_i]=Ei,ii.addEventListener(li,Ei,si)}function Nc(ii,ti,ei,ni,ri){let si=md(ti[ei],ni,ri);si&&(ii.removeEventListener(ei,si,!!ri),delete ti[ei][si.uidEvent])}function Qh(ii,ti,ei,ni){let ri=ti[ei]||{};for(let[si,ai]of Object.entries(ri))si.includes(ni)&&Nc(ii,ti,ei,ai.callable,ai.delegationSelector)}function vd(ii){return ii=ii.replace(Wh,""),fd[ii]||ii}var Mi={on(ii,ti,ei,ni){Iu(ii,ti,ei,ni,!1)},one(ii,ti,ei,ni){Iu(ii,ti,ei,ni,!0)},off(ii,ti,ei,ni){if(typeof ti!="string"||!ii)return;let[ri,si,ai]=gd(ti,ei,ni),li=ai!==ti,di=pd(ii),mi=di[ai]||{},hi=ti.startsWith(".");if(typeof si!="undefined"){if(!Object.keys(mi).length)return;Nc(ii,di,ai,si,ri?ei:null);return}if(hi)for(let _i of Object.keys(di))Qh(ii,di,_i,ti.slice(1));for(let[_i,Ei]of Object.entries(mi)){let Ai=_i.replace(Uh,"");(!li||ti.includes(Ai))&&Nc(ii,di,ai,Ei.callable,Ei.delegationSelector)}},trigger(ii,ti,ei){if(typeof ti!="string"||!ii)return null;let ni=ud(),ri=vd(ti),si=ti!==ri,ai=null,li=!0,di=!0,mi=!1;si&&ni&&(ai=ni.Event(ti,ei),ni(ii).trigger(ai),li=!ai.isPropagationStopped(),di=!ai.isImmediatePropagationStopped(),mi=ai.isDefaultPrevented());let hi=Hc(new Event(ti,{bubbles:li,cancelable:!0}),ei);return mi&&hi.preventDefault(),di&&ii.dispatchEvent(hi),hi.defaultPrevented&&ai&&ai.preventDefault(),hi}};function Hc(ii,ti={}){for(let[ei,ni]of Object.entries(ti))try{ii[ei]=ni}catch(ri){Object.defineProperty(ii,ei,{configurable:!0,get(){return ni}})}return ii}function Ru(ii){if(ii==="true")return!0;if(ii==="false")return!1;if(ii===Number(ii).toString())return Number(ii);if(ii===""||ii==="null")return null;if(typeof ii!="string")return ii;try{return JSON.parse(decodeURIComponent(ii))}catch(ti){return ii}}function bc(ii){return ii.replace(/[A-Z]/g,ti=>`-${ti.toLowerCase()}`)}var Hs={setDataAttribute(ii,ti,ei){ii.setAttribute(`data-bs-${bc(ti)}`,ei)},removeDataAttribute(ii,ti){ii.removeAttribute(`data-bs-${bc(ti)}`)},getDataAttributes(ii){if(!ii)return{};let ti={},ei=Object.keys(ii.dataset).filter(ni=>ni.startsWith("bs")&&!ni.startsWith("bsConfig"));for(let ni of ei){let ri=ni.replace(/^bs/,"");ri=ri.charAt(0).toLowerCase()+ri.slice(1,ri.length),ti[ri]=Ru(ii.dataset[ni])}return ti},getDataAttribute(ii,ti){return Ru(ii.getAttribute(`data-bs-${bc(ti)}`))}},Ao=class{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(ti){return ti=this._mergeConfigObj(ti),ti=this._configAfterMerge(ti),this._typeCheckConfig(ti),ti}_configAfterMerge(ti){return ti}_mergeConfigObj(ti,ei){let ni=Ps(ei)?Hs.getDataAttribute(ei,"config"):{};return Ui(Ui(Ui(Ui({},this.constructor.Default),typeof ni=="object"?ni:{}),Ps(ei)?Hs.getDataAttributes(ei):{}),typeof ti=="object"?ti:{})}_typeCheckConfig(ti,ei=this.constructor.DefaultType){for(let[ni,ri]of Object.entries(ei)){let si=ti[ni],ai=Ps(si)?"element":Bh(si);if(!new RegExp(ri).test(ai))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${ni}" provided type "${ai}" but expected type "${ri}".`)}}},Xh="5.3.3",ps=class extends Ao{constructor(ti,ei){super(),ti=eo(ti),ti&&(this._element=ti,this._config=this._getConfig(ei),vc.set(this._element,this.constructor.DATA_KEY,this))}dispose(){vc.remove(this._element,this.constructor.DATA_KEY),Mi.off(this._element,this.constructor.EVENT_KEY);for(let ti of Object.getOwnPropertyNames(this))this[ti]=null}_queueCallback(ti,ei,ni=!0){dd(ti,ei,ni)}_getConfig(ti){return ti=this._mergeConfigObj(ti,this._element),ti=this._configAfterMerge(ti),this._typeCheckConfig(ti),ti}static getInstance(ti){return vc.get(eo(ti),this.DATA_KEY)}static getOrCreateInstance(ti,ei={}){return this.getInstance(ti)||new this(ti,typeof ei=="object"?ei:null)}static get VERSION(){return Xh}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(ti){return`${ti}${this.EVENT_KEY}`}},Ec=ii=>{let ti=ii.getAttribute("data-bs-target");if(!ti||ti==="#"){let ei=ii.getAttribute("href");if(!ei||!ei.includes("#")&&!ei.startsWith("."))return null;ei.includes("#")&&!ei.startsWith("#")&&(ei=`#${ei.split("#")[1]}`),ti=ei&&ei!=="#"?ei.trim():null}return ti?ti.split(",").map(ei=>ad(ei)).join(","):null},cn={find(ii,ti=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(ti,ii))},findOne(ii,ti=document.documentElement){return Element.prototype.querySelector.call(ti,ii)},children(ii,ti){return[].concat(...ii.children).filter(ei=>ei.matches(ti))},parents(ii,ti){let ei=[],ni=ii.parentNode.closest(ti);for(;ni;)ei.push(ni),ni=ni.parentNode.closest(ti);return ei},prev(ii,ti){let ei=ii.previousElementSibling;for(;ei;){if(ei.matches(ti))return[ei];ei=ei.previousElementSibling}return[]},next(ii,ti){let ei=ii.nextElementSibling;for(;ei;){if(ei.matches(ti))return[ei];ei=ei.nextElementSibling}return[]},focusableChildren(ii){let ti=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(ei=>`${ei}:not([tabindex^="-"])`).join(",");return this.find(ti,ii).filter(ei=>!to(ei)&&ia(ei))},getSelectorFromElement(ii){let ti=Ec(ii);return ti&&cn.findOne(ti)?ti:null},getElementFromSelector(ii){let ti=Ec(ii);return ti?cn.findOne(ti):null},getMultipleElementsFromSelector(ii){let ti=Ec(ii);return ti?cn.find(ti):[]}},bl=(ii,ti="hide")=>{let ei=`click.dismiss${ii.EVENT_KEY}`,ni=ii.NAME;Mi.on(document,ei,`[data-bs-dismiss="${ni}"]`,function(ri){if(["A","AREA"].includes(this.tagName)&&ri.preventDefault(),to(this))return;let si=cn.getElementFromSelector(this)||this.closest(`.${ni}`);ii.getOrCreateInstance(si)[ti]()})},Jh="alert",Zh="bs.alert",yd=`.${Zh}`,ep=`close${yd}`,tp=`closed${yd}`,ip="fade",np="show",hl=class ii extends ps{static get NAME(){return Jh}close(){if(Mi.trigger(this._element,ep).defaultPrevented)return;this._element.classList.remove(np);let ei=this._element.classList.contains(ip);this._queueCallback(()=>this._destroyElement(),this._element,ei)}_destroyElement(){this._element.remove(),Mi.trigger(this._element,tp),this.dispose()}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this);if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti](this)}})}};bl(hl,"close");ws(hl);var rp="button",sp="bs.button",op=`.${sp}`,ap=".data-api",lp="active",Pu='[data-bs-toggle="button"]',cp=`click${op}${ap}`,pl=class ii extends ps{static get NAME(){return rp}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(lp))}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this);ti==="toggle"&&ei[ti]()})}};Mi.on(document,cp,Pu,ii=>{ii.preventDefault();let ti=ii.target.closest(Pu);pl.getOrCreateInstance(ti).toggle()});ws(pl);var up="swipe",na=".bs.swipe",dp=`touchstart${na}`,fp=`touchmove${na}`,hp=`touchend${na}`,pp=`pointerdown${na}`,mp=`pointerup${na}`,gp="touch",vp="pen",yp="pointer-event",_p=40,bp={endCallback:null,leftCallback:null,rightCallback:null},Ep={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"},ml=class ii extends Ao{constructor(ti,ei){super(),this._element=ti,!(!ti||!ii.isSupported())&&(this._config=this._getConfig(ei),this._deltaX=0,this._supportPointerEvents=!!window.PointerEvent,this._initEvents())}static get Default(){return bp}static get DefaultType(){return Ep}static get NAME(){return up}dispose(){Mi.off(this._element,na)}_start(ti){if(!this._supportPointerEvents){this._deltaX=ti.touches[0].clientX;return}this._eventIsPointerPenTouch(ti)&&(this._deltaX=ti.clientX)}_end(ti){this._eventIsPointerPenTouch(ti)&&(this._deltaX=ti.clientX-this._deltaX),this._handleSwipe(),ls(this._config.endCallback)}_move(ti){this._deltaX=ti.touches&&ti.touches.length>1?0:ti.touches[0].clientX-this._deltaX}_handleSwipe(){let ti=Math.abs(this._deltaX);if(ti<=_p)return;let ei=ti/this._deltaX;this._deltaX=0,ei&&ls(ei>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(Mi.on(this._element,pp,ti=>this._start(ti)),Mi.on(this._element,mp,ti=>this._end(ti)),this._element.classList.add(yp)):(Mi.on(this._element,dp,ti=>this._start(ti)),Mi.on(this._element,fp,ti=>this._move(ti)),Mi.on(this._element,hp,ti=>this._end(ti)))}_eventIsPointerPenTouch(ti){return this._supportPointerEvents&&(ti.pointerType===vp||ti.pointerType===gp)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}},wp="carousel",xp="bs.carousel",so=`.${xp}`,_d=".data-api",Tp="ArrowLeft",Sp="ArrowRight",Cp=500,Ca="next",Qo="prev",Jo="left",ul="right",Ap=`slide${so}`,wc=`slid${so}`,Dp=`keydown${so}`,Op=`mouseenter${so}`,Lp=`mouseleave${so}`,Mp=`dragstart${so}`,kp=`load${so}${_d}`,Np=`click${so}${_d}`,bd="carousel",rl="active",Ip="slide",Rp="carousel-item-end",Pp="carousel-item-start",Hp="carousel-item-next",Fp="carousel-item-prev",Ed=".active",wd=".carousel-item",$p=Ed+wd,Bp=".carousel-item img",zp=".carousel-indicators",jp="[data-bs-slide], [data-bs-slide-to]",Vp='[data-bs-ride="carousel"]',qp={[Tp]:ul,[Sp]:Jo},Wp={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Up={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"},Da=class ii extends ps{constructor(ti,ei){super(ti,ei),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=cn.findOne(zp,this._element),this._addEventListeners(),this._config.ride===bd&&this.cycle()}static get Default(){return Wp}static get DefaultType(){return Up}static get NAME(){return wp}next(){this._slide(Ca)}nextWhenVisible(){!document.hidden&&ia(this._element)&&this.next()}prev(){this._slide(Qo)}pause(){this._isSliding&&ld(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding){Mi.one(this._element,wc,()=>this.cycle());return}this.cycle()}}to(ti){let ei=this._getItems();if(ti>ei.length-1||ti<0)return;if(this._isSliding){Mi.one(this._element,wc,()=>this.to(ti));return}let ni=this._getItemIndex(this._getActive());if(ni===ti)return;let ri=ti>ni?Ca:Qo;this._slide(ri,ei[ti])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(ti){return ti.defaultInterval=ti.interval,ti}_addEventListeners(){this._config.keyboard&&Mi.on(this._element,Dp,ti=>this._keydown(ti)),this._config.pause==="hover"&&(Mi.on(this._element,Op,()=>this.pause()),Mi.on(this._element,Lp,()=>this._maybeEnableCycle())),this._config.touch&&ml.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(let ni of cn.find(Bp,this._element))Mi.on(ni,Mp,ri=>ri.preventDefault());let ei={leftCallback:()=>this._slide(this._directionToOrder(Jo)),rightCallback:()=>this._slide(this._directionToOrder(ul)),endCallback:()=>{this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),Cp+this._config.interval))}};this._swipeHelper=new ml(this._element,ei)}_keydown(ti){if(/input|textarea/i.test(ti.target.tagName))return;let ei=qp[ti.key];ei&&(ti.preventDefault(),this._slide(this._directionToOrder(ei)))}_getItemIndex(ti){return this._getItems().indexOf(ti)}_setActiveIndicatorElement(ti){if(!this._indicatorsElement)return;let ei=cn.findOne(Ed,this._indicatorsElement);ei.classList.remove(rl),ei.removeAttribute("aria-current");let ni=cn.findOne(`[data-bs-slide-to="${ti}"]`,this._indicatorsElement);ni&&(ni.classList.add(rl),ni.setAttribute("aria-current","true"))}_updateInterval(){let ti=this._activeElement||this._getActive();if(!ti)return;let ei=Number.parseInt(ti.getAttribute("data-bs-interval"),10);this._config.interval=ei||this._config.defaultInterval}_slide(ti,ei=null){if(this._isSliding)return;let ni=this._getActive(),ri=ti===Ca,si=ei||Pc(this._getItems(),ni,ri,this._config.wrap);if(si===ni)return;let ai=this._getItemIndex(si),li=Ai=>Mi.trigger(this._element,Ai,{relatedTarget:si,direction:this._orderToDirection(ti),from:this._getItemIndex(ni),to:ai});if(li(Ap).defaultPrevented||!ni||!si)return;let mi=!!this._interval;this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(ai),this._activeElement=si;let hi=ri?Pp:Rp,_i=ri?Hp:Fp;si.classList.add(_i),La(si),ni.classList.add(hi),si.classList.add(hi);let Ei=()=>{si.classList.remove(hi,_i),si.classList.add(rl),ni.classList.remove(rl,_i,hi),this._isSliding=!1,li(wc)};this._queueCallback(Ei,ni,this._isAnimated()),mi&&this.cycle()}_isAnimated(){return this._element.classList.contains(Ip)}_getActive(){return cn.findOne($p,this._element)}_getItems(){return cn.find(wd,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(ti){return bs()?ti===Jo?Qo:Ca:ti===Jo?Ca:Qo}_orderToDirection(ti){return bs()?ti===Qo?Jo:ul:ti===Qo?ul:Jo}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="number"){ei.to(ti);return}if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};Mi.on(document,Np,jp,function(ii){let ti=cn.getElementFromSelector(this);if(!ti||!ti.classList.contains(bd))return;ii.preventDefault();let ei=Da.getOrCreateInstance(ti),ni=this.getAttribute("data-bs-slide-to");if(ni){ei.to(ni),ei._maybeEnableCycle();return}if(Hs.getDataAttribute(this,"slide")==="next"){ei.next(),ei._maybeEnableCycle();return}ei.prev(),ei._maybeEnableCycle()});Mi.on(window,kp,()=>{let ii=cn.find(Vp);for(let ti of ii)Da.getOrCreateInstance(ti)});ws(Da);var Yp="collapse",Gp="bs.collapse",Ma=`.${Gp}`,Kp=".data-api",Qp=`show${Ma}`,Xp=`shown${Ma}`,Jp=`hide${Ma}`,Zp=`hidden${Ma}`,em=`click${Ma}${Kp}`,xc="show",ea="collapse",sl="collapsing",tm="collapsed",im=`:scope .${ea} .${ea}`,nm="collapse-horizontal",rm="width",sm="height",om=".collapse.show, .collapse.collapsing",Ic='[data-bs-toggle="collapse"]',am={parent:null,toggle:!0},lm={parent:"(null|element)",toggle:"boolean"},io=class ii extends ps{constructor(ti,ei){super(ti,ei),this._isTransitioning=!1,this._triggerArray=[];let ni=cn.find(Ic);for(let ri of ni){let si=cn.getSelectorFromElement(ri),ai=cn.find(si).filter(li=>li===this._element);si!==null&&ai.length&&this._triggerArray.push(ri)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return am}static get DefaultType(){return lm}static get NAME(){return Yp}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let ti=[];if(this._config.parent&&(ti=this._getFirstLevelChildren(om).filter(li=>li!==this._element).map(li=>ii.getOrCreateInstance(li,{toggle:!1}))),ti.length&&ti[0]._isTransitioning||Mi.trigger(this._element,Qp).defaultPrevented)return;for(let li of ti)li.hide();let ni=this._getDimension();this._element.classList.remove(ea),this._element.classList.add(sl),this._element.style[ni]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;let ri=()=>{this._isTransitioning=!1,this._element.classList.remove(sl),this._element.classList.add(ea,xc),this._element.style[ni]="",Mi.trigger(this._element,Xp)},ai=`scroll${ni[0].toUpperCase()+ni.slice(1)}`;this._queueCallback(ri,this._element,!0),this._element.style[ni]=`${this._element[ai]}px`}hide(){if(this._isTransitioning||!this._isShown()||Mi.trigger(this._element,Jp).defaultPrevented)return;let ei=this._getDimension();this._element.style[ei]=`${this._element.getBoundingClientRect()[ei]}px`,La(this._element),this._element.classList.add(sl),this._element.classList.remove(ea,xc);for(let ri of this._triggerArray){let si=cn.getElementFromSelector(ri);si&&!this._isShown(si)&&this._addAriaAndCollapsedClass([ri],!1)}this._isTransitioning=!0;let ni=()=>{this._isTransitioning=!1,this._element.classList.remove(sl),this._element.classList.add(ea),Mi.trigger(this._element,Zp)};this._element.style[ei]="",this._queueCallback(ni,this._element,!0)}_isShown(ti=this._element){return ti.classList.contains(xc)}_configAfterMerge(ti){return ti.toggle=!!ti.toggle,ti.parent=eo(ti.parent),ti}_getDimension(){return this._element.classList.contains(nm)?rm:sm}_initializeChildren(){if(!this._config.parent)return;let ti=this._getFirstLevelChildren(Ic);for(let ei of ti){let ni=cn.getElementFromSelector(ei);ni&&this._addAriaAndCollapsedClass([ei],this._isShown(ni))}}_getFirstLevelChildren(ti){let ei=cn.find(im,this._config.parent);return cn.find(ti,this._config.parent).filter(ni=>!ei.includes(ni))}_addAriaAndCollapsedClass(ti,ei){if(ti.length)for(let ni of ti)ni.classList.toggle(tm,!ei),ni.setAttribute("aria-expanded",ei)}static jQueryInterface(ti){let ei={};return typeof ti=="string"&&/show|hide/.test(ti)&&(ei.toggle=!1),this.each(function(){let ni=ii.getOrCreateInstance(this,ei);if(typeof ti=="string"){if(typeof ni[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ni[ti]()}})}};Mi.on(document,em,Ic,function(ii){(ii.target.tagName==="A"||ii.delegateTarget&&ii.delegateTarget.tagName==="A")&&ii.preventDefault();for(let ti of cn.getMultipleElementsFromSelector(this))io.getOrCreateInstance(ti,{toggle:!1}).toggle()});ws(io);var Hu="dropdown",cm="bs.dropdown",Oo=`.${cm}`,Fc=".data-api",um="Escape",Fu="Tab",dm="ArrowUp",$u="ArrowDown",fm=2,hm=`hide${Oo}`,pm=`hidden${Oo}`,mm=`show${Oo}`,gm=`shown${Oo}`,xd=`click${Oo}${Fc}`,Td=`keydown${Oo}${Fc}`,vm=`keyup${Oo}${Fc}`,Zo="show",ym="dropup",_m="dropend",bm="dropstart",Em="dropup-center",wm="dropdown-center",So='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',xm=`${So}.${Zo}`,dl=".dropdown-menu",Tm=".navbar",Sm=".navbar-nav",Cm=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Am=bs()?"top-end":"top-start",Dm=bs()?"top-start":"top-end",Om=bs()?"bottom-end":"bottom-start",Lm=bs()?"bottom-start":"bottom-end",Mm=bs()?"left-start":"right-start",km=bs()?"right-start":"left-start",Nm="top",Im="bottom",Rm={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Pm={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"},no=class ii extends ps{constructor(ti,ei){super(ti,ei),this._popper=null,this._parent=this._element.parentNode,this._menu=cn.next(this._element,dl)[0]||cn.prev(this._element,dl)[0]||cn.findOne(dl,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Rm}static get DefaultType(){return Pm}static get NAME(){return Hu}toggle(){return this._isShown()?this.hide():this.show()}show(){if(to(this._element)||this._isShown())return;let ti={relatedTarget:this._element};if(!Mi.trigger(this._element,mm,ti).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(Sm))for(let ni of[].concat(...document.body.children))Mi.on(ni,"mouseover",fl);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Zo),this._element.classList.add(Zo),Mi.trigger(this._element,gm,ti)}}hide(){if(to(this._element)||!this._isShown())return;let ti={relatedTarget:this._element};this._completeHide(ti)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(ti){if(!Mi.trigger(this._element,hm,ti).defaultPrevented){if("ontouchstart"in document.documentElement)for(let ni of[].concat(...document.body.children))Mi.off(ni,"mouseover",fl);this._popper&&this._popper.destroy(),this._menu.classList.remove(Zo),this._element.classList.remove(Zo),this._element.setAttribute("aria-expanded","false"),Hs.removeDataAttribute(this._menu,"popper"),Mi.trigger(this._element,pm,ti)}}_getConfig(ti){if(ti=super._getConfig(ti),typeof ti.reference=="object"&&!Ps(ti.reference)&&typeof ti.reference.getBoundingClientRect!="function")throw new TypeError(`${Hu.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return ti}_createPopper(){if(typeof nl=="undefined")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let ti=this._element;this._config.reference==="parent"?ti=this._parent:Ps(this._config.reference)?ti=eo(this._config.reference):typeof this._config.reference=="object"&&(ti=this._config.reference);let ei=this._getPopperConfig();this._popper=Sa(ti,this._menu,ei)}_isShown(){return this._menu.classList.contains(Zo)}_getPlacement(){let ti=this._parent;if(ti.classList.contains(_m))return Mm;if(ti.classList.contains(bm))return km;if(ti.classList.contains(Em))return Nm;if(ti.classList.contains(wm))return Im;let ei=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return ti.classList.contains(ym)?ei?Dm:Am:ei?Lm:Om}_detectNavbar(){return this._element.closest(Tm)!==null}_getOffset(){let{offset:ti}=this._config;return typeof ti=="string"?ti.split(",").map(ei=>Number.parseInt(ei,10)):typeof ti=="function"?ei=>ti(ei,this._element):ti}_getPopperConfig(){let ti={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||this._config.display==="static")&&(Hs.setDataAttribute(this._menu,"popper","static"),ti.modifiers=[{name:"applyStyles",enabled:!1}]),Ui(Ui({},ti),ls(this._config.popperConfig,[ti]))}_selectMenuItem({key:ti,target:ei}){let ni=cn.find(Cm,this._menu).filter(ri=>ia(ri));ni.length&&Pc(ni,ei,ti===$u,!ni.includes(ei)).focus()}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ei[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}static clearMenus(ti){if(ti.button===fm||ti.type==="keyup"&&ti.key!==Fu)return;let ei=cn.find(xm);for(let ni of ei){let ri=ii.getInstance(ni);if(!ri||ri._config.autoClose===!1)continue;let si=ti.composedPath(),ai=si.includes(ri._menu);if(si.includes(ri._element)||ri._config.autoClose==="inside"&&!ai||ri._config.autoClose==="outside"&&ai||ri._menu.contains(ti.target)&&(ti.type==="keyup"&&ti.key===Fu||/input|select|option|textarea|form/i.test(ti.target.tagName)))continue;let li={relatedTarget:ri._element};ti.type==="click"&&(li.clickEvent=ti),ri._completeHide(li)}}static dataApiKeydownHandler(ti){let ei=/input|textarea/i.test(ti.target.tagName),ni=ti.key===um,ri=[dm,$u].includes(ti.key);if(!ri&&!ni||ei&&!ni)return;ti.preventDefault();let si=this.matches(So)?this:cn.prev(this,So)[0]||cn.next(this,So)[0]||cn.findOne(So,ti.delegateTarget.parentNode),ai=ii.getOrCreateInstance(si);if(ri){ti.stopPropagation(),ai.show(),ai._selectMenuItem(ti);return}ai._isShown()&&(ti.stopPropagation(),ai.hide(),si.focus())}};Mi.on(document,Td,So,no.dataApiKeydownHandler);Mi.on(document,Td,dl,no.dataApiKeydownHandler);Mi.on(document,xd,no.clearMenus);Mi.on(document,vm,no.clearMenus);Mi.on(document,xd,So,function(ii){ii.preventDefault(),no.getOrCreateInstance(this).toggle()});ws(no);var Sd="backdrop",Hm="fade",Bu="show",zu=`mousedown.bs.${Sd}`,Fm={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},$m={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"},gl=class extends Ao{constructor(ti){super(),this._config=this._getConfig(ti),this._isAppended=!1,this._element=null}static get Default(){return Fm}static get DefaultType(){return $m}static get NAME(){return Sd}show(ti){if(!this._config.isVisible){ls(ti);return}this._append();let ei=this._getElement();this._config.isAnimated&&La(ei),ei.classList.add(Bu),this._emulateAnimation(()=>{ls(ti)})}hide(ti){if(!this._config.isVisible){ls(ti);return}this._getElement().classList.remove(Bu),this._emulateAnimation(()=>{this.dispose(),ls(ti)})}dispose(){this._isAppended&&(Mi.off(this._element,zu),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){let ti=document.createElement("div");ti.className=this._config.className,this._config.isAnimated&&ti.classList.add(Hm),this._element=ti}return this._element}_configAfterMerge(ti){return ti.rootElement=eo(ti.rootElement),ti}_append(){if(this._isAppended)return;let ti=this._getElement();this._config.rootElement.append(ti),Mi.on(ti,zu,()=>{ls(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(ti){dd(ti,this._getElement(),this._config.isAnimated)}},Bm="focustrap",zm="bs.focustrap",vl=`.${zm}`,jm=`focusin${vl}`,Vm=`keydown.tab${vl}`,qm="Tab",Wm="forward",ju="backward",Um={autofocus:!0,trapElement:null},Ym={autofocus:"boolean",trapElement:"element"},yl=class extends Ao{constructor(ti){super(),this._config=this._getConfig(ti),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Um}static get DefaultType(){return Ym}static get NAME(){return Bm}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),Mi.off(document,vl),Mi.on(document,jm,ti=>this._handleFocusin(ti)),Mi.on(document,Vm,ti=>this._handleKeydown(ti)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,Mi.off(document,vl))}_handleFocusin(ti){let{trapElement:ei}=this._config;if(ti.target===document||ti.target===ei||ei.contains(ti.target))return;let ni=cn.focusableChildren(ei);ni.length===0?ei.focus():this._lastTabNavDirection===ju?ni[ni.length-1].focus():ni[0].focus()}_handleKeydown(ti){ti.key===qm&&(this._lastTabNavDirection=ti.shiftKey?ju:Wm)}},Vu=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",qu=".sticky-top",ol="padding-right",Wu="margin-right",Oa=class{constructor(){this._element=document.body}getWidth(){let ti=document.documentElement.clientWidth;return Math.abs(window.innerWidth-ti)}hide(){let ti=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,ol,ei=>ei+ti),this._setElementAttributes(Vu,ol,ei=>ei+ti),this._setElementAttributes(qu,Wu,ei=>ei-ti)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,ol),this._resetElementAttributes(Vu,ol),this._resetElementAttributes(qu,Wu)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(ti,ei,ni){let ri=this.getWidth(),si=ai=>{if(ai!==this._element&&window.innerWidth>ai.clientWidth+ri)return;this._saveInitialAttribute(ai,ei);let li=window.getComputedStyle(ai).getPropertyValue(ei);ai.style.setProperty(ei,`${ni(Number.parseFloat(li))}px`)};this._applyManipulationCallback(ti,si)}_saveInitialAttribute(ti,ei){let ni=ti.style.getPropertyValue(ei);ni&&Hs.setDataAttribute(ti,ei,ni)}_resetElementAttributes(ti,ei){let ni=ri=>{let si=Hs.getDataAttribute(ri,ei);if(si===null){ri.style.removeProperty(ei);return}Hs.removeDataAttribute(ri,ei),ri.style.setProperty(ei,si)};this._applyManipulationCallback(ti,ni)}_applyManipulationCallback(ti,ei){if(Ps(ti)){ei(ti);return}for(let ni of cn.find(ti,this._element))ei(ni)}},Gm="modal",Km="bs.modal",Es=`.${Km}`,Qm=".data-api",Xm="Escape",Jm=`hide${Es}`,Zm=`hidePrevented${Es}`,Cd=`hidden${Es}`,Ad=`show${Es}`,eg=`shown${Es}`,tg=`resize${Es}`,ig=`click.dismiss${Es}`,ng=`mousedown.dismiss${Es}`,rg=`keydown.dismiss${Es}`,sg=`click${Es}${Qm}`,Uu="modal-open",og="fade",Yu="show",Tc="modal-static",ag=".modal.show",lg=".modal-dialog",cg=".modal-body",ug='[data-bs-toggle="modal"]',dg={backdrop:!0,focus:!0,keyboard:!0},fg={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"},Fs=class ii extends ps{constructor(ti,ei){super(ti,ei),this._dialog=cn.findOne(lg,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Oa,this._addEventListeners()}static get Default(){return dg}static get DefaultType(){return fg}static get NAME(){return Gm}toggle(ti){return this._isShown?this.hide():this.show(ti)}show(ti){this._isShown||this._isTransitioning||Mi.trigger(this._element,Ad,{relatedTarget:ti}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Uu),this._adjustDialog(),this._backdrop.show(()=>this._showElement(ti)))}hide(){!this._isShown||this._isTransitioning||Mi.trigger(this._element,Jm).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Yu),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){Mi.off(window,Es),Mi.off(this._dialog,Es),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new gl({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new yl({trapElement:this._element})}_showElement(ti){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;let ei=cn.findOne(cg,this._dialog);ei&&(ei.scrollTop=0),La(this._element),this._element.classList.add(Yu);let ni=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,Mi.trigger(this._element,eg,{relatedTarget:ti})};this._queueCallback(ni,this._dialog,this._isAnimated())}_addEventListeners(){Mi.on(this._element,rg,ti=>{if(ti.key===Xm){if(this._config.keyboard){this.hide();return}this._triggerBackdropTransition()}}),Mi.on(window,tg,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),Mi.on(this._element,ng,ti=>{Mi.one(this._element,ig,ei=>{if(!(this._element!==ti.target||this._element!==ei.target)){if(this._config.backdrop==="static"){this._triggerBackdropTransition();return}this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Uu),this._resetAdjustments(),this._scrollBar.reset(),Mi.trigger(this._element,Cd)})}_isAnimated(){return this._element.classList.contains(og)}_triggerBackdropTransition(){if(Mi.trigger(this._element,Zm).defaultPrevented)return;let ei=this._element.scrollHeight>document.documentElement.clientHeight,ni=this._element.style.overflowY;ni==="hidden"||this._element.classList.contains(Tc)||(ei||(this._element.style.overflowY="hidden"),this._element.classList.add(Tc),this._queueCallback(()=>{this._element.classList.remove(Tc),this._queueCallback(()=>{this._element.style.overflowY=ni},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){let ti=this._element.scrollHeight>document.documentElement.clientHeight,ei=this._scrollBar.getWidth(),ni=ei>0;if(ni&&!ti){let ri=bs()?"paddingLeft":"paddingRight";this._element.style[ri]=`${ei}px`}if(!ni&&ti){let ri=bs()?"paddingRight":"paddingLeft";this._element.style[ri]=`${ei}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(ti,ei){return this.each(function(){let ni=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ni[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ni[ti](ei)}})}};Mi.on(document,sg,ug,function(ii){let ti=cn.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&ii.preventDefault(),Mi.one(ti,Ad,ri=>{ri.defaultPrevented||Mi.one(ti,Cd,()=>{ia(this)&&this.focus()})});let ei=cn.findOne(ag);ei&&Fs.getInstance(ei).hide(),Fs.getOrCreateInstance(ti).toggle(this)});bl(Fs);ws(Fs);var hg="offcanvas",pg="bs.offcanvas",zs=`.${pg}`,Dd=".data-api",mg=`load${zs}${Dd}`,gg="Escape",Gu="show",Ku="showing",Qu="hiding",vg="offcanvas-backdrop",Od=".offcanvas.show",yg=`show${zs}`,_g=`shown${zs}`,bg=`hide${zs}`,Xu=`hidePrevented${zs}`,Ld=`hidden${zs}`,Eg=`resize${zs}`,wg=`click${zs}${Dd}`,xg=`keydown.dismiss${zs}`,Tg='[data-bs-toggle="offcanvas"]',Sg={backdrop:!0,keyboard:!0,scroll:!1},Cg={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"},ro=class ii extends ps{constructor(ti,ei){super(ti,ei),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Sg}static get DefaultType(){return Cg}static get NAME(){return hg}toggle(ti){return this._isShown?this.hide():this.show(ti)}show(ti){if(this._isShown||Mi.trigger(this._element,yg,{relatedTarget:ti}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||new Oa().hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Ku);let ni=()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add(Gu),this._element.classList.remove(Ku),Mi.trigger(this._element,_g,{relatedTarget:ti})};this._queueCallback(ni,this._element,!0)}hide(){if(!this._isShown||Mi.trigger(this._element,bg).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Qu),this._backdrop.hide();let ei=()=>{this._element.classList.remove(Gu,Qu),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||new Oa().reset(),Mi.trigger(this._element,Ld)};this._queueCallback(ei,this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){let ti=()=>{if(this._config.backdrop==="static"){Mi.trigger(this._element,Xu);return}this.hide()},ei=!!this._config.backdrop;return new gl({className:vg,isVisible:ei,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:ei?ti:null})}_initializeFocusTrap(){return new yl({trapElement:this._element})}_addEventListeners(){Mi.on(this._element,xg,ti=>{if(ti.key===gg){if(this._config.keyboard){this.hide();return}Mi.trigger(this._element,Xu)}})}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti](this)}})}};Mi.on(document,wg,Tg,function(ii){let ti=cn.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&ii.preventDefault(),to(this))return;Mi.one(ti,Ld,()=>{ia(this)&&this.focus()});let ei=cn.findOne(Od);ei&&ei!==ti&&ro.getInstance(ei).hide(),ro.getOrCreateInstance(ti).toggle(this)});Mi.on(window,mg,()=>{for(let ii of cn.find(Od))ro.getOrCreateInstance(ii).show()});Mi.on(window,Eg,()=>{for(let ii of cn.find("[aria-modal][class*=show][class*=offcanvas-]"))getComputedStyle(ii).position!=="fixed"&&ro.getOrCreateInstance(ii).hide()});bl(ro);ws(ro);var Ag=/^aria-[\w-]*$/i,Md={"*":["class","dir","id","lang","role",Ag],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Dg=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Og=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Lg=(ii,ti)=>{let ei=ii.nodeName.toLowerCase();return ti.includes(ei)?Dg.has(ei)?!!Og.test(ii.nodeValue):!0:ti.filter(ni=>ni instanceof RegExp).some(ni=>ni.test(ei))};function Mg(ii,ti,ei){if(!ii.length)return ii;if(ei&&typeof ei=="function")return ei(ii);let ri=new window.DOMParser().parseFromString(ii,"text/html"),si=[].concat(...ri.body.querySelectorAll("*"));for(let ai of si){let li=ai.nodeName.toLowerCase();if(!Object.keys(ti).includes(li)){ai.remove();continue}let di=[].concat(...ai.attributes),mi=[].concat(ti["*"]||[],ti[li]||[]);for(let hi of di)Lg(hi,mi)||ai.removeAttribute(hi.nodeName)}return ri.body.innerHTML}var kg="TemplateFactory",Ng={allowList:Md,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Ig={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Rg={entry:"(string|element|function|null)",selector:"(string|element)"},Rc=class extends Ao{constructor(ti){super(),this._config=this._getConfig(ti)}static get Default(){return Ng}static get DefaultType(){return Ig}static get NAME(){return kg}getContent(){return Object.values(this._config.content).map(ti=>this._resolvePossibleFunction(ti)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(ti){return this._checkContent(ti),this._config.content=Ui(Ui({},this._config.content),ti),this}toHtml(){let ti=document.createElement("div");ti.innerHTML=this._maybeSanitize(this._config.template);for(let[ri,si]of Object.entries(this._config.content))this._setContent(ti,si,ri);let ei=ti.children[0],ni=this._resolvePossibleFunction(this._config.extraClass);return ni&&ei.classList.add(...ni.split(" ")),ei}_typeCheckConfig(ti){super._typeCheckConfig(ti),this._checkContent(ti.content)}_checkContent(ti){for(let[ei,ni]of Object.entries(ti))super._typeCheckConfig({selector:ei,entry:ni},Rg)}_setContent(ti,ei,ni){let ri=cn.findOne(ni,ti);if(ri){if(ei=this._resolvePossibleFunction(ei),!ei){ri.remove();return}if(Ps(ei)){this._putElementInTemplate(eo(ei),ri);return}if(this._config.html){ri.innerHTML=this._maybeSanitize(ei);return}ri.textContent=ei}}_maybeSanitize(ti){return this._config.sanitize?Mg(ti,this._config.allowList,this._config.sanitizeFn):ti}_resolvePossibleFunction(ti){return ls(ti,[this])}_putElementInTemplate(ti,ei){if(this._config.html){ei.innerHTML="",ei.append(ti);return}ei.textContent=ti.textContent}},Pg="tooltip",Hg=new Set(["sanitize","allowList","sanitizeFn"]),Sc="fade",Fg="modal",al="show",$g=".tooltip-inner",Ju=`.${Fg}`,Zu="hide.bs.modal",Aa="hover",Cc="focus",Bg="click",zg="manual",jg="hide",Vg="hidden",qg="show",Wg="shown",Ug="inserted",Yg="click",Gg="focusin",Kg="focusout",Qg="mouseenter",Xg="mouseleave",Jg={AUTO:"auto",TOP:"top",RIGHT:bs()?"left":"right",BOTTOM:"bottom",LEFT:bs()?"right":"left"},Zg={allowList:Md,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ev={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"},$s=class ii extends ps{constructor(ti,ei){if(typeof nl=="undefined")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(ti,ei),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Zg}static get DefaultType(){return ev}static get NAME(){return Pg}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()){this._leave();return}this._enter()}}dispose(){clearTimeout(this._timeout),Mi.off(this._element.closest(Ju),Zu,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(!(this._isWithContent()&&this._isEnabled))return;let ti=Mi.trigger(this._element,this.constructor.eventName(qg)),ni=(cd(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(ti.defaultPrevented||!ni)return;this._disposePopper();let ri=this._getTipElement();this._element.setAttribute("aria-describedby",ri.getAttribute("id"));let{container:si}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(si.append(ri),Mi.trigger(this._element,this.constructor.eventName(Ug))),this._popper=this._createPopper(ri),ri.classList.add(al),"ontouchstart"in document.documentElement)for(let li of[].concat(...document.body.children))Mi.on(li,"mouseover",fl);let ai=()=>{Mi.trigger(this._element,this.constructor.eventName(Wg)),this._isHovered===!1&&this._leave(),this._isHovered=!1};this._queueCallback(ai,this.tip,this._isAnimated())}hide(){if(!this._isShown()||Mi.trigger(this._element,this.constructor.eventName(jg)).defaultPrevented)return;if(this._getTipElement().classList.remove(al),"ontouchstart"in document.documentElement)for(let ri of[].concat(...document.body.children))Mi.off(ri,"mouseover",fl);this._activeTrigger[Bg]=!1,this._activeTrigger[Cc]=!1,this._activeTrigger[Aa]=!1,this._isHovered=null;let ni=()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),Mi.trigger(this._element,this.constructor.eventName(Vg)))};this._queueCallback(ni,this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return!!this._getTitle()}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(ti){let ei=this._getTemplateFactory(ti).toHtml();if(!ei)return null;ei.classList.remove(Sc,al),ei.classList.add(`bs-${this.constructor.NAME}-auto`);let ni=zh(this.constructor.NAME).toString();return ei.setAttribute("id",ni),this._isAnimated()&&ei.classList.add(Sc),ei}setContent(ti){this._newContent=ti,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(ti){return this._templateFactory?this._templateFactory.changeContent(ti):this._templateFactory=new Rc(Hn(Ui({},this._config),{content:ti,extraClass:this._resolvePossibleFunction(this._config.customClass)})),this._templateFactory}_getContentForTemplate(){return{[$g]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(ti){return this.constructor.getOrCreateInstance(ti.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Sc)}_isShown(){return this.tip&&this.tip.classList.contains(al)}_createPopper(ti){let ei=ls(this._config.placement,[this,ti,this._element]),ni=Jg[ei.toUpperCase()];return Sa(this._element,ti,this._getPopperConfig(ni))}_getOffset(){let{offset:ti}=this._config;return typeof ti=="string"?ti.split(",").map(ei=>Number.parseInt(ei,10)):typeof ti=="function"?ei=>ti(ei,this._element):ti}_resolvePossibleFunction(ti){return ls(ti,[this._element])}_getPopperConfig(ti){let ei={placement:ti,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:ni=>{this._getTipElement().setAttribute("data-popper-placement",ni.state.placement)}}]};return Ui(Ui({},ei),ls(this._config.popperConfig,[ei]))}_setListeners(){let ti=this._config.trigger.split(" ");for(let ei of ti)if(ei==="click")Mi.on(this._element,this.constructor.eventName(Yg),this._config.selector,ni=>{this._initializeOnDelegatedTarget(ni).toggle()});else if(ei!==zg){let ni=ei===Aa?this.constructor.eventName(Qg):this.constructor.eventName(Gg),ri=ei===Aa?this.constructor.eventName(Xg):this.constructor.eventName(Kg);Mi.on(this._element,ni,this._config.selector,si=>{let ai=this._initializeOnDelegatedTarget(si);ai._activeTrigger[si.type==="focusin"?Cc:Aa]=!0,ai._enter()}),Mi.on(this._element,ri,this._config.selector,si=>{let ai=this._initializeOnDelegatedTarget(si);ai._activeTrigger[si.type==="focusout"?Cc:Aa]=ai._element.contains(si.relatedTarget),ai._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},Mi.on(this._element.closest(Ju),Zu,this._hideModalHandler)}_fixTitle(){let ti=this._element.getAttribute("title");ti&&(!this._element.getAttribute("aria-label")&&!this._element.textContent.trim()&&this._element.setAttribute("aria-label",ti),this._element.setAttribute("data-bs-original-title",ti),this._element.removeAttribute("title"))}_enter(){if(this._isShown()||this._isHovered){this._isHovered=!0;return}this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show)}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(ti,ei){clearTimeout(this._timeout),this._timeout=setTimeout(ti,ei)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(ti){let ei=Hs.getDataAttributes(this._element);for(let ni of Object.keys(ei))Hg.has(ni)&&delete ei[ni];return ti=Ui(Ui({},ei),typeof ti=="object"&&ti?ti:{}),ti=this._mergeConfigObj(ti),ti=this._configAfterMerge(ti),this._typeCheckConfig(ti),ti}_configAfterMerge(ti){return ti.container=ti.container===!1?document.body:eo(ti.container),typeof ti.delay=="number"&&(ti.delay={show:ti.delay,hide:ti.delay}),typeof ti.title=="number"&&(ti.title=ti.title.toString()),typeof ti.content=="number"&&(ti.content=ti.content.toString()),ti}_getDelegateConfig(){let ti={};for(let[ei,ni]of Object.entries(this._config))this.constructor.Default[ei]!==ni&&(ti[ei]=ni);return ti.selector=!1,ti.trigger="manual",ti}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ei[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};ws($s);var tv="popover",iv=".popover-header",nv=".popover-body",rv=Hn(Ui({},$s.Default),{content:"",offset:[0,8],placement:"right",template:'',trigger:"click"}),sv=Hn(Ui({},$s.DefaultType),{content:"(null|string|element|function)"}),ta=class ii extends $s{static get Default(){return rv}static get DefaultType(){return sv}static get NAME(){return tv}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[iv]:this._getTitle(),[nv]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ei[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};ws(ta);var ov="scrollspy",av="bs.scrollspy",$c=`.${av}`,lv=".data-api",cv=`activate${$c}`,ed=`click${$c}`,uv=`load${$c}${lv}`,dv="dropdown-item",Xo="active",fv='[data-bs-spy="scroll"]',Ac="[href]",hv=".nav, .list-group",td=".nav-link",pv=".nav-item",mv=".list-group-item",gv=`${td}, ${pv} > ${td}, ${mv}`,vv=".dropdown",yv=".dropdown-toggle",_v={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},bv={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"},_l=class ii extends ps{constructor(ti,ei){super(ti,ei),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=getComputedStyle(this._element).overflowY==="visible"?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return _v}static get DefaultType(){return bv}static get NAME(){return ov}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(let ti of this._observableSections.values())this._observer.observe(ti)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(ti){return ti.target=eo(ti.target)||document.body,ti.rootMargin=ti.offset?`${ti.offset}px 0px -30%`:ti.rootMargin,typeof ti.threshold=="string"&&(ti.threshold=ti.threshold.split(",").map(ei=>Number.parseFloat(ei))),ti}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(Mi.off(this._config.target,ed),Mi.on(this._config.target,ed,Ac,ti=>{let ei=this._observableSections.get(ti.target.hash);if(ei){ti.preventDefault();let ni=this._rootElement||window,ri=ei.offsetTop-this._element.offsetTop;if(ni.scrollTo){ni.scrollTo({top:ri,behavior:"smooth"});return}ni.scrollTop=ri}}))}_getNewObserver(){let ti={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(ei=>this._observerCallback(ei),ti)}_observerCallback(ti){let ei=ai=>this._targetLinks.get(`#${ai.target.id}`),ni=ai=>{this._previousScrollData.visibleEntryTop=ai.target.offsetTop,this._process(ei(ai))},ri=(this._rootElement||document.documentElement).scrollTop,si=ri>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=ri;for(let ai of ti){if(!ai.isIntersecting){this._activeTarget=null,this._clearActiveClass(ei(ai));continue}let li=ai.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(si&&li){if(ni(ai),!ri)return;continue}!si&&!li&&ni(ai)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;let ti=cn.find(Ac,this._config.target);for(let ei of ti){if(!ei.hash||to(ei))continue;let ni=cn.findOne(decodeURI(ei.hash),this._element);ia(ni)&&(this._targetLinks.set(decodeURI(ei.hash),ei),this._observableSections.set(ei.hash,ni))}}_process(ti){this._activeTarget!==ti&&(this._clearActiveClass(this._config.target),this._activeTarget=ti,ti.classList.add(Xo),this._activateParents(ti),Mi.trigger(this._element,cv,{relatedTarget:ti}))}_activateParents(ti){if(ti.classList.contains(dv)){cn.findOne(yv,ti.closest(vv)).classList.add(Xo);return}for(let ei of cn.parents(ti,hv))for(let ni of cn.prev(ei,gv))ni.classList.add(Xo)}_clearActiveClass(ti){ti.classList.remove(Xo);let ei=cn.find(`${Ac}.${Xo}`,ti);for(let ni of ei)ni.classList.remove(Xo)}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};Mi.on(window,uv,()=>{for(let ii of cn.find(fv))_l.getOrCreateInstance(ii)});ws(_l);var Ev="tab",wv="bs.tab",Lo=`.${wv}`,xv=`hide${Lo}`,Tv=`hidden${Lo}`,Sv=`show${Lo}`,Cv=`shown${Lo}`,Av=`click${Lo}`,Dv=`keydown${Lo}`,Ov=`load${Lo}`,Lv="ArrowLeft",id="ArrowRight",Mv="ArrowUp",nd="ArrowDown",Dc="Home",rd="End",Co="active",sd="fade",Oc="show",kv="dropdown",kd=".dropdown-toggle",Nv=".dropdown-menu",Lc=`:not(${kd})`,Iv='.list-group, .nav, [role="tablist"]',Rv=".nav-item, .list-group-item",Pv=`.nav-link${Lc}, .list-group-item${Lc}, [role="tab"]${Lc}`,Nd='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Mc=`${Pv}, ${Nd}`,Hv=`.${Co}[data-bs-toggle="tab"], .${Co}[data-bs-toggle="pill"], .${Co}[data-bs-toggle="list"]`,Do=class ii extends ps{constructor(ti){super(ti),this._parent=this._element.closest(Iv),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),Mi.on(this._element,Dv,ei=>this._keydown(ei)))}static get NAME(){return Ev}show(){let ti=this._element;if(this._elemIsActive(ti))return;let ei=this._getActiveElem(),ni=ei?Mi.trigger(ei,xv,{relatedTarget:ti}):null;Mi.trigger(ti,Sv,{relatedTarget:ei}).defaultPrevented||ni&&ni.defaultPrevented||(this._deactivate(ei,ti),this._activate(ti,ei))}_activate(ti,ei){if(!ti)return;ti.classList.add(Co),this._activate(cn.getElementFromSelector(ti));let ni=()=>{if(ti.getAttribute("role")!=="tab"){ti.classList.add(Oc);return}ti.removeAttribute("tabindex"),ti.setAttribute("aria-selected",!0),this._toggleDropDown(ti,!0),Mi.trigger(ti,Cv,{relatedTarget:ei})};this._queueCallback(ni,ti,ti.classList.contains(sd))}_deactivate(ti,ei){if(!ti)return;ti.classList.remove(Co),ti.blur(),this._deactivate(cn.getElementFromSelector(ti));let ni=()=>{if(ti.getAttribute("role")!=="tab"){ti.classList.remove(Oc);return}ti.setAttribute("aria-selected",!1),ti.setAttribute("tabindex","-1"),this._toggleDropDown(ti,!1),Mi.trigger(ti,Tv,{relatedTarget:ei})};this._queueCallback(ni,ti,ti.classList.contains(sd))}_keydown(ti){if(![Lv,id,Mv,nd,Dc,rd].includes(ti.key))return;ti.stopPropagation(),ti.preventDefault();let ei=this._getChildren().filter(ri=>!to(ri)),ni;if([Dc,rd].includes(ti.key))ni=ei[ti.key===Dc?0:ei.length-1];else{let ri=[id,nd].includes(ti.key);ni=Pc(ei,ti.target,ri,!0)}ni&&(ni.focus({preventScroll:!0}),ii.getOrCreateInstance(ni).show())}_getChildren(){return cn.find(Mc,this._parent)}_getActiveElem(){return this._getChildren().find(ti=>this._elemIsActive(ti))||null}_setInitialAttributes(ti,ei){this._setAttributeIfNotExists(ti,"role","tablist");for(let ni of ei)this._setInitialAttributesOnChild(ni)}_setInitialAttributesOnChild(ti){ti=this._getInnerElement(ti);let ei=this._elemIsActive(ti),ni=this._getOuterElement(ti);ti.setAttribute("aria-selected",ei),ni!==ti&&this._setAttributeIfNotExists(ni,"role","presentation"),ei||ti.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(ti,"role","tab"),this._setInitialAttributesOnTargetPanel(ti)}_setInitialAttributesOnTargetPanel(ti){let ei=cn.getElementFromSelector(ti);ei&&(this._setAttributeIfNotExists(ei,"role","tabpanel"),ti.id&&this._setAttributeIfNotExists(ei,"aria-labelledby",`${ti.id}`))}_toggleDropDown(ti,ei){let ni=this._getOuterElement(ti);if(!ni.classList.contains(kv))return;let ri=(si,ai)=>{let li=cn.findOne(si,ni);li&&li.classList.toggle(ai,ei)};ri(kd,Co),ri(Nv,Oc),ni.setAttribute("aria-expanded",ei)}_setAttributeIfNotExists(ti,ei,ni){ti.hasAttribute(ei)||ti.setAttribute(ei,ni)}_elemIsActive(ti){return ti.classList.contains(Co)}_getInnerElement(ti){return ti.matches(Mc)?ti:cn.findOne(Mc,ti)}_getOuterElement(ti){return ti.closest(Rv)||ti}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this);if(typeof ti=="string"){if(ei[ti]===void 0||ti.startsWith("_")||ti==="constructor")throw new TypeError(`No method named "${ti}"`);ei[ti]()}})}};Mi.on(document,Av,Nd,function(ii){["A","AREA"].includes(this.tagName)&&ii.preventDefault(),!to(this)&&Do.getOrCreateInstance(this).show()});Mi.on(window,Ov,()=>{for(let ii of cn.find(Hv))Do.getOrCreateInstance(ii)});ws(Do);var Fv="toast",$v="bs.toast",oo=`.${$v}`,Bv=`mouseover${oo}`,zv=`mouseout${oo}`,jv=`focusin${oo}`,Vv=`focusout${oo}`,qv=`hide${oo}`,Wv=`hidden${oo}`,Uv=`show${oo}`,Yv=`shown${oo}`,Gv="fade",od="hide",ll="show",cl="showing",Kv={animation:"boolean",autohide:"boolean",delay:"number"},Qv={animation:!0,autohide:!0,delay:5e3},Bs=class ii extends ps{constructor(ti,ei){super(ti,ei),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Qv}static get DefaultType(){return Kv}static get NAME(){return Fv}show(){if(Mi.trigger(this._element,Uv).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(Gv);let ei=()=>{this._element.classList.remove(cl),Mi.trigger(this._element,Yv),this._maybeScheduleHide()};this._element.classList.remove(od),La(this._element),this._element.classList.add(ll,cl),this._queueCallback(ei,this._element,this._config.animation)}hide(){if(!this.isShown()||Mi.trigger(this._element,qv).defaultPrevented)return;let ei=()=>{this._element.classList.add(od),this._element.classList.remove(cl,ll),Mi.trigger(this._element,Wv)};this._element.classList.add(cl),this._queueCallback(ei,this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ll),super.dispose()}isShown(){return this._element.classList.contains(ll)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(ti,ei){switch(ti.type){case"mouseover":case"mouseout":{this._hasMouseInteraction=ei;break}case"focusin":case"focusout":{this._hasKeyboardInteraction=ei;break}}if(ei){this._clearTimeout();return}let ni=ti.relatedTarget;this._element===ni||this._element.contains(ni)||this._maybeScheduleHide()}_setListeners(){Mi.on(this._element,Bv,ti=>this._onInteraction(ti,!0)),Mi.on(this._element,zv,ti=>this._onInteraction(ti,!1)),Mi.on(this._element,jv,ti=>this._onInteraction(ti,!0)),Mi.on(this._element,Vv,ti=>this._onInteraction(ti,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(ti){return this.each(function(){let ei=ii.getOrCreateInstance(this,ti);if(typeof ti=="string"){if(typeof ei[ti]=="undefined")throw new TypeError(`No method named "${ti}"`);ei[ti](this)}})}};bl(Bs);ws(Bs);var EA=zo(Id()),wA=zo(El());function Mo(ii){return"error"in ii}function Un(ii){let ti=["","null","undefined"];return Array.isArray(ii)?ii.length>0:typeof ii=="string"&&!ti.includes(ii)||typeof ii=="number"||typeof ii=="boolean"?!0:typeof ii=="object"&&ii!==null}function wl(ii){return typeof ii!==null&&typeof ii!="undefined"}function Xv(ii,ti,ei){return ks(this,null,function*(){let ni=window.CSRF_TOKEN,ri=new Headers({"X-CSRFToken":ni}),si;typeof ei!="undefined"&&(si=JSON.stringify(ei),ri.set("content-type","application/json"));let ai=yield fetch(ii,{method:ti,body:si,headers:ri,credentials:"same-origin"}),li=ai.headers.get("Content-Type");if(typeof li=="string"&&li.includes("text"))return{error:yield ai.text()};let di=yield ai.json();return!ai.ok&&Array.isArray(di)?{error:di.join(`
+`)}:!ai.ok&&"detail"in di?{error:di.detail}:di})}function ra(ii,ti){return ks(this,null,function*(){return yield Xv(ii,"PATCH",ti)})}function*Gi(...ii){for(let ti of ii)for(let ei of document.querySelectorAll(ti))ei!==null&&(yield ei)}function ka(ii){return document.getElementById(ii)}function Rd(ii,ti=0){let ei=ti,ni=document.getElementById("content-title");ni!==null&&(ei+=ni.getBoundingClientRect().bottom);let ri=ii.getBoundingClientRect().top+window.pageYOffset+ei;window.scrollTo({top:ri,behavior:"smooth"})}function Pd(ii,ti="select"){let ei=[];for(let ni of ii.querySelectorAll(ti))if(ni!==null){let ri={name:ni.name,options:[]};for(let si of ni.options)si.selected&&ri.options.push(si.value);ei=[...ei,ri]}return ei}function ko(ii,ti,ei){function ni(si){return!!(typeof ei=="string"&&si!==null&&si.matches(ei))}function ri(si){if(si!==null&&si.parentElement!==null&&!ni(si)){for(let ai of si.parentElement.querySelectorAll(ti))if(ai!==null)return ai;return ri(si.parentElement.parentElement)}return null}return ri(ii)}function jc(ii,ti,ei=null,ni=[]){let ri=document.createElement(ii);if(ti!==null)for(let si of Object.keys(ti)){let ai=si,li=ti[ai];ai in ri&&(ri[ai]=li)}ei!==null&&ei.length>0&&ri.classList.add(...ei);for(let si of ni)ri.appendChild(si);return ri}function sa(ii,ti,ei){if(typeof ii!="string")throw new TypeError("replaceAll 'input' argument must be a string");if(typeof ti!="string"&&!(ti instanceof RegExp))throw new TypeError("replaceAll 'pattern' argument must be a string or RegExp instance");switch(typeof ei){case"boolean":ei=String(ei);break;case"number":ei=String(ei);break;case"string":break;default:throw new TypeError("replaceAll 'replacement' argument must be stringifyable")}if(ti instanceof RegExp){let ni=Array.from(new Set([...ti.flags.split(""),"g"])).join("");ti=new RegExp(ti.source,ni)}else ti=new RegExp(ti,"g");return ii.replace(ti,ei)}function Jv(ii,ti){let ei=new Set;for(let ni of ti.querySelectorAll("*[name]"))ni.validity.valid?ni.classList.contains("is-invalid")&&ni.classList.remove("is-invalid"):(ei.add(ni.name),ni.classList.contains("is-invalid")||ni.classList.add("is-invalid"));if(ei.size!==0){let ni=ti.elements.namedItem(Array.from(ei)[0]);Rd(ni),ii.preventDefault()}}function Hd(){for(let ii of Gi("form")){let ti=ii.querySelectorAll("button[type=submit]");for(let ni of ti)ni.addEventListener("click",ri=>Jv(ri,ii));let ei=document.querySelector("button[data-reset-select]");ei!==null&&ei.addEventListener("click",()=>{window.location.assign(window.location.origin+window.location.pathname)})}}function Fd(){for(let ti of Gi("a.set_field_value"))if(ti!==null){let ei=function(ni){ni.preventDefault();let ri=ti.getAttribute("data"),si=document.getElementById(ti.target);si!==null&&ri!==null&&(si.value=ri)};var ii=ei;ti.addEventListener("click",ei)}}function $d(){for(let ii of[Hd,Fd])ii()}window.Collapse=io;window.Modal=Fs;window.Popover=ta;window.Toast=Bs;window.Tooltip=$s;function Zv(){for(let ii of Gi('[data-bs-toggle="tooltip"]'))new $s(ii,{container:"body"})}function ey(){for(let ii of Gi('[data-bs-toggle="modal"]'))new Fs(ii)}function ao(ii,ti,ei,ni){let ri="mdi-alert";switch(ii){case"warning":ri="mdi-alert";break;case"success":ri="mdi-check-circle";break;case"info":ri="mdi-information";break;case"danger":ri="mdi-alert";break}let si=document.createElement("div");si.setAttribute("class","toast-container position-fixed bottom-0 end-0 m-3");let ai=document.createElement("div");ai.setAttribute("class",`toast bg-${ii}`),ai.setAttribute("role","alert"),ai.setAttribute("aria-live","assertive"),ai.setAttribute("aria-atomic","true");let li=document.createElement("div");li.setAttribute("class",`toast-header bg-${ii} text-body`);let di=document.createElement("i");di.setAttribute("class",`mdi ${ri}`);let mi=document.createElement("strong");mi.setAttribute("class","me-auto ms-1"),mi.innerText=ti;let hi=document.createElement("button");hi.setAttribute("type","button"),hi.setAttribute("class","btn-close"),hi.setAttribute("data-bs-dismiss","toast"),hi.setAttribute("aria-label","Close");let _i=document.createElement("div");if(_i.setAttribute("class","toast-body"),li.appendChild(di),li.appendChild(mi),typeof ni!="undefined"){let Ai=document.createElement("small");Ai.setAttribute("class","text-muted"),li.appendChild(Ai)}return li.appendChild(hi),_i.innerText=ei.trim(),ai.appendChild(li),ai.appendChild(_i),si.appendChild(ai),document.body.appendChild(si),new Bs(ai)}function ty(){let{hash:ii}=location;if(ii&&ii.match(/^#tab_.+$/)){let ti=ii.replace("tab_","");for(let ei of Gi(`ul.nav.nav-tabs .nav-link[data-bs-target="${ti}"]`))new Do(ei).show()}}function iy(){let ii=document.querySelectorAll(".sidebar .accordion-item");function ti(ei){for(let ni of ii)ni!==ei?ni.classList.remove("is-open"):ni.classList.toggle("is-open")}for(let ei of ii)for(let ni of ei.querySelectorAll(".accordion-button"))ni.addEventListener("click",()=>{ti(ei)})}function ny(){for(let ii of Gi("a.image-preview")){let ti=`${Math.round(window.innerWidth/4)}px`,ei=jc("img",{src:ii.href});ei.style.maxWidth=ti;let ni=jc("div",null,null,[ei]);new ta(ii,{customClass:"image-preview-popover",trigger:"hover",html:!0,content:ni})}}function xl(){for(let ii of[Zv,ey,ty,ny,iy])ii()}function Bd(ii){let ti=ii.currentTarget,ei=document.getElementById("quicksearch_clear");Un(ei)&&(ti.value===""?ei.classList.add("invisible"):ei.classList.remove("invisible"))}function zd(){let ii=document.getElementById("export_current_view"),ti=ii==null?void 0:ii.href.split("&")[0];ii.setAttribute("href",ti)}function ry(ii){let ti=ii.currentTarget;if(zd(),ti!=null){let ei=document.getElementById("export_current_view"),ni=`q=${ti.value}`,ri=(ei==null?void 0:ei.href)+"&"+ni;ei.setAttribute("href",ri)}}function jd(){let ii=document.getElementById("quicksearch"),ti=document.getElementById("quicksearch_clear");Un(ii)&&(ii.addEventListener("keyup",Bd,{passive:!0}),ii.addEventListener("search",Bd,{passive:!0}),ii.addEventListener("change",ry,{passive:!0}),Un(ti)&&ti.addEventListener("click",()=>ks(this,null,function*(){let ei=new Event("search");ii.value="",yield new Promise(ni=>setTimeout(ni,100)),ii.dispatchEvent(ei),zd()}),{passive:!0}))}var Vc=zo(El());function Na(ii){let ti={};return ti.clear_button={html:ei=>` `},ii.hasAttribute("multiple")&&(ti.remove_button={title:"Remove"}),{plugins:ti}}function Vd(){for(let ii of Gi("select:not(.tomselected):not(.no-ts):not([size]):not(.api-select):not(.color-select)"))new Vc.default(ii,Hn(Ui({},Na(ii)),{maxOptions:void 0}))}function qd(){function ii(ti,ei){return` ${ei(ti.text)}
`}for(let ti of Gi("select.color-select:not(.tomselected)"))new Vc.default(ti,Hn(Ui({},Na(ti)),{maxOptions:void 0,render:{option:ii,item:ii}}))}var sy=zo(Ud());var Yd=(ii,ti)=>{if(Array.isArray(ii))ii.forEach(ti);else for(var ei in ii)ii.hasOwnProperty(ei)&&ti(ii[ei],ei)};var Gd=(ii,...ti)=>{var ei=oy(ti);ii=ay(ii),ii.map(ni=>{ei.map(ri=>{ni.classList.add(ri)})})};var oy=ii=>{var ti=[];return Yd(ii,ei=>{typeof ei=="string"&&(ei=ei.trim().split(/[\11\12\14\15\40]/)),Array.isArray(ei)&&(ti=ti.concat(ei))}),ti.filter(Boolean)},ay=ii=>(Array.isArray(ii)||(ii=[ii]),ii);var Kc={};hu(Kc,{exclude:()=>my,extract:()=>Yc,parse:()=>Gc,parseUrl:()=>sf,pick:()=>af,stringify:()=>rf,stringifyUrl:()=>of});var Xd="%[a-f0-9]{2}",Kd=new RegExp("("+Xd+")|([^%]+?)","gi"),Qd=new RegExp("("+Xd+")+","gi");function qc(ii,ti){try{return[decodeURIComponent(ii.join(""))]}catch(ri){}if(ii.length===1)return ii;ti=ti||1;let ei=ii.slice(0,ti),ni=ii.slice(ti);return Array.prototype.concat.call([],qc(ei),qc(ni))}function ly(ii){try{return decodeURIComponent(ii)}catch(ti){let ei=ii.match(Kd)||[];for(let ni=1;niii==null,dy=ii=>encodeURIComponent(ii).replaceAll(/[!'()*]/g,ti=>`%${ti.charCodeAt(0).toString(16).toUpperCase()}`),Uc=Symbol("encodeFragmentIdentifier");function fy(ii){switch(ii.arrayFormat){case"index":return ti=>(ei,ni)=>{let ri=ei.length;return ni===void 0||ii.skipNull&&ni===null||ii.skipEmptyString&&ni===""?ei:ni===null?[...ei,[Jn(ti,ii),"[",ri,"]"].join("")]:[...ei,[Jn(ti,ii),"[",Jn(ri,ii),"]=",Jn(ni,ii)].join("")]};case"bracket":return ti=>(ei,ni)=>ni===void 0||ii.skipNull&&ni===null||ii.skipEmptyString&&ni===""?ei:ni===null?[...ei,[Jn(ti,ii),"[]"].join("")]:[...ei,[Jn(ti,ii),"[]=",Jn(ni,ii)].join("")];case"colon-list-separator":return ti=>(ei,ni)=>ni===void 0||ii.skipNull&&ni===null||ii.skipEmptyString&&ni===""?ei:ni===null?[...ei,[Jn(ti,ii),":list="].join("")]:[...ei,[Jn(ti,ii),":list=",Jn(ni,ii)].join("")];case"comma":case"separator":case"bracket-separator":{let ti=ii.arrayFormat==="bracket-separator"?"[]=":"=";return ei=>(ni,ri)=>ri===void 0||ii.skipNull&&ri===null||ii.skipEmptyString&&ri===""?ni:(ri=ri===null?"":ri,ni.length===0?[[Jn(ei,ii),ti,Jn(ri,ii)].join("")]:[[ni,Jn(ri,ii)].join(ii.arrayFormatSeparator)])}default:return ti=>(ei,ni)=>ni===void 0||ii.skipNull&&ni===null||ii.skipEmptyString&&ni===""?ei:ni===null?[...ei,Jn(ti,ii)]:[...ei,[Jn(ti,ii),"=",Jn(ni,ii)].join("")]}}function hy(ii){let ti;switch(ii.arrayFormat){case"index":return(ei,ni,ri)=>{if(ti=/\[(\d*)]$/.exec(ei),ei=ei.replace(/\[\d*]$/,""),!ti){ri[ei]=ni;return}ri[ei]===void 0&&(ri[ei]={}),ri[ei][ti[1]]=ni};case"bracket":return(ei,ni,ri)=>{if(ti=/(\[])$/.exec(ei),ei=ei.replace(/\[]$/,""),!ti){ri[ei]=ni;return}if(ri[ei]===void 0){ri[ei]=[ni];return}ri[ei]=[...ri[ei],ni]};case"colon-list-separator":return(ei,ni,ri)=>{if(ti=/(:list)$/.exec(ei),ei=ei.replace(/:list$/,""),!ti){ri[ei]=ni;return}if(ri[ei]===void 0){ri[ei]=[ni];return}ri[ei]=[...ri[ei],ni]};case"comma":case"separator":return(ei,ni,ri)=>{let si=typeof ni=="string"&&ni.includes(ii.arrayFormatSeparator),ai=typeof ni=="string"&&!si&&js(ni,ii).includes(ii.arrayFormatSeparator);ni=ai?js(ni,ii):ni;let li=si||ai?ni.split(ii.arrayFormatSeparator).map(di=>js(di,ii)):ni===null?ni:js(ni,ii);ri[ei]=li};case"bracket-separator":return(ei,ni,ri)=>{let si=/(\[])$/.test(ei);if(ei=ei.replace(/\[]$/,""),!si){ri[ei]=ni&&js(ni,ii);return}let ai=ni===null?[]:js(ni,ii).split(ii.arrayFormatSeparator);if(ri[ei]===void 0){ri[ei]=ai;return}ri[ei]=[...ri[ei],...ai]};default:return(ei,ni,ri)=>{if(ri[ei]===void 0){ri[ei]=ni;return}ri[ei]=[...[ri[ei]].flat(),ni]}}}function ef(ii){if(typeof ii!="string"||ii.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Jn(ii,ti){return ti.encode?ti.strict?dy(ii):encodeURIComponent(ii):ii}function js(ii,ti){return ti.decode?Wc(ii):ii}function tf(ii){return Array.isArray(ii)?ii.sort():typeof ii=="object"?tf(Object.keys(ii)).sort((ti,ei)=>Number(ti)-Number(ei)).map(ti=>ii[ti]):ii}function nf(ii){let ti=ii.indexOf("#");return ti!==-1&&(ii=ii.slice(0,ti)),ii}function py(ii){let ti="",ei=ii.indexOf("#");return ei!==-1&&(ti=ii.slice(ei)),ti}function Zd(ii,ti,ei){return ei==="string"&&typeof ii=="string"?ii:typeof ei=="function"&&typeof ii=="string"?ei(ii):ti.parseBooleans&&ii!==null&&(ii.toLowerCase()==="true"||ii.toLowerCase()==="false")?ii.toLowerCase()==="true":ei==="number"&&!Number.isNaN(Number(ii))&&typeof ii=="string"&&ii.trim()!==""||ti.parseNumbers&&!Number.isNaN(Number(ii))&&typeof ii=="string"&&ii.trim()!==""?Number(ii):ii}function Yc(ii){ii=nf(ii);let ti=ii.indexOf("?");return ti===-1?"":ii.slice(ti+1)}function Gc(ii,ti){ti=Ui({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,types:Object.create(null)},ti),ef(ti.arrayFormatSeparator);let ei=hy(ti),ni=Object.create(null);if(typeof ii!="string"||(ii=ii.trim().replace(/^[?#&]/,""),!ii))return ni;for(let ri of ii.split("&")){if(ri==="")continue;let si=ti.decode?ri.replaceAll("+"," "):ri,[ai,li]=Sl(si,"=");ai===void 0&&(ai=si),li=li===void 0?null:["comma","separator","bracket-separator"].includes(ti.arrayFormat)?li:js(li,ti),ei(js(ai,ti),li,ni)}for(let[ri,si]of Object.entries(ni))if(typeof si=="object"&&si!==null&&ti.types[ri]!=="string")for(let[ai,li]of Object.entries(si)){let di=ti.types[ri]?ti.types[ri].replace("[]",""):void 0;si[ai]=Zd(li,ti,di)}else typeof si=="object"&&si!==null&&ti.types[ri]==="string"?ni[ri]=Object.values(si).join(ti.arrayFormatSeparator):ni[ri]=Zd(si,ti,ti.types[ri]);return ti.sort===!1?ni:(ti.sort===!0?Object.keys(ni).sort():Object.keys(ni).sort(ti.sort)).reduce((ri,si)=>{let ai=ni[si];return ri[si]=ai&&typeof ai=="object"&&!Array.isArray(ai)?tf(ai):ai,ri},Object.create(null))}function rf(ii,ti){if(!ii)return"";ti=Ui({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},ti),ef(ti.arrayFormatSeparator);let ei=ai=>ti.skipNull&&uy(ii[ai])||ti.skipEmptyString&&ii[ai]==="",ni=fy(ti),ri={};for(let[ai,li]of Object.entries(ii))ei(ai)||(ri[ai]=li);let si=Object.keys(ri);return ti.sort!==!1&&si.sort(ti.sort),si.map(ai=>{let li=ii[ai];return li===void 0?"":li===null?Jn(ai,ti):Array.isArray(li)?li.length===0&&ti.arrayFormat==="bracket-separator"?Jn(ai,ti)+"[]":li.reduce(ni(ai),[]).join("&"):Jn(ai,ti)+"="+Jn(li,ti)}).filter(ai=>ai.length>0).join("&")}function sf(ii,ti){var ri,si;ti=Ui({decode:!0},ti);let[ei,ni]=Sl(ii,"#");return ei===void 0&&(ei=ii),Ui({url:(si=(ri=ei==null?void 0:ei.split("?"))==null?void 0:ri[0])!=null?si:"",query:Gc(Yc(ii),ti)},ti&&ti.parseFragmentIdentifier&&ni?{fragmentIdentifier:js(ni,ti)}:{})}function of(ii,ti){ti=Ui({encode:!0,strict:!0,[Uc]:!0},ti);let ei=nf(ii.url).split("?")[0]||"",ni=Yc(ii.url),ri=Ui(Ui({},Gc(ni,{sort:!1})),ii.query),si=rf(ri,ti);si&&(si=`?${si}`);let ai=py(ii.url);if(typeof ii.fragmentIdentifier=="string"){let li=new URL(ei);li.hash=ii.fragmentIdentifier,ai=ti[Uc]?li.hash:`#${ii.fragmentIdentifier}`}return`${ei}${si}${ai}`}function af(ii,ti,ei){ei=Ui({parseFragmentIdentifier:!0,[Uc]:!1},ei);let{url:ni,query:ri,fragmentIdentifier:si}=sf(ii,ei);return of({url:ni,query:Jd(ri,ti),fragmentIdentifier:si},ei)}function my(ii,ti,ei){let ni=Array.isArray(ti)?ri=>!ti.includes(ri):(ri,si)=>!ti(ri,si);return af(ii,ni,ei)}var lf=Kc;var uf=zo(El());function cf(ii){if(Array.isArray(ii)){for(let ti of ii)if(typeof ti=="object"&&ti!==null&&"fieldName"in ti&&"queryParam"in ti)return typeof ti.fieldName=="string"&&typeof ti.queryParam=="string"}return!1}var Cl=class extends Map{queryParam(ti){let ei=this.get(ti);return typeof ei!="undefined"?ei.queryParam:null}queryValue(ti){let ei=this.get(ti);return typeof ei!="undefined"?ei.queryValue:[]}updateValue(ti,ei){let ni=this.get(ti);if(Un(ni)){let{queryParam:ri}=ni;return this.set(ti,{queryParam:ri,queryValue:ei}),!0}return!1}addFromJson(ti){if(Un(ti)){let ei=JSON.parse(ti);if(cf(ei))for(let{queryParam:ni,fieldName:ri}of ei)this.set(ri,{queryParam:ni,queryValue:[]});else throw new Error(`Data from 'data-dynamic-params' attribute is improperly formatted: '${ti}'`)}}};var Al=class extends uf.default{constructor(ei,ni){super(ei,ni);Rn(this,"nullOption",null);Rn(this,"queryParams",new Map);Rn(this,"staticParams",new Map);Rn(this,"dynamicParams",new Cl);Rn(this,"pathValues",new Map);this.api_url=this.input.getAttribute("data-url"),this.valueField=this.input.getAttribute("ts-value-field")||this.settings.valueField,this.labelField=this.input.getAttribute("ts-label-field")||this.settings.labelField,this.disabledField=this.input.getAttribute("ts-disabled-field")||this.settings.disabledField,this.descriptionField=this.input.getAttribute("ts-description-field")||"description",this.depthField=this.input.getAttribute("ts-depth-field")||"_depth",this.parentField=this.input.getAttribute("ts-parent-field")||null,this.countField=this.input.getAttribute("ts-count-field")||null;let ri=this.input.getAttribute("data-null-option");if(ri){let si=this.settings.valueField,ai=this.settings.labelField;this.nullOption={},this.nullOption[si]="null",this.nullOption[ai]=ri}this.getStaticParams();for(let[si,ai]of this.staticParams.entries())this.queryParams.set(si,ai);this.getDynamicParams();for(let si of this.dynamicParams.keys())this.updateQueryParams(si);this.getPathKeys();for(let si of this.pathValues.keys())this.updatePathValues(si);this.addEventListeners()}load(ei){let ni=this;ni.clearOptions(),ni.nullOption&&!ei&&ni.addOption(ni.nullOption);let ri=ni.getRequestUrl(ei);ri&&(Gd(ni.wrapper,ni.settings.loadingClass),ni.loading++,fetch(ri).then(si=>si.json()).then(si=>{let ai=si.results,li=[];for(let di of ai){let mi=ni.getOptionFromData(di);li.push(mi)}return li}).then(si=>{ni.loadCallback(si,[])}).catch(()=>{ni.loadCallback([],[])}))}getRequestUrl(ei){let ni=this.api_url,ri={};for(let[si,ai]of this.queryParams.entries())ri[si]=ai;for(let[si,ai]of this.pathValues.entries())for(let li of this.api_url.matchAll(new RegExp(`({{${si}}})`,"g")))if(ai)ni=sa(ni,li[1],ai.toString());else return"";return ei&&(ri.q=[ei]),ri.brief=[!0],ri.limit=[this.settings.maxOptions],lf.stringifyUrl({url:ni,query:ri})}getOptionFromData(ei){let ni={id:ei[this.valueField],display:ei[this.labelField],depth:ei[this.depthField]||null,description:ei[this.descriptionField]||null};if(ei[this.parentField]){let ri=ei[this.parentField];ni.parent=ri[this.labelField]}return ei[this.countField]&&(ni.count=ei[this.countField]),ei[this.disabledField]&&(ni.disabled=ei[this.disabledField]),ni}getStaticParams(){let ei=this.input.getAttribute("data-static-params");try{if(ei){let ni=JSON.parse(ei);if(ni)for(let{queryParam:ri,queryValue:si}of ni)Array.isArray(si)?this.staticParams.set(ri,si):this.staticParams.set(ri,[si])}}catch(ni){console.group(`Unable to determine static query parameters for select field '${this.name}'`),console.warn(ni),console.groupEnd()}}getDynamicParams(){let ei=this.input.getAttribute("data-dynamic-params");try{this.dynamicParams.addFromJson(ei)}catch(ni){console.group(`Unable to determine dynamic query parameters for select field '${this.name}'`),console.warn(ni),console.groupEnd()}}getPathKeys(){for(let ei of this.api_url.matchAll(new RegExp("{{(.+)}}","g")))this.pathValues.set(ei[1],"")}updateQueryParams(ei){let ni=document.querySelector(`[name="${ei}"]`);if(ni!==null){let ri=[];if(ni.multiple?ri=Array.from(ni.options).filter(si=>si.selected).map(si=>si.value):ni.value!==""&&(ri=[ni.value]),ri.length>0){this.dynamicParams.updateValue(ei,ri);let si=this.dynamicParams.get(ei);if(typeof si!="undefined"){let{queryParam:ai,queryValue:li}=si,di=[];if(this.staticParams.has(ai)){let mi=this.staticParams.get(ai);typeof mi!="undefined"&&(di=[...mi,...li])}else di=li;di.length>0?this.queryParams.set(ai,di):this.queryParams.delete(ai)}}else{let si=this.dynamicParams.queryParam(ei);si!==null&&this.queryParams.delete(si)}}}updatePathValues(ei){let ni=sa(ei,/^id_/i,""),ri=ka(`id_${ni}`);ri!==null&&this.api_url.includes("{{")&&this.api_url.match(new RegExp(`({{(${ei})}})`,"g"))&&(ri.value?this.pathValues.set(ei,ri.value):this.pathValues.set(ei,""))}addEventListeners(){let ei=new Set([...this.dynamicParams.keys(),...this.pathValues.keys()]);for(let ni of ei){let ri=document.querySelector(`[name="${ni}"]`);ri!==null&&ri.addEventListener("change",si=>this.handleEvent(si)),this.input.addEventListener(`netbox.select.onload.${ni}`,si=>this.handleEvent(si))}}handleEvent(ei){let ni=ei.target;this.updateQueryParams(ni.name),this.updatePathValues(ni.name),this.clear(),this.load(this.lastValue)}};var gy="id",Dl="display",vy=100;function yy(ii,ti){let ei="";return typeof ii.depth=="number"&&ii.depth>0&&(ei=`${ei}${"\u2500".repeat(ii.depth)} `),ei=`${ei}${ti(ii[Dl])}`,ii.parent&&(ei=`${ei} ${ti(ii.parent)} `),ii.count&&(ei=`${ei} ${ti(ii.count)} `),ii.description&&(ei=`${ei}${ti(ii.description)} `),ei=`${ei}
`,ei}function _y(ii,ti){return ii.parent?`${ti(ii.parent)} > ${ti(ii[Dl])}
`:`${ti(ii[Dl])}
`}function df(){for(let ii of Gi("select.api-select:not(.tomselected)"))new Al(ii,Hn(Ui({},Na(ii)),{valueField:gy,labelField:Dl,maxOptions:vy,searchField:[],preload:"focus",render:{option:yy,item:_y},shouldLoad:function(){return!0}}))}function Ol(){Vd(),df(),qd()}function ff(ii,ti){var ri;let ei=(ri=ii.parentElement)==null?void 0:ri.parentElement,ni=ii.getAttribute("data-url");Un(ni)&&ra(ni,{status:ti}).then(si=>{if(Mo(si)){ao("danger","Error",si.error).show();return}else ei.setAttribute("data-cable-status",ti)})}function hf(){for(let ii of Gi("button.mark-planned"))ii.addEventListener("click",()=>ff(ii,"planned"));for(let ii of Gi("button.mark-installed"))ii.addEventListener("click",()=>ff(ii,"connected"))}var Qc=class{set(ti,ei,ni){return ti[ei]=ni,!0}get(ti,ei){return ti[ei]}has(ti,ei){return ei in ti}},Ia=class{constructor(ti,ei){Rn(this,"handlers");Rn(this,"proxy");Rn(this,"options");Rn(this,"key","");if(this.options=ei,typeof this.options.key=="string"?this.key=this.options.key:this.key=this.generateStateKey(ti),this.options.persist){let ni=this.retrieve();ni!==null&&(ti=Ui(Ui({},ti),ni))}this.handlers=new Qc,this.proxy=new Proxy(ti,this.handlers),this.options.persist&&this.save()}generateStateKey(ti){return`netbox-${window.btoa(Object.keys(ti).join("---"))}`}get(ti){return this.handlers.get(this.proxy,ti)}set(ti,ei){this.handlers.set(this.proxy,ti,ei),this.options.persist&&this.save()}all(){return this.proxy}keys(){return Object.keys(this.proxy)}values(){return Object.values(this.proxy)}save(){let ti=JSON.stringify(this.proxy);localStorage.setItem(this.key,ti)}retrieve(){let ti=localStorage.getItem(this.key);return ti!==null?JSON.parse(ti):null}};function lo(ii,ti={}){return new Ia(ii,ti)}var Xc=lo({hidden:!1},{persist:!0,key:"netbox-object-depth"});var Jc=lo({view:"images-and-labels"},{persist:!0});var pf=lo({element:null},{persist:!1});var mf=lo({hidden:!0},{persist:!0,key:"netbox-secret"});function gf(ii,ti){ti.setAttribute("data-depth-indicators",ii?"hidden":"shown"),ti.innerText=ii?"Show Depth Indicators":"Hide Depth Indicators"}function vf(){for(let ii of Gi(".record-depth"))ii.style.display=""}function yf(){for(let ii of Gi(".record-depth"))ii.style.display="none"}function by(ii,ti){let ei=ii.get("hidden");ii.set("hidden",!ei);let ni=ii.get("hidden");ni?yf():vf(),gf(ni,ti)}function _f(){let ii=Xc.get("hidden");for(let ti of Gi("button.toggle-depth"))gf(ii,ti),ti.addEventListener("click",ei=>{by(Xc,ei.currentTarget)},!1);ii?yf():ii||vf()}function Ey(ii){let ti=Array.from(ii.options);for(let ei=1;ei
=0;ei--){let ni=ti[ei];if(ni.selected){let ri=ii.options[ei+1];ni=ii.removeChild(ni),ri=ii.replaceChild(ni,ri),ii.insertBefore(ri,ni)}}}function bf(){for(let ii of Gi("#move-option-up")){let ti=ii.getAttribute("data-target");if(ti!==null)for(let ei of Gi(`#${ti}`))ii.addEventListener("click",()=>Ey(ei))}for(let ii of Gi("#move-option-down")){let ti=ii.getAttribute("data-target");if(ti!==null)for(let ei of Gi(`#${ti}`))ii.addEventListener("click",()=>wy(ei))}}function Ef(ii,ti){return ii.replace(/[^\-.\w\s]/g,"").replace(/^[\s.]+|[\s.]+$/g,"").replace(/[-.\s]+/g,"-").toLowerCase().substring(0,ti)}function wf(){let ii=document.getElementById("id_slug"),ti=document.getElementById("reslug");if(ii===null||ti===null)return;let ei=ii.getAttribute("slug-source"),ni=document.getElementById(`id_${ei}`);if(ni===null){console.error("Unable to find field for slug field.");return}let ri=ii.getAttribute("maxlength"),si=50;ri&&(si=Number(ri)),ni.addEventListener("blur",()=>{ii.value||(ii.value=Ef(ni.value,si))}),ti.addEventListener("click",()=>{ii.value=Ef(ni.value,si)})}function xy(ii){if(!ii.currentTarget.checked)for(let ei of Gi('input[type="checkbox"].toggle',"input#select-all"))ei.checked=!1}function Ty(ii){let ti=ii.currentTarget,ei=ko(ti,"table"),ni=document.getElementById("select-all-box"),ri=document.getElementById("select-all");if(ei!==null){for(let si of ei.querySelectorAll('tr:not(.d-none) input[type="checkbox"][name="pk"]'))ti.checked?si.checked=!0:si.checked=!1;ni!==null&&(ti.checked?ni.classList.remove("d-none"):(ni.classList.add("d-none"),ri!==null&&(ri.checked=!1)))}}function xf(){for(let ii of Gi('table tr th > input[type="checkbox"].toggle'))ii.addEventListener("change",Ty);for(let ii of Gi('input[type="checkbox"][name="pk"]'))ii.addEventListener("change",xy)}function Tf(){let ii=document.querySelector('input[type="checkbox"][name="pk"]:checked'),ti=document.querySelector("div.form.form-horizontal div.btn-list");if(!ti)return;let ei=ti.classList.contains("btn-float-group-left");ii!==null&&!ei?ti.classList.add("btn-float-group-left"):ii===null&&ei&&ti.classList.remove("btn-float-group-left")}function Sf(){for(let ii of Gi('input[type="checkbox"][name="pk"]'))ii.addEventListener("change",()=>{Tf()});for(let ii of Gi('table tr th > input[type="checkbox"].toggle'))ii.addEventListener("change",()=>{Tf()})}function Af(){var ii;(ii=window.getSelection())==null||ii.removeAllRanges()}function Cf(ii,ti){ti.set("element",ii)}function Sy(ii,ti,ei){let ni=!1;for(let ri of ei){let si=ri;if(ni===!0&&(si.checked=ii.checked),ri===ti){if(ni===!0){ni=!1;return}ni=!0,si.checked=ii.checked}if(ri===ii){if(ni===!0){ni=!1;return}ni=!0}}}function Cy(ii,ti){let ei=ii.target,ni=ti.get("element");if(Cf(ei,ti),!ii.shiftKey)return;if(Af(),ni===null)return Cf(ei,ti);let ri=Gi('input[type="checkbox"][name="pk"]');Sy(ei,ni,ri)}function Df(){let ii=Gi('input[type="checkbox"][name="pk"]');for(let ti of ii)ti.addEventListener("click",ei=>{Af(),ei.stopPropagation(),Cy(ei,pf)})}function Ay(ii){let ti=ii.querySelector("button.preview-button"),ei=ii.querySelector("textarea"),ni=ii.querySelector("div.preview");if(!Un(ei.style.height)){let{height:ri}=ei.getBoundingClientRect();ei.style.height=`${ri}px`}ti.addEventListener("htmx:configRequest",ri=>{ri.detail.parameters={text:ei.value||""},ri.detail.headers["X-CSRFToken"]=window.CSRF_TOKEN,ni.style.minHeight=ei.style.height,ni.innerHTML=""})}function Of(){for(let ii of document.querySelectorAll(".markdown-widget"))Ay(ii)}function Dy(ii,ti){ti.setAttribute("data-secret-visibility",ii?"hidden":"shown"),ti.innerText=ii?"Show Secret":"Hide Secret"}function Oy(){let ii=ka("secret");if(Un(ii)){let ti=ii.getAttribute("data-secret");Un(ti)&&(ii.innerText=ti)}}function Mf(){let ii=ka("secret");if(Un(ii)){let ti=ii.getAttribute("data-secret");Un(ti)&&(ii.innerText="\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022")}}function Ly(ii,ti){ii.set("hidden",!ii.get("hidden"));let ei=ii.get("hidden");ei?Mf():Oy(),Dy(ei,ti)}function Lf(ii){Ly(mf,ii.currentTarget)}function kf(){Mf();for(let ii of Gi("button.toggle-secret"))ii.removeEventListener("click",Lf),ii.addEventListener("click",Lf)}function Ll(){for(let ii of[_f,hf,wf,xf,Df,Sf,bf,Of,kf])ii()}var Zc="netbox-color-mode";function My(ii){return ii==="dark"||ii==="light"}function ky(ii){return localStorage.setItem(Zc,ii)}function Ny(ii){var ei,ni;let ti=document.querySelector("body");ti&&ii=="dark"?ti.setAttribute("data-bs-theme","dark"):ti&&ti.setAttribute("data-bs-theme","light");for(let ri of Gi(".rack_elevation")){let si=(ni=(ei=ri.contentDocument)==null?void 0:ei.querySelector("svg"))!=null?ni:null;si!==null&&si.setAttribute("data-bs-theme",ii)}}function co(ii){ky(ii),Ny(ii)}function Iy(){let ii=localStorage.getItem(Zc);ii==="light"?co("dark"):ii==="dark"?co("light"):console.warn("Unable to determine the current color mode")}function Ry(){let ii=localStorage.getItem(Zc);if(Un(ii))return co(ii);let ti="none";for(let ei of["dark","light"])if(window.matchMedia(`(prefers-color-scheme: ${ei})`).matches){ti=ei;break}if(Un(ii)&&My(ii))return co(ii);switch(ti){case"dark":return co("dark");case"light":return co("light");case"none":return co("light");default:return co("light")}}function Py(){for(let ii of Gi("button.color-mode-toggle"))ii.addEventListener("click",Iy)}function Nf(){window.addEventListener("load",Ry);for(let ii of[Py])ii()}function Ml(){let ii=document.querySelectorAll("body > div#django-messages > div.toast");for(let ti of ii)if(ti!==null){let ei=new Bs(ti);ei.isShown()||ei.show()}}var Rf=zo(If());function kl(){for(let ii of Gi(".copy-content"))new Rf.default(ii)}var Nl=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],uo={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:typeof window=="object"&&window.navigator.userAgent.indexOf("MSIE")===-1,ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(ii){return typeof console!="undefined"&&console.warn(ii)},getWeek:function(ii){var ti=new Date(ii.getTime());ti.setHours(0,0,0,0),ti.setDate(ti.getDate()+3-(ti.getDay()+6)%7);var ei=new Date(ti.getFullYear(),0,4);return 1+Math.round(((ti.getTime()-ei.getTime())/864e5-3+(ei.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:" ",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:" ",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1};var Il={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(ii){var ti=ii%100;if(ti>3&&ti<21)return"th";switch(ti%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},Rl=Il;var Zr=function(ii,ti){return ti===void 0&&(ti=2),("000"+ii).slice(ti*-1)},cs=function(ii){return ii===!0?1:0};function tu(ii,ti){var ei;return function(){var ni=this,ri=arguments;clearTimeout(ei),ei=setTimeout(function(){return ii.apply(ni,ri)},ti)}}var Pl=function(ii){return ii instanceof Array?ii:[ii]};function es(ii,ti,ei){if(ei===!0)return ii.classList.add(ti);ii.classList.remove(ti)}function An(ii,ti,ei){var ni=window.document.createElement(ii);return ti=ti||"",ei=ei||"",ni.className=ti,ei!==void 0&&(ni.textContent=ei),ni}function Pa(ii){for(;ii.firstChild;)ii.removeChild(ii.firstChild)}function iu(ii,ti){if(ti(ii))return ii;if(ii.parentNode)return iu(ii.parentNode,ti)}function Ha(ii,ti){var ei=An("div","numInputWrapper"),ni=An("input","numInput "+ii),ri=An("span","arrowUp"),si=An("span","arrowDown");if(navigator.userAgent.indexOf("MSIE 9.0")===-1?ni.type="number":(ni.type="text",ni.pattern="\\d*"),ti!==void 0)for(var ai in ti)ni.setAttribute(ai,ti[ai]);return ei.appendChild(ni),ei.appendChild(ri),ei.appendChild(si),ei}function us(ii){try{if(typeof ii.composedPath=="function"){var ti=ii.composedPath();return ti[0]}return ii.target}catch(ei){return ii.target}}var nu=function(){},Fa=function(ii,ti,ei){return ei.months[ti?"shorthand":"longhand"][ii]},Pf={D:nu,F:function(ii,ti,ei){ii.setMonth(ei.months.longhand.indexOf(ti))},G:function(ii,ti){ii.setHours((ii.getHours()>=12?12:0)+parseFloat(ti))},H:function(ii,ti){ii.setHours(parseFloat(ti))},J:function(ii,ti){ii.setDate(parseFloat(ti))},K:function(ii,ti,ei){ii.setHours(ii.getHours()%12+12*cs(new RegExp(ei.amPM[1],"i").test(ti)))},M:function(ii,ti,ei){ii.setMonth(ei.months.shorthand.indexOf(ti))},S:function(ii,ti){ii.setSeconds(parseFloat(ti))},U:function(ii,ti){return new Date(parseFloat(ti)*1e3)},W:function(ii,ti,ei){var ni=parseInt(ti),ri=new Date(ii.getFullYear(),0,2+(ni-1)*7,0,0,0,0);return ri.setDate(ri.getDate()-ri.getDay()+ei.firstDayOfWeek),ri},Y:function(ii,ti){ii.setFullYear(parseFloat(ti))},Z:function(ii,ti){return new Date(ti)},d:function(ii,ti){ii.setDate(parseFloat(ti))},h:function(ii,ti){ii.setHours((ii.getHours()>=12?12:0)+parseFloat(ti))},i:function(ii,ti){ii.setMinutes(parseFloat(ti))},j:function(ii,ti){ii.setDate(parseFloat(ti))},l:nu,m:function(ii,ti){ii.setMonth(parseFloat(ti)-1)},n:function(ii,ti){ii.setMonth(parseFloat(ti)-1)},s:function(ii,ti){ii.setSeconds(parseFloat(ti))},u:function(ii,ti){return new Date(parseFloat(ti))},w:nu,y:function(ii,ti){ii.setFullYear(2e3+parseFloat(ti))}},Vs={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},oa={Z:function(ii){return ii.toISOString()},D:function(ii,ti,ei){return ti.weekdays.shorthand[oa.w(ii,ti,ei)]},F:function(ii,ti,ei){return Fa(oa.n(ii,ti,ei)-1,!1,ti)},G:function(ii,ti,ei){return Zr(oa.h(ii,ti,ei))},H:function(ii){return Zr(ii.getHours())},J:function(ii,ti){return ti.ordinal!==void 0?ii.getDate()+ti.ordinal(ii.getDate()):ii.getDate()},K:function(ii,ti){return ti.amPM[cs(ii.getHours()>11)]},M:function(ii,ti){return Fa(ii.getMonth(),!0,ti)},S:function(ii){return Zr(ii.getSeconds())},U:function(ii){return ii.getTime()/1e3},W:function(ii,ti,ei){return ei.getWeek(ii)},Y:function(ii){return Zr(ii.getFullYear(),4)},d:function(ii){return Zr(ii.getDate())},h:function(ii){return ii.getHours()%12?ii.getHours()%12:12},i:function(ii){return Zr(ii.getMinutes())},j:function(ii){return ii.getDate()},l:function(ii,ti){return ti.weekdays.longhand[ii.getDay()]},m:function(ii){return Zr(ii.getMonth()+1)},n:function(ii){return ii.getMonth()+1},s:function(ii){return ii.getSeconds()},u:function(ii){return ii.getTime()},w:function(ii){return ii.getDay()},y:function(ii){return String(ii.getFullYear()).substring(2)}};var ru=function(ii){var ti=ii.config,ei=ti===void 0?uo:ti,ni=ii.l10n,ri=ni===void 0?Il:ni,si=ii.isMobile,ai=si===void 0?!1:si;return function(li,di,mi){var hi=mi||ri;return ei.formatDate!==void 0&&!ai?ei.formatDate(li,di,hi):di.split("").map(function(_i,Ei,Ai){return oa[_i]&&Ai[Ei-1]!=="\\"?oa[_i](li,hi,ei):_i!=="\\"?_i:""}).join("")}},Hl=function(ii){var ti=ii.config,ei=ti===void 0?uo:ti,ni=ii.l10n,ri=ni===void 0?Il:ni;return function(si,ai,li,di){if(!(si!==0&&!si)){var mi=di||ri,hi,_i=si;if(si instanceof Date)hi=new Date(si.getTime());else if(typeof si!="string"&&si.toFixed!==void 0)hi=new Date(si);else if(typeof si=="string"){var Ei=ai||(ei||uo).dateFormat,Ai=String(si).trim();if(Ai==="today")hi=new Date,li=!0;else if(ei&&ei.parseDate)hi=ei.parseDate(si,Ei);else if(/Z$/.test(Ai)||/GMT$/.test(Ai))hi=new Date(si);else{for(var ki=void 0,Ti=[],Fi=0,en=0,rn="";FiMath.min(ti,ei)&&ii=0?new Date:new Date(ei.config.minDate.getTime()),wi=$l(ei.config);vi.setHours(wi.hours,wi.minutes,wi.seconds,vi.getMilliseconds()),ei.selectedDates=[vi],ei.latestSelectedDateObj=vi}pi!==void 0&&pi.type!=="blur"&&On(pi);var Si=ei._input.value;_i(),Cs(),ei._input.value!==Si&&ei._debouncedChange()}function mi(pi,vi){return pi%12+12*cs(vi===ei.l10n.amPM[1])}function hi(pi){switch(pi%24){case 0:case 12:return 12;default:return pi%12}}function _i(){if(!(ei.hourElement===void 0||ei.minuteElement===void 0)){var pi=(parseInt(ei.hourElement.value.slice(-2),10)||0)%24,vi=(parseInt(ei.minuteElement.value,10)||0)%60,wi=ei.secondElement!==void 0?(parseInt(ei.secondElement.value,10)||0)%60:0;ei.amPM!==void 0&&(pi=mi(pi,ei.amPM.textContent));var Si=ei.config.minTime!==void 0||ei.config.minDate&&ei.minDateHasTime&&ei.latestSelectedDateObj&&ds(ei.latestSelectedDateObj,ei.config.minDate,!0)===0,Ri=ei.config.maxTime!==void 0||ei.config.maxDate&&ei.maxDateHasTime&&ei.latestSelectedDateObj&&ds(ei.latestSelectedDateObj,ei.config.maxDate,!0)===0;if(ei.config.maxTime!==void 0&&ei.config.minTime!==void 0&&ei.config.minTime>ei.config.maxTime){var qi=Fl(ei.config.minTime.getHours(),ei.config.minTime.getMinutes(),ei.config.minTime.getSeconds()),nn=Fl(ei.config.maxTime.getHours(),ei.config.maxTime.getMinutes(),ei.config.maxTime.getSeconds()),Xi=Fl(pi,vi,wi);if(Xi>nn&&Xi=12)]),ei.secondElement!==void 0&&(ei.secondElement.value=Zr(wi)))}function ki(pi){var vi=us(pi),wi=parseInt(vi.value)+(pi.delta||0);(wi/1e3>1||pi.key==="Enter"&&!/[^\d]/.test(wi.toString()))&&Yn(wi)}function Ti(pi,vi,wi,Si){if(vi instanceof Array)return vi.forEach(function(Ri){return Ti(pi,Ri,wi,Si)});if(pi instanceof Array)return pi.forEach(function(Ri){return Ti(Ri,vi,wi,Si)});pi.addEventListener(vi,wi,Si),ei._handlers.push({remove:function(){return pi.removeEventListener(vi,wi,Si)}})}function Fi(){wn("onChange")}function en(){if(ei.config.wrap&&["open","close","toggle","clear"].forEach(function(wi){Array.prototype.forEach.call(ei.element.querySelectorAll("[data-"+wi+"]"),function(Si){return Ti(Si,"click",ei[wi])})}),ei.isMobile){Ho();return}var pi=tu(zn,50);if(ei._debouncedChange=tu(Fi,Hy),ei.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&Ti(ei.daysContainer,"mouseover",function(wi){ei.config.mode==="range"&&Ts(us(wi))}),Ti(ei._input,"keydown",Qn),ei.calendarContainer!==void 0&&Ti(ei.calendarContainer,"keydown",Qn),!ei.config.inline&&!ei.config.static&&Ti(window,"resize",pi),window.ontouchstart!==void 0?Ti(window.document,"touchstart",Sn):Ti(window.document,"mousedown",Sn),Ti(window.document,"focus",Sn,{capture:!0}),ei.config.clickOpens===!0&&(Ti(ei._input,"focus",ei.open),Ti(ei._input,"click",ei.open)),ei.daysContainer!==void 0&&(Ti(ei.monthNav,"click",Dn),Ti(ei.monthNav,["keyup","increment"],ki),Ti(ei.daysContainer,"click",Ms)),ei.timeContainer!==void 0&&ei.minuteElement!==void 0&&ei.hourElement!==void 0){var vi=function(wi){return us(wi).select()};Ti(ei.timeContainer,["increment"],di),Ti(ei.timeContainer,"blur",di,{capture:!0}),Ti(ei.timeContainer,"click",ln),Ti([ei.hourElement,ei.minuteElement],["focus","click"],vi),ei.secondElement!==void 0&&Ti(ei.secondElement,"focus",function(){return ei.secondElement&&ei.secondElement.select()}),ei.amPM!==void 0&&Ti(ei.amPM,"click",function(wi){di(wi)})}ei.config.allowInput&&Ti(ei._input,"blur",Gn)}function rn(pi,vi){var wi=pi!==void 0?ei.parseDate(pi):ei.latestSelectedDateObj||(ei.config.minDate&&ei.config.minDate>ei.now?ei.config.minDate:ei.config.maxDate&&ei.config.maxDate1),ei.calendarContainer.appendChild(pi);var Ri=ei.config.appendTo!==void 0&&ei.config.appendTo.nodeType!==void 0;if((ei.config.inline||ei.config.static)&&(ei.calendarContainer.classList.add(ei.config.inline?"inline":"static"),ei.config.inline&&(!Ri&&ei.element.parentNode?ei.element.parentNode.insertBefore(ei.calendarContainer,ei._input.nextSibling):ei.config.appendTo!==void 0&&ei.config.appendTo.appendChild(ei.calendarContainer)),ei.config.static)){var qi=An("div","flatpickr-wrapper");ei.element.parentNode&&ei.element.parentNode.insertBefore(qi,ei.element),qi.appendChild(ei.element),ei.altInput&&qi.appendChild(ei.altInput),qi.appendChild(ei.calendarContainer)}!ei.config.static&&!ei.config.inline&&(ei.config.appendTo!==void 0?ei.config.appendTo:window.document.body).appendChild(ei.calendarContainer)}function an(pi,vi,wi,Si){var Ri=Fn(vi,!0),qi=An("span",pi,vi.getDate().toString());return qi.dateObj=vi,qi.$i=Si,qi.setAttribute("aria-label",ei.formatDate(vi,ei.config.ariaDateFormat)),pi.indexOf("hidden")===-1&&ds(vi,ei.now)===0&&(ei.todayDateElem=qi,qi.classList.add("today"),qi.setAttribute("aria-current","date")),Ri?(qi.tabIndex=-1,Ks(vi)&&(qi.classList.add("selected"),ei.selectedDateElem=qi,ei.config.mode==="range"&&(es(qi,"startRange",ei.selectedDates[0]&&ds(vi,ei.selectedDates[0],!0)===0),es(qi,"endRange",ei.selectedDates[1]&&ds(vi,ei.selectedDates[1],!0)===0),pi==="nextMonthDay"&&qi.classList.add("inRange")))):qi.classList.add("flatpickr-disabled"),ei.config.mode==="range"&&Yl(vi)&&!Ks(vi)&&qi.classList.add("inRange"),ei.weekNumbers&&ei.config.showMonths===1&&pi!=="prevMonthDay"&&Si%7===6&&ei.weekNumbers.insertAdjacentHTML("beforeend",""+ei.config.getWeek(vi)+" "),wn("onDayCreate",qi),qi}function bn(pi){pi.focus(),ei.config.mode==="range"&&Ts(pi)}function hn(pi){for(var vi=pi>0?0:ei.config.showMonths-1,wi=pi>0?ei.config.showMonths:-1,Si=vi;Si!=wi;Si+=pi)for(var Ri=ei.daysContainer.children[Si],qi=pi>0?0:Ri.children.length-1,nn=pi>0?Ri.children.length:-1,Xi=qi;Xi!=nn;Xi+=pi){var _n=Ri.children[Xi];if(_n.className.indexOf("hidden")===-1&&Fn(_n.dateObj))return _n}}function pn(pi,vi){for(var wi=pi.className.indexOf("Month")===-1?pi.dateObj.getMonth():ei.currentMonth,Si=vi>0?ei.config.showMonths:-1,Ri=vi>0?1:-1,qi=wi-ei.currentMonth;qi!=Si;qi+=Ri)for(var nn=ei.daysContainer.children[qi],Xi=wi-ei.currentMonth===qi?pi.$i+vi:vi<0?nn.children.length-1:0,_n=nn.children.length,Ki=Xi;Ki>=0&&Ki<_n&&Ki!=(vi>0?_n:-1);Ki+=Ri){var fn=nn.children[Ki];if(fn.className.indexOf("hidden")===-1&&Fn(fn.dateObj)&&Math.abs(pi.$i-Ki)>=Math.abs(vi))return bn(fn)}ei.changeMonth(Ri),gn(hn(Ri),0)}function gn(pi,vi){var wi=si(),Si=Bn(wi||document.body),Ri=pi!==void 0?pi:Si?wi:ei.selectedDateElem!==void 0&&Bn(ei.selectedDateElem)?ei.selectedDateElem:ei.todayDateElem!==void 0&&Bn(ei.todayDateElem)?ei.todayDateElem:hn(vi>0?1:-1);Ri===void 0?ei._input.focus():Si?pn(Ri,vi):bn(Ri)}function un(pi,vi){for(var wi=(new Date(pi,vi,1).getDay()-ei.l10n.firstDayOfWeek+7)%7,Si=ei.utils.getDaysInMonth((vi-1+12)%12,pi),Ri=ei.utils.getDaysInMonth(vi,pi),qi=window.document.createDocumentFragment(),nn=ei.config.showMonths>1,Xi=nn?"prevMonthDay hidden":"prevMonthDay",_n=nn?"nextMonthDay hidden":"nextMonthDay",Ki=Si+1-wi,fn=0;Ki<=Si;Ki++,fn++)qi.appendChild(an("flatpickr-day "+Xi,new Date(pi,vi-1,Ki),Ki,fn));for(Ki=1;Ki<=Ri;Ki++,fn++)qi.appendChild(an("flatpickr-day",new Date(pi,vi,Ki),Ki,fn));for(var Mn=Ri+1;Mn<=42-wi&&(ei.config.showMonths===1||fn%7!==0);Mn++,fn++)qi.appendChild(an("flatpickr-day "+_n,new Date(pi,vi+1,Mn%Ri),Mn,fn));var gs=An("div","dayContainer");return gs.appendChild(qi),gs}function vn(){if(ei.daysContainer!==void 0){Pa(ei.daysContainer),ei.weekNumbers&&Pa(ei.weekNumbers);for(var pi=document.createDocumentFragment(),vi=0;vi1||ei.config.monthSelectorType!=="dropdown")){var pi=function(Si){return ei.config.minDate!==void 0&&ei.currentYear===ei.config.minDate.getFullYear()&&Siei.config.maxDate.getMonth())};ei.monthsDropdownContainer.tabIndex=-1,ei.monthsDropdownContainer.innerHTML="";for(var vi=0;vi<12;vi++)if(pi(vi)){var wi=An("option","flatpickr-monthDropdown-month");wi.value=new Date(ei.currentYear,vi).getMonth().toString(),wi.textContent=Fa(vi,ei.config.shorthandCurrentMonth,ei.l10n),wi.tabIndex=-1,ei.currentMonth===vi&&(wi.selected=!0),ei.monthsDropdownContainer.appendChild(wi)}}}function Ni(){var pi=An("div","flatpickr-month"),vi=window.document.createDocumentFragment(),wi;ei.config.showMonths>1||ei.config.monthSelectorType==="static"?wi=An("span","cur-month"):(ei.monthsDropdownContainer=An("select","flatpickr-monthDropdown-months"),ei.monthsDropdownContainer.setAttribute("aria-label",ei.l10n.monthAriaLabel),Ti(ei.monthsDropdownContainer,"change",function(nn){var Xi=us(nn),_n=parseInt(Xi.value,10);ei.changeMonth(_n-ei.currentMonth),wn("onMonthChange")}),Tn(),wi=ei.monthsDropdownContainer);var Si=Ha("cur-year",{tabindex:"-1"}),Ri=Si.getElementsByTagName("input")[0];Ri.setAttribute("aria-label",ei.l10n.yearAriaLabel),ei.config.minDate&&Ri.setAttribute("min",ei.config.minDate.getFullYear().toString()),ei.config.maxDate&&(Ri.setAttribute("max",ei.config.maxDate.getFullYear().toString()),Ri.disabled=!!ei.config.minDate&&ei.config.minDate.getFullYear()===ei.config.maxDate.getFullYear());var qi=An("div","flatpickr-current-month");return qi.appendChild(wi),qi.appendChild(Si),vi.appendChild(qi),pi.appendChild(vi),{container:pi,yearElement:Ri,monthElement:wi}}function Hi(){Pa(ei.monthNav),ei.monthNav.appendChild(ei.prevMonthNav),ei.config.showMonths&&(ei.yearElements=[],ei.monthElements=[]);for(var pi=ei.config.showMonths;pi--;){var vi=Ni();ei.yearElements.push(vi.yearElement),ei.monthElements.push(vi.monthElement),ei.monthNav.appendChild(vi.container)}ei.monthNav.appendChild(ei.nextMonthNav)}function Pi(){return ei.monthNav=An("div","flatpickr-months"),ei.yearElements=[],ei.monthElements=[],ei.prevMonthNav=An("span","flatpickr-prev-month"),ei.prevMonthNav.innerHTML=ei.config.prevArrow,ei.nextMonthNav=An("span","flatpickr-next-month"),ei.nextMonthNav.innerHTML=ei.config.nextArrow,Hi(),Object.defineProperty(ei,"_hidePrevMonthArrow",{get:function(){return ei.__hidePrevMonthArrow},set:function(pi){ei.__hidePrevMonthArrow!==pi&&(es(ei.prevMonthNav,"flatpickr-disabled",pi),ei.__hidePrevMonthArrow=pi)}}),Object.defineProperty(ei,"_hideNextMonthArrow",{get:function(){return ei.__hideNextMonthArrow},set:function(pi){ei.__hideNextMonthArrow!==pi&&(es(ei.nextMonthNav,"flatpickr-disabled",pi),ei.__hideNextMonthArrow=pi)}}),ei.currentYearElement=ei.yearElements[0],Fo(),ei.monthNav}function $i(){ei.calendarContainer.classList.add("hasTime"),ei.config.noCalendar&&ei.calendarContainer.classList.add("noCalendar");var pi=$l(ei.config);ei.timeContainer=An("div","flatpickr-time"),ei.timeContainer.tabIndex=-1;var vi=An("span","flatpickr-time-separator",":"),wi=Ha("flatpickr-hour",{"aria-label":ei.l10n.hourAriaLabel});ei.hourElement=wi.getElementsByTagName("input")[0];var Si=Ha("flatpickr-minute",{"aria-label":ei.l10n.minuteAriaLabel});if(ei.minuteElement=Si.getElementsByTagName("input")[0],ei.hourElement.tabIndex=ei.minuteElement.tabIndex=-1,ei.hourElement.value=Zr(ei.latestSelectedDateObj?ei.latestSelectedDateObj.getHours():ei.config.time_24hr?pi.hours:hi(pi.hours)),ei.minuteElement.value=Zr(ei.latestSelectedDateObj?ei.latestSelectedDateObj.getMinutes():pi.minutes),ei.hourElement.setAttribute("step",ei.config.hourIncrement.toString()),ei.minuteElement.setAttribute("step",ei.config.minuteIncrement.toString()),ei.hourElement.setAttribute("min",ei.config.time_24hr?"0":"1"),ei.hourElement.setAttribute("max",ei.config.time_24hr?"23":"12"),ei.hourElement.setAttribute("maxlength","2"),ei.minuteElement.setAttribute("min","0"),ei.minuteElement.setAttribute("max","59"),ei.minuteElement.setAttribute("maxlength","2"),ei.timeContainer.appendChild(wi),ei.timeContainer.appendChild(vi),ei.timeContainer.appendChild(Si),ei.config.time_24hr&&ei.timeContainer.classList.add("time24hr"),ei.config.enableSeconds){ei.timeContainer.classList.add("hasSeconds");var Ri=Ha("flatpickr-second");ei.secondElement=Ri.getElementsByTagName("input")[0],ei.secondElement.value=Zr(ei.latestSelectedDateObj?ei.latestSelectedDateObj.getSeconds():pi.seconds),ei.secondElement.setAttribute("step",ei.minuteElement.getAttribute("step")),ei.secondElement.setAttribute("min","0"),ei.secondElement.setAttribute("max","59"),ei.secondElement.setAttribute("maxlength","2"),ei.timeContainer.appendChild(An("span","flatpickr-time-separator",":")),ei.timeContainer.appendChild(Ri)}return ei.config.time_24hr||(ei.amPM=An("span","flatpickr-am-pm",ei.l10n.amPM[cs((ei.latestSelectedDateObj?ei.hourElement.value:ei.config.defaultHour)>11)]),ei.amPM.title=ei.l10n.toggleTitle,ei.amPM.tabIndex=-1,ei.timeContainer.appendChild(ei.amPM)),ei.timeContainer}function mn(){ei.weekdayContainer?Pa(ei.weekdayContainer):ei.weekdayContainer=An("div","flatpickr-weekdays");for(var pi=ei.config.showMonths;pi--;){var vi=An("div","flatpickr-weekdaycontainer");ei.weekdayContainer.appendChild(vi)}return tn(),ei.weekdayContainer}function tn(){if(ei.weekdayContainer){var pi=ei.l10n.firstDayOfWeek,vi=Bf(ei.l10n.weekdays.shorthand);pi>0&&pi
`+vi.join("")+`
- `}}function zi(){ei.calendarContainer.classList.add("hasWeeks");var pi=An("div","flatpickr-weekwrapper");pi.appendChild(An("span","flatpickr-weekday",ei.l10n.weekAbbreviation));var vi=An("div","flatpickr-weeks");return pi.appendChild(vi),{weekWrapper:pi,weekNumbers:vi}}function Li(pi,vi){vi===void 0&&(vi=!0);var wi=vi?pi:pi-ei.currentMonth;wi<0&&ei._hidePrevMonthArrow===!0||wi>0&&ei._hideNextMonthArrow===!0||(ei.currentMonth+=wi,(ei.currentMonth<0||ei.currentMonth>11)&&(ei.currentYear+=ei.currentMonth>11?1:-1,ei.currentMonth=(ei.currentMonth+12)%12,wn("onYearChange"),Tn()),vn(),wn("onMonthChange"),Fo())}function ji(pi,vi){if(pi===void 0&&(pi=!0),vi===void 0&&(vi=!0),ei.input.value="",ei.altInput!==void 0&&(ei.altInput.value=""),ei.mobileInput!==void 0&&(ei.mobileInput.value=""),ei.selectedDates=[],ei.latestSelectedDateObj=void 0,vi===!0&&(ei.currentYear=ei._initialDate.getFullYear(),ei.currentMonth=ei._initialDate.getMonth()),ei.config.enableTime===!0){var wi=$l(ei.config),Si=wi.hours,Ri=wi.minutes,qi=wi.seconds;Ai(Si,Ri,qi)}ei.redraw(),pi&&wn("onChange")}function Ji(){ei.isOpen=!1,ei.isMobile||(ei.calendarContainer!==void 0&&ei.calendarContainer.classList.remove("open"),ei._input!==void 0&&ei._input.classList.remove("active")),wn("onClose")}function Vi(){ei.config!==void 0&&wn("onDestroy");for(var pi=ei._handlers.length;pi--;)ei._handlers[pi].remove();if(ei._handlers=[],ei.mobileInput)ei.mobileInput.parentNode&&ei.mobileInput.parentNode.removeChild(ei.mobileInput),ei.mobileInput=void 0;else if(ei.calendarContainer&&ei.calendarContainer.parentNode)if(ei.config.static&&ei.calendarContainer.parentNode){var vi=ei.calendarContainer.parentNode;if(vi.lastChild&&vi.removeChild(vi.lastChild),vi.parentNode){for(;vi.firstChild;)vi.parentNode.insertBefore(vi.firstChild,vi);vi.parentNode.removeChild(vi)}}else ei.calendarContainer.parentNode.removeChild(ei.calendarContainer);ei.altInput&&(ei.input.type="text",ei.altInput.parentNode&&ei.altInput.parentNode.removeChild(ei.altInput),delete ei.altInput),ei.input&&(ei.input.type=ei.input._type,ei.input.classList.remove("flatpickr-input"),ei.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(wi){try{delete ei[wi]}catch(Si){}})}function Ii(pi){return ei.calendarContainer.contains(pi)}function Sn(pi){if(ei.isOpen&&!ei.config.inline){var vi=us(pi),wi=Ii(vi),Si=vi===ei.input||vi===ei.altInput||ei.element.contains(vi)||pi.path&&pi.path.indexOf&&(~pi.path.indexOf(ei.input)||~pi.path.indexOf(ei.altInput)),Ri=!Si&&!wi&&!Ii(pi.relatedTarget),qi=!ei.config.ignoredFocusElements.some(function(nn){return nn.contains(vi)});Ri&&qi&&(ei.config.allowInput&&ei.setDate(ei._input.value,!1,ei.config.altInput?ei.config.altFormat:ei.config.dateFormat),ei.timeContainer!==void 0&&ei.minuteElement!==void 0&&ei.hourElement!==void 0&&ei.input.value!==""&&ei.input.value!==void 0&&di(),ei.close(),ei.config&&ei.config.mode==="range"&&ei.selectedDates.length===1&&ei.clear(!1))}}function Yn(pi){if(!(!pi||ei.config.minDate&&piei.config.maxDate.getFullYear())){var vi=pi,wi=ei.currentYear!==vi;ei.currentYear=vi||ei.currentYear,ei.config.maxDate&&ei.currentYear===ei.config.maxDate.getFullYear()?ei.currentMonth=Math.min(ei.config.maxDate.getMonth(),ei.currentMonth):ei.config.minDate&&ei.currentYear===ei.config.minDate.getFullYear()&&(ei.currentMonth=Math.max(ei.config.minDate.getMonth(),ei.currentMonth)),wi&&(ei.redraw(),wn("onYearChange"),Tn())}}function Fn(pi,vi){var wi;vi===void 0&&(vi=!0);var Si=ei.parseDate(pi,void 0,vi);if(ei.config.minDate&&Si&&ds(Si,ei.config.minDate,vi!==void 0?vi:!ei.minDateHasTime)<0||ei.config.maxDate&&Si&&ds(Si,ei.config.maxDate,vi!==void 0?vi:!ei.maxDateHasTime)>0)return!1;if(!ei.config.enable&&ei.config.disable.length===0)return!0;if(Si===void 0)return!1;for(var Ri=!!ei.config.enable,qi=(wi=ei.config.enable)!==null&&wi!==void 0?wi:ei.config.disable,nn=0,Qi=void 0;nn=Qi.from.getTime()&&Si.getTime()<=Qi.to.getTime())return Ri}return!Ri}function Bn(pi){return ei.daysContainer!==void 0?pi.className.indexOf("hidden")===-1&&pi.className.indexOf("flatpickr-disabled")===-1&&ei.daysContainer.contains(pi):!1}function Gn(pi){var vi=pi.target===ei._input,wi=ei._input.value.trimEnd()!==$o();vi&&wi&&!(pi.relatedTarget&&Ii(pi.relatedTarget))&&ei.setDate(ei._input.value,!0,pi.target===ei.altInput?ei.config.altFormat:ei.config.dateFormat)}function Qn(pi){var vi=us(pi),wi=ei.config.wrap?ii.contains(vi):vi===ei._input,Si=ei.config.allowInput,Ri=ei.isOpen&&(!Si||!wi),qi=ei.config.inline&&wi&&!Si;if(pi.keyCode===13&&wi){if(Si)return ei.setDate(ei._input.value,!0,vi===ei.altInput?ei.config.altFormat:ei.config.dateFormat),ei.close(),vi.blur();ei.open()}else if(Ii(vi)||Ri||qi){var nn=!!ei.timeContainer&&ei.timeContainer.contains(vi);switch(pi.keyCode){case 13:nn?(pi.preventDefault(),di(),Us()):Ms(pi);break;case 27:pi.preventDefault(),Us();break;case 8:case 46:wi&&!ei.config.allowInput&&(pi.preventDefault(),ei.clear());break;case 37:case 39:if(!nn&&!wi){pi.preventDefault();var Qi=si();if(ei.daysContainer!==void 0&&(Si===!1||Qi&&Bn(Qi))){var _n=pi.keyCode===39?1:-1;pi.ctrlKey?(pi.stopPropagation(),Li(_n),gn(hn(1),0)):gn(void 0,_n)}}else ei.hourElement&&ei.hourElement.focus();break;case 38:case 40:pi.preventDefault();var Gi=pi.keyCode===40?1:-1;ei.daysContainer&&vi.$i!==void 0||vi===ei.input||vi===ei.altInput?pi.ctrlKey?(pi.stopPropagation(),Yn(ei.currentYear-Gi),gn(hn(1),0)):nn||gn(void 0,Gi*7):vi===ei.currentYearElement?Yn(ei.currentYear-Gi):ei.config.enableTime&&(!nn&&ei.hourElement&&ei.hourElement.focus(),di(pi),ei._debouncedChange());break;case 9:if(nn){var fn=[ei.hourElement,ei.minuteElement,ei.secondElement,ei.amPM].concat(ei.pluginElements).filter(function(is){return is}),Mn=fn.indexOf(vi);if(Mn!==-1){var gs=fn[Mn+(pi.shiftKey?-1:1)];pi.preventDefault(),(gs||ei._input).focus()}}else!ei.config.noCalendar&&ei.daysContainer&&ei.daysContainer.contains(vi)&&pi.shiftKey&&(pi.preventDefault(),ei._input.focus());break;default:break}}if(ei.amPM!==void 0&&vi===ei.amPM)switch(pi.key){case ei.l10n.amPM[0].charAt(0):case ei.l10n.amPM[0].charAt(0).toLowerCase():ei.amPM.textContent=ei.l10n.amPM[0],_i(),Cs();break;case ei.l10n.amPM[1].charAt(0):case ei.l10n.amPM[1].charAt(0).toLowerCase():ei.amPM.textContent=ei.l10n.amPM[1],_i(),Cs();break}(wi||Ii(vi))&&wn("onKeyDown",pi)}function Ts(pi,vi){if(vi===void 0&&(vi="flatpickr-day"),!(ei.selectedDates.length!==1||pi&&(!pi.classList.contains(vi)||pi.classList.contains("flatpickr-disabled")))){for(var wi=pi?pi.dateObj.getTime():ei.days.firstElementChild.dateObj.getTime(),Si=ei.parseDate(ei.selectedDates[0],void 0,!0).getTime(),Ri=Math.min(wi,ei.selectedDates[0].getTime()),qi=Math.max(wi,ei.selectedDates[0].getTime()),nn=!1,Qi=0,_n=0,Gi=Ri;GiRi&&GiQi)?Qi=Gi:Gi>Si&&(!_n||Gi<_n)&&(_n=Gi));var fn=Array.from(ei.rContainer.querySelectorAll("*:nth-child(-n+"+ei.config.showMonths+") > ."+vi));fn.forEach(function(Mn){var gs=Mn.dateObj,is=gs.getTime(),mo=Qi>0&&is0&&is>_n;if(mo){Mn.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(Qs){Mn.classList.remove(Qs)});return}else if(nn&&!mo)return;["startRange","inRange","endRange","notAllowed"].forEach(function(Qs){Mn.classList.remove(Qs)}),pi!==void 0&&(pi.classList.add(wi<=ei.selectedDates[0].getTime()?"startRange":"endRange"),Siwi&&is===Si&&Mn.classList.add("endRange"),is>=Qi&&(_n===0||is<=_n)&&Rf(is,Si,wi)&&Mn.classList.add("inRange"))})}}function zn(){ei.isOpen&&!ei.config.static&&!ei.config.inline&&Kr()}function hs(pi,vi){if(vi===void 0&&(vi=ei._positionElement),ei.isMobile===!0){if(pi){pi.preventDefault();var wi=us(pi);wi&&wi.blur()}ei.mobileInput!==void 0&&(ei.mobileInput.focus(),ei.mobileInput.click()),wn("onOpen");return}else if(ei._input.disabled||ei.config.inline)return;var Si=ei.isOpen;ei.isOpen=!0,Si||(ei.calendarContainer.classList.add("open"),ei._input.classList.add("active"),wn("onOpen"),Kr(vi)),ei.config.enableTime===!0&&ei.config.noCalendar===!0&&ei.config.allowInput===!1&&(pi===void 0||!ei.timeContainer.contains(pi.relatedTarget))&&setTimeout(function(){return ei.hourElement.select()},50)}function ms(pi){return function(vi){var wi=ei.config["_"+pi+"Date"]=ei.parseDate(vi,ei.config.dateFormat),Si=ei.config["_"+(pi==="min"?"max":"min")+"Date"];wi!==void 0&&(ei[pi==="min"?"minDateHasTime":"maxDateHasTime"]=wi.getHours()>0||wi.getMinutes()>0||wi.getSeconds()>0),ei.selectedDates&&(ei.selectedDates=ei.selectedDates.filter(function(Ri){return Fn(Ri)}),!ei.selectedDates.length&&pi==="min"&&Ei(wi),Cs()),ei.daysContainer&&(po(),wi!==void 0?ei.currentYearElement[pi]=wi.getFullYear().toString():ei.currentYearElement.removeAttribute(pi),ei.currentYearElement.disabled=!!Si&&wi!==void 0&&Si.getFullYear()===wi.getFullYear())}}function qs(){var pi=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],vi=ts(ts({},JSON.parse(JSON.stringify(ii.dataset||{}))),ti),wi={};ei.config.parseDate=vi.parseDate,ei.config.formatDate=vi.formatDate,Object.defineProperty(ei.config,"enable",{get:function(){return ei.config._enable},set:function(fn){ei.config._enable=ha(fn)}}),Object.defineProperty(ei.config,"disable",{get:function(){return ei.config._disable},set:function(fn){ei.config._disable=ha(fn)}});var Si=vi.mode==="time";if(!vi.dateFormat&&(vi.enableTime||Si)){var Ri=Zn.defaultConfig.dateFormat||uo.dateFormat;wi.dateFormat=vi.noCalendar||Si?"H:i"+(vi.enableSeconds?":S":""):Ri+" H:i"+(vi.enableSeconds?":S":"")}if(vi.altInput&&(vi.enableTime||Si)&&!vi.altFormat){var qi=Zn.defaultConfig.altFormat||uo.altFormat;wi.altFormat=vi.noCalendar||Si?"h:i"+(vi.enableSeconds?":S K":" K"):qi+(" h:i"+(vi.enableSeconds?":S":"")+" K")}Object.defineProperty(ei.config,"minDate",{get:function(){return ei.config._minDate},set:ms("min")}),Object.defineProperty(ei.config,"maxDate",{get:function(){return ei.config._maxDate},set:ms("max")});var nn=function(fn){return function(Mn){ei.config[fn==="min"?"_minTime":"_maxTime"]=ei.parseDate(Mn,"H:i:S")}};Object.defineProperty(ei.config,"minTime",{get:function(){return ei.config._minTime},set:nn("min")}),Object.defineProperty(ei.config,"maxTime",{get:function(){return ei.config._maxTime},set:nn("max")}),vi.mode==="time"&&(ei.config.noCalendar=!0,ei.config.enableTime=!0),Object.assign(ei.config,wi,vi);for(var Qi=0;Qi-1?ei.config[Gi]=Pl(_n[Gi]).map(ai).concat(ei.config[Gi]):typeof vi[Gi]=="undefined"&&(ei.config[Gi]=_n[Gi])}vi.altInputClass||(ei.config.altInputClass=qn().className+" "+ei.config.altInputClass),wn("onParseConfig")}function qn(){return ei.config.wrap?ii.querySelector("[data-input]"):ii}function yn(){typeof ei.config.locale!="object"&&typeof Zn.l10ns[ei.config.locale]=="undefined"&&ei.config.errorHandler(new Error("flatpickr: invalid locale "+ei.config.locale)),ei.l10n=ts(ts({},Zn.l10ns.default),typeof ei.config.locale=="object"?ei.config.locale:ei.config.locale!=="default"?Zn.l10ns[ei.config.locale]:void 0),Vs.D="("+ei.l10n.weekdays.shorthand.join("|")+")",Vs.l="("+ei.l10n.weekdays.longhand.join("|")+")",Vs.M="("+ei.l10n.months.shorthand.join("|")+")",Vs.F="("+ei.l10n.months.longhand.join("|")+")",Vs.K="("+ei.l10n.amPM[0]+"|"+ei.l10n.amPM[1]+"|"+ei.l10n.amPM[0].toLowerCase()+"|"+ei.l10n.amPM[1].toLowerCase()+")";var pi=ts(ts({},ti),JSON.parse(JSON.stringify(ii.dataset||{})));pi.time_24hr===void 0&&Zn.defaultConfig.time_24hr===void 0&&(ei.config.time_24hr=ei.l10n.time_24hr),ei.formatDate=ru(ei),ei.parseDate=Hl({config:ei.config,l10n:ei.l10n})}function Kr(pi){if(typeof ei.config.position=="function")return void ei.config.position(ei,pi);if(ei.calendarContainer!==void 0){wn("onPreCalendarPosition");var vi=pi||ei._positionElement,wi=Array.prototype.reduce.call(ei.calendarContainer.children,function(fi,oi){return fi+oi.offsetHeight},0),Si=ei.calendarContainer.offsetWidth,Ri=ei.config.position.split(" "),qi=Ri[0],nn=Ri.length>1?Ri[1]:null,Qi=vi.getBoundingClientRect(),_n=window.innerHeight-Qi.bottom,Gi=qi==="above"||qi!=="below"&&_nwi,fn=window.pageYOffset+Qi.top+(Gi?-wi-2:vi.offsetHeight+2);if(es(ei.calendarContainer,"arrowTop",!Gi),es(ei.calendarContainer,"arrowBottom",Gi),!ei.config.inline){var Mn=window.pageXOffset+Qi.left,gs=!1,is=!1;nn==="center"?(Mn-=(Si-Qi.width)/2,gs=!0):nn==="right"&&(Mn-=Si-Qi.width,is=!0),es(ei.calendarContainer,"arrowLeft",!gs&&!is),es(ei.calendarContainer,"arrowCenter",gs),es(ei.calendarContainer,"arrowRight",is);var mo=window.document.body.offsetWidth-(window.pageXOffset+Qi.right),Qs=Mn+Si>window.document.body.offsetWidth,Gl=mo+Si>window.document.body.offsetWidth;if(es(ei.calendarContainer,"rightMost",Qs),!ei.config.static)if(ei.calendarContainer.style.top=fn+"px",!Qs)ei.calendarContainer.style.left=Mn+"px",ei.calendarContainer.style.right="auto";else if(!Gl)ei.calendarContainer.style.left="auto",ei.calendarContainer.style.right=mo+"px";else{var ma=as();if(ma===void 0)return;var Kl=window.document.body.offsetWidth,Ql=Math.max(0,Kl/2-Si/2),Xl=".flatpickr-calendar.centerMost:before",Jl=".flatpickr-calendar.centerMost:after",Zl=ma.cssRules.length,ec="{left:"+Qi.left+"px;right:auto;}";es(ei.calendarContainer,"rightMost",!1),es(ei.calendarContainer,"centerMost",!0),ma.insertRule(Xl+","+Jl+ec,Zl),ei.calendarContainer.style.left=Ql+"px",ei.calendarContainer.style.right="auto"}}}}function as(){for(var pi=null,vi=0;viei.currentMonth+ei.config.showMonths-1)&&ei.config.mode!=="range";if(ei.selectedDateElem=Si,ei.config.mode==="single")ei.selectedDates=[Ri];else if(ei.config.mode==="multiple"){var nn=Ks(Ri);nn?ei.selectedDates.splice(parseInt(nn),1):ei.selectedDates.push(Ri)}else ei.config.mode==="range"&&(ei.selectedDates.length===2&&ei.clear(!1,!1),ei.latestSelectedDateObj=Ri,ei.selectedDates.push(Ri),ds(Ri,ei.selectedDates[0],!0)!==0&&ei.selectedDates.sort(function(fn,Mn){return fn.getTime()-Mn.getTime()}));if(_i(),qi){var Qi=ei.currentYear!==Ri.getFullYear();ei.currentYear=Ri.getFullYear(),ei.currentMonth=Ri.getMonth(),Qi&&(wn("onYearChange"),Tn()),wn("onMonthChange")}if(Fo(),vn(),Cs(),!qi&&ei.config.mode!=="range"&&ei.config.showMonths===1?bn(Si):ei.selectedDateElem!==void 0&&ei.hourElement===void 0&&ei.selectedDateElem&&ei.selectedDateElem.focus(),ei.hourElement!==void 0&&ei.hourElement!==void 0&&ei.hourElement.focus(),ei.config.closeOnSelect){var _n=ei.config.mode==="single"&&!ei.config.enableTime,Gi=ei.config.mode==="range"&&ei.selectedDates.length===2&&!ei.config.enableTime;(_n||Gi)&&Us()}Fi()}}var Ss={locale:[yn,tn],showMonths:[Hi,li,mn],minDate:[rn],maxDate:[rn],positionElement:[Ul],clickOpens:[function(){ei.config.clickOpens===!0?(Ti(ei._input,"focus",ei.open),Ti(ei._input,"click",ei.open)):(ei._input.removeEventListener("focus",ei.open),ei._input.removeEventListener("click",ei.open))}]};function Ro(pi,vi){if(pi!==null&&typeof pi=="object"){Object.assign(ei.config,pi);for(var wi in pi)Ss[wi]!==void 0&&Ss[wi].forEach(function(Si){return Si()})}else ei.config[pi]=vi,Ss[pi]!==void 0?Ss[pi].forEach(function(Si){return Si()}):Nl.indexOf(pi)>-1&&(ei.config[pi]=Pl(vi));ei.redraw(),Cs(!0)}function Ys(pi,vi){var wi=[];if(pi instanceof Array)wi=pi.map(function(Si){return ei.parseDate(Si,vi)});else if(pi instanceof Date||typeof pi=="number")wi=[ei.parseDate(pi,vi)];else if(typeof pi=="string")switch(ei.config.mode){case"single":case"time":wi=[ei.parseDate(pi,vi)];break;case"multiple":wi=pi.split(ei.config.conjunction).map(function(Si){return ei.parseDate(Si,vi)});break;case"range":wi=pi.split(ei.l10n.rangeSeparator).map(function(Si){return ei.parseDate(Si,vi)});break;default:break}else ei.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(pi)));ei.selectedDates=ei.config.allowInvalidPreload?wi:wi.filter(function(Si){return Si instanceof Date&&Fn(Si,!1)}),ei.config.mode==="range"&&ei.selectedDates.sort(function(Si,Ri){return Si.getTime()-Ri.getTime()})}function Po(pi,vi,wi){if(vi===void 0&&(vi=!1),wi===void 0&&(wi=ei.config.dateFormat),pi!==0&&!pi||pi instanceof Array&&pi.length===0)return ei.clear(vi);Ys(pi,wi),ei.latestSelectedDateObj=ei.selectedDates[ei.selectedDates.length-1],ei.redraw(),rn(void 0,vi),Ei(),ei.selectedDates.length===0&&ei.clear(!1),Cs(vi),vi&&wn("onChange")}function ha(pi){return pi.slice().map(function(vi){return typeof vi=="string"||typeof vi=="number"||vi instanceof Date?ei.parseDate(vi,void 0,!0):vi&&typeof vi=="object"&&vi.from&&vi.to?{from:ei.parseDate(vi.from,void 0),to:ei.parseDate(vi.to,void 0)}:vi}).filter(function(vi){return vi})}function Wl(){ei.selectedDates=[],ei.now=ei.parseDate(ei.config.now)||new Date;var pi=ei.config.defaultDate||((ei.input.nodeName==="INPUT"||ei.input.nodeName==="TEXTAREA")&&ei.input.placeholder&&ei.input.value===ei.input.placeholder?null:ei.input.value);pi&&Ys(pi,ei.config.dateFormat),ei._initialDate=ei.selectedDates.length>0?ei.selectedDates[0]:ei.config.minDate&&ei.config.minDate.getTime()>ei.now.getTime()?ei.config.minDate:ei.config.maxDate&&ei.config.maxDate.getTime()0&&(ei.latestSelectedDateObj=ei.selectedDates[0]),ei.config.minTime!==void 0&&(ei.config.minTime=ei.parseDate(ei.config.minTime,"H:i")),ei.config.maxTime!==void 0&&(ei.config.maxTime=ei.parseDate(ei.config.maxTime,"H:i")),ei.minDateHasTime=!!ei.config.minDate&&(ei.config.minDate.getHours()>0||ei.config.minDate.getMinutes()>0||ei.config.minDate.getSeconds()>0),ei.maxDateHasTime=!!ei.config.maxDate&&(ei.config.maxDate.getHours()>0||ei.config.maxDate.getMinutes()>0||ei.config.maxDate.getSeconds()>0)}function pa(){if(ei.input=qn(),!ei.input){ei.config.errorHandler(new Error("Invalid input element specified"));return}ei.input._type=ei.input.type,ei.input.type="text",ei.input.classList.add("flatpickr-input"),ei._input=ei.input,ei.config.altInput&&(ei.altInput=An(ei.input.nodeName,ei.config.altInputClass),ei._input=ei.altInput,ei.altInput.placeholder=ei.input.placeholder,ei.altInput.disabled=ei.input.disabled,ei.altInput.required=ei.input.required,ei.altInput.tabIndex=ei.input.tabIndex,ei.altInput.type="text",ei.input.setAttribute("type","hidden"),!ei.config.static&&ei.input.parentNode&&ei.input.parentNode.insertBefore(ei.altInput,ei.input.nextSibling)),ei.config.allowInput||ei._input.setAttribute("readonly","readonly"),Ul()}function Ul(){ei._positionElement=ei.config.positionElement||ei._input}function Ho(){var pi=ei.config.enableTime?ei.config.noCalendar?"time":"datetime-local":"date";ei.mobileInput=An("input",ei.input.className+" flatpickr-mobile"),ei.mobileInput.tabIndex=1,ei.mobileInput.type=pi,ei.mobileInput.disabled=ei.input.disabled,ei.mobileInput.required=ei.input.required,ei.mobileInput.placeholder=ei.input.placeholder,ei.mobileFormatStr=pi==="datetime-local"?"Y-m-d\\TH:i:S":pi==="date"?"Y-m-d":"H:i:S",ei.selectedDates.length>0&&(ei.mobileInput.defaultValue=ei.mobileInput.value=ei.formatDate(ei.selectedDates[0],ei.mobileFormatStr)),ei.config.minDate&&(ei.mobileInput.min=ei.formatDate(ei.config.minDate,"Y-m-d")),ei.config.maxDate&&(ei.mobileInput.max=ei.formatDate(ei.config.maxDate,"Y-m-d")),ei.input.getAttribute("step")&&(ei.mobileInput.step=String(ei.input.getAttribute("step"))),ei.input.type="hidden",ei.altInput!==void 0&&(ei.altInput.type="hidden");try{ei.input.parentNode&&ei.input.parentNode.insertBefore(ei.mobileInput,ei.input.nextSibling)}catch(vi){}Ti(ei.mobileInput,"change",function(vi){ei.setDate(us(vi).value,!1,ei.mobileFormatStr),wn("onChange"),wn("onClose")})}function ja(pi){if(ei.isOpen===!0)return ei.close();ei.open(pi)}function wn(pi,vi){if(ei.config!==void 0){var wi=ei.config[pi];if(wi!==void 0&&wi.length>0)for(var Si=0;wi[Si]&&Si=0&&ds(pi,ei.selectedDates[1])<=0}function Fo(){ei.config.noCalendar||ei.isMobile||!ei.monthNav||(ei.yearElements.forEach(function(pi,vi){var wi=new Date(ei.currentYear,ei.currentMonth,1);wi.setMonth(ei.currentMonth+vi),ei.config.showMonths>1||ei.config.monthSelectorType==="static"?ei.monthElements[vi].textContent=Fa(wi.getMonth(),ei.config.shorthandCurrentMonth,ei.l10n)+" ":ei.monthsDropdownContainer.value=wi.getMonth().toString(),pi.value=wi.getFullYear().toString()}),ei._hidePrevMonthArrow=ei.config.minDate!==void 0&&(ei.currentYear===ei.config.minDate.getFullYear()?ei.currentMonth<=ei.config.minDate.getMonth():ei.currentYearei.config.maxDate.getMonth():ei.currentYear>ei.config.maxDate.getFullYear()))}function $o(pi){var vi=pi||(ei.config.altInput?ei.config.altFormat:ei.config.dateFormat);return ei.selectedDates.map(function(wi){return ei.formatDate(wi,vi)}).filter(function(wi,Si,Ri){return ei.config.mode!=="range"||ei.config.enableTime||Ri.indexOf(wi)===Si}).join(ei.config.mode!=="range"?ei.config.conjunction:ei.l10n.rangeSeparator)}function Cs(pi){pi===void 0&&(pi=!0),ei.mobileInput!==void 0&&ei.mobileFormatStr&&(ei.mobileInput.value=ei.latestSelectedDateObj!==void 0?ei.formatDate(ei.latestSelectedDateObj,ei.mobileFormatStr):""),ei.input.value=$o(ei.config.dateFormat),ei.altInput!==void 0&&(ei.altInput.value=$o(ei.config.altFormat)),pi!==!1&&wn("onValueUpdate")}function Dn(pi){var vi=us(pi),wi=ei.prevMonthNav.contains(vi),Si=ei.nextMonthNav.contains(vi);wi||Si?Li(wi?-1:1):ei.yearElements.indexOf(vi)>=0?vi.select():vi.classList.contains("arrowUp")?ei.changeYear(ei.currentYear+1):vi.classList.contains("arrowDown")&&ei.changeYear(ei.currentYear-1)}function On(pi){pi.preventDefault();var vi=pi.type==="keydown",wi=us(pi),Si=wi;ei.amPM!==void 0&&wi===ei.amPM&&(ei.amPM.textContent=ei.l10n.amPM[cs(ei.amPM.textContent===ei.l10n.amPM[0])]);var Ri=parseFloat(Si.getAttribute("min")),qi=parseFloat(Si.getAttribute("max")),nn=parseFloat(Si.getAttribute("step")),Qi=parseInt(Si.value,10),_n=pi.delta||(vi?pi.which===38?1:-1:0),Gi=Qi+nn*_n;if(typeof Si.value!="undefined"&&Si.value.length===2){var fn=Si===ei.hourElement,Mn=Si===ei.minuteElement;Giqi&&(Gi=Si===ei.hourElement?Gi-qi-cs(!ei.amPM):Ri,Mn&&Yi(void 0,1,ei.hourElement)),ei.amPM&&fn&&(nn===1?Gi+Qi===23:Math.abs(Gi-Qi)>nn)&&(ei.amPM.textContent=ei.l10n.amPM[cs(ei.amPM.textContent===ei.l10n.amPM[0])]),Si.value=Zr(Gi)}}return ri(),ei}function aa(ii,ti){for(var ei=Array.prototype.slice.call(ii).filter(function(ai){return ai instanceof HTMLElement}),ni=[],ri=0;ri option"))if(ti.selected){for(let ei of Xi("#id_columns"))ei.appendChild(ti.cloneNode(!0));ti.remove()}ii.preventDefault()}function $y(ii){for(let ti of Xi("#id_columns > option"))if(ti.selected){for(let ei of Xi("#id_available_columns"))ei.appendChild(ti.cloneNode(!0));ti.remove()}ii.preventDefault()}function Bf(ii,ti){return ks(this,null,function*(){return yield ra(ii,ti)})}function By(ii){var di,mi,hi;ii.preventDefault();let ti=ii.currentTarget,ei=ti.getAttribute("data-url");if(ei==null){ao("danger","Error Updating Table Configuration","No API path defined for configuration form.").show();return}let ni=((di=document.activeElement)==null?void 0:di.getAttribute("value"))==="Reset",ri=(hi=(mi=ti.getAttribute("data-config-root"))==null?void 0:mi.split("."))!=null?hi:[];if(ni){let _i=ri.reduceRight((Ei,Ai)=>({[Ai]:Ei}),{});Bf(ei,_i).then(Ei=>{Mo(Ei)?ao("danger","Error Resetting Table Configuration",Ei.error).show():location.reload()});return}let si=Pd(ti,"select[name=columns]"),ai=Object.assign({},...si.map(_i=>({[_i.name]:_i.options}))),li=ri.reduceRight((_i,Ei)=>({[Ei]:_i}),ai);Bf(ei,li).then(_i=>{Mo(_i)?ao("danger","Error Updating Table Configuration",_i.error).show():location.reload()})}function zf(){for(let ii of Xi("#save_tableconfig"))ii.addEventListener("click",Hy);for(let ii of Xi("#add_columns"))ii.addEventListener("click",Fy);for(let ii of Xi("#remove_columns"))ii.addEventListener("click",$y);for(let ii of Xi("form.userconfigform"))ii.addEventListener("submit",By)}function jf(ii){return typeof ii=="string"&&["show","hide"].includes(ii)}var No=class extends Error{constructor(ei,ni){super(ei);Rn(this,"table");this.table=ni}},la=class{constructor(ti,ei){Rn(this,"button");Rn(this,"rows");this.button=ti,this.rows=ei}hideRows(){for(let ti of this.rows)ti.classList.add("d-none")}set buttonState(ti){jf(ti)&&this.button.setAttribute("data-state",ti)}get buttonState(){let ti=this.button.getAttribute("data-state");return jf(ti)?ti:null}toggleButton(){this.buttonState==="show"?this.button.innerText=sa(this.button.innerText,"Show","Hide"):this.buttonState==="hide"&&(this.button.innerText=sa(this.button.innerHTML,"Hide","Show"))}toggleState(){this.buttonState==="show"?this.buttonState="hide":this.buttonState==="hide"&&(this.buttonState="show")}toggle(){this.toggleState(),this.toggleButton()}handleClick(ti){ti.currentTarget.isEqualNode(this.button)&&this.toggle(),this.buttonState==="hide"&&this.hideRows()}},su=class{constructor(ti){Rn(this,"table");Rn(this,"enabledButton");Rn(this,"disabledButton");Rn(this,"virtualButton");Rn(this,"disconnectedButton");Rn(this,"rows");this.table=ti,this.rows=this.table.querySelectorAll("tr");try{let ei=ko(this.table,"button.toggle-enabled"),ni=ko(this.table,"button.toggle-disabled"),ri=ko(this.table,"button.toggle-virtual"),si=ko(this.table,"button.toggle-disconnected");if(ei===null)throw new No("Table is missing a 'toggle-enabled' button.",ti);if(ni===null)throw new No("Table is missing a 'toggle-disabled' button.",ti);if(ri===null)throw new No("Table is missing a 'toggle-virtual' button.",ti);if(si===null)throw new No("Table is missing a 'toggle-disconnected' button.",ti);ei.addEventListener("click",ai=>this.handleClick(ai,this)),ni.addEventListener("click",ai=>this.handleClick(ai,this)),ri.addEventListener("click",ai=>this.handleClick(ai,this)),si.addEventListener("click",ai=>this.handleClick(ai,this)),this.enabledButton=new la(ei,ti.querySelectorAll('tr[data-enabled="enabled"]')),this.disabledButton=new la(ni,ti.querySelectorAll('tr[data-enabled="disabled"]')),this.virtualButton=new la(ri,ti.querySelectorAll('tr[data-type="virtual"]')),this.disconnectedButton=new la(si,ti.querySelectorAll('tr[data-connected="disconnected"]'))}catch(ei){if(ei instanceof No){console.debug("Table does not contain enable/disable toggle buttons");return}else throw ei}}handleClick(ti,ei){for(let ni of this.rows)ni.classList.remove("d-none");ei.enabledButton.handleClick(ti),ei.disabledButton.handleClick(ti),ei.virtualButton.handleClick(ti),ei.disconnectedButton.handleClick(ti)}};function Vf(){for(let ii of Xi("table"))new su(ii)}var ou=class{constructor(ti){Rn(this,"base");Rn(this,"state");Rn(this,"activeLink",null);Rn(this,"sections",[]);this.base=ti,this.state=new Ia({pinned:!0},{persist:!0,key:"netbox-sidenav"}),this.init(),this.initSectionLinks(),this.initLinks()}bodyHas(ti){return document.body.hasAttribute(`data-sidenav-${ti}`)}bodyRemove(...ti){for(let ei of ti)document.body.removeAttribute(`data-sidenav-${ei}`)}bodyAdd(...ti){for(let ei of ti)document.body.setAttribute(`data-sidenav-${ei}`,"")}init(){for(let ti of this.base.querySelectorAll(".sidenav-toggle"))ti.addEventListener("click",ei=>this.onToggle(ei));for(let ti of Xi(".sidenav-toggle-mobile"))ti.addEventListener("click",ei=>this.onMobileToggle(ei));window.innerWidth>1200&&(this.state.get("pinned")&&this.pin(),this.state.get("pinned")||this.unpin(),window.addEventListener("resize",()=>this.onResize())),window.innerWidth<1200&&(this.bodyRemove("hide"),this.bodyAdd("hidden"),window.addEventListener("resize",()=>this.onResize())),this.base.addEventListener("mouseenter",()=>this.onEnter()),this.base.addEventListener("mouseleave",()=>this.onLeave())}initLinks(){for(let ti of this.getActiveLinks())this.bodyHas("show")?this.activateLink(ti,"expand"):this.bodyHas("hidden")&&this.activateLink(ti,"collapse")}show(){this.bodyAdd("show"),this.bodyRemove("hidden","hide")}hide(){this.bodyAdd("hidden"),this.bodyRemove("pinned","show");for(let ti of this.base.querySelectorAll(".collapse"))ti.classList.remove("show")}pin(){this.bodyAdd("show","pinned"),this.bodyRemove("hidden"),this.state.set("pinned",!0)}unpin(){this.bodyRemove("pinned","show"),this.bodyAdd("hidden");for(let ti of this.base.querySelectorAll(".collapse"))ti.classList.remove("show");this.state.set("pinned",!1)}handleSectionClick(ti){ti.preventDefault();let ei=ti.target;this.activeLink=ei,this.closeInactiveSections()}closeInactiveSections(){for(let[ti,ei]of this.sections)ti!==this.activeLink&&(ti.classList.add("collapsed"),ti.setAttribute("aria-expanded","false"),ei.hide())}initSectionLinks(){for(let ti of Xi(".navbar-nav .nav-item .nav-link[data-bs-toggle]"))if(ti.parentElement!==null){let ei=ti.parentElement.querySelector(".collapse");if(ei!==null){let ni=new io(ei,{toggle:!1});this.sections.push([ti,ni]),ti.addEventListener("click",ri=>this.handleSectionClick(ri))}}}activateLink(ti,ei){var ri;let ni=ti.closest(".dropdown-menu");if(wl(ni)){let si=ni.parentElement,ai=(ri=ni.parentElement)==null?void 0:ri.querySelector(".nav-link");if(wl(ai)&&wl(si))switch(ei){case"expand":ai.setAttribute("aria-expanded","true"),si.classList.add("active"),ni.classList.add("show"),ti.classList.add("active");break;case"collapse":ai.setAttribute("aria-expanded","false"),si.classList.remove("active"),ni.classList.remove("show"),ti.classList.remove("active");break}}}*getActiveLinks(){for(let ti of this.base.querySelectorAll("ul.navbar-nav .nav-item .dropdown-item")){let ei=ti.querySelector("a");if(ei){let ni=new RegExp(ei.href,"gi");window.location.href.match(ni)&&(yield ti)}}}onEnter(){if(!this.bodyHas("pinned")){this.bodyRemove("hide","hidden"),this.bodyAdd("show");for(let ti of this.getActiveLinks())this.activateLink(ti,"expand")}}onLeave(){if(!this.bodyHas("pinned")){this.bodyRemove("show"),this.bodyAdd("hide");for(let ti of this.getActiveLinks())this.activateLink(ti,"collapse");this.bodyRemove("hide"),this.bodyAdd("hidden")}}onResize(){this.bodyHas("show")&&!this.bodyHas("pinned")&&(this.bodyRemove("show"),this.bodyAdd("hidden"))}onToggle(ti){ti.preventDefault(),this.state.get("pinned")?this.unpin():this.pin()}onMobileToggle(ti){ti.preventDefault(),this.bodyHas("hidden")?this.show():this.hide()}};function qf(){for(let ii of Xi(".navbar"))new ou(ii)}function Wf(ii,ti,ei,ni,ri){let si=(...ai)=>(console.warn("gridstack.js: Function `"+ei+"` is deprecated in "+ri+" and has been replaced with `"+ni+"`. It will be **removed** in a future release"),ti.apply(ii,ai));return si.prototype=ti.prototype,si}var xi=class ii{static getElements(ti,ei=document){if(typeof ti=="string"){let ni="getElementById"in ei?ei:void 0;if(ni&&!isNaN(+ti[0])){let si=ni.getElementById(ti);return si?[si]:[]}let ri=ei.querySelectorAll(ti);return!ri.length&&ti[0]!=="."&&ti[0]!=="#"&&(ri=ei.querySelectorAll("."+ti),ri.length||(ri=ei.querySelectorAll("#"+ti))),Array.from(ri)}return[ti]}static getElement(ti,ei=document){if(typeof ti=="string"){let ni="getElementById"in ei?ei:void 0;if(!ti.length)return null;if(ni&&ti[0]==="#")return ni.getElementById(ti.substring(1));if(ti[0]==="#"||ti[0]==="."||ti[0]==="[")return ei.querySelector(ti);if(ni&&!isNaN(+ti[0]))return ni.getElementById(ti);let ri=ei.querySelector(ti);return ni&&!ri&&(ri=ni.getElementById(ti)),ri||(ri=ei.querySelector("."+ti)),ri}return ti}static shouldSizeToContent(ti,ei=!1){return(ti==null?void 0:ti.grid)&&(ei?ti.sizeToContent===!0||ti.grid.opts.sizeToContent===!0&&ti.sizeToContent===void 0:!!ti.sizeToContent||ti.grid.opts.sizeToContent&&ti.sizeToContent!==!1)}static isIntercepted(ti,ei){return!(ti.y>=ei.y+ei.h||ti.y+ti.h<=ei.y||ti.x+ti.w<=ei.x||ti.x>=ei.x+ei.w)}static isTouching(ti,ei){return ii.isIntercepted(ti,{x:ei.x-.5,y:ei.y-.5,w:ei.w+1,h:ei.h+1})}static areaIntercept(ti,ei){let ni=ti.x>ei.x?ti.x:ei.x,ri=ti.x+ti.wei.y?ti.y:ei.y,ai=ti.y+ti.h{var li,di,mi,hi;let ai=ei*(((li=ri.y)!=null?li:1e4)-((di=si.y)!=null?di:1e4));return ai===0?ei*(((mi=ri.x)!=null?mi:1e4)-((hi=si.x)!=null?hi:1e4)):ai})}static find(ti,ei){return ei?ti.find(ni=>ni.id===ei):void 0}static createStylesheet(ti,ei,ni){let ri=document.createElement("style"),si=ni==null?void 0:ni.nonce;return si&&(ri.nonce=si),ri.setAttribute("type","text/css"),ri.setAttribute("gs-style-id",ti),ri.styleSheet?ri.styleSheet.cssText="":ri.appendChild(document.createTextNode("")),ei?ei.insertBefore(ri,ei.firstChild):(ei=document.getElementsByTagName("head")[0],ei.appendChild(ri)),ri.sheet}static removeStylesheet(ti,ei){let ri=(ei||document).querySelector("STYLE[gs-style-id="+ti+"]");ri&&ri.parentNode&&ri.remove()}static addCSSRule(ti,ei,ni){typeof ti.addRule=="function"?ti.addRule(ei,ni):typeof ti.insertRule=="function"&&ti.insertRule(`${ei}{${ni}}`)}static toBool(ti){return typeof ti=="boolean"?ti:typeof ti=="string"?(ti=ti.toLowerCase(),!(ti===""||ti==="no"||ti==="false"||ti==="0")):!!ti}static toNumber(ti){return ti===null||ti.length===0?void 0:Number(ti)}static parseHeight(ti){let ei,ni="px";if(typeof ti=="string")if(ti==="auto"||ti==="")ei=0;else{let ri=ti.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!ri)throw new Error(`Invalid height val = ${ti}`);ni=ri[2]||"px",ei=parseFloat(ri[1])}else ei=ti;return{h:ei,unit:ni}}static defaults(ti,...ei){return ei.forEach(ni=>{for(let ri in ni){if(!ni.hasOwnProperty(ri))return;ti[ri]===null||ti[ri]===void 0?ti[ri]=ni[ri]:typeof ni[ri]=="object"&&typeof ti[ri]=="object"&&this.defaults(ti[ri],ni[ri])}}),ti}static same(ti,ei){if(typeof ti!="object")return ti==ei;if(typeof ti!=typeof ei||Object.keys(ti).length!==Object.keys(ei).length)return!1;for(let ni in ti)if(ti[ni]!==ei[ni])return!1;return!0}static copyPos(ti,ei,ni=!1){return ei.x!==void 0&&(ti.x=ei.x),ei.y!==void 0&&(ti.y=ei.y),ei.w!==void 0&&(ti.w=ei.w),ei.h!==void 0&&(ti.h=ei.h),ni&&(ei.minW&&(ti.minW=ei.minW),ei.minH&&(ti.minH=ei.minH),ei.maxW&&(ti.maxW=ei.maxW),ei.maxH&&(ti.maxH=ei.maxH)),ti}static samePos(ti,ei){return ti&&ei&&ti.x===ei.x&&ti.y===ei.y&&(ti.w||1)===(ei.w||1)&&(ti.h||1)===(ei.h||1)}static sanitizeMinMax(ti){ti.minW||delete ti.minW,ti.minH||delete ti.minH,ti.maxW||delete ti.maxW,ti.maxH||delete ti.maxH}static removeInternalAndSame(ti,ei){if(!(typeof ti!="object"||typeof ei!="object"))for(let ni in ti){let ri=ti[ni],si=ei[ni];ni[0]==="_"||ri===si?delete ti[ni]:ri&&typeof ri=="object"&&si!==void 0&&(ii.removeInternalAndSame(ri,si),Object.keys(ri).length||delete ti[ni])}}static removeInternalForSave(ti,ei=!0){for(let ni in ti)(ni[0]==="_"||ti[ni]===null||ti[ni]===void 0)&&delete ti[ni];delete ti.grid,ei&&delete ti.el,ti.autoPosition||delete ti.autoPosition,ti.noResize||delete ti.noResize,ti.noMove||delete ti.noMove,ti.locked||delete ti.locked,(ti.w===1||ti.w===ti.minW)&&delete ti.w,(ti.h===1||ti.h===ti.minH)&&delete ti.h}static throttle(ti,ei){let ni=!1;return(...ri)=>{ni||(ni=!0,setTimeout(()=>{ti(...ri),ni=!1},ei))}}static removePositioningStyles(ti){let ei=ti.style;ei.position&&ei.removeProperty("position"),ei.left&&ei.removeProperty("left"),ei.top&&ei.removeProperty("top"),ei.width&&ei.removeProperty("width"),ei.height&&ei.removeProperty("height")}static getScrollElement(ti){if(!ti)return document.scrollingElement||document.documentElement;let ei=getComputedStyle(ti);return/(auto|scroll)/.test(ei.overflow+ei.overflowY)?ti:this.getScrollElement(ti.parentElement)}static updateScrollPosition(ti,ei,ni){let ri=ti.getBoundingClientRect(),si=window.innerHeight||document.documentElement.clientHeight;if(ri.top<0||ri.bottom>si){let ai=ri.bottom-si,li=ri.top,di=this.getScrollElement(ti);if(di!==null){let mi=di.scrollTop;ri.top<0&&ni<0?ti.offsetHeight>si?di.scrollTop+=ni:di.scrollTop+=Math.abs(li)>Math.abs(ni)?ni:li:ni>0&&(ti.offsetHeight>si?di.scrollTop+=ni:di.scrollTop+=ai>ni?ni:ai),ei.top+=di.scrollTop-mi}}}static updateScrollResize(ti,ei,ni){let ri=this.getScrollElement(ei),si=ri.clientHeight,ai=ri===this.getScrollElement()?0:ri.getBoundingClientRect().top,li=ti.clientY-ai,di=lisi-ni;di?ri.scrollBy({behavior:"smooth",top:li-ni}):mi&&ri.scrollBy({behavior:"smooth",top:ni-(si-li)})}static clone(ti){return ti==null||typeof ti!="object"?ti:ti instanceof Array?[...ti]:Ui({},ti)}static cloneDeep(ti){let ei=["parentGrid","el","grid","subGrid","engine"],ni=ii.clone(ti);for(let ri in ni)ni.hasOwnProperty(ri)&&typeof ni[ri]=="object"&&ri.substring(0,2)!=="__"&&!ei.find(si=>si===ri)&&(ni[ri]=ii.cloneDeep(ti[ri]));return ni}static cloneNode(ti){let ei=ti.cloneNode(!0);return ei.removeAttribute("id"),ei}static appendTo(ti,ei){let ni;typeof ei=="string"?ni=ii.getElement(ei):ni=ei,ni&&ni.appendChild(ti)}static addElStyles(ti,ei){if(ei instanceof Object)for(let ni in ei)ei.hasOwnProperty(ni)&&(Array.isArray(ei[ni])?ei[ni].forEach(ri=>{ti.style[ni]=ri}):ti.style[ni]=ei[ni])}static initEvent(ti,ei){let ni={type:ei.type},ri={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:ei.target?ei.target:ti.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(si=>ni[si]=ti[si]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(si=>ni[si]=ti[si]),Ui(Ui({},ni),ri)}static simulateMouseEvent(ti,ei,ni){let ri=document.createEvent("MouseEvents");ri.initMouseEvent(ei,!0,!0,window,1,ti.screenX,ti.screenY,ti.clientX,ti.clientY,ti.ctrlKey,ti.altKey,ti.shiftKey,ti.metaKey,0,ti.target),(ni||ti.target).dispatchEvent(ri)}static getValuesFromTransformedElement(ti){let ei=document.createElement("div");ii.addElStyles(ei,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),ti.appendChild(ei);let ni=ei.getBoundingClientRect();return ti.removeChild(ei),ei.remove(),{xScale:1/ni.width,yScale:1/ni.height,xOffset:ni.left,yOffset:ni.top}}static swap(ti,ei,ni){if(!ti)return;let ri=ti[ei];ti[ei]=ti[ni],ti[ni]=ri}static canBeRotated(ti){var ei;return!(!ti||ti.w===ti.h||ti.locked||ti.noResize||(ei=ti.grid)!=null&&ei.opts.disableResize||ti.minW&&ti.minW===ti.maxW||ti.minH&&ti.minH===ti.maxH)}};var Io=class ii{constructor(ti={}){this.addedNodes=[],this.removedNodes=[],this.column=ti.column||12,this.maxRow=ti.maxRow,this._float=ti.float,this.nodes=ti.nodes||[],this.onChange=ti.onChange}batchUpdate(ti=!0,ei=!0){return!!this.batchMode===ti?this:(this.batchMode=ti,ti?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,ei&&this._packNodes(),this._notify()),this)}_useEntireRowArea(ti,ei){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!ti._moving||ti._skipDown||ei.y<=ti.y)}_fixCollisions(ti,ei=ti,ni,ri={}){if(this.sortNodes(-1),ni=ni||this.collide(ti,ei),!ni)return!1;if(ti._moving&&!ri.nested&&!this.float&&this.swap(ti,ni))return!0;let si=ei;!this._loading&&this._useEntireRowArea(ti,ei)&&(si={x:0,w:this.column,y:ei.y,h:ei.h},ni=this.collide(ti,si,ri.skip));let ai=!1,li={nested:!0,pack:!1};for(;ni=ni||this.collide(ti,si,ri.skip);){let di;if(ni.locked||this._loading||ti._moving&&!ti._skipDown&&ei.y>ti.y&&!this.float&&(!this.collide(ni,Hn(Ui({},ni),{y:ti.y}),ti)||!this.collide(ni,Hn(Ui({},ni),{y:ei.y-ni.h}),ti))?(ti._skipDown=ti._skipDown||ei.y>ti.y,di=this.moveNode(ti,Ui(Hn(Ui({},ei),{y:ni.y+ni.h}),li)),(ni.locked||this._loading)&&di?xi.copyPos(ei,ti):!ni.locked&&di&&ri.pack&&(this._packNodes(),ei.y=ni.y+ni.h,xi.copyPos(ti,ei)),ai=ai||di):di=this.moveNode(ni,Ui(Hn(Ui({},ni),{y:ei.y+ei.h,skip:ti}),li)),!di)return ai;ni=void 0}return ai}collide(ti,ei=ti,ni){let ri=ti._id,si=ni==null?void 0:ni._id;return this.nodes.find(ai=>ai._id!==ri&&ai._id!==si&&xi.isIntercepted(ai,ei))}collideAll(ti,ei=ti,ni){let ri=ti._id,si=ni==null?void 0:ni._id;return this.nodes.filter(ai=>ai._id!==ri&&ai._id!==si&&xi.isIntercepted(ai,ei))}directionCollideCoverage(ti,ei,ni){if(!ei.rect||!ti._rect)return;let ri=ti._rect,si=Ui({},ei.rect);si.y>ri.y?(si.h+=si.y-ri.y,si.y=ri.y):si.h+=ri.y-si.y,si.x>ri.x?(si.w+=si.x-ri.x,si.x=ri.x):si.w+=ri.x-si.x;let ai,li=.5;for(let di of ni){if(di.locked||!di._rect)break;let mi=di._rect,hi=Number.MAX_VALUE,_i=Number.MAX_VALUE;ri.ymi.y+mi.h&&(hi=(mi.y+mi.h-si.y)/mi.h),ri.xmi.x+mi.w&&(_i=(mi.x+mi.w-si.x)/mi.w);let Ei=Math.min(_i,hi);Ei>li&&(li=Ei,ai=di)}return ei.collide=ai,ai}cacheRects(ti,ei,ni,ri,si,ai){return this.nodes.forEach(li=>li._rect={y:li.y*ei+ni,x:li.x*ti+ai,w:li.w*ti-ai-ri,h:li.h*ei-ni-si}),this}swap(ti,ei){if(!ei||ei.locked||!ti||ti.locked)return!1;function ni(){let si=ei.x,ai=ei.y;return ei.x=ti.x,ei.y=ti.y,ti.h!=ei.h?(ti.x=si,ti.y=ei.y+ei.h):ti.w!=ei.w?(ti.x=ei.x+ei.w,ti.y=ai):(ti.x=si,ti.y=ai),ti._dirty=ei._dirty=!0,!0}let ri;if(ti.w===ei.w&&ti.h===ei.h&&(ti.x===ei.x||ti.y===ei.y)&&(ri=xi.isTouching(ti,ei)))return ni();if(ri!==!1){if(ti.w===ei.w&&ti.x===ei.x&&(ri||(ri=xi.isTouching(ti,ei)))){if(ei.y{let mi;ai.locked||(ai.autoPosition=!0,ti==="list"&&li&&(mi=di[li-1])),this.addNode(ai,!1,mi)}),ri||delete this._inColumnResize,ni||this.batchUpdate(!1),this}set float(ti){this._float!==ti&&(this._float=ti||!1,ti||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(ti=1){return this.nodes=xi.sort(this.nodes,ti),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(ti=>{if(ti._updating||ti._orig===void 0||ti.y===ti._orig.y)return;let ei=ti.y;for(;ei>ti._orig.y;)--ei,this.collide(ti,{x:ti.x,y:ei,w:ti.w,h:ti.h})||(ti._dirty=!0,ti.y=ei)}):this.nodes.forEach((ti,ei)=>{if(!ti.locked)for(;ti.y>0;){let ni=ei===0?0:ti.y-1;if(!(ei===0||!this.collide(ti,{x:ti.x,y:ni,w:ti.w,h:ti.h})))break;ti._dirty=ti.y!==ni,ti.y=ni}}),this)}prepareNode(ti,ei){var ri;ti._id=(ri=ti._id)!=null?ri:ii._idSeq++,(ti.x===void 0||ti.y===void 0||ti.x===null||ti.y===null)&&(ti.autoPosition=!0);let ni={x:0,y:0,w:1,h:1};return xi.defaults(ti,ni),ti.autoPosition||delete ti.autoPosition,ti.noResize||delete ti.noResize,ti.noMove||delete ti.noMove,xi.sanitizeMinMax(ti),typeof ti.x=="string"&&(ti.x=Number(ti.x)),typeof ti.y=="string"&&(ti.y=Number(ti.y)),typeof ti.w=="string"&&(ti.w=Number(ti.w)),typeof ti.h=="string"&&(ti.h=Number(ti.h)),isNaN(ti.x)&&(ti.x=ni.x,ti.autoPosition=!0),isNaN(ti.y)&&(ti.y=ni.y,ti.autoPosition=!0),isNaN(ti.w)&&(ti.w=ni.w),isNaN(ti.h)&&(ti.h=ni.h),this.nodeBoundFix(ti,ei),ti}nodeBoundFix(ti,ei){let ni=ti._orig||xi.copyPos({},ti);if(ti.maxW&&(ti.w=Math.min(ti.w,ti.maxW)),ti.maxH&&(ti.h=Math.min(ti.h,ti.maxH)),ti.minW&&ti.minW<=this.column&&(ti.w=Math.max(ti.w,ti.minW)),ti.minH&&(ti.h=Math.max(ti.h,ti.minH)),(ti.x||0)+(ti.w||1)>this.column&&this.column<12&&!this._inColumnResize&&ti._id&&this.findCacheLayout(ti,12)===-1){let si=Ui({},ti);si.autoPosition||si.x===void 0?(delete si.x,delete si.y):si.x=Math.min(11,si.x),si.w=Math.min(12,si.w||1),this.cacheOneLayout(si,12)}return ti.w>this.column?ti.w=this.column:ti.w<1&&(ti.w=1),this.maxRow&&ti.h>this.maxRow?ti.h=this.maxRow:ti.h<1&&(ti.h=1),ti.x<0&&(ti.x=0),ti.y<0&&(ti.y=0),ti.x+ti.w>this.column&&(ei?ti.w=this.column-ti.x:ti.x=this.column-ti.w),this.maxRow&&ti.y+ti.h>this.maxRow&&(ei?ti.h=this.maxRow-ti.y:ti.y=this.maxRow-ti.h),xi.samePos(ti,ni)||(ti._dirty=!0),this}getDirtyNodes(ti){return ti?this.nodes.filter(ei=>ei._dirty&&!xi.samePos(ei,ei._orig)):this.nodes.filter(ei=>ei._dirty)}_notify(ti){if(this.batchMode||!this.onChange)return this;let ei=(ti||[]).concat(this.getDirtyNodes());return this.onChange(ei),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(ti=>{delete ti._dirty,delete ti._lastTried}),this)}saveInitial(){return this.nodes.forEach(ti=>{ti._orig=xi.copyPos({},ti),delete ti._dirty}),this._hasLocked=this.nodes.some(ti=>ti.locked),this}restoreInitial(){return this.nodes.forEach(ti=>{xi.samePos(ti,ti._orig)||(xi.copyPos(ti,ti._orig),ti._dirty=!0)}),this._notify(),this}findEmptyPosition(ti,ei=this.nodes,ni=this.column,ri){let si=ri?ri.y*ni+(ri.x+ri.w):0,ai=!1;for(let li=si;!ai;++li){let di=li%ni,mi=Math.floor(li/ni);if(di+ti.w>ni)continue;let hi={x:di,y:mi,w:ti.w,h:ti.h};ei.find(_i=>xi.isIntercepted(hi,_i))||((ti.x!==di||ti.y!==mi)&&(ti._dirty=!0),ti.x=di,ti.y=mi,delete ti.autoPosition,ai=!0)}return ai}addNode(ti,ei=!1,ni){let ri=this.nodes.find(ai=>ai._id===ti._id);if(ri)return ri;this._inColumnResize?this.nodeBoundFix(ti):this.prepareNode(ti),delete ti._temporaryRemoved,delete ti._removeDOM;let si;return ti.autoPosition&&this.findEmptyPosition(ti,this.nodes,this.column,ni)&&(delete ti.autoPosition,si=!0),this.nodes.push(ti),ei&&this.addedNodes.push(ti),si||this._fixCollisions(ti),this.batchMode||this._packNodes()._notify(),ti}removeNode(ti,ei=!0,ni=!1){return this.nodes.find(ri=>ri._id===ti._id)?(ni&&this.removedNodes.push(ti),ei&&(ti._removeDOM=!0),this.nodes=this.nodes.filter(ri=>ri._id!==ti._id),ti._isAboutToRemove||this._packNodes(),this._notify([ti]),this):this}removeAll(ti=!0,ei=!0){if(delete this._layouts,!this.nodes.length)return this;ti&&this.nodes.forEach(ri=>ri._removeDOM=!0);let ni=this.nodes;return this.removedNodes=ei?ni:[],this.nodes=[],this._notify(ni)}moveNodeCheck(ti,ei){if(!this.changedPosConstrain(ti,ei))return!1;if(ei.pack=!0,!this.maxRow)return this.moveNode(ti,ei);let ni,ri=new ii({column:this.column,float:this.float,nodes:this.nodes.map(ai=>ai._id===ti._id?(ni=Ui({},ai),ni):Ui({},ai))});if(!ni)return!1;let si=ri.moveNode(ni,ei)&&ri.getRow()<=Math.max(this.getRow(),this.maxRow);if(!si&&!ei.resizing&&ei.collide){let ai=ei.collide.el.gridstackNode;if(this.swap(ti,ai))return this._notify(),!0}return si?(ri.nodes.filter(ai=>ai._dirty).forEach(ai=>{let li=this.nodes.find(di=>di._id===ai._id);li&&(xi.copyPos(li,ai),li._dirty=!0)}),this._notify(),!0):!1}willItFit(ti){if(delete ti._willFitPos,!this.maxRow)return!0;let ei=new ii({column:this.column,float:this.float,nodes:this.nodes.map(ri=>Ui({},ri))}),ni=Ui({},ti);return this.cleanupNode(ni),delete ni.el,delete ni._id,delete ni.content,delete ni.grid,ei.addNode(ni),ei.getRow()<=this.maxRow?(ti._willFitPos=xi.copyPos({},ni),!0):!1}changedPosConstrain(ti,ei){return ei.w=ei.w||ti.w,ei.h=ei.h||ti.h,ti.x!==ei.x||ti.y!==ei.y?!0:(ti.maxW&&(ei.w=Math.min(ei.w,ti.maxW)),ti.maxH&&(ei.h=Math.min(ei.h,ti.maxH)),ti.minW&&(ei.w=Math.max(ei.w,ti.minW)),ti.minH&&(ei.h=Math.max(ei.h,ti.minH)),ti.w!==ei.w||ti.h!==ei.h)}moveNode(ti,ei){var mi,hi;if(!ti||!ei)return!1;let ni;ei.pack===void 0&&!this.batchMode&&(ni=ei.pack=!0),typeof ei.x!="number"&&(ei.x=ti.x),typeof ei.y!="number"&&(ei.y=ti.y),typeof ei.w!="number"&&(ei.w=ti.w),typeof ei.h!="number"&&(ei.h=ti.h);let ri=ti.w!==ei.w||ti.h!==ei.h,si=xi.copyPos({},ti,!0);if(xi.copyPos(si,ei),this.nodeBoundFix(si,ri),xi.copyPos(ei,si),!ei.forceCollide&&xi.samePos(ti,ei))return!1;let ai=xi.copyPos({},ti),li=this.collideAll(ti,si,ei.skip),di=!0;if(li.length){let _i=ti._moving&&!ei.nested,Ei=_i?this.directionCollideCoverage(ti,ei,li):li[0];if(_i&&Ei&&((hi=(mi=ti.grid)==null?void 0:mi.opts)!=null&&hi.subGridDynamic)&&!ti.grid._isTemp){let Ai=xi.areaIntercept(ei.rect,Ei._rect),ki=xi.area(ei.rect),Ti=xi.area(Ei._rect);Ai/(ki.8&&(Ei.grid.makeSubGrid(Ei.el,void 0,ti),Ei=void 0)}Ei?di=!this._fixCollisions(ti,si,Ei,ei):(di=!1,ni&&delete ei.pack)}return di&&(ti._dirty=!0,xi.copyPos(ti,si)),ei.pack&&this._packNodes()._notify(),!xi.samePos(ti,ai)}getRow(){return this.nodes.reduce((ti,ei)=>Math.max(ti,ei.y+ei.h),0)}beginUpdate(ti){return ti._updating||(ti._updating=!0,delete ti._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let ti=this.nodes.find(ei=>ei._updating);return ti&&(delete ti._updating,delete ti._skipDown),this}save(ti=!0,ei){var ai;let ni=(ai=this._layouts)==null?void 0:ai.length,ri=ni&&this.column!==ni-1?this._layouts[ni-1]:null,si=[];return this.sortNodes(),this.nodes.forEach(li=>{let di=ri==null?void 0:ri.find(hi=>hi._id===li._id),mi=Ui(Ui({},li),di||{});xi.removeInternalForSave(mi,!ti),ei&&ei(li,mi),si.push(mi)}),si}layoutsNodesChange(ti){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((ei,ni)=>{if(!ei||ni===this.column)return this;if(ni{if(!si._orig)return;let ai=ei.find(li=>li._id===si._id);ai&&(ai.y>=0&&si.y!==si._orig.y&&(ai.y+=si.y-si._orig.y),si.x!==si._orig.x&&(ai.x=Math.round(si.x*ri)),si.w!==si._orig.w&&(ai.w=Math.round(si.w*ri)))})}}),this)}columnChanged(ti,ei,ni="moveScale"){var li;if(!this.nodes.length||!ei||ti===ei)return this;if(ni==="none")return this;let ri=ni==="compact"||ni==="list";ri&&this.sortNodes(1),eiti&&this._layouts){let di=this._layouts[ei]||[],mi=this._layouts.length-1;!di.length&&ti!==mi&&((li=this._layouts[mi])!=null&&li.length)&&(ti=mi,this._layouts[mi].forEach(hi=>{var Ei,Ai,ki;let _i=ai.find(Ti=>Ti._id===hi._id);_i&&(!ri&&!hi.autoPosition&&(_i.x=(Ei=hi.x)!=null?Ei:_i.x,_i.y=(Ai=hi.y)!=null?Ai:_i.y),_i.w=(ki=hi.w)!=null?ki:_i.w,(hi.x==null||hi.y===void 0)&&(_i.autoPosition=!0))})),di.forEach(hi=>{var Ei,Ai,ki;let _i=ai.findIndex(Ti=>Ti._id===hi._id);if(_i!==-1){let Ti=ai[_i];if(ri){Ti.w=hi.w;return}(hi.autoPosition||isNaN(hi.x)||isNaN(hi.y))&&this.findEmptyPosition(hi,si),hi.autoPosition||(Ti.x=(Ei=hi.x)!=null?Ei:Ti.x,Ti.y=(Ai=hi.y)!=null?Ai:Ti.y,Ti.w=(ki=hi.w)!=null?ki:Ti.w,si.push(Ti)),ai.splice(_i,1)}})}if(ri)this.compact(ni,!1);else{if(ai.length)if(typeof ni=="function")ni(ei,ti,si,ai);else{let di=ri?1:ei/ti,mi=ni==="move"||ni==="moveScale",hi=ni==="scale"||ni==="moveScale";ai.forEach(_i=>{_i.x=ei===1?0:mi?Math.round(_i.x*di):Math.min(_i.x,ei-1),_i.w=ei===1||ti===1?1:hi?Math.round(_i.w*di)||1:Math.min(_i.w,ei),si.push(_i)}),ai=[]}si=xi.sort(si,-1),this._inColumnResize=!0,this.nodes=[],si.forEach(di=>{this.addNode(di,!1),delete di._orig})}return this.nodes.forEach(di=>delete di._orig),this.batchUpdate(!1,!ri),delete this._inColumnResize,this}cacheLayout(ti,ei,ni=!1){let ri=[];return ti.forEach((si,ai)=>{var li;if(si._id===void 0){let di=si.id?this.nodes.find(mi=>mi.id===si.id):void 0;si._id=(li=di==null?void 0:di._id)!=null?li:ii._idSeq++}ri[ai]={x:si.x,y:si.y,w:si.w,_id:si._id}}),this._layouts=ni?[]:this._layouts||[],this._layouts[ei]=ri,this}cacheOneLayout(ti,ei){var si;ti._id=(si=ti._id)!=null?si:ii._idSeq++;let ni={x:ti.x,y:ti.y,w:ti.w,_id:ti._id};(ti.autoPosition||ti.x===void 0)&&(delete ni.x,delete ni.y,ti.autoPosition&&(ni.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[ei]=this._layouts[ei]||[];let ri=this.findCacheLayout(ti,ei);return ri===-1?this._layouts[ei].push(ni):this._layouts[ei][ri]=ni,this}findCacheLayout(ti,ei){var ni,ri,si;return(si=(ri=(ni=this._layouts)==null?void 0:ni[ei])==null?void 0:ri.findIndex(ai=>ai._id===ti._id))!=null?si:-1}removeNodeFromLayoutCache(ti){if(this._layouts)for(let ei=0;ei0||navigator.msMaxTouchPoints>0),xs=class{};function zl(ii,ti){if(ii.touches.length>1)return;ii.cancelable&&ii.preventDefault();let ei=ii.changedTouches[0],ni=document.createEvent("MouseEvents");ni.initMouseEvent(ti,!0,!0,window,1,ei.screenX,ei.screenY,ei.clientX,ei.clientY,!1,!1,!1,!1,0,null),ii.target.dispatchEvent(ni)}function Yf(ii,ti){ii.cancelable&&ii.preventDefault();let ei=document.createEvent("MouseEvents");ei.initMouseEvent(ti,!0,!0,window,1,ii.screenX,ii.screenY,ii.clientX,ii.clientY,!1,!1,!1,!1,0,null),ii.target.dispatchEvent(ei)}function ca(ii){xs.touchHandled||(xs.touchHandled=!0,zl(ii,"mousedown"))}function ua(ii){xs.touchHandled&&zl(ii,"mousemove")}function da(ii){if(!xs.touchHandled)return;xs.pointerLeaveTimeout&&(window.clearTimeout(xs.pointerLeaveTimeout),delete xs.pointerLeaveTimeout);let ti=!!sn.dragElement;zl(ii,"mouseup"),ti||zl(ii,"click"),xs.touchHandled=!1}function fa(ii){ii.pointerType!=="mouse"&&ii.target.releasePointerCapture(ii.pointerId)}function au(ii){sn.dragElement&&ii.pointerType!=="mouse"&&Yf(ii,"mouseenter")}function lu(ii){sn.dragElement&&ii.pointerType!=="mouse"&&(xs.pointerLeaveTimeout=window.setTimeout(()=>{delete xs.pointerLeaveTimeout,Yf(ii,"mouseleave")},10))}var $a=class ii{constructor(ti,ei,ni){this.host=ti,this.dir=ei,this.option=ni,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){let ti=this.el=document.createElement("div");return ti.classList.add("ui-resizable-handle"),ti.classList.add(`${ii.prefix}${this.dir}`),ti.style.zIndex="100",ti.style.userSelect="none",this.host.appendChild(this.el),this.el.addEventListener("mousedown",this._mouseDown),ss&&(this.el.addEventListener("touchstart",ca),this.el.addEventListener("pointerdown",fa)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),ss&&(this.el.removeEventListener("touchstart",ca),this.el.removeEventListener("pointerdown",fa)),this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(ti){this.mouseDownEvent=ti,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),ss&&(this.el.addEventListener("touchmove",ua),this.el.addEventListener("touchend",da)),ti.stopPropagation(),ti.preventDefault()}_mouseMove(ti){let ei=this.mouseDownEvent;this.moving?this._triggerEvent("move",ti):Math.abs(ti.x-ei.x)+Math.abs(ti.y-ei.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",ti),document.addEventListener("keydown",this._keyEvent)),ti.stopPropagation()}_mouseUp(ti){this.moving&&(this._triggerEvent("stop",ti),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),ss&&(this.el.removeEventListener("touchmove",ua),this.el.removeEventListener("touchend",da)),delete this.moving,delete this.mouseDownEvent,ti.stopPropagation(),ti.preventDefault()}_keyEvent(ti){var ei,ni;ti.key==="Escape"&&((ni=(ei=this.host.gridstackNode)==null?void 0:ei.grid)==null||ni.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(ti,ei){return this.option[ti]&&this.option[ti](ei),this}};$a.prefix="ui-resizable-";var fo=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(ti,ei){this._eventRegister[ti]=ei}off(ti){delete this._eventRegister[ti]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(ti,ei){if(!this.disabled&&this._eventRegister&&this._eventRegister[ti])return this._eventRegister[ti](ei)}};var Ba=class ii extends fo{constructor(ti,ei={}){super(),this.el=ti,this.option=ei,this.rectScale={x:1,y:1},this._ui=()=>{let ri=this.el.parentElement.getBoundingClientRect(),si={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},ai=this.temporalRect||si;return{position:{left:(ai.left-ri.left)*this.rectScale.x,top:(ai.top-ri.top)*this.rectScale.y},size:{width:ai.width*this.rectScale.x,height:ai.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(ti,ei){super.on(ti,ei)}off(ti){super.off(ti)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(ti){let ei=ti.handles&&ti.handles!==this.option.handles,ni=ti.autoHide&&ti.autoHide!==this.option.autoHide;return Object.keys(ti).forEach(ri=>this.option[ri]=ti[ri]),ei&&(this._removeHandlers(),this._setupHandlers()),ni&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(ti){return ti?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),sn.overResizeElement===this&&delete sn.overResizeElement),this}_mouseOver(ti){sn.overResizeElement||sn.dragElement||(sn.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(ti){sn.overResizeElement===this&&(delete sn.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(ti=>ti.trim()).map(ti=>new $a(this.el,ti,{start:ei=>{this._resizeStart(ei)},stop:ei=>{this._resizeStop(ei)},move:ei=>{this._resizing(ei,ti)}})),this}_resizeStart(ti){this.sizeToContent=xi.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=xi.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=ti,this._setupHelper(),this._applyChange();let ei=xi.initEvent(ti,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(ei,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",ei),this}_resizing(ti,ei){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(ti,ei),this._applyChange();let ni=xi.initEvent(ti,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(ni,this._ui()),this.triggerEvent("resize",ni),this}_resizeStop(ti){let ei=xi.initEvent(ti,{type:"resizestop",target:this.el});return this.option.stop&&this.option.stop(ei),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",ei),this._cleanHelper(),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=ii._originStyleProp.map(ni=>this.el.style[ni]),this.parentOriginStylePosition=this.el.parentElement.style.position;let ti=this.el.parentElement,ei=xi.getValuesFromTransformedElement(ti);return this.rectScale={x:ei.xScale,y:ei.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return ii._originStyleProp.forEach((ti,ei)=>{this.el.style[ti]=this.elOriginStyleVal[ei]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(ti,ei){let ni=this.startEvent,ri={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},si=ti.clientX-ni.clientX,ai=this.sizeToContent?0:ti.clientY-ni.clientY,li,di;ei.indexOf("e")>-1?ri.width+=si:ei.indexOf("w")>-1&&(ri.width-=si,ri.left+=si,li=!0),ei.indexOf("s")>-1?ri.height+=ai:ei.indexOf("n")>-1&&(ri.height-=ai,ri.top+=ai,di=!0);let mi=this._constrainSize(ri.width,ri.height,li,di);return Math.round(ri.width)!==Math.round(mi.width)&&(ei.indexOf("w")>-1&&(ri.left+=ri.width-mi.width),ri.width=mi.width),Math.round(ri.height)!==Math.round(mi.height)&&(ei.indexOf("n")>-1&&(ri.top+=ri.height-mi.height),ri.height=mi.height),ri}_constrainSize(ti,ei,ni,ri){let si=this.option,ai=(ni?si.maxWidthMoveLeft:si.maxWidth)||Number.MAX_SAFE_INTEGER,li=si.minWidth/this.rectScale.x||ti,di=(ri?si.maxHeightMoveUp:si.maxHeight)||Number.MAX_SAFE_INTEGER,mi=si.minHeight/this.rectScale.y||ei,hi=Math.min(ai,Math.max(li,ti)),_i=Math.min(di,Math.max(mi,ei));return{width:hi,height:_i}}_applyChange(){let ti={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){let ei=this.el.parentElement,{left:ni,top:ri}=ei.getBoundingClientRect();ti={left:ni,top:ri,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(ei=>{let ni=this.temporalRect[ei],ri=ei==="width"||ei==="left"?this.rectScale.x:ei==="height"||ei==="top"?this.rectScale.y:1;this.el.style[ei]=(ni-ti[ei])*ri+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(ti=>ti.destroy()),delete this.handlers,this}};Ba._originStyleProp=["width","height","position","left","top","opacity","zIndex"];var zy='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle',za=class ii extends fo{constructor(ti,ei={}){super(),this.el=ti,this.option=ei,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};let ni=ei.handle.substring(1),ri=ti.gridstackNode;this.dragEls=ti.classList.contains(ni)?[ti]:ri!=null&&ri.subGrid?[ti.querySelector(ei.handle)||ti]:Array.from(ti.querySelectorAll(ei.handle)),this.dragEls.length===0&&(this.dragEls=[ti]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(ti,ei){super.on(ti,ei)}off(ti){super.off(ti)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(ti=>{ti.addEventListener("mousedown",this._mouseDown),ss&&(ti.addEventListener("touchstart",ca),ti.addEventListener("pointerdown",fa))}),this.el.classList.remove("ui-draggable-disabled"))}disable(ti=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(ei=>{ei.removeEventListener("mousedown",this._mouseDown),ss&&(ei.removeEventListener("touchstart",ca),ei.removeEventListener("pointerdown",fa))}),ti||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(ti){return Object.keys(ti).forEach(ei=>this.option[ei]=ti[ei]),this}_mouseDown(ti){if(!sn.mouseHandled)return ti.button!==0||!this.dragEls.find(ei=>ei===ti.target)&&ti.target.closest(zy)||this.option.cancel&&ti.target.closest(this.option.cancel)||(this.mouseDownEvent=ti,delete this.dragging,delete sn.dragElement,delete sn.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),ss&&(ti.target.addEventListener("touchmove",ua),ti.target.addEventListener("touchend",da)),ti.preventDefault(),document.activeElement&&document.activeElement.blur(),sn.mouseHandled=!0),!0}_callDrag(ti){if(!this.dragging)return;let ei=xi.initEvent(ti,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(ei,this.ui()),this.triggerEvent("drag",ei)}_mouseMove(ti){var ni;let ei=this.mouseDownEvent;if(this.lastDrag=ti,this.dragging)if(this._dragFollow(ti),sn.pauseDrag){let ri=Number.isInteger(sn.pauseDrag)?sn.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(ti),ri)}else this._callDrag(ti);else if(Math.abs(ti.x-ei.x)+Math.abs(ti.y-ei.y)>3){this.dragging=!0,sn.dragElement=this;let ri=(ni=this.el.gridstackNode)==null?void 0:ni.grid;ri?sn.dropElement=ri.el.ddElement.ddDroppable:delete sn.dropElement,this.helper=this._createHelper(ti),this._setupHelperContainmentStyle(),this.dragTransform=xi.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(ti,this.el,this.helperContainment),this._setupHelperStyle(ti);let si=xi.initEvent(ti,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(si,this.ui()),this.triggerEvent("dragstart",si),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(ti){var ei,ni;if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),ss&&(ti.target.removeEventListener("touchmove",ua,!0),ti.target.removeEventListener("touchend",da,!0)),this.dragging){delete this.dragging,(ei=this.el.gridstackNode)==null||delete ei._origRotate,document.removeEventListener("keydown",this._keyEvent),((ni=sn.dropElement)==null?void 0:ni.el)===this.el.parentElement&&delete sn.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper===this.el?this._removeHelperStyle():this.helper.remove();let ri=xi.initEvent(ti,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(ri),this.triggerEvent("dragstop",ri),sn.dropElement&&sn.dropElement.drop(ti)}delete this.helper,delete this.mouseDownEvent,delete sn.dragElement,delete sn.dropElement,delete sn.mouseHandled,ti.preventDefault()}_keyEvent(ti){let ei=this.el.gridstackNode;if(!(ei!=null&&ei.grid))return;let ni=ei.grid;if(ti.key==="Escape")ei._origRotate&&(ei._orig=ei._origRotate,delete ei._origRotate),ni.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent);else if(ti.key==="r"||ti.key==="R"){if(!xi.canBeRotated(ei))return;ei._origRotate=ei._origRotate||Ui({},ei._orig),delete ei._moving,ni.setAnimation(!1).rotate(ei.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),ei._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,ei.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",xi.swap(ei._orig,"w","h"),delete ei._rect,this._mouseMove(this.lastDrag)}}_createHelper(ti){let ei=this.el;return typeof this.option.helper=="function"?ei=this.option.helper(ti):this.option.helper==="clone"&&(ei=xi.cloneNode(this.el)),document.body.contains(ei)||xi.appendTo(ei,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),ei===this.el&&(this.dragElementOriginStyle=ii.originStyleProp.map(ni=>this.el.style[ni])),ei}_setupHelperStyle(ti){this.helper.classList.add("ui-draggable-dragging");let ei=this.helper.style;return ei.pointerEvents="none",ei.width=this.dragOffset.width+"px",ei.height=this.dragOffset.height+"px",ei.willChange="left, top",ei.position="fixed",this._dragFollow(ti),ei.transition="none",setTimeout(()=>{this.helper&&(ei.transition=null)},0),this}_removeHelperStyle(){var ei;this.helper.classList.remove("ui-draggable-dragging");let ti=(ei=this.helper)==null?void 0:ei.gridstackNode;if(!(ti!=null&&ti._isAboutToRemove)&&this.dragElementOriginStyle){let ni=this.helper,ri=this.dragElementOriginStyle.transition||null;ni.style.transition=this.dragElementOriginStyle.transition="none",ii.originStyleProp.forEach(si=>ni.style[si]=this.dragElementOriginStyle[si]||null),setTimeout(()=>ni.style.transition=ri,50)}return delete this.dragElementOriginStyle,this}_dragFollow(ti){let ei={left:0,top:0},ni=this.helper.style,ri=this.dragOffset;ni.left=(ti.clientX+ri.offsetLeft-ei.left)*this.dragTransform.xScale+"px",ni.top=(ti.clientY+ri.offsetTop-ei.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(ti,ei,ni){let ri=0,si=0;ni&&(ri=this.dragTransform.xOffset,si=this.dragTransform.yOffset);let ai=ei.getBoundingClientRect();return{left:ai.left,top:ai.top,offsetLeft:-ti.clientX+ai.left-ri,offsetTop:-ti.clientY+ai.top-si,width:ai.width*this.dragTransform.xScale,height:ai.height*this.dragTransform.yScale}}ui(){let ei=this.el.parentElement.getBoundingClientRect(),ni=this.helper.getBoundingClientRect();return{position:{top:(ni.top-ei.top)*this.dragTransform.yScale,left:(ni.left-ei.left)*this.dragTransform.xScale}}}};za.originStyleProp=["transition","pointerEvents","position","left","top","minWidth","willChange"];var jl=class extends fo{constructor(ti,ei={}){super(),this.el=ti,this.option=ei,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(ti,ei){super.on(ti,ei)}off(ti){super.off(ti)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),ss&&(this.el.addEventListener("pointerenter",au),this.el.addEventListener("pointerleave",lu)))}disable(ti=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),ti||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),ss&&(this.el.removeEventListener("pointerenter",au),this.el.removeEventListener("pointerleave",lu)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(ti){return Object.keys(ti).forEach(ei=>this.option[ei]=ti[ei]),this._setupAccept(),this}_mouseEnter(ti){if(!sn.dragElement||!this._canDrop(sn.dragElement.el))return;ti.preventDefault(),ti.stopPropagation(),sn.dropElement&&sn.dropElement!==this&&sn.dropElement._mouseLeave(ti,!0),sn.dropElement=this;let ei=xi.initEvent(ti,{target:this.el,type:"dropover"});this.option.over&&this.option.over(ei,this._ui(sn.dragElement)),this.triggerEvent("dropover",ei),this.el.classList.add("ui-droppable-over")}_mouseLeave(ti,ei=!1){var ri;if(!sn.dragElement||sn.dropElement!==this)return;ti.preventDefault(),ti.stopPropagation();let ni=xi.initEvent(ti,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(ni,this._ui(sn.dragElement)),this.triggerEvent("dropout",ni),sn.dropElement===this&&(delete sn.dropElement,!ei)){let si,ai=this.el.parentElement;for(;!si&&ai;)si=(ri=ai.ddElement)==null?void 0:ri.ddDroppable,ai=ai.parentElement;si&&si._mouseEnter(ti)}}drop(ti){ti.preventDefault();let ei=xi.initEvent(ti,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(ei,this._ui(sn.dragElement)),this.triggerEvent("drop",ei)}_canDrop(ti){return ti&&(!this.accept||this.accept(ti))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=ti=>ti.classList.contains(this.option.accept)||ti.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(ti){return Ui({draggable:ti.el},ti.ui())}};var Vl=class ii{static init(ti){return ti.ddElement||(ti.ddElement=new ii(ti)),ti.ddElement}constructor(ti){this.el=ti}on(ti,ei){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(ti)>-1?this.ddDraggable.on(ti,ei):this.ddDroppable&&["drop","dropover","dropout"].indexOf(ti)>-1?this.ddDroppable.on(ti,ei):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(ti)>-1&&this.ddResizable.on(ti,ei),this}off(ti){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(ti)>-1?this.ddDraggable.off(ti):this.ddDroppable&&["drop","dropover","dropout"].indexOf(ti)>-1?this.ddDroppable.off(ti):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(ti)>-1&&this.ddResizable.off(ti),this}setupDraggable(ti){return this.ddDraggable?this.ddDraggable.updateOption(ti):this.ddDraggable=new za(this.el,ti),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(ti){return this.ddResizable?this.ddResizable.updateOption(ti):this.ddResizable=new Ba(this.el,ti),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(ti){return this.ddDroppable?this.ddDroppable.updateOption(ti):this.ddDroppable=new jl(this.el,ti),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}};var ql=class{resizable(ti,ei,ni,ri){return this._getDDElements(ti).forEach(si=>{if(ei==="disable"||ei==="enable")si.ddResizable&&si.ddResizable[ei]();else if(ei==="destroy")si.ddResizable&&si.cleanResizable();else if(ei==="option")si.setupResizable({[ni]:ri});else{let li=si.el.gridstackNode.grid,di=si.el.getAttribute("gs-resize-handles")||li.opts.resizable.handles||"e,s,se";di==="all"&&(di="n,e,s,w,se,sw,ne,nw");let mi=!li.opts.alwaysShowResizeHandle;si.setupResizable(Hn(Ui({},li.opts.resizable),{handles:di,autoHide:mi,start:ei.start,stop:ei.stop,resize:ei.resize}))}}),this}draggable(ti,ei,ni,ri){return this._getDDElements(ti).forEach(si=>{if(ei==="disable"||ei==="enable")si.ddDraggable&&si.ddDraggable[ei]();else if(ei==="destroy")si.ddDraggable&&si.cleanDraggable();else if(ei==="option")si.setupDraggable({[ni]:ri});else{let ai=si.el.gridstackNode.grid;si.setupDraggable(Hn(Ui({},ai.opts.draggable),{start:ei.start,stop:ei.stop,drag:ei.drag}))}}),this}dragIn(ti,ei){return this._getDDElements(ti).forEach(ni=>ni.setupDraggable(ei)),this}droppable(ti,ei,ni,ri){return typeof ei.accept=="function"&&!ei._accept&&(ei._accept=ei.accept,ei.accept=si=>ei._accept(si)),this._getDDElements(ti).forEach(si=>{ei==="disable"||ei==="enable"?si.ddDroppable&&si.ddDroppable[ei]():ei==="destroy"?si.ddDroppable&&si.cleanDroppable():ei==="option"?si.setupDroppable({[ni]:ri}):si.setupDroppable(ei)}),this}isDroppable(ti){return!!(ti&&ti.ddElement&&ti.ddElement.ddDroppable&&!ti.ddElement.ddDroppable.disabled)}isDraggable(ti){return!!(ti&&ti.ddElement&&ti.ddElement.ddDraggable&&!ti.ddElement.ddDraggable.disabled)}isResizable(ti){return!!(ti&&ti.ddElement&&ti.ddElement.ddResizable&&!ti.ddElement.ddResizable.disabled)}on(ti,ei,ni){return this._getDDElements(ti).forEach(ri=>ri.on(ei,si=>{ni(si,sn.dragElement?sn.dragElement.el:si.target,sn.dragElement?sn.dragElement.helper:null)})),this}off(ti,ei){return this._getDDElements(ti).forEach(ni=>ni.off(ei)),this}_getDDElements(ti,ei=!0){let ni=xi.getElements(ti);if(!ni.length)return[];let ri=ni.map(si=>si.ddElement||(ei?Vl.init(si):null));return ei||ri.filter(si=>si),ri}};var os=new ql,ho=class ii{static init(ti={},ei=".grid-stack"){if(typeof document=="undefined")return null;let ni=ii.getGridElement(ei);return ni?(ni.gridstack||(ni.gridstack=new ii(ni,xi.cloneDeep(ti))),ni.gridstack):(console.error(typeof ei=="string"?'GridStack.initAll() no grid was found with selector "'+ei+`" - element missing or wrong selector ?
+ `}}function zi(){ei.calendarContainer.classList.add("hasWeeks");var pi=An("div","flatpickr-weekwrapper");pi.appendChild(An("span","flatpickr-weekday",ei.l10n.weekAbbreviation));var vi=An("div","flatpickr-weeks");return pi.appendChild(vi),{weekWrapper:pi,weekNumbers:vi}}function Li(pi,vi){vi===void 0&&(vi=!0);var wi=vi?pi:pi-ei.currentMonth;wi<0&&ei._hidePrevMonthArrow===!0||wi>0&&ei._hideNextMonthArrow===!0||(ei.currentMonth+=wi,(ei.currentMonth<0||ei.currentMonth>11)&&(ei.currentYear+=ei.currentMonth>11?1:-1,ei.currentMonth=(ei.currentMonth+12)%12,wn("onYearChange"),Tn()),vn(),wn("onMonthChange"),Fo())}function ji(pi,vi){if(pi===void 0&&(pi=!0),vi===void 0&&(vi=!0),ei.input.value="",ei.altInput!==void 0&&(ei.altInput.value=""),ei.mobileInput!==void 0&&(ei.mobileInput.value=""),ei.selectedDates=[],ei.latestSelectedDateObj=void 0,vi===!0&&(ei.currentYear=ei._initialDate.getFullYear(),ei.currentMonth=ei._initialDate.getMonth()),ei.config.enableTime===!0){var wi=$l(ei.config),Si=wi.hours,Ri=wi.minutes,qi=wi.seconds;Ai(Si,Ri,qi)}ei.redraw(),pi&&wn("onChange")}function Ji(){ei.isOpen=!1,ei.isMobile||(ei.calendarContainer!==void 0&&ei.calendarContainer.classList.remove("open"),ei._input!==void 0&&ei._input.classList.remove("active")),wn("onClose")}function Vi(){ei.config!==void 0&&wn("onDestroy");for(var pi=ei._handlers.length;pi--;)ei._handlers[pi].remove();if(ei._handlers=[],ei.mobileInput)ei.mobileInput.parentNode&&ei.mobileInput.parentNode.removeChild(ei.mobileInput),ei.mobileInput=void 0;else if(ei.calendarContainer&&ei.calendarContainer.parentNode)if(ei.config.static&&ei.calendarContainer.parentNode){var vi=ei.calendarContainer.parentNode;if(vi.lastChild&&vi.removeChild(vi.lastChild),vi.parentNode){for(;vi.firstChild;)vi.parentNode.insertBefore(vi.firstChild,vi);vi.parentNode.removeChild(vi)}}else ei.calendarContainer.parentNode.removeChild(ei.calendarContainer);ei.altInput&&(ei.input.type="text",ei.altInput.parentNode&&ei.altInput.parentNode.removeChild(ei.altInput),delete ei.altInput),ei.input&&(ei.input.type=ei.input._type,ei.input.classList.remove("flatpickr-input"),ei.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(wi){try{delete ei[wi]}catch(Si){}})}function Ii(pi){return ei.calendarContainer.contains(pi)}function Sn(pi){if(ei.isOpen&&!ei.config.inline){var vi=us(pi),wi=Ii(vi),Si=vi===ei.input||vi===ei.altInput||ei.element.contains(vi)||pi.path&&pi.path.indexOf&&(~pi.path.indexOf(ei.input)||~pi.path.indexOf(ei.altInput)),Ri=!Si&&!wi&&!Ii(pi.relatedTarget),qi=!ei.config.ignoredFocusElements.some(function(nn){return nn.contains(vi)});Ri&&qi&&(ei.config.allowInput&&ei.setDate(ei._input.value,!1,ei.config.altInput?ei.config.altFormat:ei.config.dateFormat),ei.timeContainer!==void 0&&ei.minuteElement!==void 0&&ei.hourElement!==void 0&&ei.input.value!==""&&ei.input.value!==void 0&&di(),ei.close(),ei.config&&ei.config.mode==="range"&&ei.selectedDates.length===1&&ei.clear(!1))}}function Yn(pi){if(!(!pi||ei.config.minDate&&piei.config.maxDate.getFullYear())){var vi=pi,wi=ei.currentYear!==vi;ei.currentYear=vi||ei.currentYear,ei.config.maxDate&&ei.currentYear===ei.config.maxDate.getFullYear()?ei.currentMonth=Math.min(ei.config.maxDate.getMonth(),ei.currentMonth):ei.config.minDate&&ei.currentYear===ei.config.minDate.getFullYear()&&(ei.currentMonth=Math.max(ei.config.minDate.getMonth(),ei.currentMonth)),wi&&(ei.redraw(),wn("onYearChange"),Tn())}}function Fn(pi,vi){var wi;vi===void 0&&(vi=!0);var Si=ei.parseDate(pi,void 0,vi);if(ei.config.minDate&&Si&&ds(Si,ei.config.minDate,vi!==void 0?vi:!ei.minDateHasTime)<0||ei.config.maxDate&&Si&&ds(Si,ei.config.maxDate,vi!==void 0?vi:!ei.maxDateHasTime)>0)return!1;if(!ei.config.enable&&ei.config.disable.length===0)return!0;if(Si===void 0)return!1;for(var Ri=!!ei.config.enable,qi=(wi=ei.config.enable)!==null&&wi!==void 0?wi:ei.config.disable,nn=0,Xi=void 0;nn=Xi.from.getTime()&&Si.getTime()<=Xi.to.getTime())return Ri}return!Ri}function Bn(pi){return ei.daysContainer!==void 0?pi.className.indexOf("hidden")===-1&&pi.className.indexOf("flatpickr-disabled")===-1&&ei.daysContainer.contains(pi):!1}function Gn(pi){var vi=pi.target===ei._input,wi=ei._input.value.trimEnd()!==$o();vi&&wi&&!(pi.relatedTarget&&Ii(pi.relatedTarget))&&ei.setDate(ei._input.value,!0,pi.target===ei.altInput?ei.config.altFormat:ei.config.dateFormat)}function Qn(pi){var vi=us(pi),wi=ei.config.wrap?ii.contains(vi):vi===ei._input,Si=ei.config.allowInput,Ri=ei.isOpen&&(!Si||!wi),qi=ei.config.inline&&wi&&!Si;if(pi.keyCode===13&&wi){if(Si)return ei.setDate(ei._input.value,!0,vi===ei.altInput?ei.config.altFormat:ei.config.dateFormat),ei.close(),vi.blur();ei.open()}else if(Ii(vi)||Ri||qi){var nn=!!ei.timeContainer&&ei.timeContainer.contains(vi);switch(pi.keyCode){case 13:nn?(pi.preventDefault(),di(),Us()):Ms(pi);break;case 27:pi.preventDefault(),Us();break;case 8:case 46:wi&&!ei.config.allowInput&&(pi.preventDefault(),ei.clear());break;case 37:case 39:if(!nn&&!wi){pi.preventDefault();var Xi=si();if(ei.daysContainer!==void 0&&(Si===!1||Xi&&Bn(Xi))){var _n=pi.keyCode===39?1:-1;pi.ctrlKey?(pi.stopPropagation(),Li(_n),gn(hn(1),0)):gn(void 0,_n)}}else ei.hourElement&&ei.hourElement.focus();break;case 38:case 40:pi.preventDefault();var Ki=pi.keyCode===40?1:-1;ei.daysContainer&&vi.$i!==void 0||vi===ei.input||vi===ei.altInput?pi.ctrlKey?(pi.stopPropagation(),Yn(ei.currentYear-Ki),gn(hn(1),0)):nn||gn(void 0,Ki*7):vi===ei.currentYearElement?Yn(ei.currentYear-Ki):ei.config.enableTime&&(!nn&&ei.hourElement&&ei.hourElement.focus(),di(pi),ei._debouncedChange());break;case 9:if(nn){var fn=[ei.hourElement,ei.minuteElement,ei.secondElement,ei.amPM].concat(ei.pluginElements).filter(function(is){return is}),Mn=fn.indexOf(vi);if(Mn!==-1){var gs=fn[Mn+(pi.shiftKey?-1:1)];pi.preventDefault(),(gs||ei._input).focus()}}else!ei.config.noCalendar&&ei.daysContainer&&ei.daysContainer.contains(vi)&&pi.shiftKey&&(pi.preventDefault(),ei._input.focus());break;default:break}}if(ei.amPM!==void 0&&vi===ei.amPM)switch(pi.key){case ei.l10n.amPM[0].charAt(0):case ei.l10n.amPM[0].charAt(0).toLowerCase():ei.amPM.textContent=ei.l10n.amPM[0],_i(),Cs();break;case ei.l10n.amPM[1].charAt(0):case ei.l10n.amPM[1].charAt(0).toLowerCase():ei.amPM.textContent=ei.l10n.amPM[1],_i(),Cs();break}(wi||Ii(vi))&&wn("onKeyDown",pi)}function Ts(pi,vi){if(vi===void 0&&(vi="flatpickr-day"),!(ei.selectedDates.length!==1||pi&&(!pi.classList.contains(vi)||pi.classList.contains("flatpickr-disabled")))){for(var wi=pi?pi.dateObj.getTime():ei.days.firstElementChild.dateObj.getTime(),Si=ei.parseDate(ei.selectedDates[0],void 0,!0).getTime(),Ri=Math.min(wi,ei.selectedDates[0].getTime()),qi=Math.max(wi,ei.selectedDates[0].getTime()),nn=!1,Xi=0,_n=0,Ki=Ri;KiRi&&KiXi)?Xi=Ki:Ki>Si&&(!_n||Ki<_n)&&(_n=Ki));var fn=Array.from(ei.rContainer.querySelectorAll("*:nth-child(-n+"+ei.config.showMonths+") > ."+vi));fn.forEach(function(Mn){var gs=Mn.dateObj,is=gs.getTime(),mo=Xi>0&&is0&&is>_n;if(mo){Mn.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(Qs){Mn.classList.remove(Qs)});return}else if(nn&&!mo)return;["startRange","inRange","endRange","notAllowed"].forEach(function(Qs){Mn.classList.remove(Qs)}),pi!==void 0&&(pi.classList.add(wi<=ei.selectedDates[0].getTime()?"startRange":"endRange"),Siwi&&is===Si&&Mn.classList.add("endRange"),is>=Xi&&(_n===0||is<=_n)&&Hf(is,Si,wi)&&Mn.classList.add("inRange"))})}}function zn(){ei.isOpen&&!ei.config.static&&!ei.config.inline&&Kr()}function hs(pi,vi){if(vi===void 0&&(vi=ei._positionElement),ei.isMobile===!0){if(pi){pi.preventDefault();var wi=us(pi);wi&&wi.blur()}ei.mobileInput!==void 0&&(ei.mobileInput.focus(),ei.mobileInput.click()),wn("onOpen");return}else if(ei._input.disabled||ei.config.inline)return;var Si=ei.isOpen;ei.isOpen=!0,Si||(ei.calendarContainer.classList.add("open"),ei._input.classList.add("active"),wn("onOpen"),Kr(vi)),ei.config.enableTime===!0&&ei.config.noCalendar===!0&&ei.config.allowInput===!1&&(pi===void 0||!ei.timeContainer.contains(pi.relatedTarget))&&setTimeout(function(){return ei.hourElement.select()},50)}function ms(pi){return function(vi){var wi=ei.config["_"+pi+"Date"]=ei.parseDate(vi,ei.config.dateFormat),Si=ei.config["_"+(pi==="min"?"max":"min")+"Date"];wi!==void 0&&(ei[pi==="min"?"minDateHasTime":"maxDateHasTime"]=wi.getHours()>0||wi.getMinutes()>0||wi.getSeconds()>0),ei.selectedDates&&(ei.selectedDates=ei.selectedDates.filter(function(Ri){return Fn(Ri)}),!ei.selectedDates.length&&pi==="min"&&Ei(wi),Cs()),ei.daysContainer&&(po(),wi!==void 0?ei.currentYearElement[pi]=wi.getFullYear().toString():ei.currentYearElement.removeAttribute(pi),ei.currentYearElement.disabled=!!Si&&wi!==void 0&&Si.getFullYear()===wi.getFullYear())}}function qs(){var pi=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],vi=ts(ts({},JSON.parse(JSON.stringify(ii.dataset||{}))),ti),wi={};ei.config.parseDate=vi.parseDate,ei.config.formatDate=vi.formatDate,Object.defineProperty(ei.config,"enable",{get:function(){return ei.config._enable},set:function(fn){ei.config._enable=ha(fn)}}),Object.defineProperty(ei.config,"disable",{get:function(){return ei.config._disable},set:function(fn){ei.config._disable=ha(fn)}});var Si=vi.mode==="time";if(!vi.dateFormat&&(vi.enableTime||Si)){var Ri=Zn.defaultConfig.dateFormat||uo.dateFormat;wi.dateFormat=vi.noCalendar||Si?"H:i"+(vi.enableSeconds?":S":""):Ri+" H:i"+(vi.enableSeconds?":S":"")}if(vi.altInput&&(vi.enableTime||Si)&&!vi.altFormat){var qi=Zn.defaultConfig.altFormat||uo.altFormat;wi.altFormat=vi.noCalendar||Si?"h:i"+(vi.enableSeconds?":S K":" K"):qi+(" h:i"+(vi.enableSeconds?":S":"")+" K")}Object.defineProperty(ei.config,"minDate",{get:function(){return ei.config._minDate},set:ms("min")}),Object.defineProperty(ei.config,"maxDate",{get:function(){return ei.config._maxDate},set:ms("max")});var nn=function(fn){return function(Mn){ei.config[fn==="min"?"_minTime":"_maxTime"]=ei.parseDate(Mn,"H:i:S")}};Object.defineProperty(ei.config,"minTime",{get:function(){return ei.config._minTime},set:nn("min")}),Object.defineProperty(ei.config,"maxTime",{get:function(){return ei.config._maxTime},set:nn("max")}),vi.mode==="time"&&(ei.config.noCalendar=!0,ei.config.enableTime=!0),Object.assign(ei.config,wi,vi);for(var Xi=0;Xi-1?ei.config[Ki]=Pl(_n[Ki]).map(ai).concat(ei.config[Ki]):typeof vi[Ki]=="undefined"&&(ei.config[Ki]=_n[Ki])}vi.altInputClass||(ei.config.altInputClass=qn().className+" "+ei.config.altInputClass),wn("onParseConfig")}function qn(){return ei.config.wrap?ii.querySelector("[data-input]"):ii}function yn(){typeof ei.config.locale!="object"&&typeof Zn.l10ns[ei.config.locale]=="undefined"&&ei.config.errorHandler(new Error("flatpickr: invalid locale "+ei.config.locale)),ei.l10n=ts(ts({},Zn.l10ns.default),typeof ei.config.locale=="object"?ei.config.locale:ei.config.locale!=="default"?Zn.l10ns[ei.config.locale]:void 0),Vs.D="("+ei.l10n.weekdays.shorthand.join("|")+")",Vs.l="("+ei.l10n.weekdays.longhand.join("|")+")",Vs.M="("+ei.l10n.months.shorthand.join("|")+")",Vs.F="("+ei.l10n.months.longhand.join("|")+")",Vs.K="("+ei.l10n.amPM[0]+"|"+ei.l10n.amPM[1]+"|"+ei.l10n.amPM[0].toLowerCase()+"|"+ei.l10n.amPM[1].toLowerCase()+")";var pi=ts(ts({},ti),JSON.parse(JSON.stringify(ii.dataset||{})));pi.time_24hr===void 0&&Zn.defaultConfig.time_24hr===void 0&&(ei.config.time_24hr=ei.l10n.time_24hr),ei.formatDate=ru(ei),ei.parseDate=Hl({config:ei.config,l10n:ei.l10n})}function Kr(pi){if(typeof ei.config.position=="function")return void ei.config.position(ei,pi);if(ei.calendarContainer!==void 0){wn("onPreCalendarPosition");var vi=pi||ei._positionElement,wi=Array.prototype.reduce.call(ei.calendarContainer.children,function(fi,oi){return fi+oi.offsetHeight},0),Si=ei.calendarContainer.offsetWidth,Ri=ei.config.position.split(" "),qi=Ri[0],nn=Ri.length>1?Ri[1]:null,Xi=vi.getBoundingClientRect(),_n=window.innerHeight-Xi.bottom,Ki=qi==="above"||qi!=="below"&&_nwi,fn=window.pageYOffset+Xi.top+(Ki?-wi-2:vi.offsetHeight+2);if(es(ei.calendarContainer,"arrowTop",!Ki),es(ei.calendarContainer,"arrowBottom",Ki),!ei.config.inline){var Mn=window.pageXOffset+Xi.left,gs=!1,is=!1;nn==="center"?(Mn-=(Si-Xi.width)/2,gs=!0):nn==="right"&&(Mn-=Si-Xi.width,is=!0),es(ei.calendarContainer,"arrowLeft",!gs&&!is),es(ei.calendarContainer,"arrowCenter",gs),es(ei.calendarContainer,"arrowRight",is);var mo=window.document.body.offsetWidth-(window.pageXOffset+Xi.right),Qs=Mn+Si>window.document.body.offsetWidth,Gl=mo+Si>window.document.body.offsetWidth;if(es(ei.calendarContainer,"rightMost",Qs),!ei.config.static)if(ei.calendarContainer.style.top=fn+"px",!Qs)ei.calendarContainer.style.left=Mn+"px",ei.calendarContainer.style.right="auto";else if(!Gl)ei.calendarContainer.style.left="auto",ei.calendarContainer.style.right=mo+"px";else{var ma=as();if(ma===void 0)return;var Kl=window.document.body.offsetWidth,Ql=Math.max(0,Kl/2-Si/2),Xl=".flatpickr-calendar.centerMost:before",Jl=".flatpickr-calendar.centerMost:after",Zl=ma.cssRules.length,ec="{left:"+Xi.left+"px;right:auto;}";es(ei.calendarContainer,"rightMost",!1),es(ei.calendarContainer,"centerMost",!0),ma.insertRule(Xl+","+Jl+ec,Zl),ei.calendarContainer.style.left=Ql+"px",ei.calendarContainer.style.right="auto"}}}}function as(){for(var pi=null,vi=0;viei.currentMonth+ei.config.showMonths-1)&&ei.config.mode!=="range";if(ei.selectedDateElem=Si,ei.config.mode==="single")ei.selectedDates=[Ri];else if(ei.config.mode==="multiple"){var nn=Ks(Ri);nn?ei.selectedDates.splice(parseInt(nn),1):ei.selectedDates.push(Ri)}else ei.config.mode==="range"&&(ei.selectedDates.length===2&&ei.clear(!1,!1),ei.latestSelectedDateObj=Ri,ei.selectedDates.push(Ri),ds(Ri,ei.selectedDates[0],!0)!==0&&ei.selectedDates.sort(function(fn,Mn){return fn.getTime()-Mn.getTime()}));if(_i(),qi){var Xi=ei.currentYear!==Ri.getFullYear();ei.currentYear=Ri.getFullYear(),ei.currentMonth=Ri.getMonth(),Xi&&(wn("onYearChange"),Tn()),wn("onMonthChange")}if(Fo(),vn(),Cs(),!qi&&ei.config.mode!=="range"&&ei.config.showMonths===1?bn(Si):ei.selectedDateElem!==void 0&&ei.hourElement===void 0&&ei.selectedDateElem&&ei.selectedDateElem.focus(),ei.hourElement!==void 0&&ei.hourElement!==void 0&&ei.hourElement.focus(),ei.config.closeOnSelect){var _n=ei.config.mode==="single"&&!ei.config.enableTime,Ki=ei.config.mode==="range"&&ei.selectedDates.length===2&&!ei.config.enableTime;(_n||Ki)&&Us()}Fi()}}var Ss={locale:[yn,tn],showMonths:[Hi,li,mn],minDate:[rn],maxDate:[rn],positionElement:[Ul],clickOpens:[function(){ei.config.clickOpens===!0?(Ti(ei._input,"focus",ei.open),Ti(ei._input,"click",ei.open)):(ei._input.removeEventListener("focus",ei.open),ei._input.removeEventListener("click",ei.open))}]};function Ro(pi,vi){if(pi!==null&&typeof pi=="object"){Object.assign(ei.config,pi);for(var wi in pi)Ss[wi]!==void 0&&Ss[wi].forEach(function(Si){return Si()})}else ei.config[pi]=vi,Ss[pi]!==void 0?Ss[pi].forEach(function(Si){return Si()}):Nl.indexOf(pi)>-1&&(ei.config[pi]=Pl(vi));ei.redraw(),Cs(!0)}function Ys(pi,vi){var wi=[];if(pi instanceof Array)wi=pi.map(function(Si){return ei.parseDate(Si,vi)});else if(pi instanceof Date||typeof pi=="number")wi=[ei.parseDate(pi,vi)];else if(typeof pi=="string")switch(ei.config.mode){case"single":case"time":wi=[ei.parseDate(pi,vi)];break;case"multiple":wi=pi.split(ei.config.conjunction).map(function(Si){return ei.parseDate(Si,vi)});break;case"range":wi=pi.split(ei.l10n.rangeSeparator).map(function(Si){return ei.parseDate(Si,vi)});break;default:break}else ei.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(pi)));ei.selectedDates=ei.config.allowInvalidPreload?wi:wi.filter(function(Si){return Si instanceof Date&&Fn(Si,!1)}),ei.config.mode==="range"&&ei.selectedDates.sort(function(Si,Ri){return Si.getTime()-Ri.getTime()})}function Po(pi,vi,wi){if(vi===void 0&&(vi=!1),wi===void 0&&(wi=ei.config.dateFormat),pi!==0&&!pi||pi instanceof Array&&pi.length===0)return ei.clear(vi);Ys(pi,wi),ei.latestSelectedDateObj=ei.selectedDates[ei.selectedDates.length-1],ei.redraw(),rn(void 0,vi),Ei(),ei.selectedDates.length===0&&ei.clear(!1),Cs(vi),vi&&wn("onChange")}function ha(pi){return pi.slice().map(function(vi){return typeof vi=="string"||typeof vi=="number"||vi instanceof Date?ei.parseDate(vi,void 0,!0):vi&&typeof vi=="object"&&vi.from&&vi.to?{from:ei.parseDate(vi.from,void 0),to:ei.parseDate(vi.to,void 0)}:vi}).filter(function(vi){return vi})}function Wl(){ei.selectedDates=[],ei.now=ei.parseDate(ei.config.now)||new Date;var pi=ei.config.defaultDate||((ei.input.nodeName==="INPUT"||ei.input.nodeName==="TEXTAREA")&&ei.input.placeholder&&ei.input.value===ei.input.placeholder?null:ei.input.value);pi&&Ys(pi,ei.config.dateFormat),ei._initialDate=ei.selectedDates.length>0?ei.selectedDates[0]:ei.config.minDate&&ei.config.minDate.getTime()>ei.now.getTime()?ei.config.minDate:ei.config.maxDate&&ei.config.maxDate.getTime()0&&(ei.latestSelectedDateObj=ei.selectedDates[0]),ei.config.minTime!==void 0&&(ei.config.minTime=ei.parseDate(ei.config.minTime,"H:i")),ei.config.maxTime!==void 0&&(ei.config.maxTime=ei.parseDate(ei.config.maxTime,"H:i")),ei.minDateHasTime=!!ei.config.minDate&&(ei.config.minDate.getHours()>0||ei.config.minDate.getMinutes()>0||ei.config.minDate.getSeconds()>0),ei.maxDateHasTime=!!ei.config.maxDate&&(ei.config.maxDate.getHours()>0||ei.config.maxDate.getMinutes()>0||ei.config.maxDate.getSeconds()>0)}function pa(){if(ei.input=qn(),!ei.input){ei.config.errorHandler(new Error("Invalid input element specified"));return}ei.input._type=ei.input.type,ei.input.type="text",ei.input.classList.add("flatpickr-input"),ei._input=ei.input,ei.config.altInput&&(ei.altInput=An(ei.input.nodeName,ei.config.altInputClass),ei._input=ei.altInput,ei.altInput.placeholder=ei.input.placeholder,ei.altInput.disabled=ei.input.disabled,ei.altInput.required=ei.input.required,ei.altInput.tabIndex=ei.input.tabIndex,ei.altInput.type="text",ei.input.setAttribute("type","hidden"),!ei.config.static&&ei.input.parentNode&&ei.input.parentNode.insertBefore(ei.altInput,ei.input.nextSibling)),ei.config.allowInput||ei._input.setAttribute("readonly","readonly"),Ul()}function Ul(){ei._positionElement=ei.config.positionElement||ei._input}function Ho(){var pi=ei.config.enableTime?ei.config.noCalendar?"time":"datetime-local":"date";ei.mobileInput=An("input",ei.input.className+" flatpickr-mobile"),ei.mobileInput.tabIndex=1,ei.mobileInput.type=pi,ei.mobileInput.disabled=ei.input.disabled,ei.mobileInput.required=ei.input.required,ei.mobileInput.placeholder=ei.input.placeholder,ei.mobileFormatStr=pi==="datetime-local"?"Y-m-d\\TH:i:S":pi==="date"?"Y-m-d":"H:i:S",ei.selectedDates.length>0&&(ei.mobileInput.defaultValue=ei.mobileInput.value=ei.formatDate(ei.selectedDates[0],ei.mobileFormatStr)),ei.config.minDate&&(ei.mobileInput.min=ei.formatDate(ei.config.minDate,"Y-m-d")),ei.config.maxDate&&(ei.mobileInput.max=ei.formatDate(ei.config.maxDate,"Y-m-d")),ei.input.getAttribute("step")&&(ei.mobileInput.step=String(ei.input.getAttribute("step"))),ei.input.type="hidden",ei.altInput!==void 0&&(ei.altInput.type="hidden");try{ei.input.parentNode&&ei.input.parentNode.insertBefore(ei.mobileInput,ei.input.nextSibling)}catch(vi){}Ti(ei.mobileInput,"change",function(vi){ei.setDate(us(vi).value,!1,ei.mobileFormatStr),wn("onChange"),wn("onClose")})}function ja(pi){if(ei.isOpen===!0)return ei.close();ei.open(pi)}function wn(pi,vi){if(ei.config!==void 0){var wi=ei.config[pi];if(wi!==void 0&&wi.length>0)for(var Si=0;wi[Si]&&Si=0&&ds(pi,ei.selectedDates[1])<=0}function Fo(){ei.config.noCalendar||ei.isMobile||!ei.monthNav||(ei.yearElements.forEach(function(pi,vi){var wi=new Date(ei.currentYear,ei.currentMonth,1);wi.setMonth(ei.currentMonth+vi),ei.config.showMonths>1||ei.config.monthSelectorType==="static"?ei.monthElements[vi].textContent=Fa(wi.getMonth(),ei.config.shorthandCurrentMonth,ei.l10n)+" ":ei.monthsDropdownContainer.value=wi.getMonth().toString(),pi.value=wi.getFullYear().toString()}),ei._hidePrevMonthArrow=ei.config.minDate!==void 0&&(ei.currentYear===ei.config.minDate.getFullYear()?ei.currentMonth<=ei.config.minDate.getMonth():ei.currentYearei.config.maxDate.getMonth():ei.currentYear>ei.config.maxDate.getFullYear()))}function $o(pi){var vi=pi||(ei.config.altInput?ei.config.altFormat:ei.config.dateFormat);return ei.selectedDates.map(function(wi){return ei.formatDate(wi,vi)}).filter(function(wi,Si,Ri){return ei.config.mode!=="range"||ei.config.enableTime||Ri.indexOf(wi)===Si}).join(ei.config.mode!=="range"?ei.config.conjunction:ei.l10n.rangeSeparator)}function Cs(pi){pi===void 0&&(pi=!0),ei.mobileInput!==void 0&&ei.mobileFormatStr&&(ei.mobileInput.value=ei.latestSelectedDateObj!==void 0?ei.formatDate(ei.latestSelectedDateObj,ei.mobileFormatStr):""),ei.input.value=$o(ei.config.dateFormat),ei.altInput!==void 0&&(ei.altInput.value=$o(ei.config.altFormat)),pi!==!1&&wn("onValueUpdate")}function Dn(pi){var vi=us(pi),wi=ei.prevMonthNav.contains(vi),Si=ei.nextMonthNav.contains(vi);wi||Si?Li(wi?-1:1):ei.yearElements.indexOf(vi)>=0?vi.select():vi.classList.contains("arrowUp")?ei.changeYear(ei.currentYear+1):vi.classList.contains("arrowDown")&&ei.changeYear(ei.currentYear-1)}function On(pi){pi.preventDefault();var vi=pi.type==="keydown",wi=us(pi),Si=wi;ei.amPM!==void 0&&wi===ei.amPM&&(ei.amPM.textContent=ei.l10n.amPM[cs(ei.amPM.textContent===ei.l10n.amPM[0])]);var Ri=parseFloat(Si.getAttribute("min")),qi=parseFloat(Si.getAttribute("max")),nn=parseFloat(Si.getAttribute("step")),Xi=parseInt(Si.value,10),_n=pi.delta||(vi?pi.which===38?1:-1:0),Ki=Xi+nn*_n;if(typeof Si.value!="undefined"&&Si.value.length===2){var fn=Si===ei.hourElement,Mn=Si===ei.minuteElement;Kiqi&&(Ki=Si===ei.hourElement?Ki-qi-cs(!ei.amPM):Ri,Mn&&Yi(void 0,1,ei.hourElement)),ei.amPM&&fn&&(nn===1?Ki+Xi===23:Math.abs(Ki-Xi)>nn)&&(ei.amPM.textContent=ei.l10n.amPM[cs(ei.amPM.textContent===ei.l10n.amPM[0])]),Si.value=Zr(Ki)}}return ri(),ei}function aa(ii,ti){for(var ei=Array.prototype.slice.call(ii).filter(function(ai){return ai instanceof HTMLElement}),ni=[],ri=0;ri option"))if(ti.selected){for(let ei of Gi("#id_columns"))ei.appendChild(ti.cloneNode(!0));ti.remove()}ii.preventDefault()}function zy(ii){for(let ti of Gi("#id_columns > option"))if(ti.selected){for(let ei of Gi("#id_available_columns"))ei.appendChild(ti.cloneNode(!0));ti.remove()}ii.preventDefault()}function jf(ii,ti){return ks(this,null,function*(){return yield ra(ii,ti)})}function jy(ii){var di,mi,hi;ii.preventDefault();let ti=ii.currentTarget,ei=ti.getAttribute("data-url");if(ei==null){ao("danger","Error Updating Table Configuration","No API path defined for configuration form.").show();return}let ni=((di=document.activeElement)==null?void 0:di.getAttribute("value"))==="Reset",ri=(hi=(mi=ti.getAttribute("data-config-root"))==null?void 0:mi.split("."))!=null?hi:[];if(ni){let _i=ri.reduceRight((Ei,Ai)=>({[Ai]:Ei}),{});jf(ei,_i).then(Ei=>{Mo(Ei)?ao("danger","Error Resetting Table Configuration",Ei.error).show():location.reload()});return}let si=Pd(ti,"select[name=columns]"),ai=Object.assign({},...si.map(_i=>({[_i.name]:_i.options}))),li=ri.reduceRight((_i,Ei)=>({[Ei]:_i}),ai);jf(ei,li).then(_i=>{Mo(_i)?ao("danger","Error Updating Table Configuration",_i.error).show():location.reload()})}function Vf(){for(let ii of Gi("#save_tableconfig"))ii.addEventListener("click",$y);for(let ii of Gi("#add_columns"))ii.addEventListener("click",By);for(let ii of Gi("#remove_columns"))ii.addEventListener("click",zy);for(let ii of Gi("form.userconfigform"))ii.addEventListener("submit",jy)}function qf(ii){return typeof ii=="string"&&["show","hide"].includes(ii)}var No=class extends Error{constructor(ei,ni){super(ei);Rn(this,"table");this.table=ni}},la=class{constructor(ti,ei){Rn(this,"button");Rn(this,"rows");this.button=ti,this.rows=ei}hideRows(){for(let ti of this.rows)ti.classList.add("d-none")}set buttonState(ti){qf(ti)&&this.button.setAttribute("data-state",ti)}get buttonState(){let ti=this.button.getAttribute("data-state");return qf(ti)?ti:null}toggleButton(){this.buttonState==="show"?this.button.innerText=sa(this.button.innerText,"Show","Hide"):this.buttonState==="hide"&&(this.button.innerText=sa(this.button.innerHTML,"Hide","Show"))}toggleState(){this.buttonState==="show"?this.buttonState="hide":this.buttonState==="hide"&&(this.buttonState="show")}toggle(){this.toggleState(),this.toggleButton()}handleClick(ti){ti.currentTarget.isEqualNode(this.button)&&this.toggle(),this.buttonState==="hide"&&this.hideRows()}},su=class{constructor(ti){Rn(this,"table");Rn(this,"enabledButton");Rn(this,"disabledButton");Rn(this,"virtualButton");Rn(this,"disconnectedButton");Rn(this,"rows");this.table=ti,this.rows=this.table.querySelectorAll("tr");try{let ei=ko(this.table,"button.toggle-enabled"),ni=ko(this.table,"button.toggle-disabled"),ri=ko(this.table,"button.toggle-virtual"),si=ko(this.table,"button.toggle-disconnected");if(ei===null)throw new No("Table is missing a 'toggle-enabled' button.",ti);if(ni===null)throw new No("Table is missing a 'toggle-disabled' button.",ti);if(ri===null)throw new No("Table is missing a 'toggle-virtual' button.",ti);if(si===null)throw new No("Table is missing a 'toggle-disconnected' button.",ti);ei.addEventListener("click",ai=>this.handleClick(ai,this)),ni.addEventListener("click",ai=>this.handleClick(ai,this)),ri.addEventListener("click",ai=>this.handleClick(ai,this)),si.addEventListener("click",ai=>this.handleClick(ai,this)),this.enabledButton=new la(ei,ti.querySelectorAll('tr[data-enabled="enabled"]')),this.disabledButton=new la(ni,ti.querySelectorAll('tr[data-enabled="disabled"]')),this.virtualButton=new la(ri,ti.querySelectorAll('tr[data-type="virtual"]')),this.disconnectedButton=new la(si,ti.querySelectorAll('tr[data-connected="disconnected"]'))}catch(ei){if(ei instanceof No){console.debug("Table does not contain enable/disable toggle buttons");return}else throw ei}}handleClick(ti,ei){for(let ni of this.rows)ni.classList.remove("d-none");ei.enabledButton.handleClick(ti),ei.disabledButton.handleClick(ti),ei.virtualButton.handleClick(ti),ei.disconnectedButton.handleClick(ti)}};function Wf(){for(let ii of Gi("table"))new su(ii)}var ou=class{constructor(ti){Rn(this,"base");Rn(this,"state");Rn(this,"activeLink",null);Rn(this,"sections",[]);this.base=ti,this.state=new Ia({pinned:!0},{persist:!0,key:"netbox-sidenav"}),this.init(),this.initSectionLinks(),this.initLinks()}bodyHas(ti){return document.body.hasAttribute(`data-sidenav-${ti}`)}bodyRemove(...ti){for(let ei of ti)document.body.removeAttribute(`data-sidenav-${ei}`)}bodyAdd(...ti){for(let ei of ti)document.body.setAttribute(`data-sidenav-${ei}`,"")}init(){for(let ti of this.base.querySelectorAll(".sidenav-toggle"))ti.addEventListener("click",ei=>this.onToggle(ei));for(let ti of Gi(".sidenav-toggle-mobile"))ti.addEventListener("click",ei=>this.onMobileToggle(ei));window.innerWidth>1200&&(this.state.get("pinned")&&this.pin(),this.state.get("pinned")||this.unpin(),window.addEventListener("resize",()=>this.onResize())),window.innerWidth<1200&&(this.bodyRemove("hide"),this.bodyAdd("hidden"),window.addEventListener("resize",()=>this.onResize())),this.base.addEventListener("mouseenter",()=>this.onEnter()),this.base.addEventListener("mouseleave",()=>this.onLeave())}initLinks(){for(let ti of this.getActiveLinks())this.bodyHas("show")?this.activateLink(ti,"expand"):this.bodyHas("hidden")&&this.activateLink(ti,"collapse")}show(){this.bodyAdd("show"),this.bodyRemove("hidden","hide")}hide(){this.bodyAdd("hidden"),this.bodyRemove("pinned","show");for(let ti of this.base.querySelectorAll(".collapse"))ti.classList.remove("show")}pin(){this.bodyAdd("show","pinned"),this.bodyRemove("hidden"),this.state.set("pinned",!0)}unpin(){this.bodyRemove("pinned","show"),this.bodyAdd("hidden");for(let ti of this.base.querySelectorAll(".collapse"))ti.classList.remove("show");this.state.set("pinned",!1)}handleSectionClick(ti){ti.preventDefault();let ei=ti.target;this.activeLink=ei,this.closeInactiveSections()}closeInactiveSections(){for(let[ti,ei]of this.sections)ti!==this.activeLink&&(ti.classList.add("collapsed"),ti.setAttribute("aria-expanded","false"),ei.hide())}initSectionLinks(){for(let ti of Gi(".navbar-nav .nav-item .nav-link[data-bs-toggle]"))if(ti.parentElement!==null){let ei=ti.parentElement.querySelector(".collapse");if(ei!==null){let ni=new io(ei,{toggle:!1});this.sections.push([ti,ni]),ti.addEventListener("click",ri=>this.handleSectionClick(ri))}}}activateLink(ti,ei){var ri;let ni=ti.closest(".dropdown-menu");if(wl(ni)){let si=ni.parentElement,ai=(ri=ni.parentElement)==null?void 0:ri.querySelector(".nav-link");if(wl(ai)&&wl(si))switch(ei){case"expand":ai.setAttribute("aria-expanded","true"),si.classList.add("active"),ni.classList.add("show"),ti.classList.add("active");break;case"collapse":ai.setAttribute("aria-expanded","false"),si.classList.remove("active"),ni.classList.remove("show"),ti.classList.remove("active");break}}}*getActiveLinks(){for(let ti of this.base.querySelectorAll("ul.navbar-nav .nav-item .dropdown-item")){let ei=ti.querySelector("a");if(ei){let ni=new RegExp(ei.href,"gi");window.location.href.match(ni)&&(yield ti)}}}onEnter(){if(!this.bodyHas("pinned")){this.bodyRemove("hide","hidden"),this.bodyAdd("show");for(let ti of this.getActiveLinks())this.activateLink(ti,"expand")}}onLeave(){if(!this.bodyHas("pinned")){this.bodyRemove("show"),this.bodyAdd("hide");for(let ti of this.getActiveLinks())this.activateLink(ti,"collapse");this.bodyRemove("hide"),this.bodyAdd("hidden")}}onResize(){this.bodyHas("show")&&!this.bodyHas("pinned")&&(this.bodyRemove("show"),this.bodyAdd("hidden"))}onToggle(ti){ti.preventDefault(),this.state.get("pinned")?this.unpin():this.pin()}onMobileToggle(ti){ti.preventDefault(),this.bodyHas("hidden")?this.show():this.hide()}};function Uf(){for(let ii of Gi(".navbar"))new ou(ii)}function Yf(ii,ti,ei,ni,ri){let si=(...ai)=>(console.warn("gridstack.js: Function `"+ei+"` is deprecated in "+ri+" and has been replaced with `"+ni+"`. It will be **removed** in a future release"),ti.apply(ii,ai));return si.prototype=ti.prototype,si}var xi=class ii{static getElements(ti,ei=document){if(typeof ti=="string"){let ni="getElementById"in ei?ei:void 0;if(ni&&!isNaN(+ti[0])){let si=ni.getElementById(ti);return si?[si]:[]}let ri=ei.querySelectorAll(ti);return!ri.length&&ti[0]!=="."&&ti[0]!=="#"&&(ri=ei.querySelectorAll("."+ti),ri.length||(ri=ei.querySelectorAll("#"+ti))),Array.from(ri)}return[ti]}static getElement(ti,ei=document){if(typeof ti=="string"){let ni="getElementById"in ei?ei:void 0;if(!ti.length)return null;if(ni&&ti[0]==="#")return ni.getElementById(ti.substring(1));if(ti[0]==="#"||ti[0]==="."||ti[0]==="[")return ei.querySelector(ti);if(ni&&!isNaN(+ti[0]))return ni.getElementById(ti);let ri=ei.querySelector(ti);return ni&&!ri&&(ri=ni.getElementById(ti)),ri||(ri=ei.querySelector("."+ti)),ri}return ti}static shouldSizeToContent(ti,ei=!1){return(ti==null?void 0:ti.grid)&&(ei?ti.sizeToContent===!0||ti.grid.opts.sizeToContent===!0&&ti.sizeToContent===void 0:!!ti.sizeToContent||ti.grid.opts.sizeToContent&&ti.sizeToContent!==!1)}static isIntercepted(ti,ei){return!(ti.y>=ei.y+ei.h||ti.y+ti.h<=ei.y||ti.x+ti.w<=ei.x||ti.x>=ei.x+ei.w)}static isTouching(ti,ei){return ii.isIntercepted(ti,{x:ei.x-.5,y:ei.y-.5,w:ei.w+1,h:ei.h+1})}static areaIntercept(ti,ei){let ni=ti.x>ei.x?ti.x:ei.x,ri=ti.x+ti.wei.y?ti.y:ei.y,ai=ti.y+ti.h{var li,di,mi,hi;let ai=ei*(((li=ri.y)!=null?li:1e4)-((di=si.y)!=null?di:1e4));return ai===0?ei*(((mi=ri.x)!=null?mi:1e4)-((hi=si.x)!=null?hi:1e4)):ai})}static find(ti,ei){return ei?ti.find(ni=>ni.id===ei):void 0}static createStylesheet(ti,ei,ni){let ri=document.createElement("style"),si=ni==null?void 0:ni.nonce;return si&&(ri.nonce=si),ri.setAttribute("type","text/css"),ri.setAttribute("gs-style-id",ti),ri.styleSheet?ri.styleSheet.cssText="":ri.appendChild(document.createTextNode("")),ei?ei.insertBefore(ri,ei.firstChild):(ei=document.getElementsByTagName("head")[0],ei.appendChild(ri)),ri.sheet}static removeStylesheet(ti,ei){let ri=(ei||document).querySelector("STYLE[gs-style-id="+ti+"]");ri&&ri.parentNode&&ri.remove()}static addCSSRule(ti,ei,ni){typeof ti.addRule=="function"?ti.addRule(ei,ni):typeof ti.insertRule=="function"&&ti.insertRule(`${ei}{${ni}}`)}static toBool(ti){return typeof ti=="boolean"?ti:typeof ti=="string"?(ti=ti.toLowerCase(),!(ti===""||ti==="no"||ti==="false"||ti==="0")):!!ti}static toNumber(ti){return ti===null||ti.length===0?void 0:Number(ti)}static parseHeight(ti){let ei,ni="px";if(typeof ti=="string")if(ti==="auto"||ti==="")ei=0;else{let ri=ti.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!ri)throw new Error(`Invalid height val = ${ti}`);ni=ri[2]||"px",ei=parseFloat(ri[1])}else ei=ti;return{h:ei,unit:ni}}static defaults(ti,...ei){return ei.forEach(ni=>{for(let ri in ni){if(!ni.hasOwnProperty(ri))return;ti[ri]===null||ti[ri]===void 0?ti[ri]=ni[ri]:typeof ni[ri]=="object"&&typeof ti[ri]=="object"&&this.defaults(ti[ri],ni[ri])}}),ti}static same(ti,ei){if(typeof ti!="object")return ti==ei;if(typeof ti!=typeof ei||Object.keys(ti).length!==Object.keys(ei).length)return!1;for(let ni in ti)if(ti[ni]!==ei[ni])return!1;return!0}static copyPos(ti,ei,ni=!1){return ei.x!==void 0&&(ti.x=ei.x),ei.y!==void 0&&(ti.y=ei.y),ei.w!==void 0&&(ti.w=ei.w),ei.h!==void 0&&(ti.h=ei.h),ni&&(ei.minW&&(ti.minW=ei.minW),ei.minH&&(ti.minH=ei.minH),ei.maxW&&(ti.maxW=ei.maxW),ei.maxH&&(ti.maxH=ei.maxH)),ti}static samePos(ti,ei){return ti&&ei&&ti.x===ei.x&&ti.y===ei.y&&(ti.w||1)===(ei.w||1)&&(ti.h||1)===(ei.h||1)}static sanitizeMinMax(ti){ti.minW||delete ti.minW,ti.minH||delete ti.minH,ti.maxW||delete ti.maxW,ti.maxH||delete ti.maxH}static removeInternalAndSame(ti,ei){if(!(typeof ti!="object"||typeof ei!="object"))for(let ni in ti){let ri=ti[ni],si=ei[ni];ni[0]==="_"||ri===si?delete ti[ni]:ri&&typeof ri=="object"&&si!==void 0&&(ii.removeInternalAndSame(ri,si),Object.keys(ri).length||delete ti[ni])}}static removeInternalForSave(ti,ei=!0){for(let ni in ti)(ni[0]==="_"||ti[ni]===null||ti[ni]===void 0)&&delete ti[ni];delete ti.grid,ei&&delete ti.el,ti.autoPosition||delete ti.autoPosition,ti.noResize||delete ti.noResize,ti.noMove||delete ti.noMove,ti.locked||delete ti.locked,(ti.w===1||ti.w===ti.minW)&&delete ti.w,(ti.h===1||ti.h===ti.minH)&&delete ti.h}static throttle(ti,ei){let ni=!1;return(...ri)=>{ni||(ni=!0,setTimeout(()=>{ti(...ri),ni=!1},ei))}}static removePositioningStyles(ti){let ei=ti.style;ei.position&&ei.removeProperty("position"),ei.left&&ei.removeProperty("left"),ei.top&&ei.removeProperty("top"),ei.width&&ei.removeProperty("width"),ei.height&&ei.removeProperty("height")}static getScrollElement(ti){if(!ti)return document.scrollingElement||document.documentElement;let ei=getComputedStyle(ti);return/(auto|scroll)/.test(ei.overflow+ei.overflowY)?ti:this.getScrollElement(ti.parentElement)}static updateScrollPosition(ti,ei,ni){let ri=ti.getBoundingClientRect(),si=window.innerHeight||document.documentElement.clientHeight;if(ri.top<0||ri.bottom>si){let ai=ri.bottom-si,li=ri.top,di=this.getScrollElement(ti);if(di!==null){let mi=di.scrollTop;ri.top<0&&ni<0?ti.offsetHeight>si?di.scrollTop+=ni:di.scrollTop+=Math.abs(li)>Math.abs(ni)?ni:li:ni>0&&(ti.offsetHeight>si?di.scrollTop+=ni:di.scrollTop+=ai>ni?ni:ai),ei.top+=di.scrollTop-mi}}}static updateScrollResize(ti,ei,ni){let ri=this.getScrollElement(ei),si=ri.clientHeight,ai=ri===this.getScrollElement()?0:ri.getBoundingClientRect().top,li=ti.clientY-ai,di=lisi-ni;di?ri.scrollBy({behavior:"smooth",top:li-ni}):mi&&ri.scrollBy({behavior:"smooth",top:ni-(si-li)})}static clone(ti){return ti==null||typeof ti!="object"?ti:ti instanceof Array?[...ti]:Ui({},ti)}static cloneDeep(ti){let ei=["parentGrid","el","grid","subGrid","engine"],ni=ii.clone(ti);for(let ri in ni)ni.hasOwnProperty(ri)&&typeof ni[ri]=="object"&&ri.substring(0,2)!=="__"&&!ei.find(si=>si===ri)&&(ni[ri]=ii.cloneDeep(ti[ri]));return ni}static cloneNode(ti){let ei=ti.cloneNode(!0);return ei.removeAttribute("id"),ei}static appendTo(ti,ei){let ni;typeof ei=="string"?ni=ii.getElement(ei):ni=ei,ni&&ni.appendChild(ti)}static addElStyles(ti,ei){if(ei instanceof Object)for(let ni in ei)ei.hasOwnProperty(ni)&&(Array.isArray(ei[ni])?ei[ni].forEach(ri=>{ti.style[ni]=ri}):ti.style[ni]=ei[ni])}static initEvent(ti,ei){let ni={type:ei.type},ri={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:ei.target?ei.target:ti.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(si=>ni[si]=ti[si]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(si=>ni[si]=ti[si]),Ui(Ui({},ni),ri)}static simulateMouseEvent(ti,ei,ni){let ri=document.createEvent("MouseEvents");ri.initMouseEvent(ei,!0,!0,window,1,ti.screenX,ti.screenY,ti.clientX,ti.clientY,ti.ctrlKey,ti.altKey,ti.shiftKey,ti.metaKey,0,ti.target),(ni||ti.target).dispatchEvent(ri)}static getValuesFromTransformedElement(ti){let ei=document.createElement("div");ii.addElStyles(ei,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),ti.appendChild(ei);let ni=ei.getBoundingClientRect();return ti.removeChild(ei),ei.remove(),{xScale:1/ni.width,yScale:1/ni.height,xOffset:ni.left,yOffset:ni.top}}static swap(ti,ei,ni){if(!ti)return;let ri=ti[ei];ti[ei]=ti[ni],ti[ni]=ri}static canBeRotated(ti){var ei;return!(!ti||ti.w===ti.h||ti.locked||ti.noResize||(ei=ti.grid)!=null&&ei.opts.disableResize||ti.minW&&ti.minW===ti.maxW||ti.minH&&ti.minH===ti.maxH)}};var Io=class ii{constructor(ti={}){this.addedNodes=[],this.removedNodes=[],this.column=ti.column||12,this.maxRow=ti.maxRow,this._float=ti.float,this.nodes=ti.nodes||[],this.onChange=ti.onChange}batchUpdate(ti=!0,ei=!0){return!!this.batchMode===ti?this:(this.batchMode=ti,ti?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,ei&&this._packNodes(),this._notify()),this)}_useEntireRowArea(ti,ei){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!ti._moving||ti._skipDown||ei.y<=ti.y)}_fixCollisions(ti,ei=ti,ni,ri={}){if(this.sortNodes(-1),ni=ni||this.collide(ti,ei),!ni)return!1;if(ti._moving&&!ri.nested&&!this.float&&this.swap(ti,ni))return!0;let si=ei;!this._loading&&this._useEntireRowArea(ti,ei)&&(si={x:0,w:this.column,y:ei.y,h:ei.h},ni=this.collide(ti,si,ri.skip));let ai=!1,li={nested:!0,pack:!1};for(;ni=ni||this.collide(ti,si,ri.skip);){let di;if(ni.locked||this._loading||ti._moving&&!ti._skipDown&&ei.y>ti.y&&!this.float&&(!this.collide(ni,Hn(Ui({},ni),{y:ti.y}),ti)||!this.collide(ni,Hn(Ui({},ni),{y:ei.y-ni.h}),ti))?(ti._skipDown=ti._skipDown||ei.y>ti.y,di=this.moveNode(ti,Ui(Hn(Ui({},ei),{y:ni.y+ni.h}),li)),(ni.locked||this._loading)&&di?xi.copyPos(ei,ti):!ni.locked&&di&&ri.pack&&(this._packNodes(),ei.y=ni.y+ni.h,xi.copyPos(ti,ei)),ai=ai||di):di=this.moveNode(ni,Ui(Hn(Ui({},ni),{y:ei.y+ei.h,skip:ti}),li)),!di)return ai;ni=void 0}return ai}collide(ti,ei=ti,ni){let ri=ti._id,si=ni==null?void 0:ni._id;return this.nodes.find(ai=>ai._id!==ri&&ai._id!==si&&xi.isIntercepted(ai,ei))}collideAll(ti,ei=ti,ni){let ri=ti._id,si=ni==null?void 0:ni._id;return this.nodes.filter(ai=>ai._id!==ri&&ai._id!==si&&xi.isIntercepted(ai,ei))}directionCollideCoverage(ti,ei,ni){if(!ei.rect||!ti._rect)return;let ri=ti._rect,si=Ui({},ei.rect);si.y>ri.y?(si.h+=si.y-ri.y,si.y=ri.y):si.h+=ri.y-si.y,si.x>ri.x?(si.w+=si.x-ri.x,si.x=ri.x):si.w+=ri.x-si.x;let ai,li=.5;for(let di of ni){if(di.locked||!di._rect)break;let mi=di._rect,hi=Number.MAX_VALUE,_i=Number.MAX_VALUE;ri.ymi.y+mi.h&&(hi=(mi.y+mi.h-si.y)/mi.h),ri.xmi.x+mi.w&&(_i=(mi.x+mi.w-si.x)/mi.w);let Ei=Math.min(_i,hi);Ei>li&&(li=Ei,ai=di)}return ei.collide=ai,ai}cacheRects(ti,ei,ni,ri,si,ai){return this.nodes.forEach(li=>li._rect={y:li.y*ei+ni,x:li.x*ti+ai,w:li.w*ti-ai-ri,h:li.h*ei-ni-si}),this}swap(ti,ei){if(!ei||ei.locked||!ti||ti.locked)return!1;function ni(){let si=ei.x,ai=ei.y;return ei.x=ti.x,ei.y=ti.y,ti.h!=ei.h?(ti.x=si,ti.y=ei.y+ei.h):ti.w!=ei.w?(ti.x=ei.x+ei.w,ti.y=ai):(ti.x=si,ti.y=ai),ti._dirty=ei._dirty=!0,!0}let ri;if(ti.w===ei.w&&ti.h===ei.h&&(ti.x===ei.x||ti.y===ei.y)&&(ri=xi.isTouching(ti,ei)))return ni();if(ri!==!1){if(ti.w===ei.w&&ti.x===ei.x&&(ri||(ri=xi.isTouching(ti,ei)))){if(ei.y{let mi;ai.locked||(ai.autoPosition=!0,ti==="list"&&li&&(mi=di[li-1])),this.addNode(ai,!1,mi)}),ri||delete this._inColumnResize,ni||this.batchUpdate(!1),this}set float(ti){this._float!==ti&&(this._float=ti||!1,ti||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(ti=1){return this.nodes=xi.sort(this.nodes,ti),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(ti=>{if(ti._updating||ti._orig===void 0||ti.y===ti._orig.y)return;let ei=ti.y;for(;ei>ti._orig.y;)--ei,this.collide(ti,{x:ti.x,y:ei,w:ti.w,h:ti.h})||(ti._dirty=!0,ti.y=ei)}):this.nodes.forEach((ti,ei)=>{if(!ti.locked)for(;ti.y>0;){let ni=ei===0?0:ti.y-1;if(!(ei===0||!this.collide(ti,{x:ti.x,y:ni,w:ti.w,h:ti.h})))break;ti._dirty=ti.y!==ni,ti.y=ni}}),this)}prepareNode(ti,ei){var ri;ti._id=(ri=ti._id)!=null?ri:ii._idSeq++,(ti.x===void 0||ti.y===void 0||ti.x===null||ti.y===null)&&(ti.autoPosition=!0);let ni={x:0,y:0,w:1,h:1};return xi.defaults(ti,ni),ti.autoPosition||delete ti.autoPosition,ti.noResize||delete ti.noResize,ti.noMove||delete ti.noMove,xi.sanitizeMinMax(ti),typeof ti.x=="string"&&(ti.x=Number(ti.x)),typeof ti.y=="string"&&(ti.y=Number(ti.y)),typeof ti.w=="string"&&(ti.w=Number(ti.w)),typeof ti.h=="string"&&(ti.h=Number(ti.h)),isNaN(ti.x)&&(ti.x=ni.x,ti.autoPosition=!0),isNaN(ti.y)&&(ti.y=ni.y,ti.autoPosition=!0),isNaN(ti.w)&&(ti.w=ni.w),isNaN(ti.h)&&(ti.h=ni.h),this.nodeBoundFix(ti,ei),ti}nodeBoundFix(ti,ei){let ni=ti._orig||xi.copyPos({},ti);if(ti.maxW&&(ti.w=Math.min(ti.w,ti.maxW)),ti.maxH&&(ti.h=Math.min(ti.h,ti.maxH)),ti.minW&&ti.minW<=this.column&&(ti.w=Math.max(ti.w,ti.minW)),ti.minH&&(ti.h=Math.max(ti.h,ti.minH)),(ti.x||0)+(ti.w||1)>this.column&&this.column<12&&!this._inColumnResize&&ti._id&&this.findCacheLayout(ti,12)===-1){let si=Ui({},ti);si.autoPosition||si.x===void 0?(delete si.x,delete si.y):si.x=Math.min(11,si.x),si.w=Math.min(12,si.w||1),this.cacheOneLayout(si,12)}return ti.w>this.column?ti.w=this.column:ti.w<1&&(ti.w=1),this.maxRow&&ti.h>this.maxRow?ti.h=this.maxRow:ti.h<1&&(ti.h=1),ti.x<0&&(ti.x=0),ti.y<0&&(ti.y=0),ti.x+ti.w>this.column&&(ei?ti.w=this.column-ti.x:ti.x=this.column-ti.w),this.maxRow&&ti.y+ti.h>this.maxRow&&(ei?ti.h=this.maxRow-ti.y:ti.y=this.maxRow-ti.h),xi.samePos(ti,ni)||(ti._dirty=!0),this}getDirtyNodes(ti){return ti?this.nodes.filter(ei=>ei._dirty&&!xi.samePos(ei,ei._orig)):this.nodes.filter(ei=>ei._dirty)}_notify(ti){if(this.batchMode||!this.onChange)return this;let ei=(ti||[]).concat(this.getDirtyNodes());return this.onChange(ei),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(ti=>{delete ti._dirty,delete ti._lastTried}),this)}saveInitial(){return this.nodes.forEach(ti=>{ti._orig=xi.copyPos({},ti),delete ti._dirty}),this._hasLocked=this.nodes.some(ti=>ti.locked),this}restoreInitial(){return this.nodes.forEach(ti=>{xi.samePos(ti,ti._orig)||(xi.copyPos(ti,ti._orig),ti._dirty=!0)}),this._notify(),this}findEmptyPosition(ti,ei=this.nodes,ni=this.column,ri){let si=ri?ri.y*ni+(ri.x+ri.w):0,ai=!1;for(let li=si;!ai;++li){let di=li%ni,mi=Math.floor(li/ni);if(di+ti.w>ni)continue;let hi={x:di,y:mi,w:ti.w,h:ti.h};ei.find(_i=>xi.isIntercepted(hi,_i))||((ti.x!==di||ti.y!==mi)&&(ti._dirty=!0),ti.x=di,ti.y=mi,delete ti.autoPosition,ai=!0)}return ai}addNode(ti,ei=!1,ni){let ri=this.nodes.find(ai=>ai._id===ti._id);if(ri)return ri;this._inColumnResize?this.nodeBoundFix(ti):this.prepareNode(ti),delete ti._temporaryRemoved,delete ti._removeDOM;let si;return ti.autoPosition&&this.findEmptyPosition(ti,this.nodes,this.column,ni)&&(delete ti.autoPosition,si=!0),this.nodes.push(ti),ei&&this.addedNodes.push(ti),si||this._fixCollisions(ti),this.batchMode||this._packNodes()._notify(),ti}removeNode(ti,ei=!0,ni=!1){return this.nodes.find(ri=>ri._id===ti._id)?(ni&&this.removedNodes.push(ti),ei&&(ti._removeDOM=!0),this.nodes=this.nodes.filter(ri=>ri._id!==ti._id),ti._isAboutToRemove||this._packNodes(),this._notify([ti]),this):this}removeAll(ti=!0,ei=!0){if(delete this._layouts,!this.nodes.length)return this;ti&&this.nodes.forEach(ri=>ri._removeDOM=!0);let ni=this.nodes;return this.removedNodes=ei?ni:[],this.nodes=[],this._notify(ni)}moveNodeCheck(ti,ei){if(!this.changedPosConstrain(ti,ei))return!1;if(ei.pack=!0,!this.maxRow)return this.moveNode(ti,ei);let ni,ri=new ii({column:this.column,float:this.float,nodes:this.nodes.map(ai=>ai._id===ti._id?(ni=Ui({},ai),ni):Ui({},ai))});if(!ni)return!1;let si=ri.moveNode(ni,ei)&&ri.getRow()<=Math.max(this.getRow(),this.maxRow);if(!si&&!ei.resizing&&ei.collide){let ai=ei.collide.el.gridstackNode;if(this.swap(ti,ai))return this._notify(),!0}return si?(ri.nodes.filter(ai=>ai._dirty).forEach(ai=>{let li=this.nodes.find(di=>di._id===ai._id);li&&(xi.copyPos(li,ai),li._dirty=!0)}),this._notify(),!0):!1}willItFit(ti){if(delete ti._willFitPos,!this.maxRow)return!0;let ei=new ii({column:this.column,float:this.float,nodes:this.nodes.map(ri=>Ui({},ri))}),ni=Ui({},ti);return this.cleanupNode(ni),delete ni.el,delete ni._id,delete ni.content,delete ni.grid,ei.addNode(ni),ei.getRow()<=this.maxRow?(ti._willFitPos=xi.copyPos({},ni),!0):!1}changedPosConstrain(ti,ei){return ei.w=ei.w||ti.w,ei.h=ei.h||ti.h,ti.x!==ei.x||ti.y!==ei.y?!0:(ti.maxW&&(ei.w=Math.min(ei.w,ti.maxW)),ti.maxH&&(ei.h=Math.min(ei.h,ti.maxH)),ti.minW&&(ei.w=Math.max(ei.w,ti.minW)),ti.minH&&(ei.h=Math.max(ei.h,ti.minH)),ti.w!==ei.w||ti.h!==ei.h)}moveNode(ti,ei){var mi,hi;if(!ti||!ei)return!1;let ni;ei.pack===void 0&&!this.batchMode&&(ni=ei.pack=!0),typeof ei.x!="number"&&(ei.x=ti.x),typeof ei.y!="number"&&(ei.y=ti.y),typeof ei.w!="number"&&(ei.w=ti.w),typeof ei.h!="number"&&(ei.h=ti.h);let ri=ti.w!==ei.w||ti.h!==ei.h,si=xi.copyPos({},ti,!0);if(xi.copyPos(si,ei),this.nodeBoundFix(si,ri),xi.copyPos(ei,si),!ei.forceCollide&&xi.samePos(ti,ei))return!1;let ai=xi.copyPos({},ti),li=this.collideAll(ti,si,ei.skip),di=!0;if(li.length){let _i=ti._moving&&!ei.nested,Ei=_i?this.directionCollideCoverage(ti,ei,li):li[0];if(_i&&Ei&&((hi=(mi=ti.grid)==null?void 0:mi.opts)!=null&&hi.subGridDynamic)&&!ti.grid._isTemp){let Ai=xi.areaIntercept(ei.rect,Ei._rect),ki=xi.area(ei.rect),Ti=xi.area(Ei._rect);Ai/(ki.8&&(Ei.grid.makeSubGrid(Ei.el,void 0,ti),Ei=void 0)}Ei?di=!this._fixCollisions(ti,si,Ei,ei):(di=!1,ni&&delete ei.pack)}return di&&(ti._dirty=!0,xi.copyPos(ti,si)),ei.pack&&this._packNodes()._notify(),!xi.samePos(ti,ai)}getRow(){return this.nodes.reduce((ti,ei)=>Math.max(ti,ei.y+ei.h),0)}beginUpdate(ti){return ti._updating||(ti._updating=!0,delete ti._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let ti=this.nodes.find(ei=>ei._updating);return ti&&(delete ti._updating,delete ti._skipDown),this}save(ti=!0,ei){var ai;let ni=(ai=this._layouts)==null?void 0:ai.length,ri=ni&&this.column!==ni-1?this._layouts[ni-1]:null,si=[];return this.sortNodes(),this.nodes.forEach(li=>{let di=ri==null?void 0:ri.find(hi=>hi._id===li._id),mi=Ui(Ui({},li),di||{});xi.removeInternalForSave(mi,!ti),ei&&ei(li,mi),si.push(mi)}),si}layoutsNodesChange(ti){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((ei,ni)=>{if(!ei||ni===this.column)return this;if(ni{if(!si._orig)return;let ai=ei.find(li=>li._id===si._id);ai&&(ai.y>=0&&si.y!==si._orig.y&&(ai.y+=si.y-si._orig.y),si.x!==si._orig.x&&(ai.x=Math.round(si.x*ri)),si.w!==si._orig.w&&(ai.w=Math.round(si.w*ri)))})}}),this)}columnChanged(ti,ei,ni="moveScale"){var li;if(!this.nodes.length||!ei||ti===ei)return this;if(ni==="none")return this;let ri=ni==="compact"||ni==="list";ri&&this.sortNodes(1),eiti&&this._layouts){let di=this._layouts[ei]||[],mi=this._layouts.length-1;!di.length&&ti!==mi&&((li=this._layouts[mi])!=null&&li.length)&&(ti=mi,this._layouts[mi].forEach(hi=>{var Ei,Ai,ki;let _i=ai.find(Ti=>Ti._id===hi._id);_i&&(!ri&&!hi.autoPosition&&(_i.x=(Ei=hi.x)!=null?Ei:_i.x,_i.y=(Ai=hi.y)!=null?Ai:_i.y),_i.w=(ki=hi.w)!=null?ki:_i.w,(hi.x==null||hi.y===void 0)&&(_i.autoPosition=!0))})),di.forEach(hi=>{var Ei,Ai,ki;let _i=ai.findIndex(Ti=>Ti._id===hi._id);if(_i!==-1){let Ti=ai[_i];if(ri){Ti.w=hi.w;return}(hi.autoPosition||isNaN(hi.x)||isNaN(hi.y))&&this.findEmptyPosition(hi,si),hi.autoPosition||(Ti.x=(Ei=hi.x)!=null?Ei:Ti.x,Ti.y=(Ai=hi.y)!=null?Ai:Ti.y,Ti.w=(ki=hi.w)!=null?ki:Ti.w,si.push(Ti)),ai.splice(_i,1)}})}if(ri)this.compact(ni,!1);else{if(ai.length)if(typeof ni=="function")ni(ei,ti,si,ai);else{let di=ri?1:ei/ti,mi=ni==="move"||ni==="moveScale",hi=ni==="scale"||ni==="moveScale";ai.forEach(_i=>{_i.x=ei===1?0:mi?Math.round(_i.x*di):Math.min(_i.x,ei-1),_i.w=ei===1||ti===1?1:hi?Math.round(_i.w*di)||1:Math.min(_i.w,ei),si.push(_i)}),ai=[]}si=xi.sort(si,-1),this._inColumnResize=!0,this.nodes=[],si.forEach(di=>{this.addNode(di,!1),delete di._orig})}return this.nodes.forEach(di=>delete di._orig),this.batchUpdate(!1,!ri),delete this._inColumnResize,this}cacheLayout(ti,ei,ni=!1){let ri=[];return ti.forEach((si,ai)=>{var li;if(si._id===void 0){let di=si.id?this.nodes.find(mi=>mi.id===si.id):void 0;si._id=(li=di==null?void 0:di._id)!=null?li:ii._idSeq++}ri[ai]={x:si.x,y:si.y,w:si.w,_id:si._id}}),this._layouts=ni?[]:this._layouts||[],this._layouts[ei]=ri,this}cacheOneLayout(ti,ei){var si;ti._id=(si=ti._id)!=null?si:ii._idSeq++;let ni={x:ti.x,y:ti.y,w:ti.w,_id:ti._id};(ti.autoPosition||ti.x===void 0)&&(delete ni.x,delete ni.y,ti.autoPosition&&(ni.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[ei]=this._layouts[ei]||[];let ri=this.findCacheLayout(ti,ei);return ri===-1?this._layouts[ei].push(ni):this._layouts[ei][ri]=ni,this}findCacheLayout(ti,ei){var ni,ri,si;return(si=(ri=(ni=this._layouts)==null?void 0:ni[ei])==null?void 0:ri.findIndex(ai=>ai._id===ti._id))!=null?si:-1}removeNodeFromLayoutCache(ti){if(this._layouts)for(let ei=0;ei0||navigator.msMaxTouchPoints>0),xs=class{};function zl(ii,ti){if(ii.touches.length>1)return;ii.cancelable&&ii.preventDefault();let ei=ii.changedTouches[0],ni=document.createEvent("MouseEvents");ni.initMouseEvent(ti,!0,!0,window,1,ei.screenX,ei.screenY,ei.clientX,ei.clientY,!1,!1,!1,!1,0,null),ii.target.dispatchEvent(ni)}function Kf(ii,ti){ii.cancelable&&ii.preventDefault();let ei=document.createEvent("MouseEvents");ei.initMouseEvent(ti,!0,!0,window,1,ii.screenX,ii.screenY,ii.clientX,ii.clientY,!1,!1,!1,!1,0,null),ii.target.dispatchEvent(ei)}function ca(ii){xs.touchHandled||(xs.touchHandled=!0,zl(ii,"mousedown"))}function ua(ii){xs.touchHandled&&zl(ii,"mousemove")}function da(ii){if(!xs.touchHandled)return;xs.pointerLeaveTimeout&&(window.clearTimeout(xs.pointerLeaveTimeout),delete xs.pointerLeaveTimeout);let ti=!!sn.dragElement;zl(ii,"mouseup"),ti||zl(ii,"click"),xs.touchHandled=!1}function fa(ii){ii.pointerType!=="mouse"&&ii.target.releasePointerCapture(ii.pointerId)}function au(ii){sn.dragElement&&ii.pointerType!=="mouse"&&Kf(ii,"mouseenter")}function lu(ii){sn.dragElement&&ii.pointerType!=="mouse"&&(xs.pointerLeaveTimeout=window.setTimeout(()=>{delete xs.pointerLeaveTimeout,Kf(ii,"mouseleave")},10))}var $a=class ii{constructor(ti,ei,ni){this.host=ti,this.dir=ei,this.option=ni,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){let ti=this.el=document.createElement("div");return ti.classList.add("ui-resizable-handle"),ti.classList.add(`${ii.prefix}${this.dir}`),ti.style.zIndex="100",ti.style.userSelect="none",this.host.appendChild(this.el),this.el.addEventListener("mousedown",this._mouseDown),ss&&(this.el.addEventListener("touchstart",ca),this.el.addEventListener("pointerdown",fa)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),ss&&(this.el.removeEventListener("touchstart",ca),this.el.removeEventListener("pointerdown",fa)),this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(ti){this.mouseDownEvent=ti,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),ss&&(this.el.addEventListener("touchmove",ua),this.el.addEventListener("touchend",da)),ti.stopPropagation(),ti.preventDefault()}_mouseMove(ti){let ei=this.mouseDownEvent;this.moving?this._triggerEvent("move",ti):Math.abs(ti.x-ei.x)+Math.abs(ti.y-ei.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",ti),document.addEventListener("keydown",this._keyEvent)),ti.stopPropagation()}_mouseUp(ti){this.moving&&(this._triggerEvent("stop",ti),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),ss&&(this.el.removeEventListener("touchmove",ua),this.el.removeEventListener("touchend",da)),delete this.moving,delete this.mouseDownEvent,ti.stopPropagation(),ti.preventDefault()}_keyEvent(ti){var ei,ni;ti.key==="Escape"&&((ni=(ei=this.host.gridstackNode)==null?void 0:ei.grid)==null||ni.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(ti,ei){return this.option[ti]&&this.option[ti](ei),this}};$a.prefix="ui-resizable-";var fo=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(ti,ei){this._eventRegister[ti]=ei}off(ti){delete this._eventRegister[ti]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(ti,ei){if(!this.disabled&&this._eventRegister&&this._eventRegister[ti])return this._eventRegister[ti](ei)}};var Ba=class ii extends fo{constructor(ti,ei={}){super(),this.el=ti,this.option=ei,this.rectScale={x:1,y:1},this._ui=()=>{let ri=this.el.parentElement.getBoundingClientRect(),si={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},ai=this.temporalRect||si;return{position:{left:(ai.left-ri.left)*this.rectScale.x,top:(ai.top-ri.top)*this.rectScale.y},size:{width:ai.width*this.rectScale.x,height:ai.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(ti,ei){super.on(ti,ei)}off(ti){super.off(ti)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(ti){let ei=ti.handles&&ti.handles!==this.option.handles,ni=ti.autoHide&&ti.autoHide!==this.option.autoHide;return Object.keys(ti).forEach(ri=>this.option[ri]=ti[ri]),ei&&(this._removeHandlers(),this._setupHandlers()),ni&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(ti){return ti?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),sn.overResizeElement===this&&delete sn.overResizeElement),this}_mouseOver(ti){sn.overResizeElement||sn.dragElement||(sn.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(ti){sn.overResizeElement===this&&(delete sn.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(ti=>ti.trim()).map(ti=>new $a(this.el,ti,{start:ei=>{this._resizeStart(ei)},stop:ei=>{this._resizeStop(ei)},move:ei=>{this._resizing(ei,ti)}})),this}_resizeStart(ti){this.sizeToContent=xi.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=xi.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=ti,this._setupHelper(),this._applyChange();let ei=xi.initEvent(ti,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(ei,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",ei),this}_resizing(ti,ei){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(ti,ei),this._applyChange();let ni=xi.initEvent(ti,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(ni,this._ui()),this.triggerEvent("resize",ni),this}_resizeStop(ti){let ei=xi.initEvent(ti,{type:"resizestop",target:this.el});return this.option.stop&&this.option.stop(ei),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",ei),this._cleanHelper(),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=ii._originStyleProp.map(ni=>this.el.style[ni]),this.parentOriginStylePosition=this.el.parentElement.style.position;let ti=this.el.parentElement,ei=xi.getValuesFromTransformedElement(ti);return this.rectScale={x:ei.xScale,y:ei.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return ii._originStyleProp.forEach((ti,ei)=>{this.el.style[ti]=this.elOriginStyleVal[ei]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(ti,ei){let ni=this.startEvent,ri={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},si=ti.clientX-ni.clientX,ai=this.sizeToContent?0:ti.clientY-ni.clientY,li,di;ei.indexOf("e")>-1?ri.width+=si:ei.indexOf("w")>-1&&(ri.width-=si,ri.left+=si,li=!0),ei.indexOf("s")>-1?ri.height+=ai:ei.indexOf("n")>-1&&(ri.height-=ai,ri.top+=ai,di=!0);let mi=this._constrainSize(ri.width,ri.height,li,di);return Math.round(ri.width)!==Math.round(mi.width)&&(ei.indexOf("w")>-1&&(ri.left+=ri.width-mi.width),ri.width=mi.width),Math.round(ri.height)!==Math.round(mi.height)&&(ei.indexOf("n")>-1&&(ri.top+=ri.height-mi.height),ri.height=mi.height),ri}_constrainSize(ti,ei,ni,ri){let si=this.option,ai=(ni?si.maxWidthMoveLeft:si.maxWidth)||Number.MAX_SAFE_INTEGER,li=si.minWidth/this.rectScale.x||ti,di=(ri?si.maxHeightMoveUp:si.maxHeight)||Number.MAX_SAFE_INTEGER,mi=si.minHeight/this.rectScale.y||ei,hi=Math.min(ai,Math.max(li,ti)),_i=Math.min(di,Math.max(mi,ei));return{width:hi,height:_i}}_applyChange(){let ti={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){let ei=this.el.parentElement,{left:ni,top:ri}=ei.getBoundingClientRect();ti={left:ni,top:ri,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(ei=>{let ni=this.temporalRect[ei],ri=ei==="width"||ei==="left"?this.rectScale.x:ei==="height"||ei==="top"?this.rectScale.y:1;this.el.style[ei]=(ni-ti[ei])*ri+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(ti=>ti.destroy()),delete this.handlers,this}};Ba._originStyleProp=["width","height","position","left","top","opacity","zIndex"];var Vy='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle',za=class ii extends fo{constructor(ti,ei={}){super(),this.el=ti,this.option=ei,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};let ni=ei.handle.substring(1),ri=ti.gridstackNode;this.dragEls=ti.classList.contains(ni)?[ti]:ri!=null&&ri.subGrid?[ti.querySelector(ei.handle)||ti]:Array.from(ti.querySelectorAll(ei.handle)),this.dragEls.length===0&&(this.dragEls=[ti]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(ti,ei){super.on(ti,ei)}off(ti){super.off(ti)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(ti=>{ti.addEventListener("mousedown",this._mouseDown),ss&&(ti.addEventListener("touchstart",ca),ti.addEventListener("pointerdown",fa))}),this.el.classList.remove("ui-draggable-disabled"))}disable(ti=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(ei=>{ei.removeEventListener("mousedown",this._mouseDown),ss&&(ei.removeEventListener("touchstart",ca),ei.removeEventListener("pointerdown",fa))}),ti||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(ti){return Object.keys(ti).forEach(ei=>this.option[ei]=ti[ei]),this}_mouseDown(ti){if(!sn.mouseHandled)return ti.button!==0||!this.dragEls.find(ei=>ei===ti.target)&&ti.target.closest(Vy)||this.option.cancel&&ti.target.closest(this.option.cancel)||(this.mouseDownEvent=ti,delete this.dragging,delete sn.dragElement,delete sn.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),ss&&(ti.target.addEventListener("touchmove",ua),ti.target.addEventListener("touchend",da)),ti.preventDefault(),document.activeElement&&document.activeElement.blur(),sn.mouseHandled=!0),!0}_callDrag(ti){if(!this.dragging)return;let ei=xi.initEvent(ti,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(ei,this.ui()),this.triggerEvent("drag",ei)}_mouseMove(ti){var ni;let ei=this.mouseDownEvent;if(this.lastDrag=ti,this.dragging)if(this._dragFollow(ti),sn.pauseDrag){let ri=Number.isInteger(sn.pauseDrag)?sn.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(ti),ri)}else this._callDrag(ti);else if(Math.abs(ti.x-ei.x)+Math.abs(ti.y-ei.y)>3){this.dragging=!0,sn.dragElement=this;let ri=(ni=this.el.gridstackNode)==null?void 0:ni.grid;ri?sn.dropElement=ri.el.ddElement.ddDroppable:delete sn.dropElement,this.helper=this._createHelper(ti),this._setupHelperContainmentStyle(),this.dragTransform=xi.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(ti,this.el,this.helperContainment),this._setupHelperStyle(ti);let si=xi.initEvent(ti,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(si,this.ui()),this.triggerEvent("dragstart",si),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(ti){var ei,ni;if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),ss&&(ti.target.removeEventListener("touchmove",ua,!0),ti.target.removeEventListener("touchend",da,!0)),this.dragging){delete this.dragging,(ei=this.el.gridstackNode)==null||delete ei._origRotate,document.removeEventListener("keydown",this._keyEvent),((ni=sn.dropElement)==null?void 0:ni.el)===this.el.parentElement&&delete sn.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper===this.el?this._removeHelperStyle():this.helper.remove();let ri=xi.initEvent(ti,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(ri),this.triggerEvent("dragstop",ri),sn.dropElement&&sn.dropElement.drop(ti)}delete this.helper,delete this.mouseDownEvent,delete sn.dragElement,delete sn.dropElement,delete sn.mouseHandled,ti.preventDefault()}_keyEvent(ti){let ei=this.el.gridstackNode;if(!(ei!=null&&ei.grid))return;let ni=ei.grid;if(ti.key==="Escape")ei._origRotate&&(ei._orig=ei._origRotate,delete ei._origRotate),ni.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent);else if(ti.key==="r"||ti.key==="R"){if(!xi.canBeRotated(ei))return;ei._origRotate=ei._origRotate||Ui({},ei._orig),delete ei._moving,ni.setAnimation(!1).rotate(ei.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),ei._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,ei.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",xi.swap(ei._orig,"w","h"),delete ei._rect,this._mouseMove(this.lastDrag)}}_createHelper(ti){let ei=this.el;return typeof this.option.helper=="function"?ei=this.option.helper(ti):this.option.helper==="clone"&&(ei=xi.cloneNode(this.el)),document.body.contains(ei)||xi.appendTo(ei,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),ei===this.el&&(this.dragElementOriginStyle=ii.originStyleProp.map(ni=>this.el.style[ni])),ei}_setupHelperStyle(ti){this.helper.classList.add("ui-draggable-dragging");let ei=this.helper.style;return ei.pointerEvents="none",ei.width=this.dragOffset.width+"px",ei.height=this.dragOffset.height+"px",ei.willChange="left, top",ei.position="fixed",this._dragFollow(ti),ei.transition="none",setTimeout(()=>{this.helper&&(ei.transition=null)},0),this}_removeHelperStyle(){var ei;this.helper.classList.remove("ui-draggable-dragging");let ti=(ei=this.helper)==null?void 0:ei.gridstackNode;if(!(ti!=null&&ti._isAboutToRemove)&&this.dragElementOriginStyle){let ni=this.helper,ri=this.dragElementOriginStyle.transition||null;ni.style.transition=this.dragElementOriginStyle.transition="none",ii.originStyleProp.forEach(si=>ni.style[si]=this.dragElementOriginStyle[si]||null),setTimeout(()=>ni.style.transition=ri,50)}return delete this.dragElementOriginStyle,this}_dragFollow(ti){let ei={left:0,top:0},ni=this.helper.style,ri=this.dragOffset;ni.left=(ti.clientX+ri.offsetLeft-ei.left)*this.dragTransform.xScale+"px",ni.top=(ti.clientY+ri.offsetTop-ei.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(ti,ei,ni){let ri=0,si=0;ni&&(ri=this.dragTransform.xOffset,si=this.dragTransform.yOffset);let ai=ei.getBoundingClientRect();return{left:ai.left,top:ai.top,offsetLeft:-ti.clientX+ai.left-ri,offsetTop:-ti.clientY+ai.top-si,width:ai.width*this.dragTransform.xScale,height:ai.height*this.dragTransform.yScale}}ui(){let ei=this.el.parentElement.getBoundingClientRect(),ni=this.helper.getBoundingClientRect();return{position:{top:(ni.top-ei.top)*this.dragTransform.yScale,left:(ni.left-ei.left)*this.dragTransform.xScale}}}};za.originStyleProp=["transition","pointerEvents","position","left","top","minWidth","willChange"];var jl=class extends fo{constructor(ti,ei={}){super(),this.el=ti,this.option=ei,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(ti,ei){super.on(ti,ei)}off(ti){super.off(ti)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),ss&&(this.el.addEventListener("pointerenter",au),this.el.addEventListener("pointerleave",lu)))}disable(ti=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),ti||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),ss&&(this.el.removeEventListener("pointerenter",au),this.el.removeEventListener("pointerleave",lu)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(ti){return Object.keys(ti).forEach(ei=>this.option[ei]=ti[ei]),this._setupAccept(),this}_mouseEnter(ti){if(!sn.dragElement||!this._canDrop(sn.dragElement.el))return;ti.preventDefault(),ti.stopPropagation(),sn.dropElement&&sn.dropElement!==this&&sn.dropElement._mouseLeave(ti,!0),sn.dropElement=this;let ei=xi.initEvent(ti,{target:this.el,type:"dropover"});this.option.over&&this.option.over(ei,this._ui(sn.dragElement)),this.triggerEvent("dropover",ei),this.el.classList.add("ui-droppable-over")}_mouseLeave(ti,ei=!1){var ri;if(!sn.dragElement||sn.dropElement!==this)return;ti.preventDefault(),ti.stopPropagation();let ni=xi.initEvent(ti,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(ni,this._ui(sn.dragElement)),this.triggerEvent("dropout",ni),sn.dropElement===this&&(delete sn.dropElement,!ei)){let si,ai=this.el.parentElement;for(;!si&&ai;)si=(ri=ai.ddElement)==null?void 0:ri.ddDroppable,ai=ai.parentElement;si&&si._mouseEnter(ti)}}drop(ti){ti.preventDefault();let ei=xi.initEvent(ti,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(ei,this._ui(sn.dragElement)),this.triggerEvent("drop",ei)}_canDrop(ti){return ti&&(!this.accept||this.accept(ti))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=ti=>ti.classList.contains(this.option.accept)||ti.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(ti){return Ui({draggable:ti.el},ti.ui())}};var Vl=class ii{static init(ti){return ti.ddElement||(ti.ddElement=new ii(ti)),ti.ddElement}constructor(ti){this.el=ti}on(ti,ei){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(ti)>-1?this.ddDraggable.on(ti,ei):this.ddDroppable&&["drop","dropover","dropout"].indexOf(ti)>-1?this.ddDroppable.on(ti,ei):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(ti)>-1&&this.ddResizable.on(ti,ei),this}off(ti){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(ti)>-1?this.ddDraggable.off(ti):this.ddDroppable&&["drop","dropover","dropout"].indexOf(ti)>-1?this.ddDroppable.off(ti):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(ti)>-1&&this.ddResizable.off(ti),this}setupDraggable(ti){return this.ddDraggable?this.ddDraggable.updateOption(ti):this.ddDraggable=new za(this.el,ti),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(ti){return this.ddResizable?this.ddResizable.updateOption(ti):this.ddResizable=new Ba(this.el,ti),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(ti){return this.ddDroppable?this.ddDroppable.updateOption(ti):this.ddDroppable=new jl(this.el,ti),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}};var ql=class{resizable(ti,ei,ni,ri){return this._getDDElements(ti).forEach(si=>{if(ei==="disable"||ei==="enable")si.ddResizable&&si.ddResizable[ei]();else if(ei==="destroy")si.ddResizable&&si.cleanResizable();else if(ei==="option")si.setupResizable({[ni]:ri});else{let li=si.el.gridstackNode.grid,di=si.el.getAttribute("gs-resize-handles")||li.opts.resizable.handles||"e,s,se";di==="all"&&(di="n,e,s,w,se,sw,ne,nw");let mi=!li.opts.alwaysShowResizeHandle;si.setupResizable(Hn(Ui({},li.opts.resizable),{handles:di,autoHide:mi,start:ei.start,stop:ei.stop,resize:ei.resize}))}}),this}draggable(ti,ei,ni,ri){return this._getDDElements(ti).forEach(si=>{if(ei==="disable"||ei==="enable")si.ddDraggable&&si.ddDraggable[ei]();else if(ei==="destroy")si.ddDraggable&&si.cleanDraggable();else if(ei==="option")si.setupDraggable({[ni]:ri});else{let ai=si.el.gridstackNode.grid;si.setupDraggable(Hn(Ui({},ai.opts.draggable),{start:ei.start,stop:ei.stop,drag:ei.drag}))}}),this}dragIn(ti,ei){return this._getDDElements(ti).forEach(ni=>ni.setupDraggable(ei)),this}droppable(ti,ei,ni,ri){return typeof ei.accept=="function"&&!ei._accept&&(ei._accept=ei.accept,ei.accept=si=>ei._accept(si)),this._getDDElements(ti).forEach(si=>{ei==="disable"||ei==="enable"?si.ddDroppable&&si.ddDroppable[ei]():ei==="destroy"?si.ddDroppable&&si.cleanDroppable():ei==="option"?si.setupDroppable({[ni]:ri}):si.setupDroppable(ei)}),this}isDroppable(ti){return!!(ti&&ti.ddElement&&ti.ddElement.ddDroppable&&!ti.ddElement.ddDroppable.disabled)}isDraggable(ti){return!!(ti&&ti.ddElement&&ti.ddElement.ddDraggable&&!ti.ddElement.ddDraggable.disabled)}isResizable(ti){return!!(ti&&ti.ddElement&&ti.ddElement.ddResizable&&!ti.ddElement.ddResizable.disabled)}on(ti,ei,ni){return this._getDDElements(ti).forEach(ri=>ri.on(ei,si=>{ni(si,sn.dragElement?sn.dragElement.el:si.target,sn.dragElement?sn.dragElement.helper:null)})),this}off(ti,ei){return this._getDDElements(ti).forEach(ni=>ni.off(ei)),this}_getDDElements(ti,ei=!0){let ni=xi.getElements(ti);if(!ni.length)return[];let ri=ni.map(si=>si.ddElement||(ei?Vl.init(si):null));return ei||ri.filter(si=>si),ri}};var os=new ql,ho=class ii{static init(ti={},ei=".grid-stack"){if(typeof document=="undefined")return null;let ni=ii.getGridElement(ei);return ni?(ni.gridstack||(ni.gridstack=new ii(ni,xi.cloneDeep(ti))),ni.gridstack):(console.error(typeof ei=="string"?'GridStack.initAll() no grid was found with selector "'+ei+`" - element missing or wrong selector ?
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`:"GridStack.init() no grid element was passed."),null)}static initAll(ti={},ei=".grid-stack"){let ni=[];return typeof document=="undefined"||(ii.getGridElements(ei).forEach(ri=>{ri.gridstack||(ri.gridstack=new ii(ri,xi.cloneDeep(ti))),ni.push(ri.gridstack)}),ni.length===0&&console.error('GridStack.initAll() no grid was found with selector "'+ei+`" - element missing or wrong selector ?
-Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),ni}static addGrid(ti,ei={}){if(!ti)return null;let ni=ti;if(ni.gridstack){let ai=ni.gridstack;return ei&&(ai.opts=Ui(Ui({},ai.opts),ei)),ei.children!==void 0&&ai.load(ei.children),ai}if(!ti.classList.contains("grid-stack")||ii.addRemoveCB)if(ii.addRemoveCB)ni=ii.addRemoveCB(ti,ei,!0,!0);else{let ai=document.implementation.createHTMLDocument("");ai.body.innerHTML=`
`,ni=ai.body.children[0],ti.appendChild(ni)}return ii.init(ei,ni)}static registerEngine(ti){ii.engineClass=ti}get placeholder(){if(!this._placeholder){let ti=document.createElement("div");ti.className="placeholder-content",this.opts.placeholderText&&(ti.innerHTML=this.opts.placeholderText),this._placeholder=document.createElement("div"),this._placeholder.classList.add(this.opts.placeholderClass,fs.itemClass,this.opts.itemClass),this.placeholder.appendChild(ti)}return this._placeholder}constructor(ti,ei={}){var _i,Ei,Ai,ki;this.el=ti,this.opts=ei,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},ti.gridstack=this,ei=ei||{},ti.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),ei.row&&(ei.minRow=ei.maxRow=ei.row,delete ei.row);let ni=xi.toNumber(ti.getAttribute("gs-row"));ei.column==="auto"&&delete ei.column,ei.alwaysShowResizeHandle!==void 0&&(ei._alwaysShowResizeHandle=ei.alwaysShowResizeHandle);let ri=(_i=ei.columnOpts)==null?void 0:_i.breakpoints,si=ei;if(si.oneColumnModeDomSort&&(delete si.oneColumnModeDomSort,console.log("warning: Gridstack oneColumnModeDomSort no longer supported. Use GridStackOptions.columnOpts instead.")),si.oneColumnSize||si.disableOneColumnMode===!1){let Ti=si.oneColumnSize||768;delete si.oneColumnSize,delete si.disableOneColumnMode,ei.columnOpts=ei.columnOpts||{},ri=ei.columnOpts.breakpoints=ei.columnOpts.breakpoints||[];let Fi=ri.find(en=>en.c===1);Fi?Fi.w=Ti:(Fi={c:1,w:Ti},ri.push(Fi,{c:12,w:Ti+1}))}let ai=ei.columnOpts;ai&&(!ai.columnWidth&&!((Ei=ai.breakpoints)!=null&&Ei.length)?(delete ei.columnOpts,ri=void 0):ai.columnMax=ai.columnMax||12),(ri==null?void 0:ri.length)>1&&ri.sort((Ti,Fi)=>(Fi.w||0)-(Ti.w||0));let li=Hn(Ui({},xi.cloneDeep(fs)),{column:xi.toNumber(ti.getAttribute("gs-column"))||fs.column,minRow:ni||xi.toNumber(ti.getAttribute("gs-min-row"))||fs.minRow,maxRow:ni||xi.toNumber(ti.getAttribute("gs-max-row"))||fs.maxRow,staticGrid:xi.toBool(ti.getAttribute("gs-static"))||fs.staticGrid,draggable:{handle:(ei.handleClass?"."+ei.handleClass:ei.handle?ei.handle:"")||fs.draggable.handle},removableOptions:{accept:ei.itemClass||fs.removableOptions.accept,decline:fs.removableOptions.decline}});ti.getAttribute("gs-animate")&&(li.animate=xi.toBool(ti.getAttribute("gs-animate"))),ei=xi.defaults(ei,li),this._initMargin(),this.checkDynamicColumn(),this.el.classList.add("gs-"+ei.column),ei.rtl==="auto"&&(ei.rtl=ti.style.direction==="rtl"),ei.rtl&&this.el.classList.add("grid-stack-rtl");let di=(Ai=this.el.parentElement)==null?void 0:Ai.parentElement,mi=di!=null&&di.classList.contains(fs.itemClass)?di.gridstackNode:void 0;mi&&(mi.subGrid=this,this.parentGridItem=mi,this.el.classList.add("grid-stack-nested"),mi.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=ei.cellHeight==="auto",this._isAutoCellHeight||ei.cellHeight==="initial"?this.cellHeight(void 0,!1):(typeof ei.cellHeight=="number"&&ei.cellHeightUnit&&ei.cellHeightUnit!==fs.cellHeightUnit&&(ei.cellHeight=ei.cellHeight+ei.cellHeightUnit,delete ei.cellHeightUnit),this.cellHeight(ei.cellHeight,!1)),ei.alwaysShowResizeHandle==="mobile"&&(ei.alwaysShowResizeHandle=ss),this._styleSheetClass="gs-id-"+Io._idSeq++,this.el.classList.add(this._styleSheetClass),this._setStaticClass();let hi=ei.engineClass||ii.engineClass||Io;if(this.engine=new hi({column:this.getColumn(),float:ei.float,maxRow:ei.maxRow,onChange:Ti=>{let Fi=0;this.engine.nodes.forEach(en=>{Fi=Math.max(Fi,en.y+en.h)}),Ti.forEach(en=>{let rn=en.el;rn&&(en._removeDOM?(rn&&rn.remove(),delete en._removeDOM):this._writePosAttr(rn,en))}),this._updateStyles(!1,Fi)}}),this._updateStyles(!1,0),ei.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(Ti=>this._prepareElement(Ti)),delete this.engine._loading,this.batchUpdate(!1)),ei.children){let Ti=ei.children;delete ei.children,Ti.length&&this.load(Ti)}this.setAnimation(),ei.subGridDynamic&&!sn.pauseDrag&&(sn.pauseDrag=!0),((ki=ei.draggable)==null?void 0:ki.pause)!==void 0&&(sn.pauseDrag=ei.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}addWidget(ti,ei){function ni(li){return li.el!==void 0||li.x!==void 0||li.y!==void 0||li.w!==void 0||li.h!==void 0||li.content!==void 0}let ri,si;if(typeof ti=="string"){let li=document.implementation.createHTMLDocument("");li.body.innerHTML=ti,ri=li.body.children[0]}else if(arguments.length===0||arguments.length===1&&ni(ti))if(si=ei=ti,si!=null&&si.el)ri=si.el;else if(ii.addRemoveCB)ri=ii.addRemoveCB(this.el,ei,!0,!1);else{let li=(ei==null?void 0:ei.content)||"",di=document.implementation.createHTMLDocument("");di.body.innerHTML=``,ri=di.body.children[0]}else ri=ti;if(!ri)return;if(si=ri.gridstackNode,si&&ri.parentElement===this.el&&this.engine.nodes.find(li=>li._id===si._id))return ri;let ai=this._readAttr(ri);return ei=xi.cloneDeep(ei)||{},xi.defaults(ei,ai),si=this.engine.prepareNode(ei),this._writeAttr(ri,ei),this.el.appendChild(ri),this.makeWidget(ri,ei),ri}makeSubGrid(ti,ei,ni,ri=!0){var Ai,ki,Ti;let si=ti.gridstackNode;if(si||(si=this.makeWidget(ti).gridstackNode),(Ai=si.subGrid)!=null&&Ai.el)return si.subGrid;let ai,li=this;for(;li&&!ai;)ai=(ki=li.opts)==null?void 0:ki.subGridOpts,li=(Ti=li.parentGridItem)==null?void 0:Ti.grid;ei=xi.cloneDeep(Ui(Hn(Ui({},ai||{}),{children:void 0}),ei||si.subGridOpts||{})),si.subGridOpts=ei;let di;ei.column==="auto"&&(di=!0,ei.column=Math.max(si.w||1,(ni==null?void 0:ni.w)||1),delete ei.columnOpts);let mi=si.el.querySelector(".grid-stack-item-content"),hi,_i;if(ri){if(this._removeDD(si.el),_i=Hn(Ui({},si),{x:0,y:0}),xi.removeInternalForSave(_i),delete _i.subGridOpts,si.content&&(_i.content=si.content,delete si.content),ii.addRemoveCB)hi=ii.addRemoveCB(this.el,_i,!0,!1);else{let Fi=document.implementation.createHTMLDocument("");Fi.body.innerHTML='
',hi=Fi.body.children[0],hi.appendChild(mi),Fi.body.innerHTML='
',mi=Fi.body.children[0],si.el.appendChild(mi)}this._prepareDragDropByNode(si)}if(ni){let Fi=di?ei.column:si.w,en=si.h+ni.h,rn=si.el.style;rn.transition="none",this.update(si.el,{w:Fi,h:en}),setTimeout(()=>rn.transition=null)}let Ei=si.subGrid=ii.addGrid(mi,ei);return ni!=null&&ni._moving&&(Ei._isTemp=!0),di&&(Ei._autoColumn=!0),ri&&Ei.addWidget(hi,_i),ni&&(ni._moving?window.setTimeout(()=>xi.simulateMouseEvent(ni._event,"mouseenter",Ei.el),0):Ei.addWidget(si.el,si)),Ei}removeAsSubGrid(ti){var ni;let ei=(ni=this.parentGridItem)==null?void 0:ni.grid;ei&&(ei.batchUpdate(),ei.removeWidget(this.parentGridItem.el,!0,!0),this.engine.nodes.forEach(ri=>{ri.x+=this.parentGridItem.x,ri.y+=this.parentGridItem.y,ei.addWidget(ri.el,ri)}),ei.batchUpdate(!1),this.parentGridItem&&delete this.parentGridItem.subGrid,delete this.parentGridItem,ti&&window.setTimeout(()=>xi.simulateMouseEvent(ti._event,"mouseenter",ei.el),0))}save(ti=!0,ei=!1,ni=ii.saveCB){let ri=this.engine.save(ti,ni);if(ri.forEach(si=>{var ai;if(ti&&si.el&&!si.subGrid&&!ni){let li=si.el.querySelector(".grid-stack-item-content");si.content=li?li.innerHTML:void 0,si.content||delete si.content}else if(!ti&&!ni&&delete si.content,(ai=si.subGrid)!=null&&ai.el){let li=si.subGrid.save(ti,ei,ni);si.subGridOpts=ei?li:{children:li},delete si.subGrid}delete si.el}),ei){let si=xi.cloneDeep(this.opts);si.marginBottom===si.marginTop&&si.marginRight===si.marginLeft&&si.marginTop===si.marginRight&&(si.margin=si.marginTop,delete si.marginTop,delete si.marginRight,delete si.marginBottom,delete si.marginLeft),si.rtl===(this.el.style.direction==="rtl")&&(si.rtl="auto"),this._isAutoCellHeight&&(si.cellHeight="auto"),this._autoColumn&&(si.column="auto");let ai=si._alwaysShowResizeHandle;return delete si._alwaysShowResizeHandle,ai!==void 0?si.alwaysShowResizeHandle=ai:delete si.alwaysShowResizeHandle,xi.removeInternalAndSame(si,fs),si.children=ri,si}return ri}load(ti,ei=ii.addRemoveCB||!0){var mi;ti=xi.cloneDeep(ti);let ni=this.getColumn();ti.forEach(hi=>{hi.w=hi.w||1,hi.h=hi.h||1}),ti=xi.sort(ti);let ri=0;ti.forEach(hi=>{ri=Math.max(ri,(hi.x||0)+hi.w)}),ri>ni&&(this._ignoreLayoutsNodeChange=!0,this.engine.cacheLayout(ti,ri,!0));let si=ii.addRemoveCB;typeof ei=="function"&&(ii.addRemoveCB=ei);let ai=[];this.batchUpdate();let li=!this.engine.nodes.length;li&&this.setAnimation(!1),!li&&ei&&[...this.engine.nodes].forEach(_i=>{if(!_i.id)return;xi.find(ti,_i.id)||(ii.addRemoveCB&&ii.addRemoveCB(this.el,_i,!1,!1),ai.push(_i),this.removeWidget(_i.el,!0,!1))}),this.engine._loading=!0;let di=[];return this.engine.nodes=this.engine.nodes.filter(hi=>xi.find(ti,hi.id)?(di.push(hi),!1):!0),ti.forEach(hi=>{var Ei;let _i=xi.find(di,hi.id);if(_i){if(xi.shouldSizeToContent(_i)&&(hi.h=_i.h),this.engine.nodeBoundFix(hi),(hi.autoPosition||hi.x===void 0||hi.y===void 0)&&(hi.w=hi.w||_i.w,hi.h=hi.h||_i.h,this.engine.findEmptyPosition(hi)),this.engine.nodes.push(_i),xi.samePos(_i,hi)&&this.moveNode(_i,Hn(Ui({},hi),{forceCollide:!0})),this.update(_i.el,hi),(Ei=hi.subGridOpts)!=null&&Ei.children){let Ai=_i.el.querySelector(".grid-stack");Ai&&Ai.gridstack&&Ai.gridstack.load(hi.subGridOpts.children)}}else ei&&this.addWidget(hi)}),delete this.engine._loading,this.engine.removedNodes=ai,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,si?ii.addRemoveCB=si:delete ii.addRemoveCB,li&&((mi=this.opts)!=null&&mi.animate)&&this.setAnimation(this.opts.animate,!0),this}batchUpdate(ti=!0){return this.engine.batchUpdate(ti),ti||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(ti=!1){if(this.opts.cellHeight&&this.opts.cellHeight!=="auto"&&(!ti||!this.opts.cellHeightUnit||this.opts.cellHeightUnit==="px"))return this.opts.cellHeight;if(this.opts.cellHeightUnit==="rem")return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit==="em")return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit==="cm")return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit==="mm")return this.opts.cellHeight*(96/2.54)/10;let ei=this.el.querySelector("."+this.opts.itemClass);if(ei){let ri=xi.toNumber(ei.getAttribute("gs-h"))||1;return Math.round(ei.offsetHeight/ri)}let ni=parseInt(this.el.getAttribute("gs-current-row"));return ni?Math.round(this.el.getBoundingClientRect().height/ni):this.opts.cellHeight}cellHeight(ti,ei=!0){if(ei&&ti!==void 0&&this._isAutoCellHeight!==(ti==="auto")&&(this._isAutoCellHeight=ti==="auto",this._updateResizeEvent()),(ti==="initial"||ti==="auto")&&(ti=void 0),ti===void 0){let ri=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;ti=this.cellWidth()+ri}let ni=xi.parseHeight(ti);return this.opts.cellHeightUnit===ni.unit&&this.opts.cellHeight===ni.h?this:(this.opts.cellHeightUnit=ni.unit,this.opts.cellHeight=ni.h,this.resizeToContentCheck(),ei&&this._updateStyles(!0),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(ti=!1){var ei;return ti&&((ei=this.opts.columnOpts)!=null&&ei.breakpointForWindow)?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){var si,ai;let ti=this.opts.columnOpts;if(!ti||!ti.columnWidth&&!((si=ti.breakpoints)!=null&&si.length))return!1;let ei=this.getColumn(),ni=ei,ri=this._widthOrContainer(!0);if(ti.columnWidth)ni=Math.min(Math.round(ri/ti.columnWidth)||1,ti.columnMax);else{ni=ti.columnMax;let li=0;for(;lidi.c===ni);return this.column(ni,(li==null?void 0:li.layout)||ti.layout),!0}return!1}compact(ti="compact",ei=!0){return this.engine.compact(ti,ei),this._triggerChangeEvent(),this}column(ti,ei="moveScale"){if(!ti||ti<1||this.opts.column===ti)return this;let ni=this.getColumn();return this.opts.column=ti,this.engine?(this.engine.column=ti,this.el.classList.remove("gs-"+ni),this.el.classList.add("gs-"+ti),this.engine.columnChanged(ni,ti,ei),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):this}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(ti=>ti.matches("."+this.opts.itemClass)&&!ti.matches("."+this.opts.placeholderClass))}destroy(ti=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),ti?this.el.parentNode.removeChild(this.el):(this.removeAll(ti),this.el.classList.remove(this._styleSheetClass),this.el.removeAttribute("gs-current-row")),this._removeStylesheet(),this.parentGridItem&&delete this.parentGridItem.subGrid,delete this.parentGridItem,delete this.opts,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(ti){return this.opts.float!==ti&&(this.opts.float=this.engine.float=ti,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(ti,ei=!1){let ni=this.el.getBoundingClientRect(),ri;ei?ri={top:ni.top+document.documentElement.scrollTop,left:ni.left}:ri={top:this.el.offsetTop,left:this.el.offsetLeft};let si=ti.left-ri.left,ai=ti.top-ri.top,li=ni.width/this.getColumn(),di=ni.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(si/li),y:Math.floor(ai/di)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow)}isAreaEmpty(ti,ei,ni,ri){return this.engine.isAreaEmpty(ti,ei,ni,ri)}makeWidget(ti,ei){let ni=ii.getElement(ti);this._prepareElement(ni,!0,ei);let ri=ni.gridstackNode;return this._updateContainerHeight(),ri.subGridOpts&&this.makeSubGrid(ni,ri.subGridOpts,void 0,!1),this.opts.column===1&&(this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,ni}on(ti,ei){return ti.indexOf(" ")!==-1?(ti.split(" ").forEach(ri=>this.on(ri,ei)),this):(ti==="change"||ti==="added"||ti==="removed"||ti==="enable"||ti==="disable"?(ti==="enable"||ti==="disable"?this._gsEventHandler[ti]=ri=>ei(ri):this._gsEventHandler[ti]=ri=>ei(ri,ri.detail),this.el.addEventListener(ti,this._gsEventHandler[ti])):ti==="drag"||ti==="dragstart"||ti==="dragstop"||ti==="resizestart"||ti==="resize"||ti==="resizestop"||ti==="dropped"||ti==="resizecontent"?this._gsEventHandler[ti]=ei:console.error("GridStack.on("+ti+") event not supported"),this)}off(ti){return ti.indexOf(" ")!==-1?(ti.split(" ").forEach(ni=>this.off(ni)),this):((ti==="change"||ti==="added"||ti==="removed"||ti==="enable"||ti==="disable")&&this._gsEventHandler[ti]&&this.el.removeEventListener(ti,this._gsEventHandler[ti]),delete this._gsEventHandler[ti],this)}offAll(){return Object.keys(this._gsEventHandler).forEach(ti=>this.off(ti)),this}removeWidget(ti,ei=!0,ni=!0){return ii.getElements(ti).forEach(ri=>{if(ri.parentElement&&ri.parentElement!==this.el)return;let si=ri.gridstackNode;si||(si=this.engine.nodes.find(ai=>ri===ai.el)),si&&(ei&&ii.addRemoveCB&&ii.addRemoveCB(this.el,si,!1,!1),delete ri.gridstackNode,this._removeDD(ri),this.engine.removeNode(si,ei,ni),ei&&ri.parentElement&&ri.remove())}),ni&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this}removeAll(ti=!0,ei=!0){return this.engine.nodes.forEach(ni=>{ti&&ii.addRemoveCB&&ii.addRemoveCB(this.el,ni,!1,!1),delete ni.el.gridstackNode,this.opts.staticGrid||this._removeDD(ni.el)}),this.engine.removeAll(ti,ei),ei&&this._triggerRemoveEvent(),this}setAnimation(ti=this.opts.animate,ei){return ei?setTimeout(()=>{this.opts&&this.setAnimation(ti)}):ti?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(ti,ei=!0,ni=!0){return!!this.opts.staticGrid===ti?this:(ti?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(ri=>{this._prepareDragDropByNode(ri),ri.subGrid&&ni&&ri.subGrid.setStatic(ti,ei,ni)}),ei&&this._setStaticClass(),this)}update(ti,ei){if(arguments.length>2){console.warn("gridstack.ts: `update(el, x, y, w, h)` is deprecated. Use `update(el, {x, w, content, ...})`. It will be removed soon");let ni=arguments,ri=1;return ei={x:ni[ri++],y:ni[ri++],w:ni[ri++],h:ni[ri++]},this.update(ti,ei)}return ii.getElements(ti).forEach(ni=>{var hi;let ri=ni==null?void 0:ni.gridstackNode;if(!ri)return;let si=xi.cloneDeep(ei);this.engine.nodeBoundFix(si),delete si.autoPosition,delete si.id;let ai=["x","y","w","h"],li;if(ai.some(_i=>si[_i]!==void 0&&si[_i]!==ri[_i])&&(li={},ai.forEach(_i=>{li[_i]=si[_i]!==void 0?si[_i]:ri[_i],delete si[_i]})),!li&&(si.minW||si.minH||si.maxW||si.maxH)&&(li={}),si.content!==void 0){let _i=ni.querySelector(".grid-stack-item-content");_i&&_i.innerHTML!==si.content&&(_i.innerHTML=si.content,(hi=ri.subGrid)!=null&&hi.el&&(_i.appendChild(ri.subGrid.el),ri.subGrid.opts.styleInHead||ri.subGrid._updateStyles(!0))),delete si.content}let di=!1,mi=!1;for(let _i in si)_i[0]!=="_"&&ri[_i]!==si[_i]&&(ri[_i]=si[_i],di=!0,mi=mi||!this.opts.staticGrid&&(_i==="noResize"||_i==="noMove"||_i==="locked"));if(xi.sanitizeMinMax(ri),li){let _i=li.w!==void 0&&li.w!==ri.w;this.moveNode(ri,li),this.resizeToContentCheck(_i,ri),delete ri._orig}(li||di)&&this._writeAttr(ni,ri),mi&&this._prepareDragDropByNode(ri)}),this}moveNode(ti,ei){let ni=ti._updating;ni||this.engine.cleanNodes().beginUpdate(ti),this.engine.moveNode(ti,ei),this._updateContainerHeight(),ni||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(ti){var Ei,Ai;if(!ti||(ti.classList.remove("size-to-content-max"),!ti.clientHeight))return;let ei=ti.gridstackNode;if(!ei)return;let ni=ei.grid;if(!ni||ti.parentElement!==ni.el)return;let ri=ni.getCellHeight(!0);if(!ri)return;let si=ei.h?ei.h*ri:ti.clientHeight,ai;if(ei.resizeToContentParent&&(ai=ti.querySelector(ei.resizeToContentParent)),ai||(ai=ti.querySelector(ii.resizeToContentParent)),!ai)return;let li=ti.clientHeight-ai.clientHeight,di=ei.h?ei.h*ri-li:ai.clientHeight,mi;if(ei.subGrid)mi=ei.subGrid.getRow()*ei.subGrid.getCellHeight(!0);else{if((Ai=(Ei=ei.subGridOpts)==null?void 0:Ei.children)!=null&&Ai.length)return;{let ki=ai.firstElementChild;if(!ki){console.error(`Error: GridStack.resizeToContent() widget id:${ei.id} '${ii.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}mi=ki.getBoundingClientRect().height||di}}if(di===mi)return;si+=mi-di;let hi=Math.ceil(si/ri),_i=Number.isInteger(ei.sizeToContent)?ei.sizeToContent:0;_i&&hi>_i&&(hi=_i,ti.classList.add("size-to-content-max")),ei.minH&&hiei.maxH&&(hi=ei.maxH),hi!==ei.h&&(ni._ignoreLayoutsNodeChange=!0,ni.moveNode(ei,{h:hi}),delete ni._ignoreLayoutsNodeChange)}resizeToContentCBCheck(ti){ii.resizeToContentCB?ii.resizeToContentCB(ti):this.resizeToContent(ti)}rotate(ti,ei){return ii.getElements(ti).forEach(ni=>{let ri=ni.gridstackNode;if(!xi.canBeRotated(ri))return;let si={w:ri.h,h:ri.w,minH:ri.minW,minW:ri.minH,maxH:ri.maxW,maxW:ri.maxH};if(ei){let li=ei.left>0?Math.floor(ei.left/this.cellWidth()):0,di=ei.top>0?Math.floor(ei.top/this.opts.cellHeight):0;si.x=ri.x+li-(ri.h-(di+1)),si.y=ri.y+di-li}Object.keys(si).forEach(li=>{si[li]===void 0&&delete si[li]});let ai=ri._orig;this.update(ni,si),ri._orig=ai}),this}margin(ti){if(!(typeof ti=="string"&&ti.split(" ").length>1)){let ni=xi.parseHeight(ti);if(this.opts.marginUnit===ni.unit&&this.opts.margin===ni.h)return}return this.opts.margin=ti,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this._updateStyles(!0),this}getMargin(){return this.opts.margin}willItFit(ti){if(arguments.length>1){console.warn("gridstack.ts: `willItFit(x,y,w,h,autoPosition)` is deprecated. Use `willItFit({x, y,...})`. It will be removed soon");let ei=arguments,ni=0,ri={x:ei[ni++],y:ei[ni++],w:ei[ni++],h:ei[ni++],autoPosition:ei[ni++]};return this.willItFit(ri)}return this.engine.willItFit(ti)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let ti=this.engine.getDirtyNodes(!0);return ti&&ti.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(ti),this._triggerEvent("change",ti)),this.engine.saveInitial(),this}_triggerAddEvent(){var ti;if(this.engine.batchMode)return this;if((ti=this.engine.addedNodes)!=null&&ti.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(ni=>{delete ni._dirty});let ei=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",ei)}return this}_triggerRemoveEvent(){var ti;if(this.engine.batchMode)return this;if((ti=this.engine.removedNodes)!=null&&ti.length){let ei=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",ei)}return this}_triggerEvent(ti,ei){let ni=ei?new CustomEvent(ti,{bubbles:!1,detail:ei}):new Event(ti);return this.el.dispatchEvent(ni),this}_removeStylesheet(){if(this._styles){let ti=this.opts.styleInHead?void 0:this.el.parentNode;xi.removeStylesheet(this._styleSheetClass,ti),delete this._styles}return this}_updateStyles(ti=!1,ei){if(ti&&this._removeStylesheet(),ei===void 0&&(ei=this.getRow()),this._updateContainerHeight(),this.opts.cellHeight===0)return this;let ni=this.opts.cellHeight,ri=this.opts.cellHeightUnit,si=`.${this._styleSheetClass} > .${this.opts.itemClass}`;if(!this._styles){let ai=this.opts.styleInHead?void 0:this.el.parentNode;if(this._styles=xi.createStylesheet(this._styleSheetClass,ai,{nonce:this.opts.nonce}),!this._styles)return this;this._styles._max=0,xi.addCSSRule(this._styles,si,`height: ${ni}${ri}`);let li=this.opts.marginTop+this.opts.marginUnit,di=this.opts.marginBottom+this.opts.marginUnit,mi=this.opts.marginRight+this.opts.marginUnit,hi=this.opts.marginLeft+this.opts.marginUnit,_i=`${si} > .grid-stack-item-content`,Ei=`.${this._styleSheetClass} > .grid-stack-placeholder > .placeholder-content`;xi.addCSSRule(this._styles,_i,`top: ${li}; right: ${mi}; bottom: ${di}; left: ${hi};`),xi.addCSSRule(this._styles,Ei,`top: ${li}; right: ${mi}; bottom: ${di}; left: ${hi};`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-n`,`top: ${li};`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-s`,`bottom: ${di}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-ne`,`right: ${mi}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-e`,`right: ${mi}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-se`,`right: ${mi}; bottom: ${di}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-nw`,`left: ${hi}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-w`,`left: ${hi}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-sw`,`left: ${hi}; bottom: ${di}`)}if(ei=ei||this._styles._max,ei>this._styles._max){let ai=li=>ni*li+ri;for(let li=this._styles._max+1;li<=ei;li++)xi.addCSSRule(this._styles,`${si}[gs-y="${li}"]`,`top: ${ai(li)}`),xi.addCSSRule(this._styles,`${si}[gs-h="${li+1}"]`,`height: ${ai(li+1)}`);this._styles._max=ei}return this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let ti=this.parentGridItem,ei=this.getRow()+this._extraDragRow,ni=this.opts.cellHeight,ri=this.opts.cellHeightUnit;if(!ni)return this;if(!ti){let si=xi.parseHeight(getComputedStyle(this.el).minHeight);if(si.h>0&&si.unit===ri){let ai=Math.floor(si.h/ni);ei1?ti.setAttribute("gs-w",String(ei.w)):ti.removeAttribute("gs-w"),ei.h>1?ti.setAttribute("gs-h",String(ei.h)):ti.removeAttribute("gs-h"),this}_writeAttr(ti,ei){if(!ei)return this;this._writePosAttr(ti,ei);let ni={autoPosition:"gs-auto-position",noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id"};for(let ri in ni)ei[ri]?ti.setAttribute(ni[ri],String(ei[ri])):ti.removeAttribute(ni[ri]);return this}_readAttr(ti,ei=!0){let ni={};ni.x=xi.toNumber(ti.getAttribute("gs-x")),ni.y=xi.toNumber(ti.getAttribute("gs-y")),ni.w=xi.toNumber(ti.getAttribute("gs-w")),ni.h=xi.toNumber(ti.getAttribute("gs-h")),ni.autoPosition=xi.toBool(ti.getAttribute("gs-auto-position")),ni.noResize=xi.toBool(ti.getAttribute("gs-no-resize")),ni.noMove=xi.toBool(ti.getAttribute("gs-no-move")),ni.locked=xi.toBool(ti.getAttribute("gs-locked")),ni.id=ti.getAttribute("gs-id"),ni.maxW=xi.toNumber(ti.getAttribute("gs-max-w")),ni.minW=xi.toNumber(ti.getAttribute("gs-min-w")),ni.maxH=xi.toNumber(ti.getAttribute("gs-max-h")),ni.minH=xi.toNumber(ti.getAttribute("gs-min-h")),ei&&(ni.w===1&&ti.removeAttribute("gs-w"),ni.h===1&&ti.removeAttribute("gs-h"),ni.maxW&&ti.removeAttribute("gs-max-w"),ni.minW&&ti.removeAttribute("gs-min-w"),ni.maxH&&ti.removeAttribute("gs-max-h"),ni.minH&&ti.removeAttribute("gs-min-h"));for(let ri in ni){if(!ni.hasOwnProperty(ri))return;!ni[ri]&&ni[ri]!==0&&delete ni[ri]}return ni}_setStaticClass(){let ti=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...ti),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...ti),this.el.removeAttribute("gs-static")),this}onResize(){var ei;if(!((ei=this.el)!=null&&ei.clientWidth)||this.prevWidth===this.el.clientWidth)return;this.prevWidth=this.el.clientWidth,this.batchUpdate();let ti=!1;return this._autoColumn&&this.parentGridItem?this.opts.column!==this.parentGridItem.w&&(this.column(this.parentGridItem.w,"none"),ti=!0):ti=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(ni=>{ni.subGrid&&ni.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(ti),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(ti=!1,ei=void 0){if(this.engine){if(ti&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,ei),310);if(ei)xi.shouldSizeToContent(ei)&&this.resizeToContentCBCheck(ei.el);else if(this.engine.nodes.some(ni=>xi.shouldSizeToContent(ni))){let ni=[...this.engine.nodes];this.batchUpdate(),ni.forEach(ri=>{xi.shouldSizeToContent(ri)&&this.resizeToContentCBCheck(ri.el)}),this.batchUpdate(!1)}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,ei?[ei]:this.engine.nodes)}}_updateResizeEvent(ti=!1){let ei=!this.parentGridItem&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(ni=>ni.sizeToContent));return!ti&&ei&&!this.resizeObserver?(this._sizeThrottle=xi.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(ti||!ei)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(ti=".grid-stack-item"){return xi.getElement(ti)}static getElements(ti=".grid-stack-item"){return xi.getElements(ti)}static getGridElement(ti){return ii.getElement(ti)}static getGridElements(ti){return xi.getElements(ti)}_initMargin(){let ti,ei=0,ni=[];return typeof this.opts.margin=="string"&&(ni=this.opts.margin.split(" ")),ni.length===2?(this.opts.marginTop=this.opts.marginBottom=ni[0],this.opts.marginLeft=this.opts.marginRight=ni[1]):ni.length===4?(this.opts.marginTop=ni[0],this.opts.marginRight=ni[1],this.opts.marginBottom=ni[2],this.opts.marginLeft=ni[3]):(ti=xi.parseHeight(this.opts.margin),this.opts.marginUnit=ti.unit,ei=this.opts.margin=ti.h),this.opts.marginTop===void 0?this.opts.marginTop=ei:(ti=xi.parseHeight(this.opts.marginTop),this.opts.marginTop=ti.h,delete this.opts.margin),this.opts.marginBottom===void 0?this.opts.marginBottom=ei:(ti=xi.parseHeight(this.opts.marginBottom),this.opts.marginBottom=ti.h,delete this.opts.margin),this.opts.marginRight===void 0?this.opts.marginRight=ei:(ti=xi.parseHeight(this.opts.marginRight),this.opts.marginRight=ti.h,delete this.opts.margin),this.opts.marginLeft===void 0?this.opts.marginLeft=ei:(ti=xi.parseHeight(this.opts.marginLeft),this.opts.marginLeft=ti.h,delete this.opts.margin),this.opts.marginUnit=ti.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop),this}static getDD(){return os}static setupDragIn(ti,ei,ni=document){(ei==null?void 0:ei.pause)!==void 0&&(sn.pauseDrag=ei.pause),ei=Ui(Ui({},Uf),ei||{});let ri=typeof ti=="string"?xi.getElements(ti,ni):ti;ri.length&&(ri==null||ri.forEach(si=>{os.isDraggable(si)||os.dragIn(si,ei)}))}movable(ti,ei){return this.opts.staticGrid?this:(ii.getElements(ti).forEach(ni=>{let ri=ni.gridstackNode;ri&&(ei?delete ri.noMove:ri.noMove=!0,this._prepareDragDropByNode(ri))}),this)}resizable(ti,ei){return this.opts.staticGrid?this:(ii.getElements(ti).forEach(ni=>{let ri=ni.gridstackNode;ri&&(ei?delete ri.noResize:ri.noResize=!0,this._prepareDragDropByNode(ri))}),this)}disable(ti=!0){if(!this.opts.staticGrid)return this.enableMove(!1,ti),this.enableResize(!1,ti),this._triggerEvent("disable"),this}enable(ti=!0){if(!this.opts.staticGrid)return this.enableMove(!0,ti),this.enableResize(!0,ti),this._triggerEvent("enable"),this}enableMove(ti,ei=!0){return this.opts.staticGrid?this:(ti?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(ni=>{this._prepareDragDropByNode(ni),ni.subGrid&&ei&&ni.subGrid.enableMove(ti,ei)}),this)}enableResize(ti,ei=!0){return this.opts.staticGrid?this:(ti?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(ni=>{this._prepareDragDropByNode(ni),ni.subGrid&&ei&&ni.subGrid.enableResize(ti,ei)}),this)}_removeDD(ti){return os.draggable(ti,"destroy").resizable(ti,"destroy"),ti.gridstackNode&&delete ti.gridstackNode._initDD,delete ti.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return os.droppable(this.el,"destroy"),this;let ti,ei,ni=(ri,si,ai)=>{var Ei;let li=si.gridstackNode;if(!li)return;if(ai=ai||si,!((Ei=li.grid)!=null&&Ei.el)){ai.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let Ai=ai.getBoundingClientRect();ai.style.left=Ai.x+(this.dragTransform.xScale-1)*(ri.clientX-Ai.x)/this.dragTransform.xScale+"px",ai.style.top=Ai.y+(this.dragTransform.yScale-1)*(ri.clientY-Ai.y)/this.dragTransform.yScale+"px",ai.style.transformOrigin="0px 0px"}let di=this.el.getBoundingClientRect(),{top:mi,left:hi}=ai.getBoundingClientRect();hi-=di.left,mi-=di.top;let _i={position:{top:mi*this.dragTransform.xScale,left:hi*this.dragTransform.yScale}};if(li._temporaryRemoved){if(li.x=Math.max(0,Math.round(hi/ei)),li.y=Math.max(0,Math.round(mi/ti)),delete li.autoPosition,this.engine.nodeBoundFix(li),!this.engine.willItFit(li)){if(li.autoPosition=!0,!this.engine.willItFit(li)){os.off(si,"drag");return}li._willFitPos&&(xi.copyPos(li,li._willFitPos),delete li._willFitPos)}this._onStartMoving(ai,ri,_i,li,ei,ti)}else this._dragOrResize(ai,ri,_i,li,ei,ti)};return os.droppable(this.el,{accept:ri=>{let si=ri.gridstackNode||this._readAttr(ri,!1);if((si==null?void 0:si.grid)===this)return!0;if(!this.opts.acceptWidgets)return!1;let ai=!0;if(typeof this.opts.acceptWidgets=="function")ai=this.opts.acceptWidgets(ri);else{let li=this.opts.acceptWidgets===!0?".grid-stack-item":this.opts.acceptWidgets;ai=ri.matches(li)}if(ai&&si&&this.opts.maxRow){let li={w:si.w,h:si.h,minW:si.minW,minH:si.minH};ai=this.engine.willItFit(li)}return ai}}).on(this.el,"dropover",(ri,si,ai)=>{let li=si.gridstackNode;if((li==null?void 0:li.grid)===this&&!li._temporaryRemoved)return!1;li!=null&&li.grid&&li.grid!==this&&!li._temporaryRemoved&&li.grid._leave(si,ai),ei=this.cellWidth(),ti=this.getCellHeight(!0),li||(li=this._readAttr(si,!1)),li.grid||(li._isExternal=!0,si.gridstackNode=li),ai=ai||si;let di=li.w||Math.round(ai.offsetWidth/ei)||1,mi=li.h||Math.round(ai.offsetHeight/ti)||1;return li.grid&&li.grid!==this?(si._gridstackNodeOrig||(si._gridstackNodeOrig=li),si.gridstackNode=li=Hn(Ui({},li),{w:di,h:mi,grid:this}),delete li.x,delete li.y,this.engine.cleanupNode(li).nodeBoundFix(li),li._initDD=li._isExternal=li._temporaryRemoved=!0):(li.w=di,li.h=mi,li._temporaryRemoved=!0),ii._itemRemoving(li.el,!1),os.on(si,"drag",ni),ni(ri,si,ai),!1}).on(this.el,"dropout",(ri,si,ai)=>{let li=si.gridstackNode;return li&&(!li.grid||li.grid===this)&&(this._leave(si,ai),this._isTemp&&this.removeAsSubGrid(li)),!1}).on(this.el,"drop",(ri,si,ai)=>{var Ei,Ai,ki;let li=si.gridstackNode;if((li==null?void 0:li.grid)===this&&!li._isExternal)return!1;let di=!!this.placeholder.parentElement;this.placeholder.remove();let mi=di&&this.opts.animate;mi&&this.setAnimation(!1);let hi=si._gridstackNodeOrig;if(delete si._gridstackNodeOrig,di&&(hi!=null&&hi.grid)&&hi.grid!==this){let Ti=hi.grid;Ti.engine.removeNodeFromLayoutCache(hi),Ti.engine.removedNodes.push(hi),Ti._triggerRemoveEvent()._triggerChangeEvent(),Ti.parentGridItem&&!Ti.engine.nodes.length&&Ti.opts.subGridDynamic&&Ti.removeAsSubGrid()}if(!li||(di&&(this.engine.cleanupNode(li),li.grid=this),(Ei=li.grid)==null||delete Ei._isTemp,os.off(si,"drag"),ai!==si?(ai.remove(),si.gridstackNode=hi,di&&(si=si.cloneNode(!0))):(si.remove(),this._removeDD(si)),!di))return!1;si.gridstackNode=li,li.el=si;let _i=(ki=(Ai=li.subGrid)==null?void 0:Ai.el)==null?void 0:ki.gridstack;return xi.copyPos(li,this._readAttr(this.placeholder)),xi.removePositioningStyles(si),this.el.appendChild(si),this._prepareElement(si,!0,li),_i&&(_i.parentGridItem=li,_i.opts.styleInHead||_i._updateStyles(!0)),this._updateContainerHeight(),this.engine.addedNodes.push(li),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped(Hn(Ui({},ri),{type:"dropped"}),hi&&hi.grid?hi:void 0,li),mi&&this.setAnimation(this.opts.animate,!0),!1}),this}static _itemRemoving(ti,ei){let ni=ti?ti.gridstackNode:void 0;!(ni!=null&&ni.grid)||ti.classList.contains(ni.grid.opts.removableOptions.decline)||(ei?ni._isAboutToRemove=!0:delete ni._isAboutToRemove,ei?ti.classList.add("grid-stack-item-removing"):ti.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if(typeof this.opts.removable!="string")return this;let ti=document.querySelector(this.opts.removable);return ti?(!this.opts.staticGrid&&!os.isDroppable(ti)&&os.droppable(ti,this.opts.removableOptions).on(ti,"dropover",(ei,ni)=>ii._itemRemoving(ni,!0)).on(ti,"dropout",(ei,ni)=>ii._itemRemoving(ni,!1)),this):this}_prepareDragDropByNode(ti){let ei=ti.el,ni=ti.noMove||this.opts.disableDrag,ri=ti.noResize||this.opts.disableResize;if(this.opts.staticGrid||ni&&ri)return ti._initDD&&(this._removeDD(ei),delete ti._initDD),ei.classList.add("ui-draggable-disabled","ui-resizable-disabled"),this;if(!ti._initDD){let si,ai,li=(hi,_i)=>{this._gsEventHandler[hi.type]&&this._gsEventHandler[hi.type](hi,hi.target),si=this.cellWidth(),ai=this.getCellHeight(!0),this._onStartMoving(ei,hi,_i,ti,si,ai)},di=(hi,_i)=>{this._dragOrResize(ei,hi,_i,ti,si,ai)},mi=hi=>{this.placeholder.remove(),delete ti._moving,delete ti._event,delete ti._lastTried;let _i=ti.w!==ti._orig.w,Ei=hi.target;if(!(!Ei.gridstackNode||Ei.gridstackNode.grid!==this)){if(ti.el=Ei,ti._isAboutToRemove){let Ai=ei.gridstackNode.grid;Ai._gsEventHandler[hi.type]&&Ai._gsEventHandler[hi.type](hi,Ei),Ai.engine.nodes.push(ti),Ai.removeWidget(ei,!0,!0)}else xi.removePositioningStyles(Ei),ti._temporaryRemoved?(xi.copyPos(ti,ti._orig),this._writePosAttr(Ei,ti),this.engine.addNode(ti)):this._writePosAttr(Ei,ti),this._gsEventHandler[hi.type]&&this._gsEventHandler[hi.type](hi,Ei);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),hi.type==="resizestop"&&(Number.isInteger(ti.sizeToContent)&&(ti.sizeToContent=ti.h),this.resizeToContentCheck(_i,ti))}};os.draggable(ei,{start:li,stop:mi,drag:di}).resizable(ei,{start:li,stop:mi,resize:di}),ti._initDD=!0}return os.draggable(ei,ni?"disable":"enable").resizable(ei,ri?"disable":"enable"),this}_onStartMoving(ti,ei,ni,ri,si,ai){var li;if(this.engine.cleanNodes().beginUpdate(ri),this._writePosAttr(this.placeholder,ri),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=ri,(li=ri.grid)!=null&&li.el)this.dragTransform=xi.getValuesFromTransformedElement(ti);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){let di=this.placeholder.closest(".grid-stack");this.dragTransform=xi.getValuesFromTransformedElement(di)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(ri.el=this.placeholder,ri._lastUiPosition=ni.position,ri._prevYPix=ni.position.top,ri._moving=ei.type==="dragstart",delete ri._lastTried,ei.type==="dropover"&&ri._temporaryRemoved&&(this.engine.addNode(ri),ri._moving=!0),this.engine.cacheRects(si,ai,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),ei.type==="resizestart"){let di=this.getColumn()-ri.x,mi=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-ri.y;os.resizable(ti,"option","minWidth",si*Math.min(ri.minW||1,di)).resizable(ti,"option","minHeight",ai*Math.min(ri.minH||1,mi)).resizable(ti,"option","maxWidth",si*Math.min(ri.maxW||Number.MAX_SAFE_INTEGER,di)).resizable(ti,"option","maxWidthMoveLeft",si*Math.min(ri.maxW||Number.MAX_SAFE_INTEGER,ri.x+ri.w)).resizable(ti,"option","maxHeight",ai*Math.min(ri.maxH||Number.MAX_SAFE_INTEGER,mi)).resizable(ti,"option","maxHeightMoveUp",ai*Math.min(ri.maxH||Number.MAX_SAFE_INTEGER,ri.y+ri.h))}}_dragOrResize(ti,ei,ni,ri,si,ai){let li=Ui({},ri._orig),di,mi=this.opts.marginLeft,hi=this.opts.marginRight,_i=this.opts.marginTop,Ei=this.opts.marginBottom,Ai=Math.round(ai*.1),ki=Math.round(si*.1);if(mi=Math.min(mi,ki),hi=Math.min(hi,ki),_i=Math.min(_i,Ai),Ei=Math.min(Ei,Ai),ei.type==="drag"){if(ri._temporaryRemoved)return;let Fi=ni.position.top-ri._prevYPix;ri._prevYPix=ni.position.top,this.opts.draggable.scroll!==!1&&xi.updateScrollPosition(ti,ni.position,Fi);let en=ni.position.left+(ni.position.left>ri._lastUiPosition.left?-hi:mi),rn=ni.position.top+(ni.position.top>ri._lastUiPosition.top?-Ei:_i);li.x=Math.round(en/si),li.y=Math.round(rn/ai);let ln=this._extraDragRow;if(this.engine.collide(ri,li)){let Yi=this.getRow(),on=Math.max(0,li.y+ri.h-Yi);this.opts.maxRow&&Yi+on>this.opts.maxRow&&(on=Math.max(0,this.opts.maxRow-Yi)),this._extraDragRow=on}else this._extraDragRow=0;if(this._extraDragRow!==ln&&this._updateContainerHeight(),ri.x===li.x&&ri.y===li.y)return}else if(ei.type==="resize"){if(li.x<0||(xi.updateScrollResize(ei,ti,ai),li.w=Math.round((ni.size.width-mi)/si),li.h=Math.round((ni.size.height-_i)/ai),ri.w===li.w&&ri.h===li.h)||ri._lastTried&&ri._lastTried.w===li.w&&ri._lastTried.h===li.h)return;let Fi=ni.position.left+mi,en=ni.position.top+_i;li.x=Math.round(Fi/si),li.y=Math.round(en/ai),di=!0}ri._event=ei,ri._lastTried=li;let Ti={x:ni.position.left+mi,y:ni.position.top+_i,w:(ni.size?ni.size.width:ri.w*si)-mi-hi,h:(ni.size?ni.size.height:ri.h*ai)-_i-Ei};if(this.engine.moveNodeCheck(ri,Hn(Ui({},li),{cellWidth:si,cellHeight:ai,rect:Ti,resizing:di}))){ri._lastUiPosition=ni.position,this.engine.cacheRects(si,ai,_i,hi,Ei,mi),delete ri._skipDown,di&&ri.subGrid&&ri.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let Fi=ei.target;this._writePosAttr(Fi,ri),this._gsEventHandler[ei.type]&&this._gsEventHandler[ei.type](ei,Fi)}}_leave(ti,ei){let ni=ti.gridstackNode;ni&&(ei=ei||ti,ei.style.transform="scale(1)",os.off(ti,"drag"),!ni._temporaryRemoved&&(ni._temporaryRemoved=!0,this.engine.removeNode(ni),ni.el=ni._isExternal&&ei?ei:ti,this.opts.removable===!0&&ii._itemRemoving(ti,!0),ti._gridstackNodeOrig?(ti.gridstackNode=ti._gridstackNodeOrig,delete ti._gridstackNodeOrig):ni._isExternal&&(delete ni.el,delete ti.gridstackNode,this.engine.restoreInitial())))}commit(){return Wf(this,this.batchUpdate(!1),"commit","batchUpdate","5.2"),this}};ho.resizeToContentParent=".grid-stack-item-content";ho.Utils=xi;ho.Engine=Io;ho.GDRev="10.3.1";function jy(){let ii=document.getElementById("dashboard");ii&&ii.gridstack.disable()}function Vy(){let ii=document.getElementById("dashboard");ii&&ii.gridstack.enable()}function qy(ii,ti){return ks(this,null,function*(){return yield ra(ii,{layout:ti})})}function Gf(){if(document.getElementById("dashboard")==null)return;let ti=ho.init({cellHeight:100,disableDrag:!0,disableResize:!0,draggable:{handle:".grid-stack-item-content .card-header",appendTo:"body",scroll:!0}}),ei=document.getElementById("lock_dashboard");ei&&ei.addEventListener("click",()=>{jy()});let ni=document.getElementById("unlock_dashboard");ni&&ni.addEventListener("click",()=>{Vy()});let ri=document.getElementById("save_dashboard");ri!==null&&ri.addEventListener("click",()=>{let si=ri.getAttribute("data-url");if(si==null)return;let ai=ti.save(!1);qy(si,ai).then(li=>{Mo(li)?ao("danger","Error Saving Dashboard Config",li.error).show():location.reload()})})}function Kf(ii,ti){switch(ii){case"images-and-labels":{cu("image.device-image",ti),cu("text.device-image-label",ti);break}case"images-only":{cu("image.device-image",ti),uu("text.device-image-label",ti);break}case"labels-only":{uu("image.device-image",ti),uu("text.device-image-label",ti);break}}}function cu(ii,ti){var ni,ri;let ei=(ri=(ni=ti.contentDocument)==null?void 0:ni.querySelectorAll(ii))!=null?ri:[];for(let si of ei)si.classList.remove("hidden")}function uu(ii,ti){var ni,ri;let ei=(ri=(ni=ti.contentDocument)==null?void 0:ni.querySelectorAll(ii))!=null?ri:[];for(let si of ei)si.classList.add("hidden")}function Wy(ii,ti){ti.set("view",ii);for(let ei of Xi(".rack_elevation"))Kf(ii,ei)}function Qf(){let ii=Jc.get("view");for(let ti of Xi("select.rack-view"))ti.selectedIndex=[...ti.options].findIndex(ei=>ei.value==ii),ti.addEventListener("change",ei=>{Wy(ei.currentTarget.value,Jc)},!1);for(let ti of Xi(".rack_elevation"))ti.addEventListener("load",()=>{Kf(ii,ti)})}function Uy(ii){let ti=document.getElementById("selector_results");if(ti==null)return;let ei=ti.getAttribute("data-selector-target");if(ei==null)return;let ni=document.getElementById(ei);if(ni==null)return;let ri=ii.getAttribute("data-label"),si=ii.getAttribute("data-value");ni.tomselect.addOption({id:si,display:ri}),ni.tomselect.addItem(si)}function Xf(){for(let ii of Xi("#selector_results a"))ii.addEventListener("click",()=>Uy(ii))}function Yy(){for(let ii of[Ll,kl,Ol,Xf,xl,Ml])ii()}function Jf(){document.addEventListener("htmx:afterSettle",Yy)}function Gy(ii){let ti=ii.currentTarget,ei=ti.baseURI.split("?")[0],ni="?",ri=Array.from(ti.options).filter(si=>si.selected).map(si=>`filter_id=${si.value}`).join("&");ei+=`${ni}${ri}`,document.location.href=ei}function Zf(){let ii=document.getElementById("results");if(Un(ii)){let ti=document.getElementById("id_filter_id");Un(ti)&&ti.addEventListener("change",Gy)}}function eh(){for(let ii of[xl,Mf,Ml,$d,jd,Ol,$f,Ll,kl,zf,Vf,qf,Gf,Qf,Jf,Zf])ii()}function Ky(){let ii=document.forms;for(let ei of ii)ei.method.toUpperCase()=="GET"&&ei.addEventListener("formdata",function(ni){let ri=ni.formData;for(let[si,ai]of Array.from(ri.entries()))ai===""&&ri.delete(si)});let ti=document.querySelector(".content-container");ti!==null&&ti.focus()}window.addEventListener("load",Ky);document.readyState!=="loading"?eh():document.addEventListener("DOMContentLoaded",eh);})();
+Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),ni}static addGrid(ti,ei={}){if(!ti)return null;let ni=ti;if(ni.gridstack){let ai=ni.gridstack;return ei&&(ai.opts=Ui(Ui({},ai.opts),ei)),ei.children!==void 0&&ai.load(ei.children),ai}if(!ti.classList.contains("grid-stack")||ii.addRemoveCB)if(ii.addRemoveCB)ni=ii.addRemoveCB(ti,ei,!0,!0);else{let ai=document.implementation.createHTMLDocument("");ai.body.innerHTML=`
`,ni=ai.body.children[0],ti.appendChild(ni)}return ii.init(ei,ni)}static registerEngine(ti){ii.engineClass=ti}get placeholder(){if(!this._placeholder){let ti=document.createElement("div");ti.className="placeholder-content",this.opts.placeholderText&&(ti.innerHTML=this.opts.placeholderText),this._placeholder=document.createElement("div"),this._placeholder.classList.add(this.opts.placeholderClass,fs.itemClass,this.opts.itemClass),this.placeholder.appendChild(ti)}return this._placeholder}constructor(ti,ei={}){var _i,Ei,Ai,ki;this.el=ti,this.opts=ei,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},ti.gridstack=this,ei=ei||{},ti.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),ei.row&&(ei.minRow=ei.maxRow=ei.row,delete ei.row);let ni=xi.toNumber(ti.getAttribute("gs-row"));ei.column==="auto"&&delete ei.column,ei.alwaysShowResizeHandle!==void 0&&(ei._alwaysShowResizeHandle=ei.alwaysShowResizeHandle);let ri=(_i=ei.columnOpts)==null?void 0:_i.breakpoints,si=ei;if(si.oneColumnModeDomSort&&(delete si.oneColumnModeDomSort,console.log("warning: Gridstack oneColumnModeDomSort no longer supported. Use GridStackOptions.columnOpts instead.")),si.oneColumnSize||si.disableOneColumnMode===!1){let Ti=si.oneColumnSize||768;delete si.oneColumnSize,delete si.disableOneColumnMode,ei.columnOpts=ei.columnOpts||{},ri=ei.columnOpts.breakpoints=ei.columnOpts.breakpoints||[];let Fi=ri.find(en=>en.c===1);Fi?Fi.w=Ti:(Fi={c:1,w:Ti},ri.push(Fi,{c:12,w:Ti+1}))}let ai=ei.columnOpts;ai&&(!ai.columnWidth&&!((Ei=ai.breakpoints)!=null&&Ei.length)?(delete ei.columnOpts,ri=void 0):ai.columnMax=ai.columnMax||12),(ri==null?void 0:ri.length)>1&&ri.sort((Ti,Fi)=>(Fi.w||0)-(Ti.w||0));let li=Hn(Ui({},xi.cloneDeep(fs)),{column:xi.toNumber(ti.getAttribute("gs-column"))||fs.column,minRow:ni||xi.toNumber(ti.getAttribute("gs-min-row"))||fs.minRow,maxRow:ni||xi.toNumber(ti.getAttribute("gs-max-row"))||fs.maxRow,staticGrid:xi.toBool(ti.getAttribute("gs-static"))||fs.staticGrid,draggable:{handle:(ei.handleClass?"."+ei.handleClass:ei.handle?ei.handle:"")||fs.draggable.handle},removableOptions:{accept:ei.itemClass||fs.removableOptions.accept,decline:fs.removableOptions.decline}});ti.getAttribute("gs-animate")&&(li.animate=xi.toBool(ti.getAttribute("gs-animate"))),ei=xi.defaults(ei,li),this._initMargin(),this.checkDynamicColumn(),this.el.classList.add("gs-"+ei.column),ei.rtl==="auto"&&(ei.rtl=ti.style.direction==="rtl"),ei.rtl&&this.el.classList.add("grid-stack-rtl");let di=(Ai=this.el.parentElement)==null?void 0:Ai.parentElement,mi=di!=null&&di.classList.contains(fs.itemClass)?di.gridstackNode:void 0;mi&&(mi.subGrid=this,this.parentGridItem=mi,this.el.classList.add("grid-stack-nested"),mi.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=ei.cellHeight==="auto",this._isAutoCellHeight||ei.cellHeight==="initial"?this.cellHeight(void 0,!1):(typeof ei.cellHeight=="number"&&ei.cellHeightUnit&&ei.cellHeightUnit!==fs.cellHeightUnit&&(ei.cellHeight=ei.cellHeight+ei.cellHeightUnit,delete ei.cellHeightUnit),this.cellHeight(ei.cellHeight,!1)),ei.alwaysShowResizeHandle==="mobile"&&(ei.alwaysShowResizeHandle=ss),this._styleSheetClass="gs-id-"+Io._idSeq++,this.el.classList.add(this._styleSheetClass),this._setStaticClass();let hi=ei.engineClass||ii.engineClass||Io;if(this.engine=new hi({column:this.getColumn(),float:ei.float,maxRow:ei.maxRow,onChange:Ti=>{let Fi=0;this.engine.nodes.forEach(en=>{Fi=Math.max(Fi,en.y+en.h)}),Ti.forEach(en=>{let rn=en.el;rn&&(en._removeDOM?(rn&&rn.remove(),delete en._removeDOM):this._writePosAttr(rn,en))}),this._updateStyles(!1,Fi)}}),this._updateStyles(!1,0),ei.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(Ti=>this._prepareElement(Ti)),delete this.engine._loading,this.batchUpdate(!1)),ei.children){let Ti=ei.children;delete ei.children,Ti.length&&this.load(Ti)}this.setAnimation(),ei.subGridDynamic&&!sn.pauseDrag&&(sn.pauseDrag=!0),((ki=ei.draggable)==null?void 0:ki.pause)!==void 0&&(sn.pauseDrag=ei.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}addWidget(ti,ei){function ni(li){return li.el!==void 0||li.x!==void 0||li.y!==void 0||li.w!==void 0||li.h!==void 0||li.content!==void 0}let ri,si;if(typeof ti=="string"){let li=document.implementation.createHTMLDocument("");li.body.innerHTML=ti,ri=li.body.children[0]}else if(arguments.length===0||arguments.length===1&&ni(ti))if(si=ei=ti,si!=null&&si.el)ri=si.el;else if(ii.addRemoveCB)ri=ii.addRemoveCB(this.el,ei,!0,!1);else{let li=(ei==null?void 0:ei.content)||"",di=document.implementation.createHTMLDocument("");di.body.innerHTML=``,ri=di.body.children[0]}else ri=ti;if(!ri)return;if(si=ri.gridstackNode,si&&ri.parentElement===this.el&&this.engine.nodes.find(li=>li._id===si._id))return ri;let ai=this._readAttr(ri);return ei=xi.cloneDeep(ei)||{},xi.defaults(ei,ai),si=this.engine.prepareNode(ei),this._writeAttr(ri,ei),this.el.appendChild(ri),this.makeWidget(ri,ei),ri}makeSubGrid(ti,ei,ni,ri=!0){var Ai,ki,Ti;let si=ti.gridstackNode;if(si||(si=this.makeWidget(ti).gridstackNode),(Ai=si.subGrid)!=null&&Ai.el)return si.subGrid;let ai,li=this;for(;li&&!ai;)ai=(ki=li.opts)==null?void 0:ki.subGridOpts,li=(Ti=li.parentGridItem)==null?void 0:Ti.grid;ei=xi.cloneDeep(Ui(Hn(Ui({},ai||{}),{children:void 0}),ei||si.subGridOpts||{})),si.subGridOpts=ei;let di;ei.column==="auto"&&(di=!0,ei.column=Math.max(si.w||1,(ni==null?void 0:ni.w)||1),delete ei.columnOpts);let mi=si.el.querySelector(".grid-stack-item-content"),hi,_i;if(ri){if(this._removeDD(si.el),_i=Hn(Ui({},si),{x:0,y:0}),xi.removeInternalForSave(_i),delete _i.subGridOpts,si.content&&(_i.content=si.content,delete si.content),ii.addRemoveCB)hi=ii.addRemoveCB(this.el,_i,!0,!1);else{let Fi=document.implementation.createHTMLDocument("");Fi.body.innerHTML='
',hi=Fi.body.children[0],hi.appendChild(mi),Fi.body.innerHTML='
',mi=Fi.body.children[0],si.el.appendChild(mi)}this._prepareDragDropByNode(si)}if(ni){let Fi=di?ei.column:si.w,en=si.h+ni.h,rn=si.el.style;rn.transition="none",this.update(si.el,{w:Fi,h:en}),setTimeout(()=>rn.transition=null)}let Ei=si.subGrid=ii.addGrid(mi,ei);return ni!=null&&ni._moving&&(Ei._isTemp=!0),di&&(Ei._autoColumn=!0),ri&&Ei.addWidget(hi,_i),ni&&(ni._moving?window.setTimeout(()=>xi.simulateMouseEvent(ni._event,"mouseenter",Ei.el),0):Ei.addWidget(si.el,si)),Ei}removeAsSubGrid(ti){var ni;let ei=(ni=this.parentGridItem)==null?void 0:ni.grid;ei&&(ei.batchUpdate(),ei.removeWidget(this.parentGridItem.el,!0,!0),this.engine.nodes.forEach(ri=>{ri.x+=this.parentGridItem.x,ri.y+=this.parentGridItem.y,ei.addWidget(ri.el,ri)}),ei.batchUpdate(!1),this.parentGridItem&&delete this.parentGridItem.subGrid,delete this.parentGridItem,ti&&window.setTimeout(()=>xi.simulateMouseEvent(ti._event,"mouseenter",ei.el),0))}save(ti=!0,ei=!1,ni=ii.saveCB){let ri=this.engine.save(ti,ni);if(ri.forEach(si=>{var ai;if(ti&&si.el&&!si.subGrid&&!ni){let li=si.el.querySelector(".grid-stack-item-content");si.content=li?li.innerHTML:void 0,si.content||delete si.content}else if(!ti&&!ni&&delete si.content,(ai=si.subGrid)!=null&&ai.el){let li=si.subGrid.save(ti,ei,ni);si.subGridOpts=ei?li:{children:li},delete si.subGrid}delete si.el}),ei){let si=xi.cloneDeep(this.opts);si.marginBottom===si.marginTop&&si.marginRight===si.marginLeft&&si.marginTop===si.marginRight&&(si.margin=si.marginTop,delete si.marginTop,delete si.marginRight,delete si.marginBottom,delete si.marginLeft),si.rtl===(this.el.style.direction==="rtl")&&(si.rtl="auto"),this._isAutoCellHeight&&(si.cellHeight="auto"),this._autoColumn&&(si.column="auto");let ai=si._alwaysShowResizeHandle;return delete si._alwaysShowResizeHandle,ai!==void 0?si.alwaysShowResizeHandle=ai:delete si.alwaysShowResizeHandle,xi.removeInternalAndSame(si,fs),si.children=ri,si}return ri}load(ti,ei=ii.addRemoveCB||!0){var mi;ti=xi.cloneDeep(ti);let ni=this.getColumn();ti.forEach(hi=>{hi.w=hi.w||1,hi.h=hi.h||1}),ti=xi.sort(ti);let ri=0;ti.forEach(hi=>{ri=Math.max(ri,(hi.x||0)+hi.w)}),ri>ni&&(this._ignoreLayoutsNodeChange=!0,this.engine.cacheLayout(ti,ri,!0));let si=ii.addRemoveCB;typeof ei=="function"&&(ii.addRemoveCB=ei);let ai=[];this.batchUpdate();let li=!this.engine.nodes.length;li&&this.setAnimation(!1),!li&&ei&&[...this.engine.nodes].forEach(_i=>{if(!_i.id)return;xi.find(ti,_i.id)||(ii.addRemoveCB&&ii.addRemoveCB(this.el,_i,!1,!1),ai.push(_i),this.removeWidget(_i.el,!0,!1))}),this.engine._loading=!0;let di=[];return this.engine.nodes=this.engine.nodes.filter(hi=>xi.find(ti,hi.id)?(di.push(hi),!1):!0),ti.forEach(hi=>{var Ei;let _i=xi.find(di,hi.id);if(_i){if(xi.shouldSizeToContent(_i)&&(hi.h=_i.h),this.engine.nodeBoundFix(hi),(hi.autoPosition||hi.x===void 0||hi.y===void 0)&&(hi.w=hi.w||_i.w,hi.h=hi.h||_i.h,this.engine.findEmptyPosition(hi)),this.engine.nodes.push(_i),xi.samePos(_i,hi)&&this.moveNode(_i,Hn(Ui({},hi),{forceCollide:!0})),this.update(_i.el,hi),(Ei=hi.subGridOpts)!=null&&Ei.children){let Ai=_i.el.querySelector(".grid-stack");Ai&&Ai.gridstack&&Ai.gridstack.load(hi.subGridOpts.children)}}else ei&&this.addWidget(hi)}),delete this.engine._loading,this.engine.removedNodes=ai,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,si?ii.addRemoveCB=si:delete ii.addRemoveCB,li&&((mi=this.opts)!=null&&mi.animate)&&this.setAnimation(this.opts.animate,!0),this}batchUpdate(ti=!0){return this.engine.batchUpdate(ti),ti||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(ti=!1){if(this.opts.cellHeight&&this.opts.cellHeight!=="auto"&&(!ti||!this.opts.cellHeightUnit||this.opts.cellHeightUnit==="px"))return this.opts.cellHeight;if(this.opts.cellHeightUnit==="rem")return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit==="em")return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit==="cm")return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit==="mm")return this.opts.cellHeight*(96/2.54)/10;let ei=this.el.querySelector("."+this.opts.itemClass);if(ei){let ri=xi.toNumber(ei.getAttribute("gs-h"))||1;return Math.round(ei.offsetHeight/ri)}let ni=parseInt(this.el.getAttribute("gs-current-row"));return ni?Math.round(this.el.getBoundingClientRect().height/ni):this.opts.cellHeight}cellHeight(ti,ei=!0){if(ei&&ti!==void 0&&this._isAutoCellHeight!==(ti==="auto")&&(this._isAutoCellHeight=ti==="auto",this._updateResizeEvent()),(ti==="initial"||ti==="auto")&&(ti=void 0),ti===void 0){let ri=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;ti=this.cellWidth()+ri}let ni=xi.parseHeight(ti);return this.opts.cellHeightUnit===ni.unit&&this.opts.cellHeight===ni.h?this:(this.opts.cellHeightUnit=ni.unit,this.opts.cellHeight=ni.h,this.resizeToContentCheck(),ei&&this._updateStyles(!0),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(ti=!1){var ei;return ti&&((ei=this.opts.columnOpts)!=null&&ei.breakpointForWindow)?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){var si,ai;let ti=this.opts.columnOpts;if(!ti||!ti.columnWidth&&!((si=ti.breakpoints)!=null&&si.length))return!1;let ei=this.getColumn(),ni=ei,ri=this._widthOrContainer(!0);if(ti.columnWidth)ni=Math.min(Math.round(ri/ti.columnWidth)||1,ti.columnMax);else{ni=ti.columnMax;let li=0;for(;lidi.c===ni);return this.column(ni,(li==null?void 0:li.layout)||ti.layout),!0}return!1}compact(ti="compact",ei=!0){return this.engine.compact(ti,ei),this._triggerChangeEvent(),this}column(ti,ei="moveScale"){if(!ti||ti<1||this.opts.column===ti)return this;let ni=this.getColumn();return this.opts.column=ti,this.engine?(this.engine.column=ti,this.el.classList.remove("gs-"+ni),this.el.classList.add("gs-"+ti),this.engine.columnChanged(ni,ti,ei),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):this}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(ti=>ti.matches("."+this.opts.itemClass)&&!ti.matches("."+this.opts.placeholderClass))}destroy(ti=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),ti?this.el.parentNode.removeChild(this.el):(this.removeAll(ti),this.el.classList.remove(this._styleSheetClass),this.el.removeAttribute("gs-current-row")),this._removeStylesheet(),this.parentGridItem&&delete this.parentGridItem.subGrid,delete this.parentGridItem,delete this.opts,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(ti){return this.opts.float!==ti&&(this.opts.float=this.engine.float=ti,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(ti,ei=!1){let ni=this.el.getBoundingClientRect(),ri;ei?ri={top:ni.top+document.documentElement.scrollTop,left:ni.left}:ri={top:this.el.offsetTop,left:this.el.offsetLeft};let si=ti.left-ri.left,ai=ti.top-ri.top,li=ni.width/this.getColumn(),di=ni.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(si/li),y:Math.floor(ai/di)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow)}isAreaEmpty(ti,ei,ni,ri){return this.engine.isAreaEmpty(ti,ei,ni,ri)}makeWidget(ti,ei){let ni=ii.getElement(ti);this._prepareElement(ni,!0,ei);let ri=ni.gridstackNode;return this._updateContainerHeight(),ri.subGridOpts&&this.makeSubGrid(ni,ri.subGridOpts,void 0,!1),this.opts.column===1&&(this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,ni}on(ti,ei){return ti.indexOf(" ")!==-1?(ti.split(" ").forEach(ri=>this.on(ri,ei)),this):(ti==="change"||ti==="added"||ti==="removed"||ti==="enable"||ti==="disable"?(ti==="enable"||ti==="disable"?this._gsEventHandler[ti]=ri=>ei(ri):this._gsEventHandler[ti]=ri=>ei(ri,ri.detail),this.el.addEventListener(ti,this._gsEventHandler[ti])):ti==="drag"||ti==="dragstart"||ti==="dragstop"||ti==="resizestart"||ti==="resize"||ti==="resizestop"||ti==="dropped"||ti==="resizecontent"?this._gsEventHandler[ti]=ei:console.error("GridStack.on("+ti+") event not supported"),this)}off(ti){return ti.indexOf(" ")!==-1?(ti.split(" ").forEach(ni=>this.off(ni)),this):((ti==="change"||ti==="added"||ti==="removed"||ti==="enable"||ti==="disable")&&this._gsEventHandler[ti]&&this.el.removeEventListener(ti,this._gsEventHandler[ti]),delete this._gsEventHandler[ti],this)}offAll(){return Object.keys(this._gsEventHandler).forEach(ti=>this.off(ti)),this}removeWidget(ti,ei=!0,ni=!0){return ii.getElements(ti).forEach(ri=>{if(ri.parentElement&&ri.parentElement!==this.el)return;let si=ri.gridstackNode;si||(si=this.engine.nodes.find(ai=>ri===ai.el)),si&&(ei&&ii.addRemoveCB&&ii.addRemoveCB(this.el,si,!1,!1),delete ri.gridstackNode,this._removeDD(ri),this.engine.removeNode(si,ei,ni),ei&&ri.parentElement&&ri.remove())}),ni&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this}removeAll(ti=!0,ei=!0){return this.engine.nodes.forEach(ni=>{ti&&ii.addRemoveCB&&ii.addRemoveCB(this.el,ni,!1,!1),delete ni.el.gridstackNode,this.opts.staticGrid||this._removeDD(ni.el)}),this.engine.removeAll(ti,ei),ei&&this._triggerRemoveEvent(),this}setAnimation(ti=this.opts.animate,ei){return ei?setTimeout(()=>{this.opts&&this.setAnimation(ti)}):ti?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(ti,ei=!0,ni=!0){return!!this.opts.staticGrid===ti?this:(ti?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(ri=>{this._prepareDragDropByNode(ri),ri.subGrid&&ni&&ri.subGrid.setStatic(ti,ei,ni)}),ei&&this._setStaticClass(),this)}update(ti,ei){if(arguments.length>2){console.warn("gridstack.ts: `update(el, x, y, w, h)` is deprecated. Use `update(el, {x, w, content, ...})`. It will be removed soon");let ni=arguments,ri=1;return ei={x:ni[ri++],y:ni[ri++],w:ni[ri++],h:ni[ri++]},this.update(ti,ei)}return ii.getElements(ti).forEach(ni=>{var hi;let ri=ni==null?void 0:ni.gridstackNode;if(!ri)return;let si=xi.cloneDeep(ei);this.engine.nodeBoundFix(si),delete si.autoPosition,delete si.id;let ai=["x","y","w","h"],li;if(ai.some(_i=>si[_i]!==void 0&&si[_i]!==ri[_i])&&(li={},ai.forEach(_i=>{li[_i]=si[_i]!==void 0?si[_i]:ri[_i],delete si[_i]})),!li&&(si.minW||si.minH||si.maxW||si.maxH)&&(li={}),si.content!==void 0){let _i=ni.querySelector(".grid-stack-item-content");_i&&_i.innerHTML!==si.content&&(_i.innerHTML=si.content,(hi=ri.subGrid)!=null&&hi.el&&(_i.appendChild(ri.subGrid.el),ri.subGrid.opts.styleInHead||ri.subGrid._updateStyles(!0))),delete si.content}let di=!1,mi=!1;for(let _i in si)_i[0]!=="_"&&ri[_i]!==si[_i]&&(ri[_i]=si[_i],di=!0,mi=mi||!this.opts.staticGrid&&(_i==="noResize"||_i==="noMove"||_i==="locked"));if(xi.sanitizeMinMax(ri),li){let _i=li.w!==void 0&&li.w!==ri.w;this.moveNode(ri,li),this.resizeToContentCheck(_i,ri),delete ri._orig}(li||di)&&this._writeAttr(ni,ri),mi&&this._prepareDragDropByNode(ri)}),this}moveNode(ti,ei){let ni=ti._updating;ni||this.engine.cleanNodes().beginUpdate(ti),this.engine.moveNode(ti,ei),this._updateContainerHeight(),ni||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(ti){var Ei,Ai;if(!ti||(ti.classList.remove("size-to-content-max"),!ti.clientHeight))return;let ei=ti.gridstackNode;if(!ei)return;let ni=ei.grid;if(!ni||ti.parentElement!==ni.el)return;let ri=ni.getCellHeight(!0);if(!ri)return;let si=ei.h?ei.h*ri:ti.clientHeight,ai;if(ei.resizeToContentParent&&(ai=ti.querySelector(ei.resizeToContentParent)),ai||(ai=ti.querySelector(ii.resizeToContentParent)),!ai)return;let li=ti.clientHeight-ai.clientHeight,di=ei.h?ei.h*ri-li:ai.clientHeight,mi;if(ei.subGrid)mi=ei.subGrid.getRow()*ei.subGrid.getCellHeight(!0);else{if((Ai=(Ei=ei.subGridOpts)==null?void 0:Ei.children)!=null&&Ai.length)return;{let ki=ai.firstElementChild;if(!ki){console.error(`Error: GridStack.resizeToContent() widget id:${ei.id} '${ii.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}mi=ki.getBoundingClientRect().height||di}}if(di===mi)return;si+=mi-di;let hi=Math.ceil(si/ri),_i=Number.isInteger(ei.sizeToContent)?ei.sizeToContent:0;_i&&hi>_i&&(hi=_i,ti.classList.add("size-to-content-max")),ei.minH&&hiei.maxH&&(hi=ei.maxH),hi!==ei.h&&(ni._ignoreLayoutsNodeChange=!0,ni.moveNode(ei,{h:hi}),delete ni._ignoreLayoutsNodeChange)}resizeToContentCBCheck(ti){ii.resizeToContentCB?ii.resizeToContentCB(ti):this.resizeToContent(ti)}rotate(ti,ei){return ii.getElements(ti).forEach(ni=>{let ri=ni.gridstackNode;if(!xi.canBeRotated(ri))return;let si={w:ri.h,h:ri.w,minH:ri.minW,minW:ri.minH,maxH:ri.maxW,maxW:ri.maxH};if(ei){let li=ei.left>0?Math.floor(ei.left/this.cellWidth()):0,di=ei.top>0?Math.floor(ei.top/this.opts.cellHeight):0;si.x=ri.x+li-(ri.h-(di+1)),si.y=ri.y+di-li}Object.keys(si).forEach(li=>{si[li]===void 0&&delete si[li]});let ai=ri._orig;this.update(ni,si),ri._orig=ai}),this}margin(ti){if(!(typeof ti=="string"&&ti.split(" ").length>1)){let ni=xi.parseHeight(ti);if(this.opts.marginUnit===ni.unit&&this.opts.margin===ni.h)return}return this.opts.margin=ti,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this._updateStyles(!0),this}getMargin(){return this.opts.margin}willItFit(ti){if(arguments.length>1){console.warn("gridstack.ts: `willItFit(x,y,w,h,autoPosition)` is deprecated. Use `willItFit({x, y,...})`. It will be removed soon");let ei=arguments,ni=0,ri={x:ei[ni++],y:ei[ni++],w:ei[ni++],h:ei[ni++],autoPosition:ei[ni++]};return this.willItFit(ri)}return this.engine.willItFit(ti)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let ti=this.engine.getDirtyNodes(!0);return ti&&ti.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(ti),this._triggerEvent("change",ti)),this.engine.saveInitial(),this}_triggerAddEvent(){var ti;if(this.engine.batchMode)return this;if((ti=this.engine.addedNodes)!=null&&ti.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(ni=>{delete ni._dirty});let ei=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",ei)}return this}_triggerRemoveEvent(){var ti;if(this.engine.batchMode)return this;if((ti=this.engine.removedNodes)!=null&&ti.length){let ei=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",ei)}return this}_triggerEvent(ti,ei){let ni=ei?new CustomEvent(ti,{bubbles:!1,detail:ei}):new Event(ti);return this.el.dispatchEvent(ni),this}_removeStylesheet(){if(this._styles){let ti=this.opts.styleInHead?void 0:this.el.parentNode;xi.removeStylesheet(this._styleSheetClass,ti),delete this._styles}return this}_updateStyles(ti=!1,ei){if(ti&&this._removeStylesheet(),ei===void 0&&(ei=this.getRow()),this._updateContainerHeight(),this.opts.cellHeight===0)return this;let ni=this.opts.cellHeight,ri=this.opts.cellHeightUnit,si=`.${this._styleSheetClass} > .${this.opts.itemClass}`;if(!this._styles){let ai=this.opts.styleInHead?void 0:this.el.parentNode;if(this._styles=xi.createStylesheet(this._styleSheetClass,ai,{nonce:this.opts.nonce}),!this._styles)return this;this._styles._max=0,xi.addCSSRule(this._styles,si,`height: ${ni}${ri}`);let li=this.opts.marginTop+this.opts.marginUnit,di=this.opts.marginBottom+this.opts.marginUnit,mi=this.opts.marginRight+this.opts.marginUnit,hi=this.opts.marginLeft+this.opts.marginUnit,_i=`${si} > .grid-stack-item-content`,Ei=`.${this._styleSheetClass} > .grid-stack-placeholder > .placeholder-content`;xi.addCSSRule(this._styles,_i,`top: ${li}; right: ${mi}; bottom: ${di}; left: ${hi};`),xi.addCSSRule(this._styles,Ei,`top: ${li}; right: ${mi}; bottom: ${di}; left: ${hi};`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-n`,`top: ${li};`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-s`,`bottom: ${di}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-ne`,`right: ${mi}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-e`,`right: ${mi}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-se`,`right: ${mi}; bottom: ${di}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-nw`,`left: ${hi}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-w`,`left: ${hi}`),xi.addCSSRule(this._styles,`${si} > .ui-resizable-sw`,`left: ${hi}; bottom: ${di}`)}if(ei=ei||this._styles._max,ei>this._styles._max){let ai=li=>ni*li+ri;for(let li=this._styles._max+1;li<=ei;li++)xi.addCSSRule(this._styles,`${si}[gs-y="${li}"]`,`top: ${ai(li)}`),xi.addCSSRule(this._styles,`${si}[gs-h="${li+1}"]`,`height: ${ai(li+1)}`);this._styles._max=ei}return this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let ti=this.parentGridItem,ei=this.getRow()+this._extraDragRow,ni=this.opts.cellHeight,ri=this.opts.cellHeightUnit;if(!ni)return this;if(!ti){let si=xi.parseHeight(getComputedStyle(this.el).minHeight);if(si.h>0&&si.unit===ri){let ai=Math.floor(si.h/ni);ei1?ti.setAttribute("gs-w",String(ei.w)):ti.removeAttribute("gs-w"),ei.h>1?ti.setAttribute("gs-h",String(ei.h)):ti.removeAttribute("gs-h"),this}_writeAttr(ti,ei){if(!ei)return this;this._writePosAttr(ti,ei);let ni={autoPosition:"gs-auto-position",noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id"};for(let ri in ni)ei[ri]?ti.setAttribute(ni[ri],String(ei[ri])):ti.removeAttribute(ni[ri]);return this}_readAttr(ti,ei=!0){let ni={};ni.x=xi.toNumber(ti.getAttribute("gs-x")),ni.y=xi.toNumber(ti.getAttribute("gs-y")),ni.w=xi.toNumber(ti.getAttribute("gs-w")),ni.h=xi.toNumber(ti.getAttribute("gs-h")),ni.autoPosition=xi.toBool(ti.getAttribute("gs-auto-position")),ni.noResize=xi.toBool(ti.getAttribute("gs-no-resize")),ni.noMove=xi.toBool(ti.getAttribute("gs-no-move")),ni.locked=xi.toBool(ti.getAttribute("gs-locked")),ni.id=ti.getAttribute("gs-id"),ni.maxW=xi.toNumber(ti.getAttribute("gs-max-w")),ni.minW=xi.toNumber(ti.getAttribute("gs-min-w")),ni.maxH=xi.toNumber(ti.getAttribute("gs-max-h")),ni.minH=xi.toNumber(ti.getAttribute("gs-min-h")),ei&&(ni.w===1&&ti.removeAttribute("gs-w"),ni.h===1&&ti.removeAttribute("gs-h"),ni.maxW&&ti.removeAttribute("gs-max-w"),ni.minW&&ti.removeAttribute("gs-min-w"),ni.maxH&&ti.removeAttribute("gs-max-h"),ni.minH&&ti.removeAttribute("gs-min-h"));for(let ri in ni){if(!ni.hasOwnProperty(ri))return;!ni[ri]&&ni[ri]!==0&&delete ni[ri]}return ni}_setStaticClass(){let ti=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...ti),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...ti),this.el.removeAttribute("gs-static")),this}onResize(){var ei;if(!((ei=this.el)!=null&&ei.clientWidth)||this.prevWidth===this.el.clientWidth)return;this.prevWidth=this.el.clientWidth,this.batchUpdate();let ti=!1;return this._autoColumn&&this.parentGridItem?this.opts.column!==this.parentGridItem.w&&(this.column(this.parentGridItem.w,"none"),ti=!0):ti=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(ni=>{ni.subGrid&&ni.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(ti),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(ti=!1,ei=void 0){if(this.engine){if(ti&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,ei),310);if(ei)xi.shouldSizeToContent(ei)&&this.resizeToContentCBCheck(ei.el);else if(this.engine.nodes.some(ni=>xi.shouldSizeToContent(ni))){let ni=[...this.engine.nodes];this.batchUpdate(),ni.forEach(ri=>{xi.shouldSizeToContent(ri)&&this.resizeToContentCBCheck(ri.el)}),this.batchUpdate(!1)}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,ei?[ei]:this.engine.nodes)}}_updateResizeEvent(ti=!1){let ei=!this.parentGridItem&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(ni=>ni.sizeToContent));return!ti&&ei&&!this.resizeObserver?(this._sizeThrottle=xi.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(ti||!ei)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(ti=".grid-stack-item"){return xi.getElement(ti)}static getElements(ti=".grid-stack-item"){return xi.getElements(ti)}static getGridElement(ti){return ii.getElement(ti)}static getGridElements(ti){return xi.getElements(ti)}_initMargin(){let ti,ei=0,ni=[];return typeof this.opts.margin=="string"&&(ni=this.opts.margin.split(" ")),ni.length===2?(this.opts.marginTop=this.opts.marginBottom=ni[0],this.opts.marginLeft=this.opts.marginRight=ni[1]):ni.length===4?(this.opts.marginTop=ni[0],this.opts.marginRight=ni[1],this.opts.marginBottom=ni[2],this.opts.marginLeft=ni[3]):(ti=xi.parseHeight(this.opts.margin),this.opts.marginUnit=ti.unit,ei=this.opts.margin=ti.h),this.opts.marginTop===void 0?this.opts.marginTop=ei:(ti=xi.parseHeight(this.opts.marginTop),this.opts.marginTop=ti.h,delete this.opts.margin),this.opts.marginBottom===void 0?this.opts.marginBottom=ei:(ti=xi.parseHeight(this.opts.marginBottom),this.opts.marginBottom=ti.h,delete this.opts.margin),this.opts.marginRight===void 0?this.opts.marginRight=ei:(ti=xi.parseHeight(this.opts.marginRight),this.opts.marginRight=ti.h,delete this.opts.margin),this.opts.marginLeft===void 0?this.opts.marginLeft=ei:(ti=xi.parseHeight(this.opts.marginLeft),this.opts.marginLeft=ti.h,delete this.opts.margin),this.opts.marginUnit=ti.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop),this}static getDD(){return os}static setupDragIn(ti,ei,ni=document){(ei==null?void 0:ei.pause)!==void 0&&(sn.pauseDrag=ei.pause),ei=Ui(Ui({},Gf),ei||{});let ri=typeof ti=="string"?xi.getElements(ti,ni):ti;ri.length&&(ri==null||ri.forEach(si=>{os.isDraggable(si)||os.dragIn(si,ei)}))}movable(ti,ei){return this.opts.staticGrid?this:(ii.getElements(ti).forEach(ni=>{let ri=ni.gridstackNode;ri&&(ei?delete ri.noMove:ri.noMove=!0,this._prepareDragDropByNode(ri))}),this)}resizable(ti,ei){return this.opts.staticGrid?this:(ii.getElements(ti).forEach(ni=>{let ri=ni.gridstackNode;ri&&(ei?delete ri.noResize:ri.noResize=!0,this._prepareDragDropByNode(ri))}),this)}disable(ti=!0){if(!this.opts.staticGrid)return this.enableMove(!1,ti),this.enableResize(!1,ti),this._triggerEvent("disable"),this}enable(ti=!0){if(!this.opts.staticGrid)return this.enableMove(!0,ti),this.enableResize(!0,ti),this._triggerEvent("enable"),this}enableMove(ti,ei=!0){return this.opts.staticGrid?this:(ti?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(ni=>{this._prepareDragDropByNode(ni),ni.subGrid&&ei&&ni.subGrid.enableMove(ti,ei)}),this)}enableResize(ti,ei=!0){return this.opts.staticGrid?this:(ti?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(ni=>{this._prepareDragDropByNode(ni),ni.subGrid&&ei&&ni.subGrid.enableResize(ti,ei)}),this)}_removeDD(ti){return os.draggable(ti,"destroy").resizable(ti,"destroy"),ti.gridstackNode&&delete ti.gridstackNode._initDD,delete ti.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return os.droppable(this.el,"destroy"),this;let ti,ei,ni=(ri,si,ai)=>{var Ei;let li=si.gridstackNode;if(!li)return;if(ai=ai||si,!((Ei=li.grid)!=null&&Ei.el)){ai.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let Ai=ai.getBoundingClientRect();ai.style.left=Ai.x+(this.dragTransform.xScale-1)*(ri.clientX-Ai.x)/this.dragTransform.xScale+"px",ai.style.top=Ai.y+(this.dragTransform.yScale-1)*(ri.clientY-Ai.y)/this.dragTransform.yScale+"px",ai.style.transformOrigin="0px 0px"}let di=this.el.getBoundingClientRect(),{top:mi,left:hi}=ai.getBoundingClientRect();hi-=di.left,mi-=di.top;let _i={position:{top:mi*this.dragTransform.xScale,left:hi*this.dragTransform.yScale}};if(li._temporaryRemoved){if(li.x=Math.max(0,Math.round(hi/ei)),li.y=Math.max(0,Math.round(mi/ti)),delete li.autoPosition,this.engine.nodeBoundFix(li),!this.engine.willItFit(li)){if(li.autoPosition=!0,!this.engine.willItFit(li)){os.off(si,"drag");return}li._willFitPos&&(xi.copyPos(li,li._willFitPos),delete li._willFitPos)}this._onStartMoving(ai,ri,_i,li,ei,ti)}else this._dragOrResize(ai,ri,_i,li,ei,ti)};return os.droppable(this.el,{accept:ri=>{let si=ri.gridstackNode||this._readAttr(ri,!1);if((si==null?void 0:si.grid)===this)return!0;if(!this.opts.acceptWidgets)return!1;let ai=!0;if(typeof this.opts.acceptWidgets=="function")ai=this.opts.acceptWidgets(ri);else{let li=this.opts.acceptWidgets===!0?".grid-stack-item":this.opts.acceptWidgets;ai=ri.matches(li)}if(ai&&si&&this.opts.maxRow){let li={w:si.w,h:si.h,minW:si.minW,minH:si.minH};ai=this.engine.willItFit(li)}return ai}}).on(this.el,"dropover",(ri,si,ai)=>{let li=si.gridstackNode;if((li==null?void 0:li.grid)===this&&!li._temporaryRemoved)return!1;li!=null&&li.grid&&li.grid!==this&&!li._temporaryRemoved&&li.grid._leave(si,ai),ei=this.cellWidth(),ti=this.getCellHeight(!0),li||(li=this._readAttr(si,!1)),li.grid||(li._isExternal=!0,si.gridstackNode=li),ai=ai||si;let di=li.w||Math.round(ai.offsetWidth/ei)||1,mi=li.h||Math.round(ai.offsetHeight/ti)||1;return li.grid&&li.grid!==this?(si._gridstackNodeOrig||(si._gridstackNodeOrig=li),si.gridstackNode=li=Hn(Ui({},li),{w:di,h:mi,grid:this}),delete li.x,delete li.y,this.engine.cleanupNode(li).nodeBoundFix(li),li._initDD=li._isExternal=li._temporaryRemoved=!0):(li.w=di,li.h=mi,li._temporaryRemoved=!0),ii._itemRemoving(li.el,!1),os.on(si,"drag",ni),ni(ri,si,ai),!1}).on(this.el,"dropout",(ri,si,ai)=>{let li=si.gridstackNode;return li&&(!li.grid||li.grid===this)&&(this._leave(si,ai),this._isTemp&&this.removeAsSubGrid(li)),!1}).on(this.el,"drop",(ri,si,ai)=>{var Ei,Ai,ki;let li=si.gridstackNode;if((li==null?void 0:li.grid)===this&&!li._isExternal)return!1;let di=!!this.placeholder.parentElement;this.placeholder.remove();let mi=di&&this.opts.animate;mi&&this.setAnimation(!1);let hi=si._gridstackNodeOrig;if(delete si._gridstackNodeOrig,di&&(hi!=null&&hi.grid)&&hi.grid!==this){let Ti=hi.grid;Ti.engine.removeNodeFromLayoutCache(hi),Ti.engine.removedNodes.push(hi),Ti._triggerRemoveEvent()._triggerChangeEvent(),Ti.parentGridItem&&!Ti.engine.nodes.length&&Ti.opts.subGridDynamic&&Ti.removeAsSubGrid()}if(!li||(di&&(this.engine.cleanupNode(li),li.grid=this),(Ei=li.grid)==null||delete Ei._isTemp,os.off(si,"drag"),ai!==si?(ai.remove(),si.gridstackNode=hi,di&&(si=si.cloneNode(!0))):(si.remove(),this._removeDD(si)),!di))return!1;si.gridstackNode=li,li.el=si;let _i=(ki=(Ai=li.subGrid)==null?void 0:Ai.el)==null?void 0:ki.gridstack;return xi.copyPos(li,this._readAttr(this.placeholder)),xi.removePositioningStyles(si),this.el.appendChild(si),this._prepareElement(si,!0,li),_i&&(_i.parentGridItem=li,_i.opts.styleInHead||_i._updateStyles(!0)),this._updateContainerHeight(),this.engine.addedNodes.push(li),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped(Hn(Ui({},ri),{type:"dropped"}),hi&&hi.grid?hi:void 0,li),mi&&this.setAnimation(this.opts.animate,!0),!1}),this}static _itemRemoving(ti,ei){let ni=ti?ti.gridstackNode:void 0;!(ni!=null&&ni.grid)||ti.classList.contains(ni.grid.opts.removableOptions.decline)||(ei?ni._isAboutToRemove=!0:delete ni._isAboutToRemove,ei?ti.classList.add("grid-stack-item-removing"):ti.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if(typeof this.opts.removable!="string")return this;let ti=document.querySelector(this.opts.removable);return ti?(!this.opts.staticGrid&&!os.isDroppable(ti)&&os.droppable(ti,this.opts.removableOptions).on(ti,"dropover",(ei,ni)=>ii._itemRemoving(ni,!0)).on(ti,"dropout",(ei,ni)=>ii._itemRemoving(ni,!1)),this):this}_prepareDragDropByNode(ti){let ei=ti.el,ni=ti.noMove||this.opts.disableDrag,ri=ti.noResize||this.opts.disableResize;if(this.opts.staticGrid||ni&&ri)return ti._initDD&&(this._removeDD(ei),delete ti._initDD),ei.classList.add("ui-draggable-disabled","ui-resizable-disabled"),this;if(!ti._initDD){let si,ai,li=(hi,_i)=>{this._gsEventHandler[hi.type]&&this._gsEventHandler[hi.type](hi,hi.target),si=this.cellWidth(),ai=this.getCellHeight(!0),this._onStartMoving(ei,hi,_i,ti,si,ai)},di=(hi,_i)=>{this._dragOrResize(ei,hi,_i,ti,si,ai)},mi=hi=>{this.placeholder.remove(),delete ti._moving,delete ti._event,delete ti._lastTried;let _i=ti.w!==ti._orig.w,Ei=hi.target;if(!(!Ei.gridstackNode||Ei.gridstackNode.grid!==this)){if(ti.el=Ei,ti._isAboutToRemove){let Ai=ei.gridstackNode.grid;Ai._gsEventHandler[hi.type]&&Ai._gsEventHandler[hi.type](hi,Ei),Ai.engine.nodes.push(ti),Ai.removeWidget(ei,!0,!0)}else xi.removePositioningStyles(Ei),ti._temporaryRemoved?(xi.copyPos(ti,ti._orig),this._writePosAttr(Ei,ti),this.engine.addNode(ti)):this._writePosAttr(Ei,ti),this._gsEventHandler[hi.type]&&this._gsEventHandler[hi.type](hi,Ei);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),hi.type==="resizestop"&&(Number.isInteger(ti.sizeToContent)&&(ti.sizeToContent=ti.h),this.resizeToContentCheck(_i,ti))}};os.draggable(ei,{start:li,stop:mi,drag:di}).resizable(ei,{start:li,stop:mi,resize:di}),ti._initDD=!0}return os.draggable(ei,ni?"disable":"enable").resizable(ei,ri?"disable":"enable"),this}_onStartMoving(ti,ei,ni,ri,si,ai){var li;if(this.engine.cleanNodes().beginUpdate(ri),this._writePosAttr(this.placeholder,ri),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=ri,(li=ri.grid)!=null&&li.el)this.dragTransform=xi.getValuesFromTransformedElement(ti);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){let di=this.placeholder.closest(".grid-stack");this.dragTransform=xi.getValuesFromTransformedElement(di)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(ri.el=this.placeholder,ri._lastUiPosition=ni.position,ri._prevYPix=ni.position.top,ri._moving=ei.type==="dragstart",delete ri._lastTried,ei.type==="dropover"&&ri._temporaryRemoved&&(this.engine.addNode(ri),ri._moving=!0),this.engine.cacheRects(si,ai,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),ei.type==="resizestart"){let di=this.getColumn()-ri.x,mi=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-ri.y;os.resizable(ti,"option","minWidth",si*Math.min(ri.minW||1,di)).resizable(ti,"option","minHeight",ai*Math.min(ri.minH||1,mi)).resizable(ti,"option","maxWidth",si*Math.min(ri.maxW||Number.MAX_SAFE_INTEGER,di)).resizable(ti,"option","maxWidthMoveLeft",si*Math.min(ri.maxW||Number.MAX_SAFE_INTEGER,ri.x+ri.w)).resizable(ti,"option","maxHeight",ai*Math.min(ri.maxH||Number.MAX_SAFE_INTEGER,mi)).resizable(ti,"option","maxHeightMoveUp",ai*Math.min(ri.maxH||Number.MAX_SAFE_INTEGER,ri.y+ri.h))}}_dragOrResize(ti,ei,ni,ri,si,ai){let li=Ui({},ri._orig),di,mi=this.opts.marginLeft,hi=this.opts.marginRight,_i=this.opts.marginTop,Ei=this.opts.marginBottom,Ai=Math.round(ai*.1),ki=Math.round(si*.1);if(mi=Math.min(mi,ki),hi=Math.min(hi,ki),_i=Math.min(_i,Ai),Ei=Math.min(Ei,Ai),ei.type==="drag"){if(ri._temporaryRemoved)return;let Fi=ni.position.top-ri._prevYPix;ri._prevYPix=ni.position.top,this.opts.draggable.scroll!==!1&&xi.updateScrollPosition(ti,ni.position,Fi);let en=ni.position.left+(ni.position.left>ri._lastUiPosition.left?-hi:mi),rn=ni.position.top+(ni.position.top>ri._lastUiPosition.top?-Ei:_i);li.x=Math.round(en/si),li.y=Math.round(rn/ai);let ln=this._extraDragRow;if(this.engine.collide(ri,li)){let Yi=this.getRow(),on=Math.max(0,li.y+ri.h-Yi);this.opts.maxRow&&Yi+on>this.opts.maxRow&&(on=Math.max(0,this.opts.maxRow-Yi)),this._extraDragRow=on}else this._extraDragRow=0;if(this._extraDragRow!==ln&&this._updateContainerHeight(),ri.x===li.x&&ri.y===li.y)return}else if(ei.type==="resize"){if(li.x<0||(xi.updateScrollResize(ei,ti,ai),li.w=Math.round((ni.size.width-mi)/si),li.h=Math.round((ni.size.height-_i)/ai),ri.w===li.w&&ri.h===li.h)||ri._lastTried&&ri._lastTried.w===li.w&&ri._lastTried.h===li.h)return;let Fi=ni.position.left+mi,en=ni.position.top+_i;li.x=Math.round(Fi/si),li.y=Math.round(en/ai),di=!0}ri._event=ei,ri._lastTried=li;let Ti={x:ni.position.left+mi,y:ni.position.top+_i,w:(ni.size?ni.size.width:ri.w*si)-mi-hi,h:(ni.size?ni.size.height:ri.h*ai)-_i-Ei};if(this.engine.moveNodeCheck(ri,Hn(Ui({},li),{cellWidth:si,cellHeight:ai,rect:Ti,resizing:di}))){ri._lastUiPosition=ni.position,this.engine.cacheRects(si,ai,_i,hi,Ei,mi),delete ri._skipDown,di&&ri.subGrid&&ri.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let Fi=ei.target;this._writePosAttr(Fi,ri),this._gsEventHandler[ei.type]&&this._gsEventHandler[ei.type](ei,Fi)}}_leave(ti,ei){let ni=ti.gridstackNode;ni&&(ei=ei||ti,ei.style.transform="scale(1)",os.off(ti,"drag"),!ni._temporaryRemoved&&(ni._temporaryRemoved=!0,this.engine.removeNode(ni),ni.el=ni._isExternal&&ei?ei:ti,this.opts.removable===!0&&ii._itemRemoving(ti,!0),ti._gridstackNodeOrig?(ti.gridstackNode=ti._gridstackNodeOrig,delete ti._gridstackNodeOrig):ni._isExternal&&(delete ni.el,delete ti.gridstackNode,this.engine.restoreInitial())))}commit(){return Yf(this,this.batchUpdate(!1),"commit","batchUpdate","5.2"),this}};ho.resizeToContentParent=".grid-stack-item-content";ho.Utils=xi;ho.Engine=Io;ho.GDRev="10.3.1";function qy(){let ii=document.getElementById("dashboard");ii&&ii.gridstack.disable()}function Wy(){let ii=document.getElementById("dashboard");ii&&ii.gridstack.enable()}function Uy(ii,ti){return ks(this,null,function*(){return yield ra(ii,{layout:ti})})}function Qf(){if(document.getElementById("dashboard")==null)return;let ti=ho.init({cellHeight:100,disableDrag:!0,disableResize:!0,draggable:{handle:".grid-stack-item-content .card-header",appendTo:"body",scroll:!0}}),ei=document.getElementById("lock_dashboard");ei&&ei.addEventListener("click",()=>{qy()});let ni=document.getElementById("unlock_dashboard");ni&&ni.addEventListener("click",()=>{Wy()});let ri=document.getElementById("save_dashboard");ri!==null&&ri.addEventListener("click",()=>{let si=ri.getAttribute("data-url");if(si==null)return;let ai=ti.save(!1);Uy(si,ai).then(li=>{Mo(li)?ao("danger","Error Saving Dashboard Config",li.error).show():location.reload()})})}function Xf(ii,ti){switch(ii){case"images-and-labels":{cu("image.device-image",ti),cu("text.device-image-label",ti);break}case"images-only":{cu("image.device-image",ti),uu("text.device-image-label",ti);break}case"labels-only":{uu("image.device-image",ti),uu("text.device-image-label",ti);break}}}function cu(ii,ti){var ni,ri;let ei=(ri=(ni=ti.contentDocument)==null?void 0:ni.querySelectorAll(ii))!=null?ri:[];for(let si of ei)si.classList.remove("hidden")}function uu(ii,ti){var ni,ri;let ei=(ri=(ni=ti.contentDocument)==null?void 0:ni.querySelectorAll(ii))!=null?ri:[];for(let si of ei)si.classList.add("hidden")}function Yy(ii,ti){ti.set("view",ii);for(let ei of Gi(".rack_elevation"))Xf(ii,ei)}function Jf(){let ii=Jc.get("view");for(let ti of Gi("select.rack-view"))ti.selectedIndex=[...ti.options].findIndex(ei=>ei.value==ii),ti.addEventListener("change",ei=>{Yy(ei.currentTarget.value,Jc)},!1);for(let ti of Gi(".rack_elevation"))ti.addEventListener("load",()=>{Xf(ii,ti)})}function Gy(ii){let ti=document.getElementById("selector_results");if(ti==null)return;let ei=ti.getAttribute("data-selector-target");if(ei==null)return;let ni=document.getElementById(ei);if(ni==null)return;let ri=ii.getAttribute("data-label"),si=ii.getAttribute("data-value");ni.tomselect.addOption({id:si,display:ri}),ni.tomselect.addItem(si)}function Zf(){for(let ii of Gi("#selector_results a"))ii.addEventListener("click",()=>Gy(ii))}function Ky(){for(let ii of[Ll,kl,Ol,Zf,xl,Ml])ii()}function eh(){document.addEventListener("htmx:afterSettle",Ky)}function Qy(ii){let ti=ii.currentTarget,ei=ti.baseURI.split("?")[0],ni="?",ri=Array.from(ti.options).filter(si=>si.selected).map(si=>`filter_id=${si.value}`).join("&");ei+=`${ni}${ri}`,document.location.href=ei}function th(){let ii=document.getElementById("results");if(Un(ii)){let ti=document.getElementById("id_filter_id");Un(ti)&&ti.addEventListener("change",Qy)}}function ih(){for(let ii of[xl,Nf,Ml,$d,jd,Ol,zf,Ll,kl,Vf,Wf,Uf,Qf,Jf,eh,th])ii()}function Xy(){let ii=document.forms;for(let ei of ii)ei.method.toUpperCase()=="GET"&&ei.addEventListener("formdata",function(ni){let ri=ni.formData;for(let[si,ai]of Array.from(ri.entries()))ai===""&&ri.delete(si)});let ti=document.querySelector(".content-container");ti!==null&&ti.focus()}window.addEventListener("load",Xy);document.readyState!=="loading"?ih():document.addEventListener("DOMContentLoaded",ih);})();
/*! Bundled license information:
tom-select/dist/js/tom-select.complete.js:
diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map
index 212be3659ea..0f4ac63d3d6 100644
--- a/netbox/project-static/dist/netbox.js.map
+++ b/netbox/project-static/dist/netbox.js.map
@@ -1,6 +1,6 @@
{
"version": 3,
- "sources": ["../node_modules/htmx.org/dist/htmx.min.js", "../node_modules/tom-select/src/contrib/microevent.ts", "../node_modules/tom-select/src/contrib/microplugin.ts", "../node_modules/tom-select/node_modules/@orchidjs/unicode-variants/dist/esm/regex.js", "../node_modules/tom-select/node_modules/@orchidjs/unicode-variants/dist/esm/strings.js", "../node_modules/tom-select/node_modules/@orchidjs/unicode-variants/dist/esm/index.js", "../node_modules/tom-select/node_modules/@orchidjs/sifter/dist/esm/utils.js", "../node_modules/tom-select/node_modules/@orchidjs/sifter/dist/esm/sifter.js", "../node_modules/tom-select/node_modules/@orchidjs/sifter/lib/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/contrib/highlight.ts", "../node_modules/tom-select/src/constants.ts", "../node_modules/tom-select/src/defaults.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/getSettings.ts", "../node_modules/tom-select/src/tom-select.ts", "../node_modules/tom-select/src/plugins/change_listener/plugin.ts", "../node_modules/tom-select/src/plugins/checkbox_options/plugin.ts", "../node_modules/tom-select/src/plugins/clear_button/plugin.ts", "../node_modules/tom-select/src/plugins/drag_drop/plugin.ts", "../node_modules/tom-select/src/plugins/dropdown_header/plugin.ts", "../node_modules/tom-select/src/plugins/caret_position/plugin.ts", "../node_modules/tom-select/src/plugins/dropdown_input/plugin.ts", "../node_modules/tom-select/src/plugins/input_autogrow/plugin.ts", "../node_modules/tom-select/src/plugins/no_backspace_delete/plugin.ts", "../node_modules/tom-select/src/plugins/no_active_items/plugin.ts", "../node_modules/tom-select/src/plugins/optgroup_columns/plugin.ts", "../node_modules/tom-select/src/plugins/remove_button/plugin.ts", "../node_modules/tom-select/src/plugins/restore_on_backspace/plugin.ts", "../node_modules/tom-select/src/plugins/virtual_scroll/plugin.ts", "../node_modules/tom-select/src/tom-select.complete.ts", "../node_modules/@orchidjs/unicode-variants/lib/regex.mjs", "../node_modules/@orchidjs/unicode-variants/lib/strings.mjs", "../node_modules/@orchidjs/unicode-variants/lib/index.mjs", "../node_modules/clipboard/dist/clipboard.js", "../node_modules/@popperjs/core/lib/index.js", "../node_modules/@popperjs/core/lib/enums.js", "../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../node_modules/@popperjs/core/lib/utils/math.js", "../node_modules/@popperjs/core/lib/utils/userAgent.js", "../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../node_modules/@popperjs/core/lib/dom-utils/contains.js", "../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../node_modules/@popperjs/core/lib/utils/within.js", "../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../node_modules/@popperjs/core/lib/modifiers/arrow.js", "../node_modules/@popperjs/core/lib/utils/getVariation.js", "../node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../node_modules/@popperjs/core/lib/modifiers/flip.js", "../node_modules/@popperjs/core/lib/modifiers/hide.js", "../node_modules/@popperjs/core/lib/modifiers/offset.js", "../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../node_modules/@popperjs/core/lib/utils/debounce.js", "../node_modules/@popperjs/core/lib/utils/mergeByName.js", "../node_modules/@popperjs/core/lib/createPopper.js", "../node_modules/@popperjs/core/lib/popper-lite.js", "../node_modules/@popperjs/core/lib/popper.js", "../node_modules/bootstrap/js/src/dom/data.js", "../node_modules/bootstrap/js/src/util/index.js", "../node_modules/bootstrap/js/src/dom/event-handler.js", "../node_modules/bootstrap/js/src/dom/manipulator.js", "../node_modules/bootstrap/js/src/util/config.js", "../node_modules/bootstrap/js/src/base-component.js", "../node_modules/bootstrap/js/src/dom/selector-engine.js", "../node_modules/bootstrap/js/src/util/component-functions.js", "../node_modules/bootstrap/js/src/alert.js", "../node_modules/bootstrap/js/src/button.js", "../node_modules/bootstrap/js/src/util/swipe.js", "../node_modules/bootstrap/js/src/carousel.js", "../node_modules/bootstrap/js/src/collapse.js", "../node_modules/bootstrap/js/src/dropdown.js", "../node_modules/bootstrap/js/src/util/backdrop.js", "../node_modules/bootstrap/js/src/util/focustrap.js", "../node_modules/bootstrap/js/src/util/scrollbar.js", "../node_modules/bootstrap/js/src/modal.js", "../node_modules/bootstrap/js/src/offcanvas.js", "../node_modules/bootstrap/js/src/util/sanitizer.js", "../node_modules/bootstrap/js/src/util/template-factory.js", "../node_modules/bootstrap/js/src/tooltip.js", "../node_modules/bootstrap/js/src/popover.js", "../node_modules/bootstrap/js/src/scrollspy.js", "../node_modules/bootstrap/js/src/tab.js", "../node_modules/bootstrap/js/src/toast.js", "../src/index.ts", "../src/util.ts", "../src/forms/elements.ts", "../src/forms/speedSelector.ts", "../src/forms/index.ts", "../src/bs.ts", "../src/search.ts", "../src/select/static.ts", "../src/select/config.ts", "../node_modules/@orchidjs/sifter/lib/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/query-string/base.js", "../node_modules/decode-uri-component/index.js", "../node_modules/filter-obj/index.js", "../node_modules/split-on-first/index.js", "../node_modules/query-string/index.js", "../src/select/classes/dynamicTomSelect.ts", "../src/select/types.ts", "../src/select/classes/dynamicParamsMap.ts", "../src/select/dynamic.ts", "../src/select/index.ts", "../src/buttons/connectionToggle.ts", "../src/state/index.ts", "../src/stores/objectDepth.ts", "../src/stores/rackImages.ts", "../src/stores/previousPkCheck.ts", "../src/stores/secret.ts", "../src/buttons/depthToggle.ts", "../src/buttons/moveOptions.ts", "../src/buttons/reslug.ts", "../src/buttons/selectAll.ts", "../src/buttons/selectMultiple.ts", "../src/buttons/markdownPreview.ts", "../src/buttons/secretToggle.ts", "../src/buttons/index.ts", "../src/colorMode.ts", "../src/messages.ts", "../src/clipboard.ts", "../node_modules/flatpickr/dist/esm/types/options.js", "../node_modules/flatpickr/dist/esm/l10n/default.js", "../node_modules/flatpickr/dist/esm/utils/index.js", "../node_modules/flatpickr/dist/esm/utils/dom.js", "../node_modules/flatpickr/dist/esm/utils/formatting.js", "../node_modules/flatpickr/dist/esm/utils/dates.js", "../node_modules/flatpickr/dist/esm/utils/polyfills.js", "../node_modules/flatpickr/dist/esm/index.js", "../src/dateSelector.ts", "../src/tableConfig.ts", "../src/tables/interfaceTable.ts", "../src/sidenav.ts", "../node_modules/gridstack/src/utils.ts", "../node_modules/gridstack/src/gridstack-engine.ts", "../node_modules/gridstack/src/types.ts", "../node_modules/gridstack/src/dd-manager.ts", "../node_modules/gridstack/src/dd-touch.ts", "../node_modules/gridstack/src/dd-resizable-handle.ts", "../node_modules/gridstack/src/dd-base-impl.ts", "../node_modules/gridstack/src/dd-resizable.ts", "../node_modules/gridstack/src/dd-draggable.ts", "../node_modules/gridstack/src/dd-droppable.ts", "../node_modules/gridstack/src/dd-element.ts", "../node_modules/gridstack/src/dd-gridstack.ts", "../node_modules/gridstack/src/gridstack.ts", "../src/dashboard.ts", "../src/racks.ts", "../src/objectSelector.ts", "../src/htmx.ts", "../src/forms/savedFiltersSelect.ts", "../src/netbox.ts"],
- "mappings": "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",
- "names": ["require_htmx_min", "__commonJSMin", "e", "t", "r", "n", "i", "a", "o", "s", "l", "u", "f", "c", "h", "v", "M", "X", "d", "D", "U", "g", "p", "m", "x", "B", "F", "V", "y", "b", "w", "j", "S", "E", "_", "C", "R", "z", "$", "T", "O", "W", "q", "H", "G", "J", "L", "A", "Z", "N", "K", "I", "k", "P", "Y", "forEvents", "events", "callback", "split", "forEach", "event", "MicroEvent", "constructor", "_events", "on", "fct", "event_array", "push", "off", "n", "arguments", "length", "undefined", "splice", "indexOf", "trigger", "args", "self", "apply", "MicroPlugin", "Interface", "plugins", "names", "settings", "requested", "loaded", "define", "name", "fn", "initializePlugins", "key", "queue", "Array", "isArray", "plugin", "options", "hasOwnProperty", "shift", "require", "loadPlugin", "Error", "arrayToPattern", "chars", "maxValueLength", "sequencePattern", "array", "hasDuplicates", "pattern", "prev_char_count", "prev_pattern", "char", "i", "setToPattern", "toArray", "escape_regex", "str", "longest", "value", "unicodeLength", "p", "allSubstrings", "input", "result", "start", "subresult", "tmp", "code_points", "accent_pat", "unicode_map", "multi_char_reg", "max_char_length", "latin_convert", "latin_condensed", "latin", "unicode", "convert_pat", "initialize", "_code_points", "generateMap", "normalize", "form", "asciifold", "_asciifold", "generator", "code_point_min", "code_point_max", "composed", "folded", "generateSets", "unicode_sets", "addMatching", "to_add", "folded_set", "patt", "multi_char", "set", "a", "b", "multi_char_patt", "mapSequence", "strings", "min_replacement", "chars_replaced", "substringsToPattern", "sub_pat", "sequencesToPattern", "sequences", "all", "sequence", "seq", "len", "j", "inSequences", "needle_seq", "needle_parts", "filter", "part", "needle_part", "Sequence", "position", "last_piece", "clone", "parts", "last_part", "last_substr", "clone_last_len", "getPattern", "match", "match_str", "overlapping", "added_types", "new_seq", "old_seq", "getAttr", "obj", "getAttrNesting", "scoreValue", "token", "weight", "score", "pos", "propToArray", "iterate", "object", "cmp", "Sifter", "items", "query", "respect_word_boundaries", "weights", "tokens", "words", "field_regex", "word", "field_match", "field", "regex", "search", "token_count", "fields", "field_count", "getAttrFn", "scoreObject", "data", "sum", "implicit_score", "sort_flds", "sort", "get_field", "s", "fld", "sort_fld", "optsUser", "fn_score", "item", "id", "_", "fn_sort", "getDom", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "escapeQuery", "replace", "triggerEvent", "dom_el", "event_name", "createEvent", "initEvent", "dispatchEvent", "applyCSS", "css", "Object", "assign", "style", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "add", "removeClasses", "remove", "_classes", "concat", "Boolean", "parentMatch", "target", "selector", "wrapper", "contains", "matches", "parentNode", "getTail", "list", "direction", "isEmptyObject", "keys", "nodeIndex", "amongst", "nodeName", "previousElementSibling", "setAttr", "attrs", "val", "attr", "removeAttribute", "setAttribute", "replaceNode", "existing", "replacement", "replaceChild", "highlight", "element", "RegExp", "highlightText", "node", "spannode", "className", "middlebit", "splitText", "index", "middleclone", "cloneNode", "appendChild", "highlightChildren", "nodeType", "childNodes", "test", "tagName", "from", "highlightRecursive", "removeHighlight", "elements", "querySelectorAll", "prototype", "call", "parent", "KEY_A", "KEY_RETURN", "KEY_ESC", "KEY_LEFT", "KEY_UP", "KEY_RIGHT", "KEY_DOWN", "KEY_BACKSPACE", "KEY_DELETE", "KEY_TAB", "KEY_SHORTCUT", "navigator", "userAgent", "defaults", "optgroups", "delimiter", "splitOn", "persist", "diacritics", "create", "createOnBlur", "createFilter", "openOnFocus", "shouldOpen", "maxOptions", "maxItems", "hideSelected", "duplicates", "addPrecedence", "selectOnTab", "preload", "allowEmptyOption", "refreshThrottle", "loadThrottle", "loadingClass", "dataAttr", "optgroupField", "valueField", "labelField", "disabledField", "optgroupLabelField", "optgroupValueField", "lockOptgroupOrder", "sortField", "searchField", "searchConjunction", "mode", "wrapperClass", "controlClass", "dropdownClass", "dropdownContentClass", "itemClass", "optionClass", "dropdownParent", "controlInput", "copyClassesToDropdown", "placeholder", "hidePlaceholder", "shouldLoad", "render", "hash_key", "get_hash", "escape_html", "timeout", "setTimeout", "loadDebounce", "delay", "loading", "Math", "max", "clearTimeout", "loadedSearches", "debounce_events", "types", "type", "event_args", "getSelection", "selectionStart", "selectionEnd", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "addEventListener", "isKeyDown", "key_name", "count", "altKey", "ctrlKey", "shiftKey", "metaKey", "getId", "existing_id", "getAttribute", "addSlashes", "append", "getSettings", "settings_user", "attr_data", "field_label", "field_value", "field_disabled", "field_optgroup", "field_optgroup_label", "field_optgroup_value", "tag_name", "toLowerCase", "option", "textContent", "settings_element", "init_select", "optionsMap", "group_count", "$order", "readData", "dataset", "json", "JSON", "parse", "addOption", "group", "arr", "option_data", "disabled", "$option", "selected", "addGroup", "optgroup", "optgroup_data", "children", "hasAttribute", "child", "init_textbox", "data_raw", "opt", "values", "instance_i", "TomSelect", "input_arg", "user_settings", "control_input", "dropdown", "control", "dropdown_content", "focus_node", "order", "tabIndex", "is_select_tag", "rtl", "inputId", "_destroy", "sifter", "isOpen", "isDisabled", "isReadOnly", "isRequired", "isInvalid", "isValid", "isLocked", "isFocused", "isInputHidden", "isSetup", "ignoreFocus", "ignoreHover", "hasOptions", "currentResults", "lastValue", "caretPos", "activeOption", "activeItems", "userOptions", "refreshTimeout", "dir", "tomselect", "computedStyle", "window", "getComputedStyle", "getPropertyValue", "required", "setupCallbacks", "setupTemplates", "_render", "inputMode", "setup", "passive_event", "passive", "listboxId", "role", "control_id", "label", "label_click", "focus", "bind", "for", "label_id", "width", "classes_plugins", "join", "multiple", "load", "e", "target_match", "onOptionHover", "capture", "onOptionSelect", "onItemSelect", "onClick", "onKeyDown", "onKeyPress", "onInput", "onBlur", "onFocus", "onPaste", "doc_mousedown", "composedPath", "blur", "inputState", "win_scroll", "positionDropdown", "removeEventListener", "revertSettings", "insertAdjacentElement", "sync", "refreshState", "updateOriginalInput", "refreshItems", "close", "disable", "readOnly", "setReadOnly", "enable", "onChange", "setupOptions", "addOptions", "registerOptionGroup", "templates", "optgroup_header", "escape", "option_create", "no_results", "not_loading", "callbacks", "get_settings", "setValue", "lastQuery", "clearActiveItems", "onMouseDown", "pastedText", "inputValue", "splitInput", "piece", "addItem", "createItem", "character", "String", "fromCharCode", "keyCode", "which", "constants", "selectAll", "open", "next", "getAdjacent", "setActiveOption", "prev", "canSelect", "activeElement", "advanceSelection", "deleteSelection", "_onInput", "refreshOptions", "wasFocused", "hasFocus", "deactivate", "setActiveItem", "setCaret", "parentElement", "closeAfterSelect", "canLoad", "loadCallback", "clearActiveOption", "setTextboxValue", "changed", "getValue", "silent", "clear", "addItems", "setMaxItems", "eventName", "begin", "end", "swap", "last", "getLastActive", "setActiveItemClass", "removeActiveItem", "last_active", "idx", "scroll", "scrollToOption", "behavior", "height_menu", "clientHeight", "scrollTop", "height_item", "offsetHeight", "y", "getBoundingClientRect", "top", "scrollBehavior", "controlChildren", "toggle", "offsetWidth", "getScoreFunction", "getSearchOptions", "conjunction", "nesting", "calculateScore", "hashed", "triggerDropdown", "k", "html", "has_create_option", "active_group", "groups", "groups_order", "same_query", "results", "active_option", "show_dropdown", "closest", "min", "getGroupFragment", "group_order_i", "order_group", "fragment", "group_fragment", "createDocumentFragment", "opt_value", "opt_hash", "option_el", "getOption", "includes", "self_optgroup", "$id", "toString", "group_order", "group_heading", "group_options", "header", "group_html", "tok", "add_template", "template", "insertBefore", "canCreate", "active_index", "selectable", "user_created", "dat", "registerOption", "addOptionGroup", "hashed_id", "removeOptionGroup", "clearCache", "clearOptionGroups", "updateOption", "item_new", "index_item", "value_old", "value_new", "data_old", "getItem", "uncacheValue", "option_new", "removeOption", "removeItem", "clearOptions", "boundFilter", "clearFilter", "$div", "x", "last_item", "isPending", "wasFull", "isFull", "insertAtCaret", "caret", "output", "lock", "created", "unlock", "refreshValidityState", "wrap_classList", "validity", "valid", "opts", "empty_option", "AddSelected", "has_selected", "reuse_opt", "visibility", "display", "context", "rect", "scrollY", "left", "scrollX", "selection", "tail", "rm_items", "rm_item", "shouldDelete", "pop", "onDelete", "adjacent", "nextElementSibling", "moveCaret", "new_pos", "setLocked", "setDisabled", "destroy", "templateName", "hook", "when", "method", "new_fn", "orig_method", "result_new", "change_listener", "checkbox_options", "orig_onOptionSelect", "cbOptions", "checkedClassNames", "uncheckedClassNames", "UpdateChecked", "checkbox", "toCheck", "checked", "UpdateCheckbox", "HTMLInputElement", "orig_render_option", "rendered", "prepend", "clear_button", "title", "button", "insertAfter", "referenceNode", "newNode", "_referenceNode$parent", "nextSibling", "_referenceNode$parent2", "isBefore", "_newNode", "drag_drop", "orig_lock", "orig_unlock", "sortable", "drag_item", "orig_render_item", "mousedown", "dragStart", "dragOver", "moveitem", "dragLeave", "targetitem", "dragitem", "dragend", "_drag_item", "dropdown_header", "headerClass", "titleRowClass", "labelClass", "closeClass", "close_link", "caret_position", "dropdown_input", "div", "orig_onBlur", "relatedTarget", "preventScroll", "input_autogrow", "test_input", "cssText", "transfer_styles", "style_name", "resize", "clientWidth", "no_backspace_delete", "orig_deleteSelection", "no_active_items", "optgroup_columns", "orig_keydown", "previousSibling", "remove_button", "close_button", "restore_on_backspace", "text", "virtual_scroll", "orig_canLoad", "orig_clearActiveOption", "orig_loadCallback", "pagination", "loading_more", "load_more_opt", "default_values", "shouldLoadMore", "scrollHeight", "firstUrl", "canLoadMore", "setNextUrl", "next_url", "getUrl", "clearPagination", "first_option", "no_more_results", "arrayToPattern", "chars", "filter", "Boolean", "length", "maxValueLength", "join", "sequencePattern", "array", "hasDuplicates", "pattern", "prev_char_count", "prev_pattern", "forEach", "char", "i", "setToPattern", "toArray", "Set", "size", "escape_regex", "str", "replace", "reduce", "longest", "value", "Math", "max", "unicodeLength", "p", "Array", "from", "allSubstrings", "input", "result", "start", "substring", "suba", "subresult", "tmp", "slice", "charAt", "push", "unshift", "code_points", "accent_pat", "unicode_map", "multi_char_reg", "max_char_length", "latin_convert", "latin_condensed", "latin", "unicode", "convert_pat", "RegExp", "Object", "keys", "initialize", "_code_points", "undefined", "generateMap", "normalize", "form", "asciifold", "_asciifold", "toLowerCase", "generator", "code_point_min", "code_point_max", "composed", "String", "fromCharCode", "folded", "code_point", "generateSets", "unicode_sets", "addMatching", "to_add", "folded_set", "patt", "match", "add", "multi_char", "set", "sort", "a", "b", "multi_char_patt", "mapSequence", "strings", "min_replacement", "chars_replaced", "map", "substringsToPattern", "sub_pat", "sequencesToPattern", "sequences", "all", "sequence", "seq", "len", "j", "substrs", "inSequences", "needle_seq", "end", "needle_parts", "parts", "part", "needle_part", "substr", "filtered", "Sequence", "constructor", "min", "last", "clone", "position", "last_piece", "JSON", "parse", "stringify", "last_part", "pop", "last_substr", "clone_last_len", "getPattern", "match_str", "overlapping", "added_types", "has", "new_seq", "old_seq", "require_clipboard", "__commonJSMin", "exports", "module", "root", "factory", "__webpack_modules__", "__unused_webpack_module", "__webpack_exports__", "__webpack_require__", "clipboard", "tiny_emitter", "tiny_emitter_default", "listen", "listen_default", "src_select", "select_default", "command", "type", "err", "ClipboardActionCut", "target", "selectedText", "actions_cut", "createFakeElement", "value", "isRTL", "fakeElement", "yPosition", "fakeCopyAction", "options", "ClipboardActionCopy", "actions_copy", "_typeof", "obj", "ClipboardActionDefault", "_options$action", "action", "container", "text", "actions_default", "clipboard_typeof", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "o", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "e", "getAttributeValue", "suffix", "element", "attribute", "Clipboard", "_Emitter", "_super", "trigger", "_this", "_this2", "selector", "actions", "support", "DOCUMENT_NODE_TYPE", "proto", "closest", "__unused_webpack_exports", "_delegate", "callback", "useCapture", "listenerFn", "listener", "delegate", "elements", "is", "listenNode", "listenNodeList", "listenSelector", "node", "nodeList", "select", "isReadOnly", "selection", "range", "E", "name", "ctx", "data", "evtArr", "len", "evts", "liveEvents", "__webpack_module_cache__", "moduleId", "getter", "definition", "key", "prop", "lib_exports", "__export", "afterMain", "afterRead", "afterWrite", "applyStyles_default", "arrow_default", "auto", "basePlacements", "beforeMain", "beforeRead", "beforeWrite", "bottom", "clippingParents", "computeStyles_default", "createPopper", "detectOverflow", "end", "eventListeners_default", "flip_default", "hide_default", "left", "main", "modifierPhases", "offset_default", "placements", "popper", "popperGenerator", "popperOffsets_default", "preventOverflow_default", "read", "reference", "right", "start", "top", "variationPlacements", "viewport", "write", "top", "bottom", "right", "left", "auto", "basePlacements", "start", "end", "clippingParents", "viewport", "popper", "reference", "variationPlacements", "acc", "placement", "placements", "beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite", "modifierPhases", "getNodeName", "element", "getWindow", "node", "ownerDocument", "isElement", "node", "OwnElement", "getWindow", "isHTMLElement", "isShadowRoot", "applyStyles", "_ref", "state", "name", "style", "attributes", "element", "isHTMLElement", "getNodeName", "value", "effect", "_ref2", "initialStyles", "styleProperties", "property", "attribute", "applyStyles_default", "getBasePlacement", "placement", "max", "min", "round", "getUAString", "uaData", "item", "isLayoutViewport", "getUAString", "getBoundingClientRect", "element", "includeScale", "isFixedStrategy", "clientRect", "scaleX", "scaleY", "isHTMLElement", "round", "_ref", "isElement", "getWindow", "visualViewport", "addVisualOffsets", "isLayoutViewport", "x", "y", "width", "height", "getLayoutRect", "element", "clientRect", "getBoundingClientRect", "width", "height", "contains", "parent", "child", "rootNode", "isShadowRoot", "next", "getComputedStyle", "element", "getWindow", "isTableElement", "element", "getNodeName", "getDocumentElement", "element", "isElement", "getParentNode", "element", "getNodeName", "isShadowRoot", "getDocumentElement", "getTrueOffsetParent", "element", "isHTMLElement", "getComputedStyle", "getContainingBlock", "isFirefox", "getUAString", "isIE", "elementCss", "currentNode", "getParentNode", "isShadowRoot", "getNodeName", "css", "getOffsetParent", "window", "getWindow", "offsetParent", "isTableElement", "getMainAxisFromPlacement", "placement", "within", "min", "value", "max", "withinMaxClamp", "v", "getFreshSideObject", "mergePaddingObject", "paddingObject", "getFreshSideObject", "expandToHashMap", "value", "keys", "hashMap", "key", "toPaddingObject", "padding", "state", "mergePaddingObject", "expandToHashMap", "basePlacements", "arrow", "_ref", "_state$modifiersData$", "name", "options", "arrowElement", "popperOffsets", "basePlacement", "getBasePlacement", "axis", "getMainAxisFromPlacement", "isVertical", "left", "right", "len", "paddingObject", "arrowRect", "getLayoutRect", "minProp", "top", "maxProp", "bottom", "endDiff", "startDiff", "arrowOffsetParent", "getOffsetParent", "clientSize", "centerToReference", "min", "max", "center", "offset", "within", "axisProp", "effect", "_ref2", "_options$element", "contains", "arrow_default", "getVariation", "placement", "unsetSides", "roundOffsetsByDPR", "_ref", "win", "x", "y", "dpr", "round", "mapToStyles", "_ref2", "_Object$assign2", "popper", "popperRect", "placement", "variation", "offsets", "position", "gpuAcceleration", "adaptive", "roundOffsets", "isFixed", "_offsets$x", "_offsets$y", "_ref3", "hasX", "hasY", "sideX", "left", "sideY", "top", "offsetParent", "getOffsetParent", "heightProp", "widthProp", "getWindow", "getDocumentElement", "getComputedStyle", "right", "end", "bottom", "offsetY", "offsetX", "commonStyles", "_ref4", "_Object$assign", "computeStyles", "_ref5", "state", "options", "_options$gpuAccelerat", "_options$adaptive", "_options$roundOffsets", "getBasePlacement", "getVariation", "computeStyles_default", "passive", "effect", "_ref", "state", "instance", "options", "_options$scroll", "scroll", "_options$resize", "resize", "window", "getWindow", "scrollParents", "scrollParent", "eventListeners_default", "hash", "getOppositePlacement", "placement", "matched", "hash", "getOppositeVariationPlacement", "placement", "matched", "getWindowScroll", "node", "win", "getWindow", "scrollLeft", "scrollTop", "getWindowScrollBarX", "element", "getBoundingClientRect", "getDocumentElement", "getWindowScroll", "getViewportRect", "element", "strategy", "win", "getWindow", "html", "getDocumentElement", "visualViewport", "width", "height", "x", "y", "layoutViewport", "isLayoutViewport", "getWindowScrollBarX", "getDocumentRect", "element", "_element$ownerDocumen", "html", "getDocumentElement", "winScroll", "getWindowScroll", "body", "width", "max", "height", "x", "getWindowScrollBarX", "y", "getComputedStyle", "isScrollParent", "element", "_getComputedStyle", "getComputedStyle", "overflow", "overflowX", "overflowY", "getScrollParent", "node", "getNodeName", "isHTMLElement", "isScrollParent", "getParentNode", "listScrollParents", "element", "list", "_element$ownerDocumen", "scrollParent", "getScrollParent", "isBody", "win", "getWindow", "target", "isScrollParent", "updatedList", "getParentNode", "rectToClientRect", "rect", "getInnerBoundingClientRect", "element", "strategy", "rect", "getBoundingClientRect", "getClientRectFromMixedType", "clippingParent", "viewport", "rectToClientRect", "getViewportRect", "isElement", "getDocumentRect", "getDocumentElement", "getClippingParents", "clippingParents", "listScrollParents", "getParentNode", "canEscapeClipping", "getComputedStyle", "clipperElement", "isHTMLElement", "getOffsetParent", "contains", "getNodeName", "getClippingRect", "boundary", "rootBoundary", "mainClippingParents", "firstClippingParent", "clippingRect", "accRect", "max", "min", "computeOffsets", "_ref", "reference", "element", "placement", "basePlacement", "getBasePlacement", "variation", "getVariation", "commonX", "commonY", "offsets", "top", "bottom", "right", "left", "mainAxis", "getMainAxisFromPlacement", "len", "start", "end", "detectOverflow", "state", "options", "_options", "_options$placement", "placement", "_options$strategy", "strategy", "_options$boundary", "boundary", "clippingParents", "_options$rootBoundary", "rootBoundary", "viewport", "_options$elementConte", "elementContext", "popper", "_options$altBoundary", "altBoundary", "_options$padding", "padding", "paddingObject", "mergePaddingObject", "expandToHashMap", "basePlacements", "altContext", "reference", "popperRect", "element", "clippingClientRect", "getClippingRect", "isElement", "getDocumentElement", "referenceClientRect", "getBoundingClientRect", "popperOffsets", "computeOffsets", "popperClientRect", "rectToClientRect", "elementClientRect", "overflowOffsets", "offsetData", "offset", "key", "multiply", "right", "bottom", "axis", "top", "computeAutoPlacement", "state", "options", "_options", "placement", "boundary", "rootBoundary", "padding", "flipVariations", "_options$allowedAutoP", "allowedAutoPlacements", "placements", "variation", "getVariation", "variationPlacements", "basePlacements", "allowedPlacements", "overflows", "acc", "detectOverflow", "getBasePlacement", "a", "b", "getExpandedFallbackPlacements", "placement", "getBasePlacement", "auto", "oppositePlacement", "getOppositePlacement", "getOppositeVariationPlacement", "flip", "_ref", "state", "options", "name", "_options$mainAxis", "checkMainAxis", "_options$altAxis", "checkAltAxis", "specifiedFallbackPlacements", "padding", "boundary", "rootBoundary", "altBoundary", "_options$flipVariatio", "flipVariations", "allowedAutoPlacements", "preferredPlacement", "basePlacement", "isBasePlacement", "fallbackPlacements", "placements", "acc", "computeAutoPlacement", "referenceRect", "popperRect", "checksMap", "makeFallbackChecks", "firstFittingPlacement", "i", "_basePlacement", "isStartVariation", "getVariation", "start", "isVertical", "top", "bottom", "len", "overflow", "detectOverflow", "mainVariationSide", "right", "left", "altVariationSide", "checks", "check", "numberOfChecks", "_loop", "_i", "fittingPlacement", "_ret", "flip_default", "getSideOffsets", "overflow", "rect", "preventedOffsets", "isAnySideFullyClipped", "top", "right", "bottom", "left", "side", "hide", "_ref", "state", "name", "referenceRect", "popperRect", "referenceOverflow", "detectOverflow", "popperAltOverflow", "referenceClippingOffsets", "popperEscapeOffsets", "isReferenceHidden", "hasPopperEscaped", "hide_default", "distanceAndSkiddingToXY", "placement", "rects", "offset", "basePlacement", "getBasePlacement", "invertDistance", "left", "top", "_ref", "skidding", "distance", "right", "_ref2", "state", "options", "name", "_options$offset", "data", "placements", "acc", "_data$state$placement", "x", "y", "offset_default", "popperOffsets", "_ref", "state", "name", "computeOffsets", "popperOffsets_default", "getAltAxis", "axis", "preventOverflow", "_ref", "state", "options", "name", "_options$mainAxis", "checkMainAxis", "_options$altAxis", "checkAltAxis", "boundary", "rootBoundary", "altBoundary", "padding", "_options$tether", "tether", "_options$tetherOffset", "tetherOffset", "overflow", "detectOverflow", "basePlacement", "getBasePlacement", "variation", "getVariation", "isBasePlacement", "mainAxis", "getMainAxisFromPlacement", "altAxis", "getAltAxis", "popperOffsets", "referenceRect", "popperRect", "tetherOffsetValue", "normalizedTetherOffsetValue", "offsetModifierState", "data", "_offsetModifierState$", "mainSide", "top", "left", "altSide", "bottom", "right", "len", "offset", "min", "max", "additive", "minLen", "start", "maxLen", "arrowElement", "arrowRect", "getLayoutRect", "arrowPaddingObject", "getFreshSideObject", "arrowPaddingMin", "arrowPaddingMax", "arrowLen", "within", "minOffset", "maxOffset", "arrowOffsetParent", "getOffsetParent", "clientOffset", "offsetModifierValue", "tetherMin", "tetherMax", "preventedOffset", "_offsetModifierState$2", "_mainSide", "_altSide", "_offset", "_len", "_min", "_max", "isOriginSide", "_offsetModifierValue", "_tetherMin", "_tetherMax", "_preventedOffset", "withinMaxClamp", "preventOverflow_default", "getHTMLElementScroll", "element", "getNodeScroll", "node", "getWindow", "isHTMLElement", "getWindowScroll", "getHTMLElementScroll", "isElementScaled", "element", "rect", "scaleX", "round", "scaleY", "getCompositeRect", "elementOrVirtualElement", "offsetParent", "isFixed", "isOffsetParentAnElement", "isHTMLElement", "offsetParentIsScaled", "documentElement", "getDocumentElement", "getBoundingClientRect", "scroll", "offsets", "getNodeName", "isScrollParent", "getNodeScroll", "getWindowScrollBarX", "order", "modifiers", "map", "visited", "result", "modifier", "sort", "requires", "dep", "depModifier", "orderModifiers", "orderedModifiers", "modifierPhases", "acc", "phase", "debounce", "fn", "pending", "resolve", "mergeByName", "modifiers", "merged", "current", "existing", "key", "DEFAULT_OPTIONS", "areValidElements", "_len", "args", "_key", "element", "popperGenerator", "generatorOptions", "_generatorOptions", "_generatorOptions$def", "defaultModifiers", "_generatorOptions$def2", "defaultOptions", "reference", "popper", "options", "state", "effectCleanupFns", "isDestroyed", "instance", "setOptionsAction", "cleanupModifierEffects", "isElement", "listScrollParents", "orderedModifiers", "orderModifiers", "mergeByName", "m", "runModifierEffects", "_state$elements", "getCompositeRect", "getOffsetParent", "getLayoutRect", "modifier", "index", "_state$orderedModifie", "fn", "_state$orderedModifie2", "_options", "name", "debounce", "resolve", "_ref", "_ref$options", "effect", "cleanupFn", "noopFn", "createPopper", "defaultModifiers", "eventListeners_default", "popperOffsets_default", "computeStyles_default", "applyStyles_default", "createPopper", "popperGenerator", "defaultModifiers", "eventListeners_default", "popperOffsets_default", "computeStyles_default", "applyStyles_default", "offset_default", "flip_default", "preventOverflow_default", "arrow_default", "hide_default", "createPopper", "popperGenerator", "elementMap", "Map", "Data", "set", "element", "key", "instance", "has", "instanceMap", "get", "size", "console", "error", "Array", "from", "keys", "remove", "delete", "MAX_UID", "MILLISECONDS_MULTIPLIER", "TRANSITION_END", "parseSelector", "selector", "window", "CSS", "escape", "replace", "match", "id", "toType", "object", "Object", "prototype", "toString", "call", "toLowerCase", "getUID", "prefix", "Math", "floor", "random", "document", "getElementById", "getTransitionDurationFromElement", "transitionDuration", "transitionDelay", "getComputedStyle", "floatTransitionDuration", "Number", "parseFloat", "floatTransitionDelay", "split", "triggerTransitionEnd", "dispatchEvent", "Event", "isElement", "jquery", "nodeType", "getElement", "length", "querySelector", "isVisible", "getClientRects", "elementIsVisible", "getPropertyValue", "closedDetails", "closest", "summary", "parentNode", "isDisabled", "Node", "ELEMENT_NODE", "classList", "contains", "disabled", "hasAttribute", "getAttribute", "findShadowRoot", "documentElement", "attachShadow", "getRootNode", "root", "ShadowRoot", "noop", "reflow", "offsetHeight", "getjQuery", "jQuery", "body", "DOMContentLoadedCallbacks", "onDOMContentLoaded", "callback", "readyState", "addEventListener", "push", "isRTL", "dir", "defineJQueryPlugin", "plugin", "$", "name", "NAME", "JQUERY_NO_CONFLICT", "fn", "jQueryInterface", "Constructor", "noConflict", "execute", "possibleCallback", "args", "defaultValue", "executeAfterTransition", "transitionElement", "waitForTransition", "emulatedDuration", "called", "handler", "target", "removeEventListener", "setTimeout", "getNextActiveElement", "list", "activeElement", "shouldGetNext", "isCycleAllowed", "listLength", "index", "indexOf", "max", "min", "namespaceRegex", "stripNameRegex", "stripUidRegex", "eventRegistry", "uidEvent", "customEvents", "mouseenter", "mouseleave", "nativeEvents", "Set", "makeEventUid", "uid", "getElementEvents", "bootstrapHandler", "event", "hydrateObj", "delegateTarget", "oneOff", "EventHandler", "off", "type", "apply", "bootstrapDelegationHandler", "domElements", "querySelectorAll", "domElement", "findHandler", "events", "callable", "delegationSelector", "values", "find", "normalizeParameters", "originalTypeEvent", "delegationFunction", "isDelegated", "typeEvent", "getTypeEvent", "addHandler", "relatedTarget", "handlers", "previousFunction", "removeHandler", "Boolean", "removeNamespacedHandlers", "namespace", "storeElementEvent", "handlerKey", "entries", "includes", "on", "one", "inNamespace", "isNamespace", "startsWith", "elementEvent", "slice", "keyHandlers", "trigger", "jQueryEvent", "bubbles", "nativeDispatch", "defaultPrevented", "isPropagationStopped", "isImmediatePropagationStopped", "isDefaultPrevented", "evt", "cancelable", "preventDefault", "obj", "meta", "value", "_unused", "defineProperty", "configurable", "normalizeData", "JSON", "parse", "decodeURIComponent", "normalizeDataKey", "chr", "Manipulator", "setDataAttribute", "setAttribute", "removeDataAttribute", "removeAttribute", "getDataAttributes", "attributes", "bsKeys", "dataset", "filter", "pureKey", "charAt", "getDataAttribute", "Config", "Default", "DefaultType", "Error", "_getConfig", "config", "_mergeConfigObj", "_configAfterMerge", "_typeCheckConfig", "jsonConfig", "__spreadValues", "constructor", "configTypes", "property", "expectedTypes", "valueType", "RegExp", "test", "TypeError", "toUpperCase", "VERSION", "BaseComponent", "_element", "_config", "DATA_KEY", "dispose", "EVENT_KEY", "propertyName", "getOwnPropertyNames", "_queueCallback", "isAnimated", "getInstance", "getOrCreateInstance", "eventName", "getSelector", "hrefAttribute", "trim", "map", "sel", "join", "SelectorEngine", "concat", "Element", "findOne", "children", "child", "matches", "parents", "ancestor", "prev", "previous", "previousElementSibling", "next", "nextElementSibling", "focusableChildren", "focusables", "el", "getSelectorFromElement", "getElementFromSelector", "getMultipleElementsFromSelector", "enableDismissTrigger", "component", "method", "clickEvent", "tagName", "EVENT_CLOSE", "EVENT_CLOSED", "CLASS_NAME_FADE", "CLASS_NAME_SHOW", "Alert", "close", "_destroyElement", "each", "data", "undefined", "DATA_API_KEY", "CLASS_NAME_ACTIVE", "SELECTOR_DATA_TOGGLE", "EVENT_CLICK_DATA_API", "Button", "toggle", "button", "EVENT_TOUCHSTART", "EVENT_TOUCHMOVE", "EVENT_TOUCHEND", "EVENT_POINTERDOWN", "EVENT_POINTERUP", "POINTER_TYPE_TOUCH", "POINTER_TYPE_PEN", "CLASS_NAME_POINTER_EVENT", "SWIPE_THRESHOLD", "endCallback", "leftCallback", "rightCallback", "Swipe", "isSupported", "_deltaX", "_supportPointerEvents", "PointerEvent", "_initEvents", "_start", "touches", "clientX", "_eventIsPointerPenTouch", "_end", "_handleSwipe", "_move", "absDeltaX", "abs", "direction", "add", "pointerType", "navigator", "maxTouchPoints", "ARROW_LEFT_KEY", "ARROW_RIGHT_KEY", "TOUCHEVENT_COMPAT_WAIT", "ORDER_NEXT", "ORDER_PREV", "DIRECTION_LEFT", "DIRECTION_RIGHT", "EVENT_SLIDE", "EVENT_SLID", "EVENT_KEYDOWN", "EVENT_MOUSEENTER", "EVENT_MOUSELEAVE", "EVENT_DRAG_START", "EVENT_LOAD_DATA_API", "CLASS_NAME_CAROUSEL", "CLASS_NAME_SLIDE", "CLASS_NAME_END", "CLASS_NAME_START", "CLASS_NAME_NEXT", "CLASS_NAME_PREV", "SELECTOR_ACTIVE", "SELECTOR_ITEM", "SELECTOR_ACTIVE_ITEM", "SELECTOR_ITEM_IMG", "SELECTOR_INDICATORS", "SELECTOR_DATA_SLIDE", "SELECTOR_DATA_RIDE", "KEY_TO_DIRECTION", "interval", "keyboard", "pause", "ride", "touch", "wrap", "Carousel", "_interval", "_activeElement", "_isSliding", "touchTimeout", "_swipeHelper", "_indicatorsElement", "_addEventListeners", "cycle", "_slide", "nextWhenVisible", "hidden", "_clearInterval", "_updateInterval", "setInterval", "_maybeEnableCycle", "to", "items", "_getItems", "activeIndex", "_getItemIndex", "_getActive", "order", "defaultInterval", "_keydown", "_addTouchEventListeners", "img", "swipeConfig", "_directionToOrder", "endCallBack", "clearTimeout", "_setActiveIndicatorElement", "activeIndicator", "newActiveIndicator", "elementInterval", "parseInt", "isNext", "nextElement", "nextElementIndex", "triggerEvent", "_orderToDirection", "isCycling", "directionalClassName", "orderClassName", "completeCallBack", "_isAnimated", "clearInterval", "carousel", "slideIndex", "carousels", "EVENT_SHOW", "EVENT_SHOWN", "EVENT_HIDE", "EVENT_HIDDEN", "CLASS_NAME_COLLAPSE", "CLASS_NAME_COLLAPSING", "CLASS_NAME_COLLAPSED", "CLASS_NAME_DEEPER_CHILDREN", "CLASS_NAME_HORIZONTAL", "WIDTH", "HEIGHT", "SELECTOR_ACTIVES", "parent", "Collapse", "_isTransitioning", "_triggerArray", "toggleList", "elem", "filterElement", "foundElement", "_initializeChildren", "_addAriaAndCollapsedClass", "_isShown", "hide", "show", "activeChildren", "_getFirstLevelChildren", "activeInstance", "dimension", "_getDimension", "style", "complete", "scrollSize", "getBoundingClientRect", "selected", "triggerArray", "isOpen", "ESCAPE_KEY", "TAB_KEY", "ARROW_UP_KEY", "ARROW_DOWN_KEY", "RIGHT_MOUSE_BUTTON", "EVENT_KEYDOWN_DATA_API", "EVENT_KEYUP_DATA_API", "CLASS_NAME_DROPUP", "CLASS_NAME_DROPEND", "CLASS_NAME_DROPSTART", "CLASS_NAME_DROPUP_CENTER", "CLASS_NAME_DROPDOWN_CENTER", "SELECTOR_DATA_TOGGLE_SHOWN", "SELECTOR_MENU", "SELECTOR_NAVBAR", "SELECTOR_NAVBAR_NAV", "SELECTOR_VISIBLE_ITEMS", "PLACEMENT_TOP", "PLACEMENT_TOPEND", "PLACEMENT_BOTTOM", "PLACEMENT_BOTTOMEND", "PLACEMENT_RIGHT", "PLACEMENT_LEFT", "PLACEMENT_TOPCENTER", "PLACEMENT_BOTTOMCENTER", "autoClose", "boundary", "display", "offset", "popperConfig", "reference", "Dropdown", "_popper", "_parent", "_menu", "_inNavbar", "_detectNavbar", "showEvent", "_createPopper", "focus", "_completeHide", "destroy", "update", "hideEvent", "Popper", "referenceElement", "_getPopperConfig", "createPopper", "_getPlacement", "parentDropdown", "isEnd", "_getOffset", "popperData", "defaultBsPopperConfig", "placement", "modifiers", "options", "enabled", "_selectMenuItem", "clearMenus", "openToggles", "context", "composedPath", "isMenuTarget", "dataApiKeydownHandler", "isInput", "isEscapeEvent", "isUpOrDownEvent", "getToggleButton", "stopPropagation", "EVENT_MOUSEDOWN", "className", "clickCallback", "rootElement", "Backdrop", "_isAppended", "_append", "_getElement", "_emulateAnimation", "backdrop", "createElement", "append", "EVENT_FOCUSIN", "EVENT_KEYDOWN_TAB", "TAB_NAV_FORWARD", "TAB_NAV_BACKWARD", "autofocus", "trapElement", "FocusTrap", "_isActive", "_lastTabNavDirection", "activate", "_handleFocusin", "_handleKeydown", "deactivate", "elements", "shiftKey", "SELECTOR_FIXED_CONTENT", "SELECTOR_STICKY_CONTENT", "PROPERTY_PADDING", "PROPERTY_MARGIN", "ScrollBarHelper", "getWidth", "documentWidth", "clientWidth", "innerWidth", "width", "_disableOverFlow", "_setElementAttributes", "calculatedValue", "reset", "_resetElementAttributes", "isOverflowing", "_saveInitialAttribute", "overflow", "styleProperty", "scrollbarWidth", "manipulationCallBack", "setProperty", "_applyManipulationCallback", "actualValue", "removeProperty", "callBack", "EVENT_HIDE_PREVENTED", "EVENT_RESIZE", "EVENT_CLICK_DISMISS", "EVENT_MOUSEDOWN_DISMISS", "EVENT_KEYDOWN_DISMISS", "CLASS_NAME_OPEN", "CLASS_NAME_STATIC", "OPEN_SELECTOR", "SELECTOR_DIALOG", "SELECTOR_MODAL_BODY", "Modal", "_dialog", "_backdrop", "_initializeBackDrop", "_focustrap", "_initializeFocusTrap", "_scrollBar", "_adjustDialog", "_showElement", "_hideModal", "handleUpdate", "scrollTop", "modalBody", "transitionComplete", "_triggerBackdropTransition", "event2", "_resetAdjustments", "isModalOverflowing", "scrollHeight", "clientHeight", "initialOverflowY", "overflowY", "isBodyOverflowing", "paddingLeft", "paddingRight", "alreadyOpen", "CLASS_NAME_SHOWING", "CLASS_NAME_HIDING", "CLASS_NAME_BACKDROP", "scroll", "Offcanvas", "blur", "completeCallback", "position", "ARIA_ATTRIBUTE_PATTERN", "DefaultAllowlist", "a", "area", "b", "br", "col", "code", "dd", "div", "dl", "dt", "em", "hr", "h1", "h2", "h3", "h4", "h5", "h6", "i", "li", "ol", "p", "pre", "s", "small", "span", "sub", "sup", "strong", "u", "ul", "uriAttributes", "SAFE_URL_PATTERN", "allowedAttribute", "attribute", "allowedAttributeList", "attributeName", "nodeName", "nodeValue", "attributeRegex", "some", "regex", "sanitizeHtml", "unsafeHtml", "allowList", "sanitizeFunction", "createdDocument", "DOMParser", "parseFromString", "elementName", "attributeList", "allowedAttributes", "innerHTML", "content", "extraClass", "html", "sanitize", "sanitizeFn", "template", "DefaultContentType", "entry", "TemplateFactory", "getContent", "_resolvePossibleFunction", "hasContent", "changeContent", "_checkContent", "toHtml", "templateWrapper", "_maybeSanitize", "text", "_setContent", "arg", "templateElement", "_putElementInTemplate", "textContent", "DISALLOWED_ATTRIBUTES", "CLASS_NAME_MODAL", "SELECTOR_TOOLTIP_INNER", "SELECTOR_MODAL", "EVENT_MODAL_HIDE", "TRIGGER_HOVER", "TRIGGER_FOCUS", "TRIGGER_CLICK", "TRIGGER_MANUAL", "EVENT_INSERTED", "EVENT_CLICK", "EVENT_FOCUSOUT", "AttachmentMap", "AUTO", "TOP", "RIGHT", "BOTTOM", "LEFT", "animation", "container", "customClass", "delay", "fallbackPlacements", "title", "Tooltip", "_isEnabled", "_timeout", "_isHovered", "_activeTrigger", "_templateFactory", "_newContent", "tip", "_setListeners", "_fixTitle", "enable", "disable", "toggleEnabled", "click", "_leave", "_enter", "_hideModalHandler", "_disposePopper", "_isWithContent", "isInTheDom", "ownerDocument", "_getTipElement", "_isWithActiveTrigger", "_getTitle", "_createTipElement", "_getContentForTemplate", "_getTemplateFactory", "tipId", "setContent", "__spreadProps", "_initializeOnDelegatedTarget", "_getDelegateConfig", "attachment", "phase", "state", "triggers", "eventIn", "eventOut", "_setTimeout", "timeout", "dataAttributes", "dataAttribute", "SELECTOR_TITLE", "SELECTOR_CONTENT", "Popover", "_getContent", "EVENT_ACTIVATE", "CLASS_NAME_DROPDOWN_ITEM", "SELECTOR_DATA_SPY", "SELECTOR_TARGET_LINKS", "SELECTOR_NAV_LIST_GROUP", "SELECTOR_NAV_LINKS", "SELECTOR_NAV_ITEMS", "SELECTOR_LIST_ITEMS", "SELECTOR_LINK_ITEMS", "SELECTOR_DROPDOWN", "SELECTOR_DROPDOWN_TOGGLE", "rootMargin", "smoothScroll", "threshold", "ScrollSpy", "_targetLinks", "_observableSections", "_rootElement", "_activeTarget", "_observer", "_previousScrollData", "visibleEntryTop", "parentScrollTop", "refresh", "_initializeTargetsAndObservables", "_maybeEnableSmoothScroll", "disconnect", "_getNewObserver", "section", "observe", "observableSection", "hash", "height", "offsetTop", "scrollTo", "top", "behavior", "IntersectionObserver", "_observerCallback", "targetElement", "_process", "userScrollsDown", "isIntersecting", "_clearActiveClass", "entryIsLowerThanPrevious", "targetLinks", "anchor", "decodeURI", "_activateParents", "listGroup", "item", "activeNodes", "node", "spy", "HOME_KEY", "END_KEY", "CLASS_DROPDOWN", "SELECTOR_DROPDOWN_MENU", "NOT_SELECTOR_DROPDOWN_TOGGLE", "SELECTOR_TAB_PANEL", "SELECTOR_OUTER", "SELECTOR_INNER", "SELECTOR_INNER_ELEM", "SELECTOR_DATA_TOGGLE_ACTIVE", "Tab", "_setInitialAttributes", "_getChildren", "innerElem", "_elemIsActive", "active", "_getActiveElem", "_deactivate", "_activate", "relatedElem", "_toggleDropDown", "nextActiveElement", "preventScroll", "_setAttributeIfNotExists", "_setInitialAttributesOnChild", "_getInnerElement", "isActive", "outerElem", "_getOuterElement", "_setInitialAttributesOnTargetPanel", "open", "EVENT_MOUSEOVER", "EVENT_MOUSEOUT", "CLASS_NAME_HIDE", "autohide", "Toast", "_hasMouseInteraction", "_hasKeyboardInteraction", "_clearTimeout", "_maybeScheduleHide", "isShown", "_onInteraction", "isInteracting", "import_htmx", "import_tom_select", "hasError", "data", "isTruthy", "value", "badStrings", "isElement", "obj", "apiRequest", "url", "method", "data", "__async", "token", "headers", "body", "res", "contentType", "json", "apiPatch", "getElements", "key", "query", "element", "getElement", "id", "scrollTo", "element", "offset", "yOffset", "title", "top", "getSelectedOptions", "base", "selector", "selected", "select", "option", "findFirstAdjacent", "base", "query", "boundary", "atBoundary", "element", "match", "parent", "child", "createElement", "tag", "properties", "classes", "children", "k", "key", "value", "replaceAll", "input", "pattern", "replacement", "flags", "handleFormSubmit", "event", "form", "invalids", "element", "firstInvalid", "scrollTo", "initFormElements", "getElements", "submitters", "submitter", "resetButton", "initSpeedSelector", "element", "getElements", "handleClick", "event", "value", "input", "initForms", "func", "initFormElements", "initSpeedSelector", "Collapse", "Modal", "Popover", "Toast", "Tooltip", "initTooltips", "tooltip", "getElements", "initModals", "modal", "createToast", "level", "title", "message", "extra", "iconName", "container", "main", "header", "icon", "titleElement", "button", "body", "extraElement", "initTabs", "hash", "target", "element", "Tab", "initSidebarAccordions", "items", "handleToggle", "thisItem", "item", "initImagePreview", "maxWidth", "image", "createElement", "content", "initBootstrap", "func", "quickSearchEventHandler", "event", "quicksearch", "clearbtn", "isTruthy", "clearLinkParams", "link", "linkUpdated", "handleQuickSearchParams", "quickSearchParameters", "search_parameter", "initQuickSearch", "__async", "search", "f", "import_tom_select", "getPlugins", "element", "plugins", "data", "initStaticSelects", "select", "getElements", "TomSelect", "__spreadProps", "__spreadValues", "getPlugins", "initColorSelects", "renderColor", "item", "escape", "import_unicode_variants", "iterate", "object", "callback", "key", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "el", "cls", "classesArray", "args", "classes", "iterate", "_classes", "castAsArray", "arg", "base_exports", "__export", "exclude", "extract", "parse", "parseUrl", "pick", "stringify", "stringifyUrl", "token", "singleMatcher", "multiMatcher", "decodeComponents", "components", "split", "e", "left", "right", "decode", "input", "tokens", "i", "customDecodeURIComponent", "replaceMap", "match", "result", "entries", "key", "decodeUriComponent", "encodedURI", "includeKeys", "object", "predicate", "result", "key", "descriptor", "value", "splitOnFirst", "string", "separator", "separatorIndex", "isNullOrUndefined", "value", "strictUriEncode", "string", "x", "encodeFragmentIdentifier", "encoderForArrayFormat", "options", "key", "result", "index", "encode", "keyValueSeparator", "parserForArrayFormat", "accumulator", "isArray", "isEncodedArray", "decode", "newValue", "item", "arrayValue", "validateArrayFormatSeparator", "decodeUriComponent", "keysSorter", "input", "a", "b", "removeHash", "hashStart", "getHash", "url", "hash", "parseValue", "type", "extract", "queryStart", "parse", "query", "__spreadValues", "formatter", "returnValue", "parameter", "parameter_", "splitOnFirst", "key2", "value2", "stringify", "object", "shouldFilter", "objectCopy", "keys", "parseUrl", "_a", "_b", "url_", "stringifyUrl", "queryFromUrl", "queryString", "urlObjectForFragmentEncode", "pick", "filter", "fragmentIdentifier", "includeKeys", "exclude", "exclusionFilter", "query_string_default", "base_exports", "import_tom_select", "isDataDynamicParams", "value", "item", "DynamicParamsMap", "fieldName", "value", "queryValue", "current", "isTruthy", "queryParam", "json", "deserialized", "isDataDynamicParams", "DynamicTomSelect", "TomSelect", "input_arg", "user_settings", "__publicField", "DynamicParamsMap", "nullOption", "valueField", "labelField", "key", "value", "filter", "self", "url", "addClasses", "response", "apiData", "results", "options", "result", "option", "search", "query", "replaceAll", "query_string_default", "data", "parent", "serialized", "deserialized", "queryParam", "queryValue", "err", "fieldName", "element", "elementValue", "o", "current", "staticValue", "id", "getElement", "dependencies", "dep", "filterElement", "event", "target", "VALUE_FIELD", "LABEL_FIELD", "MAX_OPTIONS", "renderOption", "data", "escape", "html", "renderItem", "initDynamicSelects", "select", "getElements", "DynamicTomSelect", "__spreadProps", "__spreadValues", "getPlugins", "initSelects", "initStaticSelects", "initDynamicSelects", "initColorSelects", "setConnectionStatus", "element", "status", "_a", "row", "url", "isTruthy", "apiPatch", "res", "hasError", "createToast", "initConnectionToggle", "getElements", "ProxyStateHandler", "target", "key", "value", "StateManager", "raw", "options", "__publicField", "saved", "__spreadValues", "obj", "createState", "initial", "objectDepthState", "createState", "rackImagesState", "createState", "previousPkCheckState", "createState", "secretState", "createState", "toggleDepthButton", "hidden", "button", "showDepthIndicators", "element", "getElements", "hideDepthIndicators", "handleDepthToggle", "state", "initiallyHidden", "initDepthToggle", "objectDepthState", "event", "moveOptionUp", "element", "options", "i", "option", "moveOptionDown", "next", "initMoveButtons", "button", "getElements", "target", "select", "slugify", "slug", "chars", "initReslug", "slugField", "slugButton", "sourceId", "sourceField", "slugLengthAttr", "slugLength", "handlePkCheck", "event", "element", "getElements", "handleSelectAllToggle", "tableSelectAll", "table", "findFirstAdjacent", "confirmCard", "confirmCheckbox", "initSelectAll", "removeTextSelection", "_a", "updatePreviousPkCheckState", "eventTargetElement", "state", "toggleCheckboxRange", "previousStateElement", "elementList", "changePkCheckboxState", "element", "typedElement", "handlePkCheck", "event", "checkboxList", "getElements", "initSelectMultiple", "checkboxElements", "previousPkCheckState", "initMarkdownPreview", "markdownWidget", "previewButton", "textarea", "preview", "isTruthy", "height", "e", "initMarkdownPreviews", "toggleSecretButton", "hidden", "button", "showSecret", "secret", "getElement", "isTruthy", "value", "hideSecret", "handleSecretToggle", "state", "toggleCallback", "event", "secretState", "initSecretToggle", "getElements", "initButtons", "func", "initDepthToggle", "initConnectionToggle", "initReslug", "initSelectAll", "initSelectMultiple", "initMoveButtons", "initMarkdownPreviews", "initSecretToggle", "COLOR_MODE_KEY", "isColorMode", "value", "storeColorMode", "mode", "updateElements", "targetMode", "_a", "_b", "body", "elevation", "getElements", "svg", "setColorMode", "handleColorModeToggle", "currentValue", "defaultColorMode", "isTruthy", "preference", "initColorModeToggle", "element", "initColorMode", "func", "initMessages", "elements", "element", "toast", "Toast", "import_clipboard", "initClipboard", "element", "getElements", "Clipboard", "HOOKS", "defaults", "err", "givenDate", "date", "week1", "english", "nth", "s", "default_default", "pad", "number", "length", "int", "bool", "debounce", "fn", "wait", "t", "_this", "args", "arrayify", "obj", "toggleClass", "elem", "className", "bool", "createElement", "tag", "content", "e", "clearNode", "node", "findParent", "condition", "createNumberInput", "inputClassName", "opts", "wrapper", "numInput", "arrowUp", "arrowDown", "key", "getEventTarget", "event", "path", "error", "doNothing", "monthToStr", "monthNumber", "shorthand", "locale", "revFormat", "dateObj", "monthName", "hour", "day", "amPM", "int", "shortMonth", "seconds", "_", "unixSeconds", "weekNum", "weekNumber", "date", "year", "ISODate", "minutes", "month", "unixMillSeconds", "tokenRegex", "formats", "options", "pad", "createDateFormatter", "_a", "_b", "config", "defaults", "_c", "l10n", "english", "_d", "isMobile", "dateObj", "frmt", "overrideLocale", "locale", "c", "i", "arr", "formats", "createDateParser", "date", "givenFormat", "timeless", "customLocale", "parsedDate", "dateOrig", "format", "datestr", "matched", "ops", "matchIndex", "regexStr", "token", "isBackSlash", "escaped", "tokenRegex", "match", "revFormat", "fn", "val", "compareDates", "date1", "date2", "isBetween", "ts", "ts1", "ts2", "calculateSecondsSinceMidnight", "hours", "minutes", "seconds", "parseSeconds", "secondsSinceMidnight", "duration", "getDefaultHours", "config", "minHour", "minMinutes", "minSeconds", "maxHr", "maxMinutes", "target", "args", "_i", "_loop_1", "source", "key", "_a", "args_1", "__assign", "t", "s", "i", "n", "p", "__spreadArrays", "il", "r", "k", "a", "j", "jl", "DEBOUNCED_CHANGE_MS", "FlatpickrInstance", "element", "instanceConfig", "self", "defaults", "flatpickr", "default_default", "createDateParser", "bind", "setHoursFromDate", "positionCalendar", "changeMonth", "changeYear", "clear", "close", "onMouseOver", "createElement", "createDay", "destroy", "isEnabled", "jumpToDate", "updateValue", "open", "redraw", "set", "setDate", "toggle", "setupHelperFunctions", "month", "yr", "init", "parseConfig", "setupLocale", "setupInputs", "setupDates", "build", "bindEvents", "setCalendarWidth", "isSafari", "triggerEvent", "getClosestActiveElement", "_a", "bindToInstance", "fn", "config", "daysWidth", "updateTime", "e", "defaultDate", "compareDates", "getDefaultHours", "timeWrapper", "prevValue", "setHoursFromInputs", "ampm2military", "hour", "amPM", "int", "military2ampm", "hours", "minutes", "seconds", "limitMinHours", "limitMaxHours", "minBound", "calculateSecondsSinceMidnight", "maxBound", "currentTime", "result", "parseSeconds", "maxTime", "minTime", "setHours", "dateObj", "date", "pad", "onYearInput", "event", "eventTarget", "getEventTarget", "year", "handler", "options", "ev", "el", "triggerChange", "evt", "setupMobile", "debouncedResize", "debounce", "onResize", "onKeyDown", "documentClick", "onMonthNavClick", "selectDate", "selText", "timeIncrement", "onBlur", "jumpDate", "jumpTo", "oldYear", "oldMonth", "buildMonthSwitch", "incrementNumInput", "delta", "inputElem", "target", "input", "createEvent", "fragment", "buildMonthNav", "buildWeeks", "weekWrapper", "weekNumbers", "buildWeekdays", "buildDays", "buildTime", "toggleClass", "customAppend", "wrapper", "className", "_dayNumber", "dateIsEnabled", "dayElement", "isDateSelected", "isDateInRange", "focusOnDayElem", "targetNode", "getFirstAvailableDay", "startMonth", "endMonth", "m", "startIndex", "endIndex", "c", "getNextAvailableDay", "current", "givenMonth", "loopDelta", "numMonthDays", "focusOnDay", "offset", "activeElement", "dayFocused", "isInView", "startElem", "buildMonthDays", "firstOfMonth", "prevMonthDays", "daysInMonth", "days", "isMultiMonth", "prevMonthDayClass", "nextMonthDayClass", "dayNumber", "dayIndex", "dayNum", "dayContainer", "clearNode", "frag", "d", "shouldBuildMonth", "monthToStr", "buildMonth", "container", "monthNavFragment", "monthElement", "selectedMonth", "yearInput", "createNumberInput", "yearElement", "currentMonth", "buildMonths", "bool", "updateNavigationCurrentMonth", "separator", "hourInput", "minuteInput", "secondInput", "updateWeekdays", "firstDayOfWeek", "weekdays", "value", "isOffset", "triggerChangeEvent", "toInitial", "_", "isCalendarElem", "elem", "eventTarget_1", "isCalendarElement", "isInput", "lostFocus", "isIgnored", "newYear", "newYearNum", "isNewYear", "timeless", "dateToCheck", "array", "parsed", "valueChanged", "getDateStr", "allowInput", "allowKeydown", "allowInlineKeydown", "isTimeObj", "focusAndClose", "delta_1", "elems", "x", "cellClass", "hoverDate", "initialDate", "rangeStartDate", "rangeEndDate", "containsDisabled", "minRange", "maxRange", "duration", "hoverableCells", "dayElem", "timestamp", "outOfRange", "isBetween", "positionElement", "wasOpen", "minMaxDateSetter", "type", "inverseDateObj", "boolOpts", "userConfig", "formats", "dates", "parseDateRules", "timeMode", "defaultDateFormat", "defaultAltFormat", "minMaxTimeSetter", "val", "HOOKS", "hook", "arrayify", "pluginConf", "key", "getInputElem", "tokenRegex", "createDateFormatter", "customPositionElement", "calendarHeight", "acc", "child", "calendarWidth", "configPos", "configPosVertical", "configPosHorizontal", "inputBounds", "distanceFromBottom", "showOnTop", "top", "left", "isCenter", "isRight", "right", "rightMost", "centerMost", "doc", "getDocumentStyleSheet", "bodyWidth", "centerLeft", "centerBefore", "centerAfter", "centerIndex", "centerStyle", "editableSheet", "sheet", "err", "createStyleSheet", "style", "isSelectable", "day", "findParent", "selectedDate", "shouldChangeMonth", "selectedIndex", "b", "single", "range", "CALLBACKS", "updatePositionElement", "option", "setSelectedDate", "inputDate", "format", "arr", "rule", "preloadedDate", "inputType", "data", "hooks", "name", "specificFormat", "dObj", "isPrevMonth", "isNextMonth", "isKeyDown", "min", "max", "step", "curValue", "newValue", "isHourElem", "isMinuteElem", "_flatpickr", "nodeList", "nodes", "instances", "node", "selector", "l10n", "esm_default", "initDateSelector", "esm_default", "saveTableConfig", "element", "getElements", "addColumns", "event", "selectedOption", "selected", "removeColumns", "available", "submitFormConfig", "url", "formConfig", "__async", "apiPatch", "handleSubmit", "_a", "_b", "_c", "createToast", "reset", "path", "data", "value", "key", "res", "hasError", "options", "getSelectedOptions", "formData", "opt", "initTableConfig", "isShowHide", "value", "TableStateError", "message", "table", "__publicField", "ButtonState", "button", "rows", "row", "state", "replaceAll", "event", "TableState", "toggleEnabledButton", "findFirstAdjacent", "toggleDisabledButton", "toggleVirtualButton", "toggleDisconnectedButton", "err", "instance", "initInterfaceTable", "element", "getElements", "SideNav", "base", "__publicField", "StateManager", "attr", "attrs", "toggler", "event", "getElements", "link", "collapse", "element", "section", "collapseInstance", "Collapse", "action", "_a", "dropdownMenu", "isElement", "groupItem", "groupLink", "menuitem", "href", "initSideNav", "sidenav", "obsolete", "self", "f", "oldName", "newName", "rev", "wrapper", "args", "Utils", "_Utils", "els", "root", "doc", "el", "list", "n", "strict", "a", "b", "x0", "x1", "y0", "y1", "nodes", "dir", "_a", "_b", "_c", "_d", "diffY", "id", "parent", "options", "style", "nonce", "sheet", "selector", "rules", "v", "value", "val", "h", "unit", "match", "target", "sources", "source", "key", "doMinMax", "node", "aVal", "bVal", "removeEl", "func", "delay", "isWaiting", "args", "position", "distance", "rect", "innerHeightOrClientHeight", "offsetDiffDown", "offsetDiffUp", "scrollEl", "prevScroll", "event", "height", "offsetTop", "pointerPosY", "top", "bottom", "obj", "__spreadValues", "skipFields", "ret", "k", "parentNode", "styles", "s", "e", "info", "evt", "p", "simulatedType", "simulatedEvent", "transformReference", "transformValues", "o", "tmp", "GridStackEngine", "_GridStackEngine", "opts", "flag", "doPack", "node", "nn", "collide", "opt", "area", "didMove", "newOpt", "moved", "__spreadProps", "__spreadValues", "Utils", "skip", "skip2", "skipId", "skip2Id", "n", "o", "collides", "r0", "r", "overMax", "r2", "yOver", "xOver", "over", "w", "h", "top", "right", "bottom", "left", "a", "b", "_doSwap", "x", "y", "touching", "t", "layout", "doSort", "wasBatch", "wasColumnResize", "copyNodes", "index", "list", "after", "val", "dir", "newY", "i", "resizing", "_a", "defaults", "before", "copy", "verify", "removedNodes", "dirtyNodes", "nodeList", "column", "start", "found", "box", "triggerAddEvent", "dup", "skipCollision", "removeDOM", "triggerEvent", "clonedNode", "clone", "canMove", "c", "p", "_b", "wasUndefinedPack", "prevPos", "needToMove", "activeDrag", "a1", "a2", "row", "saveElement", "saveCB", "len", "wl", "l", "nodes", "ratio", "prevColumn", "doCompact", "newNodes", "cacheNodes", "lastIndex", "cacheNode", "_c", "j", "move", "scale", "clear", "existing", "n2", "prop", "gridDefaults", "dragInDefaultOptions", "DDManager", "isTouch", "DDTouch", "simulateMouseEvent", "e", "simulatedType", "touch", "simulatedEvent", "simulatePointerMouseEvent", "touchstart", "touchmove", "touchend", "wasDragging", "DDManager", "pointerdown", "pointerenter", "pointerleave", "DDResizableHandle", "_DDResizableHandle", "host", "dir", "option", "el", "isTouch", "touchstart", "pointerdown", "e", "touchmove", "touchend", "s", "_a", "_b", "name", "event", "DDBaseImplement", "event", "callback", "eventName", "DDResizable", "_DDResizable", "DDBaseImplement", "el", "option", "containmentRect", "newRect", "rect", "event", "callback", "opts", "updateHandles", "updateAutoHide", "key", "auto", "DDManager", "e", "dir", "DDResizableHandle", "Utils", "ev", "prop", "parent", "dragTransform", "i", "oEvent", "offsetX", "offsetY", "moveLeft", "moveUp", "constrain", "oWidth", "oHeight", "o", "maxWidth", "minWidth", "maxHeight", "minHeight", "width", "height", "containmentEl", "left", "top", "value", "scaleReciprocal", "handle", "skipMouseDown", "DDDraggable", "_DDDraggable", "DDBaseImplement", "el", "option", "handleName", "n", "event", "callback", "dragEl", "isTouch", "touchstart", "pointerdown", "forDestroy", "opts", "key", "e", "DDManager", "touchmove", "touchend", "ev", "Utils", "_a", "s", "pause", "grid", "_b", "__spreadValues", "helper", "prop", "style", "node", "transition", "containmentRect", "offset", "parent", "xformOffsetX", "xformOffsetY", "targetOffset", "DDDroppable", "DDBaseImplement", "el", "option", "event", "callback", "isTouch", "pointerenter", "pointerleave", "forDestroy", "opts", "key", "e", "DDManager", "ev", "Utils", "calledByEnter", "_a", "parentDrop", "parent", "drag", "__spreadValues", "DDElement", "_DDElement", "el", "eventName", "callback", "opts", "DDDraggable", "DDResizable", "DDDroppable", "DDGridStack", "el", "opts", "key", "value", "dEl", "grid", "handles", "autoHide", "__spreadProps", "__spreadValues", "name", "callback", "event", "DDManager", "els", "create", "hosts", "Utils", "list", "e", "DDElement", "d", "dd", "DDGridStack", "GridStack", "_GridStack", "options", "elOrString", "el", "Utils", "selector", "grids", "parent", "opt", "grid", "__spreadValues", "doc", "engineClass", "placeholderChild", "gridDefaults", "opts", "_a", "_b", "_c", "_d", "rowAttr", "bk", "oldOpts", "oneSize", "oneColumn", "b", "resp", "a", "defaults", "__spreadProps", "grandParent", "parentGridItem", "isTouch", "GridStackEngine", "cbNodes", "maxH", "n", "children", "DDManager", "els", "isGridStackWidget", "w", "node", "content", "domAttr", "ops", "nodeToAdd", "saveContent", "subGridTemplate", "autoColumn", "newItem", "newItemOpt", "h", "style", "subGrid", "nodeThatRemoved", "pGrid", "saveGridOpt", "saveCB", "list", "sub", "listOrOpt", "o", "origShow", "items", "addRemove", "column", "maxColumn", "prevCB", "removed", "blank", "updateNodes", "item", "flag", "forcePixel", "rows", "val", "update", "marginDiff", "data", "forBreakpoint", "newColumn", "i", "layout", "doSort", "oldColumn", "removeDOM", "position", "useDocRelative", "box", "containerPos", "relativeLeft", "relativeTop", "columnWidth", "rowHeight", "x", "y", "name", "callback", "event", "key", "triggerEvent", "doAnimate", "delay", "updateClass", "recurse", "keys", "m", "k", "itemContent", "changed", "ddChanged", "widthChanged", "wasUpdating", "cell", "height", "padding", "itemH", "wantedH", "child", "softMax", "relative", "rot", "pivotX", "pivotY", "_orig", "value", "elements", "addedNodes", "removedNodes", "type", "styleLocation", "forceUpdate", "cellHeight", "cellHeightUnit", "prefix", "top", "bottom", "right", "left", "placeholder", "getHeight", "row", "unit", "cssMinHeight", "minRow", "triggerAddEvent", "sizeToContent", "attrs", "clearDefaultAttr", "classes", "columnChanged", "nodes", "forceRemove", "trackSize", "margin", "margins", "dragIn", "dragInOptions", "root", "dragInDefaultOptions", "doEnable", "cellWidth", "onDrag", "helper", "helperRect", "ui", "canAccept", "wasAdded", "noAnim", "origNode", "oGrid", "remove", "trashEl", "noMove", "noResize", "onStartMoving", "dragOrResize", "onEndMoving", "target", "gridEl", "colLeft", "rowLeft", "p", "resizing", "mLeft", "mRight", "mTop", "mBottom", "mHeight", "mWidth", "distance", "prev", "extra", "rect", "obsolete", "lockDashboard", "dashboard", "unlockDashboard", "saveDashboardLayout", "url", "gridData", "__async", "apiPatch", "initDashboard", "grid", "GridStack", "gridLockButton", "gridUnlockButton", "gridSaveButton", "res", "hasError", "createToast", "setRackView", "view", "elevation", "showRackElements", "hideRackElements", "selector", "_a", "_b", "elements", "element", "handleRackViewSelect", "newView", "state", "getElements", "initRackElevation", "initialView", "rackImagesState", "control", "o", "event", "handleSelection", "link", "selector_results", "target_id", "target", "label", "value", "initObjectSelector", "element", "getElements", "initDepedencies", "init", "initButtons", "initClipboard", "initSelects", "initObjectSelector", "initBootstrap", "initMessages", "initHtmx", "handleSavedFilterChange", "event", "savedFilter", "baseUrl", "preFilter", "selectedOptions", "option", "initSavedFilterSelect", "divResults", "isTruthy", "savedFilterSelect", "initDocument", "init", "initBootstrap", "initColorMode", "initMessages", "initForms", "initQuickSearch", "initSelects", "initDateSelector", "initButtons", "initClipboard", "initTableConfig", "initInterfaceTable", "initSideNav", "initDashboard", "initRackElevation", "initHtmx", "initSavedFilterSelect", "initWindow", "documentForms", "documentForm", "event", "formData", "name", "value", "contentContainer"]
+ "sources": ["../node_modules/htmx.org/dist/htmx.min.js", "../node_modules/tom-select/src/contrib/microevent.ts", "../node_modules/tom-select/src/contrib/microplugin.ts", "../node_modules/tom-select/node_modules/@orchidjs/unicode-variants/dist/esm/regex.js", "../node_modules/tom-select/node_modules/@orchidjs/unicode-variants/dist/esm/strings.js", "../node_modules/tom-select/node_modules/@orchidjs/unicode-variants/dist/esm/index.js", "../node_modules/tom-select/node_modules/@orchidjs/sifter/dist/esm/utils.js", "../node_modules/tom-select/node_modules/@orchidjs/sifter/dist/esm/sifter.js", "../node_modules/tom-select/node_modules/@orchidjs/sifter/lib/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/tom-select/src/contrib/highlight.ts", "../node_modules/tom-select/src/constants.ts", "../node_modules/tom-select/src/defaults.ts", "../node_modules/tom-select/src/utils.ts", "../node_modules/tom-select/src/getSettings.ts", "../node_modules/tom-select/src/tom-select.ts", "../node_modules/tom-select/src/plugins/change_listener/plugin.ts", "../node_modules/tom-select/src/plugins/checkbox_options/plugin.ts", "../node_modules/tom-select/src/plugins/clear_button/plugin.ts", "../node_modules/tom-select/src/plugins/drag_drop/plugin.ts", "../node_modules/tom-select/src/plugins/dropdown_header/plugin.ts", "../node_modules/tom-select/src/plugins/caret_position/plugin.ts", "../node_modules/tom-select/src/plugins/dropdown_input/plugin.ts", "../node_modules/tom-select/src/plugins/input_autogrow/plugin.ts", "../node_modules/tom-select/src/plugins/no_backspace_delete/plugin.ts", "../node_modules/tom-select/src/plugins/no_active_items/plugin.ts", "../node_modules/tom-select/src/plugins/optgroup_columns/plugin.ts", "../node_modules/tom-select/src/plugins/remove_button/plugin.ts", "../node_modules/tom-select/src/plugins/restore_on_backspace/plugin.ts", "../node_modules/tom-select/src/plugins/virtual_scroll/plugin.ts", "../node_modules/tom-select/src/tom-select.complete.ts", "../node_modules/@orchidjs/unicode-variants/lib/regex.mjs", "../node_modules/@orchidjs/unicode-variants/lib/strings.mjs", "../node_modules/@orchidjs/unicode-variants/lib/index.mjs", "../node_modules/clipboard/dist/clipboard.js", "../node_modules/@popperjs/core/lib/index.js", "../node_modules/@popperjs/core/lib/enums.js", "../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../node_modules/@popperjs/core/lib/utils/math.js", "../node_modules/@popperjs/core/lib/utils/userAgent.js", "../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../node_modules/@popperjs/core/lib/dom-utils/contains.js", "../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../node_modules/@popperjs/core/lib/utils/within.js", "../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../node_modules/@popperjs/core/lib/modifiers/arrow.js", "../node_modules/@popperjs/core/lib/utils/getVariation.js", "../node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../node_modules/@popperjs/core/lib/modifiers/flip.js", "../node_modules/@popperjs/core/lib/modifiers/hide.js", "../node_modules/@popperjs/core/lib/modifiers/offset.js", "../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../node_modules/@popperjs/core/lib/utils/debounce.js", "../node_modules/@popperjs/core/lib/utils/mergeByName.js", "../node_modules/@popperjs/core/lib/createPopper.js", "../node_modules/@popperjs/core/lib/popper-lite.js", "../node_modules/@popperjs/core/lib/popper.js", "../node_modules/bootstrap/js/src/dom/data.js", "../node_modules/bootstrap/js/src/util/index.js", "../node_modules/bootstrap/js/src/dom/event-handler.js", "../node_modules/bootstrap/js/src/dom/manipulator.js", "../node_modules/bootstrap/js/src/util/config.js", "../node_modules/bootstrap/js/src/base-component.js", "../node_modules/bootstrap/js/src/dom/selector-engine.js", "../node_modules/bootstrap/js/src/util/component-functions.js", "../node_modules/bootstrap/js/src/alert.js", "../node_modules/bootstrap/js/src/button.js", "../node_modules/bootstrap/js/src/util/swipe.js", "../node_modules/bootstrap/js/src/carousel.js", "../node_modules/bootstrap/js/src/collapse.js", "../node_modules/bootstrap/js/src/dropdown.js", "../node_modules/bootstrap/js/src/util/backdrop.js", "../node_modules/bootstrap/js/src/util/focustrap.js", "../node_modules/bootstrap/js/src/util/scrollbar.js", "../node_modules/bootstrap/js/src/modal.js", "../node_modules/bootstrap/js/src/offcanvas.js", "../node_modules/bootstrap/js/src/util/sanitizer.js", "../node_modules/bootstrap/js/src/util/template-factory.js", "../node_modules/bootstrap/js/src/tooltip.js", "../node_modules/bootstrap/js/src/popover.js", "../node_modules/bootstrap/js/src/scrollspy.js", "../node_modules/bootstrap/js/src/tab.js", "../node_modules/bootstrap/js/src/toast.js", "../src/index.ts", "../src/util.ts", "../src/forms/elements.ts", "../src/forms/speedSelector.ts", "../src/forms/index.ts", "../src/bs.ts", "../src/search.ts", "../src/select/static.ts", "../src/select/config.ts", "../node_modules/@orchidjs/sifter/lib/utils.ts", "../node_modules/tom-select/src/vanilla.ts", "../node_modules/query-string/base.js", "../node_modules/decode-uri-component/index.js", "../node_modules/filter-obj/index.js", "../node_modules/split-on-first/index.js", "../node_modules/query-string/index.js", "../src/select/classes/dynamicTomSelect.ts", "../src/select/types.ts", "../src/select/classes/dynamicParamsMap.ts", "../src/select/dynamic.ts", "../src/select/index.ts", "../src/buttons/connectionToggle.ts", "../src/state/index.ts", "../src/stores/objectDepth.ts", "../src/stores/rackImages.ts", "../src/stores/previousPkCheck.ts", "../src/stores/secret.ts", "../src/buttons/depthToggle.ts", "../src/buttons/moveOptions.ts", "../src/buttons/reslug.ts", "../src/buttons/selectAll.ts", "../src/buttons/floatBulk.ts", "../src/buttons/selectMultiple.ts", "../src/buttons/markdownPreview.ts", "../src/buttons/secretToggle.ts", "../src/buttons/index.ts", "../src/colorMode.ts", "../src/messages.ts", "../src/clipboard.ts", "../node_modules/flatpickr/dist/esm/types/options.js", "../node_modules/flatpickr/dist/esm/l10n/default.js", "../node_modules/flatpickr/dist/esm/utils/index.js", "../node_modules/flatpickr/dist/esm/utils/dom.js", "../node_modules/flatpickr/dist/esm/utils/formatting.js", "../node_modules/flatpickr/dist/esm/utils/dates.js", "../node_modules/flatpickr/dist/esm/utils/polyfills.js", "../node_modules/flatpickr/dist/esm/index.js", "../src/dateSelector.ts", "../src/tableConfig.ts", "../src/tables/interfaceTable.ts", "../src/sidenav.ts", "../node_modules/gridstack/src/utils.ts", "../node_modules/gridstack/src/gridstack-engine.ts", "../node_modules/gridstack/src/types.ts", "../node_modules/gridstack/src/dd-manager.ts", "../node_modules/gridstack/src/dd-touch.ts", "../node_modules/gridstack/src/dd-resizable-handle.ts", "../node_modules/gridstack/src/dd-base-impl.ts", "../node_modules/gridstack/src/dd-resizable.ts", "../node_modules/gridstack/src/dd-draggable.ts", "../node_modules/gridstack/src/dd-droppable.ts", "../node_modules/gridstack/src/dd-element.ts", "../node_modules/gridstack/src/dd-gridstack.ts", "../node_modules/gridstack/src/gridstack.ts", "../src/dashboard.ts", "../src/racks.ts", "../src/objectSelector.ts", "../src/htmx.ts", "../src/forms/savedFiltersSelect.ts", "../src/netbox.ts"],
+ "mappings": "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",
+ "names": ["require_htmx_min", "__commonJSMin", "e", "t", "r", "n", "i", "a", "o", "s", "l", "u", "f", "c", "h", "v", "M", "X", "d", "D", "U", "g", "p", "m", "x", "B", "F", "V", "y", "b", "w", "j", "S", "E", "_", "C", "R", "z", "$", "T", "O", "W", "q", "H", "G", "J", "L", "A", "Z", "N", "K", "I", "k", "P", "Y", "forEvents", "events", "callback", "split", "forEach", "event", "MicroEvent", "constructor", "_events", "on", "fct", "event_array", "push", "off", "n", "arguments", "length", "undefined", "splice", "indexOf", "trigger", "args", "self", "apply", "MicroPlugin", "Interface", "plugins", "names", "settings", "requested", "loaded", "define", "name", "fn", "initializePlugins", "key", "queue", "Array", "isArray", "plugin", "options", "hasOwnProperty", "shift", "require", "loadPlugin", "Error", "arrayToPattern", "chars", "maxValueLength", "sequencePattern", "array", "hasDuplicates", "pattern", "prev_char_count", "prev_pattern", "char", "i", "setToPattern", "toArray", "escape_regex", "str", "longest", "value", "unicodeLength", "p", "allSubstrings", "input", "result", "start", "subresult", "tmp", "code_points", "accent_pat", "unicode_map", "multi_char_reg", "max_char_length", "latin_convert", "latin_condensed", "latin", "unicode", "convert_pat", "initialize", "_code_points", "generateMap", "normalize", "form", "asciifold", "_asciifold", "generator", "code_point_min", "code_point_max", "composed", "folded", "generateSets", "unicode_sets", "addMatching", "to_add", "folded_set", "patt", "multi_char", "set", "a", "b", "multi_char_patt", "mapSequence", "strings", "min_replacement", "chars_replaced", "substringsToPattern", "sub_pat", "sequencesToPattern", "sequences", "all", "sequence", "seq", "len", "j", "inSequences", "needle_seq", "needle_parts", "filter", "part", "needle_part", "Sequence", "position", "last_piece", "clone", "parts", "last_part", "last_substr", "clone_last_len", "getPattern", "match", "match_str", "overlapping", "added_types", "new_seq", "old_seq", "getAttr", "obj", "getAttrNesting", "scoreValue", "token", "weight", "score", "pos", "propToArray", "iterate", "object", "cmp", "Sifter", "items", "query", "respect_word_boundaries", "weights", "tokens", "words", "field_regex", "word", "field_match", "field", "regex", "search", "token_count", "fields", "field_count", "getAttrFn", "scoreObject", "data", "sum", "implicit_score", "sort_flds", "sort", "get_field", "s", "fld", "sort_fld", "optsUser", "fn_score", "item", "id", "_", "fn_sort", "getDom", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "escapeQuery", "replace", "triggerEvent", "dom_el", "event_name", "createEvent", "initEvent", "dispatchEvent", "applyCSS", "css", "Object", "assign", "style", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "add", "removeClasses", "remove", "_classes", "concat", "Boolean", "parentMatch", "target", "selector", "wrapper", "contains", "matches", "parentNode", "getTail", "list", "direction", "isEmptyObject", "keys", "nodeIndex", "amongst", "nodeName", "previousElementSibling", "setAttr", "attrs", "val", "attr", "removeAttribute", "setAttribute", "replaceNode", "existing", "replacement", "replaceChild", "highlight", "element", "RegExp", "highlightText", "node", "spannode", "className", "middlebit", "splitText", "index", "middleclone", "cloneNode", "appendChild", "highlightChildren", "nodeType", "childNodes", "test", "tagName", "from", "highlightRecursive", "removeHighlight", "elements", "querySelectorAll", "prototype", "call", "parent", "KEY_A", "KEY_RETURN", "KEY_ESC", "KEY_LEFT", "KEY_UP", "KEY_RIGHT", "KEY_DOWN", "KEY_BACKSPACE", "KEY_DELETE", "KEY_TAB", "KEY_SHORTCUT", "navigator", "userAgent", "defaults", "optgroups", "delimiter", "splitOn", "persist", "diacritics", "create", "createOnBlur", "createFilter", "openOnFocus", "shouldOpen", "maxOptions", "maxItems", "hideSelected", "duplicates", "addPrecedence", "selectOnTab", "preload", "allowEmptyOption", "refreshThrottle", "loadThrottle", "loadingClass", "dataAttr", "optgroupField", "valueField", "labelField", "disabledField", "optgroupLabelField", "optgroupValueField", "lockOptgroupOrder", "sortField", "searchField", "searchConjunction", "mode", "wrapperClass", "controlClass", "dropdownClass", "dropdownContentClass", "itemClass", "optionClass", "dropdownParent", "controlInput", "copyClassesToDropdown", "placeholder", "hidePlaceholder", "shouldLoad", "render", "hash_key", "get_hash", "escape_html", "timeout", "setTimeout", "loadDebounce", "delay", "loading", "Math", "max", "clearTimeout", "loadedSearches", "debounce_events", "types", "type", "event_args", "getSelection", "selectionStart", "selectionEnd", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "addEventListener", "isKeyDown", "key_name", "count", "altKey", "ctrlKey", "shiftKey", "metaKey", "getId", "existing_id", "getAttribute", "addSlashes", "append", "getSettings", "settings_user", "attr_data", "field_label", "field_value", "field_disabled", "field_optgroup", "field_optgroup_label", "field_optgroup_value", "tag_name", "toLowerCase", "option", "textContent", "settings_element", "init_select", "optionsMap", "group_count", "$order", "readData", "dataset", "json", "JSON", "parse", "addOption", "group", "arr", "option_data", "disabled", "$option", "selected", "addGroup", "optgroup", "optgroup_data", "children", "hasAttribute", "child", "init_textbox", "data_raw", "opt", "values", "instance_i", "TomSelect", "input_arg", "user_settings", "control_input", "dropdown", "control", "dropdown_content", "focus_node", "order", "tabIndex", "is_select_tag", "rtl", "inputId", "_destroy", "sifter", "isOpen", "isDisabled", "isReadOnly", "isRequired", "isInvalid", "isValid", "isLocked", "isFocused", "isInputHidden", "isSetup", "ignoreFocus", "ignoreHover", "hasOptions", "currentResults", "lastValue", "caretPos", "activeOption", "activeItems", "userOptions", "refreshTimeout", "dir", "tomselect", "computedStyle", "window", "getComputedStyle", "getPropertyValue", "required", "setupCallbacks", "setupTemplates", "_render", "inputMode", "setup", "passive_event", "passive", "listboxId", "role", "control_id", "label", "label_click", "focus", "bind", "for", "label_id", "width", "classes_plugins", "join", "multiple", "load", "e", "target_match", "onOptionHover", "capture", "onOptionSelect", "onItemSelect", "onClick", "onKeyDown", "onKeyPress", "onInput", "onBlur", "onFocus", "onPaste", "doc_mousedown", "composedPath", "blur", "inputState", "win_scroll", "positionDropdown", "removeEventListener", "revertSettings", "insertAdjacentElement", "sync", "refreshState", "updateOriginalInput", "refreshItems", "close", "disable", "readOnly", "setReadOnly", "enable", "onChange", "setupOptions", "addOptions", "registerOptionGroup", "templates", "optgroup_header", "escape", "option_create", "no_results", "not_loading", "callbacks", "get_settings", "setValue", "lastQuery", "clearActiveItems", "onMouseDown", "pastedText", "inputValue", "splitInput", "piece", "addItem", "createItem", "character", "String", "fromCharCode", "keyCode", "which", "constants", "selectAll", "open", "next", "getAdjacent", "setActiveOption", "prev", "canSelect", "activeElement", "advanceSelection", "deleteSelection", "_onInput", "refreshOptions", "wasFocused", "hasFocus", "deactivate", "setActiveItem", "setCaret", "parentElement", "closeAfterSelect", "canLoad", "loadCallback", "clearActiveOption", "setTextboxValue", "changed", "getValue", "silent", "clear", "addItems", "setMaxItems", "eventName", "begin", "end", "swap", "last", "getLastActive", "setActiveItemClass", "removeActiveItem", "last_active", "idx", "scroll", "scrollToOption", "behavior", "height_menu", "clientHeight", "scrollTop", "height_item", "offsetHeight", "y", "getBoundingClientRect", "top", "scrollBehavior", "controlChildren", "toggle", "offsetWidth", "getScoreFunction", "getSearchOptions", "conjunction", "nesting", "calculateScore", "hashed", "triggerDropdown", "k", "html", "has_create_option", "active_group", "groups", "groups_order", "same_query", "results", "active_option", "show_dropdown", "closest", "min", "getGroupFragment", "group_order_i", "order_group", "fragment", "group_fragment", "createDocumentFragment", "opt_value", "opt_hash", "option_el", "getOption", "includes", "self_optgroup", "$id", "toString", "group_order", "group_heading", "group_options", "header", "group_html", "tok", "add_template", "template", "insertBefore", "canCreate", "active_index", "selectable", "user_created", "dat", "registerOption", "addOptionGroup", "hashed_id", "removeOptionGroup", "clearCache", "clearOptionGroups", "updateOption", "item_new", "index_item", "value_old", "value_new", "data_old", "getItem", "uncacheValue", "option_new", "removeOption", "removeItem", "clearOptions", "boundFilter", "clearFilter", "$div", "x", "last_item", "isPending", "wasFull", "isFull", "insertAtCaret", "caret", "output", "lock", "created", "unlock", "refreshValidityState", "wrap_classList", "validity", "valid", "opts", "empty_option", "AddSelected", "has_selected", "reuse_opt", "visibility", "display", "context", "rect", "scrollY", "left", "scrollX", "selection", "tail", "rm_items", "rm_item", "shouldDelete", "pop", "onDelete", "adjacent", "nextElementSibling", "moveCaret", "new_pos", "setLocked", "setDisabled", "destroy", "templateName", "hook", "when", "method", "new_fn", "orig_method", "result_new", "change_listener", "checkbox_options", "orig_onOptionSelect", "cbOptions", "checkedClassNames", "uncheckedClassNames", "UpdateChecked", "checkbox", "toCheck", "checked", "UpdateCheckbox", "HTMLInputElement", "orig_render_option", "rendered", "prepend", "clear_button", "title", "button", "insertAfter", "referenceNode", "newNode", "_referenceNode$parent", "nextSibling", "_referenceNode$parent2", "isBefore", "_newNode", "drag_drop", "orig_lock", "orig_unlock", "sortable", "drag_item", "orig_render_item", "mousedown", "dragStart", "dragOver", "moveitem", "dragLeave", "targetitem", "dragitem", "dragend", "_drag_item", "dropdown_header", "headerClass", "titleRowClass", "labelClass", "closeClass", "close_link", "caret_position", "dropdown_input", "div", "orig_onBlur", "relatedTarget", "preventScroll", "input_autogrow", "test_input", "cssText", "transfer_styles", "style_name", "resize", "clientWidth", "no_backspace_delete", "orig_deleteSelection", "no_active_items", "optgroup_columns", "orig_keydown", "previousSibling", "remove_button", "close_button", "restore_on_backspace", "text", "virtual_scroll", "orig_canLoad", "orig_clearActiveOption", "orig_loadCallback", "pagination", "loading_more", "load_more_opt", "default_values", "shouldLoadMore", "scrollHeight", "firstUrl", "canLoadMore", "setNextUrl", "next_url", "getUrl", "clearPagination", "first_option", "no_more_results", "arrayToPattern", "chars", "filter", "Boolean", "length", "maxValueLength", "join", "sequencePattern", "array", "hasDuplicates", "pattern", "prev_char_count", "prev_pattern", "forEach", "char", "i", "setToPattern", "toArray", "Set", "size", "escape_regex", "str", "replace", "reduce", "longest", "value", "Math", "max", "unicodeLength", "p", "Array", "from", "allSubstrings", "input", "result", "start", "substring", "suba", "subresult", "tmp", "slice", "charAt", "push", "unshift", "code_points", "accent_pat", "unicode_map", "multi_char_reg", "max_char_length", "latin_convert", "latin_condensed", "latin", "unicode", "convert_pat", "RegExp", "Object", "keys", "initialize", "_code_points", "undefined", "generateMap", "normalize", "form", "asciifold", "_asciifold", "toLowerCase", "generator", "code_point_min", "code_point_max", "composed", "String", "fromCharCode", "folded", "code_point", "generateSets", "unicode_sets", "addMatching", "to_add", "folded_set", "patt", "match", "add", "multi_char", "set", "sort", "a", "b", "multi_char_patt", "mapSequence", "strings", "min_replacement", "chars_replaced", "map", "substringsToPattern", "sub_pat", "sequencesToPattern", "sequences", "all", "sequence", "seq", "len", "j", "substrs", "inSequences", "needle_seq", "end", "needle_parts", "parts", "part", "needle_part", "substr", "filtered", "Sequence", "constructor", "min", "last", "clone", "position", "last_piece", "JSON", "parse", "stringify", "last_part", "pop", "last_substr", "clone_last_len", "getPattern", "match_str", "overlapping", "added_types", "has", "new_seq", "old_seq", "require_clipboard", "__commonJSMin", "exports", "module", "root", "factory", "__webpack_modules__", "__unused_webpack_module", "__webpack_exports__", "__webpack_require__", "clipboard", "tiny_emitter", "tiny_emitter_default", "listen", "listen_default", "src_select", "select_default", "command", "type", "err", "ClipboardActionCut", "target", "selectedText", "actions_cut", "createFakeElement", "value", "isRTL", "fakeElement", "yPosition", "fakeCopyAction", "options", "ClipboardActionCopy", "actions_copy", "_typeof", "obj", "ClipboardActionDefault", "_options$action", "action", "container", "text", "actions_default", "clipboard_typeof", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "o", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "e", "getAttributeValue", "suffix", "element", "attribute", "Clipboard", "_Emitter", "_super", "trigger", "_this", "_this2", "selector", "actions", "support", "DOCUMENT_NODE_TYPE", "proto", "closest", "__unused_webpack_exports", "_delegate", "callback", "useCapture", "listenerFn", "listener", "delegate", "elements", "is", "listenNode", "listenNodeList", "listenSelector", "node", "nodeList", "select", "isReadOnly", "selection", "range", "E", "name", "ctx", "data", "evtArr", "len", "evts", "liveEvents", "__webpack_module_cache__", "moduleId", "getter", "definition", "key", "prop", "lib_exports", "__export", "afterMain", "afterRead", "afterWrite", "applyStyles_default", "arrow_default", "auto", "basePlacements", "beforeMain", "beforeRead", "beforeWrite", "bottom", "clippingParents", "computeStyles_default", "createPopper", "detectOverflow", "end", "eventListeners_default", "flip_default", "hide_default", "left", "main", "modifierPhases", "offset_default", "placements", "popper", "popperGenerator", "popperOffsets_default", "preventOverflow_default", "read", "reference", "right", "start", "top", "variationPlacements", "viewport", "write", "top", "bottom", "right", "left", "auto", "basePlacements", "start", "end", "clippingParents", "viewport", "popper", "reference", "variationPlacements", "acc", "placement", "placements", "beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite", "modifierPhases", "getNodeName", "element", "getWindow", "node", "ownerDocument", "isElement", "node", "OwnElement", "getWindow", "isHTMLElement", "isShadowRoot", "applyStyles", "_ref", "state", "name", "style", "attributes", "element", "isHTMLElement", "getNodeName", "value", "effect", "_ref2", "initialStyles", "styleProperties", "property", "attribute", "applyStyles_default", "getBasePlacement", "placement", "max", "min", "round", "getUAString", "uaData", "item", "isLayoutViewport", "getUAString", "getBoundingClientRect", "element", "includeScale", "isFixedStrategy", "clientRect", "scaleX", "scaleY", "isHTMLElement", "round", "_ref", "isElement", "getWindow", "visualViewport", "addVisualOffsets", "isLayoutViewport", "x", "y", "width", "height", "getLayoutRect", "element", "clientRect", "getBoundingClientRect", "width", "height", "contains", "parent", "child", "rootNode", "isShadowRoot", "next", "getComputedStyle", "element", "getWindow", "isTableElement", "element", "getNodeName", "getDocumentElement", "element", "isElement", "getParentNode", "element", "getNodeName", "isShadowRoot", "getDocumentElement", "getTrueOffsetParent", "element", "isHTMLElement", "getComputedStyle", "getContainingBlock", "isFirefox", "getUAString", "isIE", "elementCss", "currentNode", "getParentNode", "isShadowRoot", "getNodeName", "css", "getOffsetParent", "window", "getWindow", "offsetParent", "isTableElement", "getMainAxisFromPlacement", "placement", "within", "min", "value", "max", "withinMaxClamp", "v", "getFreshSideObject", "mergePaddingObject", "paddingObject", "getFreshSideObject", "expandToHashMap", "value", "keys", "hashMap", "key", "toPaddingObject", "padding", "state", "mergePaddingObject", "expandToHashMap", "basePlacements", "arrow", "_ref", "_state$modifiersData$", "name", "options", "arrowElement", "popperOffsets", "basePlacement", "getBasePlacement", "axis", "getMainAxisFromPlacement", "isVertical", "left", "right", "len", "paddingObject", "arrowRect", "getLayoutRect", "minProp", "top", "maxProp", "bottom", "endDiff", "startDiff", "arrowOffsetParent", "getOffsetParent", "clientSize", "centerToReference", "min", "max", "center", "offset", "within", "axisProp", "effect", "_ref2", "_options$element", "contains", "arrow_default", "getVariation", "placement", "unsetSides", "roundOffsetsByDPR", "_ref", "win", "x", "y", "dpr", "round", "mapToStyles", "_ref2", "_Object$assign2", "popper", "popperRect", "placement", "variation", "offsets", "position", "gpuAcceleration", "adaptive", "roundOffsets", "isFixed", "_offsets$x", "_offsets$y", "_ref3", "hasX", "hasY", "sideX", "left", "sideY", "top", "offsetParent", "getOffsetParent", "heightProp", "widthProp", "getWindow", "getDocumentElement", "getComputedStyle", "right", "end", "bottom", "offsetY", "offsetX", "commonStyles", "_ref4", "_Object$assign", "computeStyles", "_ref5", "state", "options", "_options$gpuAccelerat", "_options$adaptive", "_options$roundOffsets", "getBasePlacement", "getVariation", "computeStyles_default", "passive", "effect", "_ref", "state", "instance", "options", "_options$scroll", "scroll", "_options$resize", "resize", "window", "getWindow", "scrollParents", "scrollParent", "eventListeners_default", "hash", "getOppositePlacement", "placement", "matched", "hash", "getOppositeVariationPlacement", "placement", "matched", "getWindowScroll", "node", "win", "getWindow", "scrollLeft", "scrollTop", "getWindowScrollBarX", "element", "getBoundingClientRect", "getDocumentElement", "getWindowScroll", "getViewportRect", "element", "strategy", "win", "getWindow", "html", "getDocumentElement", "visualViewport", "width", "height", "x", "y", "layoutViewport", "isLayoutViewport", "getWindowScrollBarX", "getDocumentRect", "element", "_element$ownerDocumen", "html", "getDocumentElement", "winScroll", "getWindowScroll", "body", "width", "max", "height", "x", "getWindowScrollBarX", "y", "getComputedStyle", "isScrollParent", "element", "_getComputedStyle", "getComputedStyle", "overflow", "overflowX", "overflowY", "getScrollParent", "node", "getNodeName", "isHTMLElement", "isScrollParent", "getParentNode", "listScrollParents", "element", "list", "_element$ownerDocumen", "scrollParent", "getScrollParent", "isBody", "win", "getWindow", "target", "isScrollParent", "updatedList", "getParentNode", "rectToClientRect", "rect", "getInnerBoundingClientRect", "element", "strategy", "rect", "getBoundingClientRect", "getClientRectFromMixedType", "clippingParent", "viewport", "rectToClientRect", "getViewportRect", "isElement", "getDocumentRect", "getDocumentElement", "getClippingParents", "clippingParents", "listScrollParents", "getParentNode", "canEscapeClipping", "getComputedStyle", "clipperElement", "isHTMLElement", "getOffsetParent", "contains", "getNodeName", "getClippingRect", "boundary", "rootBoundary", "mainClippingParents", "firstClippingParent", "clippingRect", "accRect", "max", "min", "computeOffsets", "_ref", "reference", "element", "placement", "basePlacement", "getBasePlacement", "variation", "getVariation", "commonX", "commonY", "offsets", "top", "bottom", "right", "left", "mainAxis", "getMainAxisFromPlacement", "len", "start", "end", "detectOverflow", "state", "options", "_options", "_options$placement", "placement", "_options$strategy", "strategy", "_options$boundary", "boundary", "clippingParents", "_options$rootBoundary", "rootBoundary", "viewport", "_options$elementConte", "elementContext", "popper", "_options$altBoundary", "altBoundary", "_options$padding", "padding", "paddingObject", "mergePaddingObject", "expandToHashMap", "basePlacements", "altContext", "reference", "popperRect", "element", "clippingClientRect", "getClippingRect", "isElement", "getDocumentElement", "referenceClientRect", "getBoundingClientRect", "popperOffsets", "computeOffsets", "popperClientRect", "rectToClientRect", "elementClientRect", "overflowOffsets", "offsetData", "offset", "key", "multiply", "right", "bottom", "axis", "top", "computeAutoPlacement", "state", "options", "_options", "placement", "boundary", "rootBoundary", "padding", "flipVariations", "_options$allowedAutoP", "allowedAutoPlacements", "placements", "variation", "getVariation", "variationPlacements", "basePlacements", "allowedPlacements", "overflows", "acc", "detectOverflow", "getBasePlacement", "a", "b", "getExpandedFallbackPlacements", "placement", "getBasePlacement", "auto", "oppositePlacement", "getOppositePlacement", "getOppositeVariationPlacement", "flip", "_ref", "state", "options", "name", "_options$mainAxis", "checkMainAxis", "_options$altAxis", "checkAltAxis", "specifiedFallbackPlacements", "padding", "boundary", "rootBoundary", "altBoundary", "_options$flipVariatio", "flipVariations", "allowedAutoPlacements", "preferredPlacement", "basePlacement", "isBasePlacement", "fallbackPlacements", "placements", "acc", "computeAutoPlacement", "referenceRect", "popperRect", "checksMap", "makeFallbackChecks", "firstFittingPlacement", "i", "_basePlacement", "isStartVariation", "getVariation", "start", "isVertical", "top", "bottom", "len", "overflow", "detectOverflow", "mainVariationSide", "right", "left", "altVariationSide", "checks", "check", "numberOfChecks", "_loop", "_i", "fittingPlacement", "_ret", "flip_default", "getSideOffsets", "overflow", "rect", "preventedOffsets", "isAnySideFullyClipped", "top", "right", "bottom", "left", "side", "hide", "_ref", "state", "name", "referenceRect", "popperRect", "referenceOverflow", "detectOverflow", "popperAltOverflow", "referenceClippingOffsets", "popperEscapeOffsets", "isReferenceHidden", "hasPopperEscaped", "hide_default", "distanceAndSkiddingToXY", "placement", "rects", "offset", "basePlacement", "getBasePlacement", "invertDistance", "left", "top", "_ref", "skidding", "distance", "right", "_ref2", "state", "options", "name", "_options$offset", "data", "placements", "acc", "_data$state$placement", "x", "y", "offset_default", "popperOffsets", "_ref", "state", "name", "computeOffsets", "popperOffsets_default", "getAltAxis", "axis", "preventOverflow", "_ref", "state", "options", "name", "_options$mainAxis", "checkMainAxis", "_options$altAxis", "checkAltAxis", "boundary", "rootBoundary", "altBoundary", "padding", "_options$tether", "tether", "_options$tetherOffset", "tetherOffset", "overflow", "detectOverflow", "basePlacement", "getBasePlacement", "variation", "getVariation", "isBasePlacement", "mainAxis", "getMainAxisFromPlacement", "altAxis", "getAltAxis", "popperOffsets", "referenceRect", "popperRect", "tetherOffsetValue", "normalizedTetherOffsetValue", "offsetModifierState", "data", "_offsetModifierState$", "mainSide", "top", "left", "altSide", "bottom", "right", "len", "offset", "min", "max", "additive", "minLen", "start", "maxLen", "arrowElement", "arrowRect", "getLayoutRect", "arrowPaddingObject", "getFreshSideObject", "arrowPaddingMin", "arrowPaddingMax", "arrowLen", "within", "minOffset", "maxOffset", "arrowOffsetParent", "getOffsetParent", "clientOffset", "offsetModifierValue", "tetherMin", "tetherMax", "preventedOffset", "_offsetModifierState$2", "_mainSide", "_altSide", "_offset", "_len", "_min", "_max", "isOriginSide", "_offsetModifierValue", "_tetherMin", "_tetherMax", "_preventedOffset", "withinMaxClamp", "preventOverflow_default", "getHTMLElementScroll", "element", "getNodeScroll", "node", "getWindow", "isHTMLElement", "getWindowScroll", "getHTMLElementScroll", "isElementScaled", "element", "rect", "scaleX", "round", "scaleY", "getCompositeRect", "elementOrVirtualElement", "offsetParent", "isFixed", "isOffsetParentAnElement", "isHTMLElement", "offsetParentIsScaled", "documentElement", "getDocumentElement", "getBoundingClientRect", "scroll", "offsets", "getNodeName", "isScrollParent", "getNodeScroll", "getWindowScrollBarX", "order", "modifiers", "map", "visited", "result", "modifier", "sort", "requires", "dep", "depModifier", "orderModifiers", "orderedModifiers", "modifierPhases", "acc", "phase", "debounce", "fn", "pending", "resolve", "mergeByName", "modifiers", "merged", "current", "existing", "key", "DEFAULT_OPTIONS", "areValidElements", "_len", "args", "_key", "element", "popperGenerator", "generatorOptions", "_generatorOptions", "_generatorOptions$def", "defaultModifiers", "_generatorOptions$def2", "defaultOptions", "reference", "popper", "options", "state", "effectCleanupFns", "isDestroyed", "instance", "setOptionsAction", "cleanupModifierEffects", "isElement", "listScrollParents", "orderedModifiers", "orderModifiers", "mergeByName", "m", "runModifierEffects", "_state$elements", "getCompositeRect", "getOffsetParent", "getLayoutRect", "modifier", "index", "_state$orderedModifie", "fn", "_state$orderedModifie2", "_options", "name", "debounce", "resolve", "_ref", "_ref$options", "effect", "cleanupFn", "noopFn", "createPopper", "defaultModifiers", "eventListeners_default", "popperOffsets_default", "computeStyles_default", "applyStyles_default", "createPopper", "popperGenerator", "defaultModifiers", "eventListeners_default", "popperOffsets_default", "computeStyles_default", "applyStyles_default", "offset_default", "flip_default", "preventOverflow_default", "arrow_default", "hide_default", "createPopper", "popperGenerator", "elementMap", "Map", "Data", "set", "element", "key", "instance", "has", "instanceMap", "get", "size", "console", "error", "Array", "from", "keys", "remove", "delete", "MAX_UID", "MILLISECONDS_MULTIPLIER", "TRANSITION_END", "parseSelector", "selector", "window", "CSS", "escape", "replace", "match", "id", "toType", "object", "Object", "prototype", "toString", "call", "toLowerCase", "getUID", "prefix", "Math", "floor", "random", "document", "getElementById", "getTransitionDurationFromElement", "transitionDuration", "transitionDelay", "getComputedStyle", "floatTransitionDuration", "Number", "parseFloat", "floatTransitionDelay", "split", "triggerTransitionEnd", "dispatchEvent", "Event", "isElement", "jquery", "nodeType", "getElement", "length", "querySelector", "isVisible", "getClientRects", "elementIsVisible", "getPropertyValue", "closedDetails", "closest", "summary", "parentNode", "isDisabled", "Node", "ELEMENT_NODE", "classList", "contains", "disabled", "hasAttribute", "getAttribute", "findShadowRoot", "documentElement", "attachShadow", "getRootNode", "root", "ShadowRoot", "noop", "reflow", "offsetHeight", "getjQuery", "jQuery", "body", "DOMContentLoadedCallbacks", "onDOMContentLoaded", "callback", "readyState", "addEventListener", "push", "isRTL", "dir", "defineJQueryPlugin", "plugin", "$", "name", "NAME", "JQUERY_NO_CONFLICT", "fn", "jQueryInterface", "Constructor", "noConflict", "execute", "possibleCallback", "args", "defaultValue", "executeAfterTransition", "transitionElement", "waitForTransition", "emulatedDuration", "called", "handler", "target", "removeEventListener", "setTimeout", "getNextActiveElement", "list", "activeElement", "shouldGetNext", "isCycleAllowed", "listLength", "index", "indexOf", "max", "min", "namespaceRegex", "stripNameRegex", "stripUidRegex", "eventRegistry", "uidEvent", "customEvents", "mouseenter", "mouseleave", "nativeEvents", "Set", "makeEventUid", "uid", "getElementEvents", "bootstrapHandler", "event", "hydrateObj", "delegateTarget", "oneOff", "EventHandler", "off", "type", "apply", "bootstrapDelegationHandler", "domElements", "querySelectorAll", "domElement", "findHandler", "events", "callable", "delegationSelector", "values", "find", "normalizeParameters", "originalTypeEvent", "delegationFunction", "isDelegated", "typeEvent", "getTypeEvent", "addHandler", "relatedTarget", "handlers", "previousFunction", "removeHandler", "Boolean", "removeNamespacedHandlers", "namespace", "storeElementEvent", "handlerKey", "entries", "includes", "on", "one", "inNamespace", "isNamespace", "startsWith", "elementEvent", "slice", "keyHandlers", "trigger", "jQueryEvent", "bubbles", "nativeDispatch", "defaultPrevented", "isPropagationStopped", "isImmediatePropagationStopped", "isDefaultPrevented", "evt", "cancelable", "preventDefault", "obj", "meta", "value", "_unused", "defineProperty", "configurable", "normalizeData", "JSON", "parse", "decodeURIComponent", "normalizeDataKey", "chr", "Manipulator", "setDataAttribute", "setAttribute", "removeDataAttribute", "removeAttribute", "getDataAttributes", "attributes", "bsKeys", "dataset", "filter", "pureKey", "charAt", "getDataAttribute", "Config", "Default", "DefaultType", "Error", "_getConfig", "config", "_mergeConfigObj", "_configAfterMerge", "_typeCheckConfig", "jsonConfig", "__spreadValues", "constructor", "configTypes", "property", "expectedTypes", "valueType", "RegExp", "test", "TypeError", "toUpperCase", "VERSION", "BaseComponent", "_element", "_config", "DATA_KEY", "dispose", "EVENT_KEY", "propertyName", "getOwnPropertyNames", "_queueCallback", "isAnimated", "getInstance", "getOrCreateInstance", "eventName", "getSelector", "hrefAttribute", "trim", "map", "sel", "join", "SelectorEngine", "concat", "Element", "findOne", "children", "child", "matches", "parents", "ancestor", "prev", "previous", "previousElementSibling", "next", "nextElementSibling", "focusableChildren", "focusables", "el", "getSelectorFromElement", "getElementFromSelector", "getMultipleElementsFromSelector", "enableDismissTrigger", "component", "method", "clickEvent", "tagName", "EVENT_CLOSE", "EVENT_CLOSED", "CLASS_NAME_FADE", "CLASS_NAME_SHOW", "Alert", "close", "_destroyElement", "each", "data", "undefined", "DATA_API_KEY", "CLASS_NAME_ACTIVE", "SELECTOR_DATA_TOGGLE", "EVENT_CLICK_DATA_API", "Button", "toggle", "button", "EVENT_TOUCHSTART", "EVENT_TOUCHMOVE", "EVENT_TOUCHEND", "EVENT_POINTERDOWN", "EVENT_POINTERUP", "POINTER_TYPE_TOUCH", "POINTER_TYPE_PEN", "CLASS_NAME_POINTER_EVENT", "SWIPE_THRESHOLD", "endCallback", "leftCallback", "rightCallback", "Swipe", "isSupported", "_deltaX", "_supportPointerEvents", "PointerEvent", "_initEvents", "_start", "touches", "clientX", "_eventIsPointerPenTouch", "_end", "_handleSwipe", "_move", "absDeltaX", "abs", "direction", "add", "pointerType", "navigator", "maxTouchPoints", "ARROW_LEFT_KEY", "ARROW_RIGHT_KEY", "TOUCHEVENT_COMPAT_WAIT", "ORDER_NEXT", "ORDER_PREV", "DIRECTION_LEFT", "DIRECTION_RIGHT", "EVENT_SLIDE", "EVENT_SLID", "EVENT_KEYDOWN", "EVENT_MOUSEENTER", "EVENT_MOUSELEAVE", "EVENT_DRAG_START", "EVENT_LOAD_DATA_API", "CLASS_NAME_CAROUSEL", "CLASS_NAME_SLIDE", "CLASS_NAME_END", "CLASS_NAME_START", "CLASS_NAME_NEXT", "CLASS_NAME_PREV", "SELECTOR_ACTIVE", "SELECTOR_ITEM", "SELECTOR_ACTIVE_ITEM", "SELECTOR_ITEM_IMG", "SELECTOR_INDICATORS", "SELECTOR_DATA_SLIDE", "SELECTOR_DATA_RIDE", "KEY_TO_DIRECTION", "interval", "keyboard", "pause", "ride", "touch", "wrap", "Carousel", "_interval", "_activeElement", "_isSliding", "touchTimeout", "_swipeHelper", "_indicatorsElement", "_addEventListeners", "cycle", "_slide", "nextWhenVisible", "hidden", "_clearInterval", "_updateInterval", "setInterval", "_maybeEnableCycle", "to", "items", "_getItems", "activeIndex", "_getItemIndex", "_getActive", "order", "defaultInterval", "_keydown", "_addTouchEventListeners", "img", "swipeConfig", "_directionToOrder", "endCallBack", "clearTimeout", "_setActiveIndicatorElement", "activeIndicator", "newActiveIndicator", "elementInterval", "parseInt", "isNext", "nextElement", "nextElementIndex", "triggerEvent", "_orderToDirection", "isCycling", "directionalClassName", "orderClassName", "completeCallBack", "_isAnimated", "clearInterval", "carousel", "slideIndex", "carousels", "EVENT_SHOW", "EVENT_SHOWN", "EVENT_HIDE", "EVENT_HIDDEN", "CLASS_NAME_COLLAPSE", "CLASS_NAME_COLLAPSING", "CLASS_NAME_COLLAPSED", "CLASS_NAME_DEEPER_CHILDREN", "CLASS_NAME_HORIZONTAL", "WIDTH", "HEIGHT", "SELECTOR_ACTIVES", "parent", "Collapse", "_isTransitioning", "_triggerArray", "toggleList", "elem", "filterElement", "foundElement", "_initializeChildren", "_addAriaAndCollapsedClass", "_isShown", "hide", "show", "activeChildren", "_getFirstLevelChildren", "activeInstance", "dimension", "_getDimension", "style", "complete", "scrollSize", "getBoundingClientRect", "selected", "triggerArray", "isOpen", "ESCAPE_KEY", "TAB_KEY", "ARROW_UP_KEY", "ARROW_DOWN_KEY", "RIGHT_MOUSE_BUTTON", "EVENT_KEYDOWN_DATA_API", "EVENT_KEYUP_DATA_API", "CLASS_NAME_DROPUP", "CLASS_NAME_DROPEND", "CLASS_NAME_DROPSTART", "CLASS_NAME_DROPUP_CENTER", "CLASS_NAME_DROPDOWN_CENTER", "SELECTOR_DATA_TOGGLE_SHOWN", "SELECTOR_MENU", "SELECTOR_NAVBAR", "SELECTOR_NAVBAR_NAV", "SELECTOR_VISIBLE_ITEMS", "PLACEMENT_TOP", "PLACEMENT_TOPEND", "PLACEMENT_BOTTOM", "PLACEMENT_BOTTOMEND", "PLACEMENT_RIGHT", "PLACEMENT_LEFT", "PLACEMENT_TOPCENTER", "PLACEMENT_BOTTOMCENTER", "autoClose", "boundary", "display", "offset", "popperConfig", "reference", "Dropdown", "_popper", "_parent", "_menu", "_inNavbar", "_detectNavbar", "showEvent", "_createPopper", "focus", "_completeHide", "destroy", "update", "hideEvent", "Popper", "referenceElement", "_getPopperConfig", "createPopper", "_getPlacement", "parentDropdown", "isEnd", "_getOffset", "popperData", "defaultBsPopperConfig", "placement", "modifiers", "options", "enabled", "_selectMenuItem", "clearMenus", "openToggles", "context", "composedPath", "isMenuTarget", "dataApiKeydownHandler", "isInput", "isEscapeEvent", "isUpOrDownEvent", "getToggleButton", "stopPropagation", "EVENT_MOUSEDOWN", "className", "clickCallback", "rootElement", "Backdrop", "_isAppended", "_append", "_getElement", "_emulateAnimation", "backdrop", "createElement", "append", "EVENT_FOCUSIN", "EVENT_KEYDOWN_TAB", "TAB_NAV_FORWARD", "TAB_NAV_BACKWARD", "autofocus", "trapElement", "FocusTrap", "_isActive", "_lastTabNavDirection", "activate", "_handleFocusin", "_handleKeydown", "deactivate", "elements", "shiftKey", "SELECTOR_FIXED_CONTENT", "SELECTOR_STICKY_CONTENT", "PROPERTY_PADDING", "PROPERTY_MARGIN", "ScrollBarHelper", "getWidth", "documentWidth", "clientWidth", "innerWidth", "width", "_disableOverFlow", "_setElementAttributes", "calculatedValue", "reset", "_resetElementAttributes", "isOverflowing", "_saveInitialAttribute", "overflow", "styleProperty", "scrollbarWidth", "manipulationCallBack", "setProperty", "_applyManipulationCallback", "actualValue", "removeProperty", "callBack", "EVENT_HIDE_PREVENTED", "EVENT_RESIZE", "EVENT_CLICK_DISMISS", "EVENT_MOUSEDOWN_DISMISS", "EVENT_KEYDOWN_DISMISS", "CLASS_NAME_OPEN", "CLASS_NAME_STATIC", "OPEN_SELECTOR", "SELECTOR_DIALOG", "SELECTOR_MODAL_BODY", "Modal", "_dialog", "_backdrop", "_initializeBackDrop", "_focustrap", "_initializeFocusTrap", "_scrollBar", "_adjustDialog", "_showElement", "_hideModal", "handleUpdate", "scrollTop", "modalBody", "transitionComplete", "_triggerBackdropTransition", "event2", "_resetAdjustments", "isModalOverflowing", "scrollHeight", "clientHeight", "initialOverflowY", "overflowY", "isBodyOverflowing", "paddingLeft", "paddingRight", "alreadyOpen", "CLASS_NAME_SHOWING", "CLASS_NAME_HIDING", "CLASS_NAME_BACKDROP", "scroll", "Offcanvas", "blur", "completeCallback", "position", "ARIA_ATTRIBUTE_PATTERN", "DefaultAllowlist", "a", "area", "b", "br", "col", "code", "dd", "div", "dl", "dt", "em", "hr", "h1", "h2", "h3", "h4", "h5", "h6", "i", "li", "ol", "p", "pre", "s", "small", "span", "sub", "sup", "strong", "u", "ul", "uriAttributes", "SAFE_URL_PATTERN", "allowedAttribute", "attribute", "allowedAttributeList", "attributeName", "nodeName", "nodeValue", "attributeRegex", "some", "regex", "sanitizeHtml", "unsafeHtml", "allowList", "sanitizeFunction", "createdDocument", "DOMParser", "parseFromString", "elementName", "attributeList", "allowedAttributes", "innerHTML", "content", "extraClass", "html", "sanitize", "sanitizeFn", "template", "DefaultContentType", "entry", "TemplateFactory", "getContent", "_resolvePossibleFunction", "hasContent", "changeContent", "_checkContent", "toHtml", "templateWrapper", "_maybeSanitize", "text", "_setContent", "arg", "templateElement", "_putElementInTemplate", "textContent", "DISALLOWED_ATTRIBUTES", "CLASS_NAME_MODAL", "SELECTOR_TOOLTIP_INNER", "SELECTOR_MODAL", "EVENT_MODAL_HIDE", "TRIGGER_HOVER", "TRIGGER_FOCUS", "TRIGGER_CLICK", "TRIGGER_MANUAL", "EVENT_INSERTED", "EVENT_CLICK", "EVENT_FOCUSOUT", "AttachmentMap", "AUTO", "TOP", "RIGHT", "BOTTOM", "LEFT", "animation", "container", "customClass", "delay", "fallbackPlacements", "title", "Tooltip", "_isEnabled", "_timeout", "_isHovered", "_activeTrigger", "_templateFactory", "_newContent", "tip", "_setListeners", "_fixTitle", "enable", "disable", "toggleEnabled", "click", "_leave", "_enter", "_hideModalHandler", "_disposePopper", "_isWithContent", "isInTheDom", "ownerDocument", "_getTipElement", "_isWithActiveTrigger", "_getTitle", "_createTipElement", "_getContentForTemplate", "_getTemplateFactory", "tipId", "setContent", "__spreadProps", "_initializeOnDelegatedTarget", "_getDelegateConfig", "attachment", "phase", "state", "triggers", "eventIn", "eventOut", "_setTimeout", "timeout", "dataAttributes", "dataAttribute", "SELECTOR_TITLE", "SELECTOR_CONTENT", "Popover", "_getContent", "EVENT_ACTIVATE", "CLASS_NAME_DROPDOWN_ITEM", "SELECTOR_DATA_SPY", "SELECTOR_TARGET_LINKS", "SELECTOR_NAV_LIST_GROUP", "SELECTOR_NAV_LINKS", "SELECTOR_NAV_ITEMS", "SELECTOR_LIST_ITEMS", "SELECTOR_LINK_ITEMS", "SELECTOR_DROPDOWN", "SELECTOR_DROPDOWN_TOGGLE", "rootMargin", "smoothScroll", "threshold", "ScrollSpy", "_targetLinks", "_observableSections", "_rootElement", "_activeTarget", "_observer", "_previousScrollData", "visibleEntryTop", "parentScrollTop", "refresh", "_initializeTargetsAndObservables", "_maybeEnableSmoothScroll", "disconnect", "_getNewObserver", "section", "observe", "observableSection", "hash", "height", "offsetTop", "scrollTo", "top", "behavior", "IntersectionObserver", "_observerCallback", "targetElement", "_process", "userScrollsDown", "isIntersecting", "_clearActiveClass", "entryIsLowerThanPrevious", "targetLinks", "anchor", "decodeURI", "_activateParents", "listGroup", "item", "activeNodes", "node", "spy", "HOME_KEY", "END_KEY", "CLASS_DROPDOWN", "SELECTOR_DROPDOWN_MENU", "NOT_SELECTOR_DROPDOWN_TOGGLE", "SELECTOR_TAB_PANEL", "SELECTOR_OUTER", "SELECTOR_INNER", "SELECTOR_INNER_ELEM", "SELECTOR_DATA_TOGGLE_ACTIVE", "Tab", "_setInitialAttributes", "_getChildren", "innerElem", "_elemIsActive", "active", "_getActiveElem", "_deactivate", "_activate", "relatedElem", "_toggleDropDown", "nextActiveElement", "preventScroll", "_setAttributeIfNotExists", "_setInitialAttributesOnChild", "_getInnerElement", "isActive", "outerElem", "_getOuterElement", "_setInitialAttributesOnTargetPanel", "open", "EVENT_MOUSEOVER", "EVENT_MOUSEOUT", "CLASS_NAME_HIDE", "autohide", "Toast", "_hasMouseInteraction", "_hasKeyboardInteraction", "_clearTimeout", "_maybeScheduleHide", "isShown", "_onInteraction", "isInteracting", "import_htmx", "import_tom_select", "hasError", "data", "isTruthy", "value", "badStrings", "isElement", "obj", "apiRequest", "url", "method", "data", "__async", "token", "headers", "body", "res", "contentType", "json", "apiPatch", "getElements", "key", "query", "element", "getElement", "id", "scrollTo", "element", "offset", "yOffset", "title", "top", "getSelectedOptions", "base", "selector", "selected", "select", "option", "findFirstAdjacent", "base", "query", "boundary", "atBoundary", "element", "match", "parent", "child", "createElement", "tag", "properties", "classes", "children", "k", "key", "value", "replaceAll", "input", "pattern", "replacement", "flags", "handleFormSubmit", "event", "form", "invalids", "element", "firstInvalid", "scrollTo", "initFormElements", "getElements", "submitters", "submitter", "resetButton", "initSpeedSelector", "element", "getElements", "handleClick", "event", "value", "input", "initForms", "func", "initFormElements", "initSpeedSelector", "Collapse", "Modal", "Popover", "Toast", "Tooltip", "initTooltips", "tooltip", "getElements", "initModals", "modal", "createToast", "level", "title", "message", "extra", "iconName", "container", "main", "header", "icon", "titleElement", "button", "body", "extraElement", "initTabs", "hash", "target", "element", "Tab", "initSidebarAccordions", "items", "handleToggle", "thisItem", "item", "initImagePreview", "maxWidth", "image", "createElement", "content", "initBootstrap", "func", "quickSearchEventHandler", "event", "quicksearch", "clearbtn", "isTruthy", "clearLinkParams", "link", "linkUpdated", "handleQuickSearchParams", "quickSearchParameters", "search_parameter", "initQuickSearch", "__async", "search", "f", "import_tom_select", "getPlugins", "element", "plugins", "data", "initStaticSelects", "select", "getElements", "TomSelect", "__spreadProps", "__spreadValues", "getPlugins", "initColorSelects", "renderColor", "item", "escape", "import_unicode_variants", "iterate", "object", "callback", "key", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "el", "cls", "classesArray", "args", "classes", "iterate", "_classes", "castAsArray", "arg", "base_exports", "__export", "exclude", "extract", "parse", "parseUrl", "pick", "stringify", "stringifyUrl", "token", "singleMatcher", "multiMatcher", "decodeComponents", "components", "split", "e", "left", "right", "decode", "input", "tokens", "i", "customDecodeURIComponent", "replaceMap", "match", "result", "entries", "key", "decodeUriComponent", "encodedURI", "includeKeys", "object", "predicate", "result", "key", "descriptor", "value", "splitOnFirst", "string", "separator", "separatorIndex", "isNullOrUndefined", "value", "strictUriEncode", "string", "x", "encodeFragmentIdentifier", "encoderForArrayFormat", "options", "key", "result", "index", "encode", "keyValueSeparator", "parserForArrayFormat", "accumulator", "isArray", "isEncodedArray", "decode", "newValue", "item", "arrayValue", "validateArrayFormatSeparator", "decodeUriComponent", "keysSorter", "input", "a", "b", "removeHash", "hashStart", "getHash", "url", "hash", "parseValue", "type", "extract", "queryStart", "parse", "query", "__spreadValues", "formatter", "returnValue", "parameter", "parameter_", "splitOnFirst", "key2", "value2", "stringify", "object", "shouldFilter", "objectCopy", "keys", "parseUrl", "_a", "_b", "url_", "stringifyUrl", "queryFromUrl", "queryString", "urlObjectForFragmentEncode", "pick", "filter", "fragmentIdentifier", "includeKeys", "exclude", "exclusionFilter", "query_string_default", "base_exports", "import_tom_select", "isDataDynamicParams", "value", "item", "DynamicParamsMap", "fieldName", "value", "queryValue", "current", "isTruthy", "queryParam", "json", "deserialized", "isDataDynamicParams", "DynamicTomSelect", "TomSelect", "input_arg", "user_settings", "__publicField", "DynamicParamsMap", "nullOption", "valueField", "labelField", "key", "value", "filter", "self", "url", "addClasses", "response", "apiData", "results", "options", "result", "option", "search", "query", "replaceAll", "query_string_default", "data", "parent", "serialized", "deserialized", "queryParam", "queryValue", "err", "fieldName", "element", "elementValue", "o", "current", "staticValue", "id", "getElement", "dependencies", "dep", "filterElement", "event", "target", "VALUE_FIELD", "LABEL_FIELD", "MAX_OPTIONS", "renderOption", "data", "escape", "html", "renderItem", "initDynamicSelects", "select", "getElements", "DynamicTomSelect", "__spreadProps", "__spreadValues", "getPlugins", "initSelects", "initStaticSelects", "initDynamicSelects", "initColorSelects", "setConnectionStatus", "element", "status", "_a", "row", "url", "isTruthy", "apiPatch", "res", "hasError", "createToast", "initConnectionToggle", "getElements", "ProxyStateHandler", "target", "key", "value", "StateManager", "raw", "options", "__publicField", "saved", "__spreadValues", "obj", "createState", "initial", "objectDepthState", "createState", "rackImagesState", "createState", "previousPkCheckState", "createState", "secretState", "createState", "toggleDepthButton", "hidden", "button", "showDepthIndicators", "element", "getElements", "hideDepthIndicators", "handleDepthToggle", "state", "initiallyHidden", "initDepthToggle", "objectDepthState", "event", "moveOptionUp", "element", "options", "i", "option", "moveOptionDown", "next", "initMoveButtons", "button", "getElements", "target", "select", "slugify", "slug", "chars", "initReslug", "slugField", "slugButton", "sourceId", "sourceField", "slugLengthAttr", "slugLength", "handlePkCheck", "event", "element", "getElements", "handleSelectAllToggle", "tableSelectAll", "table", "findFirstAdjacent", "confirmCard", "confirmCheckbox", "initSelectAll", "toggleFloat", "checkedCheckboxes", "buttonGroup", "isFloating", "initFloatBulk", "element", "getElements", "removeTextSelection", "_a", "updatePreviousPkCheckState", "eventTargetElement", "state", "toggleCheckboxRange", "previousStateElement", "elementList", "changePkCheckboxState", "element", "typedElement", "handlePkCheck", "event", "checkboxList", "getElements", "initSelectMultiple", "checkboxElements", "previousPkCheckState", "initMarkdownPreview", "markdownWidget", "previewButton", "textarea", "preview", "isTruthy", "height", "e", "initMarkdownPreviews", "toggleSecretButton", "hidden", "button", "showSecret", "secret", "getElement", "isTruthy", "value", "hideSecret", "handleSecretToggle", "state", "toggleCallback", "event", "secretState", "initSecretToggle", "getElements", "initButtons", "func", "initDepthToggle", "initConnectionToggle", "initReslug", "initSelectAll", "initSelectMultiple", "initFloatBulk", "initMoveButtons", "initMarkdownPreviews", "initSecretToggle", "COLOR_MODE_KEY", "isColorMode", "value", "storeColorMode", "mode", "updateElements", "targetMode", "_a", "_b", "body", "elevation", "getElements", "svg", "setColorMode", "handleColorModeToggle", "currentValue", "defaultColorMode", "isTruthy", "preference", "initColorModeToggle", "element", "initColorMode", "func", "initMessages", "elements", "element", "toast", "Toast", "import_clipboard", "initClipboard", "element", "getElements", "Clipboard", "HOOKS", "defaults", "err", "givenDate", "date", "week1", "english", "nth", "s", "default_default", "pad", "number", "length", "int", "bool", "debounce", "fn", "wait", "t", "_this", "args", "arrayify", "obj", "toggleClass", "elem", "className", "bool", "createElement", "tag", "content", "e", "clearNode", "node", "findParent", "condition", "createNumberInput", "inputClassName", "opts", "wrapper", "numInput", "arrowUp", "arrowDown", "key", "getEventTarget", "event", "path", "error", "doNothing", "monthToStr", "monthNumber", "shorthand", "locale", "revFormat", "dateObj", "monthName", "hour", "day", "amPM", "int", "shortMonth", "seconds", "_", "unixSeconds", "weekNum", "weekNumber", "date", "year", "ISODate", "minutes", "month", "unixMillSeconds", "tokenRegex", "formats", "options", "pad", "createDateFormatter", "_a", "_b", "config", "defaults", "_c", "l10n", "english", "_d", "isMobile", "dateObj", "frmt", "overrideLocale", "locale", "c", "i", "arr", "formats", "createDateParser", "date", "givenFormat", "timeless", "customLocale", "parsedDate", "dateOrig", "format", "datestr", "matched", "ops", "matchIndex", "regexStr", "token", "isBackSlash", "escaped", "tokenRegex", "match", "revFormat", "fn", "val", "compareDates", "date1", "date2", "isBetween", "ts", "ts1", "ts2", "calculateSecondsSinceMidnight", "hours", "minutes", "seconds", "parseSeconds", "secondsSinceMidnight", "duration", "getDefaultHours", "config", "minHour", "minMinutes", "minSeconds", "maxHr", "maxMinutes", "target", "args", "_i", "_loop_1", "source", "key", "_a", "args_1", "__assign", "t", "s", "i", "n", "p", "__spreadArrays", "il", "r", "k", "a", "j", "jl", "DEBOUNCED_CHANGE_MS", "FlatpickrInstance", "element", "instanceConfig", "self", "defaults", "flatpickr", "default_default", "createDateParser", "bind", "setHoursFromDate", "positionCalendar", "changeMonth", "changeYear", "clear", "close", "onMouseOver", "createElement", "createDay", "destroy", "isEnabled", "jumpToDate", "updateValue", "open", "redraw", "set", "setDate", "toggle", "setupHelperFunctions", "month", "yr", "init", "parseConfig", "setupLocale", "setupInputs", "setupDates", "build", "bindEvents", "setCalendarWidth", "isSafari", "triggerEvent", "getClosestActiveElement", "_a", "bindToInstance", "fn", "config", "daysWidth", "updateTime", "e", "defaultDate", "compareDates", "getDefaultHours", "timeWrapper", "prevValue", "setHoursFromInputs", "ampm2military", "hour", "amPM", "int", "military2ampm", "hours", "minutes", "seconds", "limitMinHours", "limitMaxHours", "minBound", "calculateSecondsSinceMidnight", "maxBound", "currentTime", "result", "parseSeconds", "maxTime", "minTime", "setHours", "dateObj", "date", "pad", "onYearInput", "event", "eventTarget", "getEventTarget", "year", "handler", "options", "ev", "el", "triggerChange", "evt", "setupMobile", "debouncedResize", "debounce", "onResize", "onKeyDown", "documentClick", "onMonthNavClick", "selectDate", "selText", "timeIncrement", "onBlur", "jumpDate", "jumpTo", "oldYear", "oldMonth", "buildMonthSwitch", "incrementNumInput", "delta", "inputElem", "target", "input", "createEvent", "fragment", "buildMonthNav", "buildWeeks", "weekWrapper", "weekNumbers", "buildWeekdays", "buildDays", "buildTime", "toggleClass", "customAppend", "wrapper", "className", "_dayNumber", "dateIsEnabled", "dayElement", "isDateSelected", "isDateInRange", "focusOnDayElem", "targetNode", "getFirstAvailableDay", "startMonth", "endMonth", "m", "startIndex", "endIndex", "c", "getNextAvailableDay", "current", "givenMonth", "loopDelta", "numMonthDays", "focusOnDay", "offset", "activeElement", "dayFocused", "isInView", "startElem", "buildMonthDays", "firstOfMonth", "prevMonthDays", "daysInMonth", "days", "isMultiMonth", "prevMonthDayClass", "nextMonthDayClass", "dayNumber", "dayIndex", "dayNum", "dayContainer", "clearNode", "frag", "d", "shouldBuildMonth", "monthToStr", "buildMonth", "container", "monthNavFragment", "monthElement", "selectedMonth", "yearInput", "createNumberInput", "yearElement", "currentMonth", "buildMonths", "bool", "updateNavigationCurrentMonth", "separator", "hourInput", "minuteInput", "secondInput", "updateWeekdays", "firstDayOfWeek", "weekdays", "value", "isOffset", "triggerChangeEvent", "toInitial", "_", "isCalendarElem", "elem", "eventTarget_1", "isCalendarElement", "isInput", "lostFocus", "isIgnored", "newYear", "newYearNum", "isNewYear", "timeless", "dateToCheck", "array", "parsed", "valueChanged", "getDateStr", "allowInput", "allowKeydown", "allowInlineKeydown", "isTimeObj", "focusAndClose", "delta_1", "elems", "x", "cellClass", "hoverDate", "initialDate", "rangeStartDate", "rangeEndDate", "containsDisabled", "minRange", "maxRange", "duration", "hoverableCells", "dayElem", "timestamp", "outOfRange", "isBetween", "positionElement", "wasOpen", "minMaxDateSetter", "type", "inverseDateObj", "boolOpts", "userConfig", "formats", "dates", "parseDateRules", "timeMode", "defaultDateFormat", "defaultAltFormat", "minMaxTimeSetter", "val", "HOOKS", "hook", "arrayify", "pluginConf", "key", "getInputElem", "tokenRegex", "createDateFormatter", "customPositionElement", "calendarHeight", "acc", "child", "calendarWidth", "configPos", "configPosVertical", "configPosHorizontal", "inputBounds", "distanceFromBottom", "showOnTop", "top", "left", "isCenter", "isRight", "right", "rightMost", "centerMost", "doc", "getDocumentStyleSheet", "bodyWidth", "centerLeft", "centerBefore", "centerAfter", "centerIndex", "centerStyle", "editableSheet", "sheet", "err", "createStyleSheet", "style", "isSelectable", "day", "findParent", "selectedDate", "shouldChangeMonth", "selectedIndex", "b", "single", "range", "CALLBACKS", "updatePositionElement", "option", "setSelectedDate", "inputDate", "format", "arr", "rule", "preloadedDate", "inputType", "data", "hooks", "name", "specificFormat", "dObj", "isPrevMonth", "isNextMonth", "isKeyDown", "min", "max", "step", "curValue", "newValue", "isHourElem", "isMinuteElem", "_flatpickr", "nodeList", "nodes", "instances", "node", "selector", "l10n", "esm_default", "initDateSelector", "esm_default", "saveTableConfig", "element", "getElements", "addColumns", "event", "selectedOption", "selected", "removeColumns", "available", "submitFormConfig", "url", "formConfig", "__async", "apiPatch", "handleSubmit", "_a", "_b", "_c", "createToast", "reset", "path", "data", "value", "key", "res", "hasError", "options", "getSelectedOptions", "formData", "opt", "initTableConfig", "isShowHide", "value", "TableStateError", "message", "table", "__publicField", "ButtonState", "button", "rows", "row", "state", "replaceAll", "event", "TableState", "toggleEnabledButton", "findFirstAdjacent", "toggleDisabledButton", "toggleVirtualButton", "toggleDisconnectedButton", "err", "instance", "initInterfaceTable", "element", "getElements", "SideNav", "base", "__publicField", "StateManager", "attr", "attrs", "toggler", "event", "getElements", "link", "collapse", "element", "section", "collapseInstance", "Collapse", "action", "_a", "dropdownMenu", "isElement", "groupItem", "groupLink", "menuitem", "href", "initSideNav", "sidenav", "obsolete", "self", "f", "oldName", "newName", "rev", "wrapper", "args", "Utils", "_Utils", "els", "root", "doc", "el", "list", "n", "strict", "a", "b", "x0", "x1", "y0", "y1", "nodes", "dir", "_a", "_b", "_c", "_d", "diffY", "id", "parent", "options", "style", "nonce", "sheet", "selector", "rules", "v", "value", "val", "h", "unit", "match", "target", "sources", "source", "key", "doMinMax", "node", "aVal", "bVal", "removeEl", "func", "delay", "isWaiting", "args", "position", "distance", "rect", "innerHeightOrClientHeight", "offsetDiffDown", "offsetDiffUp", "scrollEl", "prevScroll", "event", "height", "offsetTop", "pointerPosY", "top", "bottom", "obj", "__spreadValues", "skipFields", "ret", "k", "parentNode", "styles", "s", "e", "info", "evt", "p", "simulatedType", "simulatedEvent", "transformReference", "transformValues", "o", "tmp", "GridStackEngine", "_GridStackEngine", "opts", "flag", "doPack", "node", "nn", "collide", "opt", "area", "didMove", "newOpt", "moved", "__spreadProps", "__spreadValues", "Utils", "skip", "skip2", "skipId", "skip2Id", "n", "o", "collides", "r0", "r", "overMax", "r2", "yOver", "xOver", "over", "w", "h", "top", "right", "bottom", "left", "a", "b", "_doSwap", "x", "y", "touching", "t", "layout", "doSort", "wasBatch", "wasColumnResize", "copyNodes", "index", "list", "after", "val", "dir", "newY", "i", "resizing", "_a", "defaults", "before", "copy", "verify", "removedNodes", "dirtyNodes", "nodeList", "column", "start", "found", "box", "triggerAddEvent", "dup", "skipCollision", "removeDOM", "triggerEvent", "clonedNode", "clone", "canMove", "c", "p", "_b", "wasUndefinedPack", "prevPos", "needToMove", "activeDrag", "a1", "a2", "row", "saveElement", "saveCB", "len", "wl", "l", "nodes", "ratio", "prevColumn", "doCompact", "newNodes", "cacheNodes", "lastIndex", "cacheNode", "_c", "j", "move", "scale", "clear", "existing", "n2", "prop", "gridDefaults", "dragInDefaultOptions", "DDManager", "isTouch", "DDTouch", "simulateMouseEvent", "e", "simulatedType", "touch", "simulatedEvent", "simulatePointerMouseEvent", "touchstart", "touchmove", "touchend", "wasDragging", "DDManager", "pointerdown", "pointerenter", "pointerleave", "DDResizableHandle", "_DDResizableHandle", "host", "dir", "option", "el", "isTouch", "touchstart", "pointerdown", "e", "touchmove", "touchend", "s", "_a", "_b", "name", "event", "DDBaseImplement", "event", "callback", "eventName", "DDResizable", "_DDResizable", "DDBaseImplement", "el", "option", "containmentRect", "newRect", "rect", "event", "callback", "opts", "updateHandles", "updateAutoHide", "key", "auto", "DDManager", "e", "dir", "DDResizableHandle", "Utils", "ev", "prop", "parent", "dragTransform", "i", "oEvent", "offsetX", "offsetY", "moveLeft", "moveUp", "constrain", "oWidth", "oHeight", "o", "maxWidth", "minWidth", "maxHeight", "minHeight", "width", "height", "containmentEl", "left", "top", "value", "scaleReciprocal", "handle", "skipMouseDown", "DDDraggable", "_DDDraggable", "DDBaseImplement", "el", "option", "handleName", "n", "event", "callback", "dragEl", "isTouch", "touchstart", "pointerdown", "forDestroy", "opts", "key", "e", "DDManager", "touchmove", "touchend", "ev", "Utils", "_a", "s", "pause", "grid", "_b", "__spreadValues", "helper", "prop", "style", "node", "transition", "containmentRect", "offset", "parent", "xformOffsetX", "xformOffsetY", "targetOffset", "DDDroppable", "DDBaseImplement", "el", "option", "event", "callback", "isTouch", "pointerenter", "pointerleave", "forDestroy", "opts", "key", "e", "DDManager", "ev", "Utils", "calledByEnter", "_a", "parentDrop", "parent", "drag", "__spreadValues", "DDElement", "_DDElement", "el", "eventName", "callback", "opts", "DDDraggable", "DDResizable", "DDDroppable", "DDGridStack", "el", "opts", "key", "value", "dEl", "grid", "handles", "autoHide", "__spreadProps", "__spreadValues", "name", "callback", "event", "DDManager", "els", "create", "hosts", "Utils", "list", "e", "DDElement", "d", "dd", "DDGridStack", "GridStack", "_GridStack", "options", "elOrString", "el", "Utils", "selector", "grids", "parent", "opt", "grid", "__spreadValues", "doc", "engineClass", "placeholderChild", "gridDefaults", "opts", "_a", "_b", "_c", "_d", "rowAttr", "bk", "oldOpts", "oneSize", "oneColumn", "b", "resp", "a", "defaults", "__spreadProps", "grandParent", "parentGridItem", "isTouch", "GridStackEngine", "cbNodes", "maxH", "n", "children", "DDManager", "els", "isGridStackWidget", "w", "node", "content", "domAttr", "ops", "nodeToAdd", "saveContent", "subGridTemplate", "autoColumn", "newItem", "newItemOpt", "h", "style", "subGrid", "nodeThatRemoved", "pGrid", "saveGridOpt", "saveCB", "list", "sub", "listOrOpt", "o", "origShow", "items", "addRemove", "column", "maxColumn", "prevCB", "removed", "blank", "updateNodes", "item", "flag", "forcePixel", "rows", "val", "update", "marginDiff", "data", "forBreakpoint", "newColumn", "i", "layout", "doSort", "oldColumn", "removeDOM", "position", "useDocRelative", "box", "containerPos", "relativeLeft", "relativeTop", "columnWidth", "rowHeight", "x", "y", "name", "callback", "event", "key", "triggerEvent", "doAnimate", "delay", "updateClass", "recurse", "keys", "m", "k", "itemContent", "changed", "ddChanged", "widthChanged", "wasUpdating", "cell", "height", "padding", "itemH", "wantedH", "child", "softMax", "relative", "rot", "pivotX", "pivotY", "_orig", "value", "elements", "addedNodes", "removedNodes", "type", "styleLocation", "forceUpdate", "cellHeight", "cellHeightUnit", "prefix", "top", "bottom", "right", "left", "placeholder", "getHeight", "row", "unit", "cssMinHeight", "minRow", "triggerAddEvent", "sizeToContent", "attrs", "clearDefaultAttr", "classes", "columnChanged", "nodes", "forceRemove", "trackSize", "margin", "margins", "dragIn", "dragInOptions", "root", "dragInDefaultOptions", "doEnable", "cellWidth", "onDrag", "helper", "helperRect", "ui", "canAccept", "wasAdded", "noAnim", "origNode", "oGrid", "remove", "trashEl", "noMove", "noResize", "onStartMoving", "dragOrResize", "onEndMoving", "target", "gridEl", "colLeft", "rowLeft", "p", "resizing", "mLeft", "mRight", "mTop", "mBottom", "mHeight", "mWidth", "distance", "prev", "extra", "rect", "obsolete", "lockDashboard", "dashboard", "unlockDashboard", "saveDashboardLayout", "url", "gridData", "__async", "apiPatch", "initDashboard", "grid", "GridStack", "gridLockButton", "gridUnlockButton", "gridSaveButton", "res", "hasError", "createToast", "setRackView", "view", "elevation", "showRackElements", "hideRackElements", "selector", "_a", "_b", "elements", "element", "handleRackViewSelect", "newView", "state", "getElements", "initRackElevation", "initialView", "rackImagesState", "control", "o", "event", "handleSelection", "link", "selector_results", "target_id", "target", "label", "value", "initObjectSelector", "element", "getElements", "initDepedencies", "init", "initButtons", "initClipboard", "initSelects", "initObjectSelector", "initBootstrap", "initMessages", "initHtmx", "handleSavedFilterChange", "event", "savedFilter", "baseUrl", "preFilter", "selectedOptions", "option", "initSavedFilterSelect", "divResults", "isTruthy", "savedFilterSelect", "initDocument", "init", "initBootstrap", "initColorMode", "initMessages", "initForms", "initQuickSearch", "initSelects", "initDateSelector", "initButtons", "initClipboard", "initTableConfig", "initInterfaceTable", "initSideNav", "initDashboard", "initRackElevation", "initHtmx", "initSavedFilterSelect", "initWindow", "documentForms", "documentForm", "event", "formData", "name", "value", "contentContainer"]
}
diff --git a/netbox/project-static/package.json b/netbox/project-static/package.json
index 8180ddb90cd..1342c299f1c 100644
--- a/netbox/project-static/package.json
+++ b/netbox/project-static/package.json
@@ -29,8 +29,8 @@
"flatpickr": "4.6.13",
"gridstack": "10.3.1",
"htmx.org": "1.9.12",
- "query-string": "9.1.0",
- "sass": "1.79.3",
+ "query-string": "9.1.1",
+ "sass": "1.79.5",
"tom-select": "2.3.1",
"typeface-inter": "3.18.1",
"typeface-roboto-mono": "1.1.13"
diff --git a/netbox/project-static/src/buttons/floatBulk.ts b/netbox/project-static/src/buttons/floatBulk.ts
new file mode 100644
index 00000000000..0735690cd3e
--- /dev/null
+++ b/netbox/project-static/src/buttons/floatBulk.ts
@@ -0,0 +1,42 @@
+import { getElements } from '../util';
+
+/**
+ * Conditionally add and remove a class that will float the button group
+ * based on whether or not items in the list are checked
+ */
+function toggleFloat(): void {
+ const checkedCheckboxes = document.querySelector(
+ 'input[type="checkbox"][name="pk"]:checked',
+ );
+ const buttonGroup = document.querySelector(
+ 'div.form.form-horizontal div.btn-list',
+ );
+ if (!buttonGroup) {
+ return;
+ }
+ const isFloating = buttonGroup.classList.contains('btn-float-group-left');
+ if (checkedCheckboxes !== null && !isFloating) {
+ buttonGroup.classList.add('btn-float-group-left');
+ } else if (checkedCheckboxes === null && isFloating) {
+ buttonGroup.classList.remove('btn-float-group-left');
+ }
+}
+
+/**
+ * Initialize floating bulk buttons.
+ */
+export function initFloatBulk(): void {
+ for (const element of getElements('input[type="checkbox"][name="pk"]')) {
+ element.addEventListener('change', () => {
+ toggleFloat();
+ });
+ }
+ // Handle the select-all checkbox
+ for (const element of getElements(
+ 'table tr th > input[type="checkbox"].toggle',
+ )) {
+ element.addEventListener('change', () => {
+ toggleFloat();
+ });
+ }
+}
diff --git a/netbox/project-static/src/buttons/index.ts b/netbox/project-static/src/buttons/index.ts
index 6c1c0db0bc7..cb520b8185c 100644
--- a/netbox/project-static/src/buttons/index.ts
+++ b/netbox/project-static/src/buttons/index.ts
@@ -3,6 +3,7 @@ import { initDepthToggle } from './depthToggle';
import { initMoveButtons } from './moveOptions';
import { initReslug } from './reslug';
import { initSelectAll } from './selectAll';
+import { initFloatBulk } from './floatBulk';
import { initSelectMultiple } from './selectMultiple';
import { initMarkdownPreviews } from './markdownPreview';
import { initSecretToggle } from './secretToggle';
@@ -14,6 +15,7 @@ export function initButtons(): void {
initReslug,
initSelectAll,
initSelectMultiple,
+ initFloatBulk,
initMoveButtons,
initMarkdownPreviews,
initSecretToggle,
diff --git a/netbox/project-static/styles/custom/_misc.scss b/netbox/project-static/styles/custom/_misc.scss
index 08125e8d3c1..4ef2f133711 100644
--- a/netbox/project-static/styles/custom/_misc.scss
+++ b/netbox/project-static/styles/custom/_misc.scss
@@ -33,3 +33,33 @@ span.color-label {
.netbox-edition {
letter-spacing: .15rem;
}
+
+// A floating div for form buttons
+.btn-float-group {
+ position: sticky;
+ bottom: 10px;
+ z-index: 2;
+}
+
+.btn-float-group-left {
+ @extend .btn-float-group;
+ float: left;
+}
+
+.btn-float-group-right {
+ @extend .btn-float-group;
+ float: right;
+}
+
+// Override a transparent background
+.btn-float {
+ --tblr-btn-bg: var(--#{$prefix}bg-surface-tertiary) !important;
+}
+
+.logo {
+ height: 80px;
+}
+
+.sso-icon {
+ height: 24px;
+}
diff --git a/netbox/project-static/yarn.lock b/netbox/project-static/yarn.lock
index e1a30b22984..2077e05344d 100644
--- a/netbox/project-static/yarn.lock
+++ b/netbox/project-static/yarn.lock
@@ -365,6 +365,89 @@
resolved "https://registry.yarnpkg.com/@orchidjs/unicode-variants/-/unicode-variants-1.0.4.tgz#6d2f812e3b19545bba2d81caffff1204de9a6a58"
integrity sha512-NvVBRnZNE+dugiXERFsET1JlKZfM5lJDEpSMilKW4bToYJ7pxf0Zne78xyXB2ny2c2aHfJ6WLnz1AaTNHAmQeQ==
+"@parcel/watcher-android-arm64@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz#c2c19a3c442313ff007d2d7a9c2c1dd3e1c9ca84"
+ integrity sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==
+
+"@parcel/watcher-darwin-arm64@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz#c817c7a3b4f3a79c1535bfe54a1c2818d9ffdc34"
+ integrity sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==
+
+"@parcel/watcher-darwin-x64@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz#1a3f69d9323eae4f1c61a5f480a59c478d2cb020"
+ integrity sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==
+
+"@parcel/watcher-freebsd-x64@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz#0d67fef1609f90ba6a8a662bc76a55fc93706fc8"
+ integrity sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==
+
+"@parcel/watcher-linux-arm-glibc@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz#ce5b340da5829b8e546bd00f752ae5292e1c702d"
+ integrity sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==
+
+"@parcel/watcher-linux-arm64-glibc@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz#6d7c00dde6d40608f9554e73998db11b2b1ff7c7"
+ integrity sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==
+
+"@parcel/watcher-linux-arm64-musl@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz#bd39bc71015f08a4a31a47cd89c236b9d6a7f635"
+ integrity sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==
+
+"@parcel/watcher-linux-x64-glibc@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz#0ce29966b082fb6cdd3de44f2f74057eef2c9e39"
+ integrity sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==
+
+"@parcel/watcher-linux-x64-musl@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz#d2ebbf60e407170bb647cd6e447f4f2bab19ad16"
+ integrity sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==
+
+"@parcel/watcher-win32-arm64@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz#eb4deef37e80f0b5e2f215dd6d7a6d40a85f8adc"
+ integrity sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==
+
+"@parcel/watcher-win32-ia32@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz#94fbd4b497be39fd5c8c71ba05436927842c9df7"
+ integrity sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==
+
+"@parcel/watcher-win32-x64@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz#4bf920912f67cae5f2d264f58df81abfea68dadf"
+ integrity sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==
+
+"@parcel/watcher@^2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.1.tgz#a50275151a1bb110879c6123589dba90c19f1bf8"
+ integrity sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==
+ dependencies:
+ detect-libc "^1.0.3"
+ is-glob "^4.0.3"
+ micromatch "^4.0.5"
+ node-addon-api "^7.0.0"
+ optionalDependencies:
+ "@parcel/watcher-android-arm64" "2.4.1"
+ "@parcel/watcher-darwin-arm64" "2.4.1"
+ "@parcel/watcher-darwin-x64" "2.4.1"
+ "@parcel/watcher-freebsd-x64" "2.4.1"
+ "@parcel/watcher-linux-arm-glibc" "2.4.1"
+ "@parcel/watcher-linux-arm64-glibc" "2.4.1"
+ "@parcel/watcher-linux-arm64-musl" "2.4.1"
+ "@parcel/watcher-linux-x64-glibc" "2.4.1"
+ "@parcel/watcher-linux-x64-musl" "2.4.1"
+ "@parcel/watcher-win32-arm64" "2.4.1"
+ "@parcel/watcher-win32-ia32" "2.4.1"
+ "@parcel/watcher-win32-x64" "2.4.1"
+
"@pkgr/core@^0.1.0":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31"
@@ -1196,6 +1279,11 @@ delegate@^3.1.2:
resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
+detect-libc@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+ integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==
+
detect-node-es@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
@@ -2205,7 +2293,7 @@ meros@^1.1.4:
resolved "https://registry.yarnpkg.com/meros/-/meros-1.3.0.tgz#c617d2092739d55286bf618129280f362e6242f2"
integrity sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==
-micromatch@^4.0.4:
+micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.8"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
@@ -2247,6 +2335,11 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+node-addon-api@^7.0.0:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558"
+ integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==
+
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
@@ -2417,10 +2510,10 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
-query-string@9.1.0:
- version "9.1.0"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-9.1.0.tgz#5f12a4653a4ba56021e113b5cf58e56581823e7a"
- integrity sha512-t6dqMECpCkqfyv2FfwVS1xcB6lgXW/0XZSaKdsCNGYkqMO76AFiJEg4vINzoDKcZa6MS7JX+OHIjwh06K5vczw==
+query-string@9.1.1:
+ version "9.1.1"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-9.1.1.tgz#dbfebb4196aeb2919915f2b2b81b91b965cf03a0"
+ integrity sha512-MWkCOVIcJP9QSKU52Ngow6bsAWAPlPK2MludXvcrS2bGZSl+T1qX9MZvRIkqUIkGLJquMJHWfsT6eRqUpp4aWg==
dependencies:
decode-uri-component "^0.4.1"
filter-obj "^5.1.0"
@@ -2563,11 +2656,12 @@ safe-regex-test@^1.0.3:
es-errors "^1.3.0"
is-regex "^1.1.4"
-sass@1.79.3:
- version "1.79.3"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.79.3.tgz#7811b000eb68195fe51dea89177e73e7ef7f546f"
- integrity sha512-m7dZxh0W9EZ3cw50Me5GOuYm/tVAJAn91SUnohLRo9cXBixGUOdvmryN+dXpwR831bhoY3Zv7rEFt85PUwTmzA==
+sass@1.79.5:
+ version "1.79.5"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.79.5.tgz#646c627601cd5f84c64f7b1485b9292a313efae4"
+ integrity sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==
dependencies:
+ "@parcel/watcher" "^2.4.1"
chokidar "^4.0.0"
immutable "^4.0.0"
source-map-js ">=0.6.2 <2.0.0"
diff --git a/netbox/release.yaml b/netbox/release.yaml
index 3963fd5426c..a7ebbd352af 100644
--- a/netbox/release.yaml
+++ b/netbox/release.yaml
@@ -1,3 +1,3 @@
-version: "4.1.3"
+version: "4.1.4"
edition: "Community"
-published: "2024-10-02"
+published: "2024-10-15"
diff --git a/netbox/templates/generic/bulk_edit.html b/netbox/templates/generic/bulk_edit.html
index 7da69a28167..4b4d5aeced3 100644
--- a/netbox/templates/generic/bulk_edit.html
+++ b/netbox/templates/generic/bulk_edit.html
@@ -102,8 +102,8 @@ Context:
{% endif %}
-
-
{% trans "Cancel" %}
+
diff --git a/netbox/templates/generic/object_edit.html b/netbox/templates/generic/object_edit.html
index d496a544aa5..3e0a096faf4 100644
--- a/netbox/templates/generic/object_edit.html
+++ b/netbox/templates/generic/object_edit.html
@@ -67,9 +67,9 @@ Context:
{% endblock form %}
-
+
diff --git a/netbox/templates/generic/object_list.html b/netbox/templates/generic/object_list.html
index a89c5a96006..fdd3cd3d87e 100644
--- a/netbox/templates/generic/object_list.html
+++ b/netbox/templates/generic/object_list.html
@@ -121,7 +121,7 @@ Context:
{# /Objects table #}
{# Form buttons #}
-
+
{% block bulk_buttons %}
{% if 'bulk_edit' in actions %}
diff --git a/netbox/templates/inc/filter_list.html b/netbox/templates/inc/filter_list.html
index b8c93ca4cfb..9e1629d101d 100644
--- a/netbox/templates/inc/filter_list.html
+++ b/netbox/templates/inc/filter_list.html
@@ -37,13 +37,13 @@
{% endif %}
-
+
+
+
+ {% trans "Reset" %}
+
+
+ {% trans "Search" %}
+
diff --git a/netbox/templates/login.html b/netbox/templates/login.html
index 612a72e50fb..e50303911b9 100644
--- a/netbox/templates/login.html
+++ b/netbox/templates/login.html
@@ -11,8 +11,8 @@
{# NetBox logo #}
-
-
+
+
{{ settings.RELEASE.edition }}
@@ -81,7 +81,7 @@
diff --git a/netbox/tenancy/api/nested_serializers.py b/netbox/tenancy/api/nested_serializers.py
index 5f339ecbada..5adb788638b 100644
--- a/netbox/tenancy/api/nested_serializers.py
+++ b/netbox/tenancy/api/nested_serializers.py
@@ -15,7 +15,7 @@ __all__ = [
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/tenancy/apps.py b/netbox/tenancy/apps.py
index 7fec97d738e..d08d178e996 100644
--- a/netbox/tenancy/apps.py
+++ b/netbox/tenancy/apps.py
@@ -6,7 +6,7 @@ class TenancyConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
- from . import search
+ from . import search # noqa: F401
# Register models
register_models(*self.get_models())
diff --git a/netbox/tenancy/filtersets.py b/netbox/tenancy/filtersets.py
index 75096b00e82..e2de1823125 100644
--- a/netbox/tenancy/filtersets.py
+++ b/netbox/tenancy/filtersets.py
@@ -2,7 +2,6 @@ import django_filters
from django.db.models import Q
from django.utils.translation import gettext as _
-from extras.filters import TagFilter
from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet
from utilities.filters import ContentTypeFilter, TreeNodeMultipleChoiceFilter
from .models import *
diff --git a/netbox/tenancy/graphql/mixins.py b/netbox/tenancy/graphql/mixins.py
index 8b4c41c9b12..9cdba100e04 100644
--- a/netbox/tenancy/graphql/mixins.py
+++ b/netbox/tenancy/graphql/mixins.py
@@ -1,8 +1,6 @@
from typing import Annotated, List
import strawberry
-import strawberry_django
-
__all__ = (
'ContactAssignmentsMixin',
@@ -12,4 +10,4 @@ __all__ = (
@strawberry.type
class ContactAssignmentsMixin:
- assignments: List[Annotated["ContactAssignmentType", strawberry.lazy('tenancy.graphql.types')]]
+ assignments: List[Annotated["ContactAssignmentType", strawberry.lazy('tenancy.graphql.types')]] # noqa: F821
diff --git a/netbox/translations/cs/LC_MESSAGES/django.mo b/netbox/translations/cs/LC_MESSAGES/django.mo
index afb8ee4f2fc..df95c667cae 100644
Binary files a/netbox/translations/cs/LC_MESSAGES/django.mo and b/netbox/translations/cs/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/cs/LC_MESSAGES/django.po b/netbox/translations/cs/LC_MESSAGES/django.po
index f9b66f7708a..b583f13f742 100644
--- a/netbox/translations/cs/LC_MESSAGES/django.po
+++ b/netbox/translations/cs/LC_MESSAGES/django.po
@@ -6,15 +6,16 @@
# Translators:
# czarnian, 2024
# Jeremy Stretch, 2024
+# Pavel Valach, 2024
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2024\n"
+"Last-Translator: Pavel Valach, 2024\n"
"Language-Team: Czech (https://app.transifex.com/netbox-community/teams/178115/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -24,7 +25,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Klíč"
@@ -60,7 +61,7 @@ msgstr "Naposledy použitý"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "Povolené IP adresy"
@@ -87,8 +88,8 @@ msgstr "Vaše heslo bylo úspěšně změněno."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -100,8 +101,8 @@ msgstr "Zajišťování"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -112,8 +113,8 @@ msgid "Active"
msgstr "Aktivní"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Vypnuto"
@@ -126,7 +127,7 @@ msgstr "Zrušení přidělování"
msgid "Decommissioned"
msgstr "Vyřazeno z provozu"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Primární"
@@ -152,7 +153,7 @@ msgstr "Neaktivní"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Region (ID)"
@@ -164,7 +165,7 @@ msgstr "Region (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Region (zkratka)"
@@ -189,11 +190,11 @@ msgstr "Skupina stránek (ID)"
#: netbox/virtualization/filtersets.py:65
#: netbox/virtualization/filtersets.py:193
msgid "Site group (slug)"
-msgstr "Skupina stránek (slimák)"
+msgstr "Skupina stránek (slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -259,9 +260,9 @@ msgstr "Stránky"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
-msgstr "Místo (slimák)"
+msgstr "Místo (slug)"
#: netbox/circuits/filtersets.py:67
msgid "ASN (ID)"
@@ -284,7 +285,7 @@ msgstr "Poskytovatel (ID)"
#: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
msgid "Provider (slug)"
-msgstr "Poskytovatel (slimák)"
+msgstr "Poskytovatel (slug)"
#: netbox/circuits/filtersets.py:167
msgid "Provider account (ID)"
@@ -313,7 +314,7 @@ msgstr "Typ okruhu (URL zkratka)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Stránky (ID)"
@@ -332,13 +333,13 @@ msgstr "Zakončení A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -347,7 +348,7 @@ msgstr "Vyhledávání"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -382,7 +383,7 @@ msgstr "Skupina obvodů (ID)"
#: netbox/circuits/filtersets.py:351
msgid "Circuit group (slug)"
-msgstr "Skupina obvodů (slimák)"
+msgstr "Skupina okruhů (slug)"
#: netbox/circuits/forms/bulk_edit.py:30
#: netbox/circuits/forms/filtersets.py:56
@@ -531,9 +532,9 @@ msgstr "Popis"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -570,9 +571,9 @@ msgstr "ID služby"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -585,7 +586,7 @@ msgid "Color"
msgstr "Barva"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -608,7 +609,7 @@ msgstr "Barva"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -642,14 +643,14 @@ msgid "Type"
msgstr "Typ"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Účet poskytovatele"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -665,8 +666,8 @@ msgstr "Účet poskytovatele"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -695,7 +696,7 @@ msgstr "Účet poskytovatele"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -719,8 +720,8 @@ msgstr "Stav"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -886,21 +887,21 @@ msgstr "Podrobnosti o zakončení"
msgid "Priority"
msgstr "Priorita"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Přiřazený poskytovatel"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Přiřazený účet poskytovatele"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Typ okruhu"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -912,8 +913,8 @@ msgstr "Typ okruhu"
msgid "Operational status"
msgstr "Provozní stav"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -929,7 +930,7 @@ msgstr "Provozní stav"
msgid "Assigned tenant"
msgstr "Přidělený nájemce"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -937,7 +938,7 @@ msgstr "Přidělený nájemce"
msgid "Termination"
msgstr "Zakončení"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1093,7 +1094,7 @@ msgstr "Strana termínu"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Přiřazení"
@@ -1148,11 +1149,11 @@ msgid "Circuit Group"
msgstr "Skupina okruhů"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1175,9 +1176,9 @@ msgid "Unique circuit ID"
msgstr "Jedinečné ID obvodu"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1271,7 +1272,7 @@ msgstr "ID propojovacího panelu a číslo portu/ů"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1309,11 +1310,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1351,7 +1352,7 @@ msgstr "Celé jméno poskytovatele"
#: netbox/tenancy/models/tenants.py:49 netbox/vpn/models/l2vpn.py:27
#: netbox/wireless/models.py:56
msgid "slug"
-msgstr "slimák"
+msgstr "slug"
#: netbox/circuits/models/providers.py:42
msgid "provider"
@@ -1397,11 +1398,11 @@ msgstr "sítě poskytovatelů"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1539,8 +1540,8 @@ msgstr "Míra odevzdání"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1617,8 +1618,8 @@ msgstr "Dokončeno"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Neuspěl"
@@ -1684,42 +1685,42 @@ msgstr "Zastaveno"
msgid "Cancelled"
msgstr "Zrušeno"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Místní"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Uživatelské jméno"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Používá se pouze pro klonování pomocí HTTP (S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Heslo"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Větev"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Načítání vzdálených dat se nezdařilo ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "ID přístupového klíče AWS"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Tajný přístupový klíč AWS"
@@ -1774,7 +1775,7 @@ msgstr "Uživatelské jméno"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1888,7 +1889,7 @@ msgstr "Dokončeno dříve"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Uživatel"
@@ -1943,7 +1944,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Výšky stojanů"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1986,7 +1987,7 @@ msgstr "Uživatelské předvolby"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Různé"
@@ -2045,7 +2046,7 @@ msgid "Change logging is not supported for this object type ({type})."
msgstr "Protokolování změn není u tohoto typu objektu podporováno ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2082,20 +2083,20 @@ msgid "Config revision #{id}"
msgstr "Revize konfigurace #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2110,8 +2111,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2224,58 +2225,58 @@ msgstr "spravovaný soubor"
msgid "managed files"
msgstr "spravované soubory"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "naplánováno"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "interval"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Interval opakování (v minutách)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "začal"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "dokončena"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "data"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "chyba"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "ID úlohy"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "práce"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "pracovní místa"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "K tomuto typu objektu nelze přiřadit úlohy ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr "Neplatný stav pro ukončení úlohy. Možnosti jsou: {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr "enqueue () nelze volat s hodnotami pro schedule_at a instant."
@@ -2324,7 +2325,7 @@ msgid "Last updated"
msgstr "Naposledy aktualizováno"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2516,7 +2517,7 @@ msgid "Staging"
msgstr "Inscenace"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Vyřazení z provozu"
@@ -2580,17 +2581,17 @@ msgstr "Zastaralé"
msgid "Millimeters"
msgstr "Milimetry"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "palce"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
-msgstr "Přední dozadu"
+msgstr "Zepředu dozadu"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Zezadu dopředu"
@@ -2603,8 +2604,8 @@ msgstr "Zezadu dopředu"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2639,7 +2640,7 @@ msgstr "Dítě"
#: netbox/templates/dcim/rack_elevation_list.html:20
#: netbox/templates/dcim/rackreservation.html:76
msgid "Front"
-msgstr "Fronta"
+msgstr "Přední"
#: netbox/dcim/choices.py:167 netbox/templates/dcim/device.html:346
#: netbox/templates/dcim/rack.html:139
@@ -2648,7 +2649,7 @@ msgstr "Fronta"
msgid "Rear"
msgstr "Zadní"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Inscenovaný"
@@ -2657,67 +2658,79 @@ msgstr "Inscenovaný"
msgid "Inventory"
msgstr "Inventář"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Zleva doprava"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Zprava doleva"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Ze strany dozadu"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Zezadu na stranu"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Zdola nahoru"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Nahoru dolů"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "pasivní"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Smíšené"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (bez blokování)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (zamykání)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Kalifornský styl"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "Mezinárodní/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Proprietární"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Ostatní"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/Mezinárodní"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Fyzické"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Virtuální"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2725,13 +2738,13 @@ msgstr "Virtuální"
msgid "Wireless"
msgstr "Bezdrátové"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Virtuální rozhraní"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2739,27 +2752,27 @@ msgstr "Virtuální rozhraní"
msgid "Bridge"
msgstr "Most"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Agregační skupina (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (pevný)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modulární)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (propojovací deska)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Buněčný"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2767,130 +2780,130 @@ msgstr "Buněčný"
msgid "Serial"
msgstr "Sériový"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Koaxiální"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Stohování"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Poloviční"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Plný"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Auto"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Přístup"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Označeno"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Označeno (Vše)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "Norma IEEE"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Pasivní 24V (2 páry)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Pasivní 24V (4 páry)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Pasivní 48V (2 páry)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Pasivní 48V (4 páry)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "měď"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Optická vlákna"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Vlákno"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Připojeno"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Kilometry"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Metry"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Centimetry"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Míle"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Stopy"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Kilogramy"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Gramy"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "libry"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Unce"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Redundantní"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Jednofázový"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Třífázový"
@@ -2927,7 +2940,7 @@ msgstr "Skupina (ID)"
#: netbox/dcim/filtersets.py:170
msgid "Group (slug)"
-msgstr "Skupina (slimák)"
+msgstr "Skupina (slug)"
#: netbox/dcim/filtersets.py:176 netbox/dcim/filtersets.py:181
msgid "AS (ID)"
@@ -2939,7 +2952,7 @@ msgstr "Nadřazené umístění (ID)"
#: netbox/dcim/filtersets.py:252
msgid "Parent location (slug)"
-msgstr "Rodičovské umístění (slimák)"
+msgstr "Rodičovské umístění (slug)"
#: netbox/dcim/filtersets.py:258 netbox/dcim/filtersets.py:369
#: netbox/dcim/filtersets.py:490 netbox/dcim/filtersets.py:1057
@@ -2951,7 +2964,7 @@ msgstr "Umístění (ID)"
#: netbox/dcim/filtersets.py:497 netbox/dcim/filtersets.py:1410
#: netbox/extras/filtersets.py:542
msgid "Location (slug)"
-msgstr "Umístění (slimák)"
+msgstr "Umístění (slug)"
#: netbox/dcim/filtersets.py:296 netbox/dcim/filtersets.py:381
#: netbox/dcim/filtersets.py:539 netbox/dcim/filtersets.py:678
@@ -2967,11 +2980,11 @@ msgstr "Výrobce (ID)"
#: netbox/dcim/filtersets.py:979 netbox/dcim/filtersets.py:1312
#: netbox/dcim/filtersets.py:1846
msgid "Manufacturer (slug)"
-msgstr "Výrobce (slimák)"
+msgstr "Výrobce (slug)"
#: netbox/dcim/filtersets.py:393
msgid "Rack type (slug)"
-msgstr "Typ stojanu (slimák)"
+msgstr "Typ stojanu (slug)"
#: netbox/dcim/filtersets.py:397
msgid "Rack type (ID)"
@@ -2990,7 +3003,7 @@ msgstr "Role (ID)"
#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
#: netbox/virtualization/filtersets.py:216
msgid "Role (slug)"
-msgstr "Role (slimák)"
+msgstr "Role (slug)"
#: netbox/dcim/filtersets.py:447 netbox/dcim/filtersets.py:1062
#: netbox/dcim/filtersets.py:1415 netbox/dcim/filtersets.py:2244
@@ -3010,7 +3023,7 @@ msgstr "Výchozí platforma (ID)"
#: netbox/dcim/filtersets.py:555
msgid "Default platform (slug)"
-msgstr "Výchozí platforma (slimák)"
+msgstr "Výchozí platforma (slug)"
#: netbox/dcim/filtersets.py:558 netbox/dcim/forms/filtersets.py:517
msgid "Has a front image"
@@ -3094,7 +3107,7 @@ msgstr "Konfigurační šablona (ID)"
#: netbox/dcim/filtersets.py:985
msgid "Device type (slug)"
-msgstr "Typ zařízení (slimák)"
+msgstr "Typ zařízení (slug)"
#: netbox/dcim/filtersets.py:1005
msgid "Parent Device (ID)"
@@ -3113,7 +3126,7 @@ msgstr "Platforma (URL zkratka)"
#: netbox/dcim/filtersets.py:1934 netbox/dcim/filtersets.py:2176
#: netbox/dcim/filtersets.py:2235
msgid "Site name (slug)"
-msgstr "Název lokality (slimák)"
+msgstr "Název lokality (slug)"
#: netbox/dcim/filtersets.py:1067
msgid "Parent bay (ID)"
@@ -3126,7 +3139,7 @@ msgstr "Cluster virtuálních počítačů (ID)"
#: netbox/dcim/filtersets.py:1077 netbox/extras/filtersets.py:591
#: netbox/virtualization/filtersets.py:136
msgid "Cluster group (slug)"
-msgstr "Skupina klastru (slimák)"
+msgstr "Skupina klastru (slug)"
#: netbox/dcim/filtersets.py:1082 netbox/virtualization/filtersets.py:130
msgid "Cluster group (ID)"
@@ -3134,7 +3147,7 @@ msgstr "Skupina clusteru (ID)"
#: netbox/dcim/filtersets.py:1088
msgid "Device model (slug)"
-msgstr "Model zařízení (slimák)"
+msgstr "Model zařízení (slug)"
#: netbox/dcim/filtersets.py:1099 netbox/dcim/forms/bulk_edit.py:516
msgid "Is full depth"
@@ -3142,7 +3155,7 @@ msgstr "Je plná hloubka"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3186,7 +3199,7 @@ msgid "Device model"
msgstr "Model zařízení"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Rozhraní (ID)"
@@ -3200,8 +3213,8 @@ msgstr "Modulová přihrádka (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Zařízení (ID)"
@@ -3210,8 +3223,8 @@ msgid "Rack (name)"
msgstr "Stojan (název)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Zařízení (název)"
@@ -3225,7 +3238,7 @@ msgstr "Role zařízení (ID)"
#: netbox/dcim/filtersets.py:1453
msgid "Device role (slug)"
-msgstr "Role zařízení (slimák)"
+msgstr "Role zařízení (slug)"
#: netbox/dcim/filtersets.py:1458
msgid "Virtual Chassis (ID)"
@@ -3261,8 +3274,8 @@ msgstr "Přiřazené VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3298,7 +3311,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3354,7 +3367,7 @@ msgstr "Kontext virtuálního zařízení (identifikátor)"
msgid "Wireless LAN"
msgstr "Bezdrátová síť LAN"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Bezdrátové spojení"
@@ -3382,14 +3395,14 @@ msgstr "Mistr (ID)"
msgid "Master (name)"
msgstr "Mistr (jméno)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Nájemce (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
-msgstr "Nájemce (slimák)"
+msgstr "Nájemce (slug)"
#: netbox/dcim/filtersets.py:1981 netbox/dcim/forms/filtersets.py:1077
msgid "Unterminated"
@@ -3414,7 +3427,7 @@ msgstr "Značky"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3463,8 +3476,8 @@ msgstr "Časové pásmo"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3528,7 +3541,7 @@ msgstr "Hloubka montáže"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3589,8 +3602,8 @@ msgstr "Číslování"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3698,12 +3711,12 @@ msgstr "Číslo dílu"
msgid "U height"
msgstr "Výška U pozic"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Vyloučit z využití"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3792,10 +3805,10 @@ msgstr "Nástupiště"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3922,8 +3935,8 @@ msgid "Maximum draw"
msgstr "Maximální příkon"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Maximální příkon (W)"
@@ -3932,8 +3945,8 @@ msgid "Allocated draw"
msgstr "Přidělený příkon"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Přidělený příkon (W)"
@@ -3954,16 +3967,16 @@ msgstr "Pouze správa"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "Režim PoE"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "Typ PoE"
@@ -3987,7 +4000,7 @@ msgstr "Bezdrátová role"
msgid "Module"
msgstr "Modul"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "Agregační skupina"
@@ -3999,7 +4012,7 @@ msgstr "Kontexty virtuálních zařízení"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4046,7 +4059,7 @@ msgid "Wireless LAN group"
msgstr "Skupina bezdrátových sítí"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4432,7 +4445,7 @@ msgstr "Odpovídající zadní port"
msgid "Physical medium classification"
msgstr "Klasifikace fyzického média"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Nainstalované zařízení"
@@ -4521,7 +4534,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "Zakončení strany {side_upper} nebylo nalezeno: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4573,7 +4586,7 @@ msgstr "Primární IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "IPv6 adresa s délkou předpony, např. 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4736,7 +4749,7 @@ msgid "Mgmt only"
msgstr "Pouze správa"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4769,7 +4782,7 @@ msgstr "Vysílací výkon (dBm)"
msgid "Cable"
msgstr "Kabel"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "objeveno"
@@ -4918,7 +4931,7 @@ msgid "Front Port"
msgstr "Přední port"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5054,7 +5067,7 @@ msgstr ""
"Počet předních portů, které mají být vytvořeny ({frontport_count}), musí "
"odpovídat zvolenému počtu pozic zadních portů ({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5077,7 +5090,7 @@ msgstr "Pro prvního člena virtuálnáho šasi musí být specifikována pozice
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "štítek"
@@ -5180,7 +5193,7 @@ msgstr ""
"typu modulu."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Fyzický popisek"
@@ -5203,135 +5216,135 @@ msgstr ""
"Šablona komponenty musí být přiřazena buď k typu zařízení, nebo k typu "
"modulu."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "šablona portu konzoly"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "šablony portů konzoly"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "šablona portu konzolového serveru"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "šablony portů konzolového serveru"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "maximální příkon"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "přidělený příkon"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "šablona napájecího portu"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "šablony napájecích portů"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr "Přidělený příkon nesmí překročit maximální příkon ({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "napájecí větev"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Fáze (pro třífázové napájení)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "šablona elektrické zásuvky"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "šablony zásuvek"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Rodičovský napájecí port ({power_port}) musí patřit ke stejnému typu "
"zařízení"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Rodičovský napájecí port ({power_port}) musí patřit ke stejnému typu modulu"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "pouze řízení"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "rozhraní mostu"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "bezdrátová role"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "šablona rozhraní"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "šablony rozhraní"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Rozhraní nemůže být přemostěno samo od sebe."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr "Rozhraní můstku ({bridge}) musí patřit ke stejnému typu zařízení"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Rozhraní můstku ({bridge}) musí patřit ke stejnému typu modulu"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "pozice zadního portu"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "šablona předního portu"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "šablony předního portu"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Zadní port ({name}) musí patřit ke stejnému typu zařízení"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5340,48 +5353,48 @@ msgstr ""
"Neplatná poloha zadního portu ({position}); zadní port {name} má pouze "
"{count} pozice"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "pozice"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "šablona zadního portu"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "šablony zadních portů"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "pozice"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Identifikátor, na který se má odkazovat při přejmenování nainstalovaných "
"komponent"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "šablona moduární šachty"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "šablony modulárních šachet"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "šablona pozice zařízení"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "šablony rozvaděčů zařízení"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5390,206 +5403,206 @@ msgstr ""
"Role dílčího zařízení typu zařízení ({device_type}) musí být nastaveno na "
"„rodič“, aby bylo možné povolit pozice zařízení."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "ID součásti"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Identifikátor součásti přiřazený výrobcem"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "šablona položky inventáře"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "šablony položek inventáře"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Komponenty nelze přesunout do jiného zařízení."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "konec kabelu"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "označit připojený"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Považovat za připojený"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "Při připojování kabelu je nutné zadat konec kabelu (A nebo B)."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "Konec kabelu nesmí být nastaven bez kabelu."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Nelze označit jako připojený s připojeným kabelem."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} modely musí deklarovat vlastnost parent_object"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Fyzický typ portu"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "rychlost"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Rychlost portu v bitech za sekundu"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "konzolový port"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "konzolové porty"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "port konzolového serveru"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "porty konzolového serveru"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "napájecí port"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "napájecí porty"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "elektrická zásuvka"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "elektrické zásuvky"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Rodičovský napájecí port ({power_port}) musí patřit ke stejnému zařízení"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "režim"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "Strategie označování IEEE 802.1Q"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "nadřazené rozhraní"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "nadřazená MAS"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Toto rozhraní se používá pouze pro správu mimo pásmo"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "Rychlost (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "duplexní"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64bitový celosvětový název"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "bezdrátový kanál"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "frekvence kanálu (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Vyplněno vybraným kanálem (pokud je nastaven)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "vysílací výkon (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "bezdrátové sítě LAN"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "neoznačené VLAN"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "označené VLAN"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "rozhraní"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "rozhraní"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} Rozhraní nemůže mít připojený kabel."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type} rozhraní nelze označit jako připojená."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Rozhraní nemůže být svým vlastním rodičem."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr "K nadřazenému rozhraní lze přiřadit pouze virtuální rozhraní."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5597,7 +5610,7 @@ msgid ""
msgstr ""
"Vybrané nadřazené rozhraní ({interface}) patří k jinému zařízení ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5606,7 +5619,7 @@ msgstr ""
"Vybrané nadřazené rozhraní ({interface}) patří {device}, která není součástí"
" virtuálního podvozku {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5614,7 +5627,7 @@ msgid ""
msgstr ""
"Vybrané rozhraní můstku ({bridge}) patří k jinému zařízení ({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5623,21 +5636,21 @@ msgstr ""
"Vybrané rozhraní můstku ({interface}) patří {device}, která není součástí "
"virtuálního podvozku {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Virtuální rozhraní nemohou mít nadřazené rozhraní LAG."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Rozhraní MAS nemůže být vlastním rodičem."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr "Vybrané rozhraní LAG ({lag}) patří k jinému zařízení ({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5646,44 +5659,44 @@ msgstr ""
"Vybrané rozhraní LAG ({lag}) patří {device}, která není součástí virtuálního"
" podvozku {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Virtuální rozhraní nemohou mít režim PoE."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Virtuální rozhraní nemohou mít typ PoE."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Při určování typu PoE musí specifikovat režim PoE."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr ""
"Role bezdrátové sítě může být nastavena pouze na bezdrátových rozhraních."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Kanál lze nastavit pouze na bezdrátových rozhraních."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr "Frekvence kanálu může být nastavena pouze na bezdrátových rozhraních."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr "Nelze určit vlastní frekvenci s vybraným kanálem."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr "Šířku kanálu lze nastavit pouze na bezdrátových rozhraních."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr "Nelze určit vlastní šířku s vybraným kanálem."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5692,24 +5705,24 @@ msgstr ""
"Neznačená VLAN ({untagged_vlan}) musí patřit ke stejnému webu jako nadřazené"
" zařízení rozhraní, nebo musí být globální."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Mapovaná poloha na odpovídajícím zadním portu"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "přední port"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "přední porty"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Zadní port ({rear_port}) musí patřit ke stejnému zařízení"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5718,19 +5731,19 @@ msgstr ""
"Neplatná poloha zadního portu ({rear_port_position}): Zadní port {name} má "
"pouze {positions} pozice."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Počet předních portů, které lze mapovat"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "zadní port"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "zadní porty"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5739,97 +5752,97 @@ msgstr ""
"Počet pozic nesmí být menší než počet mapovaných předních portů "
"({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "přihrádka modulů"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "pozice modulů"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr "Pozice modulu nemůže patřit k modulu nainstalovanému v ní."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "pozice zařízení"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "pozice zařízení"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr "Tento typ zařízení ({device_type}) nepodporuje pozice zařízení."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Nelze nainstalovat zařízení do sebe."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
msgstr ""
"Nelze nainstalovat určené zařízení; zařízení je již nainstalováno {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "role položky inventáře"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "role položek zásob"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "sériové číslo"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "štítek majetku"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Jedinečná značka použitá k identifikaci této položky"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "objeveny"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Tato položka byla automaticky objevena"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "položka inventáře"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "inventární položky"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Nelze přiřadit sebe jako rodiče."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "Nadřazená položka inventáře nepatří do stejného zařízení."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "Nelze přesunout položku inventáře se závislými podřízenými"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr "Nelze přiřadit skladovou položku ke komponentě na jiném zařízení"
@@ -5977,7 +5990,7 @@ msgstr "Funkce, kterou toto zařízení slouží"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Sériové číslo podvozku přidělené výrobcem"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Jedinečná značka použitá k identifikaci tohoto zařízení"
@@ -5989,12 +6002,12 @@ msgstr "poloha (U)"
msgid "rack face"
msgstr "plocha stojanu"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "primární IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "primární IPv6"
@@ -6139,15 +6152,24 @@ msgstr "Přiřazený cluster patří do jiné lokality ({site})"
msgid "A device assigned to a virtual chassis must have its position defined."
msgstr "Zařízení přiřazené k virtuálnímu šasi musí mít definovanou polohu."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Zařízení nelze odebrat z virtuálního šasi {virtual_chassis} protože je v "
+"současné době označen jako jeho pán."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "modul"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "moduly"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6155,22 +6177,22 @@ msgid ""
msgstr ""
"Modul musí být instalován v modulu patřící přiřazenému zařízení ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "doména"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "virtuální podvozek"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr ""
"Vybraný master ({master}) není přiřazena k tomuto virtuálnímu podvozku."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6179,34 +6201,34 @@ msgstr ""
"Nelze odstranit virtuální šasi {self}. Existují členská rozhraní, která "
"tvoří rozhraní LAG napříč podvozky."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "identifikátor"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Numerický identifikátor jedinečný pro nadřazené zařízení"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "komentáře"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "kontext virtuálního zařízení"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "kontexty virtuálních zařízení"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} není IPV{family} adresa."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr "Primární IP adresa musí patřit k rozhraní na přiřazeném zařízení."
@@ -6630,7 +6652,7 @@ msgstr "Konfigurační šablona"
msgid "Site Group"
msgstr "Skupina stránek"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6639,12 +6661,12 @@ msgstr "Skupina stránek"
msgid "IP Address"
msgstr "IP adresa"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "IPv4 Adresa"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "Adresa IPv6"
@@ -6682,8 +6704,8 @@ msgstr "Napájecí porty"
msgid "Power outlets"
msgstr "Elektrické zásuvky"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6721,8 +6743,8 @@ msgstr "Inventární položky"
msgid "Module Bay"
msgstr "Modulová přihrádka"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6780,75 +6802,75 @@ msgstr "Skupiny FHRP"
msgid "Tunnel"
msgstr "Tunel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Pouze správa"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Instalovaný modul"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Sériový modul"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Štítek aktiv modulu"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Stav modulu"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Komponenta"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Položky"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Typy zařízení"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Typy modulů"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Platformy"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Výchozí platforma"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Plná hloubka"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Výška U"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Instance"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6859,7 +6881,7 @@ msgstr "Instance"
msgid "Console Ports"
msgstr "Porty konzoly"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6870,7 +6892,7 @@ msgstr "Porty konzoly"
msgid "Console Server Ports"
msgstr "Porty konzolového serveru"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6881,7 +6903,7 @@ msgstr "Porty konzolového serveru"
msgid "Power Ports"
msgstr "Napájecí porty"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6892,7 +6914,7 @@ msgstr "Napájecí porty"
msgid "Power Outlets"
msgstr "Napájecí zásuvky"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6902,7 +6924,7 @@ msgstr "Napájecí zásuvky"
msgid "Front Ports"
msgstr "Přední porty"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6913,7 +6935,7 @@ msgstr "Přední porty"
msgid "Rear Ports"
msgstr "Zadní porty"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6921,7 +6943,7 @@ msgstr "Zadní porty"
msgid "Device Bays"
msgstr "Pozice pro zařízení"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7361,81 +7383,81 @@ msgstr "Typ widgetu"
msgid "Unregistered widget class: {name}"
msgstr "Neregistrovaná třída widgetu: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} musí definovat metodu render ()."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Poznámka"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr "Zobrazí nějaký libovolný vlastní obsah. Markdown je podporován."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Počty objektů"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
msgstr "Zobrazí sadu modelů NetBox a počet objektů vytvořených pro každý typ."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Filtry, které se použijí při počítání počtu objektů"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr "Neplatný formát. Objektové filtry musí být předány jako slovník."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Seznam objektů"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Zobrazí libovolný seznam objektů."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Výchozí počet objektů k zobrazení"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr "Neplatný formát. Parametry URL musí být předány jako slovník."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS kanál"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Vložte kanál RSS z externího webu."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "Adresa URL zdroje"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Maximální počet objektů, které se mají zobrazit"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Jak dlouho uložit obsah uložený v mezipaměti (v sekundách)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Záložky"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Zobrazit své osobní záložky"
@@ -7471,17 +7493,17 @@ msgstr "Typ clusteru"
#: netbox/extras/filtersets.py:580 netbox/virtualization/filtersets.py:95
#: netbox/virtualization/filtersets.py:147
msgid "Cluster type (slug)"
-msgstr "Typ klastru (slimák)"
+msgstr "Typ klastru (slug)"
#: netbox/extras/filtersets.py:601 netbox/tenancy/forms/forms.py:16
#: netbox/tenancy/forms/forms.py:39
msgid "Tenant group"
msgstr "Skupina nájemců"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
-msgstr "Skupina nájemců (slimák)"
+msgstr "Skupina nájemců (slug)"
#: netbox/extras/filtersets.py:623 netbox/extras/forms/model_forms.py:495
#: netbox/templates/extras/tag.html:11
@@ -7490,7 +7512,7 @@ msgstr "Značka"
#: netbox/extras/filtersets.py:629
msgid "Tag (slug)"
-msgstr "Štítek (slimák)"
+msgstr "Štítek (slug)"
#: netbox/extras/filtersets.py:689 netbox/extras/forms/filtersets.py:429
msgid "Has local config context data"
@@ -7616,7 +7638,7 @@ msgstr "Je aktivní"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Typy objektů"
@@ -7715,8 +7737,8 @@ msgstr "Klasifikace vstupu"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Uživatelé"
@@ -7728,8 +7750,8 @@ msgstr "Uživatelská jména oddělená čárkami, uzavřená dvojitými uvozovk
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Skupiny"
@@ -8439,10 +8461,19 @@ msgstr "vlastní sada výběru polí"
msgid "custom field choice sets"
msgstr "vlastní sady výběru polí"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Musí definovat základní nebo další možnosti."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Nelze odebrat volbu {choice} jak existují {model} objekty, které na něj "
+"odkazují."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "rozložení"
@@ -9014,64 +9045,64 @@ msgstr "Zpráva"
msgid "Method"
msgstr "Metoda"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Ujistěte se, že tato hodnota se rovná %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Ujistěte se, že tato hodnota není stejná %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Toto pole musí být prázdné."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Toto pole nesmí být prázdné."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Ověřovací pravidla musí být předána jako slovník"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Vlastní ověření se nezdařilo pro {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Neplatný atribut“{name}„na vyžádání"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Neplatný atribut“{name}„pro {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Váš řídicí panel byl resetován."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Přidán widget: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Aktualizovaný widget: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Odstraněný widget: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Chyba při mazání widgetu: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "Nelze spustit skript: Proces RQ Worker není spuštěn."
@@ -9140,19 +9171,19 @@ msgstr "Prostý text"
msgid "Invalid IP address format: {address}"
msgstr "Neplatný formát IP adresy: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Cíl importu"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Cíl importu (název)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Cíl exportu"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Cíl exportu (název)"
@@ -9202,7 +9233,7 @@ msgstr "RIR (ID)"
#: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
#: netbox/ipam/filtersets.py:227
msgid "RIR (slug)"
-msgstr "RIR (slimák)"
+msgstr "RIR (slug)"
#: netbox/ipam/filtersets.py:285
msgid "Within prefix"
@@ -9222,11 +9253,11 @@ msgstr "Předpony, které obsahují tuto předponu nebo IP"
msgid "Mask length"
msgstr "Délka masky"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "Číslo VLAN (1-4094)"
@@ -9246,23 +9277,23 @@ msgid "Parent prefix"
msgstr "Nadřazená předpona"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Virtuální počítač (název)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Virtuální počítač (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Rozhraní (název)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "Rozhraní virtuálního počítače (název)"
@@ -9290,19 +9321,27 @@ msgstr "Služba (ID)"
msgid "NAT inside IP address (ID)"
msgstr "NAT uvnitř IP adresy (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Přiřazené rozhraní"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Přiřazené rozhraní virtuálního počítače"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "IP adresa (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP adresa"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "Primární IPv4 (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "Primární IPv6 (ID)"
@@ -9356,7 +9395,7 @@ msgstr "Je soukromý"
#: netbox/templates/ipam/asn.html:27 netbox/templates/ipam/asnrange.html:19
#: netbox/templates/ipam/rir.html:19
msgid "RIR"
-msgstr "ZVRHNOUT"
+msgstr "RIR"
#: netbox/ipam/forms/bulk_edit.py:170
msgid "Date added"
@@ -9516,10 +9555,6 @@ msgstr "Virtuální stroj"
msgid "Parent VM of assigned interface (if any)"
msgstr "Nadřazený virtuální počítač přiřazeného rozhraní (pokud existuje)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Přiřazené rozhraní"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Je primární"
@@ -11076,9 +11111,9 @@ msgstr "Administrátor"
msgid "API Tokens"
msgstr "Tokeny API"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Oprávnění"
@@ -11226,63 +11261,63 @@ msgstr "Po inicializaci nelze do registru přidat úložiště"
msgid "Cannot delete stores from registry"
msgstr "Nelze odstranit obchody z registru"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "Čeština"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "Dánština"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Němčina"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Angličtina"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "Španělština"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "Francouzština"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "Italština"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Japonština"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Holandština"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Polština"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "Portugalština"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Ruština"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Turečtina"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "Ukrajinština"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "Čínština"
@@ -11647,7 +11682,7 @@ msgstr "NetBox Logo"
#: netbox/templates/base/layout.html:150 netbox/templates/base/layout.html:151
msgid "Docs"
-msgstr "Doktoři"
+msgstr "Dokumentace"
#: netbox/templates/base/layout.html:156 netbox/templates/base/layout.html:157
#: netbox/templates/rest_framework/api.html:10
@@ -12489,7 +12524,7 @@ msgstr "Mateřská zátoka"
#: netbox/templates/dcim/device_edit.html:48
#: netbox/utilities/templates/form_helpers/render_field.html:22
msgid "Regenerate Slug"
-msgstr "Regenerujte slimáka"
+msgstr "Přegenerovat slug"
#: netbox/templates/dcim/device_edit.html:49
#: netbox/templates/generic/bulk_remove.html:21
@@ -12952,7 +12987,7 @@ msgstr "Přidat nového člena"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Akce"
@@ -14003,7 +14038,7 @@ msgstr ""
"Klepněte na tlačítko
tady pokusit se znovu "
"načíst NetBox."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14032,7 +14067,7 @@ msgid "Add Contact Group"
msgstr "Přidat skupinu kontaktů"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Kontaktní role"
@@ -14070,7 +14105,7 @@ msgid "View"
msgstr "Pohled"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Omezení"
@@ -14097,11 +14132,6 @@ msgstr "Paměť"
msgid "Disk Space"
msgstr "Místo na disku"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Přidat virtuální počítač"
@@ -14342,59 +14372,59 @@ msgstr "Vlastnosti odkazu"
msgid "Distance"
msgstr "Vzdálenost"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Rodičovská kontaktní skupina (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Rodičovská kontaktní skupina (slimák)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Kontaktní skupina (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
-msgstr "Kontaktní skupina (slimák)"
+msgstr "Kontaktní skupina (slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Kontakt (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Kontaktní role (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
-msgstr "Kontaktní role (slimák)"
+msgstr "Kontaktní role (slug)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Kontaktní skupina"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Nadřazená skupina nájemců (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Nadřazená skupina nájemců (slimák)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Skupina nájemců (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Skupina nájemců (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
-msgstr "Skupina nájemců (slimák)"
+msgstr "Skupina nájemců (slug)"
#: netbox/tenancy/forms/bulk_edit.py:66
msgid "Desciption"
@@ -14557,11 +14587,11 @@ msgstr "Může se změnit"
msgid "Can Delete"
msgstr "Může smazat"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Uživatelské rozhraní"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length.
Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14571,7 +14601,7 @@ msgstr ""
"klíč před odesláním tohoto formuláře, protože po vytvoření tokenu "
"již nemusí být přístupný."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14581,31 +14611,31 @@ msgstr ""
"omezení. Příklad:
10.1.1.0/24,192.168.10.16/32,2001: db 8:1: "
":/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Potvrdit heslo"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Pro ověření zadejte stejné heslo jako dříve."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr "Hesla se neshodují! Zkontrolujte prosím svůj vstup a zkuste to znovu."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Další akce"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Opatření udělená navíc k výše uvedeným opatřením"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Objekty"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14615,11 +14645,11 @@ msgstr ""
"hodnotu null, aby odpovídala všem objektům tohoto typu. Seznam více objektů "
"bude mít za následek logickou operaci OR."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Musí být vybrána alespoň jedna akce."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Neplatný filtr pro {model}: {error}"
@@ -14874,7 +14904,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Neplatná hodnota pro pole s více možnostmi volby: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Objekt nenalezen: %(value)s"
@@ -14887,11 +14917,16 @@ msgid ""
msgstr ""
"„{value}„není jedinečná hodnota pro toto pole; bylo nalezeno více objektů"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "„{field_name}„je neplatný název pole pro přístup."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \"
.\""
msgstr "Typ objektu musí být zadán jako“.„"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Neplatný typ objektu"
@@ -15193,7 +15228,7 @@ msgstr "Nadřazená skupina (ID)"
#: netbox/virtualization/filtersets.py:85
msgid "Parent group (slug)"
-msgstr "Rodičovská skupina (slimák)"
+msgstr "Rodičovská skupina (slug)"
#: netbox/virtualization/filtersets.py:89
#: netbox/virtualization/filtersets.py:141
@@ -15476,19 +15511,19 @@ msgstr "Podpisy DSA"
msgid "Group {n}"
msgstr "Skupina {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Ethernetová soukromá síť LAN"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Ethernetová virtuální privátní síť LAN"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Ethernetový soukromý strom"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Virtuální privátní strom Ethernetu"
@@ -15498,7 +15533,7 @@ msgstr "Skupina tunelů (ID)"
#: netbox/vpn/filtersets.py:47
msgid "Tunnel group (slug)"
-msgstr "Skupina tunelů (slimák)"
+msgstr "Skupina tunelů (slug)"
#: netbox/vpn/filtersets.py:54
msgid "IPSec profile (ID)"
@@ -15520,33 +15555,31 @@ msgstr "Tunel (název)"
msgid "Outside IP (ID)"
msgstr "Vnější IP (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "Zásady IKE (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "Zásady IKE (název)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "Zásady IPsec (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "Zásada IPsec (název)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
-msgstr "L2VPN (slimák)"
+msgstr "L2VPN (slug)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "Rozhraní virtuálního počítače (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (název)"
diff --git a/netbox/translations/da/LC_MESSAGES/django.mo b/netbox/translations/da/LC_MESSAGES/django.mo
index 18e2f68635c..2390fc9f1eb 100644
Binary files a/netbox/translations/da/LC_MESSAGES/django.mo and b/netbox/translations/da/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/da/LC_MESSAGES/django.po b/netbox/translations/da/LC_MESSAGES/django.po
index a3eb24b3978..14e00591dd1 100644
--- a/netbox/translations/da/LC_MESSAGES/django.po
+++ b/netbox/translations/da/LC_MESSAGES/django.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Danish (https://app.transifex.com/netbox-community/teams/178115/da/)\n"
@@ -26,7 +26,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Nøgle"
@@ -62,7 +62,7 @@ msgstr "Sidst brugt"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "Tilladte IP'er"
@@ -89,8 +89,8 @@ msgstr "Din adgangskode er blevet ændret."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -102,8 +102,8 @@ msgstr "Opretter"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -114,8 +114,8 @@ msgid "Active"
msgstr "Aktiv"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Offline"
@@ -128,7 +128,7 @@ msgstr "Nedlægger"
msgid "Decommissioned"
msgstr "Nedlagt"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Primær"
@@ -154,7 +154,7 @@ msgstr "Inaktiv"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Område (ID)"
@@ -166,7 +166,7 @@ msgstr "Område (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Region (slug)"
@@ -195,7 +195,7 @@ msgstr "Områdegruppe (slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -261,7 +261,7 @@ msgstr "Område"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Område (slug)"
@@ -315,7 +315,7 @@ msgstr "Kredsløbstype (slug)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Område (ID)"
@@ -334,13 +334,13 @@ msgstr "Afslutning A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -349,7 +349,7 @@ msgstr "Søg"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -533,9 +533,9 @@ msgstr "Beskrivelse"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -572,9 +572,9 @@ msgstr "Tjeneste-id"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -587,7 +587,7 @@ msgid "Color"
msgstr "Farve"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -610,7 +610,7 @@ msgstr "Farve"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -644,14 +644,14 @@ msgid "Type"
msgstr "Type"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Leverandørkonto"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -667,8 +667,8 @@ msgstr "Leverandørkonto"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -697,7 +697,7 @@ msgstr "Leverandørkonto"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -721,8 +721,8 @@ msgstr "Status"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -888,21 +888,21 @@ msgstr "Oplysninger om opsigelse"
msgid "Priority"
msgstr "Prioritet"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Tildelt leverandør"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Tildelt leverandørkonto"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Kredsløbstype"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -914,8 +914,8 @@ msgstr "Kredsløbstype"
msgid "Operational status"
msgstr "Driftsstatus"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -931,7 +931,7 @@ msgstr "Driftsstatus"
msgid "Assigned tenant"
msgstr "Tildelt lejer"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -939,7 +939,7 @@ msgstr "Tildelt lejer"
msgid "Termination"
msgstr "Opsigelse"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1095,7 +1095,7 @@ msgstr "Termside"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Opgave"
@@ -1150,11 +1150,11 @@ msgid "Circuit Group"
msgstr "Kredsløbsgruppe"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1177,9 +1177,9 @@ msgid "Unique circuit ID"
msgstr "Unikt kredsløbs-ID"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1273,7 +1273,7 @@ msgstr "Patchpanelets ID og portnummer"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1312,11 +1312,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1400,11 +1400,11 @@ msgstr "leverandørnetværk"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1542,8 +1542,8 @@ msgstr "Forpligtelsesrate"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1620,8 +1620,8 @@ msgstr "Afsluttet"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Mislykkedes"
@@ -1687,42 +1687,42 @@ msgstr "Stoppet"
msgid "Cancelled"
msgstr "Annulleret"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Lokalt"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Brugernavn"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Bruges kun til kloning med HTTP(S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Adgangskode"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Afdeling"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Hentning af fjerndata mislykkedes ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "AWS-adgangsnøgle-id"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "AWS hemmelig adgangsnøgle"
@@ -1777,7 +1777,7 @@ msgstr "Brugernavn"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1891,7 +1891,7 @@ msgstr "Færdiggjort før"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Bruger"
@@ -1945,7 +1945,7 @@ msgstr "Skal uploade en fil eller vælge en datafil, der skal synkroniseres"
msgid "Rack Elevations"
msgstr "Rackhøjder"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1988,7 +1988,7 @@ msgstr "Brugerpræferencer"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Diverse"
@@ -2047,7 +2047,7 @@ msgid "Change logging is not supported for this object type ({type})."
msgstr "Ændringslogføring understøttes ikke for denne objekttype ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2084,20 +2084,20 @@ msgid "Config revision #{id}"
msgstr "Konfigurationsrevision #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2112,8 +2112,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2227,58 +2227,58 @@ msgstr "administreret fil"
msgid "managed files"
msgstr "administrerede filer"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "planlagt"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "interval"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Gentagelsesinterval (i minutter)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "startede"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "afsluttet"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "data"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "fejl"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "job-ID"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "job"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "stillinger"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "Job kan ikke tildeles denne objekttype ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr "Ugyldig status for opsigelse af job. Valgmulighederne er: {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2328,7 +2328,7 @@ msgid "Last updated"
msgstr "Sidst opdateret"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2520,7 +2520,7 @@ msgid "Staging"
msgstr "Iscenesættelse"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Nedlæggelse"
@@ -2584,17 +2584,17 @@ msgstr "Forældet"
msgid "Millimeters"
msgstr "Millimeter"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Tommer"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Foran til bag"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Bagsiden til forsiden"
@@ -2607,8 +2607,8 @@ msgstr "Bagsiden til forsiden"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2652,7 +2652,7 @@ msgstr "Front"
msgid "Rear"
msgstr "Bageste"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Iscenesat"
@@ -2661,67 +2661,79 @@ msgstr "Iscenesat"
msgid "Inventory"
msgstr "Inventar"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Venstre mod højre"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Højre til venstre"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Side til bagside"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Bag til side"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Bund til top"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Top til bund"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Passiv"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Blandet"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (Ikke-låsende)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (Låsning)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Californiens stil"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "International/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Proprietær"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Andet"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/International"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Fysisk"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Virtuel"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2729,13 +2741,13 @@ msgstr "Virtuel"
msgid "Wireless"
msgstr "Trådløs"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Virtuelle grænseflader"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2743,27 +2755,27 @@ msgstr "Virtuelle grænseflader"
msgid "Bridge"
msgstr "Bro"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Link Aggregation Group (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (fast)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modulopbygget)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (bagplan)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Cellulær"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2771,130 +2783,130 @@ msgstr "Cellulær"
msgid "Serial"
msgstr "Seriel"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Koaksial"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Stabling"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Halvdelen"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Fuld"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Auto"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Adgang"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Markeret"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Tagget (Alle)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "IEEE-standard"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Passiv 24V (2-par)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Passiv 24V (4-par)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Passiv 48V (2-par)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Passiv 48V (4-par)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Kobber"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Fiberoptisk"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Fiber"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Tilsluttet"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Kilometer"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Meter"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Centimeter"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Mil"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Fod"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Kilogram"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Gram"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "pund"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Ounce"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Redundant"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Enkeltfase"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Trefaset"
@@ -3146,7 +3158,7 @@ msgstr "Er fuld dybde"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3190,7 +3202,7 @@ msgid "Device model"
msgstr "Enhedsmodel"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Grænseflade (ID)"
@@ -3204,8 +3216,8 @@ msgstr "Modulplads (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Enhed (ID)"
@@ -3214,8 +3226,8 @@ msgid "Rack (name)"
msgstr "Rack (navn)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Enhed (navn)"
@@ -3265,8 +3277,8 @@ msgstr "Tildelt VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3302,7 +3314,7 @@ msgid "VRF (RD)"
msgstr "VRF (RED.)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3358,7 +3370,7 @@ msgstr "Virtuel enhedskontekst (identifikator)"
msgid "Wireless LAN"
msgstr "Trådløst LAN"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Trådløs forbindelse"
@@ -3386,12 +3398,12 @@ msgstr "Master (ID)"
msgid "Master (name)"
msgstr "Master (navn)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Lejer (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Lejer (snegle)"
@@ -3418,7 +3430,7 @@ msgstr "Mærker"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3467,8 +3479,8 @@ msgstr "Tidszone"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3532,7 +3544,7 @@ msgstr "Monteringsdybde"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3593,8 +3605,8 @@ msgstr "Nummerering"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3702,12 +3714,12 @@ msgstr "Varenummer"
msgid "U height"
msgstr "U højde"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Ekskluder fra udnyttelse"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3796,10 +3808,10 @@ msgstr "Platformen"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3926,8 +3938,8 @@ msgid "Maximum draw"
msgstr "Maksimal trækning"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Maksimal forbrug (watt)"
@@ -3936,8 +3948,8 @@ msgid "Allocated draw"
msgstr "Tildelt lodtrækning"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Allokeret forbrug (watt)"
@@ -3958,16 +3970,16 @@ msgstr "Kun ledelse"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "PoE-tilstand"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "PoE-type"
@@ -3991,7 +4003,7 @@ msgstr "Trådløs rolle"
msgid "Module"
msgstr "Modul"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "FORSINKELSE"
@@ -4003,7 +4015,7 @@ msgstr "Virtuelle enhedskontekster"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4050,7 +4062,7 @@ msgid "Wireless LAN group"
msgstr "Trådløs LAN-gruppe"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4436,7 +4448,7 @@ msgstr "Tilsvarende bagport"
msgid "Physical medium classification"
msgstr "Klassificering af fysisk medium"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Installeret enhed"
@@ -4526,7 +4538,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} sideafslutning ikke fundet: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4578,7 +4590,7 @@ msgstr "Primær IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "IPv6-adresse med præfix-længde, fx 2001:db8::1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4741,7 +4753,7 @@ msgid "Mgmt only"
msgstr "Kun Mgmt"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4774,7 +4786,7 @@ msgstr "Sendeeffekt (dBm)"
msgid "Cable"
msgstr "Kabel"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Opdaget"
@@ -4924,7 +4936,7 @@ msgid "Front Port"
msgstr "Frontport"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5059,7 +5071,7 @@ msgstr ""
"Antallet af frontporte, der skal oprettes ({frontport_count}) skal matche "
"det valgte antal bageste portpositioner ({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5083,7 +5095,7 @@ msgstr "En stilling skal specificeres for det første VC-medlem."
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "etiket"
@@ -5189,7 +5201,7 @@ msgstr ""
"knyttet til en modultype."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Fysisk etiket"
@@ -5213,134 +5225,134 @@ msgstr ""
"En komponentskabelon skal være tilknyttet enten en enhedstype eller en "
"modultype."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "skabelon til konsolport"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "konsolportskabeloner"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "skabelon til konsolserverport"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "skabeloner til konsolserverportskabeloner"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "maksimal trækning"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "tildelt lodtrækning"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "strømstikskabelon"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "strømstikskabeloner"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"Tildelt lodtrækning kan ikke overstige den maksimale trækning "
"({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "foderben"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Fase (til trefasefoedninger)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "Strømudtag skabelon"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "strømudtagsskabeloner"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr "Hovedstrømstik ({power_port}) skal tilhøre samme enhedstype"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr "Hovedstrømstik ({power_port}) skal tilhøre samme modultype"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "Kun ledelse"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "brogrænseflade"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "trådløs rolle"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "grænseflade skabelon"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "interface skabeloner"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "En grænseflade kan ikke kobles til sig selv."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr "Brogrænseflade ({bridge}) skal tilhøre samme enhedstype"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Brogrænseflade ({bridge}) skal tilhøre samme modultype"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "bageste portposition"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "skabelon til frontport"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "frontportskabeloner"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Bageste port ({name}) skal tilhøre samme enhedstype"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5349,47 +5361,47 @@ msgstr ""
"Ugyldig bageste portposition ({position}); bageste port {name} har kun "
"{count} positioner"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "positioner"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "bagport skabelon"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "bageste portskabeloner"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "position"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Identifikator, der skal refereres til, når installerede komponenter omdøbes"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "modulbugtsskabelon"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "modulbugtsskabeloner"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "skabelon til enhedsplads"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "skabeloner til enhedsplads"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5398,205 +5410,205 @@ msgstr ""
"Underenhedsrolle for enhedstypen ({device_type}) skal indstilles til "
"„forælder“ for at tillade enhedspladser."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "del-ID"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Producenttildelt artikel-id"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "lagervareskabelon"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "lagervareskabeloner"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Komponenter kan ikke flyttes til en anden enhed."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "kabelende"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "mærke tilsluttet"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Behandl som om et kabel er tilsluttet"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "Du skal angive kabelenden (A eller B), når du tilslutter et kabel."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "Kabelenden må ikke indstilles uden et kabel."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Kan ikke markere som tilsluttet med et tilsluttet kabel."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} modeller skal erklære en parent_object egenskab"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Fysisk porttype"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "hastighed"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Porthastighed i bit pr. sekund"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "konsolport"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "konsolporte"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "Konsolserverport"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "konsolserverporte"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "strømstik"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "strømstik"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "strømudtag"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "strømudtag"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr "Hovedstrømstik ({power_port}) skal tilhøre den samme enhed"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "tilstand"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "IEEE 802.1Q-mærkningsstrategi"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "forældregrænseflade"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "forældreLAG"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Denne grænseflade bruges kun til administration uden for båndet"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "hastighed (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "duplex"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64-bit verdensomspændende navn"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "trådløs kanal"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "kanalfrekvens (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Udfyldt af valgt kanal (hvis indstillet)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "sendeeffekt (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "trådløse LAN"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "umærket VLAN"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "mærkede VLAN'er"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "grænseflade"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "grænseflader"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} grænseflader kan ikke have et kabel tilsluttet."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type} grænseflader kan ikke markeres som tilsluttet."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "En grænseflade kan ikke være sin egen forælder."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr "Kun virtuelle grænseflader kan tildeles en overordnet grænseflade."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5605,7 +5617,7 @@ msgstr ""
"Den valgte overordnede grænseflade ({interface}) tilhører en anden enhed "
"({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5614,7 +5626,7 @@ msgstr ""
"Den valgte overordnede grænseflade ({interface}) tilhører {device}, som ikke"
" er en del af det virtuelle chassis {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5622,7 +5634,7 @@ msgid ""
msgstr ""
"Den valgte brogrænseflade ({bridge}) tilhører en anden enhed ({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5631,22 +5643,22 @@ msgstr ""
"Den valgte brogrænseflade ({interface}) tilhører {device}, som ikke er en "
"del af det virtuelle chassis {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Virtuelle grænseflader kan ikke have en overordnet LAG-grænseflade."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "En LAG-grænseflade kan ikke være dens egen overordnede."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr ""
"Den valgte LAG-grænseflade ({lag}) tilhører en anden enhed ({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5655,43 +5667,43 @@ msgstr ""
"Den valgte LAG-grænseflade ({lag}) tilhører {device}, som ikke er en del af "
"det virtuelle chassis {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Virtuelle grænseflader kan ikke have en PoE-tilstand."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Virtuelle grænseflader kan ikke have en PoE-type."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Skal angive PoE-tilstand, når du angiver en PoE-type."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr "Trådløs rolle kan kun indstilles på trådløse grænseflader."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Kanal kan kun indstilles på trådløse grænseflader."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr "Kanalfrekvensen kan kun indstilles på trådløse grænseflader."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr "Kan ikke angive brugerdefineret frekvens med valgt kanal."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr "Kanalbredden kan kun indstilles på trådløse grænseflader."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr "Kan ikke angive brugerdefineret bredde med valgt kanal."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5700,24 +5712,24 @@ msgstr ""
"Den umærkede VLAN ({untagged_vlan}) skal tilhøre det samme område som "
"grænsefladens overordnede enhed, eller det skal være globalt."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Kortlagt position på tilsvarende bageste port"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "Frontport"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "frontporte"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Bageste port ({rear_port}) skal tilhøre den samme enhed"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5726,19 +5738,19 @@ msgstr ""
"Ugyldig bageste portposition ({rear_port_position}): Bageste port {name} har"
" kun {positions} positioner."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Antal frontporte, der kan kortlægges"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "bageste port"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "bageste porte"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5747,37 +5759,37 @@ msgstr ""
"Antallet af positioner kan ikke være mindre end antallet af kortlagte "
"frontporte ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "modulplads"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "modulpladser"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr "En modulplads kan ikke tilhøre et modul, der er installeret i den."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "enhedsplads"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "enhedsbugter"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr "Denne type enhed ({device_type}) understøtter ikke enhedsbugter."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Kan ikke installere en enhed i sig selv."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5785,60 +5797,60 @@ msgstr ""
"Kan ikke installere den angivne enhed; enheden er allerede installeret i "
"{bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "lagervarerolle"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "lagervareroller"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "serienummer"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "aktivmærke"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Et unikt tag, der bruges til at identificere dette element"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "opdaget"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Dette element blev automatisk opdaget"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "lagerpost"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "lagervarer"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Kan ikke tildele mig selv som forælder."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "Overordnet lagervare tilhører ikke den samme enhed."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "Kan ikke flytte en lagervare med afhængige underordnede"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr "Kan ikke tildele lagervare til komponent på en anden enhed"
@@ -5987,7 +5999,7 @@ msgstr "Funktionen denne enhed tjener"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Chassisserienummer, tildelt af producenten"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Et unikt tag, der bruges til at identificere denne enhed"
@@ -5999,12 +6011,12 @@ msgstr "position (U)"
msgid "rack face"
msgstr "rackflade"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "Primær IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "Primær IPv6"
@@ -6151,15 +6163,24 @@ msgstr ""
"En enhed, der er tildelt et virtuelt chassis, skal have sin position "
"defineret."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Enheden kan ikke fjernes fra det virtuelle chassis {virtual_chassis} fordi "
+"det i øjeblikket er udpeget som sin herre."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "modul"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "moduler"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6168,21 +6189,21 @@ msgstr ""
"Modulet skal installeres i en modulplads, der tilhører den tildelte enhed "
"({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "domæne"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "virtuelt chassis"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr "Den valgte master ({master}) er ikke tildelt dette virtuelle chassis."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6191,34 +6212,34 @@ msgstr ""
"Kan ikke slette virtuelt chassis {self}. Der er medlemsgrænseflader, der "
"danner LAG-grænseflader på tværs af chassiserne."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "identificere"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Numerisk identifikator, der er unik for den overordnede enhed"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "kommenterer"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "virtuel enhedskontekst"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "virtuelle enhedskontekster"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} er ikke en IPV{family} adresse."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr "Primær IP-adresse skal tilhøre en grænseflade på den tildelte enhed."
@@ -6645,7 +6666,7 @@ msgstr "Konfigurationsskabelon"
msgid "Site Group"
msgstr "Områdegruppe"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6654,12 +6675,12 @@ msgstr "Områdegruppe"
msgid "IP Address"
msgstr "IP adresse"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "IPv4-adresse"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "IPv6-adresse"
@@ -6697,8 +6718,8 @@ msgstr "Strømstik"
msgid "Power outlets"
msgstr "Strømudtag"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6736,8 +6757,8 @@ msgstr "Lagervarer"
msgid "Module Bay"
msgstr "Modulbugt"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6795,75 +6816,75 @@ msgstr "FHRP Grupper"
msgid "Tunnel"
msgstr "Tunnel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Kun ledelse"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC'er"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Installeret modul"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Seriel modul"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Modulaktivmærke"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Modulstatus"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Komponent"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Varer"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Enhedstyper"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Modultyper"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Platforme"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Standardplatform"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Fuld dybde"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "U Højde"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "forekomster"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6874,7 +6895,7 @@ msgstr "forekomster"
msgid "Console Ports"
msgstr "Konsolporte"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6885,7 +6906,7 @@ msgstr "Konsolporte"
msgid "Console Server Ports"
msgstr "Konsolserverporte"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6896,7 +6917,7 @@ msgstr "Konsolserverporte"
msgid "Power Ports"
msgstr "Strømstik"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6907,7 +6928,7 @@ msgstr "Strømstik"
msgid "Power Outlets"
msgstr "Strømudtag"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6917,7 +6938,7 @@ msgstr "Strømudtag"
msgid "Front Ports"
msgstr "Frontporte"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6928,7 +6949,7 @@ msgstr "Frontporte"
msgid "Rear Ports"
msgstr "Bageste porte"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6936,7 +6957,7 @@ msgstr "Bageste porte"
msgid "Device Bays"
msgstr "Enhedsbugter"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7375,24 +7396,24 @@ msgstr "Widgettype"
msgid "Unregistered widget class: {name}"
msgstr "Uregistreret widget klasse: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} skal definere en render () -metode."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Bemærk"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr "Vis noget vilkårligt brugerdefineret indhold. Markdown understøttes."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Objekttællinger"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7400,58 +7421,58 @@ msgstr ""
"Vis et sæt NetBox-modeller og antallet af objekter, der er oprettet for hver"
" type."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Filtre, der skal anvendes, når antallet af objekter tælles"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr "Ugyldigt format. Objektfiltre skal sendes som en ordbog."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Objektliste"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Vis en vilkårlig liste over objekter."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Standardantallet af objekter, der skal vises"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr "Ugyldigt format. URL-parametre skal sendes som en ordbog."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS-feed"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Indlejr et RSS-feed fra en ekstern hjemmeside."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "Foderwebadresse"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Det maksimale antal objekter, der skal vises"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Hvor længe det cachelagrede indhold skal gemmes (i sekunder)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Bogmærker"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Vis dine personlige bogmærker"
@@ -7494,8 +7515,8 @@ msgstr "Clustertype (slug)"
msgid "Tenant group"
msgstr "Lejergruppe"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Lejergruppe (slug)"
@@ -7632,7 +7653,7 @@ msgstr "Er aktiv"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Objekttyper"
@@ -7732,8 +7753,8 @@ msgstr "Klassificering af indrejse"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Brugere"
@@ -7745,8 +7766,8 @@ msgstr "Brugernavne adskilt af kommaer, indkapslet med dobbelte anførselstegn"
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Grupper"
@@ -8461,10 +8482,19 @@ msgstr "brugerdefineret felt valgsæt"
msgid "custom field choice sets"
msgstr "brugerdefinerede feltvalgssæt"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Skal definere base eller ekstra valg."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Kan ikke fjerne valg {choice} som der er {model} objekter, der henviser til "
+"det."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "layout"
@@ -9035,64 +9065,64 @@ msgstr "Besked"
msgid "Method"
msgstr "Fremgangsmåde"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Sørg for, at denne værdi er lig med %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Sørg for, at denne værdi ikke er lig %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Dette felt skal være tomt."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Dette felt må ikke være tomt."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Valideringsregler skal godkendes som en ordbog"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Brugerdefineret validering mislykkedes for {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Ugyldig attribut“{name}„på forespørgsel"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Ugyldig attribut“{name}„til {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Dit dashboard er blevet nulstillet."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Tilføjet widget: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Opdateret widget: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Slettet widget: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Fejl ved sletning af widget: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "Kan ikke køre script: RQ-arbejderprocessen kører ikke."
@@ -9161,19 +9191,19 @@ msgstr "Almindelig tekst"
msgid "Invalid IP address format: {address}"
msgstr "Ugyldigt IP-adresseformat: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Importmål"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Importmål (navn)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Eksportmål"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Eksportmål (navn)"
@@ -9243,11 +9273,11 @@ msgstr "Præfikser, der indeholder dette præfiks eller IP"
msgid "Mask length"
msgstr "Maskelængde"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "VLAN-nummer (1-4094)"
@@ -9267,23 +9297,23 @@ msgid "Parent prefix"
msgstr "Forældrepræfiks"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Virtuel maskine (navn)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Virtuel maskine (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Grænseflade (navn)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "VM-grænseflade (navn)"
@@ -9311,19 +9341,27 @@ msgstr "Tjeneste (ID)"
msgid "NAT inside IP address (ID)"
msgstr "NAT inde i IP-adresse (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Tildelt grænseflade"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Tildelt VM grænseflade"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "IP-adresse (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP adresse"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "Primær IPv4 (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "Primær IPv6 (ID)"
@@ -9537,10 +9575,6 @@ msgstr "Virtuel maskine"
msgid "Parent VM of assigned interface (if any)"
msgstr "Overordnet VM for tildelt grænseflade (hvis nogen)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Tildelt grænseflade"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Er primær"
@@ -11105,9 +11139,9 @@ msgstr "Administrator"
msgid "API Tokens"
msgstr "API-tokens"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Tilladelser"
@@ -11258,63 +11292,63 @@ msgstr ""
msgid "Cannot delete stores from registry"
msgstr "Kan ikke slette butikker fra registreringsdatabasen"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "Tjekkisk"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "dansk"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Tysk"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "engelsk"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "spansk"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "franskmænd"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "Italiensk"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Japansk"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Hollandsk"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Polere"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "portugisisk"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Russisk"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Tyrkisk"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "Ukrainsk"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "kinesisk"
@@ -12987,7 +13021,7 @@ msgstr "Tilføj nyt medlem"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Handlinger"
@@ -14041,7 +14075,7 @@ msgid "Click here to attempt loading NetBox again."
msgstr ""
"Klik her for at forsøge at indlæse NetBox igen."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14070,7 +14104,7 @@ msgid "Add Contact Group"
msgstr "Tilføj kontaktgruppe"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Kontaktrolle"
@@ -14108,7 +14142,7 @@ msgid "View"
msgstr "Udsigt"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Begrænsninger"
@@ -14135,11 +14169,6 @@ msgstr "Hukommelse"
msgid "Disk Space"
msgstr "Diskplads"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Tilføj virtuel maskine"
@@ -14380,57 +14409,57 @@ msgstr "Linkegenskaber"
msgid "Distance"
msgstr "Afstand"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Forældrekontaktgruppe (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Forældrekontaktgruppe (slug)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Kontaktgruppe (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Kontaktgruppe (slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Kontakt (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Kontaktrolle (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Kontaktrolle (slug)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Kontaktgruppe"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Overordnet lejergruppe (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Forældrelejergruppe (slug)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Lejergruppe (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Lejergruppe (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Lejergruppe (slug)"
@@ -14595,11 +14624,11 @@ msgstr "Kan ændre sig"
msgid "Can Delete"
msgstr "Kan slette"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Brugergrænseflade"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14609,7 +14638,7 @@ msgstr ""
"nøgle før indsendelse af denne formular, da den muligvis ikke "
"længere er tilgængelig, når tokenet er oprettet."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14619,32 +14648,32 @@ msgstr ""
"uden begrænsninger. Eksempel: 10.1.1.0/24.192.168.10.16/32.2001: db "
"8:1: :/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Bekræft adgangskode"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Indtast den samme adgangskode som før, til bekræftelse."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Adgangskoder stemmer ikke overens! Kontroller dit input, og prøv igen."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Yderligere tiltag"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Foranstaltninger, der er ydet ud over dem, der er anført ovenfor"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Objekter"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14654,11 +14683,11 @@ msgstr ""
"Efterlad null for at matche alle objekter af denne type. En liste over flere"
" objekter vil resultere i en logisk OR-operation."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Mindst en handling skal vælges."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Ugyldigt filter for {model}: {error}"
@@ -14916,7 +14945,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Ugyldig værdi for et flervalgsfelt: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Objektet blev ikke fundet: %(value)s"
@@ -14929,11 +14958,16 @@ msgid ""
msgstr ""
"„{value}„er ikke en unik værdi for dette felt; flere objekter blev fundet"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "„{field_name}„er et ugyldigt adgangsfeltnavn."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Objekttype skal angives som“.„"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Ugyldig objekttype"
@@ -15516,19 +15550,19 @@ msgstr "DSA signaturer"
msgid "Group {n}"
msgstr "Gruppe {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Ethernet Privat LAN"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Ethernet virtuelt privat LAN"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Ethernet privat træ"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Ethernet virtuelt privat træ"
@@ -15560,33 +15594,31 @@ msgstr "Tunnel (navn)"
msgid "Outside IP (ID)"
msgstr "Udenfor IP (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "IKE-politik (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "IKE-politik (navn)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "IPsec-politik (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "IPsec-politik (navn)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (slug)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "VM-grænseflade (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (navn)"
diff --git a/netbox/translations/de/LC_MESSAGES/django.mo b/netbox/translations/de/LC_MESSAGES/django.mo
index cd38fed988d..fdcad71564f 100644
Binary files a/netbox/translations/de/LC_MESSAGES/django.mo and b/netbox/translations/de/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/de/LC_MESSAGES/django.po b/netbox/translations/de/LC_MESSAGES/django.po
index c8c7e2a551c..4635cd65038 100644
--- a/netbox/translations/de/LC_MESSAGES/django.po
+++ b/netbox/translations/de/LC_MESSAGES/django.po
@@ -8,9 +8,9 @@
# Niklas, 2024
# fepilins, 2024
# Steffen, 2024
-# Uli Haage, 2024
# Jeremy Stretch, 2024
# Robin Reinhardt, 2024
+# haagehan, 2024
# chbally, 2024
#
#, fuzzy
@@ -18,7 +18,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: chbally, 2024\n"
"Language-Team: German (https://app.transifex.com/netbox-community/teams/178115/de/)\n"
@@ -30,7 +30,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Schlüssel"
@@ -66,7 +66,7 @@ msgstr "Zuletzt verwendet"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "Erlaubte IP-Adressen"
@@ -94,8 +94,8 @@ msgstr "Dein Passwort wurde erfolgreich geändert."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -107,8 +107,8 @@ msgstr "Provisionierung"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -119,8 +119,8 @@ msgid "Active"
msgstr "Aktiv"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Offline"
@@ -133,7 +133,7 @@ msgstr "Deprovisionierung"
msgid "Decommissioned"
msgstr "Stillgelegt"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Primär"
@@ -159,7 +159,7 @@ msgstr "Inaktiv"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Region (ID)"
@@ -171,7 +171,7 @@ msgstr "Region (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Region (URL-Slug)"
@@ -200,7 +200,7 @@ msgstr "Standortgruppe (URL-Slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -266,7 +266,7 @@ msgstr "Standort"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Standort (URL-Slug)"
@@ -320,7 +320,7 @@ msgstr "Transportnetz Typ (URL-Slug)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Standort (ID)"
@@ -339,13 +339,13 @@ msgstr "Abschlusspunkt A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -354,7 +354,7 @@ msgstr "Suche"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -538,9 +538,9 @@ msgstr "Beschreibung"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -577,9 +577,9 @@ msgstr "Dienst ID"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -592,7 +592,7 @@ msgid "Color"
msgstr "Farbe"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -615,7 +615,7 @@ msgstr "Farbe"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -649,14 +649,14 @@ msgid "Type"
msgstr "Typ"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Providerkonto"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -672,8 +672,8 @@ msgstr "Providerkonto"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -702,7 +702,7 @@ msgstr "Providerkonto"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -726,8 +726,8 @@ msgstr "Status"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -873,7 +873,7 @@ msgstr "Als verbunden markieren"
#: netbox/templates/dcim/interface.html:193
#: netbox/templates/dcim/rearport.html:111
msgid "Circuit Termination"
-msgstr "Transportnetz Abschlusspunkt"
+msgstr "Transportnetzabschlusspunkt"
#: netbox/circuits/forms/bulk_edit.py:221
#: netbox/circuits/forms/model_forms.py:159
@@ -893,21 +893,21 @@ msgstr "Einzelheiten zum Abschlusspunkt"
msgid "Priority"
msgstr "Priorität"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Zugewiesener Provider"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Zugewiesenes Providerkonto"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Transportnetz Typ"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -919,8 +919,8 @@ msgstr "Transportnetz Typ"
msgid "Operational status"
msgstr "Betriebsstatus"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -936,7 +936,7 @@ msgstr "Betriebsstatus"
msgid "Assigned tenant"
msgstr "Zugewiesener Mandant"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -944,7 +944,7 @@ msgstr "Zugewiesener Mandant"
msgid "Termination"
msgstr "Abschlusspunkt"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1100,7 +1100,7 @@ msgstr "Terminationsseite"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Zuweisung"
@@ -1155,11 +1155,11 @@ msgid "Circuit Group"
msgstr "Transportnetzgruppe"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1167,11 +1167,11 @@ msgstr "Farbe"
#: netbox/circuits/models/circuits.py:36
msgid "circuit type"
-msgstr "Transportnetz Typ"
+msgstr "Transportnetztyp"
#: netbox/circuits/models/circuits.py:37
msgid "circuit types"
-msgstr "Transportnetz Typen"
+msgstr "Transportnetztypen"
#: netbox/circuits/models/circuits.py:48
msgid "circuit ID"
@@ -1182,9 +1182,9 @@ msgid "Unique circuit ID"
msgstr "Eindeutige Transportnetz-ID"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1279,7 +1279,7 @@ msgstr "Patchpanel-ID und Anschlussnummer(n)"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1318,11 +1318,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1406,11 +1406,11 @@ msgstr "Providernetzwerke"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1548,8 +1548,8 @@ msgstr "Garantierte Bandbreite"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1627,8 +1627,8 @@ msgstr "Abgeschlossen"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Fehlgeschlagen"
@@ -1694,42 +1694,42 @@ msgstr "Gestoppt"
msgid "Cancelled"
msgstr "Abgebrochen"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Lokal"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Nutzername"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Wird nur für das Klonen über HTTP(S) verwendet"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Passwort"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Branch"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Abrufen der Remotedaten ist fehlgeschlagen ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "AWS-Zugriffsschlüssel-ID"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Geheimer AWS-Zugriffsschlüssel"
@@ -1784,7 +1784,7 @@ msgstr "Benutzername"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1898,7 +1898,7 @@ msgstr "Abgeschlossen vor"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Nutzer"
@@ -1955,7 +1955,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Rackübersichten"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1998,13 +1998,13 @@ msgstr "Benutzereinstellungen"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Diverses"
#: netbox/core/forms/model_forms.py:169
msgid "Config Revision"
-msgstr "Konfigurationsrevisionen"
+msgstr "Konfigurationsverlauf"
#: netbox/core/forms/model_forms.py:208
msgid "This parameter has been defined statically and cannot be modified."
@@ -2060,7 +2060,7 @@ msgstr ""
"({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2097,20 +2097,20 @@ msgid "Config revision #{id}"
msgstr "Konfigurationsrevision #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2125,8 +2125,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2240,60 +2240,60 @@ msgstr "verwaltete Datei"
msgid "managed files"
msgstr "verwaltete Dateien"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "geplant"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "Intervall"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Wiederholungsintervall (in Minuten)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "gestartet"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "abgeschlossen"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "Daten"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "Fehler"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "Job-ID"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "Job"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "Jobs"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "Jobs können diesem Objekttyp nicht zugewiesen werden ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
"Ungültiger Status für die Beendigung des Jobs. Es stehen folgende Optionen "
"zur Auswahl: {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2344,7 +2344,7 @@ msgid "Last updated"
msgstr "Letzte Aktualisierung"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2536,7 +2536,7 @@ msgid "Staging"
msgstr "Bereitstellung"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Außerbetriebnahme"
@@ -2600,17 +2600,17 @@ msgstr "Veraltet"
msgid "Millimeters"
msgstr "Millimeter"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Zoll"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Front- zu Rückseite"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Rück- zu Frontseite"
@@ -2623,8 +2623,8 @@ msgstr "Rück- zu Frontseite"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2668,7 +2668,7 @@ msgstr "Frontseite"
msgid "Rear"
msgstr "Rückseite"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Vorbereitet"
@@ -2677,67 +2677,79 @@ msgstr "Vorbereitet"
msgid "Inventory"
msgstr "Inventar"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Links nach rechts"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Rechts nach links"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Seite nach hinten"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Von hinten zur Seite"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Von unten nach oben"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Von oben nach unten"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Passiv"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Gemischt"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (nicht verriegelnd)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (verriegelnd)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Kalifornischer Stil"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "International/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Propritär"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Andere"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/International"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Physikalisch"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Virtuell"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2745,13 +2757,13 @@ msgstr "Virtuell"
msgid "Wireless"
msgstr "Funknetze"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Virtuelle Schnittstellen"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2759,27 +2771,27 @@ msgstr "Virtuelle Schnittstellen"
msgid "Bridge"
msgstr "Bridge"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Link Aggregation Group (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (fest)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modular)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (Backplane)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Mobilfunk"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2787,130 +2799,130 @@ msgstr "Mobilfunk"
msgid "Serial"
msgstr "Seriell"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Koaxial"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Stapelnd"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Halb"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Voll"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Automatisch"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Untagged"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Tagged"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Tagged (Alle)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "IEEE-Standard"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Passiv 24 V (2 Paare)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Passiv 24 V (4 Paare)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Passiv 48 V (2 Paare)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Passiv 48 V (4 Paare)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Kupfer"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Glasfaser"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Faser"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Verbunden"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Kilometer"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Meter"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Zentimeter"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Meilen"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Fuß"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Kilogramm"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Gramm"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Pfund"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Unzen"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Redundant"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Einphasig"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Dreiphasig"
@@ -3062,7 +3074,7 @@ msgstr "Hat Stromanschlüsse"
#: netbox/dcim/filtersets.py:1143 netbox/dcim/forms/filtersets.py:552
#: netbox/dcim/forms/filtersets.py:648 netbox/dcim/forms/filtersets.py:869
msgid "Has power outlets"
-msgstr "Hat Stromabgänge"
+msgstr "Hat Steckdosen"
#: netbox/dcim/filtersets.py:583 netbox/dcim/filtersets.py:704
#: netbox/dcim/filtersets.py:1147 netbox/dcim/forms/filtersets.py:559
@@ -3162,7 +3174,7 @@ msgstr "Hat volle Tiefe"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3206,7 +3218,7 @@ msgid "Device model"
msgstr "Modell des Geräts"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Schnittstelle (ID)"
@@ -3220,8 +3232,8 @@ msgstr "Modulschacht (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Gerät (ID)"
@@ -3230,8 +3242,8 @@ msgid "Rack (name)"
msgstr "Rack (Name)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Gerät (Name)"
@@ -3281,8 +3293,8 @@ msgstr "Zugewiesene VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3318,7 +3330,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3366,7 +3378,7 @@ msgstr "Virtual Device Context"
#: netbox/dcim/filtersets.py:1719
msgid "Virtual Device Context (Identifier)"
-msgstr " Virtual Device Context (Identifier)"
+msgstr "Virtual Device Context (Identifier)"
#: netbox/dcim/filtersets.py:1730
#: netbox/templates/wireless/wirelesslan.html:11
@@ -3374,7 +3386,7 @@ msgstr " Virtual Device Context (Identifier)"
msgid "Wireless LAN"
msgstr "WLAN"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "WLAN Verbindung"
@@ -3402,12 +3414,12 @@ msgstr "Master (ID)"
msgid "Master (name)"
msgstr "Master (Name)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Mandant (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Mandant (URL-Slug)"
@@ -3434,7 +3446,7 @@ msgstr "Tags"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3483,8 +3495,8 @@ msgstr "Zeitzone"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3548,7 +3560,7 @@ msgstr "Einbautiefe"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3609,8 +3621,8 @@ msgstr "Nummerierung"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3718,12 +3730,12 @@ msgstr "Artikelnummer"
msgid "U height"
msgstr "Höheneinheit"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Von der Nutzung ausschließen"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3812,10 +3824,10 @@ msgstr "Betriebssystem"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3942,8 +3954,8 @@ msgid "Maximum draw"
msgstr "Maximale Auslastung"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Maximale Leistungsaufnahme (Watt)"
@@ -3952,8 +3964,8 @@ msgid "Allocated draw"
msgstr "Zugewiesene Leistungsaufnahme"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Zugewiesene Leistungsaufnahme (Watt)"
@@ -3974,16 +3986,16 @@ msgstr "Nur Management"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "PoE-Modus"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "PoE-Typ"
@@ -4007,19 +4019,19 @@ msgstr "WLAN Funktion"
msgid "Module"
msgstr "Modul"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "LAG"
#: netbox/dcim/forms/bulk_edit.py:1425 netbox/dcim/forms/model_forms.py:1305
msgid "Virtual device contexts"
-msgstr " Virtual Device Contexts"
+msgstr "Virtual Device Contexts"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4066,7 +4078,7 @@ msgid "Wireless LAN group"
msgstr "WLAN-Gruppe"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4363,7 +4375,7 @@ msgstr "Ausgangstyp"
#: netbox/dcim/forms/bulk_import.py:790
msgid "Local power port which feeds this outlet"
-msgstr "Lokaler Stromanschluss, der diese Stromabgänge speist"
+msgstr "Lokaler Stromanschluss, der diese Steckdose speist"
#: netbox/dcim/forms/bulk_import.py:796
msgid "Electrical phase (for three-phase circuits)"
@@ -4456,7 +4468,7 @@ msgstr "Entsprechender Rückanschluss"
msgid "Physical medium classification"
msgstr "Klassifizierung des physikalischen Mediums"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Installiertes Gerät"
@@ -4546,7 +4558,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} Seitlicher Abschluss nicht gefunden: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4598,7 +4610,7 @@ msgstr "Primäre IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "IPv6-Adresse mit Präfixlänge, z. B. 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4763,7 +4775,7 @@ msgid "Mgmt only"
msgstr "Nur Verwaltung"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4796,7 +4808,7 @@ msgstr "Sendeleistung (dBm)"
msgid "Cable"
msgstr "Kabel"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Erfasst"
@@ -4887,7 +4899,7 @@ msgstr "Schnittstellen-Vorlage"
#: netbox/dcim/forms/model_forms.py:1119
msgid "Power outlet template"
-msgstr "Vorlage für Stromabgänge"
+msgstr "Vorlage für Steckdosen"
#: netbox/dcim/forms/model_forms.py:1127
msgid "Power port template"
@@ -4949,7 +4961,7 @@ msgid "Front Port"
msgstr "Frontanschluss"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5076,8 +5088,8 @@ msgid ""
"The string {module} will be replaced with the position of the "
"assigned module, if any."
msgstr ""
-"Die Schnur {module} wird durch die Position des zugewiesenen "
-"Moduls ersetzt, falls vorhanden."
+"Die Zeichenkette {module} wird durch die Position des "
+"zugewiesenen Moduls ersetzt, falls vorhanden."
#: netbox/dcim/forms/object_create.py:320
#, python-brace-format
@@ -5089,7 +5101,7 @@ msgstr ""
"der ausgewählten Anzahl der hinteren Anschlusspositionen übereinstimmen "
"({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5114,7 +5126,7 @@ msgstr "Für das erste VC-Mitglied muss eine Position angegeben werden."
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "Label"
@@ -5223,7 +5235,7 @@ msgstr ""
" es an einen Modultyp angehängt wird."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Physisches Label"
@@ -5249,138 +5261,138 @@ msgstr ""
"Eine Komponentenvorlage muss entweder einem Gerätetyp oder einem Modultyp "
"zugeordnet sein."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "Vorlage für Konsolenanschluss"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "Vorlagen für Konsolenanschlüsse"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "Portvorlage für Konsolenserver"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "Portvorlagen für Konsolenserver"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "maximale Leistungsaufnahme"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "zugewiesene Leistungsaufnahme"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "Vorlage für Stromanschluss"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "Vorlagen für Stromanschlüsse"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"Die zugewiesene Leistungsaufnahme darf die maximale Leistung "
"({maximum_draw}W) nicht überschreiten."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "Phasenlage"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Phase (bei dreiphasiger Stromzufuhr)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "Vorlage für Stromabgang"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
-msgstr "Vorlagen für Stromabgänge"
+msgstr "Vorlagen für Steckdosen"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Übergeordneter Stromanschluss ({power_port}) muss zum gleichen Gerätetyp "
"gehören"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Übergeordneter Stromanschluss ({power_port}) muss zum gleichen Modultyp "
"gehören"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "Nur Verwaltung"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "Bridge-Schnittstelle"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "WLAN Rolle"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "Schnittstellenvorlage"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "Schnittstellenvorlagen"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Eine Schnittstelle kann nicht zu sich selbst überbrückt werden."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr "Bridge-Schnittstelle ({bridge}) muss zum gleichen Gerätetyp gehören"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Bridge-Schnittstelle ({bridge}) muss zum gleichen Modultyp gehören"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "Position des Rückanschlusses"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "Frontanschluss-Vorlage"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "Frontanschluss-Vorlagen"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Hinterer Anschluss ({name}) muss zum gleichen Gerätetyp gehören"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5389,47 +5401,47 @@ msgstr ""
"Ungültige Position des hinteren Anschlusses ({position}); hinterer Anschluss"
" {name} hat nur {count} Positionen"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "Positionen"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "Vorlage für den Rückanschluss"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "Vorlagen für Rückanschlüsse"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "Position"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Bezeichner, auf den beim Umbenennen installierter Komponenten verwiesen wird"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "Vorlage für Moduleinsatz"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "Vorlagen für Moduleinsätze"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "Vorlage für Geräteeinsatz"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "Vorlagen für Geräteeinsätze"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5438,214 +5450,214 @@ msgstr ""
"Untergeräterolle des Gerätetyps ({device_type}) muss auf „Übergeordnet“ "
"gesetzt sein, um Geräteschächte zuzulassen."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "Teile-ID"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Vom Hersteller zugewiesene Teile-ID"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "Vorlage für Inventarartikel"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "Vorlagen für Inventarartikel"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Komponenten können nicht auf ein anderes Gerät verschoben werden."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "Kabelende"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "als verbunden markieren"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "So behandeln, als ob ein Kabel angeschlossen wäre"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr ""
"Beim Anschließen eines Kabels muss das Kabelende (A oder B) angegeben "
"werden."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "Das Kabelende darf nicht ohne Kabel verlegt werden."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Mit angeschlossenem Kabel kann nicht als verbunden markiert werden."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr ""
"{class_name} Modelle müssen eine parent_object-Eigenschaft deklarieren"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Physischer Anschlusstyp"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "Geschwindigkeit"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Anschlussgeschwindigkeit in Bit pro Sekunde"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "Konsolenanschluss"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "Konsolenanschlüsse"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "Konsolenserveranschluss"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "Konsolenserveranschlüsse"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "Stromanschluss"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "Stromanschlüsse"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "Stromabgang"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
-msgstr "Stromabgänge"
+msgstr "Steckdosen"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Übergeordneter Stromanschluss ({power_port}) muss zum selben Gerät gehören"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "Modus"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "IEEE 802.1Q-Tagging-Strategie"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "übergeordnete Schnittstelle"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "übergeordnete LAG"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Diese Schnittstelle wird nur für Out-of-Band-Verwaltung verwendet"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "Geschwindigkeit (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "Duplex"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "Weltweiter 64-Bit-Name"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "WLAN Kanal"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "Kanalfrequenz (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Wird vom ausgewählten Kanal aufgefüllt (falls gesetzt)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "Sendeleistung (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "WLANs"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "untagged VLAN"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "tagged VLANs"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "Schnittstelle"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "Schnittstellen"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr ""
"{display_type} An Schnittstellen kann kein Kabel angeschlossen werden."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr ""
"{display_type} Schnittstellen können nicht als verbunden markiert werden."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr ""
"Eine Schnittstelle kann nicht seine eigene übergeordnete Schnittstelle sein."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr ""
"Nur virtuelle Schnittstellen können einer übergeordneten Schnittstelle "
"zugewiesen werden."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5654,7 +5666,7 @@ msgstr ""
"Die ausgewählte übergeordnete Schnittstelle ({interface}) gehört zu einem "
"anderen Gerät ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5663,7 +5675,7 @@ msgstr ""
"Die ausgewählte übergeordnete Schnittstelle ({interface}) gehört zu "
"{device}, das nicht Teil des virtuellen Chassis ist {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5672,7 +5684,7 @@ msgstr ""
"Die gewählte Bridge-Schnittstelle ({bridge}) gehört zu einem anderen Gerät "
"({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5681,17 +5693,17 @@ msgstr ""
"Die gewählte Bridge-Schnittstelle ({interface}) gehört zu {device}, das "
"nicht Teil des virtuellen Chassis ist {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr ""
"Virtuelle Schnittstellen können keine übergeordnete LAG-Schnittstelle haben."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr ""
"Eine LAG-Schnittstelle nicht seine eigene übergeordnete Schnittstelle sein."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
@@ -5699,7 +5711,7 @@ msgstr ""
"Die gewählte LAG-Schnittstelle ({lag}) gehört zu einem anderen Gerät "
"({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5708,50 +5720,50 @@ msgstr ""
"Die gewählte LAG-Schnittstelle ({lag}) gehört zu {device}, das nicht Teil "
"des virtuellen Chassis ist {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Virtuelle Schnittstellen können keinen PoE-Modus haben."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Virtuelle Schnittstellen können keinen PoE-Typ haben."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr ""
"Bei der Festlegung eines PoE-Typs muss der PoE-Modus angegeben werden."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr "Die WLAN-Rolle kann nur auf Funkschnittstellen festgelegt werden."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Der Kanal kann nur an drahtlosen Schnittstellen eingestellt werden."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"Die Kanalfrequenz kann nur an drahtlosen Schnittstellen eingestellt werden."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr ""
"Bei ausgewähltem Kanal kann keine benutzerdefinierte Frequenz angegeben "
"werden."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr ""
"Die Kanalbreite kann nur an drahtlosen Schnittstellen eingestellt werden."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr ""
"Bei ausgewähltem Kanal kann keine benutzerdefinierte Breite angegeben "
"werden."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5760,24 +5772,24 @@ msgstr ""
"Das untagged VLAN ({untagged_vlan}) muss zu demselben Standort gehören wie "
"das übergeordnete Gerät der Schnittstelle, oder es muss global sein."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Abgebildete Position am entsprechenden hinteren Anschluss"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "Frontanschluss"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "Frontanschlüsse"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Rückanschluss ({rear_port}) muss zum selben Gerät gehören"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5786,19 +5798,19 @@ msgstr ""
"Ungültige Position des hinteren Anschlusses ({rear_port_position}): Hinterer"
" Anschluss {name} hat nur {positions} Stellungen."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Anzahl der Frontanschlüsse, die zugeordnet werden können"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "Rückanschluss"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "Rückanschlüsse"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5807,38 +5819,38 @@ msgstr ""
"Die Anzahl der Positionen darf nicht kleiner sein als die Anzahl der "
"zugewiesenen Vorderanschlüsse ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "Moduleinsatz"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "Moduleinsätze"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr ""
"Ein Modulschacht kann nicht zu einem darin installierten Modul gehören."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "Geräteeinsatz"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "Geräteeinsätze"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr "Dieser Gerätetyp ({device_type}) unterstützt keine Geräteeinsätze."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Ein Gerät kann nicht in sich selbst installiert werden."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5846,64 +5858,64 @@ msgstr ""
"Das angegebene Gerät kann nicht installiert werden; Das Gerät ist bereits "
"installiert in {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "Inventarartikelrolle"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "Inventarartikelrollen"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "Seriennummer"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "Asset-Tag"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr ""
"Ein eindeutiges Etikett, das zur Identifizierung dieses Artikels verwendet "
"wird"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "erkannt"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Dieser Artikel wurde automatisch erkannt"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "Inventarartikel"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "Inventarartikel"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Kann sich nicht als übergeordnetes Objekt zuweisen."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "Der Artikel im übergeordneten Inventar gehört nicht zum selben Gerät."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr ""
"Ein Inventargegenstand mit untergeordneten Inventargegenständen kann nicht "
"bewegt werden"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr ""
"Inventargegenstand kann nicht einer Komponente auf einem anderen Gerät "
@@ -6061,7 +6073,7 @@ msgstr "Die Funktion, die dieses Gerät erfüllt"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "vom Hersteller vergebene Gehäuse-Seriennummer"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr ""
"Ein eindeutiger Wert, der zur Identifizierung dieses Geräts verwendet wird"
@@ -6074,12 +6086,12 @@ msgstr "Position (HE)"
msgid "rack face"
msgstr "Rackseite"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "primäre IPv4-Adresse"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "primäre IPv6-Adresse"
@@ -6232,15 +6244,24 @@ msgstr ""
"Die Position eines Geräts, das einem virtuellen Gehäuse zugewiesen ist, muss"
" definiert sein."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Gerät kann nicht aus dem virtuellen Gehäuse entfernt werden "
+"{virtual_chassis} weil es derzeit der Master ist."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "Modul"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "Module"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6249,15 +6270,15 @@ msgstr ""
"Das Modul muss in einem Modulschacht installiert werden, der zum "
"zugewiesenen Gerät gehört ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "Domäne"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "virtuelles Gehäuse"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
@@ -6265,7 +6286,7 @@ msgstr ""
"Der gewählte Master ({master}) ist diesem virtuellen Chassis nicht "
"zugewiesen."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6274,34 +6295,34 @@ msgstr ""
"Das virtuelle Gehäuse kann nicht gelöscht werden {self}. Es gibt "
"Mitgliedsschnittstellen, die gehäuseübergreifende LAG-Schnittstellen bilden."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "identifizieren"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Numerische Kennung, die für das übergeordnete Gerät eindeutig ist"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "Kommentare"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
-msgstr " Virtual Device Context"
+msgstr "Virtual Device Context"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
-msgstr " Virtual Device Context"
+msgstr "Virtual Device Context"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} ist keine IPv{family}-Adresse."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"Die primäre IP-Adresse muss zu einer Schnittstelle auf dem zugewiesenen "
@@ -6552,7 +6573,7 @@ msgstr "HE-Reservierung"
#: netbox/dcim/models/racks.py:697
msgid "rack reservations"
-msgstr "HE-Reservierungen"
+msgstr "Rackreservierungen"
#: netbox/dcim/models/racks.py:714
#, python-brace-format
@@ -6745,7 +6766,7 @@ msgstr "Konfigvorlage"
msgid "Site Group"
msgstr "Standortgruppe"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6754,12 +6775,12 @@ msgstr "Standortgruppe"
msgid "IP Address"
msgstr "IP-Adresse"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "IPv4-Adresse"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "IPv6-Adresse"
@@ -6795,10 +6816,10 @@ msgstr "Stromanschlüsse"
#: netbox/dcim/tables/devices.py:243
msgid "Power outlets"
-msgstr "Stromabgänge"
+msgstr "Steckdosen"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6836,8 +6857,8 @@ msgstr "Inventarartikel"
msgid "Module Bay"
msgstr "Moduleinsatz"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6895,75 +6916,75 @@ msgstr "FHRP-Gruppen"
msgid "Tunnel"
msgstr "Tunnel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Nur zur Verwaltung"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDCs"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Installiertes Modul"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Seriennummer des Moduls"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Modul-Asset-Tag"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Status des Moduls"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Komponente"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Artikel"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Gerätetypen"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
-msgstr "Modul-Typen"
+msgstr "Modultypen"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
-msgstr "Plattformen"
+msgstr "Betriebssysteme"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Standard-Betriebssystem"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Volle Tiefe"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Höhe in HE"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Instanzen"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6974,7 +6995,7 @@ msgstr "Instanzen"
msgid "Console Ports"
msgstr "Konsolenanschlüsse"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6985,7 +7006,7 @@ msgstr "Konsolenanschlüsse"
msgid "Console Server Ports"
msgstr "Konsolenserveranschlüsse"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6996,7 +7017,7 @@ msgstr "Konsolenserveranschlüsse"
msgid "Power Ports"
msgstr "Stromanschlüsse"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -7007,7 +7028,7 @@ msgstr "Stromanschlüsse"
msgid "Power Outlets"
msgstr "Steckdosen"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -7017,7 +7038,7 @@ msgstr "Steckdosen"
msgid "Front Ports"
msgstr "Frontanschlüsse"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -7028,15 +7049,15 @@ msgstr "Frontanschlüsse"
msgid "Rear Ports"
msgstr "Rückanschlüsse"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
#: netbox/templates/dcim/devicetype/base.html:46
msgid "Device Bays"
-msgstr "Geräte-Einsätze"
+msgstr "Geräteeinsätze"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7045,7 +7066,7 @@ msgstr "Geräte-Einsätze"
#: netbox/templates/dcim/module.html:43
#: netbox/templates/dcim/moduletype/base.html:43
msgid "Module Bays"
-msgstr "Modul-Einsätze"
+msgstr "Moduleinsätze"
#: netbox/dcim/tables/power.py:36 netbox/netbox/navigation/menu.py:297
#: netbox/templates/dcim/powerpanel.html:51
@@ -7109,7 +7130,7 @@ msgstr "Verbindung von {count} {type} unterbrochen"
#: netbox/dcim/views.py:740 netbox/netbox/navigation/menu.py:51
msgid "Reservations"
-msgstr "Reservierungen"
+msgstr "Rackreservierungen"
#: netbox/dcim/views.py:759 netbox/templates/dcim/location.html:90
#: netbox/templates/dcim/site.html:140
@@ -7121,7 +7142,7 @@ msgstr "Nicht in einem Rack befindliche Geräte"
#: netbox/virtualization/forms/model_forms.py:225
#: netbox/virtualization/views.py:407
msgid "Config Context"
-msgstr "Config-Kontext"
+msgstr "Konfigurationsvorlage"
#: netbox/dcim/views.py:2098 netbox/virtualization/views.py:417
msgid "Render Config"
@@ -7463,7 +7484,8 @@ msgstr "Der Regelsatz muss ein Dictionary sein, nicht {ruleset}."
#: netbox/extras/conditions.py:142
msgid "Invalid logic type: must be 'AND' or 'OR'. Please check documentation."
-msgstr "Ungültiger Logik-Typ: es muss 'AND' or 'OR' sein. Siehe Dokumentation"
+msgstr ""
+"Ungültiger Logik-Typ: es muss 'AND' oder 'OR' sein. Siehe Dokumentation"
#: netbox/extras/conditions.py:154
msgid "Incorrect key(s) informed. Please check documentation."
@@ -7478,26 +7500,26 @@ msgstr "Widget-Typ"
msgid "Unregistered widget class: {name}"
msgstr "Nicht registrierte Widget-Klasse: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} muss eine render () -Methode definieren."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Hinweis"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr ""
"Zeigt einige beliebige benutzerdefinierte Inhalte an. Markdown wird "
"unterstützt."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Anzahl der Objekte"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7505,60 +7527,60 @@ msgstr ""
"Zeigt eine Reihe von NetBox-Modellen und die Anzahl der für jeden Typ "
"erstellten Objekte an."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Filter, die beim Zählen der Anzahl der Objekte angewendet werden"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
"Ungültiges Format. Objektfilter müssen als Wörterbuch übergeben werden."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Liste der Objekte"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Zeigt eine beliebige Liste von Objekten an."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Die Standardanzahl der anzuzeigenden Objekte"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
-"Ungültiges Format. URL-Parameter müssen als Wörterbuch übergeben werden."
+"Ungültiges Format. URL-Parameter müssen als Verzeichnis übergeben werden."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS-Feed"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Betten Sie einen RSS-Feed von einer externen Website ein."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "Feed-URL"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Die maximale Anzahl der anzuzeigenden Objekte"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Wie lange soll der Inhalt zwischengespeichert werden (in Sekunden)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Lesezeichen"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Zeige persönliche Lesezeichen an"
@@ -7570,7 +7592,7 @@ msgstr "Unbekannter Aktionstyp für eine Ereignisregel: {action_type}"
#: netbox/extras/events.py:192
#, python-brace-format
msgid "Cannot import events pipeline {name} error: {error}"
-msgstr "Event-Pipeline kann nicht importiert werden {name} Fehler: {error}"
+msgstr "Ereignispipeline kann nicht importiert werden {name} Fehler: {error}"
#: netbox/extras/filtersets.py:45
msgid "Script module (ID)"
@@ -7601,8 +7623,8 @@ msgstr "Clustertyp (URL-Slug)"
msgid "Tenant group"
msgstr "Mandantengruppe"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Mandantengruppe (URL-Slug)"
@@ -7739,7 +7761,7 @@ msgstr "Ist aktiv"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Typen von Objekten"
@@ -7815,7 +7837,7 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:193
msgid "The event type(s) which will trigger this rule"
-msgstr "Die Ereignistypen, die diese Regel auslösen"
+msgstr "Ereignistype(n), die diese Regel auslösen"
#: netbox/extras/forms/bulk_import.py:196
msgid "Action object"
@@ -7841,13 +7863,13 @@ msgstr "Zugewiesener Objekttyp"
#: netbox/extras/forms/bulk_import.py:249
msgid "The classification of entry"
-msgstr "Die Klassifizierung der Einreise"
+msgstr "Die Klassifizierung des Eintrags"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Benutzer"
@@ -7861,8 +7883,8 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Gruppen"
@@ -7947,7 +7969,7 @@ msgstr "Gerätetypen"
#: netbox/extras/forms/filtersets.py:366
#: netbox/extras/forms/model_forms.py:532
msgid "Roles"
-msgstr "Rollen"
+msgstr "Prefix und VLAN-Rollen"
#: netbox/extras/forms/filtersets.py:376
#: netbox/extras/forms/model_forms.py:542
@@ -8108,8 +8130,8 @@ msgstr "Wahl der Aktion"
#: netbox/extras/forms/model_forms.py:385
msgid "Enter conditions in JSON format."
msgstr ""
-"Geben Sie die Bedingungen ein in JSON "
-"formatieren."
+"Geben Sie die Bedingungen ein in JSON - "
+"Format."
#: netbox/extras/forms/model_forms.py:389
msgid ""
@@ -8122,7 +8144,7 @@ msgstr ""
#: netbox/extras/forms/model_forms.py:394
#: netbox/templates/extras/eventrule.html:10
msgid "Event Rule"
-msgstr "Event-Regel"
+msgstr "Ereignisregel"
#: netbox/extras/forms/model_forms.py:395
msgid "Triggers"
@@ -8215,11 +8237,11 @@ msgstr "Keine Indexer gefunden!"
#: netbox/extras/models/configs.py:130
msgid "config context"
-msgstr "Config-Kontext"
+msgstr "Konfigurationsvorlage"
#: netbox/extras/models/configs.py:131
msgid "config contexts"
-msgstr "Config-Kontexte"
+msgstr "Konfigurationsvorlage"
#: netbox/extras/models/configs.py:149 netbox/extras/models/configs.py:205
msgid "JSON data must be in object form. Example:"
@@ -8265,7 +8287,7 @@ msgstr "Konfigurationsvorlagen"
#: netbox/extras/models/customfields.py:75
msgid "The object(s) to which this field applies."
-msgstr "Die Objekte, für die dieses Feld gilt."
+msgstr "Objekt(e), für die dieses Feld gilt."
#: netbox/extras/models/customfields.py:82
msgid "The type of data this custom field holds"
@@ -8600,12 +8622,21 @@ msgstr "benutzerdefinierter Feldauswahlsatz"
#: netbox/extras/models/customfields.py:783
msgid "custom field choice sets"
-msgstr "benutzerdefinierte Feldauswahlsätze"
+msgstr "Benutzerdefinierte Feldoptionen"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Muss Basis- oder zusätzliche Auswahlmöglichkeiten definieren."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Auswahl kann nicht entfernt werden {choice} es gibt {model} Objekte, die "
+"darauf verweisen."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "Layout"
@@ -8654,11 +8685,11 @@ msgstr "Zusätzliche Daten, die an das Aktionsobjekt übergeben werden"
#: netbox/extras/models/models.py:116
msgid "event rule"
-msgstr "Eventregel"
+msgstr "Ereignisregel"
#: netbox/extras/models/models.py:117
msgid "event rules"
-msgstr "Eventregeln"
+msgstr "Ereignisregeln"
#: netbox/extras/models/models.py:166
msgid ""
@@ -8698,7 +8729,7 @@ msgstr ""
#: netbox/extras/models/models.py:195
msgid "body template"
-msgstr "Körperschablone"
+msgstr "Body Template"
#: netbox/extras/models/models.py:198
msgid ""
@@ -8762,7 +8793,7 @@ msgstr ""
#: netbox/extras/models/models.py:293
msgid "The object type(s) to which this link applies."
-msgstr "Die Objekttyp (en), für die dieser Link gilt."
+msgstr "Die Objekttyp(en), für die dieser Link gilt."
#: netbox/extras/models/models.py:305
msgid "link text"
@@ -8802,7 +8833,7 @@ msgstr "benutzerdefinierte Links"
#: netbox/extras/models/models.py:389
msgid "The object type(s) to which this template applies."
-msgstr "Die Objekttyp (en), für die diese Vorlage gilt."
+msgstr "Die Objekttyp(en), für die diese Vorlage gilt."
#: netbox/extras/models/models.py:402
msgid ""
@@ -8814,8 +8845,7 @@ msgstr ""
#: netbox/extras/models/models.py:410
msgid "Defaults to text/plain; charset=utf-8"
-msgstr ""
-"Die Standardeinstellung ist Text/Einfach; Zeichensatz = UTF-8"
+msgstr "Die Standardeinstellung ist text/plain; charset=utf-8"
#: netbox/extras/models/models.py:413
msgid "file extension"
@@ -8839,7 +8869,7 @@ msgstr "Vorlage exportieren"
#: netbox/extras/models/models.py:431
msgid "export templates"
-msgstr "Vorlagen exportieren"
+msgstr "Exportvorlagen"
#: netbox/extras/models/models.py:448
#, python-brace-format
@@ -8849,7 +8879,7 @@ msgstr ""
#: netbox/extras/models/models.py:498
msgid "The object type(s) to which this filter applies."
-msgstr "Der/Die Objekttyp (-en), für die dieser Filter gilt."
+msgstr "Der/Die Objekttyp (en), für die dieser Filter gilt."
#: netbox/extras/models/models.py:530
msgid "shared"
@@ -9184,67 +9214,67 @@ msgstr "Nachricht"
msgid "Method"
msgstr "Methode"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Stellen Sie sicher, dass dieser Wert gleich ist %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr ""
"Stellen Sie sicher, dass dieser Wert nicht gleich ist %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Dieses Feld muss leer sein."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Dieses Feld darf nicht leer sein."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Validierungsregeln müssen als Wörterbuch übergeben werden"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr ""
"Die benutzerdefinierte Überprüfung ist fehlgeschlagen für {attribute}: "
"{exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Ungültiges Attribut“{name}„zur Anfrage"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Ungültiges Attribut“{name}„für {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Ihr Dashboard wurde zurückgesetzt."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Hinzugefügtes Widget:"
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Aktualisiertes Widget: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Gelöschtes Widget: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Fehler beim Löschen des Widgets: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr ""
"Das Skript kann nicht ausgeführt werden: Der RQ-Worker-Prozess läuft nicht."
@@ -9318,19 +9348,19 @@ msgstr "Klartext"
msgid "Invalid IP address format: {address}"
msgstr "Ungültiges IP-Adressformat: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Ziel importieren"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Importziel (Name)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Ziel exportieren"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Exportziel (Name)"
@@ -9400,11 +9430,11 @@ msgstr "Präfixe, die dieses Präfix oder diese IP enthalten"
msgid "Mask length"
msgstr "Länge der Maske"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "VLAN-Nummer (1-4094)"
@@ -9424,23 +9454,23 @@ msgid "Parent prefix"
msgstr "Übergeordnetes Präfix"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Virtuelle Maschine (Name)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Virtuelle Maschine (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Schnittstelle (Name)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "VM-Schnittstelle (Name)"
@@ -9468,19 +9498,27 @@ msgstr "Dienst (ID)"
msgid "NAT inside IP address (ID)"
msgstr "NAT innerhalb der IP-Adresse (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Zugewiesene Schnittstelle"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Zugewiesene VM-Schnittstelle"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "IP-Adresse (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP-Adresse"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "Primäre IPv4 (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "Primäre IPv6 (ID)"
@@ -9694,10 +9732,6 @@ msgstr "Virtuelle Maschine"
msgid "Parent VM of assigned interface (if any)"
msgstr "Übergeordnete VM der zugewiesenen Schnittstelle (falls vorhanden)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Zugewiesene Schnittstelle"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Ist primär"
@@ -9749,7 +9783,7 @@ msgstr "{ip} ist diesem Gerät/dieser VM nicht zugewiesen."
#: netbox/ipam/forms/filtersets.py:47 netbox/ipam/forms/model_forms.py:63
#: netbox/netbox/navigation/menu.py:189 netbox/vpn/forms/model_forms.py:410
msgid "Route Targets"
-msgstr "Routen-Ziele"
+msgstr "Routenziele"
#: netbox/ipam/forms/filtersets.py:53 netbox/ipam/forms/model_forms.py:50
#: netbox/vpn/forms/filtersets.py:224 netbox/vpn/forms/model_forms.py:397
@@ -9892,7 +9926,7 @@ msgstr "Machen Sie dies zur primären IP für das Gerät/die VM"
#: netbox/ipam/forms/model_forms.py:325
msgid "NAT IP (Inside)"
-msgstr "NAT IP (intern)"
+msgstr "NAT IP (innen)"
#: netbox/ipam/forms/model_forms.py:384
msgid "An IP address can only be assigned to a single object."
@@ -9954,7 +9988,7 @@ msgstr "Dienst / Port"
#: netbox/ipam/forms/model_forms.py:730
msgid "Service template"
-msgstr "Vorlage für den Dienst"
+msgstr "Dienstevorlagen (Ports)"
#: netbox/ipam/forms/model_forms.py:742
msgid "From Template"
@@ -9968,8 +10002,8 @@ msgstr "Benutzerdefiniert"
msgid ""
"Must specify name, protocol, and port(s) if not using a service template."
msgstr ""
-"Muss Name, Protokoll und Port(s) angeben, wenn keine Dienstvorlage verwendet"
-" wird."
+"Muss Name, Protokoll und Port(s) angeben, wenn keine Dienstevorlage "
+"verwendet wird."
#: netbox/ipam/models/asns.py:34
msgid "start"
@@ -10265,11 +10299,11 @@ msgstr "Portnummern"
#: netbox/ipam/models/services.py:59
msgid "service template"
-msgstr "Service-Vorlage"
+msgstr "Servicevorlage"
#: netbox/ipam/models/services.py:60
msgid "service templates"
-msgstr "Dienstvorlagen"
+msgstr "Servicevorlagen"
#: netbox/ipam/models/services.py:95
msgid "The specific IP addresses (if any) to which this service is bound"
@@ -10283,7 +10317,7 @@ msgstr "Dienst / Port"
#: netbox/ipam/models/services.py:103
msgid "services"
-msgstr "Ports"
+msgstr "Dienste (Ports)"
#: netbox/ipam/models/services.py:117
msgid ""
@@ -10351,8 +10385,8 @@ msgid ""
"VLAN is assigned to group {group} (scope: {scope}); cannot also assign to "
"site {site}."
msgstr ""
-"VLAN ist der Gruppe {group} (Umfang: {scope}) zugewiesen; kann nicht auch "
-"dem Standort {site} zugewiesen werden."
+"VLAN ist der Gruppe {group} (Scope: {scope}) zugewiesen; kann nicht auch dem"
+" Standort {site} zugewiesen werden."
#: netbox/ipam/models/vlans.py:259
#, python-brace-format
@@ -10455,11 +10489,11 @@ msgstr "Startadresse"
#: netbox/ipam/tables/ip.py:383
msgid "NAT (Inside)"
-msgstr "NAT (Drinnen)"
+msgstr "NAT (Innen)"
#: netbox/ipam/tables/ip.py:388
msgid "NAT (Outside)"
-msgstr "NAT (Draußen)"
+msgstr "NAT (Außen)"
#: netbox/ipam/tables/ip.py:393
msgid "Assigned"
@@ -10993,7 +11027,7 @@ msgstr "Rackrollen"
#: netbox/netbox/navigation/menu.py:54
msgid "Elevations"
-msgstr "Übersichten"
+msgstr "Rackübersichten"
#: netbox/netbox/navigation/menu.py:60 netbox/netbox/navigation/menu.py:62
msgid "Rack Types"
@@ -11006,7 +11040,7 @@ msgstr "Module"
#: netbox/netbox/navigation/menu.py:80 netbox/templates/dcim/device.html:160
#: netbox/templates/dcim/virtualdevicecontext.html:8
msgid "Virtual Device Contexts"
-msgstr " Virtual Device Context"
+msgstr "Virtual Device Context"
#: netbox/netbox/navigation/menu.py:88
msgid "Manufacturers"
@@ -11063,13 +11097,13 @@ msgstr "VLAN-Gruppen"
#: netbox/netbox/navigation/menu.py:203
msgid "Service Templates"
-msgstr "Vorlagen für Dienste / Ports"
+msgstr "Dienstevorlagen (Ports)"
#: netbox/netbox/navigation/menu.py:204 netbox/templates/dcim/device.html:302
#: netbox/templates/ipam/ipaddress.html:118
#: netbox/templates/virtualization/virtualmachine.html:154
msgid "Services"
-msgstr "Dienste"
+msgstr "Dienste (Ports)"
#: netbox/netbox/navigation/menu.py:211
msgid "VPN"
@@ -11087,7 +11121,7 @@ msgstr "Tunnelgruppen"
#: netbox/netbox/navigation/menu.py:219
msgid "Tunnel Terminations"
-msgstr "Tunnelabschlüsse"
+msgstr "Tunnelabschlusspunkte"
#: netbox/netbox/navigation/menu.py:223 netbox/netbox/navigation/menu.py:225
#: netbox/vpn/models/l2vpn.py:64
@@ -11159,7 +11193,7 @@ msgstr "Gruppenzuweisung"
#: netbox/netbox/navigation/menu.py:276
msgid "Circuit Terminations"
-msgstr "Transportnetz Abschlusspunkt"
+msgstr "Transportnetzabschlusspunkt"
#: netbox/netbox/navigation/menu.py:280 netbox/netbox/navigation/menu.py:282
msgid "Providers"
@@ -11184,7 +11218,7 @@ msgstr "Konfigurationen"
#: netbox/netbox/navigation/menu.py:311
msgid "Config Contexts"
-msgstr "Kontexte konfigurieren"
+msgstr "Konfigurationsvorlage"
#: netbox/netbox/navigation/menu.py:312
msgid "Config Templates"
@@ -11209,7 +11243,7 @@ msgstr "Benutzerdefinierte Felder"
#: netbox/netbox/navigation/menu.py:326
msgid "Custom Field Choices"
-msgstr "Optionen für benutzerdefinierte Felder"
+msgstr "Benutzerdefinierte Feldoptionen"
#: netbox/netbox/navigation/menu.py:327
msgid "Custom Links"
@@ -11281,9 +11315,9 @@ msgstr "Admin"
msgid "API Tokens"
msgstr "API-Token"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Berechtigungen"
@@ -11307,7 +11341,7 @@ msgstr "Konfigurationsverlauf"
#: netbox/netbox/navigation/menu.py:465 netbox/templates/core/rq_task.html:8
#: netbox/templates/core/rq_task_list.html:22
msgid "Background Tasks"
-msgstr "Hintergrund-Aufgaben"
+msgstr "Hintergrundaufgaben"
#: netbox/netbox/plugins/navigation.py:47
#: netbox/netbox/plugins/navigation.py:69
@@ -11440,63 +11474,63 @@ msgstr ""
msgid "Cannot delete stores from registry"
msgstr "Stores können nicht aus der Registrierung gelöscht werden"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "Tschechisch"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "Dänisch"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Deutsch"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Englisch"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "Spanisch"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "Französisch"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "Italenisch"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Japanisch"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Niederländisch"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Polnisch"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "Portugiesisch"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Russisch"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Türkisch"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "Ukrainisch"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "Chinesisch"
@@ -11835,7 +11869,7 @@ msgstr "Meine API-Token"
#: netbox/templates/account/token.html:19 netbox/templates/users/token.html:6
#: netbox/templates/users/token.html:14 netbox/users/forms/filtersets.py:120
msgid "Token"
-msgstr "Token"
+msgstr "API-Token"
#: netbox/templates/account/token.html:39 netbox/templates/users/token.html:31
#: netbox/users/forms/bulk_edit.py:107
@@ -11848,7 +11882,7 @@ msgstr "Zuletzt benutzt"
#: netbox/templates/account/token_list.html:12
msgid "Add a Token"
-msgstr "Einen Token hinzufügen"
+msgstr "Einen API-Token hinzufügen"
#: netbox/templates/base/base.html:22 netbox/templates/home.html:27
msgid "Home"
@@ -11916,7 +11950,7 @@ msgstr "Tauschen Sie diese Abschlüsse gegen Tranportnetz aus: %(circuit)s?"
#: netbox/templates/circuits/circuit_terminations_swap.html:14
msgid "A side"
-msgstr "Eine Seite"
+msgstr "A Seite"
#: netbox/templates/circuits/circuit_terminations_swap.html:22
msgid "Z side"
@@ -12023,11 +12057,11 @@ msgstr "Verbinden"
#: netbox/templates/circuits/inc/circuit_termination_fields.html:70
msgid "Downstream"
-msgstr "Stromabwärts"
+msgstr "Downstream"
#: netbox/templates/circuits/inc/circuit_termination_fields.html:71
msgid "Upstream"
-msgstr "Stromaufwärts"
+msgstr "Upstream"
#: netbox/templates/circuits/inc/circuit_termination_fields.html:80
msgid "Cross-Connect"
@@ -12279,7 +12313,7 @@ msgstr "Lokale Installationsanweisungen"
#: netbox/templates/core/rq_task_list.html:14
#: netbox/templates/core/rq_worker.html:7
msgid "Background Queues"
-msgstr "Warteschlangen im Hintergrund"
+msgstr "Hintergrundaufgaben"
#: netbox/templates/core/rq_queue_list.html:24
#: netbox/templates/core/rq_queue_list.html:25
@@ -12669,7 +12703,7 @@ msgstr "Moduleinsätze hinzufügen"
#: netbox/templates/dcim/device/poweroutlets.html:24
msgid "Add Power Outlets"
-msgstr "Stromabgänge hinzufügen"
+msgstr "Steckdosen hinzufügen"
#: netbox/templates/dcim/device/powerports.html:24
msgid "Add Power Port"
@@ -13174,7 +13208,7 @@ msgstr "Neues Mitglied hinzufügen"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Aktionen"
@@ -13413,8 +13447,8 @@ msgid ""
"This will remove all configured widgets and restore the "
"default dashboard configuration."
msgstr ""
-"Das wird entfernt alles konfigurierte Widgets und stellen "
-"Sie die Standard-Dashboard-Konfiguration wieder her."
+"Das werden alle konfigurierte Widgets entfernt und die "
+"Standard-Dashboard-Konfiguration wieder hergestellt."
#: netbox/templates/extras/dashboard/reset.html:13
msgid ""
@@ -13634,7 +13668,7 @@ msgstr "Zusätzliche Header"
#: netbox/templates/extras/webhook.html:70
msgid "Body Template"
-msgstr "Körperschablone"
+msgstr "Body Template"
#: netbox/templates/generic/bulk_add_component.html:29
msgid "Bulk Creation"
@@ -14212,8 +14246,8 @@ msgid ""
"installation documentation for further guidance."
msgstr ""
"Der HTTP-Dienst (z. B. nginx oder Apache) ist so konfiguriert, dass er "
-"Dateien von STATISCHE_WURZEL Pfad. Beziehen Sie sich auf die Installationsdokumentation für weitere "
+"Dateien von STATIIC_ROOT Pfad. Beziehen Sie sich auf the installation documentation für weitere "
"Anleitungen."
#: netbox/templates/media_failure.html:47
@@ -14222,7 +14256,7 @@ msgid ""
"The file %(filename)s exists in the static root directory and "
"is readable by the HTTP server."
msgstr ""
-"Die Akte %(filename)s existiert im statischen Stammverzeichnis "
+"Die Datei%(filename)s existiert im statischen Stammverzeichnis "
"und ist für den HTTP-Server lesbar."
#: netbox/templates/media_failure.html:55
@@ -14232,7 +14266,7 @@ msgstr ""
"Klicken Sie hier um erneut zu versuchen, NetBox"
" zu laden."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14261,7 +14295,7 @@ msgid "Add Contact Group"
msgstr "Kontaktgruppe hinzufügen"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Kontaktrolle"
@@ -14299,7 +14333,7 @@ msgid "View"
msgstr "Ansicht"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Einschränkungen"
@@ -14326,11 +14360,6 @@ msgstr "Arbeitsspeicher"
msgid "Disk Space"
msgstr "Speicherplatz"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Virtuelle Maschine hinzufügen"
@@ -14523,7 +14552,7 @@ msgstr "Tunnelabschlusspunkt"
#: netbox/vpn/forms/model_forms.py:138 netbox/vpn/forms/model_forms.py:247
#: netbox/vpn/tables/tunnels.py:101
msgid "Outside IP"
-msgstr "Äußere IP"
+msgstr "Öffentliche / Outside IP"
#: netbox/templates/vpn/tunneltermination.html:51
msgid "Peer Terminations"
@@ -14571,57 +14600,57 @@ msgstr "Link-Eigenschaften"
msgid "Distance"
msgstr "Entfernung"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Übergeordnete Kontaktgruppe (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Übergeordnete Kontaktgruppe (URL-Slug)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Kontaktgruppe (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Kontaktgruppe (URL-Slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Kontakt (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Kontaktrolle (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Kontaktrolle (URL-Slug)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Kontaktgruppe"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Übergeordnete Mandantengruppe (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Übergeordnete Mandantengruppe (URL-Slug)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Mandantengruppe (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Mandantengruppe (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Mandantengruppe (URL-Slug)"
@@ -14692,7 +14721,7 @@ msgstr "Mandantengruppe"
#: netbox/tenancy/models/tenants.py:33
msgid "tenant groups"
-msgstr "Mandanten-Gruppen"
+msgstr "Mandantengruppen"
#: netbox/tenancy/models/tenants.py:70
msgid "Tenant name must be unique per group."
@@ -14788,11 +14817,11 @@ msgstr "Kann ändern"
msgid "Can Delete"
msgstr "Kann löschen"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Benutzeroberfläche"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14803,7 +14832,7 @@ msgstr ""
"da er möglicherweise nicht mehr zugänglich ist, sobald das Token erstellt "
"wurde."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14814,33 +14843,33 @@ msgstr ""
"möchten. Beispiel: 10.1.1.0/24, 192.168.10.16/32.2001:db 8:1: "
":/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Passwort bestätigen"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Geben Sie zur Überprüfung dasselbe Passwort wie zuvor ein."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Passwörter stimmen nicht überein! Bitte überprüfen Sie Ihre Eingabe und "
"versuchen Sie es erneut."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Zusätzliche Aktionen"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Zusätzlich zu den oben aufgeführten Maßnahmen gewährte Maßnahmen"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Objekte"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14851,11 +14880,11 @@ msgstr ""
"entsprechen. Eine Liste mehrerer Objekte führt zu einer logischen ODER-"
"Operation."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Es muss mindestens eine Aktion ausgewählt werden."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Ungültiger Filter für {model}: {error}"
@@ -15121,7 +15150,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Ungültiger Wert für ein Multiple-Choice-Feld: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Objekt wurde nicht gefunden: %(value)s"
@@ -15135,11 +15164,16 @@ msgstr ""
"„{value}\"ist kein eindeutiger Wert für dieses Feld; es wurden mehrere "
"Objekte gefunden"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "„{field_name}\"ist ein ungültiger Zugriffs-Feldname."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Der Objekttyp muss als \".“ angegeben werden."
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Ungültiger Objekttyp"
@@ -15741,19 +15775,19 @@ msgstr "DSA-Signaturen"
msgid "Group {n}"
msgstr "Gruppe {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Privates Ethernet-LAN"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Virtuelles privates Ethernet-LAN"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Privater Ethernet-Baum"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Virtueller privater Ethernet-Baum"
@@ -15785,33 +15819,31 @@ msgstr "Tunnel (Name)"
msgid "Outside IP (ID)"
msgstr "Externe IP (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "IKE-Richtlinie (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "IKE-Richtlinie (Name)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "IPSec-Richtlinie (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "IPSec-Richtlinie (Name)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (URL-Slug)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "VM-Schnittstelle (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (Name)"
@@ -16096,11 +16128,11 @@ msgstr "Ein Objekt kann jeweils nur an einem Tunnel terminiert werden."
#: netbox/vpn/models/tunnels.py:156
msgid "tunnel termination"
-msgstr "Tunnel-Abschlusspunkt"
+msgstr "Tunnelabschlusspunkt"
#: netbox/vpn/models/tunnels.py:157
msgid "tunnel terminations"
-msgstr "Tunnel-Abschlusspunkte"
+msgstr "Tunnelabschlusspunkte"
#: netbox/vpn/models/tunnels.py:174
#, python-brace-format
diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po
index d34a314a1e1..fea5de22dec 100644
--- a/netbox/translations/en/LC_MESSAGES/django.po
+++ b/netbox/translations/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-02 05:01+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -20,7 +20,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr ""
@@ -55,7 +55,7 @@ msgstr ""
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr ""
@@ -82,8 +82,8 @@ msgstr ""
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1524
-#: netbox/dcim/choices.py:1600 netbox/dcim/choices.py:1650
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -95,8 +95,8 @@ msgstr ""
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1599 netbox/dcim/choices.py:1649
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -107,8 +107,8 @@ msgid "Active"
msgstr ""
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1598
-#: netbox/dcim/choices.py:1651 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
msgid "Decommissioned"
msgstr ""
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1611
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr ""
@@ -147,7 +147,7 @@ msgstr ""
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr ""
@@ -159,7 +159,7 @@ msgstr ""
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr ""
@@ -188,7 +188,7 @@ msgstr ""
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -254,7 +254,7 @@ msgstr ""
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr ""
@@ -308,7 +308,7 @@ msgstr ""
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr ""
@@ -327,13 +327,13 @@ msgstr ""
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -342,7 +342,7 @@ msgstr ""
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -522,9 +522,9 @@ msgstr ""
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -559,9 +559,9 @@ msgstr ""
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40 netbox/templates/dcim/devicerole.html:34
@@ -573,7 +573,7 @@ msgid "Color"
msgstr ""
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -595,7 +595,7 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:703 netbox/dcim/forms/model_forms.py:709
#: netbox/dcim/forms/object_import.py:84 netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240 netbox/templates/circuits/circuit.html:30
@@ -627,14 +627,14 @@ msgid "Type"
msgstr ""
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr ""
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -650,8 +650,8 @@ msgstr ""
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -680,7 +680,7 @@ msgstr ""
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -703,8 +703,8 @@ msgstr ""
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -868,21 +868,21 @@ msgstr ""
msgid "Priority"
msgstr ""
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr ""
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr ""
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr ""
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -894,8 +894,8 @@ msgstr ""
msgid "Operational status"
msgstr ""
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -911,7 +911,7 @@ msgstr ""
msgid "Assigned tenant"
msgstr ""
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -919,7 +919,7 @@ msgstr ""
msgid "Termination"
msgstr ""
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1074,7 +1074,7 @@ msgstr ""
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr ""
@@ -1128,11 +1128,11 @@ msgid "Circuit Group"
msgstr ""
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1155,9 +1155,9 @@ msgid "Unique circuit ID"
msgstr ""
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1251,7 +1251,7 @@ msgstr ""
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1285,10 +1285,10 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54 netbox/dcim/models/devices.py:593
-#: netbox/dcim/models/devices.py:1323 netbox/dcim/models/devices.py:1388
+#: netbox/dcim/models/device_components.py:53 netbox/dcim/models/devices.py:593
+#: netbox/dcim/models/devices.py:1330 netbox/dcim/models/devices.py:1395
#: netbox/dcim/models/power.py:39 netbox/dcim/models/power.py:92
#: netbox/dcim/models/racks.py:262 netbox/dcim/models/sites.py:138
#: netbox/extras/models/configs.py:36 netbox/extras/models/configs.py:215
@@ -1371,11 +1371,11 @@ msgstr ""
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1508,8 +1508,8 @@ msgstr ""
#: netbox/circuits/tables/circuits.py:80 netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1586,8 +1586,8 @@ msgstr ""
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1601 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr ""
@@ -1671,7 +1671,7 @@ msgstr ""
#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr ""
@@ -1743,7 +1743,7 @@ msgstr ""
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1857,7 +1857,7 @@ msgstr ""
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr ""
@@ -1911,7 +1911,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr ""
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1512
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1954,7 +1954,7 @@ msgstr ""
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr ""
@@ -2013,7 +2013,7 @@ msgid "Change logging is not supported for this object type ({type})."
msgstr ""
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2050,20 +2050,20 @@ msgid "Config revision #{id}"
msgstr ""
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045 netbox/dcim/models/power.py:102
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044 netbox/dcim/models/power.py:102
#: netbox/extras/models/customfields.py:78 netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
msgid "type"
@@ -2077,8 +2077,8 @@ msgid "URL"
msgstr ""
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2188,58 +2188,58 @@ msgstr ""
msgid "managed files"
msgstr ""
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr ""
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr ""
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr ""
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr ""
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr ""
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr ""
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr ""
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr ""
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr ""
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr ""
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr ""
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2287,7 +2287,7 @@ msgid "Last updated"
msgstr ""
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73 netbox/wireless/tables/wirelesslink.py:17
@@ -2477,7 +2477,7 @@ msgid "Staging"
msgstr ""
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1525
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr ""
@@ -2541,17 +2541,17 @@ msgstr ""
msgid "Millimeters"
msgstr ""
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1547
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr ""
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr ""
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr ""
@@ -2564,8 +2564,8 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502 netbox/dcim/forms/object_import.py:176
-#: netbox/dcim/tables/devices.py:653 netbox/dcim/tables/devices.py:866
-#: netbox/dcim/tables/devices.py:951 netbox/extras/tables/tables.py:223
+#: netbox/dcim/tables/devices.py:656 netbox/dcim/tables/devices.py:869
+#: netbox/dcim/tables/devices.py:954 netbox/extras/tables/tables.py:223
#: netbox/ipam/tables/fhrp.py:59 netbox/ipam/tables/ip.py:378
#: netbox/ipam/tables/services.py:44 netbox/templates/dcim/interface.html:102
#: netbox/templates/dcim/interface.html:309
@@ -2608,7 +2608,7 @@ msgstr ""
msgid "Rear"
msgstr ""
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr ""
@@ -2617,67 +2617,79 @@ msgstr ""
msgid "Inventory"
msgstr ""
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr ""
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr ""
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr ""
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr ""
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr ""
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr ""
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr ""
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr ""
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr ""
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr ""
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr ""
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr ""
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr ""
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1213 netbox/dcim/choices.py:1215
-#: netbox/dcim/choices.py:1441 netbox/dcim/choices.py:1443
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr ""
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr ""
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr ""
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1017
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr ""
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1091
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2685,13 +2697,13 @@ msgstr ""
msgid "Wireless"
msgstr ""
-#: netbox/dcim/choices.py:1015
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr ""
-#: netbox/dcim/choices.py:1018 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2699,27 +2711,27 @@ msgstr ""
msgid "Bridge"
msgstr ""
-#: netbox/dcim/choices.py:1019
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr ""
-#: netbox/dcim/choices.py:1023
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr ""
-#: netbox/dcim/choices.py:1038
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr ""
-#: netbox/dcim/choices.py:1075
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr ""
-#: netbox/dcim/choices.py:1107
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr ""
-#: netbox/dcim/choices.py:1159 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2727,130 +2739,130 @@ msgstr ""
msgid "Serial"
msgstr ""
-#: netbox/dcim/choices.py:1174
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr ""
-#: netbox/dcim/choices.py:1194
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr ""
-#: netbox/dcim/choices.py:1244
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr ""
-#: netbox/dcim/choices.py:1245
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr ""
-#: netbox/dcim/choices.py:1246 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr ""
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr ""
-#: netbox/dcim/choices.py:1258 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr ""
-#: netbox/dcim/choices.py:1259
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr ""
-#: netbox/dcim/choices.py:1288
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr ""
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr ""
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr ""
-#: netbox/dcim/choices.py:1301
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr ""
-#: netbox/dcim/choices.py:1302
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr ""
-#: netbox/dcim/choices.py:1372 netbox/dcim/choices.py:1482
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr ""
-#: netbox/dcim/choices.py:1395
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr ""
-#: netbox/dcim/choices.py:1428 netbox/dcim/choices.py:1511
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr ""
-#: netbox/dcim/choices.py:1498
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr ""
-#: netbox/dcim/choices.py:1523 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr ""
-#: netbox/dcim/choices.py:1542 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr ""
-#: netbox/dcim/choices.py:1543 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr ""
-#: netbox/dcim/choices.py:1544
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr ""
-#: netbox/dcim/choices.py:1545 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr ""
-#: netbox/dcim/choices.py:1546 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr ""
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr ""
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr ""
-#: netbox/dcim/choices.py:1564 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr ""
-#: netbox/dcim/choices.py:1565
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr ""
-#: netbox/dcim/choices.py:1612
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr ""
-#: netbox/dcim/choices.py:1633
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr ""
-#: netbox/dcim/choices.py:1634
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr ""
@@ -3102,7 +3114,7 @@ msgstr ""
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3146,7 +3158,7 @@ msgid "Device model"
msgstr ""
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr ""
@@ -3160,8 +3172,8 @@ msgstr ""
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr ""
@@ -3170,8 +3182,8 @@ msgid "Rack (name)"
msgstr ""
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr ""
@@ -3221,8 +3233,8 @@ msgstr ""
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3258,7 +3270,7 @@ msgid "VRF (RD)"
msgstr ""
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr ""
@@ -3313,7 +3325,7 @@ msgstr ""
msgid "Wireless LAN"
msgstr ""
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr ""
@@ -3341,12 +3353,12 @@ msgstr ""
msgid "Master (name)"
msgstr ""
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr ""
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr ""
@@ -3373,7 +3385,7 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3420,8 +3432,8 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515 netbox/dcim/forms/object_import.py:187
#: netbox/dcim/tables/devices.py:96 netbox/dcim/tables/devices.py:172
-#: netbox/dcim/tables/devices.py:937 netbox/dcim/tables/devicetypes.py:81
-#: netbox/dcim/tables/devicetypes.py:309 netbox/dcim/tables/modules.py:20
+#: netbox/dcim/tables/devices.py:940 netbox/dcim/tables/devicetypes.py:80
+#: netbox/dcim/tables/devicetypes.py:308 netbox/dcim/tables/modules.py:20
#: netbox/dcim/tables/modules.py:60 netbox/dcim/tables/racks.py:58
#: netbox/dcim/tables/racks.py:132 netbox/templates/dcim/devicetype.html:14
#: netbox/templates/dcim/inventoryitem.html:44
@@ -3484,7 +3496,7 @@ msgstr ""
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3544,8 +3556,8 @@ msgstr ""
#: netbox/dcim/forms/filtersets.py:777 netbox/dcim/forms/filtersets.py:1534
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510 netbox/dcim/forms/object_import.py:181
-#: netbox/dcim/tables/devices.py:169 netbox/dcim/tables/devices.py:806
-#: netbox/dcim/tables/devices.py:934 netbox/dcim/tables/devicetypes.py:305
+#: netbox/dcim/tables/devices.py:169 netbox/dcim/tables/devices.py:809
+#: netbox/dcim/tables/devices.py:937 netbox/dcim/tables/devicetypes.py:304
#: netbox/dcim/tables/racks.py:129 netbox/extras/filtersets.py:552
#: netbox/ipam/forms/bulk_edit.py:260 netbox/ipam/forms/bulk_edit.py:310
#: netbox/ipam/forms/bulk_edit.py:358 netbox/ipam/forms/bulk_edit.py:556
@@ -3652,12 +3664,12 @@ msgstr ""
msgid "U height"
msgstr ""
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr ""
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52 netbox/templates/dcim/module.html:61
msgid "Device Type"
msgstr ""
@@ -3744,10 +3756,10 @@ msgstr ""
#: netbox/dcim/tables/connections.py:60 netbox/dcim/tables/devices.py:285
#: netbox/dcim/tables/devices.py:371 netbox/dcim/tables/devices.py:412
#: netbox/dcim/tables/devices.py:454 netbox/dcim/tables/devices.py:505
-#: netbox/dcim/tables/devices.py:594 netbox/dcim/tables/devices.py:694
-#: netbox/dcim/tables/devices.py:751 netbox/dcim/tables/devices.py:798
-#: netbox/dcim/tables/devices.py:858 netbox/dcim/tables/devices.py:927
-#: netbox/dcim/tables/devices.py:1054 netbox/dcim/tables/modules.py:52
+#: netbox/dcim/tables/devices.py:597 netbox/dcim/tables/devices.py:697
+#: netbox/dcim/tables/devices.py:754 netbox/dcim/tables/devices.py:801
+#: netbox/dcim/tables/devices.py:861 netbox/dcim/tables/devices.py:930
+#: netbox/dcim/tables/devices.py:1057 netbox/dcim/tables/modules.py:52
#: netbox/extras/forms/filtersets.py:321 netbox/ipam/forms/bulk_import.py:304
#: netbox/ipam/forms/bulk_import.py:481 netbox/ipam/forms/filtersets.py:551
#: netbox/ipam/forms/model_forms.py:319 netbox/ipam/forms/model_forms.py:679
@@ -3870,8 +3882,8 @@ msgid "Maximum draw"
msgstr ""
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr ""
@@ -3880,8 +3892,8 @@ msgid "Allocated draw"
msgstr ""
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr ""
@@ -3902,16 +3914,16 @@ msgstr ""
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr ""
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr ""
@@ -3934,7 +3946,7 @@ msgstr ""
msgid "Module"
msgstr ""
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr ""
@@ -3946,7 +3958,7 @@ msgstr ""
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -3993,7 +4005,7 @@ msgid "Wireless LAN group"
msgstr ""
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4374,7 +4386,7 @@ msgstr ""
msgid "Physical medium classification"
msgstr ""
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr ""
@@ -4463,7 +4475,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr ""
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4515,7 +4527,7 @@ msgstr ""
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr ""
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4671,7 +4683,7 @@ msgid "Mgmt only"
msgstr ""
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr ""
@@ -4703,7 +4715,7 @@ msgstr ""
msgid "Cable"
msgstr ""
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr ""
@@ -4848,7 +4860,7 @@ msgid "Front Port"
msgstr ""
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -4970,7 +4982,7 @@ msgid ""
"selected number of rear port positions ({rearport_count})."
msgstr ""
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -4993,7 +5005,7 @@ msgstr ""
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr ""
@@ -5091,7 +5103,7 @@ msgid ""
msgstr ""
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr ""
@@ -5111,607 +5123,607 @@ msgid ""
"module type."
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
"positions"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
"allow device bays."
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr ""
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr ""
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr ""
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr ""
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr ""
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr ""
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr ""
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr ""
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr ""
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr ""
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr ""
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr ""
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr ""
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr ""
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr ""
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr ""
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr ""
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr ""
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr ""
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr ""
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr ""
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr ""
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr ""
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr ""
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr ""
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr ""
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr ""
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr ""
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr ""
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr ""
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr ""
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr ""
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr ""
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr ""
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr ""
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr ""
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr ""
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr ""
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr ""
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr ""
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr ""
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr ""
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
"({device})"
msgstr ""
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
"not part of virtual chassis {virtual_chassis}."
msgstr ""
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
"({device})."
msgstr ""
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
"not part of virtual chassis {virtual_chassis}."
msgstr ""
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr ""
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr ""
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr ""
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of "
"virtual chassis {virtual_chassis}."
msgstr ""
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr ""
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr ""
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr ""
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr ""
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr ""
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr ""
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr ""
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr ""
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
"interface's parent device, or it must be global."
msgstr ""
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr ""
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr ""
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr ""
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr ""
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only "
"{positions} positions."
msgstr ""
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr ""
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr ""
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr ""
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports "
"({frontport_count})"
msgstr ""
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr ""
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr ""
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr ""
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr ""
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr ""
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr ""
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr ""
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
msgstr ""
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr ""
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr ""
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr ""
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr ""
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr ""
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr ""
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr ""
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr ""
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr ""
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr ""
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr ""
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr ""
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr ""
@@ -5851,7 +5863,7 @@ msgstr ""
msgid "Chassis serial number, assigned by the manufacturer"
msgstr ""
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr ""
@@ -5863,12 +5875,12 @@ msgstr ""
msgid "rack face"
msgstr ""
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr ""
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr ""
@@ -6004,69 +6016,76 @@ msgstr ""
msgid "A device assigned to a virtual chassis must have its position defined."
msgstr ""
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr ""
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr ""
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
"device ({device})."
msgstr ""
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr ""
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr ""
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid "The selected master ({master}) is not assigned to this virtual chassis."
msgstr ""
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
"form a cross-chassis LAG interfaces."
msgstr ""
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr ""
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr ""
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr ""
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr ""
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr ""
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr ""
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
@@ -6481,7 +6500,7 @@ msgstr ""
msgid "Site Group"
msgstr ""
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6490,12 +6509,12 @@ msgstr ""
msgid "IP Address"
msgstr ""
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr ""
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr ""
@@ -6533,8 +6552,8 @@ msgstr ""
msgid "Power outlets"
msgstr ""
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6572,8 +6591,8 @@ msgstr ""
msgid "Module Bay"
msgstr ""
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6631,75 +6650,75 @@ msgstr ""
msgid "Tunnel"
msgstr ""
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr ""
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr ""
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr ""
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr ""
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr ""
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr ""
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr ""
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6710,7 +6729,7 @@ msgstr ""
msgid "Console Ports"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6721,7 +6740,7 @@ msgstr ""
msgid "Console Server Ports"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6732,7 +6751,7 @@ msgstr ""
msgid "Power Ports"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6743,7 +6762,7 @@ msgstr ""
msgid "Power Outlets"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6753,7 +6772,7 @@ msgstr ""
msgid "Front Ports"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6764,7 +6783,7 @@ msgstr ""
msgid "Rear Ports"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6772,7 +6791,7 @@ msgstr ""
msgid "Device Bays"
msgstr ""
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7210,80 +7229,80 @@ msgstr ""
msgid "Unregistered widget class: {name}"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr ""
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr ""
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
msgstr ""
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr ""
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr ""
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:349 netbox/templates/account/base.html:10
+#: netbox/extras/dashboard/widgets.py:348 netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr ""
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr ""
@@ -7326,8 +7345,8 @@ msgstr ""
msgid "Tenant group"
msgstr ""
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr ""
@@ -7460,7 +7479,7 @@ msgstr ""
#: netbox/extras/forms/model_forms.py:237
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
-#: netbox/extras/forms/model_forms.py:489 netbox/users/forms/model_forms.py:277
+#: netbox/extras/forms/model_forms.py:489 netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr ""
@@ -7554,8 +7573,8 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr ""
@@ -7567,8 +7586,8 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr ""
@@ -8788,64 +8807,64 @@ msgstr ""
msgid "Method"
msgstr ""
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr ""
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr ""
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr ""
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr ""
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr ""
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr ""
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr ""
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr ""
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr ""
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr ""
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr ""
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr ""
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr ""
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr ""
@@ -8913,19 +8932,19 @@ msgstr ""
msgid "Invalid IP address format: {address}"
msgstr ""
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr ""
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr ""
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr ""
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr ""
@@ -8995,11 +9014,11 @@ msgstr ""
msgid "Mask length"
msgstr ""
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr ""
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr ""
@@ -9019,23 +9038,23 @@ msgid "Parent prefix"
msgstr ""
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr ""
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr ""
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr ""
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr ""
@@ -9063,19 +9082,27 @@ msgstr ""
msgid "NAT inside IP address (ID)"
msgstr ""
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr ""
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr ""
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr ""
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr ""
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr ""
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr ""
@@ -9286,10 +9313,6 @@ msgstr ""
msgid "Parent VM of assigned interface (if any)"
msgstr ""
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr ""
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr ""
@@ -10813,9 +10836,9 @@ msgstr ""
msgid "API Tokens"
msgstr ""
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr ""
@@ -10959,63 +10982,63 @@ msgstr ""
msgid "Cannot delete stores from registry"
msgstr ""
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr ""
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr ""
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr ""
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr ""
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr ""
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr ""
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr ""
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr ""
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr ""
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr ""
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr ""
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr ""
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr ""
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr ""
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr ""
@@ -12670,7 +12693,7 @@ msgstr ""
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr ""
@@ -13664,7 +13687,7 @@ msgid ""
"Click here to attempt loading NetBox again."
msgstr ""
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137 netbox/tenancy/forms/filtersets.py:102
#: netbox/tenancy/forms/forms.py:56 netbox/tenancy/forms/model_forms.py:106
#: netbox/tenancy/forms/model_forms.py:130 netbox/tenancy/tables/contacts.py:98
@@ -13691,7 +13714,7 @@ msgid "Add Contact Group"
msgstr ""
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr ""
@@ -13729,7 +13752,7 @@ msgid "View"
msgstr ""
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr ""
@@ -13995,57 +14018,57 @@ msgstr ""
msgid "Distance"
msgstr ""
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr ""
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr ""
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr ""
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr ""
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr ""
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr ""
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr ""
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr ""
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr ""
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr ""
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr ""
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr ""
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr ""
@@ -14210,60 +14233,60 @@ msgstr ""
msgid "Can Delete"
msgstr ""
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr ""
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
"accessible once the token has been created."
msgstr ""
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for "
"no restrictions. Example: 10.1.1.0/24,192.168.10.16/32,2001:"
"db8:1::/64"
msgstr ""
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr ""
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr ""
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr ""
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr ""
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr ""
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
"objects will result in a logical OR operation."
msgstr ""
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr ""
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr ""
@@ -15061,19 +15084,19 @@ msgstr ""
msgid "Group {n}"
msgstr ""
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr ""
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr ""
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr ""
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr ""
@@ -15105,33 +15128,31 @@ msgstr ""
msgid "Outside IP (ID)"
msgstr ""
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr ""
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr ""
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr ""
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr ""
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr ""
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr ""
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr ""
diff --git a/netbox/translations/es/LC_MESSAGES/django.mo b/netbox/translations/es/LC_MESSAGES/django.mo
index 78be56eb33a..86fb45730f6 100644
Binary files a/netbox/translations/es/LC_MESSAGES/django.mo and b/netbox/translations/es/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/es/LC_MESSAGES/django.po b/netbox/translations/es/LC_MESSAGES/django.po
index 92b1d83c518..bacc34b108a 100644
--- a/netbox/translations/es/LC_MESSAGES/django.po
+++ b/netbox/translations/es/LC_MESSAGES/django.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Spanish (https://app.transifex.com/netbox-community/teams/178115/es/)\n"
@@ -23,7 +23,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Llave"
@@ -59,7 +59,7 @@ msgstr "Utilizado por última vez"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "IPs permitidas"
@@ -88,8 +88,8 @@ msgstr "La contraseña se ha cambiado correctamente."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -101,8 +101,8 @@ msgstr "Aprovisionamiento"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -113,8 +113,8 @@ msgid "Active"
msgstr "Activo"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Desconectado"
@@ -127,7 +127,7 @@ msgstr "Desaprovisionamiento"
msgid "Decommissioned"
msgstr "Desmantelado"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Primaria"
@@ -153,7 +153,7 @@ msgstr "Inactivo"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Región (ID)"
@@ -165,7 +165,7 @@ msgstr "Región (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Región (slug)"
@@ -194,7 +194,7 @@ msgstr "Grupo de sitios (slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -260,7 +260,7 @@ msgstr "Sitio"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Sitio (babosa)"
@@ -314,7 +314,7 @@ msgstr "Tipo de circuito (slug)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Sitio (ID)"
@@ -333,13 +333,13 @@ msgstr "Terminación A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -348,7 +348,7 @@ msgstr "Búsqueda"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -532,9 +532,9 @@ msgstr "Descripción"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -571,9 +571,9 @@ msgstr "ID de servicio"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -586,7 +586,7 @@ msgid "Color"
msgstr "Color"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -609,7 +609,7 @@ msgstr "Color"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -643,14 +643,14 @@ msgid "Type"
msgstr "Tipo"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Cuenta de proveedor"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -666,8 +666,8 @@ msgstr "Cuenta de proveedor"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -696,7 +696,7 @@ msgstr "Cuenta de proveedor"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -720,8 +720,8 @@ msgstr "Estado"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -887,21 +887,21 @@ msgstr "Detalles de terminación"
msgid "Priority"
msgstr "Prioridad"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Proveedor asignado"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Cuenta de proveedor asignada"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Tipo de circuito"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -913,8 +913,8 @@ msgstr "Tipo de circuito"
msgid "Operational status"
msgstr "Estado operativo"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -930,7 +930,7 @@ msgstr "Estado operativo"
msgid "Assigned tenant"
msgstr "Inquilino asignado"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -938,7 +938,7 @@ msgstr "Inquilino asignado"
msgid "Termination"
msgstr "Terminación"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1094,7 +1094,7 @@ msgstr "Lado del término"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Asignación"
@@ -1149,11 +1149,11 @@ msgid "Circuit Group"
msgstr "Grupo de circuitos"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1176,9 +1176,9 @@ msgid "Unique circuit ID"
msgstr "ID de circuito único"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1272,7 +1272,7 @@ msgstr "ID del panel de conexiones y números de puerto"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1311,11 +1311,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1399,11 +1399,11 @@ msgstr "redes de proveedores"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1541,8 +1541,8 @@ msgstr "Tasa de compromiso"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1619,8 +1619,8 @@ msgstr "Completado"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Falló"
@@ -1686,42 +1686,42 @@ msgstr "Detenido"
msgid "Cancelled"
msgstr "Cancelado"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Local"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Nombre de usuario"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Solo se usa para clonar con HTTP (S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Contraseña"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Rama"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Fallo al obtener datos remotos ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "ID de clave de acceso de AWS"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Clave de acceso secreta de AWS"
@@ -1776,7 +1776,7 @@ msgstr "Nombre de usuario"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1890,7 +1890,7 @@ msgstr "Completado antes"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "usuario"
@@ -1946,7 +1946,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Elevaciones de estanterías"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1989,7 +1989,7 @@ msgstr "Preferencias de usuario"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Misceláneo"
@@ -2049,7 +2049,7 @@ msgstr ""
"El registro de cambios no es compatible con este tipo de objeto ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2086,20 +2086,20 @@ msgid "Config revision #{id}"
msgstr "Revisión de configuración #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2114,8 +2114,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2230,60 +2230,60 @@ msgstr "archivo gestionado"
msgid "managed files"
msgstr "archivos gestionados"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "programado"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "intervalo"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Intervalo de recurrencia (en minutos)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "iniciado"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "completado"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "dato"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "error"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "ID de trabajo"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "trabajo"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "trabajos"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "No se pueden asignar trabajos a este tipo de objeto ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
"Estado no válido para la terminación del trabajo. Las opciones son: "
"{choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2334,7 +2334,7 @@ msgid "Last updated"
msgstr "Última actualización"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2526,7 +2526,7 @@ msgid "Staging"
msgstr "Puesta en escena"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Desmantelamiento"
@@ -2590,17 +2590,17 @@ msgstr "Obsoleto"
msgid "Millimeters"
msgstr "Milímetros"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Pulgadas"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "De adelante hacia atrás"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "De atrás hacia adelante"
@@ -2613,8 +2613,8 @@ msgstr "De atrás hacia adelante"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2658,7 +2658,7 @@ msgstr "Delantera"
msgid "Rear"
msgstr "Trasera"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Escenificado"
@@ -2667,67 +2667,79 @@ msgstr "Escenificado"
msgid "Inventory"
msgstr "Inventario"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "De izquierda a derecha"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "De derecha a izquierda"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "De lado a atrás"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "De atrás hacia los lados"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "De abajo hacia arriba"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "De arriba a abajo"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Pasivo"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Mezclado"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (sin bloqueo)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (Bloqueo)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Estilo californiano"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "Internacional/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Proprietario"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Otros"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/Internacional"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Físico"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Virtual"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2735,13 +2747,13 @@ msgstr "Virtual"
msgid "Wireless"
msgstr "inalámbrico"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Interfaces virtuales"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2749,27 +2761,27 @@ msgstr "Interfaces virtuales"
msgid "Bridge"
msgstr "puente"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Grupo de agregación de enlaces (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (fijo)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modular)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (placa base)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Celular"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2777,130 +2789,130 @@ msgstr "Celular"
msgid "Serial"
msgstr "serie"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Coaxial"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Apilamiento"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Mitad"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Lleno"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Auto"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Acceso"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Etiquetado"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Etiquetado (Todos)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "Estándar IEEE"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Pasivo 24 V (2 pares)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Pasivo de 24 V (4 pares)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Pasivo 48 V (2 pares)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Pasivo de 48 V (4 pares)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Cobre"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Fibra óptica"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Fibra"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Conectado"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Kilómetros"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Medidores"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Centímetros"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Millas"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Pies"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Kilogramos"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Gramos"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Libras"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Onzas"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Redundante"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Monofásico"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Trifásico"
@@ -3152,7 +3164,7 @@ msgstr "Es de profundidad total"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3196,7 +3208,7 @@ msgid "Device model"
msgstr "Modelo de dispositivo"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Interfaz (ID)"
@@ -3210,8 +3222,8 @@ msgstr "Bahía de módulos (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Dispositivo (ID)"
@@ -3220,8 +3232,8 @@ msgid "Rack (name)"
msgstr "Rack (nombre)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Dispositivo (nombre)"
@@ -3271,8 +3283,8 @@ msgstr "VID asignado"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3308,7 +3320,7 @@ msgid "VRF (RD)"
msgstr "VRF (ROJO)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3364,7 +3376,7 @@ msgstr "Contexto de dispositivo virtual (identificador)"
msgid "Wireless LAN"
msgstr "LAN inalámbrica"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Enlace inalámbrico"
@@ -3392,12 +3404,12 @@ msgstr "Maestro (ID)"
msgid "Master (name)"
msgstr "Maestro (nombre)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Inquilino (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Inquilino (babosa)"
@@ -3424,7 +3436,7 @@ msgstr "Etiquetas"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3473,8 +3485,8 @@ msgstr "Zona horaria"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3538,7 +3550,7 @@ msgstr "Profundidad de montaje"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3599,8 +3611,8 @@ msgstr "Numeración"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3708,12 +3720,12 @@ msgstr "Número de pieza"
msgid "U height"
msgstr "Altura en U"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Excluir de la utilización"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3802,10 +3814,10 @@ msgstr "Plataforma"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3932,8 +3944,8 @@ msgid "Maximum draw"
msgstr "Sorteo máximo"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Consumo máximo de energía (vatios)"
@@ -3942,8 +3954,8 @@ msgid "Allocated draw"
msgstr "Sorteo asignado"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Consumo de energía asignado (vatios)"
@@ -3964,16 +3976,16 @@ msgstr "Solo administración"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "Modo PoE"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "Tipo de PoE"
@@ -3997,7 +4009,7 @@ msgstr "Función inalámbrica"
msgid "Module"
msgstr "Módulo"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "DESFASE"
@@ -4009,7 +4021,7 @@ msgstr "Contextos de dispositivos virtuales"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4056,7 +4068,7 @@ msgid "Wireless LAN group"
msgstr "Grupo LAN inalámbrico"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4445,7 +4457,7 @@ msgstr "Puerto trasero correspondiente"
msgid "Physical medium classification"
msgstr "Clasificación de medios físicos"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Dispositivo instalado"
@@ -4534,7 +4546,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} no se encontró la terminación lateral: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4586,7 +4598,7 @@ msgstr "IPv6 principal"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "Dirección IPv6 con longitud de prefijo, por ejemplo, 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4750,7 +4762,7 @@ msgid "Mgmt only"
msgstr "Solo administración"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4783,7 +4795,7 @@ msgstr "Potencia de transmisión (dBm)"
msgid "Cable"
msgstr "Cable"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Descubierto"
@@ -4935,7 +4947,7 @@ msgid "Front Port"
msgstr "Puerto frontal"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5074,7 +5086,7 @@ msgstr ""
"coincidir con el número seleccionado de posiciones de los puertos traseros "
"({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5099,7 +5111,7 @@ msgstr "Se debe especificar un puesto para el primer miembro del VC."
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "etiqueta"
@@ -5205,7 +5217,7 @@ msgstr ""
"módulo cuando se conecta a un tipo de módulo."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Etiqueta física"
@@ -5231,138 +5243,138 @@ msgstr ""
"Una plantilla de componente debe estar asociada a un tipo de dispositivo o a"
" un tipo de módulo."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "plantilla de puerto de consola"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "plantillas de puertos de consola"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "plantilla de puerto de servidor de consola"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "plantillas de puertos de servidor de consola"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "sorteo máximo"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "sorteo asignado"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "plantilla de puerto de alimentación"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "plantillas de puertos de alimentación"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"El sorteo asignado no puede superar el sorteo máximo ({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "pierna de alimentación"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Fase (para alimentaciones trifásicas)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "plantilla de toma de corriente"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "plantillas de tomas de corriente"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Puerto de alimentación principal ({power_port}) debe pertenecer al mismo "
"tipo de dispositivo"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Puerto de alimentación principal ({power_port}) debe pertenecer al mismo "
"tipo de módulo"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "solo administración"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "interfaz de puente"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "función inalámbrica"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "plantilla de interfaz"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "plantillas de interfaz"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Una interfaz no se puede conectar a sí misma."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr ""
"Interfaz de puente ({bridge}) debe pertenecer al mismo tipo de dispositivo"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Interfaz de puente ({bridge}) debe pertenecer al mismo tipo de módulo"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "posición del puerto trasero"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "plantilla de puerto frontal"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "plantillas de puertos frontales"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Puerto trasero ({name}) debe pertenecer al mismo tipo de dispositivo"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5371,48 +5383,48 @@ msgstr ""
"Posición del puerto trasero no válida ({position}); puerto trasero {name} "
"solo tiene {count} posiciones"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "posiciones"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "plantilla de puerto trasero"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "plantillas de puertos traseros"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "posición"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Identificador al que se debe hacer referencia al cambiar el nombre de los "
"componentes instalados"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "plantilla de bahía de módulos"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "plantillas de compartimentos de módulos"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "plantilla de compartimento de dispositivos"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "plantillas de compartimentos de dispositivos"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5422,207 +5434,207 @@ msgstr ""
"configurarse como «principal» para permitir compartimentos para "
"dispositivos."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "ID de pieza"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Identificador de pieza asignado por el fabricante"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "plantilla de artículos de inventario"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "plantillas de artículos de inventario"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Los componentes no se pueden mover a un dispositivo diferente."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "extremo del cable"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "marcar conectado"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Tratar como si hubiera un cable conectado"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "Debe especificar el extremo del cable (A o B) al conectar un cable."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "El extremo del cable no se debe colocar sin cable."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "No se puede marcar como conectado con un cable conectado."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} los modelos deben declarar una propiedad parent_object"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Tipo de puerto físico"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "velocidad"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Velocidad de puerto en bits por segundo"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "puerto de consola"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "puertos de consola"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "puerto de servidor de consola"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "puertos de servidor de consola"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "puerto de alimentación"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "puertos de alimentación"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "toma de corriente"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "tomas de corriente"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Puerto de alimentación principal ({power_port}) debe pertenecer al mismo "
"dispositivo"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "modo"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "Estrategia de etiquetado IEEE 802.1Q"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "interfaz principal"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "LAG principal"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Esta interfaz se usa solo para la administración fuera de banda"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "velocidad (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "dúplex"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "Nombre mundial de 64 bits"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "canal inalámbrico"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "frecuencia de canal (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Se rellena por el canal seleccionado (si está configurado)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "potencia de transmisión (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "LAN inalámbricas"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "VLAN sin etiquetar"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "VLAN etiquetadas"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "interfaz"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "interfaz"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} las interfaces no pueden tener un cable conectado."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type} las interfaces no se pueden marcar como conectadas."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Una interfaz no puede ser su propia interfaz principal."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr "Solo se pueden asignar interfaces virtuales a una interfaz principal."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5631,7 +5643,7 @@ msgstr ""
"La interfaz principal seleccionada ({interface}) pertenece a un dispositivo "
"diferente ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5640,7 +5652,7 @@ msgstr ""
"La interfaz principal seleccionada ({interface}) pertenece a {device}, que "
"no forma parte del chasis virtual {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5649,7 +5661,7 @@ msgstr ""
"La interfaz de puente seleccionada ({bridge}) pertenece a un dispositivo "
"diferente ({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5658,15 +5670,15 @@ msgstr ""
"La interfaz de puente seleccionada ({interface}) pertenece a {device}, que "
"no forma parte del chasis virtual {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Las interfaces virtuales no pueden tener una interfaz LAG principal."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Una interfaz LAG no puede ser su propia interfaz principal."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
@@ -5674,7 +5686,7 @@ msgstr ""
"La interfaz LAG seleccionada ({lag}) pertenece a un dispositivo diferente "
"({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5683,51 +5695,51 @@ msgstr ""
"La interfaz LAG seleccionada ({lag}) pertenece a {device}, que no forma "
"parte del chasis virtual {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Las interfaces virtuales no pueden tener un modo PoE."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Las interfaces virtuales no pueden tener un tipo PoE."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Debe especificar el modo PoE al designar un tipo de PoE."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr ""
"La función inalámbrica solo se puede configurar en las interfaces "
"inalámbricas."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "El canal solo se puede configurar en las interfaces inalámbricas."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"La frecuencia del canal solo se puede configurar en las interfaces "
"inalámbricas."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr ""
"No se puede especificar la frecuencia personalizada con el canal "
"seleccionado."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr ""
"El ancho del canal solo se puede establecer en las interfaces inalámbricas."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr ""
"No se puede especificar un ancho personalizado con el canal seleccionado."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5736,24 +5748,24 @@ msgstr ""
"La VLAN sin etiquetar ({untagged_vlan}) debe pertenecer al mismo sitio que "
"el dispositivo principal de la interfaz o debe ser global."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Posición mapeada en el puerto trasero correspondiente"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "puerto frontal"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "puertos frontales"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Puerto trasero ({rear_port}) debe pertenecer al mismo dispositivo"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5762,19 +5774,19 @@ msgstr ""
"Posición del puerto trasero no válida ({rear_port_position}): puerto trasero"
" {name} solo tiene {positions} posiciones."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Número de puertos frontales que se pueden mapear"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "puerto trasero"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "puertos traseros"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5783,40 +5795,40 @@ msgstr ""
"El número de posiciones no puede ser inferior al número de puertos frontales"
" mapeados ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "compartimiento de módulos"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "compartimentos de módulos"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr ""
"Una bahía de módulos no puede pertenecer a un módulo instalado en ella."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "compartimiento de dispositivos"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "compartimentos para dispositivos"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr ""
"Este tipo de dispositivo ({device_type}) no admite compartimentos para "
"dispositivos."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "No se puede instalar un dispositivo en sí mismo."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5824,61 +5836,61 @@ msgstr ""
"No se puede instalar el dispositivo especificado; el dispositivo ya está "
"instalado en {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "rol de artículo de inventario"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "roles de artículos de inventario"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "número de serie"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "etiqueta de activo"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Una etiqueta única que se utiliza para identificar este artículo"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "descubierto"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Este artículo se descubrió automáticamente"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "artículo de inventario"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "artículos de inventario"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "No se puede asignar a sí mismo como padre."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr ""
"El artículo del inventario principal no pertenece al mismo dispositivo."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "No se puede mover un artículo del inventario con hijos a cargo"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr ""
"No se puede asignar un artículo de inventario a un componente de otro "
@@ -6035,7 +6047,7 @@ msgstr "La función que cumple este dispositivo"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Número de serie del chasis, asignado por el fabricante"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Una etiqueta única que se utiliza para identificar este dispositivo"
@@ -6047,12 +6059,12 @@ msgstr "posición (U)"
msgid "rack face"
msgstr "cara del estante"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "IPv4 principal"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "IPv6 principal"
@@ -6206,15 +6218,24 @@ msgid "A device assigned to a virtual chassis must have its position defined."
msgstr ""
"Un dispositivo asignado a un chasis virtual debe tener su posición definida."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"El dispositivo no se puede extraer del chasis virtual {virtual_chassis} "
+"porque actualmente está designado como su maestro."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "módulo"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "módulos"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6223,22 +6244,22 @@ msgstr ""
"El módulo debe instalarse en un compartimiento de módulos que pertenezca al "
"dispositivo asignado ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "dominio"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "chasis virtual"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr ""
"El maestro seleccionado ({master}) no está asignado a este chasis virtual."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6247,34 +6268,34 @@ msgstr ""
"No se puede eliminar el chasis virtual {self}. Hay interfaces miembros que "
"forman interfaces LAG entre chasis."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "identificador"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Identificador numérico exclusivo del dispositivo principal"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "comentarios"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "contexto de dispositivo virtual"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "contextos de dispositivos virtuales"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} no es un IPv{family} dirección."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"La dirección IP principal debe pertenecer a una interfaz del dispositivo "
@@ -6707,7 +6728,7 @@ msgstr "Plantilla de configuración"
msgid "Site Group"
msgstr "Grupo de sitios"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6716,12 +6737,12 @@ msgstr "Grupo de sitios"
msgid "IP Address"
msgstr "Dirección IP"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "Dirección IPv4"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "Dirección IPv6"
@@ -6759,8 +6780,8 @@ msgstr "Puertos de alimentación"
msgid "Power outlets"
msgstr "tomas de corriente"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6798,8 +6819,8 @@ msgstr "Artículos de inventario"
msgid "Module Bay"
msgstr "Bahía de módulos"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6857,75 +6878,75 @@ msgstr "Grupos FHRP"
msgid "Tunnel"
msgstr "Túnel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Solo administración"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Módulo instalado"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Serie del módulo"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Etiqueta de activo del módulo"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Estado del módulo"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Componente"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Artículos"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Tipos de dispositivos"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Tipos de módulos"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Plataformas"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Plataforma predeterminada"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Profundidad total"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Altura en U"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Instancias"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6936,7 +6957,7 @@ msgstr "Instancias"
msgid "Console Ports"
msgstr "Puertos de consola"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6947,7 +6968,7 @@ msgstr "Puertos de consola"
msgid "Console Server Ports"
msgstr "Puertos de servidor de consola"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6958,7 +6979,7 @@ msgstr "Puertos de servidor de consola"
msgid "Power Ports"
msgstr "Puertos de alimentación"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6969,7 +6990,7 @@ msgstr "Puertos de alimentación"
msgid "Power Outlets"
msgstr "Tomas de corriente"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6979,7 +7000,7 @@ msgstr "Tomas de corriente"
msgid "Front Ports"
msgstr "Puertos frontales"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6990,7 +7011,7 @@ msgstr "Puertos frontales"
msgid "Rear Ports"
msgstr "Puertos traseros"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6998,7 +7019,7 @@ msgstr "Puertos traseros"
msgid "Device Bays"
msgstr "Bahías de dispositivos"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7440,24 +7461,24 @@ msgstr "Tipo de widget"
msgid "Unregistered widget class: {name}"
msgstr "Clase de widget no registrada: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} debe definir un método render ()."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Nota"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr "Muestra contenido personalizado arbitrario. Markdown es compatible."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Recuentos de objetos"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7465,61 +7486,61 @@ msgstr ""
"Muestre un conjunto de modelos de NetBox y el número de objetos creados para"
" cada tipo."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Filtros para aplicar al contar el número de objetos"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
"Formato no válido. Los filtros de objetos se deben pasar como un "
"diccionario."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Lista de objetos"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Muestra una lista arbitraria de objetos."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "El número predeterminado de objetos que se van a mostrar"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
"Formato no válido. Los parámetros de URL se deben pasar como un diccionario."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "Fuente RSS"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Inserte una fuente RSS desde un sitio web externo."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "URL del feed"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "El número máximo de objetos que se van a mostrar"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Cuánto tiempo se debe almacenar el contenido en caché (en segundos)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Marcadores"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Muestra tus marcadores personales"
@@ -7562,8 +7583,8 @@ msgstr "Tipo de clúster (babosa)"
msgid "Tenant group"
msgstr "Grupo de inquilinos"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Grupo de inquilinos (slug)"
@@ -7700,7 +7721,7 @@ msgstr "Está activo"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Tipos de objetos"
@@ -7802,8 +7823,8 @@ msgstr "La clasificación de entrada"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "usuarios"
@@ -7815,8 +7836,8 @@ msgstr "Nombres de usuario separados por comas y entre comillas dobles"
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Grupos"
@@ -8550,10 +8571,19 @@ msgstr "conjunto de opciones de campo personalizadas"
msgid "custom field choice sets"
msgstr "conjuntos de opciones de campo personalizadas"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Debe definir opciones básicas o adicionales."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"No se puede eliminar la opción {choice} como los hay {model} objetos que "
+"hacen referencia a él."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "diseño"
@@ -9132,64 +9162,64 @@ msgstr "Mensaje"
msgid "Method"
msgstr "Método"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Asegúrese de que este valor sea igual a %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Asegúrese de que este valor no sea igual %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Este campo debe estar vacío."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Este campo no debe estar vacío."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Las reglas de validación se deben pasar como un diccionario"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Fallo en la validación personalizada para {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Atributo no válido»{name}«para solicitar"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Atributo no válido»{name}«para {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Tu panel de control se ha restablecido."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Widget añadido: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Widget actualizado: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Widget eliminado: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Error al eliminar el widget: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr ""
"No se puede ejecutar el script: el proceso de trabajo de RQ no se está "
@@ -9261,19 +9291,19 @@ msgstr "Texto plano"
msgid "Invalid IP address format: {address}"
msgstr "Formato de dirección IP no válido: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Objetivo de importación"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Destino de importación (nombre)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Objetivo de exportación"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Destino de exportación (nombre)"
@@ -9343,11 +9373,11 @@ msgstr "Prefijos que contienen este prefijo o IP"
msgid "Mask length"
msgstr "Longitud de la máscara"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "Número de VLAN (1-4094)"
@@ -9367,23 +9397,23 @@ msgid "Parent prefix"
msgstr "Prefijo principal"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Máquina virtual (nombre)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Máquina virtual (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Interfaz (nombre)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "Interfaz VM (nombre)"
@@ -9411,19 +9441,27 @@ msgstr "Servicio (ID)"
msgid "NAT inside IP address (ID)"
msgstr "Dirección IP interna de NAT (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Interfaz asignada"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Interfaz VM asignada"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "Dirección IP (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "dirección IP"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "IPv4 principal (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "IPv6 principal (ID)"
@@ -9637,10 +9675,6 @@ msgstr "Máquina virtual"
msgid "Parent VM of assigned interface (if any)"
msgstr "VM principal de la interfaz asignada (si existe)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Interfaz asignada"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Es primaria"
@@ -11221,9 +11255,9 @@ msgstr "Admin"
msgid "API Tokens"
msgstr "Tokens de API"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Permisos"
@@ -11374,63 +11408,63 @@ msgstr "No se pueden agregar tiendas al registro después de la inicialización"
msgid "Cannot delete stores from registry"
msgstr "No se pueden eliminar las tiendas del registro"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "checa"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "danés"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "alemán"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Inglés"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "española"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "francesa"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "italiano"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "japonés"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "holandesa"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "polaco"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "portugués"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "rusa"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "turca"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "ucraniana"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "chino"
@@ -13110,7 +13144,7 @@ msgstr "Agregar nuevo miembro"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Acciones"
@@ -14167,7 +14201,7 @@ msgstr ""
"Haga clic aquí para intentar cargar NetBox de "
"nuevo."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14196,7 +14230,7 @@ msgid "Add Contact Group"
msgstr "Agregar grupo de contactos"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Función de contacto"
@@ -14234,7 +14268,7 @@ msgid "View"
msgstr "Ver"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Restricciones"
@@ -14261,11 +14295,6 @@ msgstr "Memoria"
msgid "Disk Space"
msgstr "Espacio en disco"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Agregar máquina virtual"
@@ -14506,57 +14535,57 @@ msgstr "Propiedades del enlace"
msgid "Distance"
msgstr "Distancia"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Grupo de contacto de padres (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Grupo de contacto para padres (slug)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Grupo de contactos (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Grupo de contacto (slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Contacto (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Rol de contacto (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Rol de contacto (babosa)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Grupo de contactos"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Grupo de padres e inquilinos (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Grupo de padres e inquilinos (slug)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Grupo de inquilinos (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Grupo de inquilinos (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Grupo de inquilinos (babosa)"
@@ -14721,11 +14750,11 @@ msgstr "Puede cambiar"
msgid "Can Delete"
msgstr "Puede eliminar"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Interfaz de usuario"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14735,7 +14764,7 @@ msgstr ""
"su clave antes de enviar este formulario, ya que es posible que ya "
"no se pueda acceder a él una vez que se haya creado el token."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14745,33 +14774,33 @@ msgstr ""
"blanco para que no haya restricciones. Ejemplo: 10.1.1.0/24, "
"192.168.10.16/32, 2001:db 8:1: :/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Confirme la contraseña"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Introduce la misma contraseña que antes para verificarla."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"¡Las contraseñas no coinciden! Compruebe los datos introducidos e inténtelo "
"de nuevo."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Acciones adicionales"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Acciones concedidas además de las enumeradas anteriormente"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Objetos"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14782,11 +14811,11 @@ msgstr ""
"este tipo. Una lista de varios objetos dará como resultado una operación OR "
"lógica."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Debe seleccionarse al menos una acción."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Filtro no válido para {model}: {error}"
@@ -15052,7 +15081,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Valor no válido para un campo de opción múltiple: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Objeto no encontrado: %(value)s"
@@ -15066,11 +15095,16 @@ msgstr ""
"«{value}\"no es un valor único para este campo; se han encontrado varios "
"objetos"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "«{field_name}\"es un nombre de campo de acceso no válido."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "El tipo de objeto debe especificarse como».»"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Tipo de objeto no válido"
@@ -15668,19 +15702,19 @@ msgstr "Firmas de la DSA"
msgid "Group {n}"
msgstr "Grupo {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "LAN privada Ethernet"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "LAN privada virtual Ethernet"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Árbol privado de Ethernet"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Árbol privado virtual de Ethernet"
@@ -15712,33 +15746,31 @@ msgstr "Túnel (nombre)"
msgid "Outside IP (ID)"
msgstr "IP externa (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "Política de IKE (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "Política IKE (nombre)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "Política IPSec (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "Política IPSec (nombre)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "VPN L2 (babosa)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "Interfaz VM (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (nombre)"
diff --git a/netbox/translations/fr/LC_MESSAGES/django.mo b/netbox/translations/fr/LC_MESSAGES/django.mo
index 0e5ba6615b9..bf80d8fca67 100644
Binary files a/netbox/translations/fr/LC_MESSAGES/django.mo and b/netbox/translations/fr/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/fr/LC_MESSAGES/django.po b/netbox/translations/fr/LC_MESSAGES/django.po
index 6f155f4a233..25b02e3a462 100644
--- a/netbox/translations/fr/LC_MESSAGES/django.po
+++ b/netbox/translations/fr/LC_MESSAGES/django.po
@@ -18,7 +18,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: French (https://app.transifex.com/netbox-community/teams/178115/fr/)\n"
@@ -30,7 +30,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Clé"
@@ -66,7 +66,7 @@ msgstr "Dernière utilisation"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "IP autorisées"
@@ -95,8 +95,8 @@ msgstr "Votre mot de passe a été modifié avec succès."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -108,8 +108,8 @@ msgstr "Approvisionnement"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -120,8 +120,8 @@ msgid "Active"
msgstr "Actif"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Hors ligne"
@@ -134,7 +134,7 @@ msgstr "Déprovisionnement"
msgid "Decommissioned"
msgstr "Mis hors service"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Primaire"
@@ -160,7 +160,7 @@ msgstr "Inactif"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Région (ID)"
@@ -172,7 +172,7 @@ msgstr "Région (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Région (slug)"
@@ -201,7 +201,7 @@ msgstr "Groupe de sites (slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -267,7 +267,7 @@ msgstr "Site"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Site (slug)"
@@ -321,7 +321,7 @@ msgstr "Type de circuit (slug)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Site (ID)"
@@ -340,13 +340,13 @@ msgstr "Terminaison A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -355,7 +355,7 @@ msgstr "Rechercher"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -539,9 +539,9 @@ msgstr "Description"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -578,9 +578,9 @@ msgstr "Identifiant du service"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -593,7 +593,7 @@ msgid "Color"
msgstr "Couleur"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -616,7 +616,7 @@ msgstr "Couleur"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -650,14 +650,14 @@ msgid "Type"
msgstr "Type"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Identifiant de compte du prestataire"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -673,8 +673,8 @@ msgstr "Identifiant de compte du prestataire"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -703,7 +703,7 @@ msgstr "Identifiant de compte du prestataire"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -727,8 +727,8 @@ msgstr "Statut"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -894,21 +894,21 @@ msgstr "Détails de terminaison"
msgid "Priority"
msgstr "Priorité"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Prestataire assigné"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Compte opérateur associé"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Type de circuit"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -920,8 +920,8 @@ msgstr "Type de circuit"
msgid "Operational status"
msgstr "État opérationnel"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -937,7 +937,7 @@ msgstr "État opérationnel"
msgid "Assigned tenant"
msgstr "Locataire associé"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -945,7 +945,7 @@ msgstr "Locataire associé"
msgid "Termination"
msgstr "Terminaison"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1101,7 +1101,7 @@ msgstr "Côté terme"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Affectation"
@@ -1156,11 +1156,11 @@ msgid "Circuit Group"
msgstr "Groupe de circuits"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1183,9 +1183,9 @@ msgid "Unique circuit ID"
msgstr "ID de circuit unique"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1279,7 +1279,7 @@ msgstr "ID du panneau de raccordement et numéro (s) de port"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1318,11 +1318,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1406,11 +1406,11 @@ msgstr "réseaux de fournisseurs"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1548,8 +1548,8 @@ msgstr "Bande passante garantie"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1627,8 +1627,8 @@ msgstr "Terminé"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Échoué"
@@ -1694,42 +1694,42 @@ msgstr "Arrêté"
msgid "Cancelled"
msgstr "Annulé"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Local"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Nom d'utilisateur"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Utilisé uniquement pour le clonage avec HTTP(S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Mot de passe"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Branche"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "La récupération des données distantes a échoué ({name}) : {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "ID de clé d'accès AWS"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Clé d'accès secrète AWS"
@@ -1784,7 +1784,7 @@ msgstr "Nom d'utilisateur"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1898,7 +1898,7 @@ msgstr "Terminé avant"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Utilisateur"
@@ -1956,7 +1956,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Élévations des baies"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1999,7 +1999,7 @@ msgstr "Préférences de l'utilisateur"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Divers"
@@ -2061,7 +2061,7 @@ msgstr ""
"d'objet ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2098,20 +2098,20 @@ msgid "Config revision #{id}"
msgstr "Révision de configuration #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2126,8 +2126,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2243,60 +2243,60 @@ msgstr "fichier géré"
msgid "managed files"
msgstr "fichiers gérés"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "prévu"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "intervalle"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Intervalle de récurrence (en minutes)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "commencé"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "terminé"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "données"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "erreur"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "ID de tâche"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "emploi"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "emplois"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "Les tâches ne peuvent pas être attribuées à ce type d'objet ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
"Statut invalide pour l'arrêt de la tâche. Les choix sont les suivants : "
"{choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2347,7 +2347,7 @@ msgid "Last updated"
msgstr "Dernière mise à jour"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2539,7 +2539,7 @@ msgid "Staging"
msgstr "Mise en scène"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Démantèlement"
@@ -2603,17 +2603,17 @@ msgstr "Obsolète"
msgid "Millimeters"
msgstr "Millimètres"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Pouces"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "De l'avant vers l'arrière"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "De l'arrière vers l'avant"
@@ -2626,8 +2626,8 @@ msgstr "De l'arrière vers l'avant"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2671,7 +2671,7 @@ msgstr "Avant"
msgid "Rear"
msgstr "Arrière"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Mis en scène"
@@ -2680,67 +2680,79 @@ msgstr "Mis en scène"
msgid "Inventory"
msgstr "Inventaire"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "De gauche à droite"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "De droite à gauche"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "D'un côté à l'arrière"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "De l'arrière vers le côté"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "De bas en haut"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "De haut en bas"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Passif"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Mixte"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (non verrouillable)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (verrouillage)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Style californien"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "International/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Propriétaire"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Autres"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/International"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Physique"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Virtuel"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2748,13 +2760,13 @@ msgstr "Virtuel"
msgid "Wireless"
msgstr "Sans fil"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Interfaces virtuelles"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2762,27 +2774,27 @@ msgstr "Interfaces virtuelles"
msgid "Bridge"
msgstr "Passerelle"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Groupe d'agrégation de liens (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (fixe)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modulaire)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (panneau arrière)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Cellulaire"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2790,130 +2802,130 @@ msgstr "Cellulaire"
msgid "Serial"
msgstr "Série"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Coaxiale"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Empilage"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "La moitié"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Complet"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Automatique"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Accès"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Tagué"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Tagué (Tous)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "Norme IEEE"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "24 V passif (2 paires)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "24 V passif (4 paires)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "48 V passif (2 paires)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "48 V passif (4 paires)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Cuivre"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "fibre optique"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Fibre"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Connecté"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Kilomètres"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Compteurs"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Centimètres"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Miles"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Pieds"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Kilogrammes"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Grammes"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Livres"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Onces"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Redondant"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Monophasé"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Triphasé"
@@ -3165,7 +3177,7 @@ msgstr "Est en pleine profondeur"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3209,7 +3221,7 @@ msgid "Device model"
msgstr "Modèle d'appareil"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Interface (ID)"
@@ -3223,8 +3235,8 @@ msgstr "Baie modulaire (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Appareil (ID)"
@@ -3233,8 +3245,8 @@ msgid "Rack (name)"
msgstr "Baie (nom)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Appareil (nom)"
@@ -3284,8 +3296,8 @@ msgstr "VID attribué"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3321,7 +3333,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (IDENTIFIANT)"
@@ -3377,7 +3389,7 @@ msgstr "Contexte du périphérique virtuel (identifiant)"
msgid "Wireless LAN"
msgstr "LAN sans fil"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Liaison sans fil"
@@ -3405,12 +3417,12 @@ msgstr "Maître (ID)"
msgid "Master (name)"
msgstr "Master (nom)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Locataire (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Locataire (slug)"
@@ -3437,7 +3449,7 @@ msgstr "Balises"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3486,8 +3498,8 @@ msgstr "Fuseau horaire"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3551,7 +3563,7 @@ msgstr "Profondeur de montage"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3612,8 +3624,8 @@ msgstr "Numérotation"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3721,12 +3733,12 @@ msgstr "Numéro de pièce"
msgid "U height"
msgstr "Hauteur en U"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Exclure de l'utilisation"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3815,10 +3827,10 @@ msgstr "Plateforme"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3945,8 +3957,8 @@ msgid "Maximum draw"
msgstr "Tirage maximum"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Consommation électrique maximale (watts)"
@@ -3955,8 +3967,8 @@ msgid "Allocated draw"
msgstr "Tirage au sort attribué"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Consommation électrique allouée (watts)"
@@ -3977,16 +3989,16 @@ msgstr "Gestion uniquement"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "Mode PoE"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "Type PoE"
@@ -4010,7 +4022,7 @@ msgstr "Rôle sans fil"
msgid "Module"
msgstr "Modules"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "DÉCALAGE"
@@ -4022,7 +4034,7 @@ msgstr "Contextes des appareils virtuels"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4069,7 +4081,7 @@ msgid "Wireless LAN group"
msgstr "Groupe LAN sans fil"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4457,7 +4469,7 @@ msgstr "Port arrière correspondant"
msgid "Physical medium classification"
msgstr "Classification des supports physiques"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Appareil installé"
@@ -4546,7 +4558,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} terminaison latérale introuvable : {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4598,7 +4610,7 @@ msgstr "IPv6 principal"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "Adresse IPv6 avec longueur de préfixe, par exemple 2001:db8 : :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4763,7 +4775,7 @@ msgid "Mgmt only"
msgstr "Gestion uniquement"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4796,7 +4808,7 @@ msgstr "Puissance de transmission (dBm)"
msgid "Cable"
msgstr "câble"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Découvert"
@@ -4947,7 +4959,7 @@ msgid "Front Port"
msgstr "Port avant"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5083,7 +5095,7 @@ msgstr ""
"Le nombre de ports frontaux à créer ({frontport_count}) doit correspondre au"
" nombre sélectionné de positions des ports arrière ({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5108,7 +5120,7 @@ msgstr "Une position doit être spécifiée pour le premier membre du VC."
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "étiquette"
@@ -5217,7 +5229,7 @@ msgstr ""
"lorsqu'il est fixé à un type de module."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Etiquette physique"
@@ -5243,137 +5255,137 @@ msgstr ""
"Un modèle de composant doit être associé à un type d'appareil ou à un type "
"de module."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "modèle de port de console"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "modèles de ports de console"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "modèle de port de serveur de console"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "modèles de ports de serveur de console"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "tirage maximum"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "tirage au sort alloué"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "modèle de port d'alimentation"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "modèles de ports d'alimentation"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"Le tirage alloué ne peut pas dépasser le tirage maximum ({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "patte d'alimentation"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Phase (pour les alimentations triphasées)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "modèle de prise de courant"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "modèles de prises de courant"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Port d'alimentation parent ({power_port}) doit appartenir au même type "
"d'appareil"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Port d'alimentation parent ({power_port}) doit appartenir au même type de "
"module"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "gestion uniquement"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "interface de pont"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "rôle sans fil"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "modèle d'interface"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "modèles d'interface"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Une interface ne peut pas être reliée à elle-même."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr "Interface de pont ({bridge}) doit appartenir au même type d'appareil"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Interface de pont ({bridge}) doit appartenir au même type de module"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "position du port arrière"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "modèle de port avant"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "modèles de port avant"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Port arrière ({name}) doit appartenir au même type d'appareil"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5382,47 +5394,47 @@ msgstr ""
"Position du port arrière non valide ({position}) ; port arrière {name} n'a "
"que {count} positions"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "positions"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "modèle de port arrière"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "modèles de port arrière"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "position"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Identifiant à référencer lors du changement de nom des composants installés"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "modèle de baie modulaire"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "modèles de baies de modules"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "modèle de baie pour appareils"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "modèles de baies d'appareils"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5431,211 +5443,211 @@ msgstr ""
"Rôle du sous-appareil du type d'appareil ({device_type}) doit être défini "
"sur « parent » pour autoriser les baies de périphériques."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "ID de pièce"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Identifiant de pièce attribué par le fabricant"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "modèle d'article d'inventaire"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "modèles d'articles d'inventaire"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Les composants ne peuvent pas être déplacés vers un autre appareil."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "extrémité du câble"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "marque connectée"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Traitez comme si un câble était connecté"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr ""
"Doit spécifier l'extrémité du câble (A ou B) lors de la fixation d'un câble."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "L'extrémité du câble ne doit pas être réglée sans câble."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Impossible de marquer comme connecté avec un câble branché."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} les modèles doivent déclarer une propriété parent_object"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Type de port physique"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "vitesse"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Vitesse du port en bits par seconde"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "port de console"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "ports de console"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "port du serveur de console"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "ports du serveur de console"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "port d'alimentation"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "ports d'alimentation"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "prise de courant"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "prises de courant"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Port d'alimentation parent ({power_port}) doit appartenir au même appareil"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "mode"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "Stratégie de marquage IEEE 802.1Q"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "interface parente"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "GAL parent"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Cette interface est utilisée uniquement pour la gestion hors bande"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "vitesse (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "duplex"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "Nom mondial 64 bits"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "canal sans fil"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "fréquence du canal (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Rempli par la chaîne sélectionnée (si définie)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "puissance de transmission (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "réseaux locaux sans fil"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "VLAN non balisé"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "VLAN étiquetés"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "interface"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "interfaces"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr ""
"{display_type} les interfaces ne peuvent pas être connectées à un câble."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr ""
"{display_type} les interfaces ne peuvent pas être marquées comme connectées."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Une interface ne peut pas être son propre parent."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr ""
"Seules les interfaces virtuelles peuvent être attribuées à une interface "
"parent."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5644,7 +5656,7 @@ msgstr ""
"L'interface parent sélectionnée ({interface}) appartient à un autre appareil"
" ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5653,7 +5665,7 @@ msgstr ""
"L'interface parent sélectionnée ({interface}) appartient à {device}, qui ne "
"fait pas partie du châssis virtuel {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5662,7 +5674,7 @@ msgstr ""
"L'interface de pont sélectionnée ({bridge}) appartient à un autre appareil "
"({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5671,16 +5683,16 @@ msgstr ""
"L'interface de pont sélectionnée ({interface}) appartient à {device}, qui ne"
" fait pas partie du châssis virtuel {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr ""
"Les interfaces virtuelles ne peuvent pas avoir d'interface LAG parente."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Une interface LAG ne peut pas être son propre parent."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
@@ -5688,7 +5700,7 @@ msgstr ""
"L'interface LAG sélectionnée ({lag}) appartient à un autre appareil "
"({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5697,48 +5709,48 @@ msgstr ""
"L'interface LAG sélectionnée ({lag}) appartient à {device}, qui ne fait pas "
"partie du châssis virtuel {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Les interfaces virtuelles ne peuvent pas avoir de mode PoE."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Les interfaces virtuelles ne peuvent pas avoir de type PoE."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Doit spécifier le mode PoE lors de la désignation d'un type de PoE."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr "Le rôle sans fil ne peut être défini que sur les interfaces sans fil."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Le canal ne peut être défini que sur les interfaces sans fil."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"La fréquence des canaux ne peut être réglée que sur les interfaces sans fil."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr ""
"Impossible de spécifier une fréquence personnalisée avec le canal "
"sélectionné."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr ""
"La largeur de canal ne peut être réglée que sur les interfaces sans fil."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr ""
"Impossible de spécifier une largeur personnalisée avec le canal sélectionné."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5747,24 +5759,24 @@ msgstr ""
"Le VLAN non balisé ({untagged_vlan}) doit appartenir au même site que "
"l'appareil parent de l'interface, ou il doit être global."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Position cartographiée sur le port arrière correspondant"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "port avant"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "ports avant"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Port arrière ({rear_port}) doit appartenir au même appareil"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5773,19 +5785,19 @@ msgstr ""
"Position du port arrière non valide ({rear_port_position}) : Port arrière "
"{name} n'a que {positions} positions."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Nombre de ports frontaux pouvant être mappés"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "port arrière"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "ports arrière"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5794,40 +5806,40 @@ msgstr ""
"Le nombre de positions ne peut pas être inférieur au nombre de ports "
"frontaux mappés ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "baie modulaire"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "baies de modules"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr ""
"Une baie de modules ne peut pas appartenir à un module qui y est installé."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "baie pour appareils"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "baies pour appareils"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr ""
"Ce type d'appareil ({device_type}) ne prend pas en charge les baies pour "
"appareils."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Impossible d'installer un appareil sur lui-même."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5835,60 +5847,60 @@ msgstr ""
"Impossible d'installer le périphérique spécifié ; le périphérique est déjà "
"installé dans {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "rôle des articles d'inventaire"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "rôles des articles d'inventaire"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "numéro de série"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "étiquette d'actif"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Une étiquette unique utilisée pour identifier cet article"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "découvert"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Cet objet a été découvert automatiquement"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "article d'inventaire"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "articles d'inventaire"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Impossible de s'attribuer le statut de parent."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "L'article d'inventaire parent n'appartient pas au même appareil."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "Impossible de déplacer un article en stock avec des enfants à charge"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr ""
"Impossible d'attribuer un article d'inventaire à un composant sur un autre "
@@ -6043,7 +6055,7 @@ msgstr "La fonction de cet appareil"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Numéro de série du châssis attribué par le fabricant"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Un tag unique utilisé pour identifier cet appareil"
@@ -6055,12 +6067,12 @@ msgstr "position (U)"
msgid "rack face"
msgstr "face de la baie"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "IPv4 principal"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "IPv6 principal"
@@ -6214,15 +6226,24 @@ msgid "A device assigned to a virtual chassis must have its position defined."
msgstr ""
"La position d'un appareil affecté à un châssis virtuel doit être définie."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Le périphérique ne peut pas être retiré du châssis virtuel {virtual_chassis}"
+" car il est actuellement désigné comme son maître."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "module"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "modules"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6231,22 +6252,22 @@ msgstr ""
"Le module doit être installé dans une baie de modules appartenant au "
"périphérique attribué ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "domaine"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "châssis virtuel"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr ""
"Le master sélectionné ({master}) n'est pas attribué à ce châssis virtuel."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6255,34 +6276,34 @@ msgstr ""
"Impossible de supprimer le châssis virtuel {self}. Il existe des interfaces "
"membres qui forment des interfaces LAG inter-châssis."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "identificateur"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Identifiant numérique propre à l'appareil parent"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "commentaires"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "contexte du périphérique virtuel"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "contextes de périphériques virtuels"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} n'est pas un IPV{family} adresse."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"L'adresse IP principale doit appartenir à une interface sur l'appareil "
@@ -6715,7 +6736,7 @@ msgstr "Modèle de configuration"
msgid "Site Group"
msgstr "Groupe de sites"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6724,12 +6745,12 @@ msgstr "Groupe de sites"
msgid "IP Address"
msgstr "Adresse IP"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "Adresse IPv4"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "Adresse IPv6"
@@ -6767,8 +6788,8 @@ msgstr "Ports d'alimentation"
msgid "Power outlets"
msgstr "Prises de courant"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6806,8 +6827,8 @@ msgstr "Articles d'inventaire"
msgid "Module Bay"
msgstr "Module Bay"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6865,75 +6886,75 @@ msgstr "Groupes FHRP"
msgid "Tunnel"
msgstr "Tunnel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Gestion uniquement"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Module installé"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Série du module"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Étiquette d'actif du module"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "État du module"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Composant"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Objets"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Types d'appareils"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Types de modules"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Plateformes"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Plateforme par défaut"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Pleine profondeur"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Hauteur en U"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Instances"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6944,7 +6965,7 @@ msgstr "Instances"
msgid "Console Ports"
msgstr "Ports de console"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6955,7 +6976,7 @@ msgstr "Ports de console"
msgid "Console Server Ports"
msgstr "Ports du serveur de consoles"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6966,7 +6987,7 @@ msgstr "Ports du serveur de consoles"
msgid "Power Ports"
msgstr "Ports d'alimentation"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6977,7 +6998,7 @@ msgstr "Ports d'alimentation"
msgid "Power Outlets"
msgstr "Prises de courant"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6987,7 +7008,7 @@ msgstr "Prises de courant"
msgid "Front Ports"
msgstr "Ports avant"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6998,7 +7019,7 @@ msgstr "Ports avant"
msgid "Rear Ports"
msgstr "Ports arrière"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -7006,7 +7027,7 @@ msgstr "Ports arrière"
msgid "Device Bays"
msgstr "Baies pour appareils"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7449,25 +7470,25 @@ msgstr "Type de widget"
msgid "Unregistered widget class: {name}"
msgstr "Classe de widget non enregistrée : {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} doit définir une méthode render ()."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Remarque"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr ""
"Affichez du contenu personnalisé arbitraire. Markdown est pris en charge."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Nombre d'objets"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7475,62 +7496,62 @@ msgstr ""
"Affichez un ensemble de modèles NetBox et le nombre d'objets créés pour "
"chaque type."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Filtres à appliquer lors du comptage du nombre d'objets"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
"Format non valide. Les filtres d'objets doivent être transmis sous forme de "
"dictionnaire."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Liste d'objets"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Afficher une liste arbitraire d'objets."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Le nombre d'objets à afficher par défaut"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
"Format non valide. Les paramètres d'URL doivent être transmis sous forme de "
"dictionnaire."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "Fil RSS"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Intégrez un flux RSS provenant d'un site Web externe."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "URL du flux"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Le nombre maximum d'objets à afficher"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Durée de conservation du contenu mis en cache (en secondes)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Signets"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Afficher vos favoris personnels"
@@ -7574,8 +7595,8 @@ msgstr "Type de cluster (slug)"
msgid "Tenant group"
msgstr "Groupe de locataires"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Groupe de locataires (slug)"
@@ -7712,7 +7733,7 @@ msgstr "Est actif"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Types d'objets"
@@ -7813,8 +7834,8 @@ msgstr "La classification de l'entrée"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Utilisateurs"
@@ -7827,8 +7848,8 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Groupes"
@@ -8573,10 +8594,19 @@ msgstr "ensemble de choix de champs personnalisés"
msgid "custom field choice sets"
msgstr "ensembles de choix de champs personnalisés"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Doit définir des choix de base ou supplémentaires."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Impossible de supprimer le choix {choice} comme il y en a {model} objets qui"
+" y font référence."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "disposition"
@@ -9158,65 +9188,65 @@ msgstr "Message"
msgid "Method"
msgstr "Méthode"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Assurez-vous que cette valeur est égale à %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Assurez-vous que cette valeur n'est pas égale %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Ce champ doit être vide."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Ce champ ne doit pas être vide."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr ""
"Les règles de validation doivent être transmises sous forme de dictionnaire"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "La validation personnalisée a échoué pour {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Attribut non valide »{name}« pour demande"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Attribut non valide »{name}« pour {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Votre tableau de bord a été réinitialisé."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Widget ajouté : "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Widget mis à jour : "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Widget supprimé : "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Erreur lors de la suppression du widget : "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr ""
"Impossible d'exécuter le script : le processus de travail RQ n'est pas en "
@@ -9288,19 +9318,19 @@ msgstr "Texte brut"
msgid "Invalid IP address format: {address}"
msgstr "Format d'adresse IP non valide : {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Objectif d'importation"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Cible d'importation (nom)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Objectif d'exportation"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Cible d'exportation (nom)"
@@ -9370,11 +9400,11 @@ msgstr "Préfixes contenant ce préfixe ou cette adresse IP"
msgid "Mask length"
msgstr "Longueur du masque"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (IDENTIFIANT)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "Numéro de VLAN (1-4094)"
@@ -9394,23 +9424,23 @@ msgid "Parent prefix"
msgstr "Préfixe parent"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Machine virtuelle (nom)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Machine virtuelle (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Interface (nom)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "Interface de machine virtuelle (nom)"
@@ -9438,19 +9468,27 @@ msgstr "Service (ID)"
msgid "NAT inside IP address (ID)"
msgstr "Adresse IP intérieure NAT (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Interface attribuée"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Interface de machine virtuelle attribuée"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "Adresse IP (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "Adresse IP"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "IPv4 principal (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "IPv6 principal (ID)"
@@ -9664,10 +9702,6 @@ msgstr "Machine virtuelle"
msgid "Parent VM of assigned interface (if any)"
msgstr "VM parent de l'interface attribuée (le cas échéant)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Interface attribuée"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Est principal"
@@ -11264,9 +11298,9 @@ msgstr "Administrateur"
msgid "API Tokens"
msgstr "Jetons d'API"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Autorisations"
@@ -11420,63 +11454,63 @@ msgstr "Impossible d'ajouter des magasins au registre après l'initialisation"
msgid "Cannot delete stores from registry"
msgstr "Impossible de supprimer des magasins du registre"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "tchèque"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "danois"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "allemand"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Anglais"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "espagnol"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "français"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "italien"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "japonais"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "néerlandais"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "polonais"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "portugais"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "russe"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Turc"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "Ukrainien"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "chinois"
@@ -13156,7 +13190,7 @@ msgstr "Ajouter un nouveau membre"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Actions"
@@ -14214,7 +14248,7 @@ msgid "Click here to attempt loading NetBox again."
msgstr ""
"Cliquez ici pour essayer de recharger NetBox."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14243,7 +14277,7 @@ msgid "Add Contact Group"
msgstr "Ajouter un groupe de contacts"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Rôle du contact"
@@ -14281,7 +14315,7 @@ msgid "View"
msgstr "Afficher"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Contraintes"
@@ -14308,11 +14342,6 @@ msgstr "Mémoire"
msgid "Disk Space"
msgstr "Espace disque"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "Go"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Ajouter une machine virtuelle"
@@ -14553,57 +14582,57 @@ msgstr "Propriétés du lien"
msgid "Distance"
msgstr "Distance"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Groupe de contact pour les parents (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Groupe de contact avec les parents (slug)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Groupe de contacts (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Groupe de contact (slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Contact (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Rôle du contact (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Rôle de contact (slug)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Groupe de contact"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Groupe de parents locataires (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Groupe de parents locataires (slug)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Groupe de locataires (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Groupe de locataires (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Groupe de locataires (slug)"
@@ -14768,11 +14797,11 @@ msgstr "Peut changer"
msgid "Can Delete"
msgstr "Peut supprimer"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Interface utilisateur"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14782,7 +14811,7 @@ msgstr ""
"d'enregistrer votre clé avant de soumettre ce formulaire, car il se"
" peut qu'il ne soit plus accessible une fois le jeton créé."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14792,33 +14821,33 @@ msgstr ""
"Laissez ce champ vide pour éviter toute restriction. Exemple : "
"10.1.1.0/24 192.168.10,16/32 2001 : db 8:1 : /64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Confirmer mot de passe"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr ""
"Entrez le même mot de passe que précédemment, à des fins de vérification."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Les mots de passe ne correspondent pas ! Vérifiez votre saisie et réessayez."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Actions supplémentaires"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Actions accordées en plus de celles énumérées ci-dessus"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Objets"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14828,11 +14857,11 @@ msgstr ""
"autorisés. Laissez null pour chercher tous les objets de ce type. Une liste "
"de plusieurs termes correspond à un OU logique."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Au moins une action doit être sélectionnée."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Filtre non valide pour {model}: {error}"
@@ -15098,7 +15127,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Valeur invalide pour un champ à choix multiples : {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Objet introuvable : %(value)s"
@@ -15112,11 +15141,16 @@ msgstr ""
"«{value}» n'est pas une valeur unique pour ce champ ; plusieurs objets ont "
"été trouvés"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "«{field_name}« est un nom de champ d'accès non valide."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Le type d'objet doit être spécifié comme «.»"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Type d'objet non valide"
@@ -15713,19 +15747,19 @@ msgstr "Signatures DSA"
msgid "Group {n}"
msgstr "Groupe {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Réseau local privé Ethernet"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Réseau local privé virtuel Ethernet"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Arbre privé Ethernet"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Arbre privé virtuel Ethernet"
@@ -15757,33 +15791,31 @@ msgstr "Tunnel (nom)"
msgid "Outside IP (ID)"
msgstr "IP externe (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "Politique IKE (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "Politique IKE (nom)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "Politique IPSec (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "Politique IPSec (nom)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (slug)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "Interface de machine virtuelle (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (nom)"
diff --git a/netbox/translations/it/LC_MESSAGES/django.mo b/netbox/translations/it/LC_MESSAGES/django.mo
index 24e79bb4daa..839e154005e 100644
Binary files a/netbox/translations/it/LC_MESSAGES/django.mo and b/netbox/translations/it/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/it/LC_MESSAGES/django.po b/netbox/translations/it/LC_MESSAGES/django.po
index ecc49467c84..2619db44738 100644
--- a/netbox/translations/it/LC_MESSAGES/django.po
+++ b/netbox/translations/it/LC_MESSAGES/django.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Italian (https://app.transifex.com/netbox-community/teams/178115/it/)\n"
@@ -26,7 +26,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Chiave"
@@ -62,7 +62,7 @@ msgstr "Ultimo utilizzo"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "IP consentiti"
@@ -91,8 +91,8 @@ msgstr "La tua password è stata cambiata con successo."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -104,8 +104,8 @@ msgstr "Approvvigionamento"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -116,8 +116,8 @@ msgid "Active"
msgstr "Attivo"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Offline"
@@ -130,7 +130,7 @@ msgstr "Deprovisioning"
msgid "Decommissioned"
msgstr "Dismesso"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Primaria"
@@ -156,7 +156,7 @@ msgstr "Inattivo"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Regione (ID)"
@@ -168,7 +168,7 @@ msgstr "Regione (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Regione (slug)"
@@ -197,7 +197,7 @@ msgstr "Gruppo del sito (slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -263,7 +263,7 @@ msgstr "Sito"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Sito (slug)"
@@ -317,7 +317,7 @@ msgstr "Tipo di circuito (slug)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Sito (ID)"
@@ -336,13 +336,13 @@ msgstr "Terminazione A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -351,7 +351,7 @@ msgstr "Cerca"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -535,9 +535,9 @@ msgstr "Descrizione"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -574,9 +574,9 @@ msgstr "ID del servizio"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -589,7 +589,7 @@ msgid "Color"
msgstr "Colore"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -612,7 +612,7 @@ msgstr "Colore"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -646,14 +646,14 @@ msgid "Type"
msgstr "Tipo"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Provider account "
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -669,8 +669,8 @@ msgstr "Provider account "
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -699,7 +699,7 @@ msgstr "Provider account "
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -723,8 +723,8 @@ msgstr "Status"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -890,21 +890,21 @@ msgstr "Dettagli sulla cessazione"
msgid "Priority"
msgstr "Priorità"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Provider assegnato"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Account provider assegnato"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Tipo di circuito"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -916,8 +916,8 @@ msgstr "Tipo di circuito"
msgid "Operational status"
msgstr "Stato operativo"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -933,7 +933,7 @@ msgstr "Stato operativo"
msgid "Assigned tenant"
msgstr "Tenant assegnato"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -941,7 +941,7 @@ msgstr "Tenant assegnato"
msgid "Termination"
msgstr "Cessazione"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1097,7 +1097,7 @@ msgstr "Lato del termine"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Assegnazione"
@@ -1152,11 +1152,11 @@ msgid "Circuit Group"
msgstr "Gruppo Circuit"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1179,9 +1179,9 @@ msgid "Unique circuit ID"
msgstr "ID univoco del circuito"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1275,7 +1275,7 @@ msgstr "ID del patch panel e numero/i di porta"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1314,11 +1314,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1402,11 +1402,11 @@ msgstr "reti di fornitori"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1544,8 +1544,8 @@ msgstr "Tasso di impegno"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1624,8 +1624,8 @@ msgstr "Completato"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Fallito"
@@ -1691,42 +1691,42 @@ msgstr "Fermato"
msgid "Cancelled"
msgstr "Annullato"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Locale"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Nome utente"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Utilizzato solo per la clonazione con HTTP (S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Password"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Ramo"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Recupero dati remoti non riuscito ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "ID chiave di accesso AWS"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Chiave di accesso segreta AWS"
@@ -1781,7 +1781,7 @@ msgstr "Nome utente"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1895,7 +1895,7 @@ msgstr "Completato prima"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Utente"
@@ -1950,7 +1950,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Elevazioni dei rack"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1993,7 +1993,7 @@ msgstr "Preferenze utente"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Varie"
@@ -2055,7 +2055,7 @@ msgstr ""
" ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2092,20 +2092,20 @@ msgid "Config revision #{id}"
msgstr "Revisione della configurazione #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2120,8 +2120,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2236,60 +2236,60 @@ msgstr "file gestito"
msgid "managed files"
msgstr "file gestiti"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "pianificata"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "intervallo"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Intervallo di ricorrenza (in minuti)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "iniziato"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "completato"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "dato"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "errore"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "ID lavoro"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "occupazione"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "lavori"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr ""
"I lavori non possono essere assegnati a questo tipo di oggetto ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
"Stato non valido per la cessazione del lavoro. Le scelte sono: {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2340,7 +2340,7 @@ msgid "Last updated"
msgstr "Ultimo aggiornamento"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2532,7 +2532,7 @@ msgid "Staging"
msgstr "Messa in scena"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Smantellamento"
@@ -2596,17 +2596,17 @@ msgstr "Obsoleto"
msgid "Millimeters"
msgstr "Millimetri"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Pollici"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Da anteriore a posteriore"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Posteriore/anteriore"
@@ -2619,8 +2619,8 @@ msgstr "Posteriore/anteriore"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2664,7 +2664,7 @@ msgstr "Anteriore"
msgid "Rear"
msgstr "Posteriore"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Messo in scena"
@@ -2673,67 +2673,79 @@ msgstr "Messo in scena"
msgid "Inventory"
msgstr "Inventario"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Da sinistra a destra"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Da destra a sinistra"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Da lato a retro"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Da dietro a lato"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Dal basso verso l'alto"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Dall'alto verso il basso"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Passivo"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Misto"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (non bloccante)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (bloccaggio)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Stile californiano"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "Internazionale/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Proprietario"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Altro"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/Internazionale"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Fisico"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Virtuale"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2741,13 +2753,13 @@ msgstr "Virtuale"
msgid "Wireless"
msgstr "Wireless"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Interfacce virtuali"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2755,27 +2767,27 @@ msgstr "Interfacce virtuali"
msgid "Bridge"
msgstr "ponte"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Link Aggregation Group (GAL)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (fisso)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modulare)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (backplane)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Cellulare"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2783,130 +2795,130 @@ msgstr "Cellulare"
msgid "Serial"
msgstr "Seriale"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Coassiale"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "impilamento"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Metà"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Completo"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Auto"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Accesso"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Taggato"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Contrassegnati (tutti)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "Norma IEEE"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "24V passivo (2 coppie)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "24V passivo (4 coppie)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "48V passivo (2 coppie)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "48V passivo (4 coppie)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Rame"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Fibra ottica"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Fibra"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Connesso"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Chilometri"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Metri"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Centimetri"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Miglia"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Piedi"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Chilogrammi"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Grammi"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Sterline"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Once"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Ridondante"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Monofase"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Trifase"
@@ -3158,7 +3170,7 @@ msgstr "È a piena profondità"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3202,7 +3214,7 @@ msgid "Device model"
msgstr "Modello del dispositivo"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Interfaccia (ID)"
@@ -3216,8 +3228,8 @@ msgstr "Alloggiamento per moduli (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Dispositivo (ID)"
@@ -3226,8 +3238,8 @@ msgid "Rack (name)"
msgstr "Rack (nome)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Dispositivo (nome)"
@@ -3277,8 +3289,8 @@ msgstr "VID assegnato"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3314,7 +3326,7 @@ msgid "VRF (RD)"
msgstr "VRF (ROSSO)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3370,7 +3382,7 @@ msgstr "Contesto del dispositivo virtuale (identificatore)"
msgid "Wireless LAN"
msgstr "LAN senza fili"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Collegamento wireless"
@@ -3398,12 +3410,12 @@ msgstr "Maestro (ID)"
msgid "Master (name)"
msgstr "Master (nome)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Inquilino (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Inquilino (slug)"
@@ -3430,7 +3442,7 @@ msgstr "Etichette"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3479,8 +3491,8 @@ msgstr "Fuso orario"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3544,7 +3556,7 @@ msgstr "Profondità di montaggio"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3605,8 +3617,8 @@ msgstr "Numerazione"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3714,12 +3726,12 @@ msgstr "Numero del pezzo"
msgid "U height"
msgstr "Altezza U"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Escludi dall'utilizzo"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3808,10 +3820,10 @@ msgstr "piattaforma"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3938,8 +3950,8 @@ msgid "Maximum draw"
msgstr "Pareggio massimo"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Potenza massima assorbita (watt)"
@@ -3948,8 +3960,8 @@ msgid "Allocated draw"
msgstr "Pareggio assegnato"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Potenza assorbita allocata (watt)"
@@ -3970,16 +3982,16 @@ msgstr "Solo gestione"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "modalità PoE"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "Tipo PoE"
@@ -4003,7 +4015,7 @@ msgstr "Ruolo wireless"
msgid "Module"
msgstr "Modulo"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "RITARDO"
@@ -4015,7 +4027,7 @@ msgstr "Contesti dei dispositivi virtuali"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4062,7 +4074,7 @@ msgid "Wireless LAN group"
msgstr "Gruppo LAN wireless"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4451,7 +4463,7 @@ msgstr "Porta posteriore corrispondente"
msgid "Physical medium classification"
msgstr "Classificazione del mezzo fisico"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Dispositivo installato"
@@ -4541,7 +4553,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} terminazione laterale non trovata: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4593,7 +4605,7 @@ msgstr "IPv6 primario"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "Indirizzo IPv6 con lunghezza del prefisso, ad esempio 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4757,7 +4769,7 @@ msgid "Mgmt only"
msgstr "Solo gestione"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4790,7 +4802,7 @@ msgstr "Potenza di trasmissione (dBm)"
msgid "Cable"
msgstr "Cavo"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Scoperto"
@@ -4944,7 +4956,7 @@ msgid "Front Port"
msgstr "Porta anteriore"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5083,7 +5095,7 @@ msgstr ""
" al numero selezionato di posizioni delle porte posteriori "
"({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5108,7 +5120,7 @@ msgstr "È necessario specificare una posizione per il primo membro VC."
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "etichetta"
@@ -5216,7 +5228,7 @@ msgstr ""
"modulo quando è collegato a un tipo di modulo."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Etichetta fisica"
@@ -5242,142 +5254,142 @@ msgstr ""
"Un modello di componente deve essere associato a un tipo di dispositivo o a "
"un tipo di modulo."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "modello di porta console"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "modelli di porte per console"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "modello di porta console server"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "modelli di porte per console server"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "pareggio massimo"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "pareggio assegnato"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "modello di porta di alimentazione"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "modelli di porte di alimentazione"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"Il pareggio assegnato non può superare il pareggio massimo "
"({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "gamba di alimentazione"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Fase (per alimentazioni trifase)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "modello di presa di corrente"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "modelli di prese di corrente"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Porta di alimentazione principale ({power_port}) deve appartenere allo "
"stesso tipo di dispositivo"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Porta di alimentazione principale ({power_port}) deve appartenere allo "
"stesso tipo di modulo"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "solo gestione"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "interfaccia bridge"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "ruolo wireless"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "modello di interfaccia"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "modelli di interfaccia"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Un'interfaccia non può essere collegata a se stessa."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr ""
"Interfaccia bridge ({bridge}) deve appartenere allo stesso tipo di "
"dispositivo"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr ""
"Interfaccia bridge ({bridge}) deve appartenere allo stesso tipo di modulo"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "posizione della porta posteriore"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "modello di porta anteriore"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "modelli di porte anteriori"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr ""
"Porta posteriore ({name}) deve appartenere allo stesso tipo di dispositivo"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5386,48 +5398,48 @@ msgstr ""
"Posizione della porta posteriore non valida ({position}); porta posteriore "
"{name} ha solo {count} posizioni"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "posizioni"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "modello di porta posteriore"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "modelli di porte posteriori"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "posizione"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Identificatore a cui fare riferimento quando si rinominano i componenti "
"installati"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "modello di alloggiamento del modulo"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "modelli module bay"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "modello di alloggiamento per dispositivi"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "modelli di alloggiamento per dispositivi"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5436,213 +5448,213 @@ msgstr ""
"Ruolo del tipo di dispositivo secondario ({device_type}) deve essere "
"impostato su «principale» per consentire gli alloggiamenti dei dispositivi."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "ID della parte"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Identificativo del pezzo assegnato dal produttore"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "modello di articolo di inventario"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "modelli di articoli di inventario"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "I componenti non possono essere spostati su un dispositivo diverso."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "estremità del cavo"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "contrassegnare connesso"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Tratta come se fosse collegato un cavo"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr ""
"È necessario specificare l'estremità del cavo (A o B) quando si collega un "
"cavo."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "L'estremità del cavo non deve essere impostata senza un cavo."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Non è possibile contrassegnare come connesso con un cavo collegato."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} i modelli devono dichiarare una proprietà parent_object"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Tipo di porta fisica"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "velocità"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Velocità della porta in bit al secondo"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "porta console"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "porte console"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "porta console server"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "porte console server"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "porta di alimentazione"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "porte di alimentazione"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "presa di corrente"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "prese di corrente"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Porta di alimentazione principale ({power_port}) deve appartenere allo "
"stesso dispositivo"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "modalità"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "Strategia di etichettatura IEEE 802.1Q"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "interfaccia principale"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "GAL capogruppo"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Questa interfaccia viene utilizzata solo per la gestione fuori banda"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "velocità (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "bifamiliare"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "Nome mondiale a 64 bit"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "canale wireless"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "frequenza del canale (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Popolato dal canale selezionato (se impostato)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "potenza di trasmissione (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "LAN wireless"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "VLAN senza tag"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "VLAN contrassegnate"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "interfaccia"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "interfacce"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} alle interfacce non è possibile collegare un cavo."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr ""
"{display_type} le interfacce non possono essere contrassegnate come "
"connesse."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Un'interfaccia non può essere la propria madre."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr ""
"Solo le interfacce virtuali possono essere assegnate a un'interfaccia "
"principale."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5651,7 +5663,7 @@ msgstr ""
"L'interfaccia principale selezionata ({interface}) appartiene a un "
"dispositivo diverso ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5660,7 +5672,7 @@ msgstr ""
"L'interfaccia principale selezionata ({interface}) appartiene a {device}, "
"che non fa parte dello chassis virtuale {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5669,7 +5681,7 @@ msgstr ""
"L'interfaccia bridge selezionata ({bridge}) appartiene a un dispositivo "
"diverso ({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5678,16 +5690,16 @@ msgstr ""
"L'interfaccia bridge selezionata ({interface}) appartiene a {device}, che "
"non fa parte dello chassis virtuale {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr ""
"Le interfacce virtuali non possono avere un'interfaccia LAG principale."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Un'interfaccia LAG non può essere la propria interfaccia principale."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
@@ -5695,7 +5707,7 @@ msgstr ""
"L'interfaccia LAG selezionata ({lag}) appartiene a un dispositivo diverso "
"({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5704,51 +5716,51 @@ msgstr ""
"L'interfaccia LAG selezionata ({lag}) appartiene a {device}, che non fa "
"parte dello chassis virtuale {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Le interfacce virtuali non possono avere una modalità PoE."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Le interfacce virtuali non possono avere un tipo PoE."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr ""
"È necessario specificare la modalità PoE quando si designa un tipo PoE."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr ""
"Il ruolo wireless può essere impostato solo sulle interfacce wireless."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Il canale può essere impostato solo su interfacce wireless."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"La frequenza del canale può essere impostata solo sulle interfacce wireless."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr ""
"Impossibile specificare una frequenza personalizzata con il canale "
"selezionato."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr ""
"La larghezza del canale può essere impostata solo sulle interfacce wireless."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr ""
"Impossibile specificare una larghezza personalizzata con il canale "
"selezionato."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5757,25 +5769,25 @@ msgstr ""
"La VLAN senza tag ({untagged_vlan}) deve appartenere allo stesso sito del "
"dispositivo principale dell'interfaccia o deve essere globale."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Posizione mappata sulla porta posteriore corrispondente"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "porta anteriore"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "porte anteriori"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr ""
"Porta posteriore ({rear_port}) deve appartenere allo stesso dispositivo"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5784,19 +5796,19 @@ msgstr ""
"Posizione della porta posteriore non valida ({rear_port_position}): Porta "
"posteriore {name} ha solo {positions} posizioni."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Numero di porte anteriori che possono essere mappate"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "porta posteriore"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "porte posteriori"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5805,41 +5817,41 @@ msgstr ""
"Il numero di posizioni non può essere inferiore al numero di porte frontali "
"mappate ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "alloggiamento per moduli"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "alloggiamenti per moduli"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr ""
"Un alloggiamento per moduli non può appartenere a un modulo installato al "
"suo interno."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "alloggiamento per dispositivi"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "alloggiamenti per dispositivi"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr ""
"Questo tipo di dispositivo ({device_type}) non supporta gli alloggiamenti "
"per dispositivi."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Impossibile installare un dispositivo su se stesso."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5847,62 +5859,62 @@ msgstr ""
"Impossibile installare il dispositivo specificato; il dispositivo è già "
"installato in {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "ruolo dell'articolo di inventario"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "ruoli degli articoli di inventario"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "numero di serie"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "etichetta dell'asset"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Un tag univoco utilizzato per identificare questo articolo"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "scoperto"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Questo articolo è stato scoperto automaticamente"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "articolo di inventario"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "articoli di inventario"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Non può assegnarsi come genitore."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr ""
"L'articolo dell'inventario principale non appartiene allo stesso "
"dispositivo."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "Impossibile spostare un articolo dell'inventario con figli a carico"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr ""
"Impossibile assegnare un articolo di inventario a un componente su un altro "
@@ -6060,7 +6072,7 @@ msgstr "La funzione utilizzata da questo dispositivo"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Numero di serie del telaio, assegnato dal produttore"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Un tag univoco utilizzato per identificare questo dispositivo"
@@ -6072,12 +6084,12 @@ msgstr "posizione (U)"
msgid "rack face"
msgstr "faccia cremagliera"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "IPv4 primario"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "IPv6 primario"
@@ -6232,15 +6244,24 @@ msgstr ""
"La posizione di un dispositivo assegnato a uno chassis virtuale deve essere "
"definita."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Il dispositivo non può essere rimosso dallo chassis virtuale "
+"{virtual_chassis} perché attualmente è designato come suo padrone."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "modulo"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "moduli"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6249,22 +6270,22 @@ msgstr ""
"Il modulo deve essere installato all'interno di un vano del modulo "
"appartenente al dispositivo assegnato ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "dominio"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "chassis virtuale"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr ""
"Il master selezionato ({master}) non è assegnato a questo chassis virtuale."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6273,34 +6294,34 @@ msgstr ""
"Impossibile eliminare lo chassis virtuale {self}. Esistono interfacce tra i "
"membri che formano interfacce GAL trasversali."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "identificatore"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Identificatore numerico univoco per il dispositivo principale"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "commenti"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "contesto del dispositivo virtuale"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "contesti dei dispositivi virtuali"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} non è un IPv{family} indirizzo."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"L'indirizzo IP primario deve appartenere a un'interfaccia sul dispositivo "
@@ -6732,7 +6753,7 @@ msgstr "Modello di configurazione"
msgid "Site Group"
msgstr "Gruppo del sito"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6741,12 +6762,12 @@ msgstr "Gruppo del sito"
msgid "IP Address"
msgstr "Indirizzo IP"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "Indirizzo IPv4"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "Indirizzo IPv6"
@@ -6784,8 +6805,8 @@ msgstr "Porte di alimentazione"
msgid "Power outlets"
msgstr "Prese di corrente"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6823,8 +6844,8 @@ msgstr "Articoli di inventario"
msgid "Module Bay"
msgstr "Modulo Bay"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6882,75 +6903,75 @@ msgstr "Gruppi FHRP"
msgid "Tunnel"
msgstr "Tunnel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Solo gestione"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Modulo installato"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Modulo seriale"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Tag delle risorse del modulo"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Stato del modulo"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Componente"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Oggetti"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Tipi di dispositivi"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Tipi di moduli"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "piattaforme"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Piattaforma predefinita"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Profondità completa"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Altezza U"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Istanze"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6961,7 +6982,7 @@ msgstr "Istanze"
msgid "Console Ports"
msgstr "Porte console"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6972,7 +6993,7 @@ msgstr "Porte console"
msgid "Console Server Ports"
msgstr "Porte Console Server"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6983,7 +7004,7 @@ msgstr "Porte Console Server"
msgid "Power Ports"
msgstr "Porte di alimentazione"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6994,7 +7015,7 @@ msgstr "Porte di alimentazione"
msgid "Power Outlets"
msgstr "Prese di corrente"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -7004,7 +7025,7 @@ msgstr "Prese di corrente"
msgid "Front Ports"
msgstr "Porte anteriori"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -7015,7 +7036,7 @@ msgstr "Porte anteriori"
msgid "Rear Ports"
msgstr "Porte posteriori"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -7023,7 +7044,7 @@ msgstr "Porte posteriori"
msgid "Device Bays"
msgstr "Alloggiamenti per dispositivi"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7465,25 +7486,25 @@ msgstr "Tipo di widget"
msgid "Unregistered widget class: {name}"
msgstr "Classe widget non registrata: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} deve definire un metodo render ()."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Nota"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr ""
"Visualizza alcuni contenuti personalizzati arbitrari. Markdown è supportato."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Conteggi oggetti"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7491,63 +7512,63 @@ msgstr ""
"Visualizza un set di modelli NetBox e il numero di oggetti creati per ogni "
"tipo."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Filtri da applicare durante il conteggio del numero di oggetti"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
"Formato non valido. I filtri degli oggetti devono essere passati come "
"dizionario."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Elenco oggetti"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Visualizza un elenco arbitrario di oggetti."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Il numero predefinito di oggetti da visualizzare"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
"Formato non valido. I parametri URL devono essere passati come dizionario."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "Feed RSS"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Incorpora un feed RSS da un sito Web esterno."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "URL del feed"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Il numero massimo di oggetti da visualizzare"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr ""
"Per quanto tempo conservare il contenuto memorizzato nella cache (in "
"secondi)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Segnalibri"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Mostra i tuoi segnalibri personali"
@@ -7590,8 +7611,8 @@ msgstr "Tipo di cluster (slug)"
msgid "Tenant group"
msgstr "Gruppo di inquilini"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Gruppo di inquilini (slug)"
@@ -7728,7 +7749,7 @@ msgstr "È attivo"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Tipi di oggetti"
@@ -7830,8 +7851,8 @@ msgstr "La classificazione degli ingressi"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Utenti"
@@ -7843,8 +7864,8 @@ msgstr "Nomi utente separati da virgole, racchiusi tra virgolette"
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Gruppi"
@@ -8576,10 +8597,19 @@ msgstr "set di scelta dei campi personalizzati"
msgid "custom field choice sets"
msgstr "set di scelte di campi personalizzati"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "È necessario definire scelte di base o extra."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Impossibile rimuovere la scelta {choice} come ce ne sono {model} oggetti che"
+" vi fanno riferimento."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "disposizione"
@@ -9157,64 +9187,64 @@ msgstr "Messaggio"
msgid "Method"
msgstr "Metodo"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Assicurati che questo valore sia uguale a %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Assicurati che questo valore non sia uguale %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Questo campo deve essere vuoto."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Questo campo non deve essere vuoto."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Le regole di convalida devono essere passate come dizionario"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Convalida personalizzata non riuscita per {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Attributo non valido»{name}\"per richiesta"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Attributo non valido»{name}\"per {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "La tua dashboard è stata reimpostata."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Widget aggiunto: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Widget aggiornato: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Widget eliminato: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Errore durante l'eliminazione del widget: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr ""
"Impossibile eseguire lo script: processo di lavoro RQ non in esecuzione."
@@ -9287,19 +9317,19 @@ msgstr "Testo in chiaro"
msgid "Invalid IP address format: {address}"
msgstr "Formato dell'indirizzo IP non valido: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Obiettivo di importazione"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Obiettivo di importazione (nome)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Obiettivo di esportazione"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Destinazione di esportazione (nome)"
@@ -9369,11 +9399,11 @@ msgstr "Prefissi che contengono questo prefisso o IP"
msgid "Mask length"
msgstr "Lunghezza della maschera"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "Numero VLAN (1-4094)"
@@ -9393,23 +9423,23 @@ msgid "Parent prefix"
msgstr "Prefisso principale"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Macchina virtuale (nome)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Macchina virtuale (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Interfaccia (nome)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "Interfaccia VM (nome)"
@@ -9437,19 +9467,27 @@ msgstr "Servizio (ID)"
msgid "NAT inside IP address (ID)"
msgstr "Indirizzo IP interno (ID) NAT"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Interfaccia assegnata"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Interfaccia VM assegnata"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "Indirizzo IP (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "indirizzo IP"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "IPv4 (ID) primario"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "IPv6 primario (ID)"
@@ -9663,10 +9701,6 @@ msgstr "Macchina virtuale"
msgid "Parent VM of assigned interface (if any)"
msgstr "VM principale dell'interfaccia assegnata (se presente)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Interfaccia assegnata"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "È primario"
@@ -11254,9 +11288,9 @@ msgstr "Amministratore"
msgid "API Tokens"
msgstr "Token API"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Autorizzazioni"
@@ -11411,63 +11445,63 @@ msgstr "Impossibile aggiungere negozi al registro dopo l'inizializzazione"
msgid "Cannot delete stores from registry"
msgstr "Impossibile eliminare i negozi dal registro"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "cechi"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "danese"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Tedesco"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Inglese"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "spagnolo"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "Francese"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "Italiano"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Giapponese"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Olandese"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Polacco"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "portoghese"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Russo"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "turco"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "ucraino"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "Cinese"
@@ -13142,7 +13176,7 @@ msgstr "Aggiungi nuovo membro"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Azioni"
@@ -14201,7 +14235,7 @@ msgstr ""
"Fare clic qui per provare a caricare nuovamente"
" NetBox."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14230,7 +14264,7 @@ msgid "Add Contact Group"
msgstr "Aggiungi gruppo di contatti"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Ruolo di contatto"
@@ -14268,7 +14302,7 @@ msgid "View"
msgstr "Visualizza"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Vincoli"
@@ -14295,11 +14329,6 @@ msgstr "Memoria"
msgid "Disk Space"
msgstr "Spazio su disco"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Aggiungi macchina virtuale"
@@ -14540,57 +14569,57 @@ msgstr "Proprietà dei link"
msgid "Distance"
msgstr "Distanza"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Gruppo di contatto dei genitori (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Gruppo di contatto con i genitori (slug)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Gruppo di contatti (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Gruppo di contatti (slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Contatto (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Ruolo di contatto (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Ruolo di contatto (slug)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Gruppo di contatti"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Gruppo di inquilini principali (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Gruppo di inquilini principali (slug)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Gruppo di inquilini (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Gruppo di inquilini (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Gruppo di inquilini (slug)"
@@ -14757,11 +14786,11 @@ msgstr "Può cambiare"
msgid "Can Delete"
msgstr "Può eliminare"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Interfaccia utente"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14771,7 +14800,7 @@ msgstr ""
"registrare la tua chiave prima di inviare questo modulo, poiché "
"potrebbe non essere più accessibile una volta creato il token."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14781,31 +14810,31 @@ msgstr ""
"vuoto per non avere restrizioni. Esempio: "
"10.1.1.0/24,192.168.10.16/32,2001: db 8:1: :/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Conferma la password"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Inserisci la stessa password di prima, per la verifica."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr "Le password non corrispondono! Controlla i dati inseriti e riprova."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Azioni aggiuntive"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Azioni concesse in aggiunta a quelle sopra elencate"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Oggetti"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14815,11 +14844,11 @@ msgstr ""
"consentiti. Lascia null in modo che corrisponda a tutti gli oggetti di "
"questo tipo. Un elenco di più oggetti risulterà in un'operazione OR logica."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "È necessario selezionare almeno un'azione."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Filtro non valido per {model}: {error}"
@@ -15081,7 +15110,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Valore non valido per un campo a scelta multipla: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Oggetto non trovato: %(value)s"
@@ -15095,11 +15124,16 @@ msgstr ""
"«{value}\"non è un valore univoco per questo campo; sono stati trovati più "
"oggetti"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "«{field_name}\"è un nome di campo di accesso non valido."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Il tipo di oggetto deve essere specificato come».»"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Tipo di oggetto non valido"
@@ -15697,19 +15731,19 @@ msgstr "Firme DSA"
msgid "Group {n}"
msgstr "Gruppo {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "LAN privata Ethernet"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "LAN privata virtuale Ethernet"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Albero privato Ethernet"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Albero privato virtuale Ethernet"
@@ -15741,33 +15775,31 @@ msgstr "Tunnel (nome)"
msgid "Outside IP (ID)"
msgstr "IP esterno (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "Politica IKE (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "Politica IKE (nome)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "Politica IPSec (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "Politica IPSec (nome)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (slug)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "Interfaccia VM (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (nome)"
diff --git a/netbox/translations/ja/LC_MESSAGES/django.mo b/netbox/translations/ja/LC_MESSAGES/django.mo
index c0900e5b4a2..db317509138 100644
Binary files a/netbox/translations/ja/LC_MESSAGES/django.mo and b/netbox/translations/ja/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/ja/LC_MESSAGES/django.po b/netbox/translations/ja/LC_MESSAGES/django.po
index 0e31a62881c..39f43804110 100644
--- a/netbox/translations/ja/LC_MESSAGES/django.po
+++ b/netbox/translations/ja/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Japanese (https://app.transifex.com/netbox-community/teams/178115/ja/)\n"
@@ -25,7 +25,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Key"
@@ -61,7 +61,7 @@ msgstr "最終使用日"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "許可された IP"
@@ -88,8 +88,8 @@ msgstr "パスワードは正常に変更されました。"
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -101,8 +101,8 @@ msgstr "プロビジョニング"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -113,8 +113,8 @@ msgid "Active"
msgstr "アクティブ"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "オフライン"
@@ -127,7 +127,7 @@ msgstr "デプロビジョニング"
msgid "Decommissioned"
msgstr "廃止"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "プライマリ"
@@ -153,7 +153,7 @@ msgstr "非アクティブ"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "リージョン (ID)"
@@ -165,7 +165,7 @@ msgstr "リージョン (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "リージョン (slug)"
@@ -194,7 +194,7 @@ msgstr "サイトグループ (slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -260,7 +260,7 @@ msgstr "サイト"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "サイト (slug)"
@@ -314,7 +314,7 @@ msgstr "回線タイプ (slug)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "サイト (ID)"
@@ -333,13 +333,13 @@ msgstr "ターミネーション A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -348,7 +348,7 @@ msgstr "検索"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -532,9 +532,9 @@ msgstr "説明"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -571,9 +571,9 @@ msgstr "サービス ID"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -586,7 +586,7 @@ msgid "Color"
msgstr "色"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -609,7 +609,7 @@ msgstr "色"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -643,14 +643,14 @@ msgid "Type"
msgstr "タイプ"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "プロバイダアカウント"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -666,8 +666,8 @@ msgstr "プロバイダアカウント"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -696,7 +696,7 @@ msgstr "プロバイダアカウント"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -720,8 +720,8 @@ msgstr "ステータス"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -887,21 +887,21 @@ msgstr "終了詳細"
msgid "Priority"
msgstr "優先度"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "割当プロバイダ"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "割当プロバイダアカウント"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "回線のタイプ"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -913,8 +913,8 @@ msgstr "回線のタイプ"
msgid "Operational status"
msgstr "運用状況"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -930,7 +930,7 @@ msgstr "運用状況"
msgid "Assigned tenant"
msgstr "割当テナント"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -938,7 +938,7 @@ msgstr "割当テナント"
msgid "Termination"
msgstr "終了"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1094,7 +1094,7 @@ msgstr "タームサイド"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "割当"
@@ -1149,11 +1149,11 @@ msgid "Circuit Group"
msgstr "回線グループ"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1176,9 +1176,9 @@ msgid "Unique circuit ID"
msgstr "一意な回線 ID"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1272,7 +1272,7 @@ msgstr "パッチパネル ID とポート番号"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1307,11 +1307,11 @@ msgstr "回線終端をサイトとプロバイダーネットワークの両方
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1395,11 +1395,11 @@ msgstr "プロバイダネットワーク"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1537,8 +1537,8 @@ msgstr "保証帯域"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1615,8 +1615,8 @@ msgstr "完了"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "失敗"
@@ -1682,42 +1682,42 @@ msgstr "停止しました"
msgid "Cancelled"
msgstr "キャンセルされました"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "ローカル"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "ユーザ名"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "HTTP (S) でのcloneに使用されます"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "パスワード"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "ブランチ"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "リモートデータの取得に失敗しました ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "AWS アクセスキー ID"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "AWS シークレットアクセスキー"
@@ -1772,7 +1772,7 @@ msgstr "ユーザ名"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1886,7 +1886,7 @@ msgstr "以前に完了"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "ユーザ"
@@ -1940,7 +1940,7 @@ msgstr "同期するファイルをアップロードするか、データファ
msgid "Rack Elevations"
msgstr "ラック図"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1983,7 +1983,7 @@ msgstr "ユーザ設定"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "その他"
@@ -2042,7 +2042,7 @@ msgid "Change logging is not supported for this object type ({type})."
msgstr "このオブジェクトタイプ ({type}) では変更ログはサポートされていません。"
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2079,20 +2079,20 @@ msgid "Config revision #{id}"
msgstr "設定履歴 #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2107,8 +2107,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2218,58 +2218,58 @@ msgstr "管理対象ファイル"
msgid "managed files"
msgstr "管理対象ファイル"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "予定日時"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "間隔"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "繰り返し間隔 (分)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "開始日時"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "完了日時"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "データ"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "エラー"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "ジョブ ID"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "ジョブ"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "ジョブ"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "このオブジェクトタイプにはジョブを割り当てられません ({type})。"
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr "ジョブ終了のステータスが無効です。選択肢は以下のとおりです。 {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr "enqueue () は schedule_at と immediate の両方の値を指定して呼び出すことはできません。"
@@ -2318,7 +2318,7 @@ msgid "Last updated"
msgstr "最終更新日"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2510,7 +2510,7 @@ msgid "Staging"
msgstr "ステージング"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "廃止"
@@ -2574,17 +2574,17 @@ msgstr "廃止済"
msgid "Millimeters"
msgstr "ミリメートル"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "インチ"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "前面から背面"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "背面から前面"
@@ -2597,8 +2597,8 @@ msgstr "背面から前面"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2642,7 +2642,7 @@ msgstr "前面"
msgid "Rear"
msgstr "背面"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "検証"
@@ -2651,67 +2651,79 @@ msgstr "検証"
msgid "Inventory"
msgstr "在庫"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "左から右"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "右から左"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "側面から背面"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "背面から側面"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "下から上へ"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "上から下へ"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "パッシブ"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "混合"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (ロック無)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (ロック有)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "California Style"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "International/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "独自規格"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "その他"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/International"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "物理"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "仮想"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2719,13 +2731,13 @@ msgstr "仮想"
msgid "Wireless"
msgstr "無線"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "仮想インタフェース"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2733,27 +2745,27 @@ msgstr "仮想インタフェース"
msgid "Bridge"
msgstr "ブリッジ"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "リンクアグリゲーション (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "イーサネット (固定)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "イーサネット (モジュール)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "イーサネット (バックプレーン)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "セルラー"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2761,130 +2773,130 @@ msgstr "セルラー"
msgid "Serial"
msgstr "シリアル"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "同軸"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "スタック"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "半二重"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "全二重"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "自動"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "アクセス"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "タグ付き"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "タグ付き (全て)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "IEEE スタンダード"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "パッシブ 24V (2 ペア)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "パッシブ 24V (4ペア)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "パッシブ 48V (2 ペア)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "パッシブ 48V (4ペア)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "カッパー"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "光ファイバー"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "ファイバー"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "接続済"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "キロメートル"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "メートル"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "センチメートル"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "マイル"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "フィート"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "キログラム"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "グラム"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "ポンド"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "オンス"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "冗長"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "単相"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "三相"
@@ -3136,7 +3148,7 @@ msgstr "奥行きをすべて使うか"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3180,7 +3192,7 @@ msgid "Device model"
msgstr "デバイスモデル"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "インタフェース (ID)"
@@ -3194,8 +3206,8 @@ msgstr "モジュールベイ (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "デバイス (ID)"
@@ -3204,8 +3216,8 @@ msgid "Rack (name)"
msgstr "ラック (名前)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "デバイス (名前)"
@@ -3255,8 +3267,8 @@ msgstr "割当 VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3292,7 +3304,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3348,7 +3360,7 @@ msgstr "仮想デバイスコンテキスト (識別子)"
msgid "Wireless LAN"
msgstr "無線 LAN"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "無線リンク"
@@ -3376,12 +3388,12 @@ msgstr "マスター (ID)"
msgid "Master (name)"
msgstr "マスター (名前)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "テナント (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "テナント (slug)"
@@ -3408,7 +3420,7 @@ msgstr "タグ"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3455,8 +3467,8 @@ msgstr "タイムゾーン"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3520,7 +3532,7 @@ msgstr "取り付け奥行き"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3581,8 +3593,8 @@ msgstr "ナンバリング"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3690,12 +3702,12 @@ msgstr "パーツ番号"
msgid "U height"
msgstr "ユニット数"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "ラック利用率に含めない"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3784,10 +3796,10 @@ msgstr "プラットフォーム"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3914,8 +3926,8 @@ msgid "Maximum draw"
msgstr "最大消費電力"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "最大消費電力 (ワット)"
@@ -3924,8 +3936,8 @@ msgid "Allocated draw"
msgstr "割当電力"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "割当消費電力 (ワット)"
@@ -3946,16 +3958,16 @@ msgstr "管理のみ"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "PoE モード"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "PoE タイプ"
@@ -3979,7 +3991,7 @@ msgstr "無線ロール"
msgid "Module"
msgstr "モジュール"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "LAG"
@@ -3991,7 +4003,7 @@ msgstr "仮想デバイスコンテキスト"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4038,7 +4050,7 @@ msgid "Wireless LAN group"
msgstr "無線 LAN グループ"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4420,7 +4432,7 @@ msgstr "対応する背面ポート"
msgid "Physical medium classification"
msgstr "物理媒体の分類"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "取付済みデバイス"
@@ -4509,7 +4521,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} サイドターミネーションが見つかりません: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4561,7 +4573,7 @@ msgstr "プライマリ IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "プレフィックス長のある IPv6 アドレス、例:2001: db8:: 1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4720,7 +4732,7 @@ msgid "Mgmt only"
msgstr "管理のみ"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4753,7 +4765,7 @@ msgstr "送信出力 (dBm)"
msgid "Cable"
msgstr "ケーブル"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "自動検出"
@@ -4899,7 +4911,7 @@ msgid "Front Port"
msgstr "前面ポート"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5025,7 +5037,7 @@ msgid ""
msgstr ""
"前面ポートの数 ({frontport_count}) は選択した背面ポートの数 ({rearport_count}) と一致する必要があります。"
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5048,7 +5060,7 @@ msgstr "最初の VC メンバーのポジションを指定する必要があ
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "ラベル"
@@ -5146,7 +5158,7 @@ msgid ""
msgstr "{module} は、モジュールタイプに取り付けられる場合、モジュールベイ位置の代わりとして使用できます。"
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "物理ラベル"
@@ -5166,178 +5178,178 @@ msgid ""
"module type."
msgstr "構成要素テンプレートは、デバイスタイプまたはモジュールタイプのいずれかに関連付ける必要があります。"
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "コンソールポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "コンソールポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "コンソールサーバポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "コンソールサーバポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "最大消費電力"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "割当消費電力"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "電源ポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "電源ポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr "割当消費電力は最大消費電力 ({maximum_draw}W) を超えることはできません。"
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "供給端子"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "電力相 (三相電源用)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "電源コンセントテンプレート"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "電源コンセントテンプレート"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr "親電源ポート ({power_port}) は同じデバイスタイプに属している必要があります"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr "親電源ポート ({power_port}) は同じモジュールタイプに属している必要があります"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "管理のみ"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "ブリッジインタフェース"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "無線ロール"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "インタフェーステンプレート"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "インタフェーステンプレート"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "インタフェースを自分自身にブリッジすることはできません。"
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr "ブリッジインタフェース ({bridge}) は同じデバイスタイプに属している必要があります"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "ブリッジインタフェース ({bridge}) は同じモジュールタイプに属している必要があります"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "背面ポート位置"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "前面ポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "前面ポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "背面ポート ({name}) は同じデバイスタイプに属している必要があります"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
"positions"
msgstr "背面ポートの位置 ({position}) が無効です; 背面ポート {name} は{count}箇所しかありません"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "位置"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "背面ポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "背面ポートテンプレート"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "位置"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr "取付済み構成要素名を変更する際に参照する識別子"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "モジュールベイテンプレート"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "モジュールベイテンプレート"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "デバイスベイテンプレート"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "デバイスベイテンプレート"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5345,212 +5357,212 @@ msgid ""
msgstr ""
"デバイスベイを許可するためには、デバイスタイプ ({device_type}) のサブデバイスロールを「parent」に設定する必要があります。"
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "パーツ ID"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "メーカ指定の部品識別子"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "在庫品目テンプレート"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "在庫品目テンプレート"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "構成要素を別のデバイスに移動することはできません。"
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "ケーブル端"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "接続済みとしてマークする"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "ケーブルが接続されているかのように扱う"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "ケーブルを接続するときは、ケーブルの端 (A または B) を指定する必要があります。"
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "ケーブルの端はケーブルなしでセットしないでください。"
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "ケーブルが接続されている状態では接続済みとマークできません。"
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} モデルは親オブジェクトプロパティを宣言しなければなりません"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "物理ポートタイプ"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "速度"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "ポート速度 (bps)"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "コンソールポート"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "コンソールポート"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "コンソールサーバポート"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "コンソールサーバポート"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "電源ポート"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "電源ポート"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "電源コンセント"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "電源コンセント"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr "親電源ポート ({power_port}) は同じデバイスに属している必要があります"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "モード"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "IEEE 802.1Q タギング戦略"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "親インタフェース"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "親ラグ"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "このインタフェースは帯域外管理にのみ使用されます。"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "速度 (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "デュプレックス"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64 ビットのWWN (World Wide Name)"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "無線チャネル"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "チャネル周波数 (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "選択したチャンネルによって設定されます (設定されている場合)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "送信パワー (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "無線 LAN"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "タグなし VLAN"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "タグ付き VLAN"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "インタフェース"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "インタフェース"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} インタフェースにはケーブルを接続できません。"
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type} インタフェースは接続済みとしてマークできません。"
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "インタフェースを自身の親にすることはできません。"
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr "親インタフェースに割り当てることができるのは仮想インタフェースだけです。"
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
"({device})"
msgstr "選択した親インタフェース ({interface}) は別のデバイス ({device}) に属しています"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5559,14 +5571,14 @@ msgstr ""
"選択した親インタフェース ({interface}) が属する {device} "
"は、バーチャルシャーシ{virtual_chassis}には含まれていません。 。"
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
"({device})."
msgstr "選択したブリッジインタフェース ({bridge}) は別のデバイス ({device}) に属しています。"
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5575,21 +5587,21 @@ msgstr ""
"選択したブリッジインタフェース ({interface}) が属する "
"{device}は、バーチャルシャーシ{virtual_chassis}には含まれていません。 "
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "仮想インタフェースは親 LAG インタフェースを持つことはできません。"
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "LAG インタフェースを自身の親にすることはできません。"
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr "選択した LAG インタフェース ({lag}) は別のデバイス ({device}) に属しています。"
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5598,43 +5610,43 @@ msgstr ""
"選択した LAG インタフェース ({lag}) が属する {device}は、バーチャルシャーシには含まれていません "
"{virtual_chassis}。"
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "仮想インタフェースには PoE モードを設定できません。"
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "仮想インタフェースに PoE タイプを設定することはできません。"
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "PoE タイプを指定するときは、PoE モードを指定する必要があります。"
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr "無線ロールは無線インタフェースでのみ設定できます。"
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "チャネルは無線インタフェースでのみ設定できます。"
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr "チャネル周波数は、無線インタフェースでのみ設定できます。"
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr "選択したチャンネルではカスタム周波数を指定できません。"
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr "チャネル幅は無線インタフェースでのみ設定できます。"
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr "選択したチャンネルではカスタム幅を指定できません。"
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5642,24 +5654,24 @@ msgid ""
msgstr ""
"タグ無し VLAN ({untagged_vlan}) はインタフェースの親デバイスと同じサイトに属しているか、グローバルである必要があります。"
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "対応する背面ポートのマップ位置"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "前面ポート"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "前面ポート"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "背面ポート ({rear_port}) は同じデバイスに属している必要があります"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5667,115 +5679,115 @@ msgid ""
msgstr ""
"背面ポートの位置 ({rear_port_position}) が無効です: 背面ポート {name} は {positions} 箇所しかありません。"
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "マップできる前面ポートの数"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "背面ポート"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "背面ポート"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
" ({frontport_count})"
msgstr "ポジションの数は、マップされた前面ポートの数より少なくすることはできません ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "モジュールベイ"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "モジュールベイ"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr "モジュールベイは、その中に取り付けられているモジュールに属することはできません。"
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "デバイスベイ"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "デバイスベイ"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr "このタイプ ({device_type}) のデバイスは、デバイスベイをサポートしていません。"
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "デバイスをそれ自体に挿入することはできません。"
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
msgstr "指定されたデバイスは取付できません。デバイスは既に {bay} に取付られています 。"
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "在庫品目ロール"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "在庫品目ロール"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "シリアル番号"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "アセットタグ"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "この部品を識別するために使用される一意のタグ"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "自動検出"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "このアイテムは自動的に検出されました"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "在庫品目"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "在庫品目"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "自分を親として割り当てることはできません。"
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "親在庫品目は同じデバイスに属していません。"
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "子を持つ在庫品目は移動できません"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr "在庫品目を別のデバイスの構成要素に割り当てることはできません"
@@ -5917,7 +5929,7 @@ msgstr "このデバイスが果たす機能"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "製造元によって割当られた、シャーシのシリアル番号"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "このデバイスを識別するために使用される一意のタグ"
@@ -5929,12 +5941,12 @@ msgstr "ポジション (U)"
msgid "rack face"
msgstr "ラックフェイス"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "プライマリ IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "プライマリ IPv6"
@@ -6075,70 +6087,77 @@ msgstr "割当クラスタは別のサイトに属しています ({site})"
msgid "A device assigned to a virtual chassis must have its position defined."
msgstr "仮想シャーシに割当られたデバイスには、その位置が定義されている必要があります。"
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr "デバイスを仮想シャーシから削除できない {virtual_chassis} 現在マスターとして指定されているからです。"
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "モジュール"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "モジュール"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
"device ({device})."
msgstr "モジュールは、割当デバイスに属するモジュールベイ内に取り付ける必要があります ({device})。"
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "ドメイン"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "バーチャルシャーシ"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr "選択したマスター ({master}) はこの仮想シャーシに割り当てられていません。"
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
"form a cross-chassis LAG interfaces."
msgstr "バーチャルシャーシ{self}を削除できません 。クロスシャーシ LAG インタフェースを形成するメンバーインタフェースがあります。"
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "識別子"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "親デバイスに固有の数値識別子"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "コメント"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "仮想デバイスコンテキスト"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "仮想デバイスコンテキスト"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip}は IPv{family}アドレスではありません。"
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr "プライマリ IP アドレスは、割当デバイスのインタフェースに属している必要があります。"
@@ -6555,7 +6574,7 @@ msgstr "設定テンプレート"
msgid "Site Group"
msgstr "サイトグループ"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6564,12 +6583,12 @@ msgstr "サイトグループ"
msgid "IP Address"
msgstr "IP アドレス"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "IPv4 アドレス"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "IPv6 アドレス"
@@ -6607,8 +6626,8 @@ msgstr "電源ポート"
msgid "Power outlets"
msgstr "電源コンセント"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6646,8 +6665,8 @@ msgstr "在庫品目"
msgid "Module Bay"
msgstr "モジュールベイ"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6705,75 +6724,75 @@ msgstr "FHRP グループ"
msgid "Tunnel"
msgstr "トンネル"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "管理のみ"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "取付済みモジュール"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "モジュールシリアル番号"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "モジュール資産タグ"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "モジュールステータス"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "構成要素"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "アイテム"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "デバイスタイプ"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "モジュールタイプ"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "プラットフォーム"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "デフォルトプラットフォーム"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "奥行きをすべて利用する"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "U 高さ"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "インスタンス"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6784,7 +6803,7 @@ msgstr "インスタンス"
msgid "Console Ports"
msgstr "コンソールポート"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6795,7 +6814,7 @@ msgstr "コンソールポート"
msgid "Console Server Ports"
msgstr "コンソールサーバポート"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6806,7 +6825,7 @@ msgstr "コンソールサーバポート"
msgid "Power Ports"
msgstr "電源ポート"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6817,7 +6836,7 @@ msgstr "電源ポート"
msgid "Power Outlets"
msgstr "電源コンセント"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6827,7 +6846,7 @@ msgstr "電源コンセント"
msgid "Front Ports"
msgstr "前面ポート"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6838,7 +6857,7 @@ msgstr "前面ポート"
msgid "Rear Ports"
msgstr "背面ポート"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6846,7 +6865,7 @@ msgstr "背面ポート"
msgid "Device Bays"
msgstr "デバイスベイ"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7284,81 +7303,81 @@ msgstr "ウィジェットタイプ"
msgid "Unregistered widget class: {name}"
msgstr "未登録のウィジェットクラス: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} render () メソッドを定義する必要があります。"
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "メモ"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr "任意のカスタムコンテンツを表示します。Markdown がサポートされています。"
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "オブジェクト数"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
msgstr "NetBox モデルのセットと、各タイプで作成されたオブジェクトの数を表示します。"
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "オブジェクトの数をカウントするときに適用するフィルタ"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr "形式が無効です。オブジェクトフィルタはディクショナリとして渡さなければなりません。"
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "オブジェクトリスト"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "任意のオブジェクトリストを表示します。"
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "デフォルトで表示するオブジェクト数"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr "形式が無効です。URL パラメータはディクショナリとして渡さなければなりません。"
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS フィード"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "外部 Web サイトの RSS フィードを埋め込みます。"
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "フィード URL"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "表示するオブジェクトの最大数"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "キャッシュされたコンテンツを保存する時間 (秒)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "ブックマーク"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "個人用のブックマークを表示する"
@@ -7401,8 +7420,8 @@ msgstr "クラスタタイプ (slug)"
msgid "Tenant group"
msgstr "テナントグループ"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "テナントグループ (slug)"
@@ -7539,7 +7558,7 @@ msgstr "有効"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "オブジェクトタイプ"
@@ -7638,8 +7657,8 @@ msgstr "エントリの分類"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "ユーザ"
@@ -7651,8 +7670,8 @@ msgstr "二重引用符で囲まれたカンマ区切りユーザ名"
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "グループ"
@@ -8337,10 +8356,17 @@ msgstr "カスタムフィールド選択肢"
msgid "custom field choice sets"
msgstr "カスタムフィールド選択肢"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "基本選択肢または追加選択肢を定義する必要があります。"
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr "選択肢を削除できません {choice} あるように {model} それを参照するオブジェクト。"
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "レイアウト"
@@ -8901,64 +8927,64 @@ msgstr "メッセージ"
msgid "Method"
msgstr "メソッド"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "%(limit_value)sと等しいことを確認する 。"
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "%(limit_value)sと等しくないことを確認する。"
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "このフィールドは空でなければなりません。"
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "このフィールドは空であってはなりません。"
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "検証ルールはディクショナリとして渡さなければなりません"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "のカスタム検証が失敗しました {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "属性が無効です」{name}「」(リクエスト用)"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "{model}において{name}属性は無効です"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "ダッシュボードがリセットされました。"
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "ウィジェットの追加: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "ウィジェットの更新: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "削除したウィジェット: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "ウィジェットの削除中にエラーが発生しました: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "スクリプトを実行できません:RQ ワーカープロセスが実行されていません。"
@@ -9026,19 +9052,19 @@ msgstr "プレーンテキスト"
msgid "Invalid IP address format: {address}"
msgstr "IP アドレス形式が無効です: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "インポート対象"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "インポート対象 (名前)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "エクスポート対象"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "エクスポート対象 (名前)"
@@ -9108,11 +9134,11 @@ msgstr "このプレフィックス / IP を含むプレフィックス"
msgid "Mask length"
msgstr "マスクの長さ"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "VLAN 番号 (1-4094)"
@@ -9132,23 +9158,23 @@ msgid "Parent prefix"
msgstr "親プレフィックス"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "仮想マシン (名前)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "仮想マシン (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "インタフェース (名前)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "VM インタフェース (名前)"
@@ -9176,19 +9202,27 @@ msgstr "サービス (ID)"
msgid "NAT inside IP address (ID)"
msgstr "NAT 内部の IP アドレス (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "割当インタフェース"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "割り当てられた VM インターフェイス"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "IP アドレス (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP アドレス"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "プライマリ IPv4 (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "プライマリ IPv6 (ID)"
@@ -9402,10 +9436,6 @@ msgstr "仮想マシン"
msgid "Parent VM of assigned interface (if any)"
msgstr "割当インタフェースの親VM (存在する場合)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "割当インタフェース"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "プライマリか"
@@ -10935,9 +10965,9 @@ msgstr "管理者"
msgid "API Tokens"
msgstr "API トークン"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "権限"
@@ -11084,63 +11114,63 @@ msgstr "初期化後にストアをレジストリに追加できません"
msgid "Cannot delete stores from registry"
msgstr "レジストリからストアを削除できません"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "チェコ語"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "デンマーク語"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "ドイツ人"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "英語"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "スペイン語"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "フランス語"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "イタリア語"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "日本語"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "オランダ語"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "ポーランド語"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "ポルトガル語"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "ロシア語"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "トルコ語"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "ウクライナ語"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "中国語"
@@ -12805,7 +12835,7 @@ msgstr "新しいメンバーを追加"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "アクション"
@@ -13831,7 +13861,7 @@ msgstr ""
msgid "Click here to attempt loading NetBox again."
msgstr "クリック ここに NetBox をもう一度ロードしてみます。"
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -13860,7 +13890,7 @@ msgid "Add Contact Group"
msgstr "連絡先グループを追加"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "連絡先のロール"
@@ -13898,7 +13928,7 @@ msgid "View"
msgstr "ビュー"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "制約"
@@ -13925,11 +13955,6 @@ msgstr "メモリー"
msgid "Disk Space"
msgstr "ディスク容量"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "バーチャルマシンを追加"
@@ -14170,57 +14195,57 @@ msgstr "リンクプロパティ"
msgid "Distance"
msgstr "距離"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "親連絡先グループ (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "親連絡先グループ (スラッグ)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "連絡先グループ (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "コンタクトグループ (slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "連絡先 (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "連絡先ロール (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "コンタクトロール (slug)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "連絡先グループ"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "親テナントグループ (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "親テナントグループ (スラッグ)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "テナントグループ (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "テナントグループ (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "テナントグループ (slug)"
@@ -14385,11 +14410,11 @@ msgstr "変更可能"
msgid "Can Delete"
msgstr "削除可能"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "ユーザインタフェース"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14398,7 +14423,7 @@ msgstr ""
"キーの長さは 40 文字以上でなければなりません。 キーは必ず記録してください。 "
"このフォームを送信する前に。トークンが作成されるとアクセスできなくなる可能性があるためです。"
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14407,31 +14432,31 @@ msgstr ""
"トークンを使用できる許可された IPv4/IPv6 ネットワーク。制限がない場合は空白のままにしてください。例: "
"10.1.1.0/24,192.168.10.16/32,2001: db 8:1:: /64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "パスワードを確認"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "確認のため、以前と同じパスワードを入力します。"
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr "パスワードが一致しません!入力内容を確認して、もう一度試してください。"
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "その他のアクション"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "上記以外に付与されたアクション"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "オブジェクト"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14440,11 +14465,11 @@ msgstr ""
"許可されたオブジェクトのみを返すクエリセットフィルタの JSON 式。null "
"のままにしておくと、このタイプのすべてのオブジェクトに一致します。複数のオブジェクトのリストでは、論理 OR 演算が行われます。"
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "少なくとも 1 つのアクションを選択する必要があります。"
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "のフィルタが無効です {model}: {error}"
@@ -14684,7 +14709,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "複数選択フィールドの値が無効です: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "オブジェクトが見つかりません: %(value)s"
@@ -14696,11 +14721,16 @@ msgid ""
"found"
msgstr "「{value}「」はこのフィールドにとって一意の値ではありません。複数のオブジェクトが見つかりました"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "「{field_name}「」は無効なアクセサーフィールド名です。"
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "オブジェクトタイプは「」として指定する必要があります。」"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "オブジェクトタイプが無効です"
@@ -15256,19 +15286,19 @@ msgstr "DSA シグネチャ"
msgid "Group {n}"
msgstr "グループ {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "イーサネットプライベート LAN"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "イーサネット仮想プライベート LAN"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "イーサネットプライベートツリー"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "イーサネット仮想プライベートツリー"
@@ -15300,33 +15330,31 @@ msgstr "トンネル (名前)"
msgid "Outside IP (ID)"
msgstr "外部IP (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "IKE ポリシー (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "IKE ポリシー (名前)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "IPsec ポリシー (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "IPsec ポリシー (名前)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (slug)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "VM インタフェース (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (名前)"
diff --git a/netbox/translations/nl/LC_MESSAGES/django.mo b/netbox/translations/nl/LC_MESSAGES/django.mo
index 29d8a6af54b..ca93c83dcfe 100644
Binary files a/netbox/translations/nl/LC_MESSAGES/django.mo and b/netbox/translations/nl/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/nl/LC_MESSAGES/django.po b/netbox/translations/nl/LC_MESSAGES/django.po
index 72644b3eb1a..9a9392642ec 100644
--- a/netbox/translations/nl/LC_MESSAGES/django.po
+++ b/netbox/translations/nl/LC_MESSAGES/django.po
@@ -8,15 +8,16 @@
# deku_m, 2024
# Peter Mulder , 2024
# Jeremy Stretch, 2024
+# Sebastian Berm, 2024
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2024\n"
+"Last-Translator: Sebastian Berm, 2024\n"
"Language-Team: Dutch (https://app.transifex.com/netbox-community/teams/178115/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -26,7 +27,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Sleutel"
@@ -62,7 +63,7 @@ msgstr "Laatst gebruikt"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "Toegestane IP-adressen"
@@ -91,8 +92,8 @@ msgstr "Je wachtwoord is succesvol gewijzigd."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -104,8 +105,8 @@ msgstr "Provisioning"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -116,8 +117,8 @@ msgid "Active"
msgstr "Actief"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Offline"
@@ -130,7 +131,7 @@ msgstr "Deprovisioning"
msgid "Decommissioned"
msgstr "Buiten gebruik"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Primair"
@@ -156,7 +157,7 @@ msgstr "Inactief"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Regio (ID)"
@@ -168,7 +169,7 @@ msgstr "Regio (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Regio (slug)"
@@ -197,7 +198,7 @@ msgstr "Sitegroep (slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -263,7 +264,7 @@ msgstr "Site"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Site (slug)"
@@ -317,7 +318,7 @@ msgstr "Circuittype (slug)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Locatie (ID)"
@@ -336,13 +337,13 @@ msgstr "Eindpunt A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -351,7 +352,7 @@ msgstr "Zoeken"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -535,9 +536,9 @@ msgstr "Omschrijving"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -574,9 +575,9 @@ msgstr "Service-ID"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -589,7 +590,7 @@ msgid "Color"
msgstr "Kleur"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -612,7 +613,7 @@ msgstr "Kleur"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -646,14 +647,14 @@ msgid "Type"
msgstr "Type"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Provideraccount"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -669,8 +670,8 @@ msgstr "Provideraccount"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -699,7 +700,7 @@ msgstr "Provideraccount"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -723,8 +724,8 @@ msgstr "Status"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -890,21 +891,21 @@ msgstr "Details van de beëindiging"
msgid "Priority"
msgstr "Prioriteit"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Toegewezen provider"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Toegewezen provideraccount"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Soort circuit"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -916,8 +917,8 @@ msgstr "Soort circuit"
msgid "Operational status"
msgstr "Operationele status"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -933,7 +934,7 @@ msgstr "Operationele status"
msgid "Assigned tenant"
msgstr "Toegewezen huurder"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -941,7 +942,7 @@ msgstr "Toegewezen huurder"
msgid "Termination"
msgstr "Opzegging"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1097,7 +1098,7 @@ msgstr "Termzijde"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Opdracht"
@@ -1152,11 +1153,11 @@ msgid "Circuit Group"
msgstr "Circuitgroep"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1179,9 +1180,9 @@ msgid "Unique circuit ID"
msgstr "Uniek circuit-ID"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1235,7 +1236,7 @@ msgstr "Circuitgroepopdracht"
#: netbox/circuits/models/circuits.py:214
msgid "Circuit group assignments"
-msgstr "Circuitgroepopdrachten"
+msgstr "Circuitgroeptoewijzingen"
#: netbox/circuits/models/circuits.py:240
msgid "termination"
@@ -1275,7 +1276,7 @@ msgstr "ID en poortnummer(s) van het patchpaneel"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1314,11 +1315,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1402,11 +1403,11 @@ msgstr "providernetwerken"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1544,8 +1545,8 @@ msgstr "Vastleggingspercentage"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1574,7 +1575,7 @@ msgstr "Opmerkingen"
#: netbox/templates/tenancy/contact.html:84
#: netbox/tenancy/tables/contacts.py:73
msgid "Assignments"
-msgstr "Opdrachten"
+msgstr "Toewijzingen"
#: netbox/circuits/tables/providers.py:23
msgid "Accounts"
@@ -1624,8 +1625,8 @@ msgstr "Voltooid"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Mislukt"
@@ -1691,42 +1692,42 @@ msgstr "Gestopt"
msgid "Cancelled"
msgstr "Geannuleerd"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Lokaal"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Gebruikersnaam"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Alleen gebruikt voor klonen met HTTP(S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Wachtwoord"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Branch"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Het ophalen van externe gegevens is mislukt ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "AWS-toegangssleutel-ID"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Geheime toegangssleutel van AWS"
@@ -1781,7 +1782,7 @@ msgstr "Gebruikersnaam"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1895,7 +1896,7 @@ msgstr "Eerder voltooid"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Gebruiker"
@@ -1952,7 +1953,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Rackverhogingen"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1995,7 +1996,7 @@ msgstr "Gebruikersvoorkeuren"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Diversen"
@@ -2056,7 +2057,7 @@ msgstr ""
"objecttype ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2093,20 +2094,20 @@ msgid "Config revision #{id}"
msgstr "Revisie van de configuratie #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2121,8 +2122,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2236,60 +2237,60 @@ msgstr "beheerd bestand"
msgid "managed files"
msgstr "beheerde bestanden"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "gepland"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "interval"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Herhalingsinterval (in minuten)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "gestart"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "voltooid"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "gegevens"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "fout"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "taak-ID"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "taak"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "taken"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "Taken kunnen niet worden toegewezen aan dit objecttype ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
"Ongeldige status voor beëindiging van het dienstverband. De keuzes zijn: "
"{choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2340,7 +2341,7 @@ msgid "Last updated"
msgstr "Laatst bijgewerkt"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2532,7 +2533,7 @@ msgid "Staging"
msgstr "Klaarzetten"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Ontmanteling"
@@ -2596,17 +2597,17 @@ msgstr "Verouderd"
msgid "Millimeters"
msgstr "Millimeters"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Inches"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Van voor naar achter"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Van achter naar voren"
@@ -2619,8 +2620,8 @@ msgstr "Van achter naar voren"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2664,7 +2665,7 @@ msgstr "Voorkant"
msgid "Rear"
msgstr "Achterkant"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Klaargezet"
@@ -2673,67 +2674,79 @@ msgstr "Klaargezet"
msgid "Inventory"
msgstr "Inventaris"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Van links naar rechts"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Van rechts naar links"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Van links naar achteren"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Van achter naar links"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Van onder naar boven"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Van boven naar beneden"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Passief"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Gemengd"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (niet-vergrendelend)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (vergrendeling)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Californische stijl"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "Internationaal/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Gepatenteerd"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Andere"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/internationaal"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Fysiek"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Virtueel"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2741,13 +2754,13 @@ msgstr "Virtueel"
msgid "Wireless"
msgstr "Draadloos"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Virtuele interfaces"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2755,27 +2768,27 @@ msgstr "Virtuele interfaces"
msgid "Bridge"
msgstr "Bridge"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Linkaggregatiegroep (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (vast)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modulair)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (backplane)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Mobiel"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2783,130 +2796,130 @@ msgstr "Mobiel"
msgid "Serial"
msgstr "Serienummer"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Coaxiaal"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Stapelen"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Half"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Volledig"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Auto"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Toegang"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Getagd"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Getagd (Alles)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "IEEE-standaard"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Passief 24V (2 paren)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Passief 24V (4 paren)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Passief 48V (2 paren)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Passief 48V (4 paren)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Koper"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Glasvezel"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Vezel"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Verbonden"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Kilometers"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Meters"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Centimeters"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Mijlen"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Feet"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Kilogrammen"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Gram"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Ponden"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Ons"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Redundant"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Een fase"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Drie fase"
@@ -3158,7 +3171,7 @@ msgstr "Is volledige diepte"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3202,7 +3215,7 @@ msgid "Device model"
msgstr "Model van het apparaat"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Interface (ID)"
@@ -3216,8 +3229,8 @@ msgstr "Modulevak (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Apparaat (ID)"
@@ -3226,8 +3239,8 @@ msgid "Rack (name)"
msgstr "Rack (naam)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Apparaat (naam)"
@@ -3277,8 +3290,8 @@ msgstr "Toegewezen VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3314,7 +3327,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3370,7 +3383,7 @@ msgstr "Context van het virtuele apparaat (ID)"
msgid "Wireless LAN"
msgstr "Draadloos LAN"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Draadloze link"
@@ -3398,12 +3411,12 @@ msgstr "Meester (ID)"
msgid "Master (name)"
msgstr "Master (naam)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Tenant (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Tenant (slug)"
@@ -3430,7 +3443,7 @@ msgstr "Labels"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3479,8 +3492,8 @@ msgstr "Tijdzone"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3544,7 +3557,7 @@ msgstr "Inbouwdiepte"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3605,8 +3618,8 @@ msgstr "Nummering"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3714,12 +3727,12 @@ msgstr "Onderdeelnummer"
msgid "U height"
msgstr "U-hoogte"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Uitsluiten van gebruik"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3808,10 +3821,10 @@ msgstr "Platform"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3938,8 +3951,8 @@ msgid "Maximum draw"
msgstr "Maximale trekking"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Maximaal stroomverbruik (watt)"
@@ -3948,8 +3961,8 @@ msgid "Allocated draw"
msgstr "Toegewezen loting"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Toegewezen stroomverbruik (watt)"
@@ -3970,16 +3983,16 @@ msgstr "Alleen voor beheer"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "PoE-modus"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "PoE-type"
@@ -4003,7 +4016,7 @@ msgstr "Draadloze rol"
msgid "Module"
msgstr "Module"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "LAG"
@@ -4015,7 +4028,7 @@ msgstr "Contexten van virtuele apparaten"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4062,7 +4075,7 @@ msgid "Wireless LAN group"
msgstr "Draadloze LAN-groep"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4451,7 +4464,7 @@ msgstr "Bijbehorende poort aan de achterkant"
msgid "Physical medium classification"
msgstr "Classificatie van fysieke media"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Geïnstalleerd apparaat"
@@ -4540,7 +4553,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} nevenbeëindiging niet gevonden: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4592,7 +4605,7 @@ msgstr "Primaire IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "IPv6-adres met prefixlengte, bijvoorbeeld 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4756,7 +4769,7 @@ msgid "Mgmt only"
msgstr "Alleen voor beheer"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4789,7 +4802,7 @@ msgstr "Zendvermogen (dBm)"
msgid "Cable"
msgstr "Kabel"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Ontdekt"
@@ -4943,7 +4956,7 @@ msgid "Front Port"
msgstr "Poort Voor"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5082,7 +5095,7 @@ msgstr ""
"overeenkomen met het geselecteerde aantal posities aan de achterkant van de "
"poort ({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5107,7 +5120,7 @@ msgstr "Voor het eerste VC-lid moet een positie worden gespecificeerd."
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "label"
@@ -5215,7 +5228,7 @@ msgstr ""
"modulecompartiment wanneer deze is gekoppeld aan een moduletype."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Fysiek label"
@@ -5241,138 +5254,138 @@ msgstr ""
"Een componentsjabloon moet gekoppeld zijn aan een apparaattype of een "
"moduletype."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "sjabloon voor consolepoort"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "sjablonen voor consolepoorten"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "poortsjabloon voor consoleserver"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "poortsjablonen voor consoleservers"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "maximale trekking"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "toegewezen gelijkspel"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "sjabloon voor voedingspoort"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "sjablonen voor voedingspoorten"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"De toegewezen trekking mag niet hoger zijn dan de maximale trekking "
"({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "voerbeen"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Fase (voor driefasige voedingen)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "sjabloon voor stopcontact"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "sjablonen voor stopcontacten"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Voedingspoort voor ouders ({power_port}) moet tot hetzelfde apparaattype "
"behoren"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Voedingspoort voor ouders ({power_port}) moet tot hetzelfde moduletype "
"behoren"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "alleen beheer"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "bridge-interface"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "draadloze rol"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "interfacesjabloon"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "interfacesjablonen"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Een interface kan niet naar zichzelf worden overbrugd."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr "Bridge-interface ({bridge}) moet tot hetzelfde apparaattype behoren"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Bridge-interface ({bridge}) moet tot hetzelfde moduletype behoren"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "positie van de achterpoort"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "sjabloon voor de voorpoort"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "sjablonen voor de voorpoort"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Achterpoort ({name}) moet tot hetzelfde apparaattype behoren"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5381,48 +5394,48 @@ msgstr ""
"Ongeldige positie van de achterpoort ({position}); achterpoort {name} heeft "
"slechts {count} standen"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "standen"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "sjabloon voor de achterpoort"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "sjablonen voor achterpoorten"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "positie"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Identificatie waarnaar moet worden verwezen bij het hernoemen van "
"geïnstalleerde componenten"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "sjabloon voor modulebay"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "sjablonen voor modulebay"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "sjabloon voor apparaatvak"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "sjablonen voor apparaatruimte"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5431,211 +5444,211 @@ msgstr ""
"De rol van het apparaattype van het subapparaat ({device_type}) moet op "
"„parent” zijn ingesteld om apparaatbays toe te staan."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "onderdeel-ID"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Onderdeel-ID toegewezen door de fabrikant"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "sjabloon voor inventarisitems"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "sjablonen voor inventarisitems"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Componenten kunnen niet naar een ander apparaat worden verplaatst."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "uiteinde van de kabel"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "markeer verbonden"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Behandel alsof er een kabel is aangesloten"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr ""
"Moet het kabeluiteinde (A of B) specificeren bij het aansluiten van een "
"kabel."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "Het kabeluiteinde mag niet zonder kabel worden ingesteld."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Kan niet markeren als verbonden met een aangesloten kabel."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} modellen moeten een eigenschap parent_object declareren"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Fysiek poorttype"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "snelheid"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Poortsnelheid in bits per seconde"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "consolepoort"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "consolepoorten"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "console-serverpoort"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "console-serverpoorten"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "voedingspoort"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "voedingspoorten"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "stopcontact"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "stopcontacten"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Voedingspoort voor ouders ({power_port}) moet tot hetzelfde apparaat behoren"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "-modus"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "IEEE 802.1Q-tagging-strategie"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "bovenliggende interface"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "LAG van de ouders"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Deze interface wordt alleen gebruikt voor beheer buiten de band"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "snelheid (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "tweezijdig"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64-bits wereldwijde naam"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "draadloos kanaal"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "kanaalfrequentie (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Ingevuld per geselecteerd kanaal (indien ingesteld)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "zendvermogen (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "draadloze LAN's"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "VLAN zonder label"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "gelabelde VLAN's"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "interface"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "interfaces"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} op interfaces kan geen kabel worden aangesloten."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr ""
"{display_type} interfaces kunnen niet als verbonden worden gemarkeerd."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Een interface kan niet zijn eigen ouder zijn."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr ""
"Alleen virtuele interfaces mogen aan een bovenliggende interface worden "
"toegewezen."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5644,7 +5657,7 @@ msgstr ""
"De geselecteerde ouderinterface ({interface}) hoort bij een ander apparaat "
"({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5653,7 +5666,7 @@ msgstr ""
"De geselecteerde ouderinterface ({interface}) behoort tot {device}, dat geen"
" deel uitmaakt van een virtueel chassis {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5662,7 +5675,7 @@ msgstr ""
"De geselecteerde bridge-interface ({bridge}) hoort bij een ander apparaat "
"({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5671,15 +5684,15 @@ msgstr ""
"De geselecteerde bridge-interface ({interface}) behoort tot {device}, dat "
"geen deel uitmaakt van een virtueel chassis {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Virtuele interfaces kunnen geen bovenliggende LAG-interface hebben."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Een LAG-interface kan niet zijn eigen ouder zijn."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
@@ -5687,7 +5700,7 @@ msgstr ""
"De geselecteerde LAG-interface ({lag}) hoort bij een ander apparaat "
"({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5696,46 +5709,46 @@ msgstr ""
"De geselecteerde LAG-interface ({lag}) behoort tot {device}, dat geen deel "
"uitmaakt van een virtueel chassis {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Virtuele interfaces kunnen geen PoE-modus hebben."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Virtuele interfaces mogen geen PoE-type hebben."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Moet de PoE-modus specificeren bij het aanwijzen van een PoE-type."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr "De draadloze rol kan alleen worden ingesteld op draadloze interfaces."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Kanaal mag alleen worden ingesteld op draadloze interfaces."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"De kanaalfrequentie mag alleen worden ingesteld op draadloze interfaces."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr ""
"Kan geen aangepaste frequentie specificeren met een geselecteerd kanaal."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr "De kanaalbreedte kan alleen worden ingesteld op draadloze interfaces."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr ""
"Kan geen aangepaste breedte specificeren als het kanaal is geselecteerd."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5744,24 +5757,24 @@ msgstr ""
"Het VLAN zonder label ({untagged_vlan}) moet tot dezelfde site behoren als "
"het bovenliggende apparaat van de interface, of het moet globaal zijn."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "In kaart gebrachte positie op de corresponderende achterpoort"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "poort voor"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "poorten voor"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Achterpoort ({rear_port}) moet tot hetzelfde apparaat behoren"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5770,19 +5783,19 @@ msgstr ""
"Ongeldige positie van de achterpoort ({rear_port_position}): Achterpoort "
"{name} heeft slechts {positions} posities."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Aantal poorten aan de voorkant dat in kaart kan worden gebracht"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "poort achter"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "poorten achter"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5791,39 +5804,39 @@ msgstr ""
"Het aantal posities mag niet minder zijn dan het aantal toegewezen poorten "
"aan de voorkant ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "modulevak"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "modulevakken"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr ""
"Een modulecompartiment mag niet behoren tot een module die erin is "
"geïnstalleerd."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "apparaatvak"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "bays voor apparaten"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr "Dit type apparaat ({device_type}) ondersteunt geen apparaatsleuven."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Kan een apparaat niet op zichzelf installeren."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5831,62 +5844,62 @@ msgstr ""
"Kan het opgegeven apparaat niet installeren; het apparaat is al "
"geïnstalleerd in {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "Rol van het inventarisitem"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "Rollen van inventarisitems"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "serienummer"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "tag voor bedrijfsmiddelen"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Een unieke tag die wordt gebruikt om dit item te identificeren"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "ontdekt"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Dit item is automatisch ontdekt"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "inventarisitem"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "inventarisartikelen"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Kan zichzelf niet als ouder toewijzen."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr ""
"Het item van de bovenliggende inventaris behoort niet tot hetzelfde "
"apparaat."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "Kan een inventarisitem met afhankelijke kinderen niet verplaatsen"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr "Kan inventarisitem niet toewijzen aan component op een ander apparaat"
@@ -6040,7 +6053,7 @@ msgstr "De functie die dit apparaat dient"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Serienummer van het chassis, toegekend door de fabrikant"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Een unieke tag die wordt gebruikt om dit apparaat te identificeren"
@@ -6052,12 +6065,12 @@ msgstr "positie (U)"
msgid "rack face"
msgstr "gezicht met een rekje"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "primaire IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "primaire IPv6"
@@ -6209,15 +6222,24 @@ msgstr ""
"De positie van een apparaat dat aan een virtueel chassis is toegewezen, moet"
" zijn positie hebben bepaald."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Het apparaat kan niet van het virtuele chassis worden verwijderd "
+"{virtual_chassis} omdat het momenteel is aangewezen als zijn master."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "module"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "modules"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6226,15 +6248,15 @@ msgstr ""
"De module moet worden geïnstalleerd in een modulecompartiment dat bij het "
"toegewezen apparaat hoort ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "domein"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "virtueel chassis"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
@@ -6242,7 +6264,7 @@ msgstr ""
"De geselecteerde master ({master}) is niet toegewezen aan dit virtuele "
"chassis."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6251,34 +6273,34 @@ msgstr ""
"Kan het virtuele chassis niet verwijderen {self}. Er zijn lidinterfaces die "
"een LAG-interface tussen chassis vormen."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "-identificatiecode"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Numerieke identificatie die uniek is voor het ouderapparaat"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "reacties"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "context van het virtuele apparaat"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "contexten van virtuele apparaten"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} is geen IPv{family} adres."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"Het primaire IP-adres moet bij een interface op het toegewezen apparaat "
@@ -6709,7 +6731,7 @@ msgstr "Configuratiesjabloon"
msgid "Site Group"
msgstr "Sitegroep"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6718,12 +6740,12 @@ msgstr "Sitegroep"
msgid "IP Address"
msgstr "IP-adres"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "IPv4-adres"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "IPv6-adres"
@@ -6761,8 +6783,8 @@ msgstr "Voedingspoorten"
msgid "Power outlets"
msgstr "Stopcontacten"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6800,8 +6822,8 @@ msgstr "Inventarisartikelen"
msgid "Module Bay"
msgstr "Modulebaai"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6859,75 +6881,75 @@ msgstr "FHRP-groepen"
msgid "Tunnel"
msgstr "Tunnel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Alleen beheer"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC's"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Geïnstalleerde module"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Seriële module"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Tag voor module-bedrijfsmiddelen"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Status van de module"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Onderdeel"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Artikelen"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Apparaattypen"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Moduletypen"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Platformen"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Standaardplatform"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Volledige diepte"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "U-hoogte"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Instanties"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6938,7 +6960,7 @@ msgstr "Instanties"
msgid "Console Ports"
msgstr "Consolepoorten"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6949,7 +6971,7 @@ msgstr "Consolepoorten"
msgid "Console Server Ports"
msgstr "Serverpoorten voor de console"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6960,7 +6982,7 @@ msgstr "Serverpoorten voor de console"
msgid "Power Ports"
msgstr "Voedingspoorten"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6971,7 +6993,7 @@ msgstr "Voedingspoorten"
msgid "Power Outlets"
msgstr "Stopcontacten"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6981,7 +7003,7 @@ msgstr "Stopcontacten"
msgid "Front Ports"
msgstr "Ports aan de voorkant"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6992,7 +7014,7 @@ msgstr "Ports aan de voorkant"
msgid "Rear Ports"
msgstr "Poorten achteraan"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -7000,7 +7022,7 @@ msgstr "Poorten achteraan"
msgid "Device Bays"
msgstr "Apparaatvakken"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7442,24 +7464,24 @@ msgstr "Widgettype"
msgid "Unregistered widget class: {name}"
msgstr "Ongeregistreerde widgetklasse: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} moet een render () -methode definiëren."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Opmerking"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr "Geef willekeurige aangepaste inhoud weer. Markdown wordt ondersteund."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Tellingen van objecten"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7467,61 +7489,61 @@ msgstr ""
"Geef een set NetBox-modellen weer en het aantal objecten dat voor elk type "
"is gemaakt."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr ""
"Filters die moeten worden toegepast bij het tellen van het aantal objecten"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
"Ongeldig formaat. Objectfilters moeten als woordenboek worden doorgegeven."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Objectlijst"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Geef een willekeurige lijst met objecten weer."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Het standaardaantal objecten dat moet worden weergegeven"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
"Ongeldig formaat. URL-parameters moeten als woordenboek worden doorgegeven."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS-feed"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Voeg een RSS-feed van een externe website in."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "URL van de feed"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Het maximale aantal objecten dat moet worden weergegeven"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Hoe lang moet de inhoud in de cache worden bewaard (in seconden)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Bladwijzers"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Laat je persoonlijke bladwijzers zien"
@@ -7565,8 +7587,8 @@ msgstr "Clustertype (slug)"
msgid "Tenant group"
msgstr "Tenant groep"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Tenant groep (slug)"
@@ -7703,7 +7725,7 @@ msgstr "Is actief"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Objecttypen"
@@ -7807,8 +7829,8 @@ msgstr "De classificatie van binnenkomst"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Gebruikers"
@@ -7821,8 +7843,8 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Groepen"
@@ -8557,10 +8579,19 @@ msgstr "aangepaste veldkeuzeset"
msgid "custom field choice sets"
msgstr "aangepaste veldkeuzesets"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Moet basis- of extra keuzes definiëren."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Keuze kan niet worden verwijderd {choice} zoals er zijn {model} objecten die"
+" ernaar verwijzen."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "lay-out"
@@ -9139,64 +9170,64 @@ msgstr "Bericht"
msgid "Method"
msgstr "Methode"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Zorg ervoor dat deze waarde gelijk is aan %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Zorg ervoor dat deze waarde niet gelijk is %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Dit veld moet leeg zijn."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Dit veld mag niet leeg zijn."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Validatieregels moeten als woordenboek worden doorgegeven"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Aangepaste validatie is mislukt voor {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Ongeldig kenmerk”{name}„op aanvraag"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Ongeldig kenmerk”{name}„voor {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Je dashboard is opnieuw ingesteld."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Widget toegevoegd: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Bijgewerkte widget: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Widget verwijderd: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Fout bij het verwijderen van de widget: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "Kan script niet uitvoeren: het RQ-werkproces wordt niet uitgevoerd."
@@ -9266,19 +9297,19 @@ msgstr "Platte tekst"
msgid "Invalid IP address format: {address}"
msgstr "Ongeldig formaat van het IP-adres: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Doel importeren"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Importdoel (naam)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Doel exporteren"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Exportdoel (naam)"
@@ -9348,11 +9379,11 @@ msgstr "Prefixen die dit voorvoegsel of IP-adres bevatten"
msgid "Mask length"
msgstr "Lengte van het masker"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "VLAN-nummer (1-4094)"
@@ -9372,23 +9403,23 @@ msgid "Parent prefix"
msgstr "Oudervoorvoegsel"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Virtuele machine (naam)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Virtuele machine (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Interface (naam)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "VM-interface (naam)"
@@ -9416,19 +9447,27 @@ msgstr "Service (ID)"
msgid "NAT inside IP address (ID)"
msgstr "NAT binnen IP-adres (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Toegewezen interface"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Toegewezen VM-interface"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "IP-adres (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP-adres"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "Primaire IPv4 (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "Primaire IPv6 (ID)"
@@ -9642,10 +9681,6 @@ msgstr "Virtuele machine"
msgid "Parent VM of assigned interface (if any)"
msgstr "Bovenliggende VM van de toegewezen interface (indien aanwezig)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Toegewezen interface"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Is primair"
@@ -9976,7 +10011,7 @@ msgstr "FHRP-groepsopdracht"
#: netbox/ipam/models/fhrp.py:114
msgid "FHRP group assignments"
-msgstr "FHRP-groepsopdrachten"
+msgstr "FHRP-groepstoewijzingen"
#: netbox/ipam/models/ip.py:65
msgid "private"
@@ -10935,7 +10970,7 @@ msgstr "Rollen voor contactpersonen"
#: netbox/netbox/navigation/menu.py:36
msgid "Contact Assignments"
-msgstr "Neem contact op met opdrachten"
+msgstr "Contacttoewijzingen"
#: netbox/netbox/navigation/menu.py:50
msgid "Rack Roles"
@@ -11105,7 +11140,7 @@ msgstr "Circuitgroepen"
#: netbox/netbox/navigation/menu.py:275
#: netbox/templates/circuits/circuit.html:66
msgid "Group Assignments"
-msgstr "Groepsopdrachten"
+msgstr "Groepstoewijzingen"
#: netbox/netbox/navigation/menu.py:276
msgid "Circuit Terminations"
@@ -11231,9 +11266,9 @@ msgstr "beheerder"
msgid "API Tokens"
msgstr "API-tokens"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Machtigingen"
@@ -11386,63 +11421,63 @@ msgstr "Kan na initialisatie geen winkels aan het register toevoegen"
msgid "Cannot delete stores from registry"
msgstr "Kan winkels niet verwijderen uit het register"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "Tsjechisch"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "Deens"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Duits"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Engels"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "Spaans"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "Frans"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "Italiaans"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Japans"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Nederlands"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Pools"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "Portugees"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Russisch"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Turks"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "Oekraïens"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "Chinees"
@@ -13120,7 +13155,7 @@ msgstr "Nieuw lid toevoegen"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Acties"
@@ -14179,7 +14214,7 @@ msgstr ""
"Klik hier om te proberen NetBox opnieuw te "
"laden."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14208,7 +14243,7 @@ msgid "Add Contact Group"
msgstr "Contactgroep toevoegen"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Rol van contactpersoon"
@@ -14246,7 +14281,7 @@ msgid "View"
msgstr "Bekijken"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Beperkingen"
@@ -14273,11 +14308,6 @@ msgstr "Geheugen"
msgid "Disk Space"
msgstr "Schijfruimte"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Virtuele machine toevoegen"
@@ -14518,57 +14548,57 @@ msgstr "Eigenschappen van de link"
msgid "Distance"
msgstr "Afstand"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Contactgroep voor ouders (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Contactgroep voor ouders (slug)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Contactgroep (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Contactgroep (slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Contactpersoon (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Rol van contactpersoon (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Contactrol (slug)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Contactgroep"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Parent tenant groep (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Parent tenant groep (slug)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Tenant groep (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Tenant Groep (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Tenant Groep (slug)"
@@ -14626,7 +14656,7 @@ msgstr "contactopdracht"
#: netbox/tenancy/models/contacts.py:154
msgid "contact assignments"
-msgstr "contactopdrachten"
+msgstr "contacttoewijzingen"
#: netbox/tenancy/models/contacts.py:170
#, python-brace-format
@@ -14735,11 +14765,11 @@ msgstr "Kan veranderen"
msgid "Can Delete"
msgstr "Kan verwijderen"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Gebruikersinterface"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14749,7 +14779,7 @@ msgstr ""
"sleutel opneemt voordat dit formulier wordt verzonden, omdat het "
"mogelijk niet meer toegankelijk is nadat het token is aangemaakt."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14759,33 +14789,33 @@ msgstr ""
"Laat dit veld leeg zodat er geen beperkingen zijn. Voorbeeld: "
"10.1.1.0/24, 192.168.10.16/32,2001:db 8:1: :/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Wachtwoord bevestigen"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Voer ter verificatie hetzelfde wachtwoord in als voorheen."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Wachtwoorden komen niet overeen! Controleer uw invoer en probeer het "
"opnieuw."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Aanvullende acties"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Acties die zijn toegekend in aanvulling op de hierboven genoemde"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Objecten"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14796,11 +14826,11 @@ msgstr ""
" Een lijst met meerdere objecten zal resulteren in een logische OR-"
"bewerking."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Er moet minstens één actie worden geselecteerd."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Ongeldig filter voor {model}: {error}"
@@ -15064,7 +15094,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Ongeldige waarde voor een meerkeuzeveld: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Object niet gevonden: %(value)s"
@@ -15078,11 +15108,16 @@ msgstr ""
"„{value}„is geen unieke waarde voor dit veld; er zijn meerdere objecten "
"gevonden"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "„{field_name}„is een ongeldige naam voor het accessorveld."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Het objecttype moet worden gespecificeerd als”.„"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Ongeldig objecttype"
@@ -15674,19 +15709,19 @@ msgstr "DSA-handtekeningen"
msgid "Group {n}"
msgstr "groep {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Ethernet, privé-LAN"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Virtueel privé-LAN via Ethernet"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Ethernet Private Tree"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Virtuele privéstructuur van Ethernet"
@@ -15718,33 +15753,31 @@ msgstr "Tunnel (naam)"
msgid "Outside IP (ID)"
msgstr "Buiten IP (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "IKE-beleid (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "IKE-beleid (naam)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "IPsec-beleid (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "IPsec-beleid (naam)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (slug)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "VM-interface (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (naam)"
diff --git a/netbox/translations/pl/LC_MESSAGES/django.mo b/netbox/translations/pl/LC_MESSAGES/django.mo
index bcc505e4c33..8d6777d9fb0 100644
Binary files a/netbox/translations/pl/LC_MESSAGES/django.mo and b/netbox/translations/pl/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/pl/LC_MESSAGES/django.po b/netbox/translations/pl/LC_MESSAGES/django.po
index eb970b95ea1..c8ede3acaa6 100644
--- a/netbox/translations/pl/LC_MESSAGES/django.po
+++ b/netbox/translations/pl/LC_MESSAGES/django.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Polish (https://app.transifex.com/netbox-community/teams/178115/pl/)\n"
@@ -26,7 +26,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Klucz"
@@ -62,7 +62,7 @@ msgstr "Ostatnio używane"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "Dozwolone adresy IP"
@@ -91,8 +91,8 @@ msgstr "Twoje hasło zostało pomyślnie zmienione."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -104,8 +104,8 @@ msgstr "Zaopatrzenie"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -116,8 +116,8 @@ msgid "Active"
msgstr "Aktywny"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Nieaktywne"
@@ -130,7 +130,7 @@ msgstr "Odstąpienie od zaopatrzenia"
msgid "Decommissioned"
msgstr "Wycofane ze służby"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Podstawowy"
@@ -156,7 +156,7 @@ msgstr "Nieaktywny"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Region (ID)"
@@ -168,7 +168,7 @@ msgstr "Region (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Region (identyfikator)"
@@ -197,7 +197,7 @@ msgstr "Grupa terenów (identyfikator)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -263,7 +263,7 @@ msgstr "Teren"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Teren (identyfikator)"
@@ -317,7 +317,7 @@ msgstr "Typ obwodu (identyfikator)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Teren (ID)"
@@ -336,13 +336,13 @@ msgstr "Wypowiedzenie A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -351,7 +351,7 @@ msgstr "Szukaj"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -535,9 +535,9 @@ msgstr "Opis"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -574,9 +574,9 @@ msgstr "Identyfikator usługi"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -589,7 +589,7 @@ msgid "Color"
msgstr "Kolor"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -612,7 +612,7 @@ msgstr "Kolor"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -646,14 +646,14 @@ msgid "Type"
msgstr "Typ"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Konto dostawcy"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -669,8 +669,8 @@ msgstr "Konto dostawcy"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -699,7 +699,7 @@ msgstr "Konto dostawcy"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -723,8 +723,8 @@ msgstr "Status"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -890,21 +890,21 @@ msgstr "Szczegóły wypowiedzenia"
msgid "Priority"
msgstr "Priorytet"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Przydzielony dostawca"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Przydzielone konto dostawcy"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Rodzaj obwodu"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -916,8 +916,8 @@ msgstr "Rodzaj obwodu"
msgid "Operational status"
msgstr "Status operacyjny"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -933,7 +933,7 @@ msgstr "Status operacyjny"
msgid "Assigned tenant"
msgstr "Przydzielony najemca"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -941,7 +941,7 @@ msgstr "Przydzielony najemca"
msgid "Termination"
msgstr "Wypowiedzenie"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1097,7 +1097,7 @@ msgstr "Strona terminowa"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Zlecenie"
@@ -1152,11 +1152,11 @@ msgid "Circuit Group"
msgstr "Grupa obwodów"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1179,9 +1179,9 @@ msgid "Unique circuit ID"
msgstr "Unikalny identyfikator obwodu"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1275,7 +1275,7 @@ msgstr "Identyfikator panelu krosowego i numer (y) portu"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1312,11 +1312,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1400,11 +1400,11 @@ msgstr "sieci dostawców"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1542,8 +1542,8 @@ msgstr "Współczynnik zatwierdzania"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1620,8 +1620,8 @@ msgstr "Zakończone"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Nie powiodło się"
@@ -1687,42 +1687,42 @@ msgstr "Zatrzymane"
msgid "Cancelled"
msgstr "Anulowane"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Lokalne"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Nazwa użytkownika"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Tylko używane do klonowania poprzez HTTP(S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Hasło"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "gałąź"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Pobieranie zdalnych danych nie powiodło się ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "Identyfikator klucza dostępu AWS"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Tajny klucz dostępu AWS"
@@ -1777,7 +1777,7 @@ msgstr "Nazwa użytkownika"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1891,7 +1891,7 @@ msgstr "Zakończone przed"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Użytkownik"
@@ -1945,7 +1945,7 @@ msgstr "Musisz przesłać plik lub wybrać plik danych do synchronizacji"
msgid "Rack Elevations"
msgstr "Elewacje szaf"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1988,7 +1988,7 @@ msgstr "Preferencje użytkownika"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Różne"
@@ -2049,7 +2049,7 @@ msgstr ""
"Rejestracja zmian nie jest obsługiwana dla tego typu obiektu ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2086,20 +2086,20 @@ msgid "Config revision #{id}"
msgstr "Wersja konfiguracji #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2114,8 +2114,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2228,58 +2228,58 @@ msgstr "plik zarządzany"
msgid "managed files"
msgstr "zarządzane pliki"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "planowy"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "interwał"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Odstęp nawrotów (w minutach)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "rozpoczął się"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "ukończony"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "dane"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "błąd"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "ID pracy"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "pracy"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "prace"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "Zadania nie mogą być przypisane do tego typu obiektu ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr "Nieprawidłowy status zakończenia pracy. Wybory to: {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2330,7 +2330,7 @@ msgid "Last updated"
msgstr "Ostatnia aktualizacja"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2522,7 +2522,7 @@ msgid "Staging"
msgstr "Inscenizacja"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Wycofanie z eksploatacji"
@@ -2586,17 +2586,17 @@ msgstr "Przestarzałe"
msgid "Millimeters"
msgstr "Milimetrów"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Cale"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Przód do tyłu"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Tył do przodu"
@@ -2609,8 +2609,8 @@ msgstr "Tył do przodu"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2654,7 +2654,7 @@ msgstr "Przód"
msgid "Rear"
msgstr "Tył"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Inscenizowane"
@@ -2663,67 +2663,79 @@ msgstr "Inscenizowane"
msgid "Inventory"
msgstr "Inwentaryzacja"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Od lewej do prawej"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Od prawej do lewej"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Z boku do tyłu"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Tył na bok"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Od dołu do góry"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Od góry do dołu"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Pasywny"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Mieszane"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (bez blokowania)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (Blokowanie)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Styl kalifornijski"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "Międzynarodowy/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Zastrzeżone"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Pozostałe"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/Międzynarodowy"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Fizyczne"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Wirtualny"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2731,13 +2743,13 @@ msgstr "Wirtualny"
msgid "Wireless"
msgstr "Bezprzewodowy"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Interfejsy wirtualne"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2745,27 +2757,27 @@ msgstr "Interfejsy wirtualne"
msgid "Bridge"
msgstr "Most"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Grupa agregacji linków (LGD)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (stały)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modułowy)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (płaszczyzna tylna)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Komórkowy"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2773,130 +2785,130 @@ msgstr "Komórkowy"
msgid "Serial"
msgstr "Seryjny"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "koncentryczny"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Układanie"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Połowa"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Pełny"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Automatyczny"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Dostęp"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Oznaczone"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Oznaczone (Wszystkie)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "Standard IEEE"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Pasywny 24V (2 pary)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Pasywny 24V (4-parowy)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Pasywny 48V (2 pary)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Pasywny 48V (4 pary)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Miedź"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Światłowód"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Włókno"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Połączony"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Kilometry"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Mierniki"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Centymetry"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Mile"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Stopy"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Kilogramy"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Gramy"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "funty"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Uncja"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Nadmiarowy"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Jednofazowy"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Trójfazowy"
@@ -3148,7 +3160,7 @@ msgstr "Jest pełna głębokość"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3192,7 +3204,7 @@ msgid "Device model"
msgstr "Model urządzenia"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Interfejs (ID)"
@@ -3206,8 +3218,8 @@ msgstr "Osłona modułu (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Urządzenie (ID)"
@@ -3216,8 +3228,8 @@ msgid "Rack (name)"
msgstr "Szafa (nazwa)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Urządzenie (nazwa)"
@@ -3267,8 +3279,8 @@ msgstr "Przypisany VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3304,7 +3316,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3360,7 +3372,7 @@ msgstr "Kontekst urządzenia wirtualnego (identyfikator)"
msgid "Wireless LAN"
msgstr "Bezprzewodowa sieć LAN"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Połączenie bezprzewodowe"
@@ -3388,12 +3400,12 @@ msgstr "Mistrz (ID)"
msgid "Master (name)"
msgstr "Mistrz (imię)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Najemca (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Najemca (identyfikator)"
@@ -3420,7 +3432,7 @@ msgstr "Tagi"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3469,8 +3481,8 @@ msgstr "Strefa czasowa"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3534,7 +3546,7 @@ msgstr "Głębokość montażu"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3595,8 +3607,8 @@ msgstr "Numeracja"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3704,12 +3716,12 @@ msgstr "Numer części"
msgid "U height"
msgstr "Wysokość U"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Wyklucz z wykorzystania"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3798,10 +3810,10 @@ msgstr "Platforma"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3928,8 +3940,8 @@ msgid "Maximum draw"
msgstr "Maksymalne losowanie"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Maksymalny pobór mocy (waty)"
@@ -3938,8 +3950,8 @@ msgid "Allocated draw"
msgstr "Przydzielone losowanie"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Przydzielony pobór mocy (waty)"
@@ -3960,16 +3972,16 @@ msgstr "Tylko zarządzanie"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "Tryb PoE"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "Typ PoE"
@@ -3993,7 +4005,7 @@ msgstr "Rola sieci bezprzewodowej"
msgid "Module"
msgstr "Moduł"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "OPÓŹNIENIE"
@@ -4005,7 +4017,7 @@ msgstr "Konteksty urządzeń wirtualnych"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4052,7 +4064,7 @@ msgid "Wireless LAN group"
msgstr "Grupa sieci bezprzewodowej sieci LAN"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4440,7 +4452,7 @@ msgstr "Odpowiedni tylny port"
msgid "Physical medium classification"
msgstr "Klasyfikacja medium fizycznego"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Zainstalowane urządzenie"
@@ -4529,7 +4541,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} Nie znaleziono zakończenia bocznego: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4581,7 +4593,7 @@ msgstr "Podstawowy IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "Adres IPv6 z przedrostkiem, np. 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4744,7 +4756,7 @@ msgid "Mgmt only"
msgstr "Tylko MGMT"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4777,7 +4789,7 @@ msgstr "Moc transmisji (dBm)"
msgid "Cable"
msgstr "Kabel"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Odkryte"
@@ -4927,7 +4939,7 @@ msgid "Front Port"
msgstr "Port przedni"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5064,7 +5076,7 @@ msgstr ""
"Liczba portów przednich do utworzenia ({frontport_count}) musi odpowiadać "
"wybranej liczbie pozycji tylnych portów ({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5089,7 +5101,7 @@ msgstr "Pozycja musi być określona dla pierwszego członka VC."
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "marka"
@@ -5193,7 +5205,7 @@ msgstr ""
"dołączeniu do typu modułu."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Etykieta fizyczna"
@@ -5217,139 +5229,139 @@ msgid ""
msgstr ""
"Szablon komponentu musi być skojarzony z typem urządzenia lub typem modułu."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "szablon portu konsoli"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "szablony portów konsoli"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "szablon portu serwera konsoli"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "szablony portów serwera konsoli"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "maksymalne losowanie"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "przydzielone losowanie"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "szablon portu zasilania"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "szablony portów zasilania"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"Przydzielone losowanie nie może przekroczyć maksymalnego losowania "
"({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "noga karmiąca"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Faza (dla zasilania trójfazowego)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "szablon gniazdka elektrycznego"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "szablony gniazdek elektrycznych"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Nadrzędny port zasilania ({power_port}) musi należeć do tego samego typu "
"urządzenia"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Nadrzędny port zasilania ({power_port}) musi należeć do tego samego typu "
"modułu"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "Tylko zarządzanie"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "interfejs mostka"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "rola bezprzewodowa"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "szablon interfejsu"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "szablony interfejsu"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Interfejs nie może być połączony z samym sobą."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr ""
"Interfejs mostka ({bridge}) musi należeć do tego samego typu urządzenia"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Interfejs mostka ({bridge}) musi należeć do tego samego typu modułu"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "pozycja tylnego portu"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "szablon portu przedniego"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "szablony portów przednich"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Tylny port ({name}) musi należeć do tego samego typu urządzenia"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5358,48 +5370,48 @@ msgstr ""
"Nieprawidłowa pozycja tylnego portu ({position}); tylny port {name} ma tylko"
" {count} położenia"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "położenia"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "szablon tylnego portu"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "szablony tylnych portów"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "położenie"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Identyfikator, do którego należy odwołać się podczas zmiany nazwy "
"zainstalowanych komponentów"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "szablon modułu wnęki"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "szablony modułów"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "szablon kieszeni urządzenia"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "szablony kieszeni urządzeń"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5408,207 +5420,207 @@ msgstr ""
"Rola podurządzenia typu urządzenia ({device_type}) musi być ustawiony na "
"„rodzic”, aby zezwolić na gniazda urządzeń."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "ID części"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Identyfikator części przypisany przez producenta"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "szablon pozycji inwentaryzacji"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "szablony pozycji inwentaryzacji"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Komponentów nie można przenieść na inne urządzenie."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "koniec kabla"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "znak połączony"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Traktuj tak, jakby kabel był podłączony"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "Należy określić koniec kabla (A lub B) podczas mocowania kabla."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "Końcówka kabla nie może być ustawiona bez kabla."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Nie można oznaczyć jako podłączonego za pomocą podłączonego kabla."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} modele muszą zadeklarować właściwość parent_object"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Typ portu fizycznego"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "prędkość"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Prędkość portu w bitach na sekundę"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "port konsoli"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "porty konsoli"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "port serwera konsoli"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "porty serwera konsoli"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "port zasilania"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "porty zasilania"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "gniazdo zasilania"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "gniazdka elektryczne"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Nadrzędny port zasilania ({power_port}) musi należeć do tego samego "
"urządzenia"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "tryb"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "Strategia tagowania IEEE 802.1Q"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "interfejs macierzysty"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "macierzysta LGD"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Ten interfejs jest używany tylko do zarządzania poza pasmem"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "Prędkość (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "dupleks"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64-bitowa nazwa światowa"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "kanał bezprzewodowy"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "częstotliwość kanału (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Wypełnione przez wybrany kanał (jeśli ustawiony)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "moc nadawania (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "bezprzewodowe sieci LAN"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "nieoznaczone sieci VLAN"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "oznaczone sieci VLAN"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "interfejs"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "interfejsy"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} Interfejsy nie mogą mieć podłączonego kabla."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type} interfejsów nie można oznaczyć jako połączonych."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Interfejs nie może być własnym rodzicem."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr "Do interfejsu nadrzędnego można przypisać tylko interfejsy wirtualne."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5617,7 +5629,7 @@ msgstr ""
"Wybrany interfejs nadrzędny ({interface}) należy do innego urządzenia "
"({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5626,7 +5638,7 @@ msgstr ""
"Wybrany interfejs nadrzędny ({interface}) należy do {device}, która nie jest"
" częścią wirtualnej obudowy {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5634,7 +5646,7 @@ msgid ""
msgstr ""
"Wybrany interfejs mostu ({bridge}) należy do innego urządzenia ({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5643,21 +5655,21 @@ msgstr ""
"Wybrany interfejs mostu ({interface}) należy do {device}, która nie jest "
"częścią wirtualnej obudowy {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Interfejsy wirtualne nie mogą mieć nadrzędnego interfejsu LAG."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Interfejs LAG nie może być własnym rodzicem."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr "Wybrany interfejs LAG ({lag}) należy do innego urządzenia ({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5666,49 +5678,49 @@ msgstr ""
"Wybrany interfejs LAG ({lag}) należy do {device}, która nie jest częścią "
"wirtualnej obudowy {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Interfejsy wirtualne nie mogą mieć trybu PoE."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Interfejsy wirtualne nie mogą mieć typu PoE."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Musi określić tryb PoE podczas wyznaczania typu PoE."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr ""
"Rola sieci bezprzewodowej może być ustawiona tylko na interfejsach "
"bezprzewodowych."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Kanał można ustawić tylko na interfejsach bezprzewodowych."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"Częstotliwość kanału może być ustawiona tylko na interfejsach "
"bezprzewodowych."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr "Nie można określić niestandardowej częstotliwości z wybranym kanałem."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr ""
"Szerokość kanału może być ustawiona tylko na interfejsach bezprzewodowych."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr ""
"Nie można określić niestandardowej szerokości przy zaznaczonym kanale."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5717,24 +5729,24 @@ msgstr ""
"Nieoznaczona sieć VLAN ({untagged_vlan}) musi należeć do tej samej witryny "
"co urządzenie nadrzędne interfejsu lub musi być globalne."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Zmapowana pozycja na odpowiednim tylnym porcie"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "port przedni"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "porty przednie"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Tylny port ({rear_port}) musi należeć do tego samego urządzenia"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5743,19 +5755,19 @@ msgstr ""
"Nieprawidłowa pozycja tylnego portu ({rear_port_position}): Tylny port "
"{name} ma tylko {positions} pozycje."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Liczba portów przednich, które mogą być mapowane"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "tylny port"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "tylne porty"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5764,37 +5776,37 @@ msgstr ""
"Liczba pozycji nie może być mniejsza niż liczba zmapowanych portów przednich"
" ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "wnęka modułu"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "kieszenie modułowe"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr "Wnęka modułu nie może należeć do zainstalowanego w nim modułu."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "wnęka urządzenia"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "kieszenie na urządzenia"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr "Ten typ urządzenia ({device_type}) nie obsługuje wnęk na urządzenia."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Nie można zainstalować urządzenia w sobie."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5802,61 +5814,61 @@ msgstr ""
"Nie można zainstalować określonego urządzenia; urządzenie jest już "
"zainstalowane w {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "rola pozycji zapasów"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "role pozycji zapasów"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "numer seryjny"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "znacznik zasobu"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Unikalny znacznik używany do identyfikacji tego elementu"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "odkryty"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Ten przedmiot został automatycznie wykryty"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "pozycja inwentaryzacyjna"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "pozycje inwentaryzacyjne"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Nie można przypisać siebie jako rodzica."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "Nadrzędny element ekwipunku nie należy do tego samego urządzenia."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr ""
"Nie można przenieść pozycji inwentarza z pozostałymi dziećmi na utrzymaniu"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr ""
"Nie można przypisać elementu zapasów do komponentu na innym urządzeniu"
@@ -6008,7 +6020,7 @@ msgstr "Funkcja, jaką spełnia to urządzenie"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Numer seryjny podwozia, przypisany przez producenta"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Unikalny znacznik używany do identyfikacji tego urządzenia"
@@ -6020,12 +6032,12 @@ msgstr "pozycja (U)"
msgid "rack face"
msgstr "powierzchnia szafy"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "podstawowy IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "podstawowy IPv6"
@@ -6174,15 +6186,24 @@ msgstr ""
"Urządzenie przypisane do wirtualnej obudowy musi mieć zdefiniowane "
"położenie."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Nie można usunąć urządzenia z wirtualnej obudowy {virtual_chassis} ponieważ "
+"jest obecnie wyznaczony jako jego mistrz."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "moduł"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "modułów"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6191,22 +6212,22 @@ msgstr ""
"Moduł musi być zainstalowany w wnęce modułowej należącej do przypisanego "
"urządzenia ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "domena"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "wirtualne podwozie"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr ""
"Wybrany mistrz ({master}) nie jest przypisany do tej wirtualnej obudowy."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6215,34 +6236,34 @@ msgstr ""
"Nie można usunąć wirtualnej obudowy {self}. Istnieją interfejsy członów, "
"które tworzą interfejsy LAG między podwoziami."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "identyfikator"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Identyfikator numeryczny unikalny dla urządzenia nadrzędnego"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "komentarzy"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "kontekst urządzenia wirtualnego"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "konteksty urządzeń wirtualnych"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} nie jest IPV{family} adres."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"Podstawowy adres IP musi należeć do interfejsu na przypisanym urządzeniu."
@@ -6673,7 +6694,7 @@ msgstr "Szablon konfiguracji"
msgid "Site Group"
msgstr "Grupa witryn"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6682,12 +6703,12 @@ msgstr "Grupa witryn"
msgid "IP Address"
msgstr "Adres IP"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "Adres IPv4"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "Adres IPv6"
@@ -6725,8 +6746,8 @@ msgstr "Porty zasilania"
msgid "Power outlets"
msgstr "Gniazdka elektryczne"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6764,8 +6785,8 @@ msgstr "Elementy inwentaryzacyjne"
msgid "Module Bay"
msgstr "Moduł Bay"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6823,75 +6844,75 @@ msgstr "Grupy FHRP"
msgid "Tunnel"
msgstr "Tunel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Tylko zarządzanie"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Zainstalowany moduł"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Moduł szeregowy"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Etykietka zasobów modułu"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Status modułu"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Komponent"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Przedmioty"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Rodzaje urządzeń"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Rodzaje modułów"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Platformy"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Domyślna platforma"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Pełna głębokość"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Wysokość U"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Instancje"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6902,7 +6923,7 @@ msgstr "Instancje"
msgid "Console Ports"
msgstr "Porty konsoli"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6913,7 +6934,7 @@ msgstr "Porty konsoli"
msgid "Console Server Ports"
msgstr "Porty serwera konsoli"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6924,7 +6945,7 @@ msgstr "Porty serwera konsoli"
msgid "Power Ports"
msgstr "Porty zasilania"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6935,7 +6956,7 @@ msgstr "Porty zasilania"
msgid "Power Outlets"
msgstr "Gniazdka elektryczne"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6945,7 +6966,7 @@ msgstr "Gniazdka elektryczne"
msgid "Front Ports"
msgstr "Porty przednie"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6956,7 +6977,7 @@ msgstr "Porty przednie"
msgid "Rear Ports"
msgstr "Tylne porty"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6964,7 +6985,7 @@ msgstr "Tylne porty"
msgid "Device Bays"
msgstr "Wnęsy na urządzenia"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7404,24 +7425,24 @@ msgstr "Typ widżetu"
msgid "Unregistered widget class: {name}"
msgstr "Niezarejestrowana klasa widgetów: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} musi zdefiniować metodę render ()."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Uwaga"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr "Wyświetl dowolną niestandardową zawartość. Markdown jest obsługiwany."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Liczenie obiektów"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7429,61 +7450,61 @@ msgstr ""
"Wyświetla zestaw modeli NetBox i liczbę obiektów utworzonych dla każdego "
"typu."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Filtry do zastosowania przy liczeniu liczby obiektów"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
"Nieprawidłowy format. Filtry obiektów muszą być przekazywane jako słownik."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Lista obiektów"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Wyświetla dowolną listę obiektów."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Domyślna liczba obiektów do wyświetlenia"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
"Nieprawidłowy format. Parametry adresu URL muszą być przekazywane jako "
"słownik."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "Kanał RSS"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Osadź kanał RSS z zewnętrznej strony internetowej."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "Adres URL kanału"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Maksymalna liczba obiektów do wyświetlenia"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Jak długo przechowywać zawartość w pamięci podręcznej (w sekundach)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Zakładki"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Pokaż swoje osobiste zakładki"
@@ -7526,8 +7547,8 @@ msgstr "Typ klastra (identyfikator)"
msgid "Tenant group"
msgstr "Grupa najemców"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Grupa najemców (identyfikator)"
@@ -7664,7 +7685,7 @@ msgstr "Jest aktywny"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Typy obiektów"
@@ -7764,8 +7785,8 @@ msgstr "Klasyfikacja wpisu"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Użytkownicy"
@@ -7778,8 +7799,8 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Grupy"
@@ -8498,10 +8519,19 @@ msgstr "niestandardowy zestaw wyboru pola"
msgid "custom field choice sets"
msgstr "niestandardowe zestawy wyboru pól"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Musi zdefiniować opcje bazowe lub dodatkowe."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Nie można usunąć wyboru {choice} tak jak są {model} Obiekty, które się do "
+"niego odnoszą."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "układ"
@@ -9075,64 +9105,64 @@ msgstr "Wiadomość"
msgid "Method"
msgstr "Metoda"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Upewnij się, że ta wartość jest równa %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Upewnij się, że ta wartość nie jest równa %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "To pole musi być puste."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "To pole nie może być puste."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Reguły walidacji muszą być przekazane jako słownik"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Niestandardowa walidacja nie powiodła się {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Nieprawidłowy atrybut”{name}„na żądanie"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Nieprawidłowy atrybut”{name}„dla {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Twój pulpit nawigacyjny został zresetowany."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Dodano widżet: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Zaktualizowano widżet: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Usunięty widget: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Błąd usuwania widżetu: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "Nie można uruchomić skryptu: proces roboczy RQ nie działa."
@@ -9202,19 +9232,19 @@ msgstr "Zwykły tekst"
msgid "Invalid IP address format: {address}"
msgstr "Nieprawidłowy format adresu IP: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Importuj cel"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Import docelowy (nazwa)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Cel eksportu"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Eksportuj cel (nazwa)"
@@ -9284,11 +9314,11 @@ msgstr "Prefiksy zawierające ten prefiks lub adres IP"
msgid "Mask length"
msgstr "Długość maski"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "Numer VLAN (1-4094)"
@@ -9308,23 +9338,23 @@ msgid "Parent prefix"
msgstr "Prefiks nadrzędny"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Maszyna wirtualna (nazwa)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Maszyna wirtualna (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Interfejs (nazwa)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "Interfejs maszyny wirtualnej (nazwa)"
@@ -9352,19 +9382,27 @@ msgstr "Usługa (ID)"
msgid "NAT inside IP address (ID)"
msgstr "NAT wewnątrz adresu IP (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Przypisany interfejs"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Przypisany interfejs maszyny wirtualnej"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "Adres IP (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "Adres IP"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "Podstawowy IPv4 (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "Podstawowy protokół IPv6 (ID)"
@@ -9578,10 +9616,6 @@ msgstr "Maszyna wirtualna"
msgid "Parent VM of assigned interface (if any)"
msgstr "Nadrzędna maszyna wirtualna przypisanego interfejsu (jeśli istnieje)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Przypisany interfejs"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Jest podstawowy"
@@ -11154,9 +11188,9 @@ msgstr "Administrator"
msgid "API Tokens"
msgstr "Tokeny API"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Uprawnienia"
@@ -11309,63 +11343,63 @@ msgstr "Nie można dodać sklepów do rejestru po zainicjowaniu"
msgid "Cannot delete stores from registry"
msgstr "Nie można usunąć sklepów z rejestru"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "czeski"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "duński"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "niemiecki"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "angielski"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "hiszpański"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "francuski"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "włoski"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "japoński"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "holenderski"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "polski"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "portugalski"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "rosyjski"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "turecki"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "ukraiński"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "chiński"
@@ -13036,7 +13070,7 @@ msgstr "Dodaj nowego członka"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Działania"
@@ -14091,7 +14125,7 @@ msgstr ""
"Kliknij tutaj aby spróbować ponownie załadować "
"NetBox."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14120,7 +14154,7 @@ msgid "Add Contact Group"
msgstr "Dodaj grupę kontaktów"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Rola kontaktowa"
@@ -14158,7 +14192,7 @@ msgid "View"
msgstr "Widok"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Ograniczenia"
@@ -14185,11 +14219,6 @@ msgstr "Pamięć"
msgid "Disk Space"
msgstr "Miejsce na dysku"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Dodaj maszynę wirtualną"
@@ -14430,57 +14459,57 @@ msgstr "Właściwości łącza"
msgid "Distance"
msgstr "Dystans"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Nadrzędna grupa kontaktów (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Nadrzędna grupa kontaktów (identyfikator)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Grupa kontaktowa (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Grupa kontaktów (identyfikator)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Kontakt (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Rola kontaktowa (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Rola kontaktu (identyfikator)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Grupa kontaktowa"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Grupa nadrzędnych najemców (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Nadrzędna grupa najemców (identyfikator)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Grupa najemców (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Grupa najemców (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Grupa najemców (identyfikator)"
@@ -14645,11 +14674,11 @@ msgstr "Może się zmienić"
msgid "Can Delete"
msgstr "Można usunąć"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Interfejs użytkownika"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14659,7 +14688,7 @@ msgstr ""
"zapisać swój klucz przed przesłaniem tego formularza, ponieważ może"
" nie być już dostępny po utworzeniu tokena."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14669,31 +14698,31 @@ msgstr ""
" ograniczeń. Przykład: 10.1.1.0/24,192.168.10.16/32,2001: db 8:1: "
":/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Potwierdź hasło"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Wprowadź to samo hasło, co poprzednio, w celu weryfikacji."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr "Hasła nie pasują! Sprawdź dane wejściowe i spróbuj ponownie."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Dodatkowe działania"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Działania udzielone w uzupełnieniu do wymienionych powyżej"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Obiekty"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14703,11 +14732,11 @@ msgstr ""
"Pozostaw wartość null, aby pasowała do wszystkich obiektów tego typu. Lista "
"wielu obiektów spowoduje logiczną operację OR."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Należy wybrać co najmniej jedną akcję."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Nieprawidłowy filtr dla {model}: {error}"
@@ -14970,7 +14999,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Nieprawidłowa wartość pola wyboru wielokrotnego wyboru: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Obiekt nie został znaleziony: %(value)s"
@@ -14984,11 +15013,16 @@ msgstr ""
"„{value}„nie jest unikalną wartością dla tego pola; znaleziono wiele "
"obiektów"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "„{field_name}„jest nieprawidłową nazwą pola dostępu."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Typ obiektu musi być określony jako”.„"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Nieprawidłowy typ obiektu"
@@ -15579,19 +15613,19 @@ msgstr "Podpisy DSA"
msgid "Group {n}"
msgstr "Grupa {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Prywatna sieć LAN Ethernet"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Wirtualna prywatna sieć LAN Ethernet"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Prywatne drzewo Ethernet"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Wirtualne prywatne drzewo Ethernet"
@@ -15623,33 +15657,31 @@ msgstr "Tunel (nazwa)"
msgid "Outside IP (ID)"
msgstr "Zewnętrzny adres IP (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "Polityka IKE (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "Polityka IKE (nazwa)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "Polityka IPsec (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "Polityka IPsec (nazwa)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (identyfikator)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "Interfejs maszyny wirtualnej (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (nazwa)"
diff --git a/netbox/translations/pt/LC_MESSAGES/django.mo b/netbox/translations/pt/LC_MESSAGES/django.mo
index a7bb4e1d993..9a287344cd8 100644
Binary files a/netbox/translations/pt/LC_MESSAGES/django.mo and b/netbox/translations/pt/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/pt/LC_MESSAGES/django.po b/netbox/translations/pt/LC_MESSAGES/django.po
index 4b62823c1d8..ecc4eb05e6d 100644
--- a/netbox/translations/pt/LC_MESSAGES/django.po
+++ b/netbox/translations/pt/LC_MESSAGES/django.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Portuguese (https://app.transifex.com/netbox-community/teams/178115/pt/)\n"
@@ -26,7 +26,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Chave"
@@ -62,7 +62,7 @@ msgstr "Usado pela Última Vez"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "IPs Permitidos"
@@ -91,8 +91,8 @@ msgstr "Sua senha foi alterada com sucesso."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -104,8 +104,8 @@ msgstr "Provisionamento"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -116,8 +116,8 @@ msgid "Active"
msgstr "Ativo"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Offline"
@@ -130,7 +130,7 @@ msgstr "Em Desprovisionamento"
msgid "Decommissioned"
msgstr "Descomissionado"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Primário"
@@ -156,7 +156,7 @@ msgstr "Inativo"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Região (ID)"
@@ -168,7 +168,7 @@ msgstr "Região (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Região (slug)"
@@ -197,7 +197,7 @@ msgstr "Grupo de sites (slug)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -263,7 +263,7 @@ msgstr "Site"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Site (slug)"
@@ -317,7 +317,7 @@ msgstr "Tipo de circuito (slug)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Site (ID)"
@@ -336,13 +336,13 @@ msgstr "Terminação A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -351,7 +351,7 @@ msgstr "Busca"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -535,9 +535,9 @@ msgstr "Descrição"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -574,9 +574,9 @@ msgstr "ID do serviço"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -589,7 +589,7 @@ msgid "Color"
msgstr "Cor"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -612,7 +612,7 @@ msgstr "Cor"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -646,14 +646,14 @@ msgid "Type"
msgstr "Tipo"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Conta do provedor"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -669,8 +669,8 @@ msgstr "Conta do provedor"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -699,7 +699,7 @@ msgstr "Conta do provedor"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -723,8 +723,8 @@ msgstr "Status"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -890,21 +890,21 @@ msgstr "Detalhes da Terminação"
msgid "Priority"
msgstr "Prioridade"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Provedor designado"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Conta de provedor designada"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Tipo de circuito"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -916,8 +916,8 @@ msgstr "Tipo de circuito"
msgid "Operational status"
msgstr "Status operacional"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -933,7 +933,7 @@ msgstr "Status operacional"
msgid "Assigned tenant"
msgstr "Inquilino designado"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -941,7 +941,7 @@ msgstr "Inquilino designado"
msgid "Termination"
msgstr "Terminação"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1097,7 +1097,7 @@ msgstr "Lado da Terminação"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Atribuição"
@@ -1152,11 +1152,11 @@ msgid "Circuit Group"
msgstr "Grupo de Circuitos"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1179,9 +1179,9 @@ msgid "Unique circuit ID"
msgstr "ID única do circuito"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1275,7 +1275,7 @@ msgstr "ID do patch panel e número da(s) porta(s)"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1314,11 +1314,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1402,11 +1402,11 @@ msgstr "redes dos provedores"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1544,8 +1544,8 @@ msgstr "Taxa Garantida"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1622,8 +1622,8 @@ msgstr "Concluído"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Falhou"
@@ -1689,42 +1689,42 @@ msgstr "Parado"
msgid "Cancelled"
msgstr "Cancelado"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Local"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Nome de Usuário"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Usado apenas para clonagem com HTTP(S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Senha"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Filial"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Falha na obtenção de dados remotos ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "ID da chave de acesso da AWS"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Chave de acesso secreta da AWS"
@@ -1779,7 +1779,7 @@ msgstr "Nome de usuário"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1893,7 +1893,7 @@ msgstr "Concluído antes"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Usuário"
@@ -1951,7 +1951,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Elevações de Rack"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1994,7 +1994,7 @@ msgstr "Preferências de Usuário"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Diversos"
@@ -2053,7 +2053,7 @@ msgid "Change logging is not supported for this object type ({type})."
msgstr "Changelog não é suportado para este tipo de objeto ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2090,20 +2090,20 @@ msgid "Config revision #{id}"
msgstr "Revisão da configuração #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2118,8 +2118,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2235,58 +2235,58 @@ msgstr "arquivo gerenciado"
msgid "managed files"
msgstr "arquivos gerenciados"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "agendado"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "intervalo"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Intervalo de recorrência (em minutos)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "iniciado"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "concluído"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "dados"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "erro"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "ID da tarefa"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "tarefa"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "tarefas"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "Tarefas não podem ser atribuídas a este tipo de objeto ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr "Status inválido para encerramento da tarefa. As opções são: {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2337,7 +2337,7 @@ msgid "Last updated"
msgstr "Última atualização"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2529,7 +2529,7 @@ msgid "Staging"
msgstr "Em Preparação"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Em Descomissionamento"
@@ -2593,17 +2593,17 @@ msgstr "Obsoleto"
msgid "Millimeters"
msgstr "Milímetros"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Polegadas"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Frente para trás"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Trás para frente"
@@ -2616,8 +2616,8 @@ msgstr "Trás para frente"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2661,7 +2661,7 @@ msgstr "Frente"
msgid "Rear"
msgstr "Traseira"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Preparado"
@@ -2670,67 +2670,79 @@ msgstr "Preparado"
msgid "Inventory"
msgstr "Inventário"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Esquerda para direita"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Direita para esquerda"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Lado para trás"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "De trás para o lado"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "De baixo para cima"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "De cima para baixo"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Passivo"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Misto"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (sem trava)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (twist-lock)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "California Standard"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "Internacional/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Proprietário"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Outros"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/Internacional"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Físico"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Virtual"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2738,13 +2750,13 @@ msgstr "Virtual"
msgid "Wireless"
msgstr "Wireless"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Interfaces virtuais"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2752,27 +2764,27 @@ msgstr "Interfaces virtuais"
msgid "Bridge"
msgstr "Bridge"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Link Aggregation (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (fixa)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modular)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (backplane)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Celular"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2780,130 +2792,130 @@ msgstr "Celular"
msgid "Serial"
msgstr "Serial"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Coaxial"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Empilhamento"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Half"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Full"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Automático"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Acesso"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Tagueada"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Tagueada (Todos)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "Padrão IEEE"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "24V passivo (2 pares)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "24V passivo (4 pares)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "48V passivo (2 pares)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "48V passivo (4 pares)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Cabo Metálico"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Fibra Óptica"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Fibra"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Conectado"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Quilômetros"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Metros"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Centímetros"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Milhas"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Pés"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Quilogramas"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Gramas"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Libras"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Onças"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Redundante"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Monofásico"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Trifásico"
@@ -3155,7 +3167,7 @@ msgstr "É full-depth"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3199,7 +3211,7 @@ msgid "Device model"
msgstr "Modelo de dispositivo"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Interface (ID)"
@@ -3213,8 +3225,8 @@ msgstr "Compartimento de módulo (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Dispositivo (ID)"
@@ -3223,8 +3235,8 @@ msgid "Rack (name)"
msgstr "Rack (nome)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Dispositivo (nome)"
@@ -3274,8 +3286,8 @@ msgstr "VLAN ID Designada "
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3311,7 +3323,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3367,7 +3379,7 @@ msgstr "Contexto de Dispositivo Virtual (ID)"
msgid "Wireless LAN"
msgstr "Rede Wireless"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Link Wireless"
@@ -3395,12 +3407,12 @@ msgstr "Mestre (ID)"
msgid "Master (name)"
msgstr "Mestre (nome)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Inquilino (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Inquilino (slug)"
@@ -3427,7 +3439,7 @@ msgstr "Etiquetas"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3476,8 +3488,8 @@ msgstr "Fuso horário"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3541,7 +3553,7 @@ msgstr "Profundidade de montagem"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3602,8 +3614,8 @@ msgstr "Numeração"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3711,12 +3723,12 @@ msgstr "Part number"
msgid "U height"
msgstr "Altura em U"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Excluir da utilização"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3805,10 +3817,10 @@ msgstr "Plataforma"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3935,8 +3947,8 @@ msgid "Maximum draw"
msgstr "Consumo máximo"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Consumo máximo de energia (Watts)"
@@ -3945,8 +3957,8 @@ msgid "Allocated draw"
msgstr "Consumo alocado"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Consumo de energia alocado (Watts)"
@@ -3967,16 +3979,16 @@ msgstr "Somente gerenciamento"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "Modo de Operação"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "Tipo de PoE"
@@ -4000,7 +4012,7 @@ msgstr "Função do Wireless"
msgid "Module"
msgstr "Módulo"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "LAG"
@@ -4012,7 +4024,7 @@ msgstr "Contextos de dispositivos virtuais"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4059,7 +4071,7 @@ msgid "Wireless LAN group"
msgstr "Grupo da Rede Wireless"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4449,7 +4461,7 @@ msgstr "Porta traseira correspondente"
msgid "Physical medium classification"
msgstr "Tipo de conexão do meio físico"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Dispositivo instalado"
@@ -4538,7 +4550,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr " Terminação {side_upper} não encontrada: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4590,7 +4602,7 @@ msgstr "IPv6 Primário"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "Endereço IPv6 com tamanho de prefixo, por exemplo, 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4754,7 +4766,7 @@ msgid "Mgmt only"
msgstr "Somente gerenciamento"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4787,7 +4799,7 @@ msgstr "Potência de transmissão (dBm)"
msgid "Cable"
msgstr "Cabo"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Descoberto"
@@ -4937,7 +4949,7 @@ msgid "Front Port"
msgstr "Porta Frontal"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5076,7 +5088,7 @@ msgstr ""
"corresponder ao número selecionado de posições de portas traseiras "
"({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5102,7 +5114,7 @@ msgstr ""
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "rótulo"
@@ -5208,7 +5220,7 @@ msgstr ""
"quando conectado a um tipo de módulo."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Rótulo físico"
@@ -5234,138 +5246,138 @@ msgstr ""
"Um modelo de componente deve estar associado a um tipo de dispositivo ou a "
"um tipo de módulo."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "modelo de porta de console"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "modelos de porta de console"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "modelo de porta de servidor de console"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "modelos de porta de servidor de console"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "consumo máximo"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "consumo alocado"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "modelo de porta de alimentação"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "modelos de porta de alimentação"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"O consumo alocado não pode exceder o consumo máximo ({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "ramal de alimentação"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Fase (para alimentação trifásica)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "modelo de tomada elétrica"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "modelos de tomadas elétricas"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Porta de alimentação principal ({power_port}) deve pertencer ao mesmo tipo "
"de dispositivo"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Porta de alimentação principal ({power_port}) deve pertencer ao mesmo tipo "
"de módulo"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "somente gerenciamento"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "interface bridge"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "função do wireless"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "modelo de interface"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "modelos de interface"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Uma interface não pode ser conectada a si mesma."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr ""
"Interface bridge ({bridge}) deve pertencer ao mesmo tipo de dispositivo"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Interface bridge ({bridge}) deve pertencer ao mesmo tipo de módulo"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "posição da porta traseira"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "modelo de porta frontal"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "modelos de porta frontal"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Porta traseira ({name}) deve pertencer ao mesmo tipo de dispositivo"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5374,46 +5386,46 @@ msgstr ""
"Posição inválida da porta traseira ({position}); porta traseira {name} tem "
"apenas {count} posições"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "posições"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "modelo de porta traseira"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "modelos de porta traseira"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "posição"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr "Identificador a ser referenciado ao renomear componentes instalados"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "modelo de compartimento de módulo"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "modelos de compartimento de módulos"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "modelo de compartimento de dispositivos"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "modelos de compartimentos de dispositivos"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5422,207 +5434,207 @@ msgstr ""
"Função do subdispositivo do tipo {device_type} deve ser definido como “pai” "
"para permitir compartimentos de dispositivos."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "ID da peça"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Identificador da peça, designado pelo fabricante"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "modelo de item de inventário"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "modelos de itens de inventário"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Os componentes não podem ser movidos para um dispositivo diferente."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "extremidade do cabo"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "marcar conectado"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Tratar como se um cabo estivesse conectado"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "Deve especificar a extremidade (A ou B) ao conectar um cabo."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "A extremidade do cabo não deve ser definida sem um cabo."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Não é possível marcar como conectado com um cabo já conectado."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr " Os modelos {class_name} devem declarar uma propriedade parent_object"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Tipo de porta física"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "velocidade"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Velocidade da porta em bits por segundo"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "porta de console"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "portas de console"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "porta de servidor de console"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "portas de servidor de console"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "porta de alimentação"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "portas de alimentação"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "tomada elétrica"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "tomadas elétricas"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Porta de alimentação principal ({power_port}) deve pertencer ao mesmo "
"dispositivo"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "modo"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "Estratégia de tagueamento IEEE 802.1Q"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "interface pai"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "LAG pai"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Esta interface é usada somente para gerenciamento fora de banda"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "velocidade (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "duplex"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64-bit World Wide Name"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "canal do wireless"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "frequência do canal (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Preenchido pelo canal selecionado (se definido)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "potência de transmissão (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "redes wireless"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "VLAN não tagueada"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "VLANs tagueadas"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "interface"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "interfaces"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "As interfaces {display_type} não podem ter um cabo conectado."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr " As interfaces {display_type}não podem ser marcadas como conectadas."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Uma interface não pode ser pai de si mesma."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr "Somente interfaces virtuais podem ser associadas a uma interface pai."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5631,7 +5643,7 @@ msgstr ""
"A interface pai selecionada ({interface}) pertence a um dispositivo "
"diferente ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5640,7 +5652,7 @@ msgstr ""
"A interface pai selecionada ({interface}) pertence a {device}, que não faz "
"parte do chassi virtual {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5649,7 +5661,7 @@ msgstr ""
"A interface bridge selecionada ({bridge}) pertence a um dispositivo "
"diferente ({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5658,15 +5670,15 @@ msgstr ""
"A interface bridge selecionada ({interface}) pertence a {device}, que não "
"faz parte do chassi virtual {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Interfaces virtuais não podem ter uma interface LAG pai."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Uma interface LAG não pode ser pai de si mesma."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
@@ -5674,7 +5686,7 @@ msgstr ""
"A interface LAG selecionada ({lag}) pertence a um dispositivo diferente "
"({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5683,48 +5695,48 @@ msgstr ""
"A interface LAG selecionada ({lag}) pertence a {device}, que não faz parte "
"do chassi virtual {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Interfaces virtuais não podem ter um modo de operação do PoE."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "As interfaces virtuais não podem ter um tipo de PoE."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Deve especificar o modo PoE ao designar um tipo de PoE."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr ""
"A função do wireless pode ser definida somente em interfaces wireless."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "O canal pode ser configurado somente em interfaces wireless."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"A frequência do canal pode ser definida somente em interfaces wireless."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr ""
"Não é possível especificar a frequência personalizada com o canal "
"selecionado."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr "A largura do canal pode ser definida somente em interfaces wireless."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr ""
"Não é possível especificar a largura personalizada com o canal selecionado."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5733,24 +5745,24 @@ msgstr ""
"A VLAN não tagueada ({untagged_vlan}) deve pertencer ao mesmo site do "
"dispositivo pai da interface ou deve ser global."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Posição mapeada na porta traseira correspondente"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "porta frontal"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "portas frontais"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Porta traseira ({rear_port}) deve pertencer ao mesmo dispositivo"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5759,19 +5771,19 @@ msgstr ""
"Posição inválida da porta traseira ({rear_port_position}): Porta traseira "
"{name} tem apenas {positions} posições."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Número de portas frontais que podem ser mapeadas"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "porta traseira"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "portas traseiras"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5780,41 +5792,41 @@ msgstr ""
"O número de posições não pode ser menor que o número de portas frontais "
"mapeadas ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "compartimento de módulos"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "compartimentos de módulos"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr ""
"Um compartimento de módulo não pode pertencer a um módulo instalado dentro "
"dele."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "compartimento de dispositivos"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "compartimentos de dispositivos"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr ""
"Este tipo de dispositivo ({device_type}) não suporta compartimentos de "
"dispositivos."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Não é possível instalar um dispositivo em si mesmo."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5822,61 +5834,61 @@ msgstr ""
"Não é possível instalar o dispositivo especificado; o dispositivo já está "
"instalado em {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "função do item de inventário"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "funções dos itens de inventário"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "número de série"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "etiqueta de patrimônio"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Uma etiqueta exclusiva usada para identificar este item"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "descoberto"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Este item foi descoberto automaticamente"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "item de inventário"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "itens de inventário"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Não é possível designar a si mesmo como pai."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "O item pai do inventário não pertence ao mesmo dispositivo."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr ""
"Não é possível mover um item de inventário com itens filhos dependentes"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr ""
"Não é possível atribuir um item de inventário ao componente em outro "
@@ -6032,7 +6044,7 @@ msgstr "A função que este dispositivo desempenha"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Número de série do chassi, designado pelo fabricante"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Uma etiqueta exclusiva usada para identificar este dispositivo"
@@ -6044,12 +6056,12 @@ msgstr "posição (U)"
msgid "rack face"
msgstr "face do rack"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "IPv4 primário"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "IPv6 primário"
@@ -6199,15 +6211,24 @@ msgid "A device assigned to a virtual chassis must have its position defined."
msgstr ""
"Um dispositivo associado a um chassi virtual deve ter sua posição definida."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"O dispositivo não pode ser removido do chassi virtual {virtual_chassis} "
+"porque atualmente é designado como seu mestre."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "módulo"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "módulos"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6216,22 +6237,22 @@ msgstr ""
"O módulo deve ser instalado dentro de um compartimento pertencente ao "
"dispositivo ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "domínio"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "chassi virtual"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr ""
"O mestre selecionado ({master}) não está associado a este chassi virtual."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6240,34 +6261,34 @@ msgstr ""
"Não foi possível excluir o chassi virtual {self}. Existem interfaces membro "
"que formam interfaces LAG entre chassis."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "identificador"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Identificador numérico exclusivo para o dispositivo principal"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "comentários"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "contexto de dispositivo virtual"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "contextos de dispositivos virtuais"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} não é um endereço IPv{family}."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"O endereço IP primário deve pertencer a uma interface no dispositivo "
@@ -6697,7 +6718,7 @@ msgstr "Modelo de Configuração"
msgid "Site Group"
msgstr "Grupo de Sites"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6706,12 +6727,12 @@ msgstr "Grupo de Sites"
msgid "IP Address"
msgstr "Endereço IP"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "Endereço IPv4"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "Endereço IPv6"
@@ -6749,8 +6770,8 @@ msgstr "Portas de alimentação"
msgid "Power outlets"
msgstr "Tomadas elétricas"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6788,8 +6809,8 @@ msgstr "Itens de inventário"
msgid "Module Bay"
msgstr "Compartimento de módulo"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6847,75 +6868,75 @@ msgstr "Grupos FHRP"
msgid "Tunnel"
msgstr "Túnel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Somente Gerenciamento"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "Contextos de Dispositivos Virtuais"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Módulo Instalado"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Serial do Módulo"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Etiqueta de Patrimônio do Módulo"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Status do Módulo"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Componente"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Itens"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Tipos de Dispositivos"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Tipos de Módulos"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Plataformas"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Plataforma Padrão"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Full-Depth"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Altura em U"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Instâncias"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6926,7 +6947,7 @@ msgstr "Instâncias"
msgid "Console Ports"
msgstr "Portas de Console"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6937,7 +6958,7 @@ msgstr "Portas de Console"
msgid "Console Server Ports"
msgstr "Portas de Servidor de Console"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6948,7 +6969,7 @@ msgstr "Portas de Servidor de Console"
msgid "Power Ports"
msgstr "Portas de Alimentação"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6959,7 +6980,7 @@ msgstr "Portas de Alimentação"
msgid "Power Outlets"
msgstr "Tomadas Elétricas"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6969,7 +6990,7 @@ msgstr "Tomadas Elétricas"
msgid "Front Ports"
msgstr "Portas Frontais"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6980,7 +7001,7 @@ msgstr "Portas Frontais"
msgid "Rear Ports"
msgstr "Portas Traseiras"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6988,7 +7009,7 @@ msgstr "Portas Traseiras"
msgid "Device Bays"
msgstr "Compartimentos de Dispositivos"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7429,25 +7450,25 @@ msgstr "Tipo de widget"
msgid "Unregistered widget class: {name}"
msgstr "Classe de widget não registrada: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} deve definir um método render ()."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Nota"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr ""
"Exibe qualquer conteúdo personalizado arbitrário. Markdown é suportado."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Contagem de Objetos"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7455,63 +7476,63 @@ msgstr ""
"Exibe um conjunto de modelos do NetBox e o número de objetos criados para "
"cada tipo."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Filtros a serem aplicados ao contar o número de objetos"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
"Formato inválido. Os filtros de objetos devem ser passados como um "
"dicionário."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Lista de Objetos"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Exibe uma lista arbitrária de objetos."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "O número padrão de objetos a serem exibidos"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
"Formato inválido. Os parâmetros de URL devem ser passados como um "
"dicionário."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "Feed RSS"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Incorpore um feed RSS de um site externo."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "URL do feed"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "O número máximo de objetos a serem exibidos"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr ""
"Por quanto tempo o conteúdo em cache deve ser armazenado (em segundos)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Favoritos"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Exibe seus favoritos pessoais"
@@ -7554,8 +7575,8 @@ msgstr "Tipo de cluster (slug)"
msgid "Tenant group"
msgstr "Grupo de inquilinos"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Grupo de inquilinos (slug)"
@@ -7692,7 +7713,7 @@ msgstr "Está ativo"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Tipos de objetos"
@@ -7793,8 +7814,8 @@ msgstr "A classificação da entrada"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Usuários"
@@ -7806,8 +7827,8 @@ msgstr "Nomes de usuários separados por vírgulas, envoltos por aspas duplas."
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Grupos"
@@ -8533,10 +8554,19 @@ msgstr "conjunto de opções de campo personalizado"
msgid "custom field choice sets"
msgstr "conjuntos de opções de campos personalizados"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Deve definir opções básicas ou extras."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Não é possível remover a escolha {choice} como existem {model} objetos que "
+"fazem referência a ele."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "layout"
@@ -9111,64 +9141,64 @@ msgstr "Mensagem"
msgid "Method"
msgstr "Método"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Verifique se este valor é igual a %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Certifique-se de que este valor não seja igual a%(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Este campo deve estar vazio."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Este campo não deve estar vazio."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "As regras de validação devem ser passadas como um dicionário"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Falha na validação personalizada para {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Atributo \"{name}\" é inválido para a requisição"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Atributo \"{name}\" é inválido para {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Seu dashboard foi redefinido."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Widget adicionado: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Widget atualizado: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Widget excluído: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Erro ao excluir o widget: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr ""
"Não é possível executar o script: o processo do agente RQ não está em "
@@ -9239,19 +9269,19 @@ msgstr "Texto sem formatação"
msgid "Invalid IP address format: {address}"
msgstr "Formato de endereço IP inválido: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Import target"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Import target (nome)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Export target"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Export target (nome)"
@@ -9321,11 +9351,11 @@ msgstr "Prefixos que contêm este prefixo ou IP"
msgid "Mask length"
msgstr "Tamanho da máscara"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "Número da VLAN (1-4094)"
@@ -9345,23 +9375,23 @@ msgid "Parent prefix"
msgstr "Prefixo pai"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Máquina virtual (nome)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Máquina virtual (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Interface (nome)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "Interface da VM (nome)"
@@ -9389,19 +9419,27 @@ msgstr "Serviço (ID)"
msgid "NAT inside IP address (ID)"
msgstr "NAT dentro do endereço IP (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Interface associada"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Interface de VM atribuída"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "Endereço IP (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "Endereço IP"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "IPv4 Primário (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "IPv6 Primário (ID)"
@@ -9615,10 +9653,6 @@ msgstr "Máquina virtual"
msgid "Parent VM of assigned interface (if any)"
msgstr "VM pai da interface associada (se houver)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Interface associada"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "É primário"
@@ -11190,9 +11224,9 @@ msgstr "Administrador"
msgid "API Tokens"
msgstr "Tokens de API"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Permissões"
@@ -11342,63 +11376,63 @@ msgstr "Não é possível adicionar stores ao registro após a inicialização"
msgid "Cannot delete stores from registry"
msgstr "Não é possível excluir stores do registro"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "Tcheco"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "Dinamarquês"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Alemão"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Inglês"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "Espanhol"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "Francês"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "Italiano"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Japonês"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Holandês"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Polonês"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "Português"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Russo"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Turco"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "Ucraniano"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "Chinês"
@@ -13072,7 +13106,7 @@ msgstr "Adicionar Novo Membro"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Ações"
@@ -14127,7 +14161,7 @@ msgstr ""
"Clique aqui para tentar carregar o NetBox "
"novamente."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14156,7 +14190,7 @@ msgid "Add Contact Group"
msgstr "Adicionar Grupo de Contato"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Função dos Contatos"
@@ -14194,7 +14228,7 @@ msgid "View"
msgstr "Visualizar"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Restrições"
@@ -14221,11 +14255,6 @@ msgstr "Memória"
msgid "Disk Space"
msgstr "Espaço em Disco"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Adicionar Máquina Virtual"
@@ -14466,57 +14495,57 @@ msgstr "Propriedades do Link"
msgid "Distance"
msgstr "Distância"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Grupo de contatos principal (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Grupo de contatos principal (slug)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Grupo de contatos (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Grupo de contatos (slug)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Contato (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Função do contato (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Função do contato (slug)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Grupo de contatos"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Grupo de inquilinos principal (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Grupo de inquilinos principal (slug)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Grupo de inquilinos (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Grupo de Inquilinos (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Grupo de inquilinos (slug)"
@@ -14681,11 +14710,11 @@ msgstr "Pode Alterar"
msgid "Can Delete"
msgstr "Pode Excluir"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Interface de Usuário"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14695,7 +14724,7 @@ msgstr ""
"salvar sua chave antes de enviar este formulário, pois ela não será"
" mais acessível depois que o token for criado."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14705,31 +14734,31 @@ msgstr ""
"para nenhuma restrição. Exemplo: 10.1.1.0/24.192.168.10.16/32, 2001:db"
" 8:1: :/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Confirme a senha"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Digite a senha novamente."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr "As senhas não coincidem! Verifique e tente novamente."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Ações adicionais"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Ações concedidas além das listadas acima"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Objetos"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14739,11 +14768,11 @@ msgstr ""
"permitidos. Deixe em nulo para corresponder a todos os objetos deste tipo. "
"Uma lista de vários objetos resultará em uma operação lógica \"OR\"."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Ao menos uma ação deve ser selecionada."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Filtro inválido para {model}: {error}"
@@ -15005,7 +15034,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Valor inválido para um campo de múltipla escolha: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Objeto não encontrado: %(value)s"
@@ -15019,11 +15048,16 @@ msgstr ""
"“{value}“não é um valor exclusivo para este campo; vários objetos foram "
"encontrados"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "“{field_name}“é um nome de campo de acesso inválido."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "O tipo de objeto deve ser especificado como”.“"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Tipo de objeto inválido"
@@ -15613,19 +15647,19 @@ msgstr "Assinaturas DSA"
msgid "Group {n}"
msgstr "Grupo {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Ethernet Private LAN"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Ethernet Virtual Private LAN"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Ethernet Private Tree"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Árvore privada virtual Ethernet"
@@ -15657,33 +15691,31 @@ msgstr "Túnel (nome)"
msgid "Outside IP (ID)"
msgstr "IP Externo (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "Política da IKE (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "Política da IKE (nome)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "Política de IPsec (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "Política de IPsec (nome)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (slug)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "Interface da VM (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (nome)"
diff --git a/netbox/translations/ru/LC_MESSAGES/django.mo b/netbox/translations/ru/LC_MESSAGES/django.mo
index 22080044297..b1e1f892107 100644
Binary files a/netbox/translations/ru/LC_MESSAGES/django.mo and b/netbox/translations/ru/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/ru/LC_MESSAGES/django.po b/netbox/translations/ru/LC_MESSAGES/django.po
index 2e8dd535bed..9eb264f6604 100644
--- a/netbox/translations/ru/LC_MESSAGES/django.po
+++ b/netbox/translations/ru/LC_MESSAGES/django.po
@@ -4,24 +4,24 @@
# FIRST AUTHOR , YEAR.
#
# Translators:
-# Vladyslav V. Prodan, 2024
# nvoff, 2024
# Михаил Башкиров, 2024
# Сергей Стрельцов, 2024
# Madi Tuleu, 2024
# stavr666, 2024
-# Jeremy Stretch, 2024
-# Artem Kotik, 2024
# Alexander Ryazanov (alryaz) , 2024
+# Vladyslav V. Prodan, 2024
+# Artem Kotik, 2024
+# Jeremy Stretch, 2024
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Alexander Ryazanov (alryaz) , 2024\n"
+"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Russian (https://app.transifex.com/netbox-community/teams/178115/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,7 +31,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Ключ"
@@ -67,7 +67,7 @@ msgstr "Последнее использование"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "Разрешенные IP-адреса"
@@ -94,8 +94,8 @@ msgstr "Ваш пароль успешно изменен."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -103,12 +103,12 @@ msgstr "Запланировано"
#: netbox/circuits/choices.py:22 netbox/netbox/navigation/menu.py:305
msgid "Provisioning"
-msgstr "Ввод в эксплутацию"
+msgstr "Эксплутация"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -119,8 +119,8 @@ msgid "Active"
msgstr "Активный"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Оффлайн"
@@ -133,7 +133,7 @@ msgstr "Вывод из эксплуатации"
msgid "Decommissioned"
msgstr "Списан"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Основной"
@@ -159,7 +159,7 @@ msgstr "Неактивный"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Регион (ID)"
@@ -171,7 +171,7 @@ msgstr "Регион (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Регион (подстрока)"
@@ -200,7 +200,7 @@ msgstr "Группа сайтов (подстрока)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -266,7 +266,7 @@ msgstr "Сайт"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Сайт (подстрока)"
@@ -320,7 +320,7 @@ msgstr "Тип канала связи (подстрока)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Сайт (ID)"
@@ -339,13 +339,13 @@ msgstr "Точка подключения A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -354,7 +354,7 @@ msgstr "Поиск"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -538,9 +538,9 @@ msgstr "Описание"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -577,9 +577,9 @@ msgstr "Идентификатор Службы"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -592,7 +592,7 @@ msgid "Color"
msgstr "Цвет"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -615,7 +615,7 @@ msgstr "Цвет"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -649,14 +649,14 @@ msgid "Type"
msgstr "Тип"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Аккаунт провайдера"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -672,8 +672,8 @@ msgstr "Аккаунт провайдера"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -702,7 +702,7 @@ msgstr "Аккаунт провайдера"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -726,8 +726,8 @@ msgstr "Статус"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -893,21 +893,21 @@ msgstr "Сведения об точке подключения"
msgid "Priority"
msgstr "Приоритет"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Назначенный провайдер"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Назначенный аккаунт провайдера"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Тип канала связи"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -919,8 +919,8 @@ msgstr "Тип канала связи"
msgid "Operational status"
msgstr "Операционный статус"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -936,7 +936,7 @@ msgstr "Операционный статус"
msgid "Assigned tenant"
msgstr "Назначенный арендатор"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -944,7 +944,7 @@ msgstr "Назначенный арендатор"
msgid "Termination"
msgstr "Прекращение"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1100,7 +1100,7 @@ msgstr "Терминология"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Задание"
@@ -1155,11 +1155,11 @@ msgid "Circuit Group"
msgstr "Группа каналов связи"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1182,9 +1182,9 @@ msgid "Unique circuit ID"
msgstr "Уникальный ID канала связи"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1278,7 +1278,7 @@ msgstr "ID патч-панели и номера порта(-ов)"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1317,11 +1317,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1405,11 +1405,11 @@ msgstr "сети провайдера"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1547,8 +1547,8 @@ msgstr "Гарантированная скорость"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1626,8 +1626,8 @@ msgstr "Завершено"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Неисправно"
@@ -1693,42 +1693,42 @@ msgstr "Остановлен"
msgid "Cancelled"
msgstr "Отменено"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Локальный"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Имя пользователя"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Используется только для клонирования по HTTP (S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Пароль"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Ветка"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Не удалось получить удаленные данные ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "ID ключа доступа AWS"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Секретный ключ доступа AWS"
@@ -1783,7 +1783,7 @@ msgstr "Имя пользователя"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1897,7 +1897,7 @@ msgstr "Завершено до"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Пользователь"
@@ -1952,7 +1952,7 @@ msgstr "Необходимо загрузить файл или выбрать
msgid "Rack Elevations"
msgstr "Фасады стоек"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1995,7 +1995,7 @@ msgstr "Пользовательские настройки"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Разное"
@@ -2056,7 +2056,7 @@ msgstr ""
"({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2093,20 +2093,20 @@ msgid "Config revision #{id}"
msgstr "Ревизия конфигурации #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2121,8 +2121,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2236,60 +2236,60 @@ msgstr "Настраиваемый файл"
msgid "managed files"
msgstr "Настраиваемые файлы"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "по расписанию"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "интервал"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Интервал повторения (в минутах)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "начало"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "завершено"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "данные"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "ошибка"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "идентификатор задачи"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "задача"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr " задачи"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "Нельзя присвоить задачи этому типу объектов ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
"Неверный статус для завершения задачи. Возможны следующие варианты: "
"{choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr "Невозможно вызвать enqueue() со значениями schedule_at и immediate."
@@ -2338,7 +2338,7 @@ msgid "Last updated"
msgstr "Последнее обновление"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2530,7 +2530,7 @@ msgid "Staging"
msgstr "Подготовка к развертыванию"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Вывод из эксплуатации"
@@ -2594,17 +2594,17 @@ msgstr "Выведенный(-ая) из использования"
msgid "Millimeters"
msgstr "Миллиметры"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Дюймы"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Спереди назад"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Сзади вперед"
@@ -2617,8 +2617,8 @@ msgstr "Сзади вперед"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2662,7 +2662,7 @@ msgstr "Вид спереди"
msgid "Rear"
msgstr "Вид сзади"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Подготовлен"
@@ -2671,67 +2671,79 @@ msgstr "Подготовлен"
msgid "Inventory"
msgstr "Инвентарь"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Слева направо"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Справа налево"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Бок назад"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Сзади в сторону"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Снизу вверх"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Сверху вниз"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Пассивный"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Смешанный"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (не блокирующий)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (блокирующий)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Калифорнийский стиль"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "ITA/Международный"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Проприетарный"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Другой"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/Международный"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Физический"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Виртуальный"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2739,13 +2751,13 @@ msgstr "Виртуальный"
msgid "Wireless"
msgstr "Беспроводной"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Виртуальные интерфейсы"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2753,27 +2765,27 @@ msgstr "Виртуальные интерфейсы"
msgid "Bridge"
msgstr "Мост"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Группа агрегации линков (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (фиксированный)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (модульный)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (объединительная плата)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Сотовая связь"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2781,130 +2793,130 @@ msgstr "Сотовая связь"
msgid "Serial"
msgstr "Серийный"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Коаксиальный"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "Стекирование"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Полу"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Полный"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Авто"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Доступ"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Тегированный"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Тегированный (все)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "Стандарт IEEE"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Пассивный режим 24 В (2 пары)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Пассивное напряжение 24 В (4 пары)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Пассивное напряжение 48 В (2 пары)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Пассивное напряжение 48 В (4 пары)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Медь"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Оптоволоконное"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Волокно"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Подключено"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Километры"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Метры"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Сантиметры"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Мили"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Футы"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Килограммы"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Граммы"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Фунты"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Унции"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Резервный"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Однофазный"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Трехфазный"
@@ -3156,7 +3168,7 @@ msgstr "Полная глубина"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3200,7 +3212,7 @@ msgid "Device model"
msgstr "модель устройства"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Интерфейс (ID)"
@@ -3214,8 +3226,8 @@ msgstr "Отсек для модулей (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Устройство (ID)"
@@ -3224,8 +3236,8 @@ msgid "Rack (name)"
msgstr "Стойка (имя)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Устройство (имя)"
@@ -3275,8 +3287,8 @@ msgstr "Назначенный VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3312,7 +3324,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3368,7 +3380,7 @@ msgstr "Контекст виртуального устройства (иден
msgid "Wireless LAN"
msgstr "Беспроводная сеть"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Беспроводная связь"
@@ -3396,12 +3408,12 @@ msgstr "Мастер (удостоверение личности)"
msgid "Master (name)"
msgstr "Мастер (имя)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Арендатор (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Арендатор (подстрока)"
@@ -3428,7 +3440,7 @@ msgstr "Теги"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3477,8 +3489,8 @@ msgstr "Часовой пояс"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3542,7 +3554,7 @@ msgstr "Глубина крепления"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3603,8 +3615,8 @@ msgstr "Нумерация"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3712,12 +3724,12 @@ msgstr "Номер детали"
msgid "U height"
msgstr "Высота U"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Исключить из использования"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3806,10 +3818,10 @@ msgstr "Платформа"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3936,8 +3948,8 @@ msgid "Maximum draw"
msgstr "Максимальное потребление"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Максимальная потребляемая мощность (Вт)"
@@ -3946,8 +3958,8 @@ msgid "Allocated draw"
msgstr "Выделенная мощность"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Распределенная потребляемая мощность (Вт)"
@@ -3968,16 +3980,16 @@ msgstr "Только управление"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "Режим PoE"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "Тип PoE"
@@ -4001,7 +4013,7 @@ msgstr "Роль беспроводной связи"
msgid "Module"
msgstr "Модуль"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "LAG"
@@ -4013,7 +4025,7 @@ msgstr "Виртуальные контексты"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4060,7 +4072,7 @@ msgid "Wireless LAN group"
msgstr "Беспроводная группа LAN"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4446,7 +4458,7 @@ msgstr "Соответствующий задний порт"
msgid "Physical medium classification"
msgstr "Классификация физических сред"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Установленное устройство"
@@ -4535,7 +4547,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} боковое завершение не найдено: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4587,7 +4599,7 @@ msgstr "Основной IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "Адрес IPv6 с длиной префикса, напр. 2001:db8::1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4752,7 +4764,7 @@ msgid "Mgmt only"
msgstr "Только менеджмент"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "Глобальное уникальное имя (WWN)"
@@ -4785,7 +4797,7 @@ msgstr "Мощность передачи (дБм)"
msgid "Cable"
msgstr "Кабель"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Обнаружено"
@@ -4935,7 +4947,7 @@ msgid "Front Port"
msgstr "Передний порт"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5074,7 +5086,7 @@ msgstr ""
"соответствовать выбранному количеству положений задних портов "
"({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5099,7 +5111,7 @@ msgstr "Должность должна быть указана для перв
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr " лейбл"
@@ -5205,7 +5217,7 @@ msgstr ""
"подключении к модулю того или иного типа."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Физический лейбл"
@@ -5228,138 +5240,138 @@ msgid ""
msgstr ""
"Шаблон компонента должен быть связан с типом устройства или типом модуля."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "шаблон консольного порта"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "шаблоны консольных портов"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "шаблон порта консольного сервера"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "шаблоны портов консольного сервера"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "максимальное потребление"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "выделенное потребление"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "шаблон порта питания"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "шаблоны портов питания"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"Выделенная мощность не может превышать максимальную ({maximum_draw}Вт)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "фаза электропитания"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Фаза (для трехфазных)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "шаблон розетки питания"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "шаблоны розеток питания"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Родительский порт питания ({power_port}) должен принадлежать тому же типу "
"устройства"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Родительский порт питания ({power_port}) должен принадлежать тому же типу "
"модулей"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "только управление"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "интерфейс моста"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "роль беспроводной сети"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "шаблон интерфейса"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "шаблоны интерфейсов"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Интерфейс не может быть подключен к самому себе."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr ""
"Интерфейс моста ({bridge}) должно принадлежать к тому же типу устройства"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Интерфейс моста ({bridge}) должен принадлежать к одному типу модулей"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "положение заднего порта"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "шаблон переднего порта"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "шаблоны передних портов"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Задний порт ({name}) должно принадлежать к тому же типу устройства"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5368,48 +5380,48 @@ msgstr ""
"Неверное положение заднего порта ({position}); задний порт {name} имеет "
"только {count} позиции"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "позиция"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "шаблон заднего порта"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "шаблоны задних портов"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "позиция"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Идентификатор, на который следует ссылаться при переименовании установленных"
" компонентов"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "шаблон модульного отсека"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "шаблоны модульных отсеков"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "шаблон отсека для устройств"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "шаблоны отсеков для устройств"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5418,208 +5430,208 @@ msgstr ""
"Роль подустройства типа устройства ({device_type}) должно быть установлено "
"значение «родительский», чтобы разрешить отсеки для устройств."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "номер модели"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Номер модели, присвоенный производителем"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "шаблон инвентарного товара"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "шаблоны товаров инвентаря"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Компоненты нельзя перемещать на другое устройство."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "конец кабеля"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "отметка подключена"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Обращайтесь так, как будто кабель подключен"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "При подключении кабеля необходимо указать конец кабеля (A или B)."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "Нельзя указывать конец кабеля без указания самого кабеля."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Невозможно отметить как подключенный, если присоединен кабель."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} модели должны объявить свойство parent_object"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Тип физического порта"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "скорость"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Скорость порта в битах в секунду"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "консольный порт"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "консольные порты"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "порт консольного сервера"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "порты консольного сервера"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "порт питания"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "порты питания"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "розетка питания"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "розетки питания"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Родительский порт питания ({power_port}) должен принадлежать тому же "
"устройству"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "режим"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "Стратегия маркировки IEEE 802.1Q"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "родительский интерфейс"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "родительский LAG"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Этот интерфейс используется только для внеполосного управления"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "скорость (Кбит/с)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "дуплекс"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64-битное всемирное имя"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "беспроводной канал"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "частота канала (МГц)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Заполнено выбранным каналом (если задано)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "мощность передачи (дБм)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "беспроводные LANs"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "VLAN без тегов"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "VLAN без тегов"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "интерфейс"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "интерфейсы"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} к интерфейсам нельзя подключать кабель."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type} интерфейсы нельзя пометить как подключенные."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Интерфейс не может быть собственным родителем."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr ""
"Родительскому интерфейсу могут быть назначены только виртуальные интерфейсы."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5628,7 +5640,7 @@ msgstr ""
"Выбранный родительский интерфейс ({interface}) принадлежит другому "
"устройству ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5637,7 +5649,7 @@ msgstr ""
"Выбранный родительский интерфейс ({interface}) принадлежит {device}, который"
" не является частью виртуального шасси {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5646,7 +5658,7 @@ msgstr ""
"Выбранный интерфейс моста ({bridge}) принадлежит другому устройству "
"({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5655,22 +5667,22 @@ msgstr ""
"Выбранный интерфейс моста ({interface}) принадлежит {device}, который не "
"является частью виртуального шасси {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Виртуальные интерфейсы не могут иметь родительский интерфейс LAG."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Интерфейс LAG не может быть собственным родителем."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr ""
"Выбранный интерфейс LAG ({lag}) принадлежит другому устройству ({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5679,47 +5691,47 @@ msgstr ""
"Выбранный интерфейс LAG ({lag}) принадлежит {device}, который не является "
"частью виртуального шасси {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Виртуальные интерфейсы не могут иметь режим PoE."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Виртуальные интерфейсы не могут иметь тип PoE."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "При назначении типа PoE необходимо указать режим PoE."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr ""
"Роль беспроводной связи может быть установлена только на беспроводных "
"интерфейсах."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Канал можно настроить только на беспроводных интерфейсах."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"Частота канала может быть установлена только на беспроводных интерфейсах."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr "Невозможно указать произвольную частоту для выбранного канала."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr ""
"Ширина канала может быть установлена только на беспроводных интерфейсах."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr "Невозможно указать произвольную ширину полосы для выбранного канала."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5728,25 +5740,25 @@ msgstr ""
"VLAN без тегов ({untagged_vlan}) должно принадлежать тому же сайту, что и "
"родительское устройство интерфейса, или оно должно быть глобальным."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Нанесенное на карту положение на соответствующем заднем порту"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "фронтальный порт"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "фронтальные порты"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr ""
"Задний порт ({rear_port}) должно принадлежать одному и тому же устройству"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5755,19 +5767,19 @@ msgstr ""
"Неверное положение заднего порта ({rear_port_position}): Задний порт {name} "
"имеет только {positions} позиции."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Количество передних портов, которые можно сопоставить"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "задний порт"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "задние порты"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5776,38 +5788,38 @@ msgstr ""
"Количество позиций не может быть меньше количества сопоставленных передних "
"портов ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "модульный отсек"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "отсеки для модулей"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr "Отсек для модулей не может принадлежать установленному в нем модулю."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "отсек для устройств"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "отсеки для устройств"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr ""
"Этот тип устройства ({device_type}) не поддерживает отсеки для устройств."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Невозможно установить устройство в само по себе."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5815,61 +5827,61 @@ msgstr ""
"Невозможно установить указанное устройство; устройство уже установлено в "
"{bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "роль элемента инвентаря"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "роли элементов инвентаря"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "серийный номер"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "инвентарный номер"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Инвентарный номер, используемый для идентификации этого элемента"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "обнаружено"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Этот элемент был обнаружен автоматически"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "элемент инвентаря"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "элементы инвентаря"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Невозможно назначить себя родителем."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr ""
"Предмет родительского инвентаря не принадлежит одному и тому же устройству."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "Невозможно переместить инвентарь вместе с дочерней зависимостью"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr ""
"Невозможно присвоить инвентарный предмет компоненту на другом устройстве"
@@ -6022,7 +6034,7 @@ msgstr "Функция, которую выполняет это устройс
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Серийный номер шасси, присвоенный производителем"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Уникальный тег, используемый для идентификации этого устройства"
@@ -6034,12 +6046,12 @@ msgstr "положение (U)"
msgid "rack face"
msgstr "лицевая сторона стойки"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "основной IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "основной IPv6"
@@ -6186,15 +6198,24 @@ msgstr ""
"Положение устройства, назначенного виртуальному шасси, должно быть "
"определено."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Устройство нельзя удалить из виртуального корпуса {virtual_chassis} потому "
+"что в настоящее время оно назначено его хозяином."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "модуль"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "модули"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6203,21 +6224,21 @@ msgstr ""
"Модуль должен быть установлен в модульном отсеке, принадлежащем назначенному"
" устройству ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "Домен"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "виртуальное шасси"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr "Выбранный мастер ({master}) не назначено этому виртуальному шасси."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6226,34 +6247,34 @@ msgstr ""
"Невозможно удалить виртуальное шасси {self}. Существуют интерфейсы-члены, "
"которые образуют межкорпусные интерфейсы LAG."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "идентификатор"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Цифровой идентификатор, уникальный для родительского устройства"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "комментарии"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "виртуальный контекст"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "виртуальные контексты"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} не является IPV{family} адрес."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"Основной IP-адрес должен принадлежать интерфейсу на назначенном устройстве."
@@ -6684,7 +6705,7 @@ msgstr "Шаблон конфигурации"
msgid "Site Group"
msgstr "Группа сайтов"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6693,12 +6714,12 @@ msgstr "Группа сайтов"
msgid "IP Address"
msgstr "IP-адрес"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "Адрес IPv4"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "Адрес IPv6"
@@ -6736,8 +6757,8 @@ msgstr "Порты питания"
msgid "Power outlets"
msgstr "Розетки питания"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6775,8 +6796,8 @@ msgstr "Комплектующие"
msgid "Module Bay"
msgstr "Модульный отсек"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6834,75 +6855,75 @@ msgstr "Группы FHRP"
msgid "Tunnel"
msgstr "Туннель"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Только управление"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "Виртуальные контексты устройств(VDCs)"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Установленный модуль"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Серийный номер модуля"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Тег активов модуля"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Состояние модуля"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Компонент"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Предметы"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Типы устройств"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Типы модулей"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Платформы"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Платформа по умолчанию"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Полная глубина"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Высота U"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Инстансы"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6913,7 +6934,7 @@ msgstr "Инстансы"
msgid "Console Ports"
msgstr "Порты консоли"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6924,7 +6945,7 @@ msgstr "Порты консоли"
msgid "Console Server Ports"
msgstr "Порты консольного сервера"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6935,7 +6956,7 @@ msgstr "Порты консольного сервера"
msgid "Power Ports"
msgstr "Порты питания"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6946,7 +6967,7 @@ msgstr "Порты питания"
msgid "Power Outlets"
msgstr "Розетки питания"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6956,7 +6977,7 @@ msgstr "Розетки питания"
msgid "Front Ports"
msgstr "Фронтальные порты"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6967,7 +6988,7 @@ msgstr "Фронтальные порты"
msgid "Rear Ports"
msgstr "Задние порты"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6975,7 +6996,7 @@ msgstr "Задние порты"
msgid "Device Bays"
msgstr "Отсеки для устройств"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7276,7 +7297,7 @@ msgstr "30 дней"
#: netbox/templates/generic/object_edit.html:80
#: netbox/templates/ipam/inc/ipaddress_edit_header.html:7
msgid "Create"
-msgstr "Создайте"
+msgstr "Создать"
#: netbox/extras/choices.py:227
msgid "Update"
@@ -7417,26 +7438,26 @@ msgstr "Тип виджета"
msgid "Unregistered widget class: {name}"
msgstr "Незарегистрированный класс виджета: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} должен определить метод render ()."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Примечание"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr ""
"Отображает произвольный пользовательский контент. Поддерживается разметка "
"Markdown."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Количество объектов"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7444,59 +7465,59 @@ msgstr ""
"Отобразите набор моделей NetBox и количество объектов, созданных для каждого"
" типа."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Фильтры, применяемые при подсчете количества объектов"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr ""
"Неверный формат. Фильтры объектов необходимо передавать в виде словаря."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Список объектов"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Отобразите произвольный список объектов."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Количество отображаемых объектов по умолчанию"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr "Неверный формат. Параметры URL должны быть переданы в виде словаря."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS-канал"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Вставьте RSS-канал с внешнего веб-сайта."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "URL-адрес ленты"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Максимальное количество отображаемых объектов"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Как долго хранить кэшированный контент (в секундах)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Закладки"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Покажите свои личные закладки"
@@ -7539,8 +7560,8 @@ msgstr "Тип кластера (подстрока)"
msgid "Tenant group"
msgstr "Группы арендаторов"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Группа арендаторов (подстрока)"
@@ -7677,7 +7698,7 @@ msgstr "Активен"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Типы объектов"
@@ -7781,8 +7802,8 @@ msgstr "Классификация записей"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Пользователи"
@@ -7795,8 +7816,8 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Группы"
@@ -8521,10 +8542,19 @@ msgstr "набор вариантов для настраиваемых поле
msgid "custom field choice sets"
msgstr "наборы вариантов для настраиваемых полей"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Должен определить базовые или дополнительные варианты."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Невозможно удалить выбор {choice} так как есть {model} объекты, ссылающиеся "
+"на него."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "макет"
@@ -9094,64 +9124,64 @@ msgstr "Сообщение"
msgid "Method"
msgstr "Метод"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Убедитесь, что это значение равно %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Убедитесь, что это значение не равно %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Это поле должно быть пустым."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Это поле не должно быть пустым."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Правила валидации должны быть переданы в виде словаря"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Пользовательская проверка не удалась для {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Неверный атрибут»{name}\"по запросу"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Недопустимый атрибут \"{name}\" для {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Панель виджетов была сброшена."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Добавлен виджет: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Обновлен виджет: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Удален виджет: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Ошибка при удалении виджета: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "Невозможно запустить скрипт: процесс RQ не запущен."
@@ -9219,19 +9249,19 @@ msgstr "Обычный текст"
msgid "Invalid IP address format: {address}"
msgstr "Неверный формат IP-адреса: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Цель импорта"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Цель импорта (имя)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Цель экспорта"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Цель экспорта (имя)"
@@ -9301,11 +9331,11 @@ msgstr "Префиксы, содержащие этот префикс или IP
msgid "Mask length"
msgstr "Длина маски"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "Номер VLAN (1-4094)"
@@ -9325,23 +9355,23 @@ msgid "Parent prefix"
msgstr "Родительский префикс"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Виртуальная машина (имя)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Виртуальная машина (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Интерфейс (имя)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "Интерфейс виртуальной машины (имя)"
@@ -9369,19 +9399,27 @@ msgstr "Сервис (ID)"
msgid "NAT inside IP address (ID)"
msgstr "Внутренний NAT IP-адрес (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Назначенный интерфейс"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Назначенный интерфейс виртуальной машины"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "IP-адрес (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP-адрес"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "Основной IPv4 (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "Основной IPv6 (ID)"
@@ -9595,10 +9633,6 @@ msgstr "Виртуальная машина"
msgid "Parent VM of assigned interface (if any)"
msgstr "Родительская виртуальная машина назначенного интерфейса (если есть)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Назначенный интерфейс"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Является основным"
@@ -11170,9 +11204,9 @@ msgstr "Администратор"
msgid "API Tokens"
msgstr "Токены API"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Разрешения"
@@ -11325,63 +11359,63 @@ msgstr "Невозможно добавить хранилище в реестр
msgid "Cannot delete stores from registry"
msgstr "Невозможно удалить хранилище из реестра"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "Чешский"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "Датский"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Немецкий"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Английский"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "Испанский"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "Французский"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "Итальянский"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Японский"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Голландский"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Польский"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "Португальский"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Русский"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Турецкий"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
-msgstr "украинский"
+msgstr "Украинский"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "Китайский"
@@ -13055,7 +13089,7 @@ msgstr "Добавить нового участника"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Действия"
@@ -13698,7 +13732,7 @@ msgstr "Помощь"
#: netbox/templates/generic/object_edit.html:83
msgid "Create & Add Another"
-msgstr "Создайте и добавьте еще"
+msgstr "Создать и добавить еще"
#: netbox/templates/generic/object_list.html:57
msgid "Filters"
@@ -14109,7 +14143,7 @@ msgstr ""
"Нажмите здесь чтобы снова попытаться загрузить "
"NetBox."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14138,7 +14172,7 @@ msgid "Add Contact Group"
msgstr "Добавить контактную группу"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Роль контакта"
@@ -14176,7 +14210,7 @@ msgid "View"
msgstr "Вид"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Ограничения"
@@ -14203,11 +14237,6 @@ msgstr "Память"
msgid "Disk Space"
msgstr "Дисковое пространство"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "ГБ"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Добавить виртуальную машину"
@@ -14448,57 +14477,57 @@ msgstr "Свойства ссылки"
msgid "Distance"
msgstr "Расстояние"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Контактная группа родителей (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Контактная группа родителей (подстрока)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "Контактная группа (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Группа контактов (подстрока)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "Контактное лицо (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Роль контакта (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Роль контакта (подстрока)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Контактная группа"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Родительская группа арендаторов (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Родительская группа арендаторов (подстрока)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Группа арендаторов (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Группа арендаторов (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Группа арендаторов (подстрока)"
@@ -14663,11 +14692,11 @@ msgstr "Может измениться"
msgid "Can Delete"
msgstr "Можно удалить"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Пользовательский интерфейс"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14677,7 +14706,7 @@ msgstr ""
"свой ключ до отправки этой формы, так как после создания токена она"
" может быть недоступна."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14687,33 +14716,33 @@ msgstr ""
"поле пустым, чтобы не было ограничений. Пример: 10.1.1.0/24, "
"192.168.10.16/32, 2001:DB8:1::/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Подтвердите пароль"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Введите тот же пароль, что и раньше, для проверки."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Пароли не совпадают! Пожалуйста, проверьте введенные данные и попробуйте "
"снова."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Дополнительные действия"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Действия, предпринятые в дополнение к перечисленным выше"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Объекты"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14723,11 +14752,11 @@ msgstr ""
"Оставьте значение null для соответствия всем объектам этого типа. Список из "
"нескольких объектов приведет к логической операции ИЛИ."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Должно быть выбрано хотя бы одно действие."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Неверный фильтр для {model}: {error}"
@@ -14987,7 +15016,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Неверное значение для поля с несколькими вариантами ответов: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Объект не найден: %(value)s"
@@ -15001,11 +15030,16 @@ msgstr ""
"«{value}\"не является уникальным значением для этого поля; найдено несколько"
" объектов"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "\"{field_name}\" — неправильное имя поля доступа."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Тип объекта должен быть указан как».»"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Неверный тип объекта"
@@ -15597,19 +15631,19 @@ msgstr "Подписи DSA"
msgid "Group {n}"
msgstr "Группа {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Частная локальная сеть Ethernet"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Виртуальная частная локальная сеть Ethernet"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Частное дерево Ethernet"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Виртуальное частное дерево Ethernet"
@@ -15641,33 +15675,31 @@ msgstr "Туннель (название)"
msgid "Outside IP (ID)"
msgstr "Внешний IP-адрес (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "Политика IKE (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "Политика IKE (название)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "Политика IPsec (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "Политика IPsec (имя)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (подстрока)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "Интерфейс виртуальной машины (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (название)"
diff --git a/netbox/translations/tr/LC_MESSAGES/django.mo b/netbox/translations/tr/LC_MESSAGES/django.mo
index 34455578eaf..9117323f5b5 100644
Binary files a/netbox/translations/tr/LC_MESSAGES/django.mo and b/netbox/translations/tr/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/tr/LC_MESSAGES/django.po b/netbox/translations/tr/LC_MESSAGES/django.po
index d0f79a747c6..34544341eaf 100644
--- a/netbox/translations/tr/LC_MESSAGES/django.po
+++ b/netbox/translations/tr/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Turkish (https://app.transifex.com/netbox-community/teams/178115/tr/)\n"
@@ -25,7 +25,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Anahtar"
@@ -61,7 +61,7 @@ msgstr "Son Kullanım"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "İzin verilen IP'ler"
@@ -90,8 +90,8 @@ msgstr "Şifreniz başarıyla değiştirildi."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -103,8 +103,8 @@ msgstr "Tedarik"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -115,8 +115,8 @@ msgid "Active"
msgstr "Aktif"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Çevrim dışı"
@@ -129,7 +129,7 @@ msgstr "Hazırlıktan Kaldırma"
msgid "Decommissioned"
msgstr "Hizmet dışı bırakıldı"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Birincil"
@@ -155,7 +155,7 @@ msgstr "Etkin Olmayan"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "Bölge (ID)"
@@ -167,7 +167,7 @@ msgstr "Bölge (ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Bölge (kısa ad)"
@@ -196,7 +196,7 @@ msgstr "Site grubu (kısa ad)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -262,7 +262,7 @@ msgstr "Site"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Site (kısa ad)"
@@ -316,7 +316,7 @@ msgstr "Devre tipi (kısa ad)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "Site (ID)"
@@ -335,13 +335,13 @@ msgstr "Fesih A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -350,7 +350,7 @@ msgstr "Arama"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -534,9 +534,9 @@ msgstr "Açıklama"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -573,9 +573,9 @@ msgstr "Servis ID"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -588,7 +588,7 @@ msgid "Color"
msgstr "Renk"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -611,7 +611,7 @@ msgstr "Renk"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -645,14 +645,14 @@ msgid "Type"
msgstr "Tür"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Sağlayıcı hesabı"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -668,8 +668,8 @@ msgstr "Sağlayıcı hesabı"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -698,7 +698,7 @@ msgstr "Sağlayıcı hesabı"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -722,8 +722,8 @@ msgstr "Durum"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -889,21 +889,21 @@ msgstr "Fesih Ayrıntıları"
msgid "Priority"
msgstr "Öncelik"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Atanan sağlayıcı"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Atanan sağlayıcı hesabı"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Devre tipi"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -915,8 +915,8 @@ msgstr "Devre tipi"
msgid "Operational status"
msgstr "Operasyonel durum"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -932,7 +932,7 @@ msgstr "Operasyonel durum"
msgid "Assigned tenant"
msgstr "Atanan kiracı"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -940,7 +940,7 @@ msgstr "Atanan kiracı"
msgid "Termination"
msgstr "Fesih"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1096,7 +1096,7 @@ msgstr "Dönem Tarafı"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Ödev"
@@ -1151,11 +1151,11 @@ msgid "Circuit Group"
msgstr "Devre Grubu"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1178,9 +1178,9 @@ msgid "Unique circuit ID"
msgstr "Benzersiz devre ID"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1274,7 +1274,7 @@ msgstr "Bağlantı paneli ID ve port numaraları"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1310,11 +1310,11 @@ msgstr "Devre sonlandırma hem siteye hem de sağlayıcı ağına bağlanamaz."
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1398,11 +1398,11 @@ msgstr "sağlayıcı ağları"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1540,8 +1540,8 @@ msgstr "Taahhüt Oranı"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1618,8 +1618,8 @@ msgstr "Tamamlandı"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Başarısız"
@@ -1685,42 +1685,42 @@ msgstr "Durduruldu"
msgid "Cancelled"
msgstr "İptal Edildi"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Yerel"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Kullanıcı Adı"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Sadece HTTP(S) ile klonlama için kullanılır"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Şifre"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Şube"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Uzaktan veri getirilemedi ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "AWS erişim anahtarı kimliği"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "AWS gizli erişim anahtarı"
@@ -1775,7 +1775,7 @@ msgstr "Kullanıcı adı"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1889,7 +1889,7 @@ msgstr "Daha önce tamamlandı"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Kullanıcı"
@@ -1945,7 +1945,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Raf Yükseltmeleri"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1988,7 +1988,7 @@ msgstr "Kullanıcı Tercihleri"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Çeşitli"
@@ -2047,7 +2047,7 @@ msgid "Change logging is not supported for this object type ({type})."
msgstr "Değişiklik günlüğü bu nesne türü için desteklenmez ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2084,20 +2084,20 @@ msgid "Config revision #{id}"
msgstr "Yapılandırma revizyonu #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2112,8 +2112,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2227,59 +2227,59 @@ msgstr "yönetilen dosya"
msgid "managed files"
msgstr "yönetilen dosyalar"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "planlanmış"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "aralık"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Tekrarlama aralığı (dakika cinsinden)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "başladı"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "tamamlandı"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "veri"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "hata"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "görev ID"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "görev"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "görevler"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "İşler bu nesne türüne atanamaz ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
"İşin sonlandırılması için geçersiz durum. Seçenekler şunlardır: {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr "enqueue () hem schedule_at hem de imediat değerleriyle çağrılamaz."
@@ -2328,7 +2328,7 @@ msgid "Last updated"
msgstr "Son Güncelleme"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2520,7 +2520,7 @@ msgid "Staging"
msgstr "Sahneleme"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Hizmetten çıkarma"
@@ -2584,17 +2584,17 @@ msgstr "Kullanımdan kaldırıldı"
msgid "Millimeters"
msgstr "Milimetre"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "İnç"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Önden arkaya"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Arkadan öne"
@@ -2607,8 +2607,8 @@ msgstr "Arkadan öne"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2652,7 +2652,7 @@ msgstr "Ön"
msgid "Rear"
msgstr "Arka"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Sahnelenmiş"
@@ -2661,67 +2661,79 @@ msgstr "Sahnelenmiş"
msgid "Inventory"
msgstr "Envanter"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Soldan sağa"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Sağdan sola"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Yandan arkaya"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Arkadan yana"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Aşağıdan yukarıya"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Yukarıdan aşağıya"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Pasif"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Karışık"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (Kilitsiz)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (Kilitleme)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Kaliforniya Tarzı"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "Uluslararası/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Tescilli"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Diğer"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/Uluslararası"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Fiziksel"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Sanal"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2729,13 +2741,13 @@ msgstr "Sanal"
msgid "Wireless"
msgstr "Kablosuz"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Sanal arayüzler"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2743,27 +2755,27 @@ msgstr "Sanal arayüzler"
msgid "Bridge"
msgstr "Köprü"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Bağlantı Toplama Grubu (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (sabit)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (modüler)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (arka panel)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Hücresel"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2771,130 +2783,130 @@ msgstr "Hücresel"
msgid "Serial"
msgstr "Seri"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Koaksiyel"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "İstifleme"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "Yarım"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Dolu"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Oto"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Erişim"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Etiketlenmiş"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Etiketlenmiş (Tümü)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "IEEE Standardı"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Pasif 24V (2 çift)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Pasif 24V (4 çift)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Pasif 48V (2 çift)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Pasif 48V (4 çift)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Bakır"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Fiber Optik"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Fiber"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Bağlı"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Kilometre"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Sayaçlar"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Santimetre"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Mil"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Feet"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Kilogram"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Gramlar"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Pound'lar"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "ons"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Yedekli"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Tek fazlı"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Üç fazlı"
@@ -3146,7 +3158,7 @@ msgstr "Tam derinlik mi"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3190,7 +3202,7 @@ msgid "Device model"
msgstr "Cihaz modeli"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "Arayüz (ID)"
@@ -3204,8 +3216,8 @@ msgstr "Modül yuvası (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "Cihaz (ID)"
@@ -3214,8 +3226,8 @@ msgid "Rack (name)"
msgstr "Raf (isim)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Cihaz (isim)"
@@ -3265,8 +3277,8 @@ msgstr "Atanmış VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3302,7 +3314,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (KİMLİĞİ)"
@@ -3358,7 +3370,7 @@ msgstr "Sanal Cihaz Bağlamı (Tanımlayıcı)"
msgid "Wireless LAN"
msgstr "Kablosuz LAN"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Kablosuz bağlantı"
@@ -3386,12 +3398,12 @@ msgstr "Master (ID)"
msgid "Master (name)"
msgstr "Master (isim)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "Kiracı (ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Kiracı (kısa ad)"
@@ -3418,7 +3430,7 @@ msgstr "Etiketler"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3467,8 +3479,8 @@ msgstr "Saat dilimi"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3532,7 +3544,7 @@ msgstr "Montaj derinliği"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3593,8 +3605,8 @@ msgstr "Numaralandırma"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3702,12 +3714,12 @@ msgstr "Parça numarası"
msgid "U height"
msgstr "U yüksekliği"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Kullanımdan hariç tut"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3796,10 +3808,10 @@ msgstr "Platform"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3926,8 +3938,8 @@ msgid "Maximum draw"
msgstr "Maksimum çekiliş"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Maksimum güç çekimi (watt)"
@@ -3936,8 +3948,8 @@ msgid "Allocated draw"
msgstr "Tahsis edilen çekiliş"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Tahsis edilen güç çekimi (watt)"
@@ -3958,16 +3970,16 @@ msgstr "Yalnızca yönetim"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "PoE modu"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "PoE tipi"
@@ -3991,7 +4003,7 @@ msgstr "Kablosuz rolü"
msgid "Module"
msgstr "Modül"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "GECİKME"
@@ -4003,7 +4015,7 @@ msgstr "Sanal cihaz bağlamları"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4050,7 +4062,7 @@ msgid "Wireless LAN group"
msgstr "Kablosuz LAN grubu"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4436,7 +4448,7 @@ msgstr "İlgili arka bağlantı noktası"
msgid "Physical medium classification"
msgstr "Fiziksel ortam sınıflandırması"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Yüklü cihaz"
@@ -4525,7 +4537,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} yan sonlandırma bulunamadı: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4577,7 +4589,7 @@ msgstr "Birincil IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "Önek uzunluğuna sahip IPv6 adresi, örn. 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4740,7 +4752,7 @@ msgid "Mgmt only"
msgstr "Sadece Mgmt"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4773,7 +4785,7 @@ msgstr "İletim gücü (dBm)"
msgid "Cable"
msgstr "Kablo"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Keşfedildi"
@@ -4923,7 +4935,7 @@ msgid "Front Port"
msgstr "Ön Bağlantı Noktası"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5060,7 +5072,7 @@ msgstr ""
"Oluşturulacak ön bağlantı noktalarının sayısı ({frontport_count}) seçilen "
"arka port konumu sayısıyla eşleşmelidir ({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5083,7 +5095,7 @@ msgstr "İlk VC üyesi için bir pozisyon belirtilmelidir."
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "etiketlemek"
@@ -5185,7 +5197,7 @@ msgstr ""
"edilir."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Fiziksel etiket"
@@ -5208,134 +5220,134 @@ msgstr ""
"Bir bileşen şablonu, bir aygıt türü veya bir modül türüyle "
"ilişkilendirilmelidir."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "konsol bağlantı noktası şablonu"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "konsol bağlantı noktası şablonları"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "konsol sunucusu bağlantı noktası şablonu"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "konsol sunucusu bağlantı noktası şablonları"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "maksimum çekiliş"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "tahsis edilen çekiliş"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "güç bağlantı noktası şablonu"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "güç bağlantı noktası şablonları"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr "Tahsis edilen çekiliş maksimum çekilişi aşamaz ({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "besleme bacağı"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Faz (üç fazlı beslemeler için)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "elektrik prizi şablonu"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "elektrik prizi şablonları"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Ana güç bağlantı noktası ({power_port}) aynı cihaz türüne ait olmalıdır"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Ana güç bağlantı noktası ({power_port}) aynı modül türüne ait olmalıdır"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "sadece yönetim"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "köprü arayüzü"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "kablosuz rolü"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "arayüz şablonu"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "arayüz şablonları"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Bir arayüz kendi başına köprülenemez."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr "Köprü arayüzü ({bridge}) aynı cihaz türüne ait olmalıdır"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Köprü arayüzü ({bridge}) aynı modül türüne ait olmalıdır"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "arka port konumu"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "ön bağlantı noktası şablonu"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "ön bağlantı noktası şablonları"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Arka bağlantı noktası ({name}) aynı cihaz türüne ait olmalıdır"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5344,46 +5356,46 @@ msgstr ""
"Geçersiz arka bağlantı noktası konumu ({position}); arka bağlantı noktası "
"{name} sadece var {count} pozisyonlar"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "pozisyonlar"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "arka bağlantı noktası şablonu"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "arka bağlantı noktası şablonları"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "pozisyon"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr "Yüklü bileşenleri yeniden adlandırırken başvurulacak tanımlayıcı"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "modül bölmesi şablonu"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "modül bölmesi şablonları"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "cihaz yuvası şablonu"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "cihaz yuvası şablonları"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5392,205 +5404,205 @@ msgstr ""
"Aygıt türünün alt cihaz rolü ({device_type}) cihaz bölmelerine izin vermek "
"için “ebeveyn” olarak ayarlanmalıdır."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "parça kimliği"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Üretici tarafından atanan parça tanımlayıcısı"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "envanter öğesi şablonu"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "envanter öğe şablonları"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Bileşenler farklı bir cihaza taşınamaz."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "kablo ucu"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "bağlı olarak işaretle"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Bir kablo bağlıymış gibi davranın"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "Kablo takarken kablo ucunu (A veya B) belirtmelisiniz."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "Kablo ucu kablo olmadan ayarlanmamalıdır."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Takılı bir kabloyla bağlı olarak işaretlenemiyor."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name} modeller bir parent_object özelliği bildirmelidir"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Fiziksel bağlantı noktası tipi"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "sürat"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Saniyede bit cinsinden port hızı"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "konsol bağlantı noktası"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "konsol bağlantı noktaları"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "konsol sunucusu bağlantı noktası"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "konsol sunucusu bağlantı noktaları"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "güç bağlantı noktası"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "güç bağlantı noktaları"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "elektrik prizi"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "elektrik prizleri"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr "Ana güç bağlantı noktası ({power_port}) aynı cihaza ait olmalıdır"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "mod"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "IEEE 802.1Q etiketleme stratejisi"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "ebeveyn arabirimi"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "ebeveyn LAG"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "Bu arayüz yalnızca bant dışı yönetim için kullanılır"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "hız (Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "dubleks"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64 bit Dünya Çapında Adı"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "kablosuz kanal"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "kanal frekansı (MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Seçilen kanala göre doldurulur (ayarlanmışsa)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "iletim gücü (dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "kablosuz LAN'lar"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "etiketsiz VLAN"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "etiketli VLAN'lar"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "arayüz"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "arayüzleri"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} arabirimlerde kablo takılı olamaz."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type} arayüzler bağlı olarak işaretlenemez."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Bir arayüz kendi ebeveyni olamaz."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr "Bir üst arabirime yalnızca sanal arabirimler atanabilir."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5598,7 +5610,7 @@ msgid ""
msgstr ""
"Seçilen üst arabirim ({interface}) farklı bir cihaza aittir ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5607,14 +5619,14 @@ msgstr ""
"Seçilen üst arabirim ({interface}) aittir {device}, sanal kasanın bir "
"parçası olmayan {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
"({device})."
msgstr "Seçilen köprü arayüzü ({bridge}) farklı bir cihaza aittir ({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5623,21 +5635,21 @@ msgstr ""
"Seçilen köprü arayüzü ({interface}) aittir {device}, sanal kasanın bir "
"parçası olmayan {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Sanal arabirimlerin üst LAG arabirimi olamaz."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Bir LAG arabirimi kendi ana arabirimi olamaz."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr "Seçilen LAG arayüzü ({lag}) farklı bir cihaza aittir ({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5646,43 +5658,43 @@ msgstr ""
"Seçilen LAG arayüzü ({lag}) aittir {device}, sanal kasanın bir parçası "
"olmayan {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Sanal arabirimler PoE moduna sahip olamaz."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Sanal arabirimler PoE tipine sahip olamaz."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Bir PoE türü belirlerken PoE modunu belirtmelisiniz."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr "Kablosuz rolü yalnızca kablosuz arayüzlerde ayarlanabilir."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Kanal sadece kablosuz arayüzlerde ayarlanabilir."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr "Kanal frekansı yalnızca kablosuz arayüzlerde ayarlanabilir."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr "Seçili kanal ile özel frekans belirlenemiyor."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr "Kanal genişliği yalnızca kablosuz arayüzlerde ayarlanabilir."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr "Seçili kanal ile özel genişlik belirlenemiyor."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5691,24 +5703,24 @@ msgstr ""
"Etiketlenmemiş VLAN ({untagged_vlan}) arayüzün ana cihazıyla aynı siteye ait"
" olmalı veya global olmalıdır."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "İlgili arka bağlantı noktasında eşlenmiş konum"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "ön bağlantı noktası"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "ön bağlantı noktaları"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Arka bağlantı noktası ({rear_port}) aynı cihaza ait olmalıdır"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5717,19 +5729,19 @@ msgstr ""
"Geçersiz arka bağlantı noktası konumu ({rear_port_position}): Arka bağlantı "
"noktası {name} sadece var {positions} pozisyonları."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Eşlenebilecek ön bağlantı noktalarının sayısı"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "arka bağlantı noktası"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "arka bağlantı noktaları"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5738,96 +5750,96 @@ msgstr ""
"Konum sayısı, eşlenen ön bağlantı noktalarının sayısından az olamaz "
"({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "modül yuvası"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "modül bölmeleri"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr "Bir modül yuvası, içinde kurulu bir modüle ait olamaz."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "cihaz yuvası"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "cihaz yuvaları"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr "Bu tür bir cihaz ({device_type}) cihaz bölmelerini desteklemez."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Bir cihaz kendi içine yüklenemiyor."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
msgstr "Belirtilen cihaz yüklenemiyor; cihaz zaten yüklü {bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "envanter kalemi rolü"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "envanter kalemi rolleri"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "seri numarası"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "varlık etiketi"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "Bu öğeyi tanımlamak için kullanılan benzersiz bir etiket"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "keşfedilen"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Bu öğe otomatik olarak keşfedildi"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "envanter kalemi"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "envanter kalemleri"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Kendisi ebeveyn olarak atanamıyor."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "Ana envanter kalemi aynı cihaza ait değildir."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "Bağımlı çocuklarla bir envanter öğesi taşınamıyor"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr "Başka bir cihazdaki bileşene envanter öğesi atanamıyor"
@@ -5978,7 +5990,7 @@ msgstr "Bu cihazın hizmet ettiği işlev"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Üretici tarafından atanan şasi seri numarası"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "Bu cihazı tanımlamak için kullanılan benzersiz bir etiket"
@@ -5990,12 +6002,12 @@ msgstr "pozisyon (U)"
msgid "rack face"
msgstr "raf yüzü"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "birincil IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "birincil IPv6"
@@ -6139,36 +6151,45 @@ msgstr "Atanan küme farklı bir siteye aittir ({site})"
msgid "A device assigned to a virtual chassis must have its position defined."
msgstr "Sanal bir kasaya atanan bir aygıtın konumu tanımlanmış olmalıdır."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Cihaz sanal kasadan kaldırılamıyor {virtual_chassis} çünkü şu anda efendisi "
+"olarak belirlenmiştir."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "modül"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "modülleri"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
"device ({device})."
msgstr "Modül, atanan cihaza ait bir modül bölmesine kurulmalıdır ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "domain"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "sanal kasa"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr "Seçilen usta ({master}) bu sanal kasaya atanmamıştır."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6177,34 +6198,34 @@ msgstr ""
"Sanal kasa silinemiyor {self}. Çapraz şasi LAG arabirimleri oluşturan üye "
"arayüzleri vardır."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "belirlemek"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Ana aygıta benzersiz sayısal tanımlayıcı"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "yorumlar"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "sanal cihaz bağlamı"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "sanal cihaz bağlamları"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} IPV değil{family} adres."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr "Birincil IP adresi, atanan cihazdaki bir arayüze ait olmalıdır."
@@ -6628,7 +6649,7 @@ msgstr "Yapılandırma Şablonu"
msgid "Site Group"
msgstr "Site Grubu"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6637,12 +6658,12 @@ msgstr "Site Grubu"
msgid "IP Address"
msgstr "IP Adresi"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "IPv4 Adresi"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "IPv6 Adresi"
@@ -6680,8 +6701,8 @@ msgstr "Güç bağlantı noktaları"
msgid "Power outlets"
msgstr "Elektrik prizleri"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6719,8 +6740,8 @@ msgstr "Envanter kalemleri"
msgid "Module Bay"
msgstr "Modül Yuvası"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6778,75 +6799,75 @@ msgstr "FHRP Grupları"
msgid "Tunnel"
msgstr "Tünel"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Yalnızca Yönetim"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDC'ler"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Yüklü Modül"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Modül Seri"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Modül Varlık Etiketi"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Modül Durumu"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Bileşen"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Öğeler"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Cihaz Türleri"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Modül Çeşitleri"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Platformlar"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Varsayılan Platform"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Tam Derinlik"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "U Yüksekliği"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Örnekler"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6857,7 +6878,7 @@ msgstr "Örnekler"
msgid "Console Ports"
msgstr "Konsol Bağlantı Noktaları"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6868,7 +6889,7 @@ msgstr "Konsol Bağlantı Noktaları"
msgid "Console Server Ports"
msgstr "Konsol Sunucusu Bağlantı Noktaları"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6879,7 +6900,7 @@ msgstr "Konsol Sunucusu Bağlantı Noktaları"
msgid "Power Ports"
msgstr "Güç Bağlantı Noktaları"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6890,7 +6911,7 @@ msgstr "Güç Bağlantı Noktaları"
msgid "Power Outlets"
msgstr "Elektrik Prizleri"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6900,7 +6921,7 @@ msgstr "Elektrik Prizleri"
msgid "Front Ports"
msgstr "Ön Bağlantı Noktaları"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6911,7 +6932,7 @@ msgstr "Ön Bağlantı Noktaları"
msgid "Rear Ports"
msgstr "Arka Bağlantı Noktaları"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6919,7 +6940,7 @@ msgstr "Arka Bağlantı Noktaları"
msgid "Device Bays"
msgstr "Cihaz Yuvaları"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7359,24 +7380,24 @@ msgstr "Widget türü"
msgid "Unregistered widget class: {name}"
msgstr "Kayıtlı olmayan widget sınıfı: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} bir render () yöntemi tanımlamalıdır."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Not"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr "Bazı rastgele özel içerikleri görüntüleyin. Markdown desteklenir."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Nesne Sayıları"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7384,59 +7405,59 @@ msgstr ""
"Bir dizi NetBox modeli ve her tür için oluşturulan nesne sayısını "
"görüntüleyin."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Nesne sayısını sayarken uygulanacak filtreler"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr "Geçersiz biçim. Nesne filtreleri sözlük olarak iletilmelidir."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Nesne Listesi"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "İsteğe bağlı bir nesne listesi görüntüleyin."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Görüntülenecek nesnelerin varsayılan sayısı"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr "Geçersiz biçim. URL parametreleri sözlük olarak iletilmelidir."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS Beslemesi"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Harici bir web sitesinden bir RSS beslemesi ekleyin."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "Akış URL'si"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Görüntülenecek maksimum nesne sayısı"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr ""
"Önbelleğe alınan içeriğin ne kadar süre saklanacağı (saniye cinsinden)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Yer İşaretleri"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Kişisel yer imlerinizi gösterin"
@@ -7479,8 +7500,8 @@ msgstr "Küme tipi (kısa ad)"
msgid "Tenant group"
msgstr "Kiracı grubu"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Kiracı grubu (kısa ad)"
@@ -7617,7 +7638,7 @@ msgstr "Aktif"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Nesne türleri"
@@ -7718,8 +7739,8 @@ msgstr "Girişin sınıflandırılması"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Kullanıcılar"
@@ -7732,8 +7753,8 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Gruplar"
@@ -8451,10 +8472,19 @@ msgstr "özel alan seçim kümesi"
msgid "custom field choice sets"
msgstr "özel alan seçim kümeleri"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Temel veya ekstra seçenekleri tanımlamalıdır."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Seçim kaldırılamıyor {choice} olduğu gibi {model} Ona referans veren "
+"nesneler."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "plan"
@@ -9028,64 +9058,64 @@ msgstr "Mesaj"
msgid "Method"
msgstr "Yöntemi"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Bu değerin eşit olduğundan emin olun %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Bu değerin eşit olmadığından emin olun %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Bu alan boş olmalıdır."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Bu alan boş olmamalıdır."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Doğrulama kuralları sözlük olarak geçirilmelidir"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "Özel doğrulama başarısız oldu {attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Geçersiz öznitelik”{name}“istek için"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "\"{name}\" niteliği {model} için geçerli değil."
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Kontrol paneliniz sıfırlandı."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Eklenen widget: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Güncellenmiş widget: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Silinen widget: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Widget silinirken hata oluştu: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "Komut dosyası çalıştırılamıyor: RQ işçi işlemi çalışmıyor."
@@ -9153,19 +9183,19 @@ msgstr "Düz metin"
msgid "Invalid IP address format: {address}"
msgstr "Geçersiz IP adresi biçimi: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Hedefi içe aktarma"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Hedefi içe aktarma (isim)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Dışa aktarma hedefi"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Dışa aktarma hedefi (isim)"
@@ -9235,11 +9265,11 @@ msgstr "Bu önek veya IP'yi içeren önekler"
msgid "Mask length"
msgstr "Maske uzunluğu"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (KİMLİĞİ)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "VLAN numarası (1-4094)"
@@ -9259,23 +9289,23 @@ msgid "Parent prefix"
msgstr "Ebeveyn öneki"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Sanal makine (isim)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "Sanal makine (ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Arayüz (isim)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "VM arabirimi (isim)"
@@ -9303,19 +9333,27 @@ msgstr "Hizmet (ID)"
msgid "NAT inside IP address (ID)"
msgstr "IP adresi içinde NAT (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Atanmış arayüz"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Atanmış VM arabirimi"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "IP adresi (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP adresi"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "Birincil IPv4 (ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "Birincil IPv6 (ID)"
@@ -9529,10 +9567,6 @@ msgstr "Sanal makine"
msgid "Parent VM of assigned interface (if any)"
msgstr "Atanan arabirimin üst VM'si (varsa)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Atanmış arayüz"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Birincildir"
@@ -11092,9 +11126,9 @@ msgstr "Yönetici"
msgid "API Tokens"
msgstr "API Belirteçleri"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "İzinler"
@@ -11245,63 +11279,63 @@ msgstr "Başlatıldıktan sonra kayıt defterine mağazalar eklenemiyor"
msgid "Cannot delete stores from registry"
msgstr "Mağazalar kayıt defterinden silinemiyor"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "Çek"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "Danca"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Alman"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "İngilizce"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "İspanyolca"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "Fransızca"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "İtalyan"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Japonca"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Hollandalı"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Lehçe"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "Portekizce"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Rusça"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Türkçe"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "Ukraynalı"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "Çince"
@@ -12976,7 +13010,7 @@ msgstr "Yeni Üye Ekle"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Eylemler"
@@ -14028,7 +14062,7 @@ msgstr ""
"Tıklayın burada NetBox'ı tekrar yüklemeyi "
"denemek için."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14057,7 +14091,7 @@ msgid "Add Contact Group"
msgstr "Kişi Grubu Ekle"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "İletişim Rolü"
@@ -14095,7 +14129,7 @@ msgid "View"
msgstr "Görünüm"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Kısıtlamalar"
@@ -14122,11 +14156,6 @@ msgstr "Bellek"
msgid "Disk Space"
msgstr "Disk Alanı"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "BÜYÜK BRİTANYA"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Sanal Makine Ekle"
@@ -14367,57 +14396,57 @@ msgstr "Bağlantı Özellikleri"
msgid "Distance"
msgstr "Mesafe"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "Ebeveyn iletişim grubu (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Ebeveyn iletişim grubu (kısa ad)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "İletişim grubu (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "İletişim grubu (kısa ad)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "İletişim (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "Kişi rolü (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "İletişim rolü (kısa ad)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "İletişim grubu"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "Ana kiracı grubu (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Ana kiracı grubu (kısa ad)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "Kiracı grubu (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "Kiracı Grubu (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Kiracı Grubu (kısa ad)"
@@ -14582,11 +14611,11 @@ msgstr "Değişebilir"
msgid "Can Delete"
msgstr "Silebilir"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Kullanıcı Arayüzü"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14596,7 +14625,7 @@ msgstr ""
"kaydettiğinizden emin olun belirteç oluşturulduktan sonra artık "
"erişilemeyebileceğinden, bu formu göndermeden önce."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14606,32 +14635,32 @@ msgstr ""
"olmadan boş bırakın. Örnek: 10.1.1.0/24.192.168.10.16/32,2001: db 8:1:"
" :/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Şifreyi onayla"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Doğrulama için öncekiyle aynı şifreyi girin."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Şifreler eşleşmiyor! Lütfen girdilerinizi kontrol edin ve tekrar deneyin."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Ek eylemler"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Yukarıda listelenenlere ek olarak verilen eylemler"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Nesneler"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14641,11 +14670,11 @@ msgstr ""
"ifadesi. Bu türdeki tüm nesneleri eşleştirmek için null bırakın. Birden çok "
"nesnenin listesi mantıksal bir OR işlemi ile sonuçlanır."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "En az bir eylem seçilmelidir."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Geçersiz filtre {model}: {error}"
@@ -14898,7 +14927,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Çoktan seçmeli alan için geçersiz değer: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Nesne bulunamadı: %(value)s"
@@ -14911,11 +14940,16 @@ msgid ""
msgstr ""
"“{value}“bu alan için benzersiz bir değer değil; birden fazla nesne bulundu"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "“{field_name}“geçersiz bir erişici alan adıdır."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Nesne türü şu şekilde belirtilmelidir”.“"
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Geçersiz nesne türü"
@@ -15499,19 +15533,19 @@ msgstr "DSA imzaları"
msgid "Group {n}"
msgstr "Grup {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Ethernet Özel LAN"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Ethernet Sanal Özel LAN"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Ethernet Özel Ağacı"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Ethernet Sanal Özel Ağacı"
@@ -15543,33 +15577,31 @@ msgstr "Tünel (isim)"
msgid "Outside IP (ID)"
msgstr "Dış IP (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "IKE ilkesi (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "IKE ilkesi (isim)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "IPsec ilkesi (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "IPsec ilkesi (ad)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (kısa ad)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "VM Arabirimi (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (isim)"
diff --git a/netbox/translations/uk/LC_MESSAGES/django.mo b/netbox/translations/uk/LC_MESSAGES/django.mo
index 2847adf1ac6..14d595e1603 100644
Binary files a/netbox/translations/uk/LC_MESSAGES/django.mo and b/netbox/translations/uk/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/uk/LC_MESSAGES/django.po b/netbox/translations/uk/LC_MESSAGES/django.po
index 6786b149229..39cbf3bda96 100644
--- a/netbox/translations/uk/LC_MESSAGES/django.po
+++ b/netbox/translations/uk/LC_MESSAGES/django.po
@@ -5,17 +5,17 @@
#
# Translators:
# Volodymyr Pidgornyi, 2024
-# Vladyslav V. Prodan, 2024
# Jeremy Stretch, 2024
+# Vladyslav V. Prodan, 2024
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2024\n"
+"Last-Translator: Vladyslav V. Prodan, 2024\n"
"Language-Team: Ukrainian (https://app.transifex.com/netbox-community/teams/178115/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -25,7 +25,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "Ключ"
@@ -61,7 +61,7 @@ msgstr "Використано востаннє"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "Дозволені IP-адреси"
@@ -89,8 +89,8 @@ msgstr "Ваш пароль успішно змінено."
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -102,8 +102,8 @@ msgstr "Забезпечення"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -114,21 +114,21 @@ msgid "Active"
msgstr "Активний"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "Офлайн"
#: netbox/circuits/choices.py:25
msgid "Deprovisioning"
-msgstr "Зняття резервування"
+msgstr "Зняття з експлуатації"
#: netbox/circuits/choices.py:26
msgid "Decommissioned"
msgstr "Виведені з експлуатації"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "Первинний"
@@ -154,9 +154,9 @@ msgstr "Неактивний"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
-msgstr "Регіон (ідентіфікатор)"
+msgstr "Регіон (ідентифікатор)"
#: netbox/circuits/filtersets.py:38 netbox/circuits/filtersets.py:205
#: netbox/dcim/filtersets.py:105 netbox/dcim/filtersets.py:158
@@ -166,7 +166,7 @@ msgstr "Регіон (ідентіфікатор)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "Регіон (скорочення)"
@@ -179,7 +179,7 @@ msgstr "Регіон (скорочення)"
#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
#: netbox/virtualization/filtersets.py:186
msgid "Site group (ID)"
-msgstr "Група тех. майданчиків (ідентіфікатор)"
+msgstr "Група тех. майданчиків (ідентифікатор)"
#: netbox/circuits/filtersets.py:51 netbox/circuits/filtersets.py:218
#: netbox/dcim/filtersets.py:135 netbox/dcim/filtersets.py:232
@@ -195,7 +195,7 @@ msgstr "Група тех. майданчиків (скорочення)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -261,13 +261,13 @@ msgstr "Тех. майданчик"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "Тех. майданчик (скорочення)"
#: netbox/circuits/filtersets.py:67
msgid "ASN (ID)"
-msgstr "ASN (ідентіфікатор)"
+msgstr "ASN (ідентифікатор)"
#: netbox/circuits/filtersets.py:73 netbox/circuits/forms/filtersets.py:31
#: netbox/ipam/forms/model_forms.py:159 netbox/ipam/models/asns.py:108
@@ -280,7 +280,7 @@ msgstr "ASN"
#: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
msgid "Provider (ID)"
-msgstr "Провайдер (ідентіфікатор)"
+msgstr "Провайдер (ідентифікатор)"
#: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
#: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
@@ -290,7 +290,7 @@ msgstr "Провайдер (скорочення)"
#: netbox/circuits/filtersets.py:167
msgid "Provider account (ID)"
-msgstr "Обліковий запис провайдера (ідентіфікатор)"
+msgstr "Обліковий запис провайдера (ідентифікатор)"
#: netbox/circuits/filtersets.py:173
msgid "Provider account (account)"
@@ -298,11 +298,11 @@ msgstr "Обліковий запис провайдера (обліковий
#: netbox/circuits/filtersets.py:178
msgid "Provider network (ID)"
-msgstr "Мережа провайдера (ідентіфікатор)"
+msgstr "Мережа провайдера (ідентифікатор)"
#: netbox/circuits/filtersets.py:182
msgid "Circuit type (ID)"
-msgstr "Тип каналу зв'язку (ідентіфікатор)"
+msgstr "Тип каналу зв'язку (ідентифікатор)"
#: netbox/circuits/filtersets.py:188
msgid "Circuit type (slug)"
@@ -315,13 +315,13 @@ msgstr "Тип каналу зв'язку (скорочення)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
-msgstr "Тех. майданчик (ідентіфікатор)"
+msgstr "Тех. майданчик (ідентифікатор)"
#: netbox/circuits/filtersets.py:233 netbox/circuits/filtersets.py:237
msgid "Termination A (ID)"
-msgstr "Припинення A (ідентіфікатор)"
+msgstr "Припинення A (ідентифікатор)"
#: netbox/circuits/filtersets.py:260 netbox/circuits/filtersets.py:320
#: netbox/core/filtersets.py:77 netbox/core/filtersets.py:136
@@ -334,13 +334,13 @@ msgstr "Припинення A (ідентіфікатор)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -349,7 +349,7 @@ msgstr "Пошук"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -368,11 +368,11 @@ msgstr "Канал зв'язку"
#: netbox/circuits/filtersets.py:278
msgid "ProviderNetwork (ID)"
-msgstr "Мережа провайдера (ідентіфікатор)"
+msgstr "Мережа провайдера (ідентифікатор)"
#: netbox/circuits/filtersets.py:335
msgid "Circuit (ID)"
-msgstr "Канал зв'язку (ідентіфікатор)"
+msgstr "Канал зв'язку (ідентифікатор)"
#: netbox/circuits/filtersets.py:341
msgid "Circuit (CID)"
@@ -380,7 +380,7 @@ msgstr "Канал зв'язку (ідентифікатор вмісту)"
#: netbox/circuits/filtersets.py:345
msgid "Circuit group (ID)"
-msgstr "Группа каналів зв'язку (ідентіфікатор)"
+msgstr "Группа каналів зв'язку (ідентифікатор)"
#: netbox/circuits/filtersets.py:351
msgid "Circuit group (slug)"
@@ -533,9 +533,9 @@ msgstr "Опис"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -572,9 +572,9 @@ msgstr "Ідентифікатор служби"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -587,7 +587,7 @@ msgid "Color"
msgstr "Колір"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -610,7 +610,7 @@ msgstr "Колір"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -644,14 +644,14 @@ msgid "Type"
msgstr "Тип"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "Обліковий запис постачальника"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -667,8 +667,8 @@ msgstr "Обліковий запис постачальника"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -697,7 +697,7 @@ msgstr "Обліковий запис постачальника"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -721,8 +721,8 @@ msgstr "Статус"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -805,7 +805,7 @@ msgstr "Дата припинення дії"
#: netbox/circuits/forms/bulk_edit.py:158
#: netbox/circuits/forms/filtersets.py:186
msgid "Commit rate (Kbps)"
-msgstr "Швидкість комісії (Кбіт/с)"
+msgstr "Гарантована мінімальна швідкість (Кбіт/с)"
#: netbox/circuits/forms/bulk_edit.py:173
#: netbox/circuits/forms/model_forms.py:112
@@ -834,7 +834,7 @@ msgstr "Параметри обслуговування"
#: netbox/vpn/forms/model_forms.py:411 netbox/wireless/forms/model_forms.py:54
#: netbox/wireless/forms/model_forms.py:170
msgid "Tenancy"
-msgstr "Оренда житла"
+msgstr "Оренда"
#: netbox/circuits/forms/bulk_edit.py:193
#: netbox/circuits/forms/bulk_edit.py:217
@@ -888,21 +888,21 @@ msgstr "Деталі припинення"
msgid "Priority"
msgstr "Пріоритет"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "Призначений провайдер"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "Призначений обліковий запис постачальника"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "Тип каналу зв'язку"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -914,8 +914,8 @@ msgstr "Тип каналу зв'язку"
msgid "Operational status"
msgstr "Операційний стан"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -931,7 +931,7 @@ msgstr "Операційний стан"
msgid "Assigned tenant"
msgstr "Призначений орендар"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -939,7 +939,7 @@ msgstr "Призначений орендар"
msgid "Termination"
msgstr "Припинення"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1095,7 +1095,7 @@ msgstr "Сторона терміну"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "Призначення"
@@ -1150,11 +1150,11 @@ msgid "Circuit Group"
msgstr "Група каналу зв'язку"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1177,9 +1177,9 @@ msgid "Unique circuit ID"
msgstr "Унікальний ідентифікатор каналу зв'язку"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1192,19 +1192,19 @@ msgstr "статус"
#: netbox/circuits/models/circuits.py:84 netbox/templates/core/plugin.html:19
msgid "installed"
-msgstr "встановлений"
+msgstr "встановлено"
#: netbox/circuits/models/circuits.py:89
msgid "terminates"
-msgstr "припиняється"
+msgstr "припинється"
#: netbox/circuits/models/circuits.py:94
msgid "commit rate (Kbps)"
-msgstr "швидкість комісії (Кбіт/с)"
+msgstr "гарантована мінімальна швідкість (Кбіт/с)"
#: netbox/circuits/models/circuits.py:95
msgid "Committed rate"
-msgstr "Коефіцієнт зобов'язань"
+msgstr "Гарантирована швідкість"
#: netbox/circuits/models/circuits.py:137
msgid "circuit"
@@ -1273,7 +1273,7 @@ msgstr "Ідентифікатор патч-панелі та номер(и) п
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1312,11 +1312,11 @@ msgstr ""
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1400,11 +1400,11 @@ msgstr "мережі провайдерів"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1532,18 +1532,18 @@ msgstr "Сторона А"
#: netbox/circuits/tables/circuits.py:74
msgid "Side Z"
-msgstr "Сторона Z"
+msgstr "Сторона Б"
#: netbox/circuits/tables/circuits.py:77
#: netbox/templates/circuits/circuit.html:55
msgid "Commit Rate"
-msgstr "Коефіцієнт комісії"
+msgstr "Гарантований процент чи коефіцієнт доступності"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1620,8 +1620,8 @@ msgstr "Завершено"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "Збій"
@@ -1687,42 +1687,42 @@ msgstr "Зупинено"
msgid "Cancelled"
msgstr "Скасовано"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "Місцеві"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "Ім'я користувача"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "Використовується лише для клонування за допомогою HTTP(S)"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "Пароль"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "Відділення"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "Не вдалося отримати збійні дані ({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "Ідентифікатор ключа доступу AWS"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "Ключ таємничого доступу до AWS"
@@ -1757,7 +1757,7 @@ msgstr "Завдання завершено з помилкою"
#: netbox/core/filtersets.py:53 netbox/extras/filtersets.py:250
#: netbox/extras/filtersets.py:633 netbox/extras/filtersets.py:661
msgid "Data source (ID)"
-msgstr "Джерело даних (ідентіфікатор)"
+msgstr "Джерело даних (ідентифікатор)"
#: netbox/core/filtersets.py:59
msgid "Data source (name)"
@@ -1768,7 +1768,7 @@ msgstr "Джерело даних (назва)"
#: netbox/extras/filtersets.py:353 netbox/extras/filtersets.py:413
#: netbox/users/filtersets.py:28
msgid "User (ID)"
-msgstr "Користувач (ідентіфікатор)"
+msgstr "Користувач (ідентифікатор)"
#: netbox/core/filtersets.py:151
msgid "User name"
@@ -1777,7 +1777,7 @@ msgstr "Ім'я користувача"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1891,7 +1891,7 @@ msgstr "Завершено раніше"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "Користувач"
@@ -1945,12 +1945,12 @@ msgstr "Потрібно завантажити файл або вибрати
msgid "Rack Elevations"
msgstr "Висота стійки"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
msgid "Power"
-msgstr "Потужність"
+msgstr "Електрика"
#: netbox/core/forms/model_forms.py:159 netbox/netbox/navigation/menu.py:154
#: netbox/templates/core/inc/config_data.html:37
@@ -1988,7 +1988,7 @@ msgstr "Параметри користувача"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "Різне"
@@ -2047,7 +2047,7 @@ msgid "Change logging is not supported for this object type ({type})."
msgstr "Журнал змін не підтримується для цього типу об'єктів ({type})."
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2084,20 +2084,20 @@ msgid "Config revision #{id}"
msgstr "Ревізія конфігурації #{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2112,8 +2112,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2226,59 +2226,59 @@ msgstr "керований файл"
msgid "managed files"
msgstr "керовані файли"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "заплановано"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "інтервал"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "Інтервал рецидивів (у хвилинах)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "розпочато"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "завершено"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "дані"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "помилка"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "iдентифікатор завдання"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "завдання"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "завдання"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "Завдання не можуть бути призначені для цього типу об'єкта ({type})."
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr ""
"Невірний статус для припинення виконання завдання. Треба вибрати: {choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr ""
@@ -2329,13 +2329,13 @@ msgid "Last updated"
msgstr "Останнє оновлення"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
#: netbox/wireless/tables/wirelesslink.py:17
msgid "ID"
-msgstr "Ідентіфікатор"
+msgstr "Ідентифікатор"
#: netbox/core/tables/jobs.py:35
msgid "Interval"
@@ -2521,7 +2521,7 @@ msgid "Staging"
msgstr "Підготовка"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Виведення з експлуатації"
@@ -2585,17 +2585,17 @@ msgstr "Застарілий"
msgid "Millimeters"
msgstr "Міліметри"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "Дюйми"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "Спереду ззаду"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "Ззаду спереду"
@@ -2608,8 +2608,8 @@ msgstr "Ззаду спереду"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2653,7 +2653,7 @@ msgstr "Спереду"
msgid "Rear"
msgstr "Ззаду"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "Підготовлено"
@@ -2662,81 +2662,93 @@ msgstr "Підготовлено"
msgid "Inventory"
msgstr "Інвентар"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "Зліва направо"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "Праворуч наліво"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "Збоку ззаду"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "Ззаду в бік"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "Знизу вгору"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "Зверху вниз"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "Пасивний"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "Змішаний"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA (без блокування)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA (з блокуванням)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "Каліфорнійський стиль"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "Міжнародний/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "Пропрієтарний"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "Інше"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/Міжнародні"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "Фізичний"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "Віртуальний"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
#: netbox/templates/dcim/interface.html:210
msgid "Wireless"
-msgstr "Бездротовий"
+msgstr "Бездротові мережі"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "Віртуальні інтерфейси"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2744,27 +2756,27 @@ msgstr "Віртуальні інтерфейси"
msgid "Bridge"
msgstr "Міст"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "Група агрегації каналів (LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "Ethernet (фіксований)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "Ethernet (модульний)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "Ethernet (панель)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "Стільниковий"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2772,130 +2784,130 @@ msgstr "Стільниковий"
msgid "Serial"
msgstr "Серійний"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "Коаксіальний"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
-msgstr "Укладання"
+msgstr "Стекований"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
-msgstr "Половина"
+msgstr "Половинний"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "Повний"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "Авто"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "Доступ"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "З мітками"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "З мітками (Усі)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "Стандарт IEEE"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "Пасивний 24В (2-парний)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "Пасивний 24В (4-парний)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "Пасивний 48В (2-парний)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "Пасивний 48В (4-парний)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "Мідний"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "Волоконно-оптичний"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "Волоконний"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "Підключений"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "Кілометри"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "Метри"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "Сантиметри"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "Милі"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "Фути"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "Кілограми"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "Грами"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "Фунтів"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "Унцій"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "Надлишковий"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "Однофазний"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "Трифазний"
@@ -2911,7 +2923,7 @@ msgstr "Невірний формат WWN: {value}"
#: netbox/dcim/filtersets.py:86
msgid "Parent region (ID)"
-msgstr "Батьківський регіон (ідентіфікатор)"
+msgstr "Батьківський регіон (ідентифікатор)"
#: netbox/dcim/filtersets.py:92
msgid "Parent region (slug)"
@@ -2919,7 +2931,7 @@ msgstr "Батьківський регіон (скорочення)"
#: netbox/dcim/filtersets.py:116
msgid "Parent site group (ID)"
-msgstr "Батьківська група тех. майданчиків (ідентіфікатор)"
+msgstr "Батьківська група тех. майданчиків (ідентифікатор)"
#: netbox/dcim/filtersets.py:122
msgid "Parent site group (slug)"
@@ -2928,7 +2940,7 @@ msgstr "Батьківська група тех. майданчиків (ско
#: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
msgid "Group (ID)"
-msgstr "Група (ідентіфікатор)"
+msgstr "Група (ідентифікатор)"
#: netbox/dcim/filtersets.py:170
msgid "Group (slug)"
@@ -2936,11 +2948,11 @@ msgstr "Група (скорочення)"
#: netbox/dcim/filtersets.py:176 netbox/dcim/filtersets.py:181
msgid "AS (ID)"
-msgstr "AS (ідентіфікатор)"
+msgstr "AS (ідентифікатор)"
#: netbox/dcim/filtersets.py:246
msgid "Parent location (ID)"
-msgstr "Батьківське місцезнаходження (ідентіфікатор)"
+msgstr "Батьківське місцезнаходження (ідентифікатор)"
#: netbox/dcim/filtersets.py:252
msgid "Parent location (slug)"
@@ -2950,7 +2962,7 @@ msgstr "Батьківське розташування (скорочення)"
#: netbox/dcim/filtersets.py:490 netbox/dcim/filtersets.py:1057
#: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:2182
msgid "Location (ID)"
-msgstr "Місцезнаходження (ідентіфікатор)"
+msgstr "Місцезнаходження (ідентифікатор)"
#: netbox/dcim/filtersets.py:265 netbox/dcim/filtersets.py:376
#: netbox/dcim/filtersets.py:497 netbox/dcim/filtersets.py:1410
@@ -2964,7 +2976,7 @@ msgstr "Місцезнаходження (скорочення)"
#: netbox/dcim/filtersets.py:973 netbox/dcim/filtersets.py:1306
#: netbox/dcim/filtersets.py:1840
msgid "Manufacturer (ID)"
-msgstr "Виробник (ідентіфікатор)"
+msgstr "Виробник (ідентифікатор)"
#: netbox/dcim/filtersets.py:302 netbox/dcim/filtersets.py:387
#: netbox/dcim/filtersets.py:545 netbox/dcim/filtersets.py:684
@@ -2980,14 +2992,14 @@ msgstr "Тип стійки (скорочення)"
#: netbox/dcim/filtersets.py:397
msgid "Rack type (ID)"
-msgstr "Тип стійки (ідентіфікатор)"
+msgstr "Тип стійки (ідентифікатор)"
#: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
#: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
msgid "Role (ID)"
-msgstr "Роль (ідентіфікатор)"
+msgstr "Роль (ідентифікатор)"
#: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
#: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
@@ -3000,7 +3012,7 @@ msgstr "Роль (скорочення)"
#: netbox/dcim/filtersets.py:447 netbox/dcim/filtersets.py:1062
#: netbox/dcim/filtersets.py:1415 netbox/dcim/filtersets.py:2244
msgid "Rack (ID)"
-msgstr "Стійка (ідентіфікатор)"
+msgstr "Стійка (ідентифікатор)"
#: netbox/dcim/filtersets.py:507 netbox/extras/filtersets.py:293
#: netbox/extras/filtersets.py:337 netbox/extras/filtersets.py:359
@@ -3011,7 +3023,7 @@ msgstr "Користувач (ім'я)"
#: netbox/dcim/filtersets.py:549
msgid "Default platform (ID)"
-msgstr "Платформа за замовчуванням (ідентіфікатор)"
+msgstr "Платформа за замовчуванням (ідентифікатор)"
#: netbox/dcim/filtersets.py:555
msgid "Default platform (slug)"
@@ -3078,24 +3090,24 @@ msgstr "Має предмети інвентарю"
#: netbox/dcim/filtersets.py:756 netbox/dcim/filtersets.py:989
#: netbox/dcim/filtersets.py:1436
msgid "Device type (ID)"
-msgstr "Тип пристрою (ідентіфікатор)"
+msgstr "Тип пристрою (ідентифікатор)"
#: netbox/dcim/filtersets.py:772 netbox/dcim/filtersets.py:1317
msgid "Module type (ID)"
-msgstr "Тип модуля (ідентіфікатор)"
+msgstr "Тип модуля (ідентифікатор)"
#: netbox/dcim/filtersets.py:804 netbox/dcim/filtersets.py:1591
msgid "Power port (ID)"
-msgstr "Порт живлення (ідентіфікатор)"
+msgstr "Порт живлення (ідентифікатор)"
#: netbox/dcim/filtersets.py:878 netbox/dcim/filtersets.py:1836
msgid "Parent inventory item (ID)"
-msgstr "Батьківський предмет інвентарю (ідентіфікатор)"
+msgstr "Батьківський предмет інвентарю (ідентифікатор)"
#: netbox/dcim/filtersets.py:921 netbox/dcim/filtersets.py:947
#: netbox/dcim/filtersets.py:1127 netbox/virtualization/filtersets.py:238
msgid "Config template (ID)"
-msgstr "Шаблон конфігурації (ідентіфікатор)"
+msgstr "Шаблон конфігурації (ідентифікатор)"
#: netbox/dcim/filtersets.py:985
msgid "Device type (slug)"
@@ -3103,11 +3115,11 @@ msgstr "Тип пристрою (скорочення)"
#: netbox/dcim/filtersets.py:1005
msgid "Parent Device (ID)"
-msgstr "Батьківський пристрій (ідентіфікатор)"
+msgstr "Батьківський пристрій (ідентифікатор)"
#: netbox/dcim/filtersets.py:1009 netbox/virtualization/filtersets.py:220
msgid "Platform (ID)"
-msgstr "Платформа (ідентіфікатор)"
+msgstr "Платформа (ідентифікатор)"
#: netbox/dcim/filtersets.py:1015 netbox/extras/filtersets.py:569
#: netbox/virtualization/filtersets.py:226
@@ -3122,11 +3134,11 @@ msgstr "Назва тех. майданчика (скоречення)"
#: netbox/dcim/filtersets.py:1067
msgid "Parent bay (ID)"
-msgstr "Батьківська бухта (ідентіфікатор)"
+msgstr "Батьківська бухта (ідентифікатор)"
#: netbox/dcim/filtersets.py:1071
msgid "VM cluster (ID)"
-msgstr "Кластер віртуальних машини (ідентіфікатор)"
+msgstr "Кластер віртуальних машини (ідентифікатор)"
#: netbox/dcim/filtersets.py:1077 netbox/extras/filtersets.py:591
#: netbox/virtualization/filtersets.py:136
@@ -3135,7 +3147,7 @@ msgstr "Кластерна група (скоречення)"
#: netbox/dcim/filtersets.py:1082 netbox/virtualization/filtersets.py:130
msgid "Cluster group (ID)"
-msgstr "Група кластерів (ідентіфікатор)"
+msgstr "Група кластерів (ідентифікатор)"
#: netbox/dcim/filtersets.py:1088
msgid "Device model (slug)"
@@ -3147,7 +3159,7 @@ msgstr "Це повна глибина"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3168,7 +3180,7 @@ msgstr "Має IP для зовнішнього незалежного керу
#: netbox/dcim/filtersets.py:1119
msgid "Virtual chassis (ID)"
-msgstr "Віртуальне шасі (ідентіфікатор)"
+msgstr "Віртуальне шасі (ідентифікатор)"
#: netbox/dcim/filtersets.py:1123
msgid "Is a virtual chassis member"
@@ -3176,7 +3188,7 @@ msgstr "Є віртуальним членом шасі"
#: netbox/dcim/filtersets.py:1164
msgid "OOB IP (ID)"
-msgstr "IP для зовнішнього незалежного керування (ідентіфікатор)"
+msgstr "IP для зовнішнього незалежного керування (ідентифікатор)"
#: netbox/dcim/filtersets.py:1168
msgid "Has virtual device context"
@@ -3184,16 +3196,16 @@ msgstr "Має контекст віртуального пристрою"
#: netbox/dcim/filtersets.py:1257
msgid "VDC (ID)"
-msgstr "Імпульсне джерело живлення (ідентіфікатор)"
+msgstr "Імпульсне джерело живлення (ідентифікатор)"
#: netbox/dcim/filtersets.py:1262
msgid "Device model"
msgstr "Модель пристрою"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
-msgstr "Інтерфейс (ідентіфікатор)"
+msgstr "Інтерфейс (ідентифікатор)"
#: netbox/dcim/filtersets.py:1323
msgid "Module type (model)"
@@ -3201,22 +3213,22 @@ msgstr "Тип модуля (модель)"
#: netbox/dcim/filtersets.py:1329
msgid "Module bay (ID)"
-msgstr "Відсік модуля (ідентіфікатор)"
+msgstr "Відсік модуля (ідентифікатор)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
-msgstr "Пристрій (ідентіфікатор)"
+msgstr "Пристрій (ідентифікатор)"
#: netbox/dcim/filtersets.py:1421
msgid "Rack (name)"
msgstr "Стійка (назва)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "Пристрій (назва)"
@@ -3226,7 +3238,7 @@ msgstr "Тип пристрою (модель)"
#: netbox/dcim/filtersets.py:1447
msgid "Device role (ID)"
-msgstr "Роль пристрою (ідентіфікатор)"
+msgstr "Роль пристрою (ідентифікатор)"
#: netbox/dcim/filtersets.py:1453
msgid "Device role (slug)"
@@ -3234,7 +3246,7 @@ msgstr "Роль пристрою (скоречення)"
#: netbox/dcim/filtersets.py:1458
msgid "Virtual Chassis (ID)"
-msgstr "Віртуальне шасі (ідентіфікатор)"
+msgstr "Віртуальне шасі (ідентифікатор)"
#: netbox/dcim/filtersets.py:1464 netbox/dcim/forms/filtersets.py:109
#: netbox/dcim/tables/devices.py:206 netbox/netbox/navigation/menu.py:79
@@ -3248,11 +3260,11 @@ msgstr "Віртуальне шасі"
#: netbox/dcim/filtersets.py:1488
msgid "Module (ID)"
-msgstr "Модуль (ідентіфікатор)"
+msgstr "Модуль (ідентифікатор)"
#: netbox/dcim/filtersets.py:1495
msgid "Cable (ID)"
-msgstr "Кабель (ідентіфікатор)"
+msgstr "Кабель (ідентифікатор)"
#: netbox/dcim/filtersets.py:1604 netbox/ipam/forms/bulk_import.py:189
#: netbox/vpn/forms/bulk_import.py:308
@@ -3266,8 +3278,8 @@ msgstr "Призначений VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3303,9 +3315,9 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
-msgstr "L2VPN (ідентіфікатор)"
+msgstr "L2VPN (ідентифікатор)"
#: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
@@ -3325,7 +3337,7 @@ msgstr "Віртуальні інтерфейси шасі для пристро
#: netbox/dcim/filtersets.py:1667
msgid "Virtual Chassis Interfaces for Device (ID)"
-msgstr "Віртуальні інтерфейси шасі для пристрою (ідентіфікатор)"
+msgstr "Віртуальні інтерфейси шасі для пристрою (ідентифікатор)"
#: netbox/dcim/filtersets.py:1671
msgid "Kind of interface"
@@ -3333,15 +3345,15 @@ msgstr "Вид інтерфейсу"
#: netbox/dcim/filtersets.py:1676 netbox/virtualization/filtersets.py:293
msgid "Parent interface (ID)"
-msgstr "Батьківський інтерфейс (ідентіфікатор)"
+msgstr "Батьківський інтерфейс (ідентифікатор)"
#: netbox/dcim/filtersets.py:1681 netbox/virtualization/filtersets.py:298
msgid "Bridged interface (ID)"
-msgstr "Мостовий інтерфейс (ідентіфікатор)"
+msgstr "Мостовий інтерфейс (ідентифікатор)"
#: netbox/dcim/filtersets.py:1686
msgid "LAG interface (ID)"
-msgstr "Інтерфейс LAG (ідентіфікатор)"
+msgstr "Інтерфейс LAG (ідентифікатор)"
#: netbox/dcim/filtersets.py:1713 netbox/dcim/filtersets.py:1725
#: netbox/dcim/forms/filtersets.py:1345 netbox/dcim/forms/model_forms.py:1690
@@ -3359,7 +3371,7 @@ msgstr "Контекст віртуального пристрою (іденти
msgid "Wireless LAN"
msgstr "Бездротова локальна мережа"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "Бездротова зв'язок"
@@ -3369,11 +3381,11 @@ msgstr "Відсік батьківського модуля (iдентифік
#: netbox/dcim/filtersets.py:1808
msgid "Installed module (ID)"
-msgstr "Встановлений модуль (ідентіфікатор)"
+msgstr "Встановлений модуль (ідентифікатор)"
#: netbox/dcim/filtersets.py:1819
msgid "Installed device (ID)"
-msgstr "Встановлений пристрій (ідентіфікатор)"
+msgstr "Встановлений пристрій (ідентифікатор)"
#: netbox/dcim/filtersets.py:1825
msgid "Installed device (name)"
@@ -3381,18 +3393,18 @@ msgstr "Встановлений пристрій (назва)"
#: netbox/dcim/filtersets.py:1891
msgid "Master (ID)"
-msgstr "Майстер (ідентіфікатор)"
+msgstr "Майстер (ідентифікатор)"
#: netbox/dcim/filtersets.py:1897
msgid "Master (name)"
msgstr "Майстер (ім'я)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
-msgstr "Орендар (ідентіфікатор)"
+msgstr "Орендар (ідентифікатор)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "Орендар (скоречення)"
@@ -3402,7 +3414,7 @@ msgstr "Незакінчений"
#: netbox/dcim/filtersets.py:2239
msgid "Power panel (ID)"
-msgstr "Панель живлення (ідентіфікатор)"
+msgstr "Панель живлення (ідентифікатор)"
#: netbox/dcim/forms/bulk_create.py:40 netbox/extras/forms/filtersets.py:401
#: netbox/extras/forms/model_forms.py:567
@@ -3419,7 +3431,7 @@ msgstr "Мітки"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3468,8 +3480,8 @@ msgstr "Часовий пояс"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3533,7 +3545,7 @@ msgstr "Глибина монтажу"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3594,8 +3606,8 @@ msgstr "Нумерація"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3703,12 +3715,12 @@ msgstr "Номер партії"
msgid "U height"
msgstr "Висота U"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "Виключити з утилізації"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3731,7 +3743,7 @@ msgstr "Шасі"
#: netbox/dcim/forms/bulk_edit.py:610 netbox/dcim/models/devices.py:484
#: netbox/dcim/tables/devices.py:67
msgid "VM role"
-msgstr "Роль ВМ"
+msgstr "Роль віртуальної машини"
#: netbox/dcim/forms/bulk_edit.py:613 netbox/dcim/forms/bulk_edit.py:637
#: netbox/dcim/forms/bulk_edit.py:720 netbox/dcim/forms/bulk_import.py:434
@@ -3797,10 +3809,10 @@ msgstr "Платформа"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3927,8 +3939,8 @@ msgid "Maximum draw"
msgstr "Максимальна потужність"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "Максимальна споживана потужність (Вт)"
@@ -3937,8 +3949,8 @@ msgid "Allocated draw"
msgstr "Виділена потужність"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "Виділена споживана потужність (Вт)"
@@ -3959,16 +3971,16 @@ msgstr "Тільки управління"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "Режим PoE"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "Тип PoE"
@@ -3992,7 +4004,7 @@ msgstr "Бездротова роль"
msgid "Module"
msgstr "Модуль"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "LAG"
@@ -4004,7 +4016,7 @@ msgstr "Контексти віртуальних пристроїв"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4051,7 +4063,7 @@ msgid "Wireless LAN group"
msgstr "Група бездротової локальної мережі"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4441,7 +4453,7 @@ msgstr "Відповідний задній порт"
msgid "Physical medium classification"
msgstr "Класифікація фізичного середовища"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "Встановлений пристрій"
@@ -4480,7 +4492,7 @@ msgstr "Компонент не знайдено: {device} - {component_name}"
#: netbox/dcim/forms/bulk_import.py:1171
msgid "Side A device"
-msgstr "Пристрій сторона А"
+msgstr "Сторона А пристрою"
#: netbox/dcim/forms/bulk_import.py:1174 netbox/dcim/forms/bulk_import.py:1192
msgid "Device name"
@@ -4530,7 +4542,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} кінцева сторона не знайдена: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4582,7 +4594,7 @@ msgstr "Первинний IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "IPv6 адреса з довжиною префікса, наприклад 2001:db8: :1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4596,7 +4608,8 @@ msgid ""
"parent device/VM, or they must be global"
msgstr ""
"Позначені мітками VLAN ({vlans}) повинні належати тому ж тех. майданчику, що"
-" і батьківський пристрой/VM інтерфейсу, або вони повинні бути глобальними"
+" і батьківський пристрій/інтерфейсу віртуальної машини, або вони повинні "
+"бути глобальними"
#: netbox/dcim/forms/common.py:126
msgid ""
@@ -4745,7 +4758,7 @@ msgid "Mgmt only"
msgstr "Тільки управління"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN (унікальний ідентифікатор)"
@@ -4778,7 +4791,7 @@ msgstr "Потужність передачі (дБм)"
msgid "Cable"
msgstr "Кабель"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "Виявлено"
@@ -4928,7 +4941,7 @@ msgid "Front Port"
msgstr "Передній порт"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5066,7 +5079,7 @@ msgstr ""
"Кількість передніх портів, які потрібно створити ({frontport_count}) повинен"
" відповідати вибраній кількості позицій портів ззаду ({rearport_count})."
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5091,7 +5104,7 @@ msgstr "Посада повинна бути вказана для першог
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "етикетка"
@@ -5195,7 +5208,7 @@ msgstr ""
" модуля."
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "Фізична етикетка"
@@ -5218,139 +5231,139 @@ msgid ""
msgstr ""
"Шаблон компонента повинен бути пов'язаний з типом пристрою або типом модуля."
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "шаблон порту консолі"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "шаблони портів консолі"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "шаблон порту консольного сервера"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "шаблони портів консольного сервера"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "максимальна потужність"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "виділена потужність"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "шаблон порту живлення"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "шаблони портів живлення"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr ""
"Виділена потужність не може перевищувати максимальну потужність "
"({maximum_draw}W)."
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "фідер живлення"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "Фаза (для трифазних подач)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "шаблон розетки"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "шаблони розеток"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr ""
"Батьківський порт живлення ({power_port}) повинні належати до одного типу "
"пристрою"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr ""
"Батьківський порт живлення ({power_port}) повинні належати до одного типу "
"модуля"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "тільки управління"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "інтерфейс моста"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "бездротова роль"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "шаблон інтерфейсу"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "шаблони інтерфейсу"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "Інтерфейс не може бути з'єднаний мостом з собою."
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr ""
"Інтерфейс моста ({bridge}) повинні складатися з пристроїв одного типу "
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "Інтерфейс моста ({bridge}) повинні складатися з модулів одного типу "
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "положення порту ззаду"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "шаблон переднього порту"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "шаблони передніх портів"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "Задній порт ({name}) повинні належати до одного типу пристрою"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
@@ -5359,47 +5372,47 @@ msgstr ""
"Невірна позиція порту ззаду ({position}); порт ззаду {name} має тільки "
"{count} позиції"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "позиції"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "шаблон порту ззаду"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "шаблони портів ззаду"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "позиції"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr ""
"Ідентифікатор для посилання при перейменуванні встановлених компонентів"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "шаблон відсіку модуля"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "шаблони відсіків модулів"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "шаблон відсіку пристрою"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "шаблони відсіків пристроїв"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
@@ -5408,211 +5421,211 @@ msgstr ""
"Роль підпристрою типу пристрою ({device_type}) має бути встановлено значення"
" \"батько\", щоб дозволити відсіки пристрою."
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "Ідентифікатор частини"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "Ідентифікатор деталі, призначений виробником"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "шаблон елемента інвентаря"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "шаблони елемента інвентаря"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "Компоненти не можна переміщати на інший пристрій."
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "кінець кабелю"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "позначка підключена"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "Ставтеся так, ніби підключений кабель"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "Необхідно вказати кінець кабелю (А або Б) при приєднанні кабелю."
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "Кінець кабелю не можна встановлювати без кабелю."
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "Не можна позначити як з'єднаний із приєднаним вже кабелем."
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr ""
"{class_name} моделі повинні спочатку оголосити властивість parent_object"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "Фізичний тип порту"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "швидкість"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "Швидкість порту в бітах в секунду"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "консольний порт"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "консольні порти"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "порт консольного сервера"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "порти консольного сервера"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "порт живлення"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "порти живлення"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "розетка"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "розетки"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr ""
"Батьківський порт живлення ({power_port}) повинні належати до одного і того "
"ж пристрою"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "режим"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "Стратегія міток IEEE 802.1Q"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "батьківський інтерфейс"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "батьківський LAG"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr ""
"Цей інтерфейс використовується лише для зовнішнього незалежного керування"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "швидкість (Кбіт/с)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "дуплекс"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64-розрядна всесвітня назва"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "бездротовий канал"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "частота каналу (МГц)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "Заповнюється вибраним каналом (якщо встановлено)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "потужність передачі (дБм)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "бездротові локальні мережі"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "VLAN без міток"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "VLAN'и з мітками"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "інтерфейс"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "інтерфейси"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type} інтерфейси не можуть мати приєднаний кабель."
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type} інтерфейси не можуть бути позначені як підключені."
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "Інтерфейс не може бути власним батьківським."
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr ""
"Тільки віртуальні інтерфейси можуть бути призначені батьківському "
"інтерфейсу."
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
@@ -5621,7 +5634,7 @@ msgstr ""
"Вибраний батьківський інтерфейс ({interface}) належить до іншого пристрою "
"({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
@@ -5630,7 +5643,7 @@ msgstr ""
"Вибраний батьківський інтерфейс ({interface}) належить {device}, яка не є "
"частиною віртуального шасі {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
@@ -5638,7 +5651,7 @@ msgid ""
msgstr ""
"Вибраний інтерфейс моста ({bridge}) належить до іншого пристрою ({device})."
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
@@ -5647,22 +5660,22 @@ msgstr ""
"Вибраний інтерфейс моста ({interface}) належить {device}, який не є частиною"
" віртуального шасі {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "Віртуальні інтерфейси не можуть бути батьківським інтерфейсом LAG."
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "Інтерфейс LAG не може бути власним батьківським інтерфейсом."
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr ""
"Вибраний інтерфейс LAG ({lag}) належить до іншого пристрою ({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
@@ -5671,49 +5684,49 @@ msgstr ""
"Вибраний інтерфейс LAG ({lag}) належить {device}, який не є частиною "
"віртуального шасі {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "Віртуальні інтерфейси не можуть мати режим PoE."
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "Віртуальні інтерфейси не можуть мати тип PoE."
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "Необхідно вказати режим PoE при створенні інтерфейсу типу PoE."
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr ""
"Роль бездротового зв'язку може бути встановлена тільки на бездротових "
"інтерфейсах."
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "Канал (Wi-Fi) можна встановлювати тільки на бездротових інтерфейсах."
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr ""
"Частота каналу (Wi-Fi) може встановлюватися тільки на бездротових "
"інтерфейсах."
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr "Неможливо вказати користувацьку частоту при вибраному каналі (Wi-Fi)."
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr ""
"Ширина каналу (Wi-Fi) може бути встановлена тільки на бездротових "
"інтерфейсах."
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr "Неможливо вказати користувацьку ширину при вибраному каналі."
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
@@ -5722,24 +5735,24 @@ msgstr ""
"VLAN без міток ({untagged_vlan}) повинен належати тому ж тех. майданчику, що"
" і батьківський пристрій інтерфейсу, або ж він повинен бути глобальним."
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "Відображене положення на відповідному порті ззаду"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "передній порт"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "передні порти"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "Порт ззаду ({rear_port}) повинні належати до одного і того ж пристрою"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
@@ -5748,19 +5761,19 @@ msgstr ""
"Невірна позиція порту ззаду ({rear_port_position}): порт ззаду {name} має "
"тільки {positions} позицій."
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "Кількість передніх портів, які можуть бути відображені"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "порт ззаду"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "порти ззаду"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
@@ -5769,38 +5782,38 @@ msgstr ""
"Кількість позицій не може бути меншою за кількість відображених фронтальних "
"портів ({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "відсік модуля"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "відсіки модуля"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr "Відсік модуля не може належати модулю, встановленому в ньому."
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "відсік пристрою"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "відсіки для пристроїв"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr ""
"Даний тип пристрою ({device_type}) не підтримує відсіки для пристроїв."
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "Не вдається встановити пристрій в себе."
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
@@ -5808,61 +5821,61 @@ msgstr ""
"Не вдається встановити вказаний пристрій, бо пристрій вже встановлено в "
"{bay}."
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "роль елемента інвентаря"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "ролі елемента інвентаря"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "серійний номер"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "призначеня мітки"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr ""
"Унікальна мітка, яка використовується для ідентифікації цього елемента"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "виявлено"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "Цей елемент був автоматично виявлений"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "елемент інвентаря"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "елементи інвентаря"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "Не вдається призначити себе батьком."
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "Батьківський елемент інвентаря не належить до одного пристрою."
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "Не можливо переміщати елемент інвентаря з підпорядкованим елементом"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr "Не можливо призначати елемент інвентаря компоненту у іншому пристрої"
@@ -6010,7 +6023,7 @@ msgstr "Функція, яку виконує цей пристрій"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "Серійний номер шасі, наданий виробником"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr ""
"Унікальна мітка, яка використовується для ідентифікації цього пристрою"
@@ -6023,12 +6036,12 @@ msgstr "позиція (юніт)"
msgid "rack face"
msgstr "лицева частина стійки"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "первинний IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "первинний IPv6"
@@ -6051,7 +6064,7 @@ msgstr "Пріоритет віртуального шасі"
#: netbox/dcim/models/devices.py:713
msgid "Virtual chassis master election priority"
-msgstr "Пріоритет виборів віртуального шасі"
+msgstr "Пріоритет виборів майстра віртуального шасі"
#: netbox/dcim/models/devices.py:716 netbox/dcim/models/sites.py:207
msgid "latitude"
@@ -6179,15 +6192,24 @@ msgstr ""
"Для пристрія, призначеного для віртуального шасі, повинно бути задане "
"положення."
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr ""
+"Пристрій неможливо видалити з віртуального шасі {virtual_chassis} тому, що в"
+" даний час він призначений майстром."
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "модуль"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "модулі"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
@@ -6196,21 +6218,21 @@ msgstr ""
"Модуль повинен бути встановлений у відсіку модуля, що належить призначеному "
"пристрою ({device})."
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "домен"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
-msgstr "віртуальне шасі"
+msgstr "віртуальні шасі"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr "Обраний майстер ({master}) не присвоюється цьому віртуальному шасі."
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
@@ -6219,34 +6241,34 @@ msgstr ""
"Неможливо видалити віртуальне шасі {self}. Існують мережеві інтерфейси, які "
"утворюють інтерфейси LAG між шасі."
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "ідентифікатор"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "Числовий ідентифікатор, унікальний для батьківського пристрою"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "коментарі"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "контекст віртуального пристрою"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "контексти віртуальних пристроїв"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} не є IPv{family} адресой."
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr ""
"Первинна IP-адреса повинна належати інтерфейсу на призначеному пристрої."
@@ -6681,7 +6703,7 @@ msgstr "Шаблон конфігурації"
msgid "Site Group"
msgstr "Група тех. майданчиків"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6690,12 +6712,12 @@ msgstr "Група тех. майданчиків"
msgid "IP Address"
msgstr "IP-адреса"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "Адреса IPv4"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "Адреса IPv6"
@@ -6733,8 +6755,8 @@ msgstr "Порти живлення"
msgid "Power outlets"
msgstr "Розетки"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6772,8 +6794,8 @@ msgstr "Елементи інвентаря"
msgid "Module Bay"
msgstr "Резервуар модулів"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6818,7 +6840,7 @@ msgstr "IP-адреси"
#: netbox/dcim/tables/devices.py:564 netbox/netbox/navigation/menu.py:202
#: netbox/templates/ipam/inc/panels/fhrp_groups.html:6
msgid "FHRP Groups"
-msgstr "Групи FHRP"
+msgstr "Групи FHRP/VRRP"
#: netbox/dcim/tables/devices.py:576 netbox/templates/dcim/interface.html:89
#: netbox/templates/virtualization/vminterface.html:67
@@ -6831,75 +6853,75 @@ msgstr "Групи FHRP"
msgid "Tunnel"
msgstr "Тунель"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "Тільки управління"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "Джерела живлення постійного струму "
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "Встановлений модуль"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "Послідовний модуль "
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "Призначеня мітки на модуль"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "Статус модуля"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "Компонент"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "Предмети"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "Типи пристроїв"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "Типи модулів"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "Платформи"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "Платформа за замовчуванням"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "Повна глибина"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "Висота юніта"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "Екземпляри"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6910,7 +6932,7 @@ msgstr "Екземпляри"
msgid "Console Ports"
msgstr "Консольні порти"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6921,7 +6943,7 @@ msgstr "Консольні порти"
msgid "Console Server Ports"
msgstr "Порти консольного сервера"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6932,7 +6954,7 @@ msgstr "Порти консольного сервера"
msgid "Power Ports"
msgstr "Порти живлення"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6943,7 +6965,7 @@ msgstr "Порти живлення"
msgid "Power Outlets"
msgstr "Розетки"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6953,7 +6975,7 @@ msgstr "Розетки"
msgid "Front Ports"
msgstr "Передні порти"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6964,7 +6986,7 @@ msgstr "Передні порти"
msgid "Rear Ports"
msgstr "Задні порти"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6972,7 +6994,7 @@ msgstr "Задні порти"
msgid "Device Bays"
msgstr "Відсіки для пристроїв"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7413,26 +7435,26 @@ msgstr "Тип віджету"
msgid "Unregistered widget class: {name}"
msgstr "Незареєстрований клас віджетів: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name} повинен визначити метод render()."
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "Примітка"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr ""
"Відображення будь-якого довільного користувацького вмісту. Підтримується "
"розмітка Markdown."
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "Кількість об'єктів"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
@@ -7440,59 +7462,59 @@ msgstr ""
"Відображення набору моделей NetBox та кількості об'єктів, створених для "
"кожного типу."
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "Фільтри, які застосовуються при підрахунку кількості об'єктів"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr "Невірний формат. Фільтри об'єктів повинні бути передані як словник."
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "Список об'єктів"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "Відображення довільного списку об'єктів."
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "Типова кількість об'єктів для відображення"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr ""
"Невірний формат. Параметри URL-адреси повинні бути передані як словник."
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS-канал"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "Вбудовувати RSS-канал із зовнішнього веб-сайту."
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "URL-адреса каналу"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "Максимальна кількість об'єктів для відображення"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "Як довго зберігати кешований вміст (в секундах)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "Закладки"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "Показувати особисті закладки"
@@ -7508,12 +7530,12 @@ msgstr "Не вдається імпортувати конвеєр подій {
#: netbox/extras/filtersets.py:45
msgid "Script module (ID)"
-msgstr "Модуль сценарію (ідентіфікатор)"
+msgstr "Модуль сценарію (ідентифікатор)"
#: netbox/extras/filtersets.py:254 netbox/extras/filtersets.py:637
#: netbox/extras/filtersets.py:665
msgid "Data file (ID)"
-msgstr "Файл даних (ідентіфікатор)"
+msgstr "Файл даних (ідентифікатор)"
#: netbox/extras/filtersets.py:370 netbox/users/filtersets.py:68
#: netbox/users/filtersets.py:191
@@ -7535,8 +7557,8 @@ msgstr "Кластерний тип (скоречення)"
msgid "Tenant group"
msgstr "Група орендарів"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "Група орендарів (скоречення)"
@@ -7673,7 +7695,7 @@ msgstr "Активний"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "Типи об'єктів"
@@ -7774,8 +7796,8 @@ msgstr "Класифікація вступу"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "Користувачі"
@@ -7787,8 +7809,8 @@ msgstr "Імена користувачів, розділені комами, у
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "Групи"
@@ -8027,15 +8049,15 @@ msgstr "Вибір дії"
#: netbox/extras/forms/model_forms.py:385
msgid "Enter conditions in JSON format."
-msgstr "Введіть умови в JSON формат."
+msgstr "Введіть умови в JSON форматі."
#: netbox/extras/forms/model_forms.py:389
msgid ""
"Enter parameters to pass to the action in JSON format."
msgstr ""
-"Введіть параметри для переходу до дії JSON "
-" формат."
+"Введіть параметри для переходу до дії у JSON форматі."
#: netbox/extras/forms/model_forms.py:394
#: netbox/templates/extras/eventrule.html:10
@@ -8322,7 +8344,7 @@ msgid ""
"values to exactly three uppercase letters."
msgstr ""
"Регулярний вираз для застосування значень текстових полів. Використовуйте ^ "
-"і $ для примусового збігу всього рядка. Наприклад, ^ [А-З]{3}$ "
+"і $ для примусового збігу всього рядка. Наприклад, ^ [А-Z]{3}$ "
"обмежить значення рівно трьома великими літерами."
#: netbox/extras/models/customfields.py:201
@@ -8506,10 +8528,19 @@ msgstr "набір вибору користувацького поля"
msgid "custom field choice sets"
msgstr "набори вибору користувацького поля"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "Повинен визначити базовий або додатковий вибори."
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr ""
+"Не вдається видалити вибір {choice} так, як є {model} об'єкти, які "
+"посилаються на нього."
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "макет"
@@ -8557,11 +8588,11 @@ msgstr "Додаткові дані для передачі об'єкту дії
#: netbox/extras/models/models.py:116
msgid "event rule"
-msgstr "спрацьовує правило"
+msgstr "правило події"
#: netbox/extras/models/models.py:117
msgid "event rules"
-msgstr "спрацьовує правила"
+msgstr "правила подій"
#: netbox/extras/models/models.py:166
msgid ""
@@ -8627,7 +8658,7 @@ msgid ""
"the key. The secret is not transmitted in the request."
msgstr ""
"Якщо буде надано, запит буде містити X-Hook-підпис заголовок, "
-"що містить шестигранний дайджест HMAC тіла корисного навантаження з "
+"що містить шістнадцядковий дайджест HMAC тіла корисного навантаження з "
"використанням секрету як ключа. Таємниця не передається у запиті."
#: netbox/extras/models/models.py:215
@@ -8660,7 +8691,7 @@ msgstr "Не вказуйте файл сертифіката CA, якщо пе
#: netbox/extras/models/models.py:293
msgid "The object type(s) to which this link applies."
-msgstr "Тип (и) об'єкта, до яких застосовується це посилання."
+msgstr "Тип(и) об'єкта, до яких застосовується це посилання."
#: netbox/extras/models/models.py:305
msgid "link text"
@@ -8700,7 +8731,7 @@ msgstr "користувацькі посилання"
#: netbox/extras/models/models.py:389
msgid "The object type(s) to which this template applies."
-msgstr "Тип (и) об'єкта, до яких застосовується цей шаблон."
+msgstr "Тип(и) об'єкта, до яких застосовується цей шаблон."
#: netbox/extras/models/models.py:402
msgid ""
@@ -8745,7 +8776,7 @@ msgstr "\"{name}\" - це зарезервована назва. Будь лас
#: netbox/extras/models/models.py:498
msgid "The object type(s) to which this filter applies."
-msgstr "Тип (и) об'єкта, до яких застосовується цей фільтр."
+msgstr "Тип(и) об'єкта, до яких застосовується цей фільтр."
#: netbox/extras/models/models.py:530
msgid "shared"
@@ -8922,7 +8953,7 @@ msgstr "поетапні зміни"
#: netbox/extras/models/tags.py:40
msgid "The object type(s) to which this tag can be applied."
-msgstr "Тип (и) об'єкта, до яких можна застосувати цю позначку."
+msgstr "Тип(и) об'єкта, до яких можна застосувати цю позначку."
#: netbox/extras/models/tags.py:49
msgid "tag"
@@ -9081,65 +9112,65 @@ msgstr "Повідомлення"
msgid "Method"
msgstr "Метод"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "Переконайтеся, що це значення дорівнює %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "Переконайтеся, що це значення не дорівнює %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "Це поле має бути порожнім."
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "Це поле не повинно бути порожнім."
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "Правила перевірки повинні бути передані як словник"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr ""
"Користувацька перевірка зіткнулася з невдачею через{attribute}: {exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "Невірний атрибут \"{name}\" за запитом"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "Невірний атрибут \"{name}\" для {model}"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "Ваша інформаційна панель була скинута."
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "Доданий віджет: "
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "Оновлений віджет: "
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "Видалений віджет: "
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "Помилка при видаленні віджета: "
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "Неможливо запустити скрипт: робочий процес RQ не запущений."
@@ -9207,19 +9238,19 @@ msgstr "Простий текст"
msgid "Invalid IP address format: {address}"
msgstr "Невірний формат IP-адреси: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "Імпортувати ціль"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "Імпорт цілі (назва)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "Ціль експорту"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "Ціль експорту (назва)"
@@ -9264,7 +9295,7 @@ msgstr "Префікс"
#: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
#: netbox/ipam/filtersets.py:221
msgid "RIR (ID)"
-msgstr "RIR (ідентіфікатор)"
+msgstr "RIR (ідентифікатор)"
#: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
#: netbox/ipam/filtersets.py:227
@@ -9281,7 +9312,7 @@ msgstr "Всередині та включаючи префікс"
#: netbox/ipam/filtersets.py:293
msgid "Prefixes which contain this prefix or IP"
-msgstr "Префікси, які містять цей префікс або IP"
+msgstr "Мережеві префікси, які містять цей префікс або IP"
#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
#: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:196
@@ -9289,11 +9320,11 @@ msgstr "Префікси, які містять цей префікс або IP"
msgid "Mask length"
msgstr "Довжина маски"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
-msgstr "VLAN (ідентіфікатор)"
+msgstr "VLAN (ідентифікатор)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "Номер VLAN (1-4094)"
@@ -9313,33 +9344,33 @@ msgid "Parent prefix"
msgstr "Батьківський префікс"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "Віртуальна машина (назва)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
-msgstr "Віртуальна машина (ідентіфікатор)"
+msgstr "Віртуальна машина (ідентифікатор)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "Інтерфейс (назва)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
-msgstr "Інтерфейс VM (назва)"
+msgstr "Інтерфейс віртуальної машини (назва)"
#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
msgid "VM interface (ID)"
-msgstr "Інтерфейс VM (ідентіфікатор)"
+msgstr "Інтерфейс віртуальної машини (ідентифікатор)"
#: netbox/ipam/filtersets.py:648
msgid "FHRP group (ID)"
-msgstr "Група FHRP (ідентіфікатор)"
+msgstr "Група FHRP/VRRP (ідентифікатор)"
#: netbox/ipam/filtersets.py:652
msgid "Is assigned to an interface"
@@ -9351,25 +9382,33 @@ msgstr "призначається"
#: netbox/ipam/filtersets.py:668
msgid "Service (ID)"
-msgstr "Сервіс (ідентіфікатор)"
+msgstr "Сервіс (ідентифікатор)"
#: netbox/ipam/filtersets.py:673
msgid "NAT inside IP address (ID)"
-msgstr "NAT всередині IP-адреси (ідентіфікатор)"
+msgstr "NAT всередині IP-адреси (ідентифікатор)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "Призначений інтерфейс"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "Призначений інтерфейс віртуальної машини"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
-msgstr "IP-адреса (ідентіфікатор)"
+msgstr "IP-адреса (ідентифікатор)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP-адреса"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
-msgstr "Первинний IPv4 (ідентіфікатор)"
+msgstr "Первинний IPv4 (ідентифікатор)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "Первинний IPv6 (ідентифікатор)"
@@ -9583,10 +9622,6 @@ msgstr "Віртуальна машина"
msgid "Parent VM of assigned interface (if any)"
msgstr "Батьківська віртуальна машина призначеного інтерфейсу (якщо є)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "Призначений інтерфейс"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "Є первинним"
@@ -9632,7 +9667,7 @@ msgstr "Обов'язково, якщо пристрій не призначен
#: netbox/ipam/forms/bulk_import.py:517
#, python-brace-format
msgid "{ip} is not assigned to this device/VM."
-msgstr "{ip} не призначається цьому пристрою/VM."
+msgstr "{ip} не призначається цьому пристрою/віртуальній машині."
#: netbox/ipam/forms/filtersets.py:47 netbox/ipam/forms/model_forms.py:63
#: netbox/netbox/navigation/menu.py:189 netbox/vpn/forms/model_forms.py:410
@@ -9689,7 +9724,7 @@ msgstr "Присутній у VRF"
#: netbox/ipam/forms/filtersets.py:311
msgid "Device/VM"
-msgstr "Пристрой/VM"
+msgstr "Пристрій/віртуальна машина"
#: netbox/ipam/forms/filtersets.py:321
msgid "Parent Prefix"
@@ -9701,7 +9736,7 @@ msgstr "Призначений пристрій"
#: netbox/ipam/forms/filtersets.py:352
msgid "Assigned VM"
-msgstr "Призначена VM"
+msgstr "Призначена віртуальна машина"
#: netbox/ipam/forms/filtersets.py:366
msgid "Assigned to an interface"
@@ -9772,7 +9807,7 @@ msgstr "Діапазон IP"
#: netbox/ipam/forms/model_forms.py:473
#: netbox/templates/ipam/fhrpgroup.html:19
msgid "FHRP Group"
-msgstr "Група ФРП"
+msgstr "Група FHRP/VRRP"
#: netbox/ipam/forms/model_forms.py:310
msgid "Make this the primary IP for the device/VM"
@@ -9902,19 +9937,19 @@ msgstr "ключ аутентифікації"
#: netbox/ipam/models/fhrp.py:56
msgid "FHRP group"
-msgstr "Група ФГРП"
+msgstr "Група FHRP/VRRP"
#: netbox/ipam/models/fhrp.py:57
msgid "FHRP groups"
-msgstr "Групи FHRP"
+msgstr "Групи FHRP/VRRP"
#: netbox/ipam/models/fhrp.py:113
msgid "FHRP group assignment"
-msgstr "Групове призначення FHRP"
+msgstr "Групове призначення FHRP/VRRP"
#: netbox/ipam/models/fhrp.py:114
msgid "FHRP group assignments"
-msgstr "Групові завдання FHRP"
+msgstr "Групові призначення FHRP/VRRP"
#: netbox/ipam/models/ip.py:65
msgid "private"
@@ -9946,7 +9981,7 @@ msgstr "сукупний"
#: netbox/ipam/models/ip.py:116
msgid "aggregates"
-msgstr "агрегати"
+msgstr "агреговані мережі"
#: netbox/ipam/models/ip.py:132
msgid "Cannot create aggregate with /0 mask."
@@ -9967,8 +10002,8 @@ msgid ""
"Prefixes cannot overlap aggregates. {prefix} covers an existing aggregate "
"({aggregate})."
msgstr ""
-"Префікси не можуть перекривати агрегати. {prefix} охоплює існуючий агрегат "
-"({aggregate})."
+"Мережеві префікси не можуть перекривати агрегати. {prefix} охоплює існуючий "
+"агрегат ({aggregate})."
#: netbox/ipam/models/ip.py:200 netbox/ipam/models/ip.py:737
#: netbox/vpn/models/tunnels.py:114
@@ -10009,7 +10044,7 @@ msgstr "використовувана марка"
#: netbox/ipam/models/ip.py:294
msgid "prefixes"
-msgstr "префікси"
+msgstr "мережеві префікси"
#: netbox/ipam/models/ip.py:317
msgid "Cannot create prefix with /0 mask."
@@ -10292,7 +10327,7 @@ msgstr "Додано"
#: netbox/netbox/navigation/menu.py:165 netbox/netbox/navigation/menu.py:167
#: netbox/templates/ipam/vlan.html:84
msgid "Prefixes"
-msgstr "Префікси"
+msgstr "Мережеві префікси"
#: netbox/ipam/tables/ip.py:131 netbox/ipam/tables/ip.py:270
#: netbox/ipam/tables/ip.py:324 netbox/ipam/tables/vlans.py:86
@@ -10397,7 +10432,7 @@ msgstr ""
#: netbox/ipam/views.py:533
msgid "Child Prefixes"
-msgstr "Дитячі префікси"
+msgstr "Підпорядковані мережеві префікси"
#: netbox/ipam/views.py:569
msgid "Child Ranges"
@@ -10413,7 +10448,7 @@ msgstr "Інтерфейси пристроїв"
#: netbox/ipam/views.py:1145
msgid "VM Interfaces"
-msgstr "Інтерфейси VM"
+msgstr "Інтерфейси віртуальної машини"
#: netbox/netbox/api/fields.py:65
msgid "This field may not be blank."
@@ -10755,7 +10790,7 @@ msgstr "Регекс"
#: netbox/netbox/forms/__init__.py:34
msgid "Object type(s)"
-msgstr "Тип (и) об'єкта"
+msgstr "Тип(и) об'єкта"
#: netbox/netbox/forms/__init__.py:40
msgid "Lookup"
@@ -10862,7 +10897,7 @@ msgstr "Ролі в стійці"
#: netbox/netbox/navigation/menu.py:54
msgid "Elevations"
-msgstr "Піднесення"
+msgstr "Графічний вид"
#: netbox/netbox/navigation/menu.py:60 netbox/netbox/navigation/menu.py:62
msgid "Rack Types"
@@ -10900,7 +10935,7 @@ msgstr "Кабелі"
#: netbox/netbox/navigation/menu.py:118
msgid "Wireless Links"
-msgstr "Бездротові посилання"
+msgstr "Бездротові зв'язки"
#: netbox/netbox/navigation/menu.py:121
msgid "Interface Connections"
@@ -11148,11 +11183,11 @@ msgstr "Адміністратор"
#: netbox/netbox/navigation/menu.py:430 netbox/templates/account/base.html:27
#: netbox/templates/inc/user_menu.html:57
msgid "API Tokens"
-msgstr "Токени API"
+msgstr "Жетони API"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "Дозволи"
@@ -11167,7 +11202,7 @@ msgstr "Система"
#: netbox/templates/core/plugin_list.html:7
#: netbox/templates/core/plugin_list.html:12
msgid "Plugins"
-msgstr "плагіни"
+msgstr "Плагіни"
#: netbox/netbox/navigation/menu.py:459
msgid "Configuration History"
@@ -11301,63 +11336,63 @@ msgstr "Не вдається додати магазини до реєстру
msgid "Cannot delete stores from registry"
msgstr "Неможливо видалити магазини з реєстру"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "Чеська мова"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "Данська мова"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "Німецька мова"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "Англійська мова"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "Іспанська мова"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "Французька мова"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "Італійська мова"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "Японська мова"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "Голландська мова"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "Польська мова"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "Португальська мова"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "Російська мова"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "Турецька мова"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "Українська мова"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "Китайська мова"
@@ -11380,7 +11415,7 @@ msgstr "Помилка"
#: netbox/netbox/tables/tables.py:58
#, python-brace-format
msgid "No {model_name} found"
-msgstr "Ні {model_name} знайдено"
+msgstr "{model_name} не знайдено"
#: netbox/netbox/tables/tables.py:249
#: netbox/templates/generic/bulk_import.html:117
@@ -11540,7 +11575,7 @@ msgstr "Підписки"
#: netbox/templates/account/base.html:19
#: netbox/templates/inc/user_menu.html:54
msgid "Preferences"
-msgstr "Уподобання"
+msgstr "Налаштування"
#: netbox/templates/account/password.html:5
msgid "Change Password"
@@ -11689,7 +11724,7 @@ msgstr "Недавня діяльність"
#: netbox/templates/account/token.html:8
#: netbox/templates/account/token_list.html:6
msgid "My API Tokens"
-msgstr "Мої токени API"
+msgstr "Мої жетони API"
#: netbox/templates/account/token.html:11
#: netbox/templates/account/token.html:19 netbox/templates/users/token.html:6
@@ -11725,12 +11760,12 @@ msgstr "Логотип NetBox"
#: netbox/templates/base/layout.html:150 netbox/templates/base/layout.html:151
msgid "Docs"
-msgstr "Документи"
+msgstr "Документація"
#: netbox/templates/base/layout.html:156 netbox/templates/base/layout.html:157
#: netbox/templates/rest_framework/api.html:10
msgid "REST API"
-msgstr "РЕШТА API"
+msgstr "REST API"
#: netbox/templates/base/layout.html:162 netbox/templates/base/layout.html:163
msgid "REST API documentation"
@@ -11738,7 +11773,7 @@ msgstr "Документація REST API"
#: netbox/templates/base/layout.html:169 netbox/templates/base/layout.html:170
msgid "GraphQL API"
-msgstr "графічний інтерфейс QL"
+msgstr "Графічний інтерфейс QL"
#: netbox/templates/base/layout.html:185 netbox/templates/base/layout.html:186
msgid "NetBox Labs Support"
@@ -11776,11 +11811,11 @@ msgstr "Поміняти місцями кінці для каналу зв'яз
#: netbox/templates/circuits/circuit_terminations_swap.html:14
msgid "A side"
-msgstr "Сторона"
+msgstr "Сторона А"
#: netbox/templates/circuits/circuit_terminations_swap.html:22
msgid "Z side"
-msgstr "Z сторона"
+msgstr "Сторона Б"
#: netbox/templates/circuits/circuitgroup.html:16
msgid "Assign Circuit"
@@ -12014,7 +12049,7 @@ msgstr "Максимальний розмір сторінки"
#: netbox/templates/core/inc/config_data.html:114
msgid "User preferences"
-msgstr "Уподобання користувача"
+msgstr "Налаштування користувача"
#: netbox/templates/core/inc/config_data.html:141
msgid "Job retention"
@@ -12625,7 +12660,7 @@ msgstr "Додати пристрій"
#: netbox/templates/dcim/devicerole.html:40
msgid "VM Role"
-msgstr "Роль ВМ"
+msgstr "Роль віртуальної машини"
#: netbox/templates/dcim/devicetype.html:18
#: netbox/templates/dcim/moduletype.html:18
@@ -12672,11 +12707,11 @@ msgstr "Статус підключення"
#: netbox/templates/dcim/htmx/cable_edit.html:10
msgid "A Side"
-msgstr "Сторона"
+msgstr "Сторона А"
#: netbox/templates/dcim/htmx/cable_edit.html:30
msgid "B Side"
-msgstr "B Сторона"
+msgstr "Сторона Б"
#: netbox/templates/dcim/inc/cable_termination.html:65
msgid "No termination"
@@ -13031,7 +13066,7 @@ msgstr "Додати нового учасника"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "Дії"
@@ -13797,7 +13832,7 @@ msgstr "Пов'язані об'єкти"
#: netbox/templates/inc/panels/tags.html:11
msgid "No tags assigned"
-msgstr "Не зроблені позначки"
+msgstr "Немає зроблених позначок"
#: netbox/templates/inc/sync_warning.html:10
msgid "Data is out of sync with upstream file"
@@ -14083,7 +14118,7 @@ msgstr ""
"Клацніть тут щоб спробувати завантажити NetBox "
"знову."
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -14112,7 +14147,7 @@ msgid "Add Contact Group"
msgstr "Додати групу контактів"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "Контактна роль"
@@ -14150,7 +14185,7 @@ msgid "View"
msgstr "Перегляд"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "Обмеження"
@@ -14177,11 +14212,6 @@ msgstr "Пам'ять"
msgid "Disk Space"
msgstr "Місце на диску"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "ГБ"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "Додати віртуальну машину"
@@ -14386,7 +14416,7 @@ msgstr "Шифр"
#: netbox/templates/wireless/inc/authentication_attrs.html:16
msgid "PSK"
-msgstr "ПСК"
+msgstr " Попередньо спільний ключ (PSK)"
#: netbox/templates/wireless/inc/wirelesslink_interface.html:35
#: netbox/templates/wireless/inc/wirelesslink_interface.html:45
@@ -14422,57 +14452,57 @@ msgstr "Властивості посилання"
msgid "Distance"
msgstr "Відстань"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
-msgstr "Батьківська контактна група (ідентіфікатор)"
+msgstr "Батьківська контактна група (ідентифікатор)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "Батьківська контактна група (скоречення)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
-msgstr "Контактна група (ідентіфікатор)"
+msgstr "Контактна група (ідентифікатор)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "Контактна група (скоречення)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
-msgstr "Контакт (ідентіфікатор)"
+msgstr "Контакт (ідентифікатор)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
-msgstr "Роль контакту (ідентіфікатор)"
+msgstr "Роль контакту (ідентифікатор)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "Контактна роль (скоречення)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "Контактна група"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
-msgstr "Батьківська група орендарів (ідентіфікатор)"
+msgstr "Батьківська група орендарів (ідентифікатор)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "Батьківська група орендарів (скоречення)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
-msgstr "Група орендарів (ідентіфікатор)"
+msgstr "Група орендарів (ідентифікатор)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
-msgstr "Група орендарів (ідентіфікатор)"
+msgstr "Група орендарів (ідентифікатор)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "Група орендарів (скоречення)"
@@ -14587,11 +14617,11 @@ msgstr "Опис контакту"
#: netbox/users/filtersets.py:33 netbox/users/filtersets.py:73
msgid "Permission (ID)"
-msgstr "Дозвіл (ідентіфікатор)"
+msgstr "Дозвіл (ідентифікатор)"
#: netbox/users/filtersets.py:38 netbox/users/filtersets.py:78
msgid "Notification group (ID)"
-msgstr "Група повідомлень (ідентіфікатор)"
+msgstr "Група повідомлень (ідентифікатор)"
#: netbox/users/forms/bulk_edit.py:26
msgid "First name"
@@ -14637,11 +14667,11 @@ msgstr "Може змінитися"
msgid "Can Delete"
msgstr "Може видалити"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "Інтерфейс користувача"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14651,7 +14681,7 @@ msgstr ""
"запишіть свій ключ перед відправкою цієї форми, оскільки вона може "
"більше не бути доступною після створення токена."
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14661,32 +14691,32 @@ msgstr ""
"порожнім без обмежень. Приклад: 10.1.1.0/24,192.168.10.16/32,2001: дб "
"8:1: :/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "Підтвердити пароль"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "Введіть той же пароль, що і раніше, для перевірки."
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Паролі не збігаються! Будь ласка, перевірте свої дані та спробуйте ще раз."
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "Додаткові дії"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "Дії, надані на додаток до перерахованих вище"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "Об'єкти"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -14696,11 +14726,11 @@ msgstr ""
"null, щоб відповідати всім об'єктам цього типу. Список декількох об'єктів "
"призведе до логічної операції OR."
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "Необхідно вибрати хоча б одну дію."
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Невірний фільтр для {model}: {error}"
@@ -14957,7 +14987,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "Невірне значення для поля з множинним вибором: {value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "Об'єкт не знайдено: %(value)s"
@@ -14968,14 +14998,19 @@ msgid ""
"\"{value}\" is not a unique value for this field; multiple objects were "
"found"
msgstr ""
-"«{value}«не є унікальним значенням для цього поля; було знайдено декілька "
-"об'єктів"
+"\"{value}\" не є унікальним значенням для цього поля; було знайдено декілька"
+" об'єктів"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "\"{field_name}\" є недійсним ім'ям поля доступу."
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "Тип об'єкта повинен бути вказаний як \".\""
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "Невірний тип об'єкта"
@@ -15003,8 +15038,8 @@ msgid ""
" Markdown syntax is supported"
msgstr ""
-" синтаксис Markdown підтримується"
+" Підтримується синтаксис Markdown "
#: netbox/utilities/forms/fields/fields.py:48
msgid "URL-friendly unique shorthand"
@@ -15174,7 +15209,7 @@ msgstr "Закладка"
#: netbox/utilities/templates/buttons/clone.html:4
msgid "Clone"
-msgstr "клон"
+msgstr "Клонувати"
#: netbox/utilities/templates/buttons/export.html:7
msgid "Current View"
@@ -15276,7 +15311,7 @@ msgstr ""
#: netbox/virtualization/filtersets.py:79
msgid "Parent group (ID)"
-msgstr "Батьківська група (ідентіфікатор)"
+msgstr "Батьківська група (ідентифікатор)"
#: netbox/virtualization/filtersets.py:85
msgid "Parent group (slug)"
@@ -15285,12 +15320,12 @@ msgstr "Батьківська група (скоречення)"
#: netbox/virtualization/filtersets.py:89
#: netbox/virtualization/filtersets.py:141
msgid "Cluster type (ID)"
-msgstr "Тип кластера (ідентіфікатор)"
+msgstr "Тип кластера (ідентифікатор)"
#: netbox/virtualization/filtersets.py:151
#: netbox/virtualization/filtersets.py:271
msgid "Cluster (ID)"
-msgstr "Кластер (ідентіфікатор)"
+msgstr "Кластер (ідентифікатор)"
#: netbox/virtualization/forms/bulk_edit.py:166
#: netbox/virtualization/models/virtualmachines.py:115
@@ -15454,7 +15489,7 @@ msgstr "Повинен бути IPV{family} адреса. ({ip} є IPV{version}
#: netbox/virtualization/models/virtualmachines.py:238
#, python-brace-format
msgid "The specified IP address ({ip}) is not assigned to this VM."
-msgstr "Зазначена IP-адреса ({ip}) не присвоюється цій ВМ."
+msgstr "Зазначена IP-адреса ({ip}) не присвоюється цієї віртуальній машині."
#: netbox/virtualization/models/virtualmachines.py:396
#, python-brace-format
@@ -15570,25 +15605,25 @@ msgstr "Підписи DSA"
msgid "Group {n}"
msgstr "Група {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Приватна мережа Ethernet"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Віртуальна приватна локальна мережа Ethernet"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Приватне дерево Ethernet"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Віртуальне приватне дерево Ethernet"
#: netbox/vpn/filtersets.py:41
msgid "Tunnel group (ID)"
-msgstr "Тунельна група (ідентіфікатор)"
+msgstr "Тунельна група (ідентифікатор)"
#: netbox/vpn/filtersets.py:47
msgid "Tunnel group (slug)"
@@ -15604,7 +15639,7 @@ msgstr "Профіль IPsec (ім'я)"
#: netbox/vpn/filtersets.py:81
msgid "Tunnel (ID)"
-msgstr "Тунель (ідентіфікатор)"
+msgstr "Тунель (ідентифікатор)"
#: netbox/vpn/filtersets.py:87
msgid "Tunnel (name)"
@@ -15612,35 +15647,33 @@ msgstr "Тунель (назва)"
#: netbox/vpn/filtersets.py:118
msgid "Outside IP (ID)"
-msgstr "Зовнішній IP (ідентіфікатор)"
+msgstr "Зовнішній IP (ідентифікатор)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
-msgstr "Політика IKE (ідентіфікатор)"
+msgstr "Політика IKE (ідентифікатор)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "Політика IKE (назва)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "Політика IPsec (ідентифікатор)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "Політика IPsec (назва)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN (скоречення)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
-msgstr "Інтерфейс віртуальної машини (ідентіфікатор)"
+msgstr "Інтерфейс віртуальної машини (ідентифікатор)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN (назва)"
@@ -15722,7 +15755,7 @@ msgstr "Батьківська віртуальна машина (для інт
#: netbox/vpn/forms/bulk_import.py:301
msgid "Assigned interface (device or VM)"
-msgstr "Призначений інтерфейс (пристрій або VM)"
+msgstr "Призначений інтерфейс (пристрій або віртуальна машина)"
#: netbox/vpn/forms/bulk_import.py:334
msgid "Cannot import device and VM interface terminations simultaneously."
@@ -15975,15 +16008,15 @@ msgstr "Станція"
#: netbox/wireless/choices.py:467
msgid "Open"
-msgstr "Відкрити"
+msgstr "Відкрита"
#: netbox/wireless/choices.py:469
msgid "WPA Personal (PSK)"
-msgstr "WPA Персональний (PSK)"
+msgstr "Персональний WPA (PSK)"
#: netbox/wireless/choices.py:470
msgid "WPA Enterprise"
-msgstr "Підприємство WPA"
+msgstr "WPA для підприємства"
#: netbox/wireless/forms/bulk_edit.py:73
#: netbox/wireless/forms/bulk_edit.py:120
@@ -16019,7 +16052,7 @@ msgstr "Інтерфейс B"
#: netbox/wireless/forms/model_forms.py:161
msgid "Side B"
-msgstr "Сторона B"
+msgstr "Сторона Б"
#: netbox/wireless/models.py:31
msgid "authentication cipher"
diff --git a/netbox/translations/zh/LC_MESSAGES/django.mo b/netbox/translations/zh/LC_MESSAGES/django.mo
index 614b4d487ed..7affc8f559a 100644
Binary files a/netbox/translations/zh/LC_MESSAGES/django.mo and b/netbox/translations/zh/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/zh/LC_MESSAGES/django.po b/netbox/translations/zh/LC_MESSAGES/django.po
index 784313a74af..8de99d40519 100644
--- a/netbox/translations/zh/LC_MESSAGES/django.po
+++ b/netbox/translations/zh/LC_MESSAGES/django.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-09-25 05:02+0000\n"
+"POT-Creation-Date: 2024-10-12 05:02+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Chinese (https://app.transifex.com/netbox-community/teams/178115/zh/)\n"
@@ -33,7 +33,7 @@ msgstr ""
#: netbox/account/tables.py:27 netbox/templates/account/token.html:22
#: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
-#: netbox/users/forms/model_forms.py:113
+#: netbox/users/forms/model_forms.py:112
msgid "Key"
msgstr "令牌"
@@ -69,7 +69,7 @@ msgstr "最后使用"
#: netbox/account/tables.py:45 netbox/templates/account/token.html:55
#: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
-#: netbox/users/forms/model_forms.py:125
+#: netbox/users/forms/model_forms.py:124
msgid "Allowed IPs"
msgstr "允许的IP"
@@ -96,8 +96,8 @@ msgstr "您的密码已成功更改。"
#: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20
#: netbox/dcim/choices.py:102 netbox/dcim/choices.py:185
-#: netbox/dcim/choices.py:231 netbox/dcim/choices.py:1522
-#: netbox/dcim/choices.py:1598 netbox/dcim/choices.py:1648
+#: netbox/dcim/choices.py:237 netbox/dcim/choices.py:1530
+#: netbox/dcim/choices.py:1606 netbox/dcim/choices.py:1656
#: netbox/virtualization/choices.py:20 netbox/virtualization/choices.py:45
#: netbox/vpn/choices.py:18
msgid "Planned"
@@ -109,8 +109,8 @@ msgstr "置备"
#: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
#: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
-#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:230
-#: netbox/dcim/choices.py:1597 netbox/dcim/choices.py:1647
+#: netbox/dcim/choices.py:184 netbox/dcim/choices.py:236
+#: netbox/dcim/choices.py:1605 netbox/dcim/choices.py:1655
#: netbox/extras/tables/tables.py:495 netbox/ipam/choices.py:31
#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69
#: netbox/ipam/choices.py:154 netbox/templates/extras/configcontext.html:25
@@ -121,8 +121,8 @@ msgid "Active"
msgstr "在线"
#: netbox/circuits/choices.py:24 netbox/dcim/choices.py:183
-#: netbox/dcim/choices.py:229 netbox/dcim/choices.py:1596
-#: netbox/dcim/choices.py:1649 netbox/virtualization/choices.py:24
+#: netbox/dcim/choices.py:235 netbox/dcim/choices.py:1604
+#: netbox/dcim/choices.py:1657 netbox/virtualization/choices.py:24
#: netbox/virtualization/choices.py:43
msgid "Offline"
msgstr "离线"
@@ -135,7 +135,7 @@ msgstr "预留"
msgid "Decommissioned"
msgstr "退役"
-#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1609
+#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1617
#: netbox/tenancy/choices.py:17
msgid "Primary"
msgstr "主要联系人"
@@ -161,7 +161,7 @@ msgstr "已失效"
#: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
#: netbox/virtualization/filtersets.py:45
-#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:369
+#: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
msgid "Region (ID)"
msgstr "区域(ID)"
@@ -173,7 +173,7 @@ msgstr "区域(ID)"
#: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
-#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:364
+#: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
msgid "Region (slug)"
msgstr "地区(缩写)"
@@ -202,7 +202,7 @@ msgstr "站点组(缩写)"
#: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
#: netbox/circuits/forms/bulk_edit.py:216
-#: netbox/circuits/forms/bulk_import.py:125
+#: netbox/circuits/forms/bulk_import.py:124
#: netbox/circuits/forms/filtersets.py:51
#: netbox/circuits/forms/filtersets.py:171
#: netbox/circuits/forms/filtersets.py:209
@@ -268,7 +268,7 @@ msgstr "站点"
#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
#: netbox/virtualization/filtersets.py:75
-#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:374
+#: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
msgid "Site (slug)"
msgstr "站点(缩写)"
@@ -322,7 +322,7 @@ msgstr "线路类型(缩写)"
#: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
-#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:379
+#: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
msgid "Site (ID)"
msgstr "站点(ID)"
@@ -341,13 +341,13 @@ msgstr "接入点A (ID)"
#: netbox/extras/filtersets.py:348 netbox/extras/filtersets.py:391
#: netbox/extras/filtersets.py:438 netbox/extras/filtersets.py:498
#: netbox/extras/filtersets.py:657 netbox/extras/filtersets.py:703
-#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:280
+#: netbox/ipam/forms/model_forms.py:449 netbox/netbox/filtersets.py:282
#: netbox/netbox/forms/__init__.py:22 netbox/netbox/forms/base.py:167
#: netbox/templates/htmx/object_selector.html:28
#: netbox/templates/inc/filter_list.html:45
#: netbox/templates/ipam/ipaddress_assign.html:29
#: netbox/templates/search.html:7 netbox/templates/search.html:26
-#: netbox/tenancy/filtersets.py:100 netbox/users/filtersets.py:23
+#: netbox/tenancy/filtersets.py:99 netbox/users/filtersets.py:23
#: netbox/users/filtersets.py:57 netbox/users/filtersets.py:102
#: netbox/users/filtersets.py:150 netbox/utilities/forms/forms.py:104
#: netbox/utilities/templates/navigation/menu.html:16
@@ -356,7 +356,7 @@ msgstr "搜索"
#: netbox/circuits/filtersets.py:264 netbox/circuits/forms/bulk_edit.py:172
#: netbox/circuits/forms/bulk_edit.py:246
-#: netbox/circuits/forms/bulk_import.py:116
+#: netbox/circuits/forms/bulk_import.py:115
#: netbox/circuits/forms/filtersets.py:198
#: netbox/circuits/forms/filtersets.py:214
#: netbox/circuits/forms/filtersets.py:260
@@ -540,9 +540,9 @@ msgstr "描述"
#: netbox/circuits/forms/bulk_edit.py:51 netbox/circuits/forms/bulk_edit.py:73
#: netbox/circuits/forms/bulk_edit.py:123
-#: netbox/circuits/forms/bulk_import.py:37
-#: netbox/circuits/forms/bulk_import.py:52
-#: netbox/circuits/forms/bulk_import.py:75
+#: netbox/circuits/forms/bulk_import.py:36
+#: netbox/circuits/forms/bulk_import.py:51
+#: netbox/circuits/forms/bulk_import.py:74
#: netbox/circuits/forms/filtersets.py:70
#: netbox/circuits/forms/filtersets.py:88
#: netbox/circuits/forms/filtersets.py:116
@@ -579,9 +579,9 @@ msgstr "服务ID"
#: netbox/dcim/forms/bulk_edit.py:1173 netbox/dcim/forms/bulk_edit.py:1200
#: netbox/dcim/forms/bulk_edit.py:1678 netbox/dcim/forms/filtersets.py:1064
#: netbox/dcim/forms/filtersets.py:1455 netbox/dcim/forms/filtersets.py:1479
-#: netbox/dcim/tables/devices.py:701 netbox/dcim/tables/devices.py:758
-#: netbox/dcim/tables/devices.py:1000 netbox/dcim/tables/devicetypes.py:250
-#: netbox/dcim/tables/devicetypes.py:265 netbox/dcim/tables/racks.py:33
+#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devices.py:761
+#: netbox/dcim/tables/devices.py:1003 netbox/dcim/tables/devicetypes.py:249
+#: netbox/dcim/tables/devicetypes.py:264 netbox/dcim/tables/racks.py:33
#: netbox/extras/forms/bulk_edit.py:270 netbox/extras/tables/tables.py:443
#: netbox/templates/circuits/circuittype.html:30
#: netbox/templates/dcim/cable.html:40
@@ -594,7 +594,7 @@ msgid "Color"
msgstr "颜色"
#: netbox/circuits/forms/bulk_edit.py:118
-#: netbox/circuits/forms/bulk_import.py:88
+#: netbox/circuits/forms/bulk_import.py:87
#: netbox/circuits/forms/filtersets.py:126 netbox/core/forms/bulk_edit.py:18
#: netbox/core/forms/filtersets.py:33 netbox/core/tables/change_logging.py:32
#: netbox/core/tables/data.py:20 netbox/core/tables/jobs.py:18
@@ -617,7 +617,7 @@ msgstr "颜色"
#: netbox/dcim/forms/object_import.py:84
#: netbox/dcim/forms/object_import.py:113
#: netbox/dcim/forms/object_import.py:145 netbox/dcim/tables/devices.py:178
-#: netbox/dcim/tables/devices.py:811 netbox/dcim/tables/power.py:77
+#: netbox/dcim/tables/devices.py:814 netbox/dcim/tables/power.py:77
#: netbox/dcim/tables/racks.py:138 netbox/extras/forms/bulk_import.py:42
#: netbox/extras/tables/tables.py:405 netbox/extras/tables/tables.py:465
#: netbox/netbox/tables/tables.py:240
@@ -651,14 +651,14 @@ msgid "Type"
msgstr "类型"
#: netbox/circuits/forms/bulk_edit.py:128
-#: netbox/circuits/forms/bulk_import.py:81
+#: netbox/circuits/forms/bulk_import.py:80
#: netbox/circuits/forms/filtersets.py:139
#: netbox/circuits/forms/model_forms.py:98
msgid "Provider account"
msgstr "运营商账户"
#: netbox/circuits/forms/bulk_edit.py:136
-#: netbox/circuits/forms/bulk_import.py:94
+#: netbox/circuits/forms/bulk_import.py:93
#: netbox/circuits/forms/filtersets.py:150 netbox/core/forms/filtersets.py:38
#: netbox/core/forms/filtersets.py:79 netbox/core/tables/data.py:23
#: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88
@@ -674,8 +674,8 @@ msgstr "运营商账户"
#: netbox/dcim/forms/filtersets.py:359 netbox/dcim/forms/filtersets.py:799
#: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
#: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
-#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:814
-#: netbox/dcim/tables/devices.py:1060 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
#: netbox/ipam/forms/bulk_edit.py:255 netbox/ipam/forms/bulk_edit.py:305
@@ -704,7 +704,7 @@ msgstr "运营商账户"
#: netbox/templates/vpn/tunnel.html:25
#: netbox/templates/wireless/wirelesslan.html:22
#: netbox/templates/wireless/wirelesslink.html:17
-#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195
+#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194
#: netbox/virtualization/forms/bulk_edit.py:70
#: netbox/virtualization/forms/bulk_edit.py:118
#: netbox/virtualization/forms/bulk_import.py:54
@@ -728,8 +728,8 @@ msgstr "状态"
#: netbox/circuits/forms/bulk_edit.py:142
#: netbox/circuits/forms/bulk_edit.py:233
-#: netbox/circuits/forms/bulk_import.py:99
-#: netbox/circuits/forms/bulk_import.py:159
+#: netbox/circuits/forms/bulk_import.py:98
+#: netbox/circuits/forms/bulk_import.py:158
#: netbox/circuits/forms/filtersets.py:119
#: netbox/circuits/forms/filtersets.py:241 netbox/dcim/forms/bulk_edit.py:122
#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:346
@@ -895,21 +895,21 @@ msgstr "终端详情"
msgid "Priority"
msgstr "优先级"
-#: netbox/circuits/forms/bulk_import.py:40
-#: netbox/circuits/forms/bulk_import.py:55
-#: netbox/circuits/forms/bulk_import.py:78
+#: netbox/circuits/forms/bulk_import.py:39
+#: netbox/circuits/forms/bulk_import.py:54
+#: netbox/circuits/forms/bulk_import.py:77
msgid "Assigned provider"
msgstr "指定的运营商"
-#: netbox/circuits/forms/bulk_import.py:84
+#: netbox/circuits/forms/bulk_import.py:83
msgid "Assigned provider account"
msgstr "指定的运营商账户"
-#: netbox/circuits/forms/bulk_import.py:91
+#: netbox/circuits/forms/bulk_import.py:90
msgid "Type of circuit"
msgstr "线路类型"
-#: netbox/circuits/forms/bulk_import.py:96 netbox/dcim/forms/bulk_import.py:90
+#: netbox/circuits/forms/bulk_import.py:95 netbox/dcim/forms/bulk_import.py:90
#: netbox/dcim/forms/bulk_import.py:149 netbox/dcim/forms/bulk_import.py:250
#: netbox/dcim/forms/bulk_import.py:507 netbox/dcim/forms/bulk_import.py:661
#: netbox/dcim/forms/bulk_import.py:1373 netbox/ipam/forms/bulk_import.py:194
@@ -921,8 +921,8 @@ msgstr "线路类型"
msgid "Operational status"
msgstr "运行状态"
-#: netbox/circuits/forms/bulk_import.py:103
-#: netbox/circuits/forms/bulk_import.py:163
+#: netbox/circuits/forms/bulk_import.py:102
+#: netbox/circuits/forms/bulk_import.py:162
#: netbox/dcim/forms/bulk_import.py:111 netbox/dcim/forms/bulk_import.py:156
#: netbox/dcim/forms/bulk_import.py:338 netbox/dcim/forms/bulk_import.py:483
#: netbox/dcim/forms/bulk_import.py:1223 netbox/dcim/forms/bulk_import.py:1368
@@ -938,7 +938,7 @@ msgstr "运行状态"
msgid "Assigned tenant"
msgstr "已分配租户"
-#: netbox/circuits/forms/bulk_import.py:121
+#: netbox/circuits/forms/bulk_import.py:120
#: netbox/templates/circuits/inc/circuit_termination.html:6
#: netbox/templates/circuits/inc/circuit_termination_fields.html:15
#: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72
@@ -946,7 +946,7 @@ msgstr "已分配租户"
msgid "Termination"
msgstr "终端"
-#: netbox/circuits/forms/bulk_import.py:131
+#: netbox/circuits/forms/bulk_import.py:130
#: netbox/circuits/forms/filtersets.py:147
#: netbox/circuits/forms/filtersets.py:227
#: netbox/circuits/forms/model_forms.py:144
@@ -1102,7 +1102,7 @@ msgstr "线路终端侧"
#: netbox/templates/extras/configcontext.html:60
#: netbox/templates/ipam/ipaddress.html:59
#: netbox/templates/ipam/vlan_edit.html:30
-#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315
+#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314
msgid "Assignment"
msgstr "分配"
@@ -1157,11 +1157,11 @@ msgid "Circuit Group"
msgstr "电路组"
#: netbox/circuits/models/circuits.py:27 netbox/dcim/models/cables.py:67
-#: netbox/dcim/models/device_component_templates.py:518
-#: netbox/dcim/models/device_component_templates.py:618
-#: netbox/dcim/models/device_components.py:976
-#: netbox/dcim/models/device_components.py:1050
-#: netbox/dcim/models/device_components.py:1205
+#: netbox/dcim/models/device_component_templates.py:517
+#: netbox/dcim/models/device_component_templates.py:617
+#: netbox/dcim/models/device_components.py:975
+#: netbox/dcim/models/device_components.py:1049
+#: netbox/dcim/models/device_components.py:1204
#: netbox/dcim/models/devices.py:479 netbox/dcim/models/racks.py:224
#: netbox/extras/models/tags.py:28
msgid "color"
@@ -1184,9 +1184,9 @@ msgid "Unique circuit ID"
msgstr "唯一线路 ID"
#: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
-#: netbox/core/models/jobs.py:86 netbox/dcim/models/cables.py:49
-#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1166
-#: netbox/dcim/models/devices.py:1392 netbox/dcim/models/power.py:96
+#: netbox/core/models/jobs.py:84 netbox/dcim/models/cables.py:49
+#: netbox/dcim/models/devices.py:653 netbox/dcim/models/devices.py:1173
+#: netbox/dcim/models/devices.py:1399 netbox/dcim/models/power.py:96
#: netbox/dcim/models/racks.py:297 netbox/dcim/models/sites.py:154
#: netbox/dcim/models/sites.py:266 netbox/ipam/models/ip.py:253
#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:730
@@ -1280,7 +1280,7 @@ msgstr "配线架 ID 和端口号"
#: netbox/circuits/models/circuits.py:281
#: netbox/dcim/models/device_component_templates.py:61
-#: netbox/dcim/models/device_components.py:69 netbox/dcim/models/racks.py:685
+#: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:685
#: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:219
#: netbox/extras/models/customfields.py:125 netbox/extras/models/models.py:61
#: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396
@@ -1315,11 +1315,11 @@ msgstr "线路终结不能同时连接到站点和运营商网络。"
#: netbox/circuits/models/providers.py:22
#: netbox/circuits/models/providers.py:66
#: netbox/circuits/models/providers.py:104 netbox/core/models/data.py:39
-#: netbox/core/models/jobs.py:47
+#: netbox/core/models/jobs.py:45
#: netbox/dcim/models/device_component_templates.py:43
-#: netbox/dcim/models/device_components.py:54
-#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1323
-#: netbox/dcim/models/devices.py:1388 netbox/dcim/models/power.py:39
+#: netbox/dcim/models/device_components.py:53
+#: netbox/dcim/models/devices.py:593 netbox/dcim/models/devices.py:1330
+#: netbox/dcim/models/devices.py:1395 netbox/dcim/models/power.py:39
#: netbox/dcim/models/power.py:92 netbox/dcim/models/racks.py:262
#: netbox/dcim/models/sites.py:138 netbox/extras/models/configs.py:36
#: netbox/extras/models/configs.py:215 netbox/extras/models/customfields.py:92
@@ -1403,11 +1403,11 @@ msgstr "运营商网络"
#: netbox/dcim/tables/devices.py:134 netbox/dcim/tables/devices.py:289
#: netbox/dcim/tables/devices.py:392 netbox/dcim/tables/devices.py:433
#: netbox/dcim/tables/devices.py:482 netbox/dcim/tables/devices.py:531
-#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devices.py:728
-#: netbox/dcim/tables/devices.py:775 netbox/dcim/tables/devices.py:838
-#: netbox/dcim/tables/devices.py:908 netbox/dcim/tables/devices.py:971
-#: netbox/dcim/tables/devices.py:991 netbox/dcim/tables/devices.py:1020
-#: netbox/dcim/tables/devices.py:1050 netbox/dcim/tables/devicetypes.py:32
+#: netbox/dcim/tables/devices.py:648 netbox/dcim/tables/devices.py:731
+#: netbox/dcim/tables/devices.py:778 netbox/dcim/tables/devices.py:841
+#: netbox/dcim/tables/devices.py:911 netbox/dcim/tables/devices.py:974
+#: netbox/dcim/tables/devices.py:994 netbox/dcim/tables/devices.py:1023
+#: netbox/dcim/tables/devices.py:1053 netbox/dcim/tables/devicetypes.py:31
#: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62
#: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113
#: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51
@@ -1545,8 +1545,8 @@ msgstr "承诺速率"
#: netbox/circuits/tables/circuits.py:80
#: netbox/circuits/tables/providers.py:48
#: netbox/circuits/tables/providers.py:82
-#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1033
-#: netbox/dcim/tables/devicetypes.py:93 netbox/dcim/tables/modules.py:29
+#: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
+#: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
#: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
#: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
@@ -1623,8 +1623,8 @@ msgstr "完成"
#: netbox/core/choices.py:22 netbox/core/choices.py:59
#: netbox/core/constants.py:20 netbox/core/tables/tasks.py:34
-#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:233
-#: netbox/dcim/choices.py:1599 netbox/virtualization/choices.py:47
+#: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
+#: netbox/dcim/choices.py:1607 netbox/virtualization/choices.py:47
msgid "Failed"
msgstr "故障"
@@ -1690,42 +1690,42 @@ msgstr "已停止"
msgid "Cancelled"
msgstr "已取消"
-#: netbox/core/data_backends.py:29 netbox/core/tables/plugins.py:51
+#: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
#: netbox/templates/core/plugin.html:87
#: netbox/templates/dcim/interface.html:216
msgid "Local"
msgstr "本地"
-#: netbox/core/data_backends.py:47 netbox/core/tables/change_logging.py:20
+#: netbox/core/data_backends.py:50 netbox/core/tables/change_logging.py:20
#: netbox/templates/account/profile.html:15
#: netbox/templates/users/user.html:17 netbox/users/tables.py:31
msgid "Username"
msgstr "用户名"
-#: netbox/core/data_backends.py:49 netbox/core/data_backends.py:55
+#: netbox/core/data_backends.py:52 netbox/core/data_backends.py:58
msgid "Only used for cloning with HTTP(S)"
msgstr "仅用于通过 HTTP(S) 进行克隆"
-#: netbox/core/data_backends.py:53 netbox/templates/account/base.html:23
+#: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23
#: netbox/templates/account/password.html:12
-#: netbox/users/forms/model_forms.py:171
+#: netbox/users/forms/model_forms.py:170
msgid "Password"
msgstr "密码"
-#: netbox/core/data_backends.py:59
+#: netbox/core/data_backends.py:62
msgid "Branch"
msgstr "分支"
-#: netbox/core/data_backends.py:106
+#: netbox/core/data_backends.py:120
#, python-brace-format
msgid "Fetching remote data failed ({name}): {error}"
msgstr "获取远程数据失败({name}): {error}"
-#: netbox/core/data_backends.py:119
+#: netbox/core/data_backends.py:133
msgid "AWS access key ID"
msgstr "AWS access key ID"
-#: netbox/core/data_backends.py:123
+#: netbox/core/data_backends.py:137
msgid "AWS secret access key"
msgstr "AWS secret access key"
@@ -1780,7 +1780,7 @@ msgstr "用户名"
#: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43
#: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1122
#: netbox/dcim/forms/bulk_edit.py:1400 netbox/dcim/forms/filtersets.py:1370
-#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:225
+#: netbox/dcim/tables/devices.py:553 netbox/dcim/tables/devicetypes.py:224
#: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187
#: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:142
#: netbox/extras/forms/filtersets.py:229 netbox/extras/forms/filtersets.py:294
@@ -1894,7 +1894,7 @@ msgstr "完成后"
#: netbox/templates/users/user.html:6 netbox/templates/users/user.html:14
#: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174
#: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125
-#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192
#: netbox/users/tables.py:19
msgid "User"
msgstr "用户"
@@ -1948,7 +1948,7 @@ msgstr "必须上传文件或选择数据文件进行同步"
msgid "Rack Elevations"
msgstr "机柜立面图"
-#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1510
+#: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1518
#: netbox/dcim/forms/bulk_edit.py:969 netbox/dcim/forms/bulk_edit.py:1357
#: netbox/dcim/forms/bulk_edit.py:1375 netbox/dcim/tables/racks.py:158
#: netbox/netbox/navigation/menu.py:291 netbox/netbox/navigation/menu.py:295
@@ -1991,7 +1991,7 @@ msgstr "用户首选项"
#: netbox/core/forms/model_forms.py:167 netbox/dcim/forms/filtersets.py:732
#: netbox/templates/core/inc/config_data.html:127
-#: netbox/users/forms/model_forms.py:65
+#: netbox/users/forms/model_forms.py:64
msgid "Miscellaneous"
msgstr "杂项"
@@ -2050,7 +2050,7 @@ msgid "Change logging is not supported for this object type ({type})."
msgstr "此对象类型 ({type}) 不支持更改日志记录。"
#: netbox/core/models/config.py:18 netbox/core/models/data.py:266
-#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:51
+#: netbox/core/models/files.py:27 netbox/core/models/jobs.py:49
#: netbox/extras/models/models.py:730 netbox/extras/models/notifications.py:39
#: netbox/extras/models/notifications.py:186
#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
@@ -2087,20 +2087,20 @@ msgid "Config revision #{id}"
msgstr "配置修订#{id}"
#: netbox/core/models/data.py:44 netbox/dcim/models/cables.py:43
-#: netbox/dcim/models/device_component_templates.py:204
-#: netbox/dcim/models/device_component_templates.py:238
-#: netbox/dcim/models/device_component_templates.py:273
-#: netbox/dcim/models/device_component_templates.py:335
-#: netbox/dcim/models/device_component_templates.py:414
-#: netbox/dcim/models/device_component_templates.py:513
-#: netbox/dcim/models/device_component_templates.py:613
-#: netbox/dcim/models/device_components.py:284
-#: netbox/dcim/models/device_components.py:313
-#: netbox/dcim/models/device_components.py:346
-#: netbox/dcim/models/device_components.py:464
-#: netbox/dcim/models/device_components.py:606
-#: netbox/dcim/models/device_components.py:971
-#: netbox/dcim/models/device_components.py:1045
+#: netbox/dcim/models/device_component_templates.py:203
+#: netbox/dcim/models/device_component_templates.py:237
+#: netbox/dcim/models/device_component_templates.py:272
+#: netbox/dcim/models/device_component_templates.py:334
+#: netbox/dcim/models/device_component_templates.py:413
+#: netbox/dcim/models/device_component_templates.py:512
+#: netbox/dcim/models/device_component_templates.py:612
+#: netbox/dcim/models/device_components.py:283
+#: netbox/dcim/models/device_components.py:312
+#: netbox/dcim/models/device_components.py:345
+#: netbox/dcim/models/device_components.py:463
+#: netbox/dcim/models/device_components.py:605
+#: netbox/dcim/models/device_components.py:970
+#: netbox/dcim/models/device_components.py:1044
#: netbox/dcim/models/power.py:102 netbox/extras/models/customfields.py:78
#: netbox/extras/models/search.py:41
#: netbox/virtualization/models/clusters.py:61 netbox/vpn/models/l2vpn.py:32
@@ -2115,8 +2115,8 @@ msgid "URL"
msgstr "URL"
#: netbox/core/models/data.py:59
-#: netbox/dcim/models/device_component_templates.py:419
-#: netbox/dcim/models/device_components.py:513
+#: netbox/dcim/models/device_component_templates.py:418
+#: netbox/dcim/models/device_components.py:512
#: netbox/extras/models/models.py:70 netbox/extras/models/models.py:301
#: netbox/extras/models/models.py:526 netbox/users/models/permissions.py:29
msgid "enabled"
@@ -2226,58 +2226,58 @@ msgstr "托管文件"
msgid "managed files"
msgstr "托管文件"
-#: netbox/core/models/jobs.py:55
+#: netbox/core/models/jobs.py:53
msgid "scheduled"
msgstr "计划"
-#: netbox/core/models/jobs.py:60
+#: netbox/core/models/jobs.py:58
msgid "interval"
msgstr "间隔"
-#: netbox/core/models/jobs.py:66
+#: netbox/core/models/jobs.py:64
msgid "Recurrence interval (in minutes)"
msgstr "重复间隔(以分钟为单位)"
-#: netbox/core/models/jobs.py:69
+#: netbox/core/models/jobs.py:67
msgid "started"
msgstr "已经开始"
-#: netbox/core/models/jobs.py:74
+#: netbox/core/models/jobs.py:72
msgid "completed"
msgstr "已经完成"
-#: netbox/core/models/jobs.py:92 netbox/extras/models/models.py:101
+#: netbox/core/models/jobs.py:90 netbox/extras/models/models.py:101
#: netbox/extras/models/staging.py:87
msgid "data"
msgstr "数据"
-#: netbox/core/models/jobs.py:97
+#: netbox/core/models/jobs.py:95
msgid "error"
msgstr "错误"
-#: netbox/core/models/jobs.py:102
+#: netbox/core/models/jobs.py:100
msgid "job ID"
msgstr "任务ID"
-#: netbox/core/models/jobs.py:113
+#: netbox/core/models/jobs.py:111
msgid "job"
msgstr "任务"
-#: netbox/core/models/jobs.py:114
+#: netbox/core/models/jobs.py:112
msgid "jobs"
msgstr "任务"
-#: netbox/core/models/jobs.py:136
+#: netbox/core/models/jobs.py:135
#, python-brace-format
msgid "Jobs cannot be assigned to this object type ({type})."
msgstr "任务不能分配给此对象类型 ({type})"
-#: netbox/core/models/jobs.py:186
+#: netbox/core/models/jobs.py:185
#, python-brace-format
msgid "Invalid status for job termination. Choices are: {choices}"
msgstr "作业终止状态无效。选项有:{choices}"
-#: netbox/core/models/jobs.py:217
+#: netbox/core/models/jobs.py:216
msgid ""
"enqueue() cannot be called with values for both schedule_at and immediate."
msgstr "不能使用 schedule_at 和 immediate 的值调用 enqueue ()。"
@@ -2326,7 +2326,7 @@ msgid "Last updated"
msgstr "最后更新日期"
#: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76
-#: netbox/dcim/tables/devicetypes.py:165 netbox/extras/tables/tables.py:216
+#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216
#: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:189
#: netbox/templates/dcim/virtualchassis_edit.html:52
#: netbox/utilities/forms/forms.py:73
@@ -2518,7 +2518,7 @@ msgid "Staging"
msgstr "暂存"
#: netbox/dcim/choices.py:23 netbox/dcim/choices.py:189
-#: netbox/dcim/choices.py:234 netbox/dcim/choices.py:1523
+#: netbox/dcim/choices.py:240 netbox/dcim/choices.py:1531
#: netbox/virtualization/choices.py:23 netbox/virtualization/choices.py:48
msgid "Decommissioning"
msgstr "报废"
@@ -2582,17 +2582,17 @@ msgstr "已弃用"
msgid "Millimeters"
msgstr "毫米"
-#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1545
+#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1553
msgid "Inches"
msgstr "英寸"
-#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:204
-#: netbox/dcim/choices.py:248
+#: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
+#: netbox/dcim/choices.py:254
msgid "Front to rear"
msgstr "从前向后"
-#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:205
-#: netbox/dcim/choices.py:249
+#: netbox/dcim/choices.py:137 netbox/dcim/choices.py:208
+#: netbox/dcim/choices.py:255
msgid "Rear to front"
msgstr "从后向前"
@@ -2605,8 +2605,8 @@ msgstr "从后向前"
#: netbox/dcim/forms/model_forms.py:74 netbox/dcim/forms/model_forms.py:93
#: netbox/dcim/forms/model_forms.py:170 netbox/dcim/forms/model_forms.py:1062
#: netbox/dcim/forms/model_forms.py:1502
-#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:653
-#: netbox/dcim/tables/devices.py:866 netbox/dcim/tables/devices.py:951
+#: netbox/dcim/forms/object_import.py:176 netbox/dcim/tables/devices.py:656
+#: netbox/dcim/tables/devices.py:869 netbox/dcim/tables/devices.py:954
#: netbox/extras/tables/tables.py:223 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:378 netbox/ipam/tables/services.py:44
#: netbox/templates/dcim/interface.html:102
@@ -2650,7 +2650,7 @@ msgstr "前"
msgid "Rear"
msgstr "后"
-#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:232
+#: netbox/dcim/choices.py:186 netbox/dcim/choices.py:238
#: netbox/virtualization/choices.py:46
msgid "Staged"
msgstr "已暂存"
@@ -2659,67 +2659,79 @@ msgstr "已暂存"
msgid "Inventory"
msgstr "库存中"
-#: netbox/dcim/choices.py:206 netbox/dcim/choices.py:250
+#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:256
msgid "Left to right"
msgstr "从左向右"
-#: netbox/dcim/choices.py:207 netbox/dcim/choices.py:251
+#: netbox/dcim/choices.py:210 netbox/dcim/choices.py:257
msgid "Right to left"
msgstr "从右向左"
-#: netbox/dcim/choices.py:208 netbox/dcim/choices.py:252
+#: netbox/dcim/choices.py:211 netbox/dcim/choices.py:258
msgid "Side to rear"
msgstr "侧进风后出风"
-#: netbox/dcim/choices.py:209 netbox/dcim/choices.py:253
-#: netbox/dcim/choices.py:1295
+#: netbox/dcim/choices.py:212
+msgid "Rear to side"
+msgstr "从后到边"
+
+#: netbox/dcim/choices.py:213
+msgid "Bottom to top"
+msgstr "自下而上"
+
+#: netbox/dcim/choices.py:214
+msgid "Top to bottom"
+msgstr "从上到下"
+
+#: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
+#: netbox/dcim/choices.py:1303
msgid "Passive"
msgstr "被动"
-#: netbox/dcim/choices.py:210
+#: netbox/dcim/choices.py:216
msgid "Mixed"
msgstr "混合风道"
-#: netbox/dcim/choices.py:478 netbox/dcim/choices.py:727
+#: netbox/dcim/choices.py:484 netbox/dcim/choices.py:733
msgid "NEMA (Non-locking)"
msgstr "NEMA(非锁定)"
-#: netbox/dcim/choices.py:500 netbox/dcim/choices.py:749
+#: netbox/dcim/choices.py:506 netbox/dcim/choices.py:755
msgid "NEMA (Locking)"
msgstr "NEMA(锁定)"
-#: netbox/dcim/choices.py:524 netbox/dcim/choices.py:773
+#: netbox/dcim/choices.py:530 netbox/dcim/choices.py:779
msgid "California Style"
msgstr "美标"
-#: netbox/dcim/choices.py:532
+#: netbox/dcim/choices.py:538
msgid "International/ITA"
msgstr "国际通用标准/ITA"
-#: netbox/dcim/choices.py:567 netbox/dcim/choices.py:808
+#: netbox/dcim/choices.py:573 netbox/dcim/choices.py:814
msgid "Proprietary"
msgstr "专用规格"
-#: netbox/dcim/choices.py:575 netbox/dcim/choices.py:818
-#: netbox/dcim/choices.py:1211 netbox/dcim/choices.py:1213
-#: netbox/dcim/choices.py:1439 netbox/dcim/choices.py:1441
+#: netbox/dcim/choices.py:581 netbox/dcim/choices.py:824
+#: netbox/dcim/choices.py:1219 netbox/dcim/choices.py:1221
+#: netbox/dcim/choices.py:1447 netbox/dcim/choices.py:1449
#: netbox/netbox/navigation/menu.py:200
msgid "Other"
msgstr "其他"
-#: netbox/dcim/choices.py:781
+#: netbox/dcim/choices.py:787
msgid "ITA/International"
msgstr "ITA/国际通用标准"
-#: netbox/dcim/choices.py:848
+#: netbox/dcim/choices.py:854
msgid "Physical"
msgstr "物理"
-#: netbox/dcim/choices.py:849 netbox/dcim/choices.py:1016
+#: netbox/dcim/choices.py:855 netbox/dcim/choices.py:1023
msgid "Virtual"
msgstr "虚拟"
-#: netbox/dcim/choices.py:850 netbox/dcim/choices.py:1089
+#: netbox/dcim/choices.py:856 netbox/dcim/choices.py:1097
#: netbox/dcim/forms/bulk_edit.py:1515 netbox/dcim/forms/filtersets.py:1330
#: netbox/dcim/forms/model_forms.py:988 netbox/dcim/forms/model_forms.py:1397
#: netbox/netbox/navigation/menu.py:140 netbox/netbox/navigation/menu.py:144
@@ -2727,13 +2739,13 @@ msgstr "虚拟"
msgid "Wireless"
msgstr "无线"
-#: netbox/dcim/choices.py:1014
+#: netbox/dcim/choices.py:1021
msgid "Virtual interfaces"
msgstr "虚拟接口"
-#: netbox/dcim/choices.py:1017 netbox/dcim/forms/bulk_edit.py:1410
+#: netbox/dcim/choices.py:1024 netbox/dcim/forms/bulk_edit.py:1410
#: netbox/dcim/forms/bulk_import.py:840 netbox/dcim/forms/model_forms.py:974
-#: netbox/dcim/tables/devices.py:657 netbox/templates/dcim/interface.html:106
+#: netbox/dcim/tables/devices.py:660 netbox/templates/dcim/interface.html:106
#: netbox/templates/virtualization/vminterface.html:43
#: netbox/virtualization/forms/bulk_edit.py:212
#: netbox/virtualization/forms/bulk_import.py:158
@@ -2741,27 +2753,27 @@ msgstr "虚拟接口"
msgid "Bridge"
msgstr "桥接"
-#: netbox/dcim/choices.py:1018
+#: netbox/dcim/choices.py:1025
msgid "Link Aggregation Group (LAG)"
msgstr "链路聚合组(LAG)"
-#: netbox/dcim/choices.py:1022
+#: netbox/dcim/choices.py:1029
msgid "Ethernet (fixed)"
msgstr "以太网(固定类型)"
-#: netbox/dcim/choices.py:1037
+#: netbox/dcim/choices.py:1044
msgid "Ethernet (modular)"
msgstr "以太网(模块)"
-#: netbox/dcim/choices.py:1073
+#: netbox/dcim/choices.py:1081
msgid "Ethernet (backplane)"
msgstr "以太网(背板)"
-#: netbox/dcim/choices.py:1105
+#: netbox/dcim/choices.py:1113
msgid "Cellular"
msgstr "蜂窝网络"
-#: netbox/dcim/choices.py:1157 netbox/dcim/forms/filtersets.py:383
+#: netbox/dcim/choices.py:1165 netbox/dcim/forms/filtersets.py:383
#: netbox/dcim/forms/filtersets.py:809 netbox/dcim/forms/filtersets.py:963
#: netbox/dcim/forms/filtersets.py:1542
#: netbox/templates/dcim/inventoryitem.html:52
@@ -2769,130 +2781,130 @@ msgstr "蜂窝网络"
msgid "Serial"
msgstr "串口"
-#: netbox/dcim/choices.py:1172
+#: netbox/dcim/choices.py:1180
msgid "Coaxial"
msgstr "同轴电缆接口"
-#: netbox/dcim/choices.py:1192
+#: netbox/dcim/choices.py:1200
msgid "Stacking"
msgstr "堆叠"
-#: netbox/dcim/choices.py:1242
+#: netbox/dcim/choices.py:1250
msgid "Half"
msgstr "半双工"
-#: netbox/dcim/choices.py:1243
+#: netbox/dcim/choices.py:1251
msgid "Full"
msgstr "全双工"
-#: netbox/dcim/choices.py:1244 netbox/netbox/preferences.py:31
+#: netbox/dcim/choices.py:1252 netbox/netbox/preferences.py:31
#: netbox/wireless/choices.py:480
msgid "Auto"
msgstr "自动"
-#: netbox/dcim/choices.py:1255
+#: netbox/dcim/choices.py:1263
msgid "Access"
msgstr "接入"
-#: netbox/dcim/choices.py:1256 netbox/ipam/tables/vlans.py:172
+#: netbox/dcim/choices.py:1264 netbox/ipam/tables/vlans.py:172
#: netbox/ipam/tables/vlans.py:217
#: netbox/templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Trunk口"
-#: netbox/dcim/choices.py:1257
+#: netbox/dcim/choices.py:1265
msgid "Tagged (All)"
msgstr "Trunk口(允许所有VLAN)"
-#: netbox/dcim/choices.py:1286
+#: netbox/dcim/choices.py:1294
msgid "IEEE Standard"
msgstr "IEEE标准"
-#: netbox/dcim/choices.py:1297
+#: netbox/dcim/choices.py:1305
msgid "Passive 24V (2-pair)"
msgstr "24V(2对供电)"
-#: netbox/dcim/choices.py:1298
+#: netbox/dcim/choices.py:1306
msgid "Passive 24V (4-pair)"
msgstr "24V(4对供电)"
-#: netbox/dcim/choices.py:1299
+#: netbox/dcim/choices.py:1307
msgid "Passive 48V (2-pair)"
msgstr "48V(2对供电)"
-#: netbox/dcim/choices.py:1300
+#: netbox/dcim/choices.py:1308
msgid "Passive 48V (4-pair)"
msgstr "48V(4对供电)"
-#: netbox/dcim/choices.py:1370 netbox/dcim/choices.py:1480
+#: netbox/dcim/choices.py:1378 netbox/dcim/choices.py:1488
msgid "Copper"
msgstr "铜缆"
-#: netbox/dcim/choices.py:1393
+#: netbox/dcim/choices.py:1401
msgid "Fiber Optic"
msgstr "光纤"
-#: netbox/dcim/choices.py:1426 netbox/dcim/choices.py:1509
+#: netbox/dcim/choices.py:1434 netbox/dcim/choices.py:1517
msgid "USB"
msgstr "USB"
-#: netbox/dcim/choices.py:1496
+#: netbox/dcim/choices.py:1504
msgid "Fiber"
msgstr "光纤"
-#: netbox/dcim/choices.py:1521 netbox/dcim/forms/filtersets.py:1227
+#: netbox/dcim/choices.py:1529 netbox/dcim/forms/filtersets.py:1227
msgid "Connected"
msgstr "已连接"
-#: netbox/dcim/choices.py:1540 netbox/wireless/choices.py:497
+#: netbox/dcim/choices.py:1548 netbox/wireless/choices.py:497
msgid "Kilometers"
msgstr "公里"
-#: netbox/dcim/choices.py:1541 netbox/templates/dcim/cable_trace.html:65
+#: netbox/dcim/choices.py:1549 netbox/templates/dcim/cable_trace.html:65
#: netbox/wireless/choices.py:498
msgid "Meters"
msgstr "米"
-#: netbox/dcim/choices.py:1542
+#: netbox/dcim/choices.py:1550
msgid "Centimeters"
msgstr "厘米"
-#: netbox/dcim/choices.py:1543 netbox/wireless/choices.py:499
+#: netbox/dcim/choices.py:1551 netbox/wireless/choices.py:499
msgid "Miles"
msgstr "英里"
-#: netbox/dcim/choices.py:1544 netbox/templates/dcim/cable_trace.html:66
+#: netbox/dcim/choices.py:1552 netbox/templates/dcim/cable_trace.html:66
#: netbox/wireless/choices.py:500
msgid "Feet"
msgstr "英尺"
-#: netbox/dcim/choices.py:1560 netbox/templates/dcim/device.html:327
+#: netbox/dcim/choices.py:1568 netbox/templates/dcim/device.html:327
#: netbox/templates/dcim/rack.html:107
msgid "Kilograms"
msgstr "千克"
-#: netbox/dcim/choices.py:1561
+#: netbox/dcim/choices.py:1569
msgid "Grams"
msgstr "克"
-#: netbox/dcim/choices.py:1562 netbox/templates/dcim/device.html:328
+#: netbox/dcim/choices.py:1570 netbox/templates/dcim/device.html:328
#: netbox/templates/dcim/rack.html:108
msgid "Pounds"
msgstr "磅"
-#: netbox/dcim/choices.py:1563
+#: netbox/dcim/choices.py:1571
msgid "Ounces"
msgstr "盎司"
-#: netbox/dcim/choices.py:1610
+#: netbox/dcim/choices.py:1618
msgid "Redundant"
msgstr "冗余"
-#: netbox/dcim/choices.py:1631
+#: netbox/dcim/choices.py:1639
msgid "Single phase"
msgstr "单相电"
-#: netbox/dcim/choices.py:1632
+#: netbox/dcim/choices.py:1640
msgid "Three-phase"
msgstr "三相"
@@ -3144,7 +3156,7 @@ msgstr "是否全尺寸"
#: netbox/dcim/filtersets.py:1103 netbox/dcim/forms/common.py:18
#: netbox/dcim/forms/filtersets.py:818 netbox/dcim/forms/filtersets.py:1385
-#: netbox/dcim/models/device_components.py:519
+#: netbox/dcim/models/device_components.py:518
#: netbox/virtualization/filtersets.py:230
#: netbox/virtualization/filtersets.py:301
#: netbox/virtualization/forms/filtersets.py:172
@@ -3188,7 +3200,7 @@ msgid "Device model"
msgstr "设备型号"
#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
-#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:412
+#: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
msgid "Interface (ID)"
msgstr "接口(ID)"
@@ -3202,8 +3214,8 @@ msgstr "模块托架 (ID)"
#: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1089 netbox/virtualization/filtersets.py:161
-#: netbox/vpn/filtersets.py:390
+#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/vpn/filtersets.py:379
msgid "Device (ID)"
msgstr "设备(ID)"
@@ -3212,8 +3224,8 @@ msgid "Rack (name)"
msgstr "机柜(名称)"
#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1095
-#: netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/vpn/filtersets.py:374
msgid "Device (name)"
msgstr "设备(名称)"
@@ -3263,8 +3275,8 @@ msgstr "指定VID"
#: netbox/dcim/filtersets.py:1613 netbox/dcim/forms/bulk_edit.py:1489
#: netbox/dcim/forms/bulk_import.py:891 netbox/dcim/forms/filtersets.py:1428
#: netbox/dcim/forms/model_forms.py:1378
-#: netbox/dcim/models/device_components.py:712
-#: netbox/dcim/tables/devices.py:623 netbox/ipam/filtersets.py:316
+#: netbox/dcim/models/device_components.py:711
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
#: netbox/ipam/forms/bulk_edit.py:241 netbox/ipam/forms/bulk_edit.py:297
@@ -3300,7 +3312,7 @@ msgid "VRF (RD)"
msgstr "VRF (RD)"
#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
-#: netbox/vpn/filtersets.py:353
+#: netbox/vpn/filtersets.py:342
msgid "L2VPN (ID)"
msgstr "L2VPN (ID)"
@@ -3356,7 +3368,7 @@ msgstr "虚拟设备上下文(ID)"
msgid "Wireless LAN"
msgstr "无线局域网"
-#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:610
+#: netbox/dcim/filtersets.py:1734 netbox/dcim/tables/devices.py:613
msgid "Wireless link"
msgstr "无线连接"
@@ -3384,12 +3396,12 @@ msgstr "主设备(ID)"
msgid "Master (name)"
msgstr "主设备(名称)"
-#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:246
+#: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
msgid "Tenant (ID)"
msgstr "租户(ID)"
#: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
-#: netbox/tenancy/filtersets.py:252
+#: netbox/tenancy/filtersets.py:251
msgid "Tenant (slug)"
msgstr "租户(缩写)"
@@ -3416,7 +3428,7 @@ msgstr "标签"
#: netbox/dcim/forms/model_forms.py:488 netbox/dcim/forms/model_forms.py:546
#: netbox/dcim/forms/object_create.py:197
#: netbox/dcim/forms/object_create.py:353 netbox/dcim/tables/devices.py:165
-#: netbox/dcim/tables/devices.py:704 netbox/dcim/tables/devicetypes.py:247
+#: netbox/dcim/tables/devices.py:707 netbox/dcim/tables/devicetypes.py:246
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131
#: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66
@@ -3463,8 +3475,8 @@ msgstr "时区"
#: netbox/dcim/forms/model_forms.py:436 netbox/dcim/forms/model_forms.py:1075
#: netbox/dcim/forms/model_forms.py:1515
#: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
-#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:937
-#: netbox/dcim/tables/devicetypes.py:81 netbox/dcim/tables/devicetypes.py:309
+#: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
+#: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
#: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
#: netbox/templates/dcim/devicetype.html:14
@@ -3528,7 +3540,7 @@ msgstr "安装深度"
#: netbox/dcim/forms/filtersets.py:488 netbox/dcim/forms/filtersets.py:594
#: netbox/dcim/forms/filtersets.py:613 netbox/dcim/forms/filtersets.py:674
#: netbox/dcim/forms/model_forms.py:221 netbox/dcim/forms/model_forms.py:298
-#: netbox/dcim/tables/devicetypes.py:107 netbox/dcim/tables/modules.py:35
+#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35
#: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:172
#: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288
@@ -3589,8 +3601,8 @@ msgstr "编号"
#: netbox/dcim/forms/model_forms.py:251 netbox/dcim/forms/model_forms.py:1070
#: netbox/dcim/forms/model_forms.py:1510
#: netbox/dcim/forms/object_import.py:181 netbox/dcim/tables/devices.py:169
-#: netbox/dcim/tables/devices.py:806 netbox/dcim/tables/devices.py:934
-#: netbox/dcim/tables/devicetypes.py:305 netbox/dcim/tables/racks.py:129
+#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:937
+#: netbox/dcim/tables/devicetypes.py:304 netbox/dcim/tables/racks.py:129
#: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:260
#: netbox/ipam/forms/bulk_edit.py:310 netbox/ipam/forms/bulk_edit.py:358
#: netbox/ipam/forms/bulk_edit.py:556 netbox/ipam/forms/bulk_import.py:197
@@ -3698,12 +3710,12 @@ msgstr "部件编码(PN)"
msgid "U height"
msgstr "U高度"
-#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:103
+#: netbox/dcim/forms/bulk_edit.py:521 netbox/dcim/tables/devicetypes.py:102
msgid "Exclude from utilization"
msgstr "从利用率中排除"
#: netbox/dcim/forms/bulk_edit.py:550 netbox/dcim/forms/model_forms.py:368
-#: netbox/dcim/tables/devicetypes.py:78 netbox/templates/dcim/device.html:88
+#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88
#: netbox/templates/dcim/devicebay.html:52
#: netbox/templates/dcim/module.html:61
msgid "Device Type"
@@ -3792,10 +3804,10 @@ msgstr "平台"
#: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
#: netbox/dcim/tables/devices.py:285 netbox/dcim/tables/devices.py:371
#: netbox/dcim/tables/devices.py:412 netbox/dcim/tables/devices.py:454
-#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:594
-#: netbox/dcim/tables/devices.py:694 netbox/dcim/tables/devices.py:751
-#: netbox/dcim/tables/devices.py:798 netbox/dcim/tables/devices.py:858
-#: netbox/dcim/tables/devices.py:927 netbox/dcim/tables/devices.py:1054
+#: netbox/dcim/tables/devices.py:505 netbox/dcim/tables/devices.py:597
+#: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
+#: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
+#: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
#: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:481
#: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:319
@@ -3922,8 +3934,8 @@ msgid "Maximum draw"
msgstr "最大功率"
#: netbox/dcim/forms/bulk_edit.py:1039
-#: netbox/dcim/models/device_component_templates.py:283
-#: netbox/dcim/models/device_components.py:357
+#: netbox/dcim/models/device_component_templates.py:282
+#: netbox/dcim/models/device_components.py:356
msgid "Maximum power draw (watts)"
msgstr "最大功率(瓦)"
@@ -3932,8 +3944,8 @@ msgid "Allocated draw"
msgstr "分配功率"
#: netbox/dcim/forms/bulk_edit.py:1045
-#: netbox/dcim/models/device_component_templates.py:290
-#: netbox/dcim/models/device_components.py:364
+#: netbox/dcim/models/device_component_templates.py:289
+#: netbox/dcim/models/device_components.py:363
msgid "Allocated power draw (watts)"
msgstr "分配功率(瓦)"
@@ -3954,16 +3966,16 @@ msgstr "仅限管理"
#: netbox/dcim/forms/bulk_edit.py:1139 netbox/dcim/forms/bulk_edit.py:1446
#: netbox/dcim/forms/bulk_import.py:876 netbox/dcim/forms/filtersets.py:1394
#: netbox/dcim/forms/object_import.py:90
-#: netbox/dcim/models/device_component_templates.py:438
-#: netbox/dcim/models/device_components.py:671
+#: netbox/dcim/models/device_component_templates.py:437
+#: netbox/dcim/models/device_components.py:670
msgid "PoE mode"
msgstr "PoE模式"
#: netbox/dcim/forms/bulk_edit.py:1145 netbox/dcim/forms/bulk_edit.py:1452
#: netbox/dcim/forms/bulk_import.py:882 netbox/dcim/forms/filtersets.py:1399
#: netbox/dcim/forms/object_import.py:95
-#: netbox/dcim/models/device_component_templates.py:444
-#: netbox/dcim/models/device_components.py:677
+#: netbox/dcim/models/device_component_templates.py:443
+#: netbox/dcim/models/device_components.py:676
msgid "PoE type"
msgstr "PoE类型"
@@ -3987,7 +3999,7 @@ msgstr "无线角色"
msgid "Module"
msgstr "模块"
-#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:662
+#: netbox/dcim/forms/bulk_edit.py:1420 netbox/dcim/tables/devices.py:665
#: netbox/templates/dcim/interface.html:110
msgid "LAG"
msgstr "链路聚合"
@@ -3999,7 +4011,7 @@ msgstr "设备虚拟上下文"
#: netbox/dcim/forms/bulk_edit.py:1431 netbox/dcim/forms/bulk_import.py:714
#: netbox/dcim/forms/bulk_import.py:740 netbox/dcim/forms/filtersets.py:1252
#: netbox/dcim/forms/filtersets.py:1277 netbox/dcim/forms/filtersets.py:1358
-#: netbox/dcim/tables/devices.py:607
+#: netbox/dcim/tables/devices.py:610
#: netbox/templates/circuits/inc/circuit_termination_fields.html:67
#: netbox/templates/dcim/consoleport.html:40
#: netbox/templates/dcim/consoleserverport.html:40
@@ -4046,7 +4058,7 @@ msgid "Wireless LAN group"
msgstr "无线局域网组"
#: netbox/dcim/forms/bulk_edit.py:1499 netbox/dcim/forms/model_forms.py:1346
-#: netbox/dcim/tables/devices.py:616 netbox/netbox/navigation/menu.py:146
+#: netbox/dcim/tables/devices.py:619 netbox/netbox/navigation/menu.py:146
#: netbox/templates/dcim/interface.html:280
#: netbox/wireless/tables/wirelesslan.py:24
msgid "Wireless LANs"
@@ -4428,7 +4440,7 @@ msgstr "对应后置端口"
msgid "Physical medium classification"
msgstr "物理端口类型"
-#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:819
+#: netbox/dcim/forms/bulk_import.py:1028 netbox/dcim/tables/devices.py:822
msgid "Installed device"
msgstr "安装设备"
@@ -4517,7 +4529,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "{side_upper} 端接口类型未发现: {device} {name}"
#: netbox/dcim/forms/bulk_import.py:1293 netbox/dcim/forms/model_forms.py:785
-#: netbox/dcim/tables/devices.py:1024 netbox/templates/dcim/device.html:132
+#: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
#: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67
msgid "Master"
@@ -4569,7 +4581,7 @@ msgstr "主 IPv6"
msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64"
msgstr "带有前缀长度的 IPv6 地址,例如 2001:db8:: 1/64"
-#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:528
+#: netbox/dcim/forms/common.py:24 netbox/dcim/models/device_components.py:527
#: netbox/templates/dcim/interface.html:57
#: netbox/templates/virtualization/vminterface.html:55
#: netbox/virtualization/forms/bulk_edit.py:225
@@ -4726,7 +4738,7 @@ msgid "Mgmt only"
msgstr "仅用于管理"
#: netbox/dcim/forms/filtersets.py:1389 netbox/dcim/forms/model_forms.py:1383
-#: netbox/dcim/models/device_components.py:630
+#: netbox/dcim/models/device_components.py:629
#: netbox/templates/dcim/interface.html:129
msgid "WWN"
msgstr "WWN"
@@ -4759,7 +4771,7 @@ msgstr "信道功率(dBm)"
msgid "Cable"
msgstr "电缆"
-#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:946
+#: netbox/dcim/forms/filtersets.py:1550 netbox/dcim/tables/devices.py:949
msgid "Discovered"
msgstr "已发现"
@@ -4905,7 +4917,7 @@ msgid "Front Port"
msgstr "前置接口"
#: netbox/dcim/forms/model_forms.py:1148 netbox/dcim/forms/model_forms.py:1587
-#: netbox/dcim/tables/devices.py:707
+#: netbox/dcim/tables/devices.py:710
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80
@@ -5028,7 +5040,7 @@ msgid ""
"selected number of rear port positions ({rearport_count})."
msgstr "要创建的前置端口数 ({frontport_count}) 必须与所选的后置端口数({rearport_count})匹配。"
-#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1030
+#: netbox/dcim/forms/object_create.py:409 netbox/dcim/tables/devices.py:1033
#: netbox/ipam/tables/fhrp.py:31 netbox/templates/dcim/virtualchassis.html:53
#: netbox/templates/dcim/virtualchassis_edit.html:47
#: netbox/templates/ipam/fhrpgroup.html:38
@@ -5051,7 +5063,7 @@ msgstr "必须为第一个VC成员指定一个位置。"
#: netbox/dcim/models/cables.py:62
#: netbox/dcim/models/device_component_templates.py:55
-#: netbox/dcim/models/device_components.py:63
+#: netbox/dcim/models/device_components.py:62
#: netbox/extras/models/customfields.py:111
msgid "label"
msgstr "标记"
@@ -5149,7 +5161,7 @@ msgid ""
msgstr "当连接到模块类型时,{module} 被认定为模块托架位置的替代。"
#: netbox/dcim/models/device_component_templates.py:58
-#: netbox/dcim/models/device_components.py:66
+#: netbox/dcim/models/device_components.py:65
msgid "Physical label"
msgstr "物理标签"
@@ -5169,607 +5181,607 @@ msgid ""
"module type."
msgstr "组件模板必须与设备类型或模块类型相关联。"
-#: netbox/dcim/models/device_component_templates.py:213
+#: netbox/dcim/models/device_component_templates.py:212
msgid "console port template"
msgstr "console端口模板"
-#: netbox/dcim/models/device_component_templates.py:214
+#: netbox/dcim/models/device_component_templates.py:213
msgid "console port templates"
msgstr "console端口模板"
-#: netbox/dcim/models/device_component_templates.py:247
+#: netbox/dcim/models/device_component_templates.py:246
msgid "console server port template"
msgstr "console服务器端口模板"
-#: netbox/dcim/models/device_component_templates.py:248
+#: netbox/dcim/models/device_component_templates.py:247
msgid "console server port templates"
msgstr "console服务器端口模板"
-#: netbox/dcim/models/device_component_templates.py:279
-#: netbox/dcim/models/device_components.py:353
+#: netbox/dcim/models/device_component_templates.py:278
+#: netbox/dcim/models/device_components.py:352
msgid "maximum draw"
msgstr "最大功率"
-#: netbox/dcim/models/device_component_templates.py:286
-#: netbox/dcim/models/device_components.py:360
+#: netbox/dcim/models/device_component_templates.py:285
+#: netbox/dcim/models/device_components.py:359
msgid "allocated draw"
msgstr "分配功率"
-#: netbox/dcim/models/device_component_templates.py:296
+#: netbox/dcim/models/device_component_templates.py:295
msgid "power port template"
msgstr "电源端口模版"
-#: netbox/dcim/models/device_component_templates.py:297
+#: netbox/dcim/models/device_component_templates.py:296
msgid "power port templates"
msgstr "电源端口模版"
-#: netbox/dcim/models/device_component_templates.py:316
-#: netbox/dcim/models/device_components.py:383
+#: netbox/dcim/models/device_component_templates.py:315
+#: netbox/dcim/models/device_components.py:382
#, python-brace-format
msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)."
msgstr "分配功率不能超过最大功率({maximum_draw}瓦)"
-#: netbox/dcim/models/device_component_templates.py:348
-#: netbox/dcim/models/device_components.py:478
+#: netbox/dcim/models/device_component_templates.py:347
+#: netbox/dcim/models/device_components.py:477
msgid "feed leg"
msgstr "馈电线路"
-#: netbox/dcim/models/device_component_templates.py:352
-#: netbox/dcim/models/device_components.py:482
+#: netbox/dcim/models/device_component_templates.py:351
+#: netbox/dcim/models/device_components.py:481
msgid "Phase (for three-phase feeds)"
msgstr "相位(用于三相电)"
-#: netbox/dcim/models/device_component_templates.py:358
+#: netbox/dcim/models/device_component_templates.py:357
msgid "power outlet template"
msgstr "电源插座模版"
-#: netbox/dcim/models/device_component_templates.py:359
+#: netbox/dcim/models/device_component_templates.py:358
msgid "power outlet templates"
msgstr "电源插座模版"
-#: netbox/dcim/models/device_component_templates.py:368
+#: netbox/dcim/models/device_component_templates.py:367
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device type"
msgstr "父电源端口 ({power_port}) 必须属于相同的设备类型"
-#: netbox/dcim/models/device_component_templates.py:372
+#: netbox/dcim/models/device_component_templates.py:371
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same module type"
msgstr "父电源端口 ({power_port}) 必须属于相同的设备类型"
-#: netbox/dcim/models/device_component_templates.py:424
-#: netbox/dcim/models/device_components.py:612
+#: netbox/dcim/models/device_component_templates.py:423
+#: netbox/dcim/models/device_components.py:611
msgid "management only"
msgstr "仅限管理"
-#: netbox/dcim/models/device_component_templates.py:432
-#: netbox/dcim/models/device_components.py:551
+#: netbox/dcim/models/device_component_templates.py:431
+#: netbox/dcim/models/device_components.py:550
msgid "bridge interface"
msgstr "桥接接口"
-#: netbox/dcim/models/device_component_templates.py:450
-#: netbox/dcim/models/device_components.py:637
+#: netbox/dcim/models/device_component_templates.py:449
+#: netbox/dcim/models/device_components.py:636
msgid "wireless role"
msgstr "无线角色"
-#: netbox/dcim/models/device_component_templates.py:456
+#: netbox/dcim/models/device_component_templates.py:455
msgid "interface template"
msgstr "接口模版"
-#: netbox/dcim/models/device_component_templates.py:457
+#: netbox/dcim/models/device_component_templates.py:456
msgid "interface templates"
msgstr "接口模版"
-#: netbox/dcim/models/device_component_templates.py:464
-#: netbox/dcim/models/device_components.py:805
+#: netbox/dcim/models/device_component_templates.py:463
+#: netbox/dcim/models/device_components.py:804
#: netbox/virtualization/models/virtualmachines.py:405
msgid "An interface cannot be bridged to itself."
msgstr "接口不能桥接到自己"
-#: netbox/dcim/models/device_component_templates.py:467
+#: netbox/dcim/models/device_component_templates.py:466
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same device type"
msgstr "桥接接口({bridge}) 必须属于相同的设备类型"
-#: netbox/dcim/models/device_component_templates.py:471
+#: netbox/dcim/models/device_component_templates.py:470
#, python-brace-format
msgid "Bridge interface ({bridge}) must belong to the same module type"
msgstr "桥接接口({bridge}) 必须属于相同的模块类型"
-#: netbox/dcim/models/device_component_templates.py:527
-#: netbox/dcim/models/device_components.py:985
+#: netbox/dcim/models/device_component_templates.py:526
+#: netbox/dcim/models/device_components.py:984
msgid "rear port position"
msgstr "后置接口位置"
-#: netbox/dcim/models/device_component_templates.py:552
+#: netbox/dcim/models/device_component_templates.py:551
msgid "front port template"
msgstr "前置接口模板"
-#: netbox/dcim/models/device_component_templates.py:553
+#: netbox/dcim/models/device_component_templates.py:552
msgid "front port templates"
msgstr "前置接口模板"
-#: netbox/dcim/models/device_component_templates.py:563
+#: netbox/dcim/models/device_component_templates.py:562
#, python-brace-format
msgid "Rear port ({name}) must belong to the same device type"
msgstr "后置接口({name})必须属于相同的设备类型"
-#: netbox/dcim/models/device_component_templates.py:569
+#: netbox/dcim/models/device_component_templates.py:568
#, python-brace-format
msgid ""
"Invalid rear port position ({position}); rear port {name} has only {count} "
"positions"
msgstr "无效的后端口位置 ({position});后端口{name}只有{count}个"
-#: netbox/dcim/models/device_component_templates.py:622
-#: netbox/dcim/models/device_components.py:1054
+#: netbox/dcim/models/device_component_templates.py:621
+#: netbox/dcim/models/device_components.py:1053
msgid "positions"
msgstr "位置"
-#: netbox/dcim/models/device_component_templates.py:633
+#: netbox/dcim/models/device_component_templates.py:632
msgid "rear port template"
msgstr "后置端口模版"
-#: netbox/dcim/models/device_component_templates.py:634
+#: netbox/dcim/models/device_component_templates.py:633
msgid "rear port templates"
msgstr "后置端口模版"
-#: netbox/dcim/models/device_component_templates.py:663
-#: netbox/dcim/models/device_components.py:1104
+#: netbox/dcim/models/device_component_templates.py:662
+#: netbox/dcim/models/device_components.py:1103
msgid "position"
msgstr "位置"
-#: netbox/dcim/models/device_component_templates.py:666
-#: netbox/dcim/models/device_components.py:1107
+#: netbox/dcim/models/device_component_templates.py:665
+#: netbox/dcim/models/device_components.py:1106
msgid "Identifier to reference when renaming installed components"
msgstr "重命名已安装组件时要引用的标识符"
-#: netbox/dcim/models/device_component_templates.py:672
+#: netbox/dcim/models/device_component_templates.py:671
msgid "module bay template"
msgstr "模块托架模版"
-#: netbox/dcim/models/device_component_templates.py:673
+#: netbox/dcim/models/device_component_templates.py:672
msgid "module bay templates"
msgstr "模块托架模版"
-#: netbox/dcim/models/device_component_templates.py:700
+#: netbox/dcim/models/device_component_templates.py:699
msgid "device bay template"
msgstr "设备托架模版"
-#: netbox/dcim/models/device_component_templates.py:701
+#: netbox/dcim/models/device_component_templates.py:700
msgid "device bay templates"
msgstr "设备托架模版"
-#: netbox/dcim/models/device_component_templates.py:714
+#: netbox/dcim/models/device_component_templates.py:713
#, python-brace-format
msgid ""
"Subdevice role of device type ({device_type}) must be set to \"parent\" to "
"allow device bays."
msgstr "设备类型({device_type})的子设备角色必须设置为“父设备”,才能允许设备托架。"
-#: netbox/dcim/models/device_component_templates.py:769
-#: netbox/dcim/models/device_components.py:1263
+#: netbox/dcim/models/device_component_templates.py:768
+#: netbox/dcim/models/device_components.py:1262
msgid "part ID"
msgstr "零件ID"
-#: netbox/dcim/models/device_component_templates.py:771
-#: netbox/dcim/models/device_components.py:1265
+#: netbox/dcim/models/device_component_templates.py:770
+#: netbox/dcim/models/device_components.py:1264
msgid "Manufacturer-assigned part identifier"
msgstr "制造商指定的零件标识符"
-#: netbox/dcim/models/device_component_templates.py:788
+#: netbox/dcim/models/device_component_templates.py:787
msgid "inventory item template"
msgstr "库存项模版"
-#: netbox/dcim/models/device_component_templates.py:789
+#: netbox/dcim/models/device_component_templates.py:788
msgid "inventory item templates"
msgstr "库存项模版"
-#: netbox/dcim/models/device_components.py:106
+#: netbox/dcim/models/device_components.py:105
msgid "Components cannot be moved to a different device."
msgstr "组件模板无法移动到其他设备类型。"
-#: netbox/dcim/models/device_components.py:145
+#: netbox/dcim/models/device_components.py:144
msgid "cable end"
msgstr "线缆终点"
-#: netbox/dcim/models/device_components.py:151
+#: netbox/dcim/models/device_components.py:150
msgid "mark connected"
msgstr "标记已连接"
-#: netbox/dcim/models/device_components.py:153
+#: netbox/dcim/models/device_components.py:152
msgid "Treat as if a cable is connected"
msgstr "视为电缆已连接"
-#: netbox/dcim/models/device_components.py:171
+#: netbox/dcim/models/device_components.py:170
msgid "Must specify cable end (A or B) when attaching a cable."
msgstr "连接电缆时必须指定电缆末端(A或B)。"
-#: netbox/dcim/models/device_components.py:175
+#: netbox/dcim/models/device_components.py:174
msgid "Cable end must not be set without a cable."
msgstr "不得在没有线缆的情况下设置线缆末端。"
-#: netbox/dcim/models/device_components.py:179
+#: netbox/dcim/models/device_components.py:178
msgid "Cannot mark as connected with a cable attached."
msgstr "无法标记为已连接线缆。"
-#: netbox/dcim/models/device_components.py:203
+#: netbox/dcim/models/device_components.py:202
#, python-brace-format
msgid "{class_name} models must declare a parent_object property"
msgstr "{class_name}模块必须声明上架类型"
-#: netbox/dcim/models/device_components.py:288
-#: netbox/dcim/models/device_components.py:317
-#: netbox/dcim/models/device_components.py:350
-#: netbox/dcim/models/device_components.py:468
+#: netbox/dcim/models/device_components.py:287
+#: netbox/dcim/models/device_components.py:316
+#: netbox/dcim/models/device_components.py:349
+#: netbox/dcim/models/device_components.py:467
msgid "Physical port type"
msgstr "物理端口类型"
-#: netbox/dcim/models/device_components.py:291
-#: netbox/dcim/models/device_components.py:320
+#: netbox/dcim/models/device_components.py:290
+#: netbox/dcim/models/device_components.py:319
msgid "speed"
msgstr "速率"
-#: netbox/dcim/models/device_components.py:295
-#: netbox/dcim/models/device_components.py:324
+#: netbox/dcim/models/device_components.py:294
+#: netbox/dcim/models/device_components.py:323
msgid "Port speed in bits per second"
msgstr "端口速度(单位bps)"
-#: netbox/dcim/models/device_components.py:301
+#: netbox/dcim/models/device_components.py:300
msgid "console port"
msgstr "console端口"
-#: netbox/dcim/models/device_components.py:302
+#: netbox/dcim/models/device_components.py:301
msgid "console ports"
msgstr "console端口"
-#: netbox/dcim/models/device_components.py:330
+#: netbox/dcim/models/device_components.py:329
msgid "console server port"
msgstr "console服务器端口"
-#: netbox/dcim/models/device_components.py:331
+#: netbox/dcim/models/device_components.py:330
msgid "console server ports"
msgstr "console服务器端口"
-#: netbox/dcim/models/device_components.py:370
+#: netbox/dcim/models/device_components.py:369
msgid "power port"
msgstr "电源接口"
-#: netbox/dcim/models/device_components.py:371
+#: netbox/dcim/models/device_components.py:370
msgid "power ports"
msgstr "电源接口"
-#: netbox/dcim/models/device_components.py:488
+#: netbox/dcim/models/device_components.py:487
msgid "power outlet"
msgstr "电源插座"
-#: netbox/dcim/models/device_components.py:489
+#: netbox/dcim/models/device_components.py:488
msgid "power outlets"
msgstr "电源插座"
-#: netbox/dcim/models/device_components.py:500
+#: netbox/dcim/models/device_components.py:499
#, python-brace-format
msgid "Parent power port ({power_port}) must belong to the same device"
msgstr "父电源端口({power_port})必须属于同一设备"
-#: netbox/dcim/models/device_components.py:531 netbox/vpn/models/crypto.py:81
+#: netbox/dcim/models/device_components.py:530 netbox/vpn/models/crypto.py:81
#: netbox/vpn/models/crypto.py:226
msgid "mode"
msgstr "模式"
-#: netbox/dcim/models/device_components.py:535
+#: netbox/dcim/models/device_components.py:534
msgid "IEEE 802.1Q tagging strategy"
msgstr "IEEE 802.1Q VLAN 标记策略"
-#: netbox/dcim/models/device_components.py:543
+#: netbox/dcim/models/device_components.py:542
msgid "parent interface"
msgstr "父接口"
-#: netbox/dcim/models/device_components.py:603
+#: netbox/dcim/models/device_components.py:602
msgid "parent LAG"
msgstr "父聚合组"
-#: netbox/dcim/models/device_components.py:613
+#: netbox/dcim/models/device_components.py:612
msgid "This interface is used only for out-of-band management"
msgstr "该接口仅用于带外管理"
-#: netbox/dcim/models/device_components.py:618
+#: netbox/dcim/models/device_components.py:617
msgid "speed (Kbps)"
msgstr "速率(Kbps)"
-#: netbox/dcim/models/device_components.py:621
+#: netbox/dcim/models/device_components.py:620
msgid "duplex"
msgstr "双工"
-#: netbox/dcim/models/device_components.py:631
+#: netbox/dcim/models/device_components.py:630
msgid "64-bit World Wide Name"
msgstr "64位全球唯一标识符"
-#: netbox/dcim/models/device_components.py:643
+#: netbox/dcim/models/device_components.py:642
msgid "wireless channel"
msgstr "无线信道"
-#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:649
msgid "channel frequency (MHz)"
msgstr "信道频率(MHz)"
-#: netbox/dcim/models/device_components.py:651
-#: netbox/dcim/models/device_components.py:659
+#: netbox/dcim/models/device_components.py:650
+#: netbox/dcim/models/device_components.py:658
msgid "Populated by selected channel (if set)"
msgstr "由所选通道填充(如有)"
-#: netbox/dcim/models/device_components.py:665
+#: netbox/dcim/models/device_components.py:664
msgid "transmit power (dBm)"
msgstr "发射功率(dBm)"
-#: netbox/dcim/models/device_components.py:690 netbox/wireless/models.py:117
+#: netbox/dcim/models/device_components.py:689 netbox/wireless/models.py:117
msgid "wireless LANs"
msgstr "无线局域网"
-#: netbox/dcim/models/device_components.py:698
+#: netbox/dcim/models/device_components.py:697
#: netbox/virtualization/models/virtualmachines.py:335
msgid "untagged VLAN"
msgstr "未标记VLAN"
-#: netbox/dcim/models/device_components.py:704
+#: netbox/dcim/models/device_components.py:703
#: netbox/virtualization/models/virtualmachines.py:341
msgid "tagged VLANs"
msgstr "已标记 VLANs"
-#: netbox/dcim/models/device_components.py:746
+#: netbox/dcim/models/device_components.py:745
#: netbox/virtualization/models/virtualmachines.py:377
msgid "interface"
msgstr "接口"
-#: netbox/dcim/models/device_components.py:747
+#: netbox/dcim/models/device_components.py:746
#: netbox/virtualization/models/virtualmachines.py:378
msgid "interfaces"
msgstr "接口"
-#: netbox/dcim/models/device_components.py:758
+#: netbox/dcim/models/device_components.py:757
#, python-brace-format
msgid "{display_type} interfaces cannot have a cable attached."
msgstr "{display_type}接口不能连接线缆。"
-#: netbox/dcim/models/device_components.py:766
+#: netbox/dcim/models/device_components.py:765
#, python-brace-format
msgid "{display_type} interfaces cannot be marked as connected."
msgstr "{display_type}接口不能标记为已连接。"
-#: netbox/dcim/models/device_components.py:775
+#: netbox/dcim/models/device_components.py:774
#: netbox/virtualization/models/virtualmachines.py:390
msgid "An interface cannot be its own parent."
msgstr "接口不能是自己的父级。"
-#: netbox/dcim/models/device_components.py:779
+#: netbox/dcim/models/device_components.py:778
msgid "Only virtual interfaces may be assigned to a parent interface."
msgstr "只能将虚拟接口分配给父接口。"
-#: netbox/dcim/models/device_components.py:786
+#: netbox/dcim/models/device_components.py:785
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to a different device "
"({device})"
msgstr "所选父接口({interface}) 属于另一个设备 ({device})"
-#: netbox/dcim/models/device_components.py:792
+#: netbox/dcim/models/device_components.py:791
#, python-brace-format
msgid ""
"The selected parent interface ({interface}) belongs to {device}, which is "
"not part of virtual chassis {virtual_chassis}."
msgstr "所选的父接口({interface})属于 {device},该设备不是虚拟机箱{virtual_chassis}的一部分。"
-#: netbox/dcim/models/device_components.py:812
+#: netbox/dcim/models/device_components.py:811
#, python-brace-format
msgid ""
"The selected bridge interface ({bridge}) belongs to a different device "
"({device})."
msgstr "所选桥接接口 ({bridge})属于另一个设备({device})。"
-#: netbox/dcim/models/device_components.py:818
+#: netbox/dcim/models/device_components.py:817
#, python-brace-format
msgid ""
"The selected bridge interface ({interface}) belongs to {device}, which is "
"not part of virtual chassis {virtual_chassis}."
msgstr "所选的桥接接口({interface})属于 {device},该设备不是虚拟机箱{virtual_chassis}的一部分。"
-#: netbox/dcim/models/device_components.py:829
+#: netbox/dcim/models/device_components.py:828
msgid "Virtual interfaces cannot have a parent LAG interface."
msgstr "虚拟接口不能具有父聚合接口。"
-#: netbox/dcim/models/device_components.py:833
+#: netbox/dcim/models/device_components.py:832
msgid "A LAG interface cannot be its own parent."
msgstr "聚合接口不能是自己的父级。"
-#: netbox/dcim/models/device_components.py:840
+#: netbox/dcim/models/device_components.py:839
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to a different device ({device})."
msgstr "选择的LAG接口 ({lag}) 属于不同的设备 ({device})."
-#: netbox/dcim/models/device_components.py:846
+#: netbox/dcim/models/device_components.py:845
#, python-brace-format
msgid ""
"The selected LAG interface ({lag}) belongs to {device}, which is not part of"
" virtual chassis {virtual_chassis}."
msgstr "选择的LAG接口 ({lag}) 属于 {device}, 它不是虚拟机箱的一部分 {virtual_chassis}."
-#: netbox/dcim/models/device_components.py:857
+#: netbox/dcim/models/device_components.py:856
msgid "Virtual interfaces cannot have a PoE mode."
msgstr "虚拟接口不能具有PoE模式。"
-#: netbox/dcim/models/device_components.py:861
+#: netbox/dcim/models/device_components.py:860
msgid "Virtual interfaces cannot have a PoE type."
msgstr "虚拟接口不能是PoE类型。"
-#: netbox/dcim/models/device_components.py:867
+#: netbox/dcim/models/device_components.py:866
msgid "Must specify PoE mode when designating a PoE type."
msgstr "指定PoE类型时必须指定PoE模式。"
-#: netbox/dcim/models/device_components.py:874
+#: netbox/dcim/models/device_components.py:873
msgid "Wireless role may be set only on wireless interfaces."
msgstr "只能在无线接口上设置无线角色。"
-#: netbox/dcim/models/device_components.py:876
+#: netbox/dcim/models/device_components.py:875
msgid "Channel may be set only on wireless interfaces."
msgstr "只能在无线接口上设置信道。"
-#: netbox/dcim/models/device_components.py:882
+#: netbox/dcim/models/device_components.py:881
msgid "Channel frequency may be set only on wireless interfaces."
msgstr "信道频率仅在无线接口上设置。"
-#: netbox/dcim/models/device_components.py:886
+#: netbox/dcim/models/device_components.py:885
msgid "Cannot specify custom frequency with channel selected."
msgstr "无法在选定频道的情况下指定自定义频率。"
-#: netbox/dcim/models/device_components.py:892
+#: netbox/dcim/models/device_components.py:891
msgid "Channel width may be set only on wireless interfaces."
msgstr "只能在无线接口上设置频宽。"
-#: netbox/dcim/models/device_components.py:894
+#: netbox/dcim/models/device_components.py:893
msgid "Cannot specify custom width with channel selected."
msgstr "无法在选定通道的情况下指定自定义频宽。"
-#: netbox/dcim/models/device_components.py:902
+#: netbox/dcim/models/device_components.py:901
#, python-brace-format
msgid ""
"The untagged VLAN ({untagged_vlan}) must belong to the same site as the "
"interface's parent device, or it must be global."
msgstr "不打标记的VLAN({untagged_vlan})必须与接口所属设备/虚拟机属于同一站点,或者是全局VLAN"
-#: netbox/dcim/models/device_components.py:991
+#: netbox/dcim/models/device_components.py:990
msgid "Mapped position on corresponding rear port"
msgstr "对应后置端口上的映射位置"
-#: netbox/dcim/models/device_components.py:1007
+#: netbox/dcim/models/device_components.py:1006
msgid "front port"
msgstr "前置端口"
-#: netbox/dcim/models/device_components.py:1008
+#: netbox/dcim/models/device_components.py:1007
msgid "front ports"
msgstr "前置端口"
-#: netbox/dcim/models/device_components.py:1022
+#: netbox/dcim/models/device_components.py:1021
#, python-brace-format
msgid "Rear port ({rear_port}) must belong to the same device"
msgstr "后置端口({rear_port})必须属于同一设备"
-#: netbox/dcim/models/device_components.py:1030
+#: netbox/dcim/models/device_components.py:1029
#, python-brace-format
msgid ""
"Invalid rear port position ({rear_port_position}): Rear port {name} has only"
" {positions} positions."
msgstr "无效的后端口位置({rear_port_position});后端口{name}只有 {positions}个"
-#: netbox/dcim/models/device_components.py:1060
+#: netbox/dcim/models/device_components.py:1059
msgid "Number of front ports which may be mapped"
msgstr "可以映射的前置端口数"
-#: netbox/dcim/models/device_components.py:1065
+#: netbox/dcim/models/device_components.py:1064
msgid "rear port"
msgstr "后置端口"
-#: netbox/dcim/models/device_components.py:1066
+#: netbox/dcim/models/device_components.py:1065
msgid "rear ports"
msgstr "后置端口"
-#: netbox/dcim/models/device_components.py:1080
+#: netbox/dcim/models/device_components.py:1079
#, python-brace-format
msgid ""
"The number of positions cannot be less than the number of mapped front ports"
" ({frontport_count})"
msgstr "位置数不能小于映射的前置端口数({frontport_count})"
-#: netbox/dcim/models/device_components.py:1121
+#: netbox/dcim/models/device_components.py:1120
msgid "module bay"
msgstr "设备板卡插槽"
-#: netbox/dcim/models/device_components.py:1122
+#: netbox/dcim/models/device_components.py:1121
msgid "module bays"
msgstr "设备板卡插槽"
-#: netbox/dcim/models/device_components.py:1139
-#: netbox/dcim/models/devices.py:1217
+#: netbox/dcim/models/device_components.py:1138
+#: netbox/dcim/models/devices.py:1224
msgid "A module bay cannot belong to a module installed within it."
msgstr "模块托架不能属于安装在其中的模块。"
-#: netbox/dcim/models/device_components.py:1165
+#: netbox/dcim/models/device_components.py:1164
msgid "device bay"
msgstr "设备托架"
-#: netbox/dcim/models/device_components.py:1166
+#: netbox/dcim/models/device_components.py:1165
msgid "device bays"
msgstr "设备托架"
-#: netbox/dcim/models/device_components.py:1176
+#: netbox/dcim/models/device_components.py:1175
#, python-brace-format
msgid "This type of device ({device_type}) does not support device bays."
msgstr "此类型的设备 ({device_type}) 不支持设备托架。"
-#: netbox/dcim/models/device_components.py:1182
+#: netbox/dcim/models/device_components.py:1181
msgid "Cannot install a device into itself."
msgstr "无法将设备安装到自身中。"
-#: netbox/dcim/models/device_components.py:1190
+#: netbox/dcim/models/device_components.py:1189
#, python-brace-format
msgid ""
"Cannot install the specified device; device is already installed in {bay}."
msgstr "无法安装指定的设备;设备已安装在{bay}中。"
-#: netbox/dcim/models/device_components.py:1211
+#: netbox/dcim/models/device_components.py:1210
msgid "inventory item role"
msgstr "库存物品分类"
-#: netbox/dcim/models/device_components.py:1212
+#: netbox/dcim/models/device_components.py:1211
msgid "inventory item roles"
msgstr "库存物品分类"
-#: netbox/dcim/models/device_components.py:1269
-#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1174
+#: netbox/dcim/models/device_components.py:1268
+#: netbox/dcim/models/devices.py:607 netbox/dcim/models/devices.py:1181
#: netbox/dcim/models/racks.py:313
#: netbox/virtualization/models/virtualmachines.py:131
msgid "serial number"
msgstr "序列号"
-#: netbox/dcim/models/device_components.py:1277
-#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1181
+#: netbox/dcim/models/device_components.py:1276
+#: netbox/dcim/models/devices.py:615 netbox/dcim/models/devices.py:1188
#: netbox/dcim/models/racks.py:320
msgid "asset tag"
msgstr "资产标签"
-#: netbox/dcim/models/device_components.py:1278
+#: netbox/dcim/models/device_components.py:1277
msgid "A unique tag used to identify this item"
msgstr "用于识别该项目的唯一标识"
-#: netbox/dcim/models/device_components.py:1281
+#: netbox/dcim/models/device_components.py:1280
msgid "discovered"
msgstr "已发现"
-#: netbox/dcim/models/device_components.py:1283
+#: netbox/dcim/models/device_components.py:1282
msgid "This item was automatically discovered"
msgstr "此项目是自动发现的"
-#: netbox/dcim/models/device_components.py:1301
+#: netbox/dcim/models/device_components.py:1300
msgid "inventory item"
msgstr "库存项"
-#: netbox/dcim/models/device_components.py:1302
+#: netbox/dcim/models/device_components.py:1301
msgid "inventory items"
msgstr "库存项"
-#: netbox/dcim/models/device_components.py:1313
+#: netbox/dcim/models/device_components.py:1312
msgid "Cannot assign self as parent."
msgstr "无法将自身分配为父级。"
-#: netbox/dcim/models/device_components.py:1321
+#: netbox/dcim/models/device_components.py:1320
msgid "Parent inventory item does not belong to the same device."
msgstr "父库存项不能属于同一设备。"
-#: netbox/dcim/models/device_components.py:1327
+#: netbox/dcim/models/device_components.py:1326
msgid "Cannot move an inventory item with dependent children"
msgstr "无法移动具有子项的库存项目"
-#: netbox/dcim/models/device_components.py:1335
+#: netbox/dcim/models/device_components.py:1334
msgid "Cannot assign inventory item to component on another device"
msgstr "无法将库存项分配给其他设备上的组件"
@@ -5909,7 +5921,7 @@ msgstr "该设备的功能"
msgid "Chassis serial number, assigned by the manufacturer"
msgstr "制造商分配的机箱序列号"
-#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1182
+#: netbox/dcim/models/devices.py:616 netbox/dcim/models/devices.py:1189
msgid "A unique tag used to identify this device"
msgstr "用于识别该设备的唯一标签"
@@ -5921,12 +5933,12 @@ msgstr "机柜位置(U)"
msgid "rack face"
msgstr "机柜安装方向"
-#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1408
+#: netbox/dcim/models/devices.py:670 netbox/dcim/models/devices.py:1415
#: netbox/virtualization/models/virtualmachines.py:100
msgid "primary IPv4"
msgstr "首选 IPv4"
-#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1416
+#: netbox/dcim/models/devices.py:678 netbox/dcim/models/devices.py:1423
#: netbox/virtualization/models/virtualmachines.py:108
msgid "primary IPv6"
msgstr "首选 IPv6"
@@ -6064,70 +6076,77 @@ msgstr "分配的群集属于其他站点({site})"
msgid "A device assigned to a virtual chassis must have its position defined."
msgstr "分配给集群的设备必须定义其位置。"
-#: netbox/dcim/models/devices.py:1189
+#: netbox/dcim/models/devices.py:988
+#, python-brace-format
+msgid ""
+"Device cannot be removed from virtual chassis {virtual_chassis} because it "
+"is currently designated as its master."
+msgstr "无法从虚拟机箱中移除设备 {virtual_chassis} 因为它目前被指定为主节点。"
+
+#: netbox/dcim/models/devices.py:1196
msgid "module"
msgstr "模块"
-#: netbox/dcim/models/devices.py:1190
+#: netbox/dcim/models/devices.py:1197
msgid "modules"
msgstr "模块"
-#: netbox/dcim/models/devices.py:1206
+#: netbox/dcim/models/devices.py:1213
#, python-brace-format
msgid ""
"Module must be installed within a module bay belonging to the assigned "
"device ({device})."
msgstr "模块必须安装在属于指定设备({device})的模块托架内。"
-#: netbox/dcim/models/devices.py:1327
+#: netbox/dcim/models/devices.py:1334
msgid "domain"
msgstr "域"
-#: netbox/dcim/models/devices.py:1340 netbox/dcim/models/devices.py:1341
+#: netbox/dcim/models/devices.py:1347 netbox/dcim/models/devices.py:1348
msgid "virtual chassis"
msgstr "堆叠"
-#: netbox/dcim/models/devices.py:1356
+#: netbox/dcim/models/devices.py:1363
#, python-brace-format
msgid ""
"The selected master ({master}) is not assigned to this virtual chassis."
msgstr "所选主设备({master})未分配给此堆叠。"
-#: netbox/dcim/models/devices.py:1372
+#: netbox/dcim/models/devices.py:1379
#, python-brace-format
msgid ""
"Unable to delete virtual chassis {self}. There are member interfaces which "
"form a cross-chassis LAG interfaces."
msgstr "无法删除堆叠 {self}。有成员接口属于跨机箱聚合。"
-#: netbox/dcim/models/devices.py:1397 netbox/vpn/models/l2vpn.py:37
+#: netbox/dcim/models/devices.py:1404 netbox/vpn/models/l2vpn.py:37
msgid "identifier"
msgstr "标识符"
-#: netbox/dcim/models/devices.py:1398
+#: netbox/dcim/models/devices.py:1405
msgid "Numeric identifier unique to the parent device"
msgstr "父设备唯一的标识符"
-#: netbox/dcim/models/devices.py:1426 netbox/extras/models/customfields.py:225
+#: netbox/dcim/models/devices.py:1433 netbox/extras/models/customfields.py:225
#: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694
#: netbox/netbox/models/__init__.py:115
msgid "comments"
msgstr "评论"
-#: netbox/dcim/models/devices.py:1442
+#: netbox/dcim/models/devices.py:1449
msgid "virtual device context"
msgstr "设备虚拟实例"
-#: netbox/dcim/models/devices.py:1443
+#: netbox/dcim/models/devices.py:1450
msgid "virtual device contexts"
msgstr "设备虚拟实例"
-#: netbox/dcim/models/devices.py:1475
+#: netbox/dcim/models/devices.py:1482
#, python-brace-format
msgid "{ip} is not an IPv{family} address."
msgstr "{ip} 不是有效的 IPv{family} 地址"
-#: netbox/dcim/models/devices.py:1481
+#: netbox/dcim/models/devices.py:1488
msgid "Primary IP address must belong to an interface on the assigned device."
msgstr "首选 IP 地址必须属于指定设备上的接口。"
@@ -6543,7 +6562,7 @@ msgstr "配置模版"
msgid "Site Group"
msgstr "站点组"
-#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1065
+#: netbox/dcim/tables/devices.py:187 netbox/dcim/tables/devices.py:1068
#: netbox/ipam/forms/bulk_import.py:503 netbox/ipam/forms/model_forms.py:306
#: netbox/ipam/forms/model_forms.py:315 netbox/ipam/tables/ip.py:356
#: netbox/ipam/tables/ip.py:423 netbox/ipam/tables/ip.py:446
@@ -6552,12 +6571,12 @@ msgstr "站点组"
msgid "IP Address"
msgstr "IP地址"
-#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1069
+#: netbox/dcim/tables/devices.py:191 netbox/dcim/tables/devices.py:1072
#: netbox/virtualization/tables/virtualmachines.py:86
msgid "IPv4 Address"
msgstr "IPv4 地址"
-#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1073
+#: netbox/dcim/tables/devices.py:195 netbox/dcim/tables/devices.py:1076
#: netbox/virtualization/tables/virtualmachines.py:90
msgid "IPv6 Address"
msgstr "IPv6 地址"
@@ -6595,8 +6614,8 @@ msgstr "电源接口"
msgid "Power outlets"
msgstr "电源插座"
-#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1078
-#: netbox/dcim/tables/devicetypes.py:129 netbox/dcim/views.py:1042
+#: netbox/dcim/tables/devices.py:246 netbox/dcim/tables/devices.py:1081
+#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1042
#: netbox/dcim/views.py:1281 netbox/dcim/views.py:1977
#: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:250
#: netbox/templates/dcim/device/base.html:37
@@ -6634,8 +6653,8 @@ msgstr "库存项"
msgid "Module Bay"
msgstr "设备板卡插槽"
-#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:48
-#: netbox/dcim/tables/devicetypes.py:144 netbox/dcim/views.py:1117
+#: netbox/dcim/tables/devices.py:318 netbox/dcim/tables/devicetypes.py:47
+#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1117
#: netbox/dcim/views.py:2075 netbox/netbox/navigation/menu.py:103
#: netbox/templates/dcim/device/base.html:52
#: netbox/templates/dcim/device_list.html:71
@@ -6693,75 +6712,75 @@ msgstr "网关冗余协议组"
msgid "Tunnel"
msgstr "隧道"
-#: netbox/dcim/tables/devices.py:601 netbox/dcim/tables/devicetypes.py:228
+#: netbox/dcim/tables/devices.py:604 netbox/dcim/tables/devicetypes.py:227
#: netbox/templates/dcim/interface.html:65
msgid "Management Only"
msgstr "仅限管理"
-#: netbox/dcim/tables/devices.py:620
+#: netbox/dcim/tables/devices.py:623
msgid "VDCs"
msgstr "VDCs"
-#: netbox/dcim/tables/devices.py:870 netbox/templates/dcim/modulebay.html:53
+#: netbox/dcim/tables/devices.py:873 netbox/templates/dcim/modulebay.html:53
msgid "Installed Module"
msgstr "已安装的模块"
-#: netbox/dcim/tables/devices.py:873
+#: netbox/dcim/tables/devices.py:876
msgid "Module Serial"
msgstr "模块状态"
-#: netbox/dcim/tables/devices.py:877
+#: netbox/dcim/tables/devices.py:880
msgid "Module Asset Tag"
msgstr "模块资产标签"
-#: netbox/dcim/tables/devices.py:886
+#: netbox/dcim/tables/devices.py:889
msgid "Module Status"
msgstr "模块状态"
-#: netbox/dcim/tables/devices.py:941 netbox/dcim/tables/devicetypes.py:313
+#: netbox/dcim/tables/devices.py:944 netbox/dcim/tables/devicetypes.py:312
#: netbox/templates/dcim/inventoryitem.html:40
msgid "Component"
msgstr "组件"
-#: netbox/dcim/tables/devices.py:997
+#: netbox/dcim/tables/devices.py:1000
msgid "Items"
msgstr "项目"
-#: netbox/dcim/tables/devicetypes.py:38 netbox/netbox/navigation/menu.py:84
+#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84
#: netbox/netbox/navigation/menu.py:86
msgid "Device Types"
msgstr "设备型号"
-#: netbox/dcim/tables/devicetypes.py:43 netbox/netbox/navigation/menu.py:87
+#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87
msgid "Module Types"
msgstr "设备配件类型"
-#: netbox/dcim/tables/devicetypes.py:53 netbox/extras/forms/filtersets.py:371
+#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:371
#: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540
#: netbox/netbox/navigation/menu.py:78
msgid "Platforms"
msgstr "操作系统"
-#: netbox/dcim/tables/devicetypes.py:85
+#: netbox/dcim/tables/devicetypes.py:84
#: netbox/templates/dcim/devicetype.html:29
msgid "Default Platform"
msgstr "默认系统平台"
-#: netbox/dcim/tables/devicetypes.py:89
+#: netbox/dcim/tables/devicetypes.py:88
#: netbox/templates/dcim/devicetype.html:45
msgid "Full Depth"
msgstr "全尺寸"
-#: netbox/dcim/tables/devicetypes.py:99
+#: netbox/dcim/tables/devicetypes.py:98
msgid "U Height"
msgstr "U高度"
-#: netbox/dcim/tables/devicetypes.py:114 netbox/dcim/tables/modules.py:26
+#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
#: netbox/dcim/tables/racks.py:89
msgid "Instances"
msgstr "实例"
-#: netbox/dcim/tables/devicetypes.py:117 netbox/dcim/views.py:982
+#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:982
#: netbox/dcim/views.py:1221 netbox/dcim/views.py:1913
#: netbox/netbox/navigation/menu.py:97
#: netbox/templates/dcim/device/base.html:25
@@ -6772,7 +6791,7 @@ msgstr "实例"
msgid "Console Ports"
msgstr "Console口"
-#: netbox/dcim/tables/devicetypes.py:120 netbox/dcim/views.py:997
+#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:997
#: netbox/dcim/views.py:1236 netbox/dcim/views.py:1929
#: netbox/netbox/navigation/menu.py:98
#: netbox/templates/dcim/device/base.html:28
@@ -6783,7 +6802,7 @@ msgstr "Console口"
msgid "Console Server Ports"
msgstr "Console 服务端口"
-#: netbox/dcim/tables/devicetypes.py:123 netbox/dcim/views.py:1012
+#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1012
#: netbox/dcim/views.py:1251 netbox/dcim/views.py:1945
#: netbox/netbox/navigation/menu.py:99
#: netbox/templates/dcim/device/base.html:31
@@ -6794,7 +6813,7 @@ msgstr "Console 服务端口"
msgid "Power Ports"
msgstr "电源接口"
-#: netbox/dcim/tables/devicetypes.py:126 netbox/dcim/views.py:1027
+#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1027
#: netbox/dcim/views.py:1266 netbox/dcim/views.py:1961
#: netbox/netbox/navigation/menu.py:100
#: netbox/templates/dcim/device/base.html:34
@@ -6805,7 +6824,7 @@ msgstr "电源接口"
msgid "Power Outlets"
msgstr "PDU"
-#: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1057
+#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1057
#: netbox/dcim/views.py:1296 netbox/dcim/views.py:1999
#: netbox/netbox/navigation/menu.py:95
#: netbox/templates/dcim/device/base.html:40
@@ -6815,7 +6834,7 @@ msgstr "PDU"
msgid "Front Ports"
msgstr "前置端口"
-#: netbox/dcim/tables/devicetypes.py:135 netbox/dcim/views.py:1072
+#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1072
#: netbox/dcim/views.py:1311 netbox/dcim/views.py:2015
#: netbox/netbox/navigation/menu.py:96
#: netbox/templates/dcim/device/base.html:43
@@ -6826,7 +6845,7 @@ msgstr "前置端口"
msgid "Rear Ports"
msgstr "后置端口"
-#: netbox/dcim/tables/devicetypes.py:138 netbox/dcim/views.py:1102
+#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1102
#: netbox/dcim/views.py:2055 netbox/netbox/navigation/menu.py:102
#: netbox/templates/dcim/device/base.html:49
#: netbox/templates/dcim/device_list.html:57
@@ -6834,7 +6853,7 @@ msgstr "后置端口"
msgid "Device Bays"
msgstr "机柜托架"
-#: netbox/dcim/tables/devicetypes.py:141 netbox/dcim/views.py:1087
+#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1087
#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2035
#: netbox/netbox/navigation/menu.py:101
#: netbox/templates/dcim/device/base.html:46
@@ -7272,81 +7291,81 @@ msgstr "小组件类型"
msgid "Unregistered widget class: {name}"
msgstr "未注册的小组件类型: {name}"
-#: netbox/extras/dashboard/widgets.py:126
+#: netbox/extras/dashboard/widgets.py:125
#, python-brace-format
msgid "{class_name} must define a render() method."
msgstr "{class_name}必须定义render() 方法。"
-#: netbox/extras/dashboard/widgets.py:145
+#: netbox/extras/dashboard/widgets.py:144
msgid "Note"
msgstr "公告"
-#: netbox/extras/dashboard/widgets.py:146
+#: netbox/extras/dashboard/widgets.py:145
msgid "Display some arbitrary custom content. Markdown is supported."
msgstr "显示任意的自定义内容。支持Markdown。"
-#: netbox/extras/dashboard/widgets.py:159
+#: netbox/extras/dashboard/widgets.py:158
msgid "Object Counts"
msgstr "对象统计"
-#: netbox/extras/dashboard/widgets.py:160
+#: netbox/extras/dashboard/widgets.py:159
msgid ""
"Display a set of NetBox models and the number of objects created for each "
"type."
msgstr "显示NetBox模型以及为每种类型创建的对象数。"
-#: netbox/extras/dashboard/widgets.py:170
+#: netbox/extras/dashboard/widgets.py:169
msgid "Filters to apply when counting the number of objects"
msgstr "统计对象数时要应用的筛选器"
-#: netbox/extras/dashboard/widgets.py:178
+#: netbox/extras/dashboard/widgets.py:177
msgid "Invalid format. Object filters must be passed as a dictionary."
msgstr "无效的格式。对象筛选器必须作为字典传递。"
-#: netbox/extras/dashboard/widgets.py:209
+#: netbox/extras/dashboard/widgets.py:208
msgid "Object List"
msgstr "对象列表"
-#: netbox/extras/dashboard/widgets.py:210
+#: netbox/extras/dashboard/widgets.py:209
msgid "Display an arbitrary list of objects."
msgstr "显示任意的对象列表。"
-#: netbox/extras/dashboard/widgets.py:223
+#: netbox/extras/dashboard/widgets.py:222
msgid "The default number of objects to display"
msgstr "要显示的默认对象数"
-#: netbox/extras/dashboard/widgets.py:235
+#: netbox/extras/dashboard/widgets.py:234
msgid "Invalid format. URL parameters must be passed as a dictionary."
msgstr "无效的格式。URL参数必须作为字典传递。"
-#: netbox/extras/dashboard/widgets.py:275
+#: netbox/extras/dashboard/widgets.py:274
msgid "RSS Feed"
msgstr "RSS订阅"
-#: netbox/extras/dashboard/widgets.py:280
+#: netbox/extras/dashboard/widgets.py:279
msgid "Embed an RSS feed from an external website."
msgstr "嵌入来自外部网站的 RSS 源。"
-#: netbox/extras/dashboard/widgets.py:287
+#: netbox/extras/dashboard/widgets.py:286
msgid "Feed URL"
msgstr "订阅链接"
-#: netbox/extras/dashboard/widgets.py:292
+#: netbox/extras/dashboard/widgets.py:291
msgid "The maximum number of objects to display"
msgstr "要多显示的对象数"
-#: netbox/extras/dashboard/widgets.py:297
+#: netbox/extras/dashboard/widgets.py:296
msgid "How long to stored the cached content (in seconds)"
msgstr "存储缓存内容的时间(秒)"
-#: netbox/extras/dashboard/widgets.py:349
+#: netbox/extras/dashboard/widgets.py:348
#: netbox/templates/account/base.html:10
#: netbox/templates/account/bookmarks.html:7
#: netbox/templates/inc/user_menu.html:48
msgid "Bookmarks"
msgstr "书签"
-#: netbox/extras/dashboard/widgets.py:353
+#: netbox/extras/dashboard/widgets.py:352
msgid "Show your personal bookmarks"
msgstr "显示您的个人书签"
@@ -7389,8 +7408,8 @@ msgstr "堆叠类型(缩写)"
msgid "Tenant group"
msgstr "租户组"
-#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:189
-#: netbox/tenancy/filtersets.py:209
+#: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
+#: netbox/tenancy/filtersets.py:208
msgid "Tenant group (slug)"
msgstr "租户组(缩写)"
@@ -7527,7 +7546,7 @@ msgstr "激活的"
#: netbox/extras/forms/model_forms.py:278
#: netbox/extras/forms/model_forms.py:372
#: netbox/extras/forms/model_forms.py:489
-#: netbox/users/forms/model_forms.py:277
+#: netbox/users/forms/model_forms.py:276
msgid "Object types"
msgstr "对象类型"
@@ -7624,8 +7643,8 @@ msgstr "条目的分类"
#: netbox/extras/forms/bulk_import.py:261
#: netbox/extras/forms/model_forms.py:320 netbox/netbox/navigation/menu.py:390
#: netbox/templates/extras/notificationgroup.html:41
-#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237
-#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301
+#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236
+#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300
#: netbox/users/tables.py:102
msgid "Users"
msgstr "用户"
@@ -7637,8 +7656,8 @@ msgstr "用户名用逗号分隔,用双引号括起来"
#: netbox/extras/forms/bulk_import.py:268
#: netbox/extras/forms/model_forms.py:315 netbox/netbox/navigation/menu.py:410
#: netbox/templates/extras/notificationgroup.html:31
-#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194
-#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35
+#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193
+#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35
#: netbox/users/tables.py:106
msgid "Groups"
msgstr "组"
@@ -8318,10 +8337,17 @@ msgstr "自定义字段选择集"
msgid "custom field choice sets"
msgstr "自定义字段选择集"
-#: netbox/extras/models/customfields.py:819
+#: netbox/extras/models/customfields.py:825
msgid "Must define base or extra choices."
msgstr "必须定义基本选项或额外选项。"
+#: netbox/extras/models/customfields.py:849
+#, python-brace-format
+msgid ""
+"Cannot remove choice {choice} as there are {model} objects which reference "
+"it."
+msgstr "无法删除选择 {choice} 正如有 {model} 引用它的对象。"
+
#: netbox/extras/models/dashboard.py:18
msgid "layout"
msgstr "布局"
@@ -8877,64 +8903,64 @@ msgstr "信息"
msgid "Method"
msgstr "方法"
-#: netbox/extras/validators.py:16
+#: netbox/extras/validators.py:15
#, python-format
msgid "Ensure this value is equal to %(limit_value)s."
msgstr "请确保值等于 %(limit_value)s."
-#: netbox/extras/validators.py:27
+#: netbox/extras/validators.py:26
#, python-format
msgid "Ensure this value does not equal %(limit_value)s."
msgstr "请确保值不等于 %(limit_value)s."
-#: netbox/extras/validators.py:38
+#: netbox/extras/validators.py:37
msgid "This field must be empty."
msgstr "此字段必须为空"
-#: netbox/extras/validators.py:53
+#: netbox/extras/validators.py:52
msgid "This field must not be empty."
msgstr "此字段必须不为空"
-#: netbox/extras/validators.py:95
+#: netbox/extras/validators.py:94
msgid "Validation rules must be passed as a dictionary"
msgstr "验证规则必须以字典形式传递"
-#: netbox/extras/validators.py:120
+#: netbox/extras/validators.py:119
#, python-brace-format
msgid "Custom validation failed for {attribute}: {exception}"
msgstr "{attribute} 的自定义验证失败:{exception}"
-#: netbox/extras/validators.py:134
+#: netbox/extras/validators.py:133
#, python-brace-format
msgid "Invalid attribute \"{name}\" for request"
msgstr "请求的属性“{name}”无效"
-#: netbox/extras/validators.py:151
+#: netbox/extras/validators.py:150
#, python-brace-format
msgid "Invalid attribute \"{name}\" for {model}"
msgstr "{model}的属性 \"{name}\"无效"
-#: netbox/extras/views.py:961
+#: netbox/extras/views.py:960
msgid "Your dashboard has been reset."
msgstr "仪表盘已重置。"
-#: netbox/extras/views.py:1007
+#: netbox/extras/views.py:1006
msgid "Added widget: "
msgstr "添加小组件:"
-#: netbox/extras/views.py:1048
+#: netbox/extras/views.py:1047
msgid "Updated widget: "
msgstr "更新小组件:"
-#: netbox/extras/views.py:1084
+#: netbox/extras/views.py:1083
msgid "Deleted widget: "
msgstr "删除小组件:"
-#: netbox/extras/views.py:1086
+#: netbox/extras/views.py:1085
msgid "Error deleting widget: "
msgstr "删除小组件错误:"
-#: netbox/extras/views.py:1173
+#: netbox/extras/views.py:1172
msgid "Unable to run script: RQ worker process not running."
msgstr "无法运行脚本:RQ worker 进程未运行。"
@@ -9002,19 +9028,19 @@ msgstr "明文"
msgid "Invalid IP address format: {address}"
msgstr "IP 地址格式无效: {address}"
-#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:315
+#: netbox/ipam/filtersets.py:48 netbox/vpn/filtersets.py:304
msgid "Import target"
msgstr "引入target"
-#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:321
+#: netbox/ipam/filtersets.py:54 netbox/vpn/filtersets.py:310
msgid "Import target (name)"
msgstr "引入target(名称)"
-#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:326
+#: netbox/ipam/filtersets.py:59 netbox/vpn/filtersets.py:315
msgid "Export target"
msgstr "输出target"
-#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:332
+#: netbox/ipam/filtersets.py:65 netbox/vpn/filtersets.py:321
msgid "Export target (name)"
msgstr "输出target(名称)"
@@ -9084,11 +9110,11 @@ msgstr "包含此前缀或IP的前缀"
msgid "Mask length"
msgstr "掩码长度"
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:438
+#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
msgid "VLAN (ID)"
msgstr "VLAN (ID)"
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:433
+#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
msgid "VLAN number (1-4094)"
msgstr "VLAN 号(1-4094)"
@@ -9108,23 +9134,23 @@ msgid "Parent prefix"
msgstr "上级前缀"
#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1105 netbox/vpn/filtersets.py:396
+#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
msgid "Virtual machine (name)"
msgstr "虚拟机(名称)"
#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1099 netbox/virtualization/filtersets.py:282
-#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:401
+#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
msgid "Virtual machine (ID)"
msgstr "虚拟机(ID)"
#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
-#: netbox/vpn/filtersets.py:407
+#: netbox/vpn/filtersets.py:396
msgid "Interface (name)"
msgstr "接口(名称)"
#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
-#: netbox/vpn/filtersets.py:418
+#: netbox/vpn/filtersets.py:407
msgid "VM interface (name)"
msgstr "虚拟接口(名称)"
@@ -9152,19 +9178,27 @@ msgstr "服务 (ID)"
msgid "NAT inside IP address (ID)"
msgstr "NAT 内部 IP 地址 (ID)"
-#: netbox/ipam/filtersets.py:1110
+#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+msgid "Assigned interface"
+msgstr "分配的接口"
+
+#: netbox/ipam/filtersets.py:1046
+msgid "Assigned VM interface"
+msgstr "分配的虚拟机接口"
+
+#: netbox/ipam/filtersets.py:1136
msgid "IP address (ID)"
msgstr "IP 地址 (ID)"
-#: netbox/ipam/filtersets.py:1116 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
msgid "IP address"
msgstr "IP 地址"
-#: netbox/ipam/filtersets.py:1141
+#: netbox/ipam/filtersets.py:1167
msgid "Primary IPv4 (ID)"
msgstr "首选 IPv4(ID)"
-#: netbox/ipam/filtersets.py:1146
+#: netbox/ipam/filtersets.py:1172
msgid "Primary IPv6 (ID)"
msgstr "首选IPv6(ID)"
@@ -9378,10 +9412,6 @@ msgstr "虚拟机"
msgid "Parent VM of assigned interface (if any)"
msgstr "指定接口的父虚拟机(如果有)"
-#: netbox/ipam/forms/bulk_import.py:322
-msgid "Assigned interface"
-msgstr "分配的接口"
-
#: netbox/ipam/forms/bulk_import.py:325
msgid "Is primary"
msgstr "首选"
@@ -10911,9 +10941,9 @@ msgstr "管理员"
msgid "API Tokens"
msgstr "API Token"
-#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:188
-#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243
-#: netbox/users/forms/model_forms.py:250
+#: netbox/netbox/navigation/menu.py:437 netbox/users/forms/model_forms.py:187
+#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242
+#: netbox/users/forms/model_forms.py:249
msgid "Permissions"
msgstr "权限"
@@ -11058,63 +11088,63 @@ msgstr "初始化后无法在注册表中添加存储空间"
msgid "Cannot delete stores from registry"
msgstr "无法从注册表中删除存储"
-#: netbox/netbox/settings.py:762
+#: netbox/netbox/settings.py:760
msgid "Czech"
msgstr "捷克语"
-#: netbox/netbox/settings.py:763
+#: netbox/netbox/settings.py:761
msgid "Danish"
msgstr "丹麦语"
-#: netbox/netbox/settings.py:764
+#: netbox/netbox/settings.py:762
msgid "German"
msgstr "德语"
-#: netbox/netbox/settings.py:765
+#: netbox/netbox/settings.py:763
msgid "English"
msgstr "英语"
-#: netbox/netbox/settings.py:766
+#: netbox/netbox/settings.py:764
msgid "Spanish"
msgstr "西班牙语"
-#: netbox/netbox/settings.py:767
+#: netbox/netbox/settings.py:765
msgid "French"
msgstr "法语"
-#: netbox/netbox/settings.py:768
+#: netbox/netbox/settings.py:766
msgid "Italian"
msgstr "意大利语"
-#: netbox/netbox/settings.py:769
+#: netbox/netbox/settings.py:767
msgid "Japanese"
msgstr "日语"
-#: netbox/netbox/settings.py:770
+#: netbox/netbox/settings.py:768
msgid "Dutch"
msgstr "荷兰语"
-#: netbox/netbox/settings.py:771
+#: netbox/netbox/settings.py:769
msgid "Polish"
msgstr "波兰语"
-#: netbox/netbox/settings.py:772
+#: netbox/netbox/settings.py:770
msgid "Portuguese"
msgstr "葡萄牙语"
-#: netbox/netbox/settings.py:773
+#: netbox/netbox/settings.py:771
msgid "Russian"
msgstr "俄语"
-#: netbox/netbox/settings.py:774
+#: netbox/netbox/settings.py:772
msgid "Turkish"
msgstr "土耳其语"
-#: netbox/netbox/settings.py:775
+#: netbox/netbox/settings.py:773
msgid "Ukrainian"
msgstr "乌克兰语"
-#: netbox/netbox/settings.py:776
+#: netbox/netbox/settings.py:774
msgid "Chinese"
msgstr "中文"
@@ -12777,7 +12807,7 @@ msgstr "新增成员"
#: netbox/templates/dcim/virtualchassis_add_member.html:27
#: netbox/templates/generic/object_edit.html:78
#: netbox/templates/users/objectpermission.html:31
-#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313
+#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312
msgid "Actions"
msgstr "激活"
@@ -13789,7 +13819,7 @@ msgstr "文件%(filename)s存在于静态文件根目录中,可
msgid "Click here to attempt loading NetBox again."
msgstr "点击 这里 重新加载NetBox"
-#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:148
+#: netbox/templates/tenancy/contact.html:18 netbox/tenancy/filtersets.py:147
#: netbox/tenancy/forms/bulk_edit.py:137
#: netbox/tenancy/forms/filtersets.py:102 netbox/tenancy/forms/forms.py:56
#: netbox/tenancy/forms/model_forms.py:106
@@ -13818,7 +13848,7 @@ msgid "Add Contact Group"
msgstr "增加联系人组"
#: netbox/templates/tenancy/contactrole.html:15
-#: netbox/tenancy/filtersets.py:153 netbox/tenancy/forms/forms.py:61
+#: netbox/tenancy/filtersets.py:152 netbox/tenancy/forms/forms.py:61
#: netbox/tenancy/forms/model_forms.py:87
msgid "Contact Role"
msgstr "联系人角色"
@@ -13856,7 +13886,7 @@ msgid "View"
msgstr "查看"
#: netbox/templates/users/objectpermission.html:52
-#: netbox/users/forms/model_forms.py:316
+#: netbox/users/forms/model_forms.py:315
msgid "Constraints"
msgstr "限制因素"
@@ -13883,11 +13913,6 @@ msgstr "内存"
msgid "Disk Space"
msgstr "磁盘空间"
-#: netbox/templates/virtualization/cluster.html:72
-msgctxt "Abbreviation for gigabyte"
-msgid "GB"
-msgstr "GB"
-
#: netbox/templates/virtualization/cluster/base.html:18
msgid "Add Virtual Machine"
msgstr "增加虚拟机"
@@ -14128,57 +14153,57 @@ msgstr "链接属性"
msgid "Distance"
msgstr "距离"
-#: netbox/tenancy/filtersets.py:29
+#: netbox/tenancy/filtersets.py:28
msgid "Parent contact group (ID)"
msgstr "父联系人组 (ID)"
-#: netbox/tenancy/filtersets.py:35
+#: netbox/tenancy/filtersets.py:34
msgid "Parent contact group (slug)"
msgstr "父联系人组 (缩写)"
-#: netbox/tenancy/filtersets.py:41 netbox/tenancy/filtersets.py:68
-#: netbox/tenancy/filtersets.py:111
+#: netbox/tenancy/filtersets.py:40 netbox/tenancy/filtersets.py:67
+#: netbox/tenancy/filtersets.py:110
msgid "Contact group (ID)"
msgstr "联系人组 (ID)"
-#: netbox/tenancy/filtersets.py:48 netbox/tenancy/filtersets.py:75
-#: netbox/tenancy/filtersets.py:118
+#: netbox/tenancy/filtersets.py:47 netbox/tenancy/filtersets.py:74
+#: netbox/tenancy/filtersets.py:117
msgid "Contact group (slug)"
msgstr "联系人组(缩写)"
-#: netbox/tenancy/filtersets.py:105
+#: netbox/tenancy/filtersets.py:104
msgid "Contact (ID)"
msgstr "联系人 (ID)"
-#: netbox/tenancy/filtersets.py:122
+#: netbox/tenancy/filtersets.py:121
msgid "Contact role (ID)"
msgstr "联系人角色 (ID)"
-#: netbox/tenancy/filtersets.py:128
+#: netbox/tenancy/filtersets.py:127
msgid "Contact role (slug)"
msgstr "联系人角色(缩写)"
-#: netbox/tenancy/filtersets.py:159
+#: netbox/tenancy/filtersets.py:158
msgid "Contact group"
msgstr "联系人组"
-#: netbox/tenancy/filtersets.py:170
+#: netbox/tenancy/filtersets.py:169
msgid "Parent tenant group (ID)"
msgstr "父租户组 (ID)"
-#: netbox/tenancy/filtersets.py:176
+#: netbox/tenancy/filtersets.py:175
msgid "Parent tenant group (slug)"
msgstr "上级租户组(slug)"
-#: netbox/tenancy/filtersets.py:182 netbox/tenancy/filtersets.py:202
+#: netbox/tenancy/filtersets.py:181 netbox/tenancy/filtersets.py:201
msgid "Tenant group (ID)"
msgstr "租户组 (ID)"
-#: netbox/tenancy/filtersets.py:235
+#: netbox/tenancy/filtersets.py:234
msgid "Tenant Group (ID)"
msgstr "租户组 (ID)"
-#: netbox/tenancy/filtersets.py:242
+#: netbox/tenancy/filtersets.py:241
msgid "Tenant Group (slug)"
msgstr "租户组(缩写)"
@@ -14343,11 +14368,11 @@ msgstr "可更改"
msgid "Can Delete"
msgstr "可删除"
-#: netbox/users/forms/model_forms.py:63
+#: netbox/users/forms/model_forms.py:62
msgid "User Interface"
msgstr "用户接口"
-#: netbox/users/forms/model_forms.py:115
+#: netbox/users/forms/model_forms.py:114
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -14355,7 +14380,7 @@ msgid ""
msgstr ""
"密钥的长度必须至少为40个字符。在提交此表单之前请务必记下您的密钥 因为一旦创建了令牌,就可能无法再访问该密钥。"
-#: netbox/users/forms/model_forms.py:127
+#: netbox/users/forms/model_forms.py:126
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -14364,42 +14389,42 @@ msgstr ""
"允许使用 Token 的 IPv4/IPv6 网络。留空表示无限制。示例: "
"10.1.1.0/24,192.168.10.16/32,2001:db8:1::/64"
-#: netbox/users/forms/model_forms.py:176
+#: netbox/users/forms/model_forms.py:175
msgid "Confirm password"
msgstr "确认密码"
-#: netbox/users/forms/model_forms.py:179
+#: netbox/users/forms/model_forms.py:178
msgid "Enter the same password as before, for verification."
msgstr "输入与以前相同的密码进行验证。"
-#: netbox/users/forms/model_forms.py:228
+#: netbox/users/forms/model_forms.py:227
msgid "Passwords do not match! Please check your input and try again."
msgstr "密码错误!请检查您的输入,然后重试。"
-#: netbox/users/forms/model_forms.py:295
+#: netbox/users/forms/model_forms.py:294
msgid "Additional actions"
msgstr "其他操作"
-#: netbox/users/forms/model_forms.py:298
+#: netbox/users/forms/model_forms.py:297
msgid "Actions granted in addition to those listed above"
msgstr "除上述操作外,还批准了其他操作"
-#: netbox/users/forms/model_forms.py:314
+#: netbox/users/forms/model_forms.py:313
msgid "Objects"
msgstr "对象"
-#: netbox/users/forms/model_forms.py:326
+#: netbox/users/forms/model_forms.py:325
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
"objects will result in a logical OR operation."
msgstr "查询集筛选器的JSON表达式,该表达式将只返回允许的对象。保留null以匹配此类型的所有对象。多个对象的列表将执行“或”运算。"
-#: netbox/users/forms/model_forms.py:365
+#: netbox/users/forms/model_forms.py:364
msgid "At least one action must be selected."
msgstr "必须至少选择一个操作。"
-#: netbox/users/forms/model_forms.py:383
+#: netbox/users/forms/model_forms.py:382
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "{model}的筛选器无效: {error}"
@@ -14634,7 +14659,7 @@ msgid "Invalid value for a multiple choice field: {value}"
msgstr "多项选择字段的值无效:{value}"
#: netbox/utilities/forms/fields/csv.py:57
-#: netbox/utilities/forms/fields/csv.py:74
+#: netbox/utilities/forms/fields/csv.py:78
#, python-format
msgid "Object not found: %(value)s"
msgstr "未找到对象:·%(value)s"
@@ -14646,11 +14671,16 @@ msgid ""
"found"
msgstr "\"{value}\" 不是此字段的唯一值;找到多个对象"
-#: netbox/utilities/forms/fields/csv.py:97
+#: netbox/utilities/forms/fields/csv.py:69
+#, python-brace-format
+msgid "\"{field_name}\" is an invalid accessor field name."
+msgstr "“{field_name}“是无效的访问器字段名称。"
+
+#: netbox/utilities/forms/fields/csv.py:101
msgid "Object type must be specified as \".\""
msgstr "对象类型必须定义为\".\""
-#: netbox/utilities/forms/fields/csv.py:101
+#: netbox/utilities/forms/fields/csv.py:105
msgid "Invalid object type"
msgstr "无效的对象类型"
@@ -15199,19 +15229,19 @@ msgstr "DSA 签名"
msgid "Group {n}"
msgstr "Group {n}"
-#: netbox/vpn/choices.py:241
+#: netbox/vpn/choices.py:243
msgid "Ethernet Private LAN"
msgstr "Ethernet Private LAN"
-#: netbox/vpn/choices.py:242
+#: netbox/vpn/choices.py:244
msgid "Ethernet Virtual Private LAN"
msgstr "Ethernet Virtual Private LAN"
-#: netbox/vpn/choices.py:245
+#: netbox/vpn/choices.py:247
msgid "Ethernet Private Tree"
msgstr "Ethernet Private Tree"
-#: netbox/vpn/choices.py:246
+#: netbox/vpn/choices.py:248
msgid "Ethernet Virtual Private Tree"
msgstr "Ethernet Virtual Private Tree"
@@ -15243,33 +15273,31 @@ msgstr "隧道(名称)"
msgid "Outside IP (ID)"
msgstr "外部 IP (ID)"
-#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:153
-#: netbox/vpn/filtersets.py:274
+#: netbox/vpn/filtersets.py:130 netbox/vpn/filtersets.py:263
msgid "IKE policy (ID)"
msgstr "IKE 策略 (ID)"
-#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:159
-#: netbox/vpn/filtersets.py:280
+#: netbox/vpn/filtersets.py:136 netbox/vpn/filtersets.py:269
msgid "IKE policy (name)"
msgstr "IKE 策略(名称)"
-#: netbox/vpn/filtersets.py:211 netbox/vpn/filtersets.py:284
+#: netbox/vpn/filtersets.py:200 netbox/vpn/filtersets.py:273
msgid "IPSec policy (ID)"
msgstr "IPsec 策略 (ID)"
-#: netbox/vpn/filtersets.py:217 netbox/vpn/filtersets.py:290
+#: netbox/vpn/filtersets.py:206 netbox/vpn/filtersets.py:279
msgid "IPSec policy (name)"
msgstr "IPsec 策略(名称)"
-#: netbox/vpn/filtersets.py:359
+#: netbox/vpn/filtersets.py:348
msgid "L2VPN (slug)"
msgstr "L2VPN(缩写)"
-#: netbox/vpn/filtersets.py:423
+#: netbox/vpn/filtersets.py:412
msgid "VM Interface (ID)"
msgstr "虚拟接口 (ID)"
-#: netbox/vpn/filtersets.py:429
+#: netbox/vpn/filtersets.py:418
msgid "VLAN (name)"
msgstr "VLAN(名称)"
diff --git a/netbox/users/api/nested_serializers.py b/netbox/users/api/nested_serializers.py
index 2a5763476c1..201e3890119 100644
--- a/netbox/users/api/nested_serializers.py
+++ b/netbox/users/api/nested_serializers.py
@@ -18,7 +18,7 @@ __all__ = [
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/users/api/views.py b/netbox/users/api/views.py
index 240f68d360e..bba9a4ec3e2 100644
--- a/netbox/users/api/views.py
+++ b/netbox/users/api/views.py
@@ -73,7 +73,7 @@ class TokenProvisionView(APIView):
def perform_create(self, serializer):
model = serializer.Meta.model
- logger = logging.getLogger(f'netbox.api.views.TokenProvisionView')
+ logger = logging.getLogger('netbox.api.views.TokenProvisionView')
logger.info(f"Creating new {model._meta.verbose_name}")
serializer.save()
diff --git a/netbox/users/apps.py b/netbox/users/apps.py
index cd61a59bcd8..4bfd612d99c 100644
--- a/netbox/users/apps.py
+++ b/netbox/users/apps.py
@@ -6,7 +6,7 @@ class UsersConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
- from . import signals
+ from . import signals # noqa: F401
# Register models
register_models(*self.get_models())
diff --git a/netbox/users/forms/model_forms.py b/netbox/users/forms/model_forms.py
index 639b9f72641..42c3b15f0a2 100644
--- a/netbox/users/forms/model_forms.py
+++ b/netbox/users/forms/model_forms.py
@@ -36,7 +36,6 @@ class UserConfigFormMetaclass(forms.models.ModelFormMetaclass):
# Emulate a declared field for each supported user preference
preference_fields = {}
for field_name, preference in PREFERENCES.items():
- description = f'{preference.description} ' if preference.description else ''
help_text = f'{field_name}'
if preference.description:
help_text = f'{preference.description} {help_text}'
diff --git a/netbox/users/tests/test_preferences.py b/netbox/users/tests/test_preferences.py
index b5037ec3f6d..13120d32878 100644
--- a/netbox/users/tests/test_preferences.py
+++ b/netbox/users/tests/test_preferences.py
@@ -51,11 +51,11 @@ class UserPreferencesTest(TestCase):
# Check that table ordering preference has been recorded
self.user.refresh_from_db()
- ordering = self.user.config.get(f'tables.SiteTable.ordering')
+ ordering = self.user.config.get('tables.SiteTable.ordering')
self.assertEqual(ordering, ['status'])
# Check that a recorded preference is honored by default
- self.user.config.set(f'tables.SiteTable.ordering', ['-status'], commit=True)
+ self.user.config.set('tables.SiteTable.ordering', ['-status'], commit=True)
table = SiteTable(Site.objects.all())
request = RequestFactory().get(url)
request.user = self.user
diff --git a/netbox/users/tests/test_views.py b/netbox/users/tests/test_views.py
index 86da7dda233..8386364dd76 100644
--- a/netbox/users/tests/test_views.py
+++ b/netbox/users/tests/test_views.py
@@ -1,8 +1,6 @@
-from django.test import override_settings
-
from core.models import ObjectType
from users.models import *
-from utilities.testing import ViewTestCases, create_test_user, extract_form_failures
+from utilities.testing import ViewTestCases, create_test_user
class UserTestCase(
diff --git a/netbox/utilities/forms/fields/dynamic.py b/netbox/utilities/forms/fields/dynamic.py
index bec067ba225..6666c0e4de9 100644
--- a/netbox/utilities/forms/fields/dynamic.py
+++ b/netbox/utilities/forms/fields/dynamic.py
@@ -142,7 +142,7 @@ class DynamicModelChoiceMixin:
if data:
# When the field is multiple choice pass the data as a list if it's not already
- if isinstance(bound_field.field, DynamicModelMultipleChoiceField) and not type(data) is list:
+ if isinstance(bound_field.field, DynamicModelMultipleChoiceField) and type(data) is not list:
data = [data]
field_name = getattr(self, 'to_field_name') or 'pk'
diff --git a/netbox/utilities/html.py b/netbox/utilities/html.py
index f99dabe5a13..c9203d169d5 100644
--- a/netbox/utilities/html.py
+++ b/netbox/utilities/html.py
@@ -59,7 +59,7 @@ def highlight(value, highlight, trim_pre=None, trim_post=None, trim_placeholder=
else:
highlight = re.escape(highlight)
pre, match, post = re.split(fr'({highlight})', value, maxsplit=1, flags=re.IGNORECASE)
- except ValueError as e:
+ except ValueError:
# Match not found
return escape(value)
diff --git a/netbox/utilities/management/commands/calculate_cached_counts.py b/netbox/utilities/management/commands/calculate_cached_counts.py
index f7810604f8b..a0e841e23ee 100644
--- a/netbox/utilities/management/commands/calculate_cached_counts.py
+++ b/netbox/utilities/management/commands/calculate_cached_counts.py
@@ -1,7 +1,6 @@
from collections import defaultdict
from django.core.management.base import BaseCommand
-from django.db.models import Count, OuterRef, Subquery
from netbox.registry import registry
from utilities.counters import update_counts
diff --git a/netbox/utilities/markdown.py b/netbox/utilities/markdown.py
index 655539acbee..0bf4e6a3032 100644
--- a/netbox/utilities/markdown.py
+++ b/netbox/utilities/markdown.py
@@ -14,7 +14,7 @@ class StrikethroughExtension(markdown.Extension):
"""
def extendMarkdown(self, md):
md.inlinePatterns.register(
- markdown.inlinepatterns.SimpleTagPattern(STRIKE_RE, 'del'),
+ SimpleTagPattern(STRIKE_RE, 'del'),
'strikethrough',
200
)
diff --git a/netbox/utilities/release.py b/netbox/utilities/release.py
index 256588b0b07..f389e80097c 100644
--- a/netbox/utilities/release.py
+++ b/netbox/utilities/release.py
@@ -1,9 +1,9 @@
import datetime
import os
-import yaml
from dataclasses import asdict, dataclass, field
-from typing import List, Union
+from typing import Union
+import yaml
from django.core.exceptions import ImproperlyConfigured
from utilities.datetime import datetime_from_timestamp
diff --git a/netbox/utilities/serializers/json.py b/netbox/utilities/serializers/json.py
index b728b0a34b7..e64e9e0f696 100644
--- a/netbox/utilities/serializers/json.py
+++ b/netbox/utilities/serializers/json.py
@@ -1,5 +1,5 @@
from django.contrib.postgres.fields import ArrayField
-from django.core.serializers.json import Deserializer, Serializer as Serializer_ # noqa
+from django.core.serializers.json import Deserializer, Serializer as Serializer_ # noqa: F401
from django.utils.encoding import is_protected_type
# NOTE: Module must contain both Serializer and Deserializer
diff --git a/netbox/utilities/templatetags/form_helpers.py b/netbox/utilities/templatetags/form_helpers.py
index 242bd7b1c87..ec53fe97c17 100644
--- a/netbox/utilities/templatetags/form_helpers.py
+++ b/netbox/utilities/templatetags/form_helpers.py
@@ -1,8 +1,6 @@
-import warnings
-
from django import template
-from utilities.forms.rendering import FieldSet, InlineFields, ObjectAttribute, TabbedGroups
+from utilities.forms.rendering import InlineFields, ObjectAttribute, TabbedGroups
__all__ = (
'getfield',
diff --git a/netbox/utilities/tests/test_api.py b/netbox/utilities/tests/test_api.py
index 81be70a3405..ba0c3c4f82d 100644
--- a/netbox/utilities/tests/test_api.py
+++ b/netbox/utilities/tests/test_api.py
@@ -149,7 +149,7 @@ class APIPaginationTestCase(APITestCase):
self.assertHttpStatus(response, status.HTTP_200_OK)
self.assertEqual(response.data['count'], 100)
- self.assertTrue(response.data['next'].endswith(f'?limit=10&offset=10'))
+ self.assertTrue(response.data['next'].endswith('?limit=10&offset=10'))
self.assertIsNone(response.data['previous'])
self.assertEqual(len(response.data['results']), 10)
@@ -159,7 +159,7 @@ class APIPaginationTestCase(APITestCase):
self.assertHttpStatus(response, status.HTTP_200_OK)
self.assertEqual(response.data['count'], 100)
- self.assertTrue(response.data['next'].endswith(f'?limit=20&offset=20'))
+ self.assertTrue(response.data['next'].endswith('?limit=20&offset=20'))
self.assertIsNone(response.data['previous'])
self.assertEqual(len(response.data['results']), 20)
diff --git a/netbox/utilities/tests/test_counters.py b/netbox/utilities/tests/test_counters.py
index b87e73acefc..45823065eab 100644
--- a/netbox/utilities/tests/test_counters.py
+++ b/netbox/utilities/tests/test_counters.py
@@ -85,7 +85,7 @@ class CountersTest(TestCase):
def test_mptt_child_delete(self):
device1, device2 = Device.objects.all()
inventory_item1 = InventoryItem.objects.create(device=device1, name='Inventory Item 1')
- inventory_item2 = InventoryItem.objects.create(device=device1, name='Inventory Item 2', parent=inventory_item1)
+ InventoryItem.objects.create(device=device1, name='Inventory Item 2', parent=inventory_item1)
device1.refresh_from_db()
self.assertEqual(device1.inventory_item_count, 2)
diff --git a/netbox/utilities/tests/test_filters.py b/netbox/utilities/tests/test_filters.py
index dd619456530..53e6eb98548 100644
--- a/netbox/utilities/tests/test_filters.py
+++ b/netbox/utilities/tests/test_filters.py
@@ -7,7 +7,7 @@ from taggit.managers import TaggableManager
from dcim.choices import *
from dcim.fields import MACAddressField
-from dcim.filtersets import DeviceFilterSet, SiteFilterSet
+from dcim.filtersets import DeviceFilterSet, SiteFilterSet, InterfaceFilterSet
from dcim.models import (
Device, DeviceRole, DeviceType, Interface, Manufacturer, Platform, Rack, Region, Site
)
@@ -16,6 +16,7 @@ from extras.models import TaggedItem
from ipam.filtersets import ASNFilterSet
from ipam.models import RIR, ASN
from netbox.filtersets import BaseFilterSet
+from wireless.choices import WirelessRoleChoices
from utilities.filters import (
MultiValueCharFilter, MultiValueDateFilter, MultiValueDateTimeFilter, MultiValueMACAddressFilter,
MultiValueNumberFilter, MultiValueTimeFilter, TreeNodeMultipleChoiceFilter,
@@ -408,9 +409,9 @@ class DynamicFilterLookupExpressionTest(TestCase):
region.save()
sites = (
- Site(name='Site 1', slug='abc-site-1', region=regions[0]),
- Site(name='Site 2', slug='def-site-2', region=regions[1]),
- Site(name='Site 3', slug='ghi-site-3', region=regions[2]),
+ Site(name='Site 1', slug='abc-site-1', region=regions[0], status=SiteStatusChoices.STATUS_ACTIVE),
+ Site(name='Site 2', slug='def-site-2', region=regions[1], status=SiteStatusChoices.STATUS_ACTIVE),
+ Site(name='Site 3', slug='ghi-site-3', region=regions[2], status=SiteStatusChoices.STATUS_PLANNED),
)
Site.objects.bulk_create(sites)
@@ -438,7 +439,7 @@ class DynamicFilterLookupExpressionTest(TestCase):
Interface(device=devices[1], name='Interface 3', mac_address='00-00-00-00-00-02'),
Interface(device=devices[1], name='Interface 4', mac_address='bb-00-00-00-00-02'),
Interface(device=devices[2], name='Interface 5', mac_address='00-00-00-00-00-03'),
- Interface(device=devices[2], name='Interface 6', mac_address='cc-00-00-00-00-03'),
+ Interface(device=devices[2], name='Interface 6', mac_address='cc-00-00-00-00-03', rf_role=WirelessRoleChoices.ROLE_AP),
)
Interface.objects.bulk_create(interfaces)
@@ -446,6 +447,14 @@ class DynamicFilterLookupExpressionTest(TestCase):
params = {'name__n': ['Site 1']}
self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 2)
+ def test_site_status_icontains(self):
+ params = {'status__ic': [SiteStatusChoices.STATUS_ACTIVE]}
+ self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 2)
+
+ def test_site_status_icontains_negation(self):
+ params = {'status__nic': [SiteStatusChoices.STATUS_ACTIVE]}
+ self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 1)
+
def test_site_slug_icontains(self):
params = {'slug__ic': ['-1']}
self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 1)
@@ -553,3 +562,9 @@ class DynamicFilterLookupExpressionTest(TestCase):
def test_device_mac_address_icontains_negation(self):
params = {'mac_address__nic': ['aa:', 'bb']}
self.assertEqual(DeviceFilterSet(params, Device.objects.all()).qs.count(), 1)
+
+ def test_interface_rf_role_empty(self):
+ params = {'rf_role__empty': 'true'}
+ self.assertEqual(InterfaceFilterSet(params, Interface.objects.all()).qs.count(), 5)
+ params = {'rf_role__empty': 'false'}
+ self.assertEqual(InterfaceFilterSet(params, Interface.objects.all()).qs.count(), 1)
diff --git a/netbox/virtualization/api/nested_serializers.py b/netbox/virtualization/api/nested_serializers.py
index a2395faa55a..59016f74d32 100644
--- a/netbox/virtualization/api/nested_serializers.py
+++ b/netbox/virtualization/api/nested_serializers.py
@@ -18,7 +18,7 @@ __all__ = [
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/virtualization/api/serializers_/clusters.py b/netbox/virtualization/api/serializers_/clusters.py
index b1648713205..b64b6e7bafe 100644
--- a/netbox/virtualization/api/serializers_/clusters.py
+++ b/netbox/virtualization/api/serializers_/clusters.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from dcim.api.serializers_.sites import SiteSerializer
from netbox.api.fields import ChoiceField, RelatedObjectCountField
from netbox.api.serializers import NetBoxModelSerializer
diff --git a/netbox/virtualization/apps.py b/netbox/virtualization/apps.py
index 8a61bc52316..ebcc591bfb5 100644
--- a/netbox/virtualization/apps.py
+++ b/netbox/virtualization/apps.py
@@ -9,7 +9,7 @@ class VirtualizationConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
from utilities.counters import connect_counters
- from . import search, signals
+ from . import search, signals # noqa: F401
from .models import VirtualMachine
# Register models
diff --git a/netbox/virtualization/tests/test_views.py b/netbox/virtualization/tests/test_views.py
index 0daa55a5cdd..3c6a058c989 100644
--- a/netbox/virtualization/tests/test_views.py
+++ b/netbox/virtualization/tests/test_views.py
@@ -354,14 +354,14 @@ class VMInterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase):
}
cls.csv_data = (
- f"virtual_machine,name,vrf.pk",
+ "virtual_machine,name,vrf.pk",
f"Virtual Machine 2,Interface 4,{vrfs[0].pk}",
f"Virtual Machine 2,Interface 5,{vrfs[0].pk}",
f"Virtual Machine 2,Interface 6,{vrfs[0].pk}",
)
cls.csv_update_data = (
- f"id,name,description",
+ "id,name,description",
f"{interfaces[0].pk},Interface 7,New description 7",
f"{interfaces[1].pk},Interface 8,New description 8",
f"{interfaces[2].pk},Interface 9,New description 9",
@@ -438,14 +438,14 @@ class VirtualDiskTestCase(ViewTestCases.DeviceComponentViewTestCase):
}
cls.csv_data = (
- f"virtual_machine,name,size,description",
- f"Virtual Machine 1,Disk 4,20,Fourth",
- f"Virtual Machine 1,Disk 5,20,Fifth",
- f"Virtual Machine 1,Disk 6,20,Sixth",
+ "virtual_machine,name,size,description",
+ "Virtual Machine 1,Disk 4,20,Fourth",
+ "Virtual Machine 1,Disk 5,20,Fifth",
+ "Virtual Machine 1,Disk 6,20,Sixth",
)
cls.csv_update_data = (
- f"id,name,size",
+ "id,name,size",
f"{disks[0].pk},disk1,20",
f"{disks[1].pk},disk2,20",
f"{disks[2].pk},disk3,20",
diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py
index ad3487b8be6..0828d3a2ae3 100644
--- a/netbox/virtualization/views.py
+++ b/netbox/virtualization/views.py
@@ -657,7 +657,7 @@ class VirtualMachineBulkAddInterfaceView(generic.BulkComponentCreateView):
default_return_url = 'virtualization:virtualmachine_list'
def get_required_permission(self):
- return f'virtualization.add_vminterface'
+ return 'virtualization.add_vminterface'
class VirtualMachineBulkAddVirtualDiskView(generic.BulkComponentCreateView):
@@ -671,4 +671,4 @@ class VirtualMachineBulkAddVirtualDiskView(generic.BulkComponentCreateView):
default_return_url = 'virtualization:virtualmachine_list'
def get_required_permission(self):
- return f'virtualization.add_virtualdisk'
+ return 'virtualization.add_virtualdisk'
diff --git a/netbox/vpn/api/nested_serializers.py b/netbox/vpn/api/nested_serializers.py
index c1a90cbead7..59e394c2ec2 100644
--- a/netbox/vpn/api/nested_serializers.py
+++ b/netbox/vpn/api/nested_serializers.py
@@ -21,7 +21,7 @@ __all__ = (
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/vpn/api/serializers_/crypto.py b/netbox/vpn/api/serializers_/crypto.py
index 700917b891a..c11b8de2b11 100644
--- a/netbox/vpn/api/serializers_/crypto.py
+++ b/netbox/vpn/api/serializers_/crypto.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from netbox.api.fields import ChoiceField, SerializedPKRelatedField
from netbox.api.serializers import NetBoxModelSerializer
from vpn.choices import *
diff --git a/netbox/vpn/apps.py b/netbox/vpn/apps.py
index 9a3751cb236..1afa0d52708 100644
--- a/netbox/vpn/apps.py
+++ b/netbox/vpn/apps.py
@@ -7,7 +7,7 @@ class VPNConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
- from . import search
+ from . import search # noqa: F401
# Register models
register_models(*self.get_models())
diff --git a/netbox/vpn/choices.py b/netbox/vpn/choices.py
index 4aa97f61519..75145404951 100644
--- a/netbox/vpn/choices.py
+++ b/netbox/vpn/choices.py
@@ -219,6 +219,7 @@ class L2VPNTypeChoices(ChoiceSet):
TYPE_VXLAN_EVPN = 'vxlan-evpn'
TYPE_MPLS_EVPN = 'mpls-evpn'
TYPE_PBB_EVPN = 'pbb-evpn'
+ TYPE_EVPN_VPWS = 'evpn-vpws'
CHOICES = (
('VPLS', (
@@ -232,6 +233,7 @@ class L2VPNTypeChoices(ChoiceSet):
('L2VPN E-VPN', (
(TYPE_MPLS_EVPN, 'MPLS EVPN'),
(TYPE_PBB_EVPN, 'PBB EVPN'),
+ (TYPE_EVPN_VPWS, 'EVPN VPWS')
)),
('E-Line', (
(TYPE_EPL, 'EPL'),
diff --git a/netbox/vpn/filtersets.py b/netbox/vpn/filtersets.py
index 92aa702c67d..6403b662fcb 100644
--- a/netbox/vpn/filtersets.py
+++ b/netbox/vpn/filtersets.py
@@ -147,17 +147,6 @@ class IKEProposalFilterSet(NetBoxModelFilterSet):
group = django_filters.MultipleChoiceFilter(
choices=DHGroupChoices
)
- ike_policy_id = django_filters.ModelMultipleChoiceFilter(
- field_name='ike_policies',
- queryset=IKEPolicy.objects.all(),
- label=_('IKE policy (ID)'),
- )
- ike_policy = django_filters.ModelMultipleChoiceFilter(
- field_name='ike_policies__name',
- queryset=IKEPolicy.objects.all(),
- to_field_name='name',
- label=_('IKE policy (name)'),
- )
class Meta:
model = IKEProposal
diff --git a/netbox/vpn/tests/test_filtersets.py b/netbox/vpn/tests/test_filtersets.py
index 0b9c7942088..d2b8937665a 100644
--- a/netbox/vpn/tests/test_filtersets.py
+++ b/netbox/vpn/tests/test_filtersets.py
@@ -385,13 +385,6 @@ class IKEProposalTestCase(TestCase, ChangeLoggedFilterSetTests):
params = {'sa_lifetime': [1000, 2000]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
- def test_ike_policy(self):
- ike_policies = IKEPolicy.objects.all()[:2]
- params = {'ike_policy_id': [ike_policies[0].pk, ike_policies[1].pk]}
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
- params = {'ike_policy': [ike_policies[0].name, ike_policies[1].name]}
- self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
-
class IKEPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
queryset = IKEPolicy.objects.all()
diff --git a/netbox/vpn/tests/test_views.py b/netbox/vpn/tests/test_views.py
index 105ca0b6fd4..05ac527fe8f 100644
--- a/netbox/vpn/tests/test_views.py
+++ b/netbox/vpn/tests/test_views.py
@@ -542,9 +542,9 @@ class IPSecProfileTestCase(ViewTestCases.PrimaryObjectViewTestCase):
cls.csv_data = (
"name,mode,ike_policy,ipsec_policy",
- f"IKE Proposal 4,ah,IKE Policy 2,IPSec Policy 2",
- f"IKE Proposal 5,ah,IKE Policy 2,IPSec Policy 2",
- f"IKE Proposal 6,ah,IKE Policy 2,IPSec Policy 2",
+ "IKE Proposal 4,ah,IKE Policy 2,IPSec Policy 2",
+ "IKE Proposal 5,ah,IKE Policy 2,IPSec Policy 2",
+ "IKE Proposal 6,ah,IKE Policy 2,IPSec Policy 2",
)
cls.csv_update_data = (
@@ -661,7 +661,7 @@ class L2VPNTerminationTestCase(
)
cls.csv_update_data = (
- f"id,l2vpn",
+ "id,l2vpn",
f"{terminations[0].pk},{l2vpns[0].name}",
f"{terminations[1].pk},{l2vpns[0].name}",
f"{terminations[2].pk},{l2vpns[0].name}",
diff --git a/netbox/wireless/api/nested_serializers.py b/netbox/wireless/api/nested_serializers.py
index 433164e601d..9b8b6c3e38e 100644
--- a/netbox/wireless/api/nested_serializers.py
+++ b/netbox/wireless/api/nested_serializers.py
@@ -12,7 +12,7 @@ __all__ = (
# TODO: Remove in v4.2
warnings.warn(
- f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
+ "Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
diff --git a/netbox/wireless/api/serializers_/wirelesslinks.py b/netbox/wireless/api/serializers_/wirelesslinks.py
index 1f3bcfdea3b..c1d8e4f1005 100644
--- a/netbox/wireless/api/serializers_/wirelesslinks.py
+++ b/netbox/wireless/api/serializers_/wirelesslinks.py
@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
from dcim.api.serializers_.device_components import InterfaceSerializer
from dcim.choices import LinkStatusChoices
from netbox.api.fields import ChoiceField
diff --git a/netbox/wireless/apps.py b/netbox/wireless/apps.py
index 24e1869b61f..ea2d9bbc0cd 100644
--- a/netbox/wireless/apps.py
+++ b/netbox/wireless/apps.py
@@ -6,7 +6,7 @@ class WirelessConfig(AppConfig):
def ready(self):
from netbox.models.features import register_models
- from . import signals, search
+ from . import signals, search # noqa: F401
# Register models
register_models(*self.get_models())
diff --git a/netbox/wireless/filtersets.py b/netbox/wireless/filtersets.py
index 9f60388ce82..537b2ec5c92 100644
--- a/netbox/wireless/filtersets.py
+++ b/netbox/wireless/filtersets.py
@@ -6,7 +6,7 @@ from dcim.models import Interface
from ipam.models import VLAN
from netbox.filtersets import OrganizationalModelFilterSet, NetBoxModelFilterSet
from tenancy.filtersets import TenancyFilterSet
-from utilities.filters import MultiValueNumberFilter, TreeNodeMultipleChoiceFilter
+from utilities.filters import TreeNodeMultipleChoiceFilter
from .choices import *
from .models import *
diff --git a/netbox/wireless/tests/test_views.py b/netbox/wireless/tests/test_views.py
index 055edf73cb1..a4dc2aae593 100644
--- a/netbox/wireless/tests/test_views.py
+++ b/netbox/wireless/tests/test_views.py
@@ -102,14 +102,14 @@ class WirelessLANTestCase(ViewTestCases.PrimaryObjectViewTestCase):
}
cls.csv_data = (
- f"group,ssid,status,tenant",
+ "group,ssid,status,tenant",
f"Wireless LAN Group 2,WLAN4,{WirelessLANStatusChoices.STATUS_ACTIVE},{tenants[0].name}",
f"Wireless LAN Group 2,WLAN5,{WirelessLANStatusChoices.STATUS_DISABLED},{tenants[1].name}",
f"Wireless LAN Group 2,WLAN6,{WirelessLANStatusChoices.STATUS_RESERVED},{tenants[2].name}",
)
cls.csv_update_data = (
- f"id,ssid",
+ "id,ssid",
f"{wireless_lans[0].pk},WLAN7",
f"{wireless_lans[1].pk},WLAN8",
f"{wireless_lans[2].pk},WLAN9",
@@ -167,7 +167,7 @@ class WirelessLinkTestCase(ViewTestCases.PrimaryObjectViewTestCase):
}
cls.csv_data = (
- f"interface_a,interface_b,status,tenant",
+ "interface_a,interface_b,status,tenant",
f"{interfaces[6].pk},{interfaces[7].pk},connected,{tenants[0].name}",
f"{interfaces[8].pk},{interfaces[9].pk},connected,{tenants[1].name}",
f"{interfaces[10].pk},{interfaces[11].pk},connected,{tenants[2].name}",
diff --git a/requirements.txt b/requirements.txt
index 17ec31097ab..3b9c689699f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,5 @@
Django==5.0.9
-django-cors-headers==4.4.0
+django-cors-headers==4.5.0
django-debug-toolbar==4.4.6
django-filter==24.3
django-htmx==1.19.0
@@ -20,8 +20,8 @@ feedparser==6.0.11
gunicorn==23.0.0
Jinja2==3.1.4
Markdown==3.7
-mkdocs-material==9.5.39
-mkdocstrings[python-legacy]==0.26.1
+mkdocs-material==9.5.41
+mkdocstrings[python-legacy]==0.26.2
netaddr==1.3.0
nh3==0.2.18
Pillow==10.4.0
@@ -30,8 +30,8 @@ PyYAML==6.0.2
requests==2.32.3
social-auth-app-django==5.4.2
social-auth-core==4.5.4
-strawberry-graphql==0.243.1
+strawberry-graphql==0.246.2
strawberry-graphql-django==0.48.0
svgwrite==1.4.3
-tablib==3.6.1
+tablib==3.7.0
tzdata==2024.2
diff --git a/ruff.toml b/ruff.toml
new file mode 100644
index 00000000000..854404469eb
--- /dev/null
+++ b/ruff.toml
@@ -0,0 +1,2 @@
+[lint]
+ignore = ["E501", "F403", "F405"]
diff --git a/scripts/git-hooks/pre-commit b/scripts/git-hooks/pre-commit
index 2ccf8df8908..da746b64f36 100755
--- a/scripts/git-hooks/pre-commit
+++ b/scripts/git-hooks/pre-commit
@@ -14,6 +14,11 @@ RED='\033[0;31m'
YELLOW='\033[0;33m'
NOCOLOR='\033[0m'
+printf "${YELLOW}This script is obsolete and will be removed in a future release.\n"
+printf "Please use pre-commit instead:\n"
+printf " pip install pre-commit\n"
+printf " pre-commit install${NOCOLOR}\n"
+
if [ -d ./venv/ ]; then
VENV="$PWD/venv"
if [ -e $VENV/bin/python ]; then
@@ -28,8 +33,8 @@ if [ ${NOVALIDATE} ]; then
exit $EXIT
fi
-echo "Validating PEP8 compliance..."
-pycodestyle --ignore=W504,E501 --exclude=node_modules netbox/
+echo "Linting with ruff..."
+ruff check netbox/
if [ $? != 0 ]; then
EXIT=1
fi