diff --git a/.github/workflows/build-pages.yml b/.github/workflows/build-pages.yml new file mode 100644 index 0000000..d489db1 --- /dev/null +++ b/.github/workflows/build-pages.yml @@ -0,0 +1,147 @@ +name: Build GitHub Pages + +on: + push: + branches: ["main"] + workflow_dispatch: + +permissions: + id-token: write + pages: write + +env: + NODE_VERSION: 22 + INSTANCE: "Writerside/doc" + ARTIFACT: "webHelpDOC2-all.zip" + DOCKER_VERSION: "242.21870" + +jobs: + build: + runs-on: ubuntu-latest + steps: +# # Insert this at the appropriate step to start a terminal session for debugging. +# - name: Setup tmate session +# uses: mxschmitt/action-tmate@v3 + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + registry-url: https://registry.npmjs.org/ + + - name: Checkout default repository (doc) + uses: actions/checkout@v4 + + - name: Build Writerside artifact + uses: JetBrains/writerside-github-action@v4 + with: + instance: ${{ env.INSTANCE }} + artifact: ${{ env.ARTIFACT }} + docker-version: ${{ env.DOCKER_VERSION }} + + - name: Create build directory + run: mkdir build + + - name: Unzip artifact to pages + run: unzip -O UTF-8 -qq artifacts/${{ env.ARTIFACT }} -d build/pages + + # Builds include "npm install @rollup/rollup-linux-x64-gnu", which is necessary to work around platform-specific + # optional dependencies bug (https://github.com/npm/cli/issues/4828). + + - name: Checkout dev + uses: actions/checkout@v4 + with: + repository: aidc-toolkit/dev + path: build/dev + + - name: Build dev + working-directory: "build/dev" + run: | + npm link + npm ci + npm install @rollup/rollup-linux-x64-gnu + npm run build + + - name: Checkout core + uses: actions/checkout@v4 + with: + repository: aidc-toolkit/core + path: build/core + + - name: Build core + working-directory: "build/core" + run: | + npm link + npm link @aidc-toolkit/dev + npm ci + npm install @rollup/rollup-linux-x64-gnu + npm run build-dev + + - name: Checkout utility + uses: actions/checkout@v4 + with: + repository: aidc-toolkit/utility + path: build/utility + + - name: Build utility + working-directory: "build/utility" + run: | + npm link + npm link @aidc-toolkit/dev @aidc-toolkit/core + npm ci + npm install @rollup/rollup-linux-x64-gnu + npm run build-dev + + - name: Checkout gs1 + uses: actions/checkout@v4 + with: + repository: aidc-toolkit/gs1 + path: build/gs1 + + - name: Build gs1 + working-directory: "build/gs1" + run: | + npm link + npm link @aidc-toolkit/dev @aidc-toolkit/core @aidc-toolkit/utility + npm ci + npm install @rollup/rollup-linux-x64-gnu + npm run build-dev + + - name: Checkout demo + uses: actions/checkout@v4 + with: + repository: aidc-toolkit/demo + path: build/demo + + - name: Build demo + working-directory: "build/demo" + run: | + npm link @aidc-toolkit/dev @aidc-toolkit/core @aidc-toolkit/utility @aidc-toolkit/gs1 + npm ci + npm install @rollup/rollup-linux-x64-gnu + npm run build -- --outDir ../pages/demo + + - name: Checkout doc + uses: actions/checkout@v4 + with: + path: build/doc + + - name: Generate API documentation + working-directory: "build/doc" + run: | + npm link @aidc-toolkit/dev + npm ci + npm install @rollup/rollup-linux-x64-gnu + npm run typedoc -- --out ../pages/api + + - name: Configure GitHub Pages + uses: actions/configure-pages@v4 + + - name: Package and upload pages directory + uses: actions/upload-pages-artifact@v3 + with: + path: build/pages + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 3678497..2ccbe46 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ /node_modules/ -/Writerside/ diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..0162dd3 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Writerside/c.list b/Writerside/c.list new file mode 100644 index 0000000..c4c77a2 --- /dev/null +++ b/Writerside/c.list @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Writerside/cfg/buildprofiles.xml b/Writerside/cfg/buildprofiles.xml new file mode 100644 index 0000000..a816816 --- /dev/null +++ b/Writerside/cfg/buildprofiles.xml @@ -0,0 +1,17 @@ + + + + + + + false + icon-144.png + icon-144.png + Join us on GitHub + https://github.com/aidc-toolkit + true + + + + diff --git a/Writerside/doc.tree b/Writerside/doc.tree new file mode 100644 index 0000000..963953c --- /dev/null +++ b/Writerside/doc.tree @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/resource/icon-144.png b/Writerside/images/icon-144.png similarity index 100% rename from resource/icon-144.png rename to Writerside/images/icon-144.png diff --git a/Writerside/redirection-rules.xml b/Writerside/redirection-rules.xml new file mode 100644 index 0000000..1d71309 --- /dev/null +++ b/Writerside/redirection-rules.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/Writerside/topics/Core-Package.topic b/Writerside/topics/Core-Package.topic new file mode 100644 index 0000000..47660a8 --- /dev/null +++ b/Writerside/topics/Core-Package.topic @@ -0,0 +1,138 @@ + + + +

+ The core package provides support for internationalization, built on the robust and popular + i18next package. Applications can take advantage of the additional abstraction + provided by the core package by + adding their own resource bundles or can + manage internationalization themselves. +

+ + +

+ Applications built on the AIDC Toolkit must initialize internationalization + first via this package. Support is available for the following environments: +

+ + +
  • + Command-line interface + +
  • Unit tests
  • +
  • Batch applications
  • +
    + +
  • + Web server + + Not yet implemented. + +
  • +
  • + Web browser +
  • + + + +

    + Initializing internationalization for a command-line interface application is straightforward: +

    + + + await i18nInit(I18NEnvironment.CLI); + +
    + + +

    + Initializing internationalization for a web browser requires awaiting the fulfillment of the + Promise returned by the call to i18nInit() before rendering any content. For + example, in the React framework, this may be accomplished as follows: +

    + + + +

    + Define an application state variable. +

    + + + interface AppState { + i18nInitialized: boolean; + // Define additional state variables here. + } + +
    + + +

    + Define the application class and initialize the state. +

    + + + export default class App extends AppComponent<object, AppState> { + override state: AppState = { + i18nInitialized: false, + // Initialize additional state variables here. + }; + + // Remainder of class. + } + +
    + + +

    + Override the componentDidMount() method to initialize internationalization and to + force refresh once the Promise is fulfilled. +

    + + + override componentDidMount(): void { + i18nInit(I18NEnvironment.Browser, true).then((initialized) => { + if (initialized) { + // Force refresh. + this.setState(state => ({ + ...state, + i18nInitialized: initialized + })); + } + }).catch((e: unknown) => { + console.error(e); + alert(e); + }); + } + +
    + + +

    + Override the render() method to render the initial content, but only once the + application has been initialized. +

    + + + override render(): ReactElement { + return this.state.i18nInitialized ? + // Render the application. + <Navbar className="d-flex" expand="lg"> + // ... + </Navbar> : + // Render nothing. + <></>; + } + +
    +
    + + + For a complete example, including how to use application-specific resource bundles, see the + AIDC Toolkit demo source. + +
    +
    +
    diff --git a/Writerside/topics/GS1-Package.topic b/Writerside/topics/GS1-Package.topic new file mode 100644 index 0000000..5996040 --- /dev/null +++ b/Writerside/topics/GS1-Package.topic @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Writerside/topics/Overview.topic b/Writerside/topics/Overview.topic new file mode 100644 index 0000000..6b10bb3 --- /dev/null +++ b/Writerside/topics/Overview.topic @@ -0,0 +1,119 @@ + + + +

    + The AIDC Toolkit is a comprehensive set of libraries for integrating Automatic Identification and Data Capture + (AIDC) functionality into web-based applications. The libraries are published as npm packages and full source code is available on + GitHub. +

    + + + Skip the boring stuff! Go straight to the demo or the API + documentation. + + + + + The AIDC Toolkit is in beta, with production release scheduled for 2024Q4. + To follow the status of that and other projects, go to the AIDC Toolkit + projects page. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ReleaseDateFeatures
    1.0.02024Q4 + +
  • Utility library
  • +
  • GS1 library
  • +
  • Full-featured demo application
  • +
  • English and French localization
  • +
    +
    1.1.02024Q4 + +
  • Microsoft Excel add-in integration
  • +
  • Google Sheets add-on integration
  • +
    +
    1.2.02025Q1 + +
  • GS1 element string generation and parsing
  • +
  • GS1 Digital Link generation and parsing
  • +
    +
    2.0.02025Top secret (but it's going to be big)
    + +
    +
    + + +

    + The AIDC Toolkit is broken up into a number of packages, each of which builds on the ones that come before. + It's not necessary to have a full understanding of all packages in order to use develop code using the AIDC + Toolkit, and where critical "must know" information is presented, it is called out. +

    + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    dev + Shared development artefacts. If you're not developing or maintaining the AIDC Toolkit, this package + may be ignored. +
    core + Core functionality. Specifically, this package is responsible for internationalization and + applications built on the AIDC Toolkit must initialize internationalization first via this package. +
    utility + Foundational utilities. This package provides classes to manipulate integers and strings, + independently of any AIDC problem domain. +
    gs1 + GS1 AIDC Toolkit. This package is essentially an implementation of the identification portions of + the GS1 General Specifications A working knowledge of the + GS1 identification system is necessary to use this package. +
    +
    +
    diff --git a/Writerside/topics/Utility-Package.topic b/Writerside/topics/Utility-Package.topic new file mode 100644 index 0000000..e8f59c2 --- /dev/null +++ b/Writerside/topics/Utility-Package.topic @@ -0,0 +1,395 @@ + + + +

    + The utility package provides classes to manipulate integers and strings, independently of any AIDC + problem domain. The package has been designed to maximize performance and minimize memory by reducing many of + the typical AIDC requirements, such as serial component generation, to on-demand generation using standard + JavaScript Iterable, Iterator, and IterableIterator types. +

    + +

    + To provide the most flexibility and to handle the most significant demands of the AIDC problem domain, the AIDC + Toolkit uses the JavaScript bigint type, with many functions converting from the more primitive + number type if provided. This gives applications significant flexibility at a small performance + cost inherent in bigint operations. +

    + + + +

    + Many of AIDC processes can be reduced to a simple statement about sequences: +

    + + +
  • + "Give me a million serial numbers for manufacturing." +
  • +
  • + "Generate a handful of GTINs for my new product line." +
  • +
  • + "Label the containers in the shipping area with SSCCs." +
  • +
    + +

    + Each statement has a quantity and an output. Implicit in them, however, is the requirement that the + generated output be unique, not only within itself, but also within any previous outputs generated. A + sequencer is simply a utility to generate a sequence of integers given a start value and a count. +

    + + + The AIDC Toolkit is not responsible for maintaining the history of any sequencer. It is up to the + application to ensure that the start value and count don't overlap with any other start value and count + for a sequencer used for the same purpose. + + + + +

    + Create a sequencer with a start value and a count. The count is typically positive, which means + that the sequencer runs from the start value up. If negative, the sequencer runs from the start + value down. +

    + + + // Sequencer starts at 33,000 and will iterate 1,000 times. + const sequencer = new Sequencer(33000, 1000); + +
    + + +

    + Use the sequencer. +

    + + + +

    + Use it in a for loop. +

    + + + for (const value of sequencer) { + console.log(value); + } + +
    + + +

    + Use it as an Iterator. +

    + + + let done = false; + + do { + const next = sequencer.next(); + + if (next.done === undefined || !next.done) { + console.log(value); + } else { + done = true; + + // Sequencer returns absolute value of count when iterator is exhausted. + console.log(`Total generated is ${next.value}`); + } + } while (!done); + +
    + + +

    + Transform it using an Iterator method. +

    + + + const sum = Iterator.from(sequencer).reduce((accumulator, value) => accumulator + value, 0); + +
    + + +

    + Pass it to a function. +

    + + + // Generate sequence of 10-character strings. + const stringSequencer = NUMERIC_STRING_CREATOR.create(10, sequencer); + +
    +
    +
    +
    +
    + + +

    + A transformer transforms values in a numeric domain to values in a range equal to the domain or to + another range defined by a callback function. +

    + +

    + There are two types of transformers defined in the AIDC Toolkit: the identity transformer and the + encryption transformer. Regardless of the type, before any input value is transformed, it is validated + against the domain provided when constructing the transformer; if the input value is less than zero or + greater than or equal to the domain, an error is thrown. +

    + +

    + The identity transformer simply maps any input value to the same output value. +

    + +

    + The encryption transformer maps an input value to an output value resulting from repeated shuffle and + xor operations defined by a tweak. In cryptography, a tweak is a value that alters an operation to + change or "tweak" the output in a predictable and unique way that is hard to reverse engineer. Normally, + a tweak works side by side with a password to generate a cryptographic key to ensure that no two + systems can produce the same output from the same input and password; each system defines its own tweak + and the password is kept by the user. Because the tweak is applied to every encryption operation, it is + inherently less secure (e.g., a system administrator may know the tweak but that's not enough to + compromise any user's encryption), but for the purposes of the AIDC Toolkit, it is secure enough. +

    + +

    + Suppose that you're manufacturing a product that is valuable enough to be of interest to counterfeiters. + To protect the product, you want to generate a unique serial component for each one you put on the + market. If anyone submits a warranty claim, the serial component will tell you whether the product is + legitimate. +

    + +

    + You expect that you will manufacture at most 1,000,000 units of the product before releasing an + upgrade, so your serial components are going to be numeric only and 6 digits long. If you generate the + serial components in sequence, then generating 10 of them starting from unit 200,000 results in the + following: 200000, 200001, 200002, 200003, 200004, 200005, 200006, 200007, 200008, 200009. +

    + + + // Transformer has a domain of 1,000,000; no tweak means that the identity transformer is used. + for (const value of Transformer.get(1000000).forward(new Sequencer(200000, 10))) { + console.log(value); + } + + +

    + The sequence is predictable and a counterfeiter can easily guess at valid serial numbers, which will + cause problems for distributors and retailers when they see duplicates in the supply chain, problems for + your customers who believe they are buying a legitimate product, and problems for you when you can't + easily distinguish legitimate from counterfeit. +

    + +

    + Using the encryption transformer, you put some space between your serial components, making them 8 + digits long, and you set the tweak to some random value. Generating 10 serial components starting from + unit 200,000 results in the following: 14608575, 00118914, 14609085, 00250498, 07625339, 85755635, + 41179259, 67532896, 02000912, 19087354. +

    + + + // Transformer has a domain of 100,000,000; tweak means that the encryption transformer is used. + for (const value of Transformer.get(100000000, 8675309).forward(new Sequencer(200000, 10))) { + console.log(value); + } + + +

    + The sequence is statistically random and a counterfeiter is highly unlikely to guess at valid serial + numbers, which will make detection of illegitimate serial numbers significantly easier for all parties. +

    +
    + + +

    + The Transformer class underlies most AIDC Toolkit operations involved in string creation. + The forward() method takes either a single bigint value or an + Iterable%lt;bigint> of values. This provides maximum flexibility, but it comes at a + cost. All inputs are validated prior to transformation, which can add to the system load when + transforming a large number of values. +

    + +

    + When dealing with Iterable objects, transformers will recognize Sequencer + objects and will validate the start value and count at the beginning rather than each value individually + as they are transformed. This reduces the number of validations from however many entries there are in + Iterable object to two. It also ensures that the client code deals with errors at the very + beginning rather than in the middle of its processing. +

    + + + flowchart TD + ValueOrValuesType{"Value(s) type"} + ValueOrValuesType -->|Single value| ValidateSingleValue{{Validate value}} + ValidateSingleValue --> ProcessSingleValue[[Process value]] + ProcessSingleValue --> Return["Return result(s)"] + ValueOrValuesType -->|Iterable| IterableType{Iterable type} + IterableType -->|Sequencer| ValidateMinimumValue{{Validate minimum value}} + ValidateMinimumValue --> ValidateMaximumValue{{Validate maximum value}} + ValidateMaximumValue --> ForEachSequencerValue[/For each value\] + ForEachSequencerValue --> ProcessSequencerValue[[Process value]] + ProcessSequencerValue --> NextSequencerValue[\Next/] + NextSequencerValue -->|Not done| ProcessSequencerValue + NextSequencerValue -->|Done| Return + IterableType -->|Not Sequencer| ForEachIterableValue[/For each value\] + ForEachIterableValue --> ValidateIterableValue{{Validate value}} + ValidateIterableValue --> ProcessIterableValue[[Process value]] + ProcessIterableValue --> NextIterableValue[\Next/] + NextIterableValue -->|Not done| ValidateIterableValue + NextIterableValue -->|Done| Return + +
    +
    + + + +

    + Validation is a requirement for any application. The AIDC Toolkit provides a simple but extensible + validation framework built on two interfaces: + StringValidation and + StringValidator. The two + are related in that an interface extending StringValidation may be passed as a parameter to + the validate() method of a class implementing StringValidator to restrict + validation further. For example, the + CharacterSetValidator implementation accepts a + CharacterSetValidation + object that can constrain the length and limit the way numeric values are expressed (e.g., exclude + zero as the first character). +

    + +

    + The StringValidation interface is a placeholder only; it's empty, which, in a + structurally typed language like TypeScript, + matches any object, so it's up to StringValidator implementations to decide what the + implementation type should be. +

    + +

    + Validation is straightforward: if a string passed to a validate() method is valid, the + method returns; if not, a RangeError + is thrown. +

    + + +

    + The following validator types are predefined: +

    + + + + + + + + + + + + + + + + + + +
    TypeDescription
    Regular expression + Validates a string against a regular expression + . +
    Record + Validates a string by looking it up in a + Record + object. +
    Character set + Validates a string by ensuring that each character is within a defined character set, with + additional validation parameters optionally constraining the length and limiting the way + numeric values are expressed. Predefined character set validators are: + +
  • + Numeric (0-9) +
  • +
  • + Hexadecimal (0-9, A-F) +
  • +
  • + Alphabetic (A-Z) +
  • +
  • + Alphanumeric (0-9, A-Z) +
  • +
    +
    +
    +
    + + +

    + String creation varies depending on the type of string being created, so there's no single interface + that can be implemented. There is a pattern, however: +

    + + +
  • + Creation is done via a create() method. If the class can create more than one type of + string, it can define additional createNNN() methods as + appropriate. +
  • +
  • + The create() (or createNNN()) method is overloaded, + with a parameter accepting either a single value to create a single string or multiple values to + create multiple strings. +
  • +
  • + If the value to create a string is of type bigint: + +
  • + The method uses a transformer and supports sparse creation. +
  • +
  • + Because of this, passing in a sequencer is + strongly recommended when creating multiple + strings. +
  • +
    + + + + +

    + The following creator types are predefined: +

    + + + + + + + + + + +
    TypeDescription
    Character set + Creates strings by mapping bigint values to fixed length string representations + using the character set as the "digits" of the string. Predefined character set creators are: + +
  • + Numeric (0-9) +
  • +
  • + Hexadecimal (0-9, A-F) +
  • +
  • + Alphabetic (A-Z) +
  • +
  • + Alphanumeric (0-9, A-Z) +
  • +
    +
    +
    +
    +
    +
    diff --git a/Writerside/v.list b/Writerside/v.list new file mode 100644 index 0000000..76e744a --- /dev/null +++ b/Writerside/v.list @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Writerside/writerside.cfg b/Writerside/writerside.cfg new file mode 100644 index 0000000..32eba36 --- /dev/null +++ b/Writerside/writerside.cfg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/.nojekyll b/api/.nojekyll deleted file mode 100644 index e2ac661..0000000 --- a/api/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/api/assets/highlight.css b/api/assets/highlight.css deleted file mode 100644 index e675d6a..0000000 --- a/api/assets/highlight.css +++ /dev/null @@ -1,85 +0,0 @@ -:root { - --light-hl-0: #AF00DB; - --dark-hl-0: #C586C0; - --light-hl-1: #000000; - --dark-hl-1: #D4D4D4; - --light-hl-2: #001080; - --dark-hl-2: #9CDCFE; - --light-hl-3: #A31515; - --dark-hl-3: #CE9178; - --light-hl-4: #0000FF; - --dark-hl-4: #569CD6; - --light-hl-5: #0070C1; - --dark-hl-5: #4FC1FF; - --light-hl-6: #795E26; - --dark-hl-6: #DCDCAA; - --light-hl-7: #267F99; - --dark-hl-7: #4EC9B0; - --light-hl-8: #008000; - --dark-hl-8: #6A9955; - --light-code-background: #FFFFFF; - --dark-code-background: #1E1E1E; -} - -@media (prefers-color-scheme: light) { :root { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --hl-8: var(--light-hl-8); - --code-background: var(--light-code-background); -} } - -@media (prefers-color-scheme: dark) { :root { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --hl-8: var(--dark-hl-8); - --code-background: var(--dark-code-background); -} } - -:root[data-theme='light'] { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --hl-8: var(--light-hl-8); - --code-background: var(--light-code-background); -} - -:root[data-theme='dark'] { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --hl-8: var(--dark-hl-8); - --code-background: var(--dark-code-background); -} - -.hl-0 { color: var(--hl-0); } -.hl-1 { color: var(--hl-1); } -.hl-2 { color: var(--hl-2); } -.hl-3 { color: var(--hl-3); } -.hl-4 { color: var(--hl-4); } -.hl-5 { color: var(--hl-5); } -.hl-6 { color: var(--hl-6); } -.hl-7 { color: var(--hl-7); } -.hl-8 { color: var(--hl-8); } -pre, code { background: var(--code-background); } diff --git a/api/assets/icons.js b/api/assets/icons.js deleted file mode 100644 index e88e8ca..0000000 --- a/api/assets/icons.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - addIcons(); - function addIcons() { - if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); - const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); - svg.innerHTML = `""`; - svg.style.display = "none"; - if (location.protocol === "file:") updateUseElements(); - } - - function updateUseElements() { - document.querySelectorAll("use").forEach(el => { - if (el.getAttribute("href").includes("#icon-")) { - el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); - } - }); - } -})() \ No newline at end of file diff --git a/api/assets/icons.svg b/api/assets/icons.svg deleted file mode 100644 index e371b8b..0000000 --- a/api/assets/icons.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/api/assets/main.js b/api/assets/main.js deleted file mode 100644 index 21a5d74..0000000 --- a/api/assets/main.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."}; -"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); -/*! Bundled license information: - -lunr/lunr.js: - (** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - *) - (*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Set - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.tokenizer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Vector - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.stemmer - * Copyright (C) 2020 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - *) - (*! - * lunr.stopWordFilter - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.trimmer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.TokenSet - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Builder - * Copyright (C) 2020 Oliver Nightingale - *) -*/ diff --git a/api/assets/navigation.js b/api/assets/navigation.js deleted file mode 100644 index 195108a..0000000 --- a/api/assets/navigation.js +++ /dev/null @@ -1 +0,0 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE6WYYU/bMBCG/0s+w7aWwUq/hbSCaG1XNYVNQgiZ5NpapE7lOKjdxH+fEtrGSZzzAd8Qfu/xe2ecO3P/z1GwVU7f8RIJzomzYWrl9J11EmUxpF/z335ZqXXsnDjPXEROv3vihCseRxKE078/hvNOT+Q/HQkvTHL2dGTs16ussxwWszR1+o5Ko1OensJWgRQsdl5PKmxfcA2+yESoeCI0eC6o0i++1xhuFM0gTTIZwlUmohhQYEON0P1ObzIUL1wmYg1CMwoiW++ZNU2V1nt90HC3isdc7ZrHsV8gnYivQLI8p6DIoYSp3UZD1WQ19LfLH53zrp7pQX4D8QZkSS3O0cR9E1a5nW5PY84lE+kiketC77E4fmLhc5ths9rm+xiFedZEmF8/AqG42pGYBjHGHopQ7jZ5ZiS6UY7xAyW5WN6xmEdF/Uo0FwrkgoUavS6uFfn8og2cSDo3kRh2BsvhdmPA1itRE2I1mEGYyIjErAjRc9uGcZZWCvp2948ndRDUL37J8FZMslCBDEART8gcghXUEIGVwCjHCuFJIF3jus52gXUjRSzV9V6MeZ7cjocz33v0ZkN3/mtmamIHck1a72ca9Gb4xx0MPX/sjihggxyBu6PpjXs1nNNMN9U29DsqYtI38Hp3uw46zc52HXRIXc31e13MVc7RNVii/tmlHVVqEFS4gvB5wJdcBdnaNFXkrIoIGSZKnZ2EYFYsLS6sZ8U1lQh2kWSy0EwlD+E38OVK2bfAo7Dt+At8YDs0ylb749djyrhEz6CipJ4FCd8egY2hxayx4GHxZf0Ju/luA/WGlNONwvbGNJWw4Ns2WLlKa20mhr7eTmnYtnRJY6q0NtkW1jLZYDvhA84IWASyrbblantVJtkaJA8/4NgaiRm/nvuTNtuHtXbTuWIELxC3hReLeDwyvhwopJFlkohc+4466ttQo9GpHCRnMf+bN54P2ngXwlINSzx23UjR2J+VHYAcxKcSz0+xc/Z45478ATYT1HXIXFBIu0Rkl4zs0Yg9MrAUBhhQk2HA0YTgTxchsCDwPDutqsK8zVyfYK6iwnA+CedTccGMUrqKCsMN5hR3FRWa7IRwFFUVmqxPStYnJutRaB4N5k39gZ1WVWHexhRvY5q3xset8Rq2zSXGF3HtK9zyIbXtZYmzzROtD/vDF4jymMf7MboFLfaznRy18A7AB7u4rQKf2PXtKTBmgi1N/7UsXwt7SZP18PrwHxM0rFaUGAAA" \ No newline at end of file diff --git a/api/assets/search.js b/api/assets/search.js deleted file mode 100644 index 8c66e0f..0000000 --- a/api/assets/search.js +++ /dev/null @@ -1 +0,0 @@ -window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAAE82dX5PbNvKuv8opze2sf0I3/+bO63izU8d2UrazZ89xpVyKhjNmRSPNUhrHTirf/RRJQQM0X5AASY33Ks6IABrgC6CBpwH+uah2v+8X3334c/Fbub1efEeXi+3qrlh8t3ixq4rF5eKh2iy+W9ztrh82xf5/6j8++3S42ywuF+vNar8v9ovvFou/LnX6JDplUKpse7UtD6dMbh6260O52x6z0b+D/C4X96uq2B60Gc78n19fvy32u4dqXfz9YXu9KfoK6zwcVHJ2KvhKZW9ebj+X1W57Vz+qiyy2D3fH4sQjQQWp5PEdvLryzf2ifdZdgkyFS3xXVJ+LyrvQ0+NTy/17rcOAgh+fH1Xyo8x/PpSb8vC1o/Tj33vFTss8VfFjXleHolrVonvXiOyU5+HrvZGjeKpfG9o8o9Eo6xb4z2Jzb7TeMa9uke1zoUXSMnos86ba3QUVdHFM0VuaTGmWnpCKjG7vaGQvU7qJR1tltslq3zz46ybQHCvdTJY8r6rV11AzdKI5W+OwCxPkhZVuJkterDabX1fr30ItMdKNtSSJY34c4D5+rEeBsWY8e/zn39SzU15Bpj2D2bmablt8OYRZe0wxy4u72VUvV+tPgePMKdEsNtyt7sPKbxPMU/9ycwgczy9OaWaxoCquH0JH11OaWSz4UB5Hg1/CrPio032cZIk9tb+vVtv9za66ax7vjCr2DI8fDp11e8cP7wIvPAcLRwWx33F6uEejxjOT/I3bwj0OyTIu2oc9a2q98Fg9vuz1brs/VA/rvhmsU7SdaIwJwtG53t2tyq2/AafnR5VtNvn17h+76vdVdR1S+GOSx/IP++u/lfu/3Ve7Q7E+FNcj7bkJteYG2DKt7HfFfx6Kbc+A6LLBSDiXLa8fNofyvsfXdNliJJxBI2+Lz0W1D7DCTDK7RqpQaypgi3/Z1irsutgeysNXn1ERPHu20dFVVmeUPL6CcvupqErHK0CVHD96Ok0LGUX7TQoc0ZwWjR/Zguwb6k099o3tVQP2Bc1GPeZ1ZqXpcguaHZymoVniPLYNzh5DNsJZ5Dy2Ds4uQ7bCWWZmW4dGe6eNaNSfbps5G7zcrquv97UT7TMfwKfPNiO4Sxs1J+Cqjp8VeswLmReGzBIj2+H3YuXeH+qxSSecaE3YPNVjz/iZKtDGobmq18axs1XgWx2Yr3pNHDVjBbXh0JzVY97YWWuMfYPz1rCdo2euMfYOzl3D9o6evYLsHZq/euwcO4MN2hcbFPBQldvbf6025XWzHXSys9weiupmtTZMlc8GT16uco2JYqjYXfCUqZb0OFZ8bnMpQsu7MBL2TwKyYp67fKF2+JIBmcmpHtileVvcvvxy330tUrXiudB3EuouoOKCHAVZL+dkUjUPhhlySjPaBnPAWFfF6lC8rKpd9brY71e37rEDNwtKHzYBe1ra6Uxe9nn3JLcVtmLXu+raR7HWc+dXbLe4QMXa9XI7tV/vizf1P4NMMVLNZEfVPBhmxSnNaBsC9QhsCNCjywpjSfhlvXnYm/NoG95ympr178Gz2OPM8Wa3Lbyyvzg+ObBqOZkMS/tHWe0P/6+odn5Fmo9PKvf5ZvPm4a6oyrVfwdbz4SWbvsmLT6tqtT4U1bvi4OcZ4RSTPJW7clvePdy9Kra3h08jy76QmfS3i6PeLgNXX2YwUGQyp4FFpy8GGmdmMKdh97t9Wf/+483N3tjCCbSuk8ucJq53d/e7rRnyGGidmcFUw4zZHjzcMwnDp88987sLDZr/cU2ds+/aeHyUaXb6s9n2rvzDPT972nfMY1YbT3393cP9/a4a1YYgj4k2WusC/fCk5juTTVfb6+LLJMN0DmezrthPt6/JY0YLte/ZdRsDTESZhK33Rtk8xdQZWtEO2npRL3qHw7XkY2cM1IJF+YZodaozPBs2STynpeOzk/zT18//ffX659cf371/e/Xmh4+vXr754f0/g0u/cGXjLw9dcYdc73e/F9WPN2oZbpuZdIo9UzwIy6Cx/sNAE7U7RiPM0elmtmSQRQxY5B2IFWzZIHUYsMw7LCvAss+rzcMIg3SySXZM9EHtFnJ5oD7IY7Sd3v6o09aONzq7vaN8U8veXs90BnvH+6m4WZ/EPn+fFRvZ9VjPaqmn/9pjq/BeZ7Z2nC8rx6QAT/Z/nakC4+2euXn50W148/Prl2+vXnx88fbl8/c/vj2Z+HlVlfWhskcjxZOhPp5R5j9f/vv59y9fXL1+/sqjXPD0hLKfv/rpn8///vK9V5W7D08t2b+50ePBXPxU+A/vVOd46g/vVO/RVNP2q4x6bK5zMh/pt7O2xVEK54OlPD4SUkpiTtLF+rfvy9vy8O7h8RTq41nvuhjrmcnlDBYysoRPq32zhH0xVFL3wZEl3uweqib9T1W5Lv5PUd5+OgyW3p9orCXl5yLckt5EU97zabz9aVVWfe/benCO9+5TsjtBiAXytMJNuW72Ev538fW9uV3R0rS6XPhcSJEGtvvh/dWboCIujimc5eC0jtJfhRb+aray37178SKs8GOKeWr+9rm8QGKo6m2KeUq/Ci79asbS370Nfe1tinlK//59aN3bFDO1/JtA1R1TzNTywb393Yy9/UVo4S9mK/vFT1ffhxV+TDFPzV+H1vz1tJo/Tio/VcVN+cUxkzz+OHb6eKde7O7uV9uvbVbDZVyAJO56GtbD8n/+6UVo+SDJ+PJ/eKeykJpnY8vEEAEUav488qXiOB6Y+cVQDI9M5QgeusrIq7jjg9PK4tyzrObB4LLM0KROP+2PT4Jd2zdASbzPsAgWn5J9Q1gG8gpsKhxs3lfGECmzG0peYtTrhIdZcOHKLLzd+vab77tDfKCdVg7zGrdxxpv5GLbpDzQba1RV3BRVjZzgYBpooyuzM5k8tVtcwJwmGut9aMPHwMGoA2+zfI9whFg1dJJjIC9woONxbn9VrK6LyuGsPf44dl7vBiKDfPujkO0EuJyr7XVd811lbxq5S+wkGF/2yy+HYlujCN+yOwkCyzansKMzFD6TDSacMKFtupoaVfqFlZG7lYYbYZ6519Pq4Sm4D/xMrNDwzOxZC8cEfUbT++dtb8l0pu8zmhw0q3vWYHhyf4oKzTSADE39c1YlyCPwND+Y24YaHeIvBNrs4zYMZ9nrPdQ78w7fQf80gRIoHsr34vSYu4onG93loJ0AUE7/PsBwOZlXMdnU2kR+tYlCy7Ff+6vic7FxlNT8NvLFP99+Hcz1on2o3/rWQFjG2+KwKjcvdtv9w13nnmlQXOf50SX/ePhUVO8/rbahJrgTBtpC9mt0H5HROYzzCM2wmT+Kavfyy/1q2z37iQu5sFL0V9A7Gt0U1kDxdpKZyhd909MEz67qa8Wu+of3q74QaUbGWXmbeL+67sxDvqY60p7BZN9QbYehPgHavS1m+2u3h3JrTcADxRvPzyRrwSI8ZQ2gRN8xlIAWAYvPAZscq8xZNO2MGBxon3ksCVnrDhg2fVHraSVYwA71/XErVW89WavSQS0FLz897ehfag6YNX1NGWplqF8xdaHoss/0d97stvVj/ntmpsm+iUd7SYMzdJAFM07e3s02dV4Pq+D8U/6IioZ4A2HV83UUxrydoBkzzOyRk+lUjfXOs6M6zvntHzs7h1Vnht3oyXUbmNMD+/3IjekZ+onTEwjtI+F71JOt9/cfwiozw3b1fHWbcQqfvHM904jWs74aN655LL3OMVOajti7oipXm/KP+jjIOG8sKIfzuWThZszol4W14lTnbERV5/fQxlY5xE0bUVFfX230G7OHu32TzQt9f9Ir97w0oi6uzJ+6VoPT1PS6eUdPnaeGIDBz3vpZBfhvtJ21tvN1up78z/AmvRcb46eE/k3Zmd7KwGJvhPUjV3wz1cd/2TSiatPXTjPVcmABNWZuHreKmk2Fc05ZI9ZTM9XDf1E1olrTV1Zz13L2MXziGmvW0bxnoTVhTJ9jtTW6mrEViTuQtOeAiFfi0UdFem9hDSve40JW7wynnWwJsLnnjIvHOjysIjYNGU1Cvi0F+RYE5Enox7ckH2ekHvMTj0mT2X8eyqrY99y5MM783oznq00I9Zhz/TGt1YPoxlOSjbNSjbMTjbPRjLOSjKeiGE9JMJ6EXjwZuTgztfg2xCKkUsZlVm2I+cd/PX919X3PhVbysZFXZ7WB5n6l0SylZV6FZbOU9ZjJu56yjKfGlvXqzXCtzGdGllPfzzNYkP3Q2Bq9fX41XCXrobElXfmUdDVHSe/eerwm66GxJX3/3qNO1kOjW+/NsCLsh0a33pVP613N0HovPAp6Mb2c+v6bwYLsh8bW6LVHjV6PrFHvFRPyEvahI+FeF7H3nsZ9dG8mFH0BcnGvFZy1HvClX6+2q9tipIUyi/nNm2LXzAadXof740oB79QD8oabOO1aE8vQ6Su9sa98vM0jF3XhhgZed2IZOWL9NkGro64+cYxCY5dqE8zvLs/G2T5uVeZh+LQrUabdV+1p4qTrUaCFoy5H0TmBw80+t2sMzKQDySbM5evV/WpdXw09oeQLI5Oe7b6BqjtUJz4UMsq8/m+GhBk3x/F6YN2Uo/U6u2M9exuy852T8SYPfvLkv6JhtZXHBv5b/5F7vyY+1by3qTsfbhlficFvuPxXNLW2Ujd1/yFjv6Y+1by3qZ9vNjPY3+byX9zAzzcb3bbJDG1b1/cMVy4Jf3Dc6R3vpj7H9UszLxVGV2b81UtzLBxGmz3u2qWpy4jR5s5y5dLMi4rplRlcW4TVZCT4Gefzjb1qafqC4xsO8WL58bf+W3uGskTrkHG7eIGKB5t5Zx4fB/b4AoZItNV3ZuNnsPqJB5b+/cEwtYBtwhmHFHExketrpRoSjllMy0uJ6m/dVcW++9k0VMiFSOHu7ab5jtLXu+3nojq83w3cCiQ/7ikSTbJhu6vu6rBS90UbVunm45PK9bgOqtPu4DIonxshPL/n1nc1FBz15cVQM9oSIoieS6Lms6j/yihkz0wXRg19tjfkuih7ID7LZVHjv+rr6uzeF0WFzl79rTPMq3wGuGbNGjS62SlmK935reBBK7y2zAKtcX4feNAar10lLzUMXhpm2QCvDJtxwBu4QAwOeHNEhGETrZWNx11ic2yfBDRWWDPNYIXVHmE3iM28L+Nhn8fdYXNstXgpp/fWsKm7Jx4WhN0XNvOGSIh9wzeFzbnH4dHXym3p2VDHJ+f3cwaoX/+cgfDeLHYcfi9Wv/kZoR+d9cUIuOgxc57HgjEeBfQlZrNojFcB/YnZLDIZj4cxEubMolfnnpnn6DdicyzAG5cbYR4z1Zgdr7CW6rlLxN1QI/aFHBOE/2WNfa/UL+k3u6jxTEtmzwY78yWNZ15oB1dyxgsaRy3Pgw0OWYCEGHyeixmnLFtGdJMz2z5ysRNSkbNfxzhtiRTUu89yEeP4hVVYb5j7CsbZlmMh1Tj75YvzLOJGVeks1y5O35MaM2o9wZWLY9e0QWPX5OVueCUCVsJB0/eYRfJU693r5xDTw5fW06TTs+oOavHwBfkcdveu1cPtH7WMn6MevSv88HqMWvzPUQ/XvkB4FUK3DKb2Xq/dhHGT94iNhqm1Gd6DCHcFRwXkzFKPmSrwbfTUs+cySk5jwnSCvcDA25z7+kxA+vPt2YQa8cT3OM+1exNczW9zh/O0fZzgSs55f/Ngv5eXEM/YMzoXHIOJ5Qzq065Rm1GBw7rCX0o31yeohXaMzlMbmPt5a7XbrleHYjvlumLZV4wMn8r2Xvd3Sh28omrO0e8n3tre1+1HOABnGdnmuBO3d3g75724obWd4Tb3vrp63uV+LmfjzFe7e9T8DFcDT4EXY/3F+a/bnoaQgutxxuveZwMywZV6movep6GZcNf9fFe8j4c0I/T2RJPZSFwTXKGnudZ9HnAzvnLffNSeeJ372TjODFV0wpzwcW8y0ZnFn+jFOuHe/Ri2M0s93IAnuBLhlGe2JfCcC95vU4Ne6DN6I2IE+Zl9W+IcmxHfpkYuEDSyMqE0aJb+7oWEJjgII7jQLPUahkMjndExhGjGGs1ZlW+otjm3jqZQo5F+qN83SAYo67cM7n36wN4nCOr9dgG9ZwvmnTuQ9ywBNGOdqbntGwowmepYTLP3XN9wEWOh1xdcztdfx37PZZZQ6acIk366EOmzhUefOTT6LGHRZwyJfopw6KcLhT57GPQThUCfNfz5W4Q+nyHs+elCns8ecvgk4YbnDTU8f5jhmUIMzxheeO7QwqcIKxy3LvxpUDLWEyGrPWvg/uGd+vjix9c/PX/zfz/+9PblP67+/fH11Zur1z+//vjq5Zsf3v/Ts+wLn4zcvrBd3QBbn/97JltlRhNt/fmnF/O0q09GZ7B1VLv6ZDSDBrLpSnVnMat9o9XpziLcPssfuHU4mcCOW+E9jirPw6ECRff4Tt5WBH2qEtjgWMFMKj+s7DnKvd2rOo5otf0a9gZAusm2PNyvR9kC0s3RLllwi2Tzld/QzX+snJt3wAA7ycR+WRX74vA+3AiQbvq7OJTbPv8evQwryXQLNsEGbOYsf79frwMNsJNMb4FqVYY2gZVkugVluAXlvBbsq2AZWEmmW3B9CG4DK8kMb2EbqkQ7yQxvIXw02M87GqyDDVjPWf76vrwONMBOMr0F7oJb4G5MC/xyuSi318WXxXd/Lj4X1b4O7v5uQc/4Wb64XNyUxeZ6v/juQ2vW5WK9u7ur87pcXO/WD80/fzk+9q+ino3qh9un/2e5uPywvIyTZ0zRL79cftCJmx+aP+g8Hv/SJFSLyw8KJVSdhMpKSIvLD4QSUichWQl5cfmBUULuJGQrYbS4/BChhFEnYWQljBeXH2KUMO4kjK2EyeLyQ4ISJp2EiZUwXVx+SFHCtJMwtRJmi8sP2WWsnpFKrIRZJ2FmJcwXlx9yVGLeSZjbAqj1oKB2VFc8SqhHuexVQD+2gFQtC4W119WQskWkamkoqD/V1ZGyhVTfN/xBQQ2qrpaULSZVS0RBHaqunpQtKFXLRMWXHD9TpOzEXU0pW1SqloqCelRdXSlbWKqWi4KaVF1tKVtcqpaMymDirr6ULTBqBAa1SV2BkS0wqjVDUJ3UVRiJIaoZo6DCCIxStsKo1gzhEa6rMLIVRpHzPVNXYWQrjGrNEJQndRVGtsKo1gxFl1H8jDmzE3cVRrbCqNYMxZdMz/LUTtsVGNkCo1oylFxG6bMsFlXuCoxsgVEtGUph4q7AyBYY15KhDCXmrsDYFhg3Asth4q7A2BYY15LhJUzcFRiLebCZCBVMDKZCW2BcS4YJJu4KjG2BcS0ZxnNwV2BsC4zdAuOuwNgWGDsFxl2BsS0wzpwa4a7A2BYY5+7G7gqMbYFFS6e0o67AIltgkXKqM+oKLLIFFpFTnVFXYJEtsIid6oy6AouEs+UWWAT8LVtgUSMw7Kt1BRbZAovcAou6AotsgUVOgUVdgUW2wKJaMhzDgrsCi2yBRe4RLOoKLLIFFi+d6oy7AottgcXKqc64K7DYFlhMTnXGXYHFtsBidqoz7gostgUWR051xl2BxcKjj53qjIFTbwssriXD0I+KuwKLbYHFtWYY+lFxV2GxrbC4UVh2yepZGtvyjLsKi22FxbnTp4i7CotthSWNwqATlnQVltgKS5SrUyVdgSW2wJJaMhF04JKuwBJbYEktmQg6cElXYIktsCRyNnbSFVhiCyypJRNB7y/pCiwRy8bE2V5g4WjrK6kVE8G5OenqK7H1ldSKieC4m3T1ldj6SnJ3e3X1ldj6SmvFRDHqkGlXX6mtr7SWTJSgZWTaFVhqCyxtBIYX212BpbbA0kZgcGGTdgWW2gJLmw0J2KfSrsBSW2BpsykB+0XaFVhqCyytNRPDfpF2FZaKvYnU/arA9oStsLTWTAwH3rSrsNRWWFprJobaTrsKS22FZbVmYqjtrKuwzFZY5hzBsq7AMltgWS2ZGLZX1hVYZgssqyUTQ2lnXYFltsCyWjJxChN3BZbZAssageG9pK7AMltgWSOwHCbuCiyzBZbVkkmWMHFXYJnYAKslkyiYGOyB2QLL3ENY1hVYZgssryWTwCE/7wostwWWK+fknHcVltsKy2vNJLBf5F2F5bbC8lozCewXeVdhua2wvNZMAvdG867CcltheezqVHlXYLktsLzZWk0uI/UsSUR7dQWW2wLLG4GllxE/YxaJuwLLbYHljcAyWHJXYLnYZa0lk+B9VrDRKndal86RpP3NTm787ZheOQeT9jeZXmy4Lsk5nrS/yfRiz3XJziGl/U2mF9uuy8g5qrS/yfRi53UZOweW9jeZXmy+LhPn2NL+JtOL/ddl6hxe2t9kerEFu6zFlDq22sEm7FLswi5rPaV4x3wJ9mGXQn/N5n2KN83RXn9ns7/WU4r3zeF+v9Bfs4ef4q1ztOUv9/ybbfwUjlYK7frLbf9mJz/FG+ho41/u/Deb+SneQ0d7/3Lzv9nPT/E2Otr+l/v/zZZ+CkcfhQiARADNrn6G9YcggKQAzcZ+hvWHOIAAAarZ28+w/gAKUIIFqGZ7P8P6AzRACRygmh3+LLrk6BnHJNIj5CT012zyZ1h/gAkoAQVUs8+fYf0BLKAEF1DNVn+G9QfIgBJoQDW7/RnWH4ADStAB1ez4Z1h/ABAoQQhUs+mfY/0BRqAEJFDNvn/uIIZAf4ITqGbrP3dAQ6A/gQpUs/ufY/0BWKAELVANAMjx+Ad4gRLAQDUMIMf6A8hACWagGgyQY/0BaqAENlANCcjTS+ZnCYv5D4ADJciBamBAjv0HwA6UgAeqAQI59h8AP1ACIKiGCagldiAAQ1ACIqiGCzgcOIARlOAIKmpZO1YwQAlKsATV4AG1xBIGOEEJnqAaRKCWDvYNNCiYgmowgVpiEQOsoARXUA0qwDsICpAFJdCCamiBWuJeAOiCEnhBNcTAMQsAwKAEYVANNXD0AgAZlKAMKmpVmMAgAAAalCANqoEHapniDIAMBW1QcSvDDGYAgIMSxEE1EMHhCAPmoAR0UA1HcIRBAOygBHdQcSvC/JLTZ1kiOjJAD0qwB9XgBLzjqAB9UAI/qIYoKEfUDCAQSiAI1VAF5Yh+ARRCCQyhGrKgHBEwgEQogSJUnPW1IZChwBGqIQyOfgSAhBJEQjWQwdGPAJNQAkqoRPX0IwAmlCATKqGefgTghBJ0QiXc048AoFCCUKgeRKEAo1ACUqiGO7jCiYAKBadQSatChoMxYBVKwAqVtCrEswHgFUoAC9UwCKXwaA6YhRLQQjUcQjmiogC3UAJcqIZFKEdkFGAXSsAL1fAI5YiOAvxCCYCh0jYQDvvVgGEoATFU2gbD4dEIcAwlQIZq2ITCkVIKsAwlYIZq+ITC0VIK8AwlgIZqGIWqg57AiAyYhhJQQzWcQlGEM0DhcUKJDatQFOMMgBIF3FANr1CUXHL2LE8zkQFQogAcqmEWilKYAWAcSkAO5aYcCmAOJTiHyqhnNACoQwnWobJWhxmcUgDuUIJ3qAZhuOYkgDyUYB6qwRiOARVQDyWwh8p6fEMAPpQgHyrr8Q0B+1ACfqiszzcE/EMJAKKyPt8QMBAlIIjK+3xDwEGUACGqJSGERzPAQpSAIarhG65+BHiIEkBE5dzTjwATUQKKqIZz4H4EqIgSWETlcY+KARpRgo2oBnc4VAzoiBJ4RDXEw6FiAEiUICSqgR4OFQNGogQkUXneo2LASZQAJbRculVMgJSQICW0VG4VE0AlJFAJLck9lBFgJSRYCTXsQzGOXAawhAQsoWXk7gYEaAkJWkLL2N0NCOASEriEls4wFgK0hAQtoYZ+KIa4hQAuIYFLqMEfiglnAGKKBS+hhn8ohk4FAWBCAphQezaCoVNBgJiQICak3AtlAsSEBDGh9owEHkoIIBMSyIQaBIKHAgLIhAQyoQaB4KGAADIhgUyoPS2BhwICzIQEM6H2xIRjKADQhAQ0ofbUhGMoANSEBDWh9uSEYygA2IQENqH29ATDNQ4BbkLyAAW5g6sIHaGQZygaDoK33Aidougco2hUiCMmCZ6kECok7hnL0GkKeZyiPU/hGMvQiQp5pIKcsQqEzlTIQxUNCVEM0TmhcxXyYAW50TGhsxXycEWDQhz9GB2vkOcrWnSC+zE6YSHQCfGypx8DdkKCnRCrnn4M4AkJeEJMPf0Y0BMS9IS4Z3VCAJ+QwCfE7bExuNAnwE9I8BNqeIjCUbgEAAoJgEINEFE4mpYAQSFBUKghIgpH1BJAKCQQCrUIBQfGEkAoJBAKNUhE4QBXAgyFBEOhlqHgIFcCDIUEQ6GWoUR4OAYMhQRDoZahRHg4BAyFBEOhlqHgmFUCDIUEQ6GGiSgct0oAopCAKNRCFBy7SgCikIAoFLUHGbESAUUhQVGooSIKx7ASwCgkMAq1GCXGSgQYhQRGoRaj4HBUAhiFBEahFqPEEQolI4BRSGAUitugwfgyWj4jFumBEAVGoSNGSWB6oEOBUajFKHGKKwB0KDAKNVjEMSsBjEICo1DsBsoEKAoJikItRXHMSoCikKAo1FIUx6wEKAoJikJHioJnJUBRSFAUit0hqwQoCgmKQsnSfdIUUBQSFIVaihLjoQRQFBIUhVqKEuf4xClQoaAo1EARHApKAKKQgCiU9Jy1BRCFBEShBorgaFICEIUERKHEfaabAEMhwVCoQSI4IJUAQiGBUKhFKI7ygQIFQaGWoCRL/AKBBAVBobRHggCgkAAo1AIUxyIXABQSAIVSd1wXAX5Cgp9Qg0McwxDAJyTwCbX4xDEMAXxCAp9Qi08cwxDAJyTwCbX4xDEMAXxCAp9Q2rM+AfSEBD2htEeEAJ6QgCfUwhPHXArgCQl4Qi08wXMpYCck2Allyj2XAnhCAp5QC08ccymAJyTgCbXwBEcnE4AnJOAJtfAEH2AgAE9IwBNqYIjC5xAI0BMS9IQaGqLwWQQC+IQEPqEsdVNAAvyEBD+hlp9gCkiAn5DgJ9TyE0wBCfATEvyEWn7i2OoA/IQEP6EjP8FbHYCfkOAn1OAQvNUB6AkJekItPcEdAcATEvCE8laGeHkF8AkJfEItPknw8grgExL4hPJWhnh5BfgJCX5CeeoGoQQACgmAQnnfliEgKCQICh0JCp4SAUEhQVC4ASJ4PGcAUFgAFG54CJ5SGfATFvyEGxyCp1QG+IQFPuEWn+AplQE+YYFPuMUneEplgE9Y4BNu8QmeUhngExb4hJetDDN4UwYAKCwACrcABXvWDAAKC4DCS/eFBgz4CQt+wg0OwZ45A3zCAp9wQ0OwZ82AnrCgJ9zQEOwZM6AnLOgJt/QEe7YM6AkLesLtLVPYK2GAT1jgE25vmoJeCQN8wgKfcItPsFfBAJ+wwCfc4hN8Yo0BPmGBT7jFJ3g+Y4BPWOATPuITOJ8xwCcs8Ak3NATfGQPgCQt4wu31U3goZUBPWNATJjfDY0BPWNAT7jl1wgCesIAnTO7VCQN2woKdMPWsThiwExbshKlndcKAnrCgJ0w9qxMG9IQFPWFK3fMpA3zCAp9wg0NcYzHgJyz4CVPeMxYDgMLyjqqGhzjGYnRLlbymqsEhjrEYXVQlb6pqaIhjLEZ3VXUuq2L3WAyvqxIqbOGJYyxGV1bJO6taeOIYi9G1VfLeqhae4LEY3Vwlr65q2Ql0jBndXiWvr2rRiWMsRzdYySusWnSCz48yusVKoBOOetYmDNAJC3TCUc/ahAE6YYFOOHKuTRiAExbghFtwgk/AMgAnLMAJt+AEH4FlAE5YgBNuwQk+A8sAnLAAJ9yCE3wIlgE4YQFOuAUn+BQsA3DCApxwC05wXA4DcMICnHALTnBcDgNwwgKccAtOcFwOA3DCApxwC05wXA4DcsKCnHBDQhxzOiAnLMgJ9x1AYUBOWJAT7iEnDMgJC3LCPeSEATlhQU64j5wwICcsyAn3kRMG5IQFOeE+csKAnLAgJ9zeh+VwCgA6YYFOuEUnDqcAsBMW7ISP7AQ7BYCdsGAn3KAQh1MA0AkLdMI96IQBOmGBTrhBIQ6nAKATFuiEW3SCnQKATligE27RicMpAOyEBTvh9vyJwykA8IQFPOEjPIFOAYAnLOAJt/AEOwWAnbBgJ3xkJ9gpAPCEBTzhFp7gSw0YwBMW8ITTnnBrBvSEBT3htCfcmgE+YYFPOHWGWzOAJyzgCTcsxNEJADthwU64QSEOEQN0wgKdcHvyBMeGMWAnLNgJp+5bARmwExbshFP3QTwG6IQFOuHMfRCPATphgU446zmIx4CdsGAnnPUcxGPATliwE856DuIxYCcs2Am37MQxlwB2woKd8JGd4LkEsBMW7IRbduIYyQA7YcFOuGUneCQD6IQFOuEWneCRDJATFuSEW3LiGMkAOWFBTjh3EzwG4IQFOOEWnODrWRiAExbghNuDJ/h+FgbohAU64Rad4AtaGLATFuyEW3aCb2hhwE5YsBNu2Qm+ooUBO2HBTrhlJ/iOFgbshAU74QaFOK6HBuiEBTrhPnTCAJ2wQCecuyNdGZATFuQkas+ewH4QAXISCXISNSQEX3IRAXISCXISteQEXnIRAXISCXISHckJvOQiAuQkEuQkaskJvmYnAuQkEuQkaslJhq9/BuQkEuQkOpITuEKNADmJBDmJWnKCb+qJADmJBDmJ2qMn+KqeCKCTSKCTqD16gu/qiQA7iQQ7idqjJ/iyngjAk0jAk6iBIQrf1hMBehIJehK19ARf1xMBehIJehK19ATf1xMBehIJehK19ARf2BMBfBIJfBK1+ATf2BMBfBIJfBK1+ARf2RMBfBIJfBK1+ATf2RMBfKL/1nwq6HNRHYrrq/aTQR8+LD5+PDTfZ/xz8fH4HSEV648Y/blQyeK7P/+6XFDU/jfO2//mqv1vfYtG+48kPj6ZLPU/Iv0PnUmSHf+R6mfS5i9/PX6XqPmztrz5ra7Kqqy3HQ0Tl2zYGJF3Jh/X+gtLj5mliZGXijzzqt1F0yAyDVLemUCDzBeg2C+vzWbbfiXZzOnxa4V/LlLfjO4/rX4tDuUammZWUy39czwaB/M036XybLrtV6v5VW7kkXrqYb+qqpWdj1k9z/bar1ebza+r9W9WRpGRUeyZUXkoqtWvG7szKiMj33o1GYlWVlaP8cro12r3+76wcjG6SuKVx3p1v1qXB7uVY+Nt1aG7TdI60qD9Bx0HmXpry6uMT6tqtT7YlsaG9LPj2FRfHhqUYZuXmatheZboXP2a08612FvtujTyTXW+fsI55buvvzZs2GoMI5keppfHkbe+Riw0c9B3E0NVuZ88zRz35R+W2mNDXxlrkwNVsC8Ox48f19/CM0dD4+Wlge/sMVO7AWKjo2d+4+H6U7H+7ZTx/aq0MszMIYgCcrwub0vr/aeZOa56dtdTTvuHOyuz1MzMU5ib0mr+xxw8G393d7/bNl8rNBrcUFzqqeHddr06FNvVwR5aU8OiGokF5nX3sDmU92K4NufumpJ55rk/VA9rIS0ysiI9Nh7/Gx3/mxz9MO1iZcf/z/WIp/9QXyjRulxL7Y2R9thyPQIrPfBG+i++3WTX+JWHXf1R4dphNlrEHCIo81TOrrKa1RgdPXvEfXltZpCbLhV7zgL35fVH2OnrI2aPdfJ9y/flNRhB64XAY7/w7aZ1PlYLJcbImZ/8bdZTq36xrPTUqn9KPd9IU+Jqs7Hf7dKcyHUhSquHI11aSLWKqtpVd8V+v7q1qhgZjZ54vsImQyRKs2/lniI3MoN9P0nNTEOq3Ga6L/7zUGzXItPEzDTkZSEbE2NOyPVqLNGDi9LqYK0OvaqrAUV4yfuiKleb8o/i2h4j2RwjQ6qEWshs9TzVVdJ2q6WukhZlEvK2XTUgswYBGZb19NFdLiRGfrnfCHe9u9lVv68qyzCyFHis8PE1R36T5fXublVabhOZCtSZHZs19vPNrndVUX+c2HpxbPTnk+CORsd+jVBs19XX+7pVD9Vqu7+pxw1rdGVzcPVTWvFlvXnYS9fRGC/05kWqxebppZ0y3j/c3+8q26sxXlx2HDXrTyX45XsotnW+HQ9QWavH2K8L35QbsZQyF9eedb0pq/3hj6LaWY1oVNJzjX5Tfi6aat1X5br4vShvPx2wt5uZVVV+Wr/ZVcVq/cnu2kY2fptTqB8awywf5RIdB9fYs+ZtrmgQZ2PW1cNadOxAsd9gdMwdjadkvG3tLmh/MPabdm92D5XnW1uab82zvaudtTRRZh5+8rxdW73bdMEU+72f2/XW5RyaTpHnsuJ2vYW+IZu+od/4dXt9sJZdubWD5Ncx6jwctTM7MUV+eqizg9VbmtXzbHd7k4Mi0wPVU/xRtfr/cz8P/bZcWS2XmZuK5J+Hq+VMn9Nzi7jODrVclpkt5yn6cmttDufWZqd/Hq7qZWb1/IahOjsoDGVWz1NkG6tPZ+auPnmas3H16choK2K/cep2A/t0ZsggWnqq6s4er8y6sWfd7pzjlVm3yLNud3i8MuumPOtWiV5nbluR5/BZuXudOUBEniqvHL0uNV+d51C6V9Y+mjnV+A55e5XdV8VN+cWe9sx57+Tle25x3+7Vx+xjm+vHu9WX8u7h7uOm2N4ebHfI3I5kzzWtnXe5deZtLgA8l7Z13vW+4Gr71cN6cwuUPfenUQnuOpj7opx7Dup7dSyg+1ZzU/2nicxzC/x2b6/cTPdBsX8erq5krgM8V1N1dnCkIHOk8BzC9pVdPbMDkOfAta+c1TPXuZ5Muc4OjhS5WT3Plj/Yb8+cKOrPPvnmoWwybeN8z1ZqsnG0E5syYE8Z1BmybZc5Eiaec0WTjcsu0wHxnRW7W4PWCjD1nDAO5TazczGn6MRzqqhzcYnTXFSw5zh8MLvy3s7P3MFm/9ZHYk/MvDS2i5b+Rm6Kz4W9sazMYTD17z+dWBYLe2tKojQOJd+VwaHc4vdCphPtuZf+abVvMhsAgabl5NcEVs5dIGiuZzy9s0/Fl9V1sS7vVhsYu2EuLj09olJl29X1dVXsdw/Vuvj1YXtt72+Y/qh3jsX2c1ntts3fzb0SY3r2zqvcin00o5J+mVwX20N5U66bHd/fiq+o25gkkzx3ZzsZS8Fn5qhKmvrrlbDS8VvqFLxw2jJXx45Leo+XYo0M01OIhgYEOmfWz7Ani+1UAKP6+mNgRriK56tz5C3afWlOiJ5uTJv14atrm9mUmWeO2+va0F0Fdm1Nvyb2zU5kklhbkHonRL9b1lF67Elk25Cicrf9VGzu7cobo4qnBnRe7QBgydfYBj8K1LPHgZAnMuclv5FkU6yui6oziyzNkTPWgSmxNvG0Y6+xO2kESqnSM43GMaRb3nMzFSw6lqZzEWkrdCxA/f2Oozm5NkfbpTejKdaMONUdeKkRjI71ZP0MZ37v4G51bzvBhpV+ytBLuf2hKre3YL2VGMNC7td+xzy7eZkQ3xNvHheCIC+jy3p6Advii+ixpifhl8VuaxNyI4v0FKHr5wlvd9vayznGaXpNYIlFCvxacKAYh5Nldj/PRfZ2F1QXMwiYPR3OniIcsxqbW8CefWK4FLkOMtexnuPedlfdNZzbfsHm3lnm+YK7Ucj1x0mN8cpvSdUXMGwBH78VbYgWzNBR8oxBDXtFVpxx7NfZd4dPRXX4tNpWxWFVbuqgsQfhhihzxlOesVv3q+uO1XamFhLV8aO5dheXem7R8wbpwwGstLeh2Sd7BqHf7/Zlbcru5kYGtRotl+p5LtIley6T7ne/F9Xupj7dYkwtRt/0jAgCm7JmBCvpwxGUnbwAPcnqQD4+RU1lpx1cvw7SFn632q5uhQrMwF+KddH6zbHS8zufeJl+Tzr0mD2DUFobpLuUm4JhHYmoQxaVdj3VKdD5FImkTi9Sey6xVld6imXTSw/Sf9HP8KmKud/QWhXrnQ3uTVrguVfWZgL7uUmNEj+voCquHwSPN3d+/PRdFTdFVXN9V2h4fS7aGJH1olCH4tcfcDt2bu0vng4C6ZAAivXCMdXNv9TC0pGlrJ/hzG8aejQcDcvmbBSfThCdog5PXUuXfopr85y6TqUDl9sM0CG9AqDsFDmry9QchtPTAstXi8fCHYtW05nWlVc6ilPlujn0Cp2Ufj06QoTi0+kr3e/10M0nch6fRgK/gboqbosvltdvblQmvm+9zgTW29xrTvzGpKr4z0NZFfv+3bX6bgXDS9L1T/3m4qrYF4fD78Xqt5uVDNtW5hZM5HmGo29ON70dz/kTRdtZIYvHqUaf6vMzsg2GPEXlOwcXsyhannwAv34gC0G+uskNPfeGRLagh5vhiHQ6i+TJw0X2Lvff3PE7xWR7xjriIqTvb46Rp9hXzyhNHexan0ELWjuZ8Wie54p8ynJU0ZwPPWn3vqg+i+Nhj5l4in+/thY1ZiyAIv88XHzHlIZvG+7XMHrGDH2JPNdH7Y4L1q25oPQMIrWyE0O60XCeS5/TrqszgJqs+JywTG1hkPki/F5rMxFYVTTDYPT4dxoI9R4ce06PznnGDA70PINYu+pNGnPGNvLx5LAP9+uAKAwzyJM9l1aohJ4oDHMnynNf8OF+7Y7CMDecTmeuPOOxHw7lRpx4NQOfvfI49hx7BjdcQO2n6TP2ehWpHXelJzCl139KP6pOp2FP54T0uQ/Sx8xIcyLSQe6sVwJMei0fnw6J+Q0xuk7y7LYZwqlOQfVZWKYwat8E06dNcU8urTMGEQLmwTylNyHI08/X+YK9AzNqXGWn/RXtv+vdFNKHJUivm/l0PDA+7SbotVge1I676kbuvVrb0lpe+sggLU8r9pNRp32Gkw+l/+IZ9P95tXmwj/iYiMmvmeuzB8WX+9XWPrhjju5Kr4Mo8+uUdZ712Y2q2NvBFObxHco8BrhfLhf35X2xKbfF4rsPv/z11/8Hc7YhAjetAQA="; \ No newline at end of file diff --git a/api/assets/style.css b/api/assets/style.css deleted file mode 100644 index 9d619a6..0000000 --- a/api/assets/style.css +++ /dev/null @@ -1,1448 +0,0 @@ -:root { - /* Light */ - --light-color-background: #f2f4f8; - --light-color-background-secondary: #eff0f1; - --light-color-warning-text: #222; - --light-color-background-warning: #e6e600; - --light-color-icon-background: var(--light-color-background); - --light-color-accent: #c5c7c9; - --light-color-active-menu-item: var(--light-color-accent); - --light-color-text: #222; - --light-color-text-aside: #6e6e6e; - --light-color-link: #1f70c2; - --light-color-focus-outline: #3584e4; - - --light-color-ts-keyword: #056bd6; - --light-color-ts-project: #b111c9; - --light-color-ts-module: var(--light-color-ts-project); - --light-color-ts-namespace: var(--light-color-ts-project); - --light-color-ts-enum: #7e6f15; - --light-color-ts-enum-member: var(--light-color-ts-enum); - --light-color-ts-variable: #4760ec; - --light-color-ts-function: #572be7; - --light-color-ts-class: #1f70c2; - --light-color-ts-interface: #108024; - --light-color-ts-constructor: var(--light-color-ts-class); - --light-color-ts-property: var(--light-color-ts-variable); - --light-color-ts-method: var(--light-color-ts-function); - --light-color-ts-call-signature: var(--light-color-ts-method); - --light-color-ts-index-signature: var(--light-color-ts-property); - --light-color-ts-constructor-signature: var(--light-color-ts-constructor); - --light-color-ts-parameter: var(--light-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --light-color-ts-type-parameter: #a55c0e; - --light-color-ts-accessor: var(--light-color-ts-property); - --light-color-ts-get-signature: var(--light-color-ts-accessor); - --light-color-ts-set-signature: var(--light-color-ts-accessor); - --light-color-ts-type-alias: #d51270; - /* reference not included as links will be colored with the kind that it points to */ - --light-color-document: #000000; - - --light-external-icon: url("data:image/svg+xml;utf8,"); - --light-color-scheme: light; - - /* Dark */ - --dark-color-background: #2b2e33; - --dark-color-background-secondary: #1e2024; - --dark-color-background-warning: #bebe00; - --dark-color-warning-text: #222; - --dark-color-icon-background: var(--dark-color-background-secondary); - --dark-color-accent: #9096a2; - --dark-color-active-menu-item: #5d5d6a; - --dark-color-text: #f5f5f5; - --dark-color-text-aside: #dddddd; - --dark-color-link: #00aff4; - --dark-color-focus-outline: #4c97f2; - - --dark-color-ts-keyword: #3399ff; - --dark-color-ts-project: #e358ff; - --dark-color-ts-module: var(--dark-color-ts-project); - --dark-color-ts-namespace: var(--dark-color-ts-project); - --dark-color-ts-enum: #f4d93e; - --dark-color-ts-enum-member: var(--dark-color-ts-enum); - --dark-color-ts-variable: #798dff; - --dark-color-ts-function: #a280ff; - --dark-color-ts-class: #8ac4ff; - --dark-color-ts-interface: #6cff87; - --dark-color-ts-constructor: var(--dark-color-ts-class); - --dark-color-ts-property: var(--dark-color-ts-variable); - --dark-color-ts-method: var(--dark-color-ts-function); - --dark-color-ts-call-signature: var(--dark-color-ts-method); - --dark-color-ts-index-signature: var(--dark-color-ts-property); - --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); - --dark-color-ts-parameter: var(--dark-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --dark-color-ts-type-parameter: #e07d13; - --dark-color-ts-accessor: var(--dark-color-ts-property); - --dark-color-ts-get-signature: var(--dark-color-ts-accessor); - --dark-color-ts-set-signature: var(--dark-color-ts-accessor); - --dark-color-ts-type-alias: #ff6492; - /* reference not included as links will be colored with the kind that it points to */ - --dark-color-document: #ffffff; - - --dark-external-icon: url("data:image/svg+xml;utf8,"); - --dark-color-scheme: dark; -} - -@media (prefers-color-scheme: light) { - :root { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-link: var(--light-color-link); - --color-focus-outline: var(--light-color-focus-outline); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - --color-document: var(--light-color-document); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); - } -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-link: var(--dark-color-link); - --color-focus-outline: var(--dark-color-focus-outline); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - --color-document: var(--dark-color-document); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); - } -} - -html { - color-scheme: var(--color-scheme); -} - -body { - margin: 0; -} - -:root[data-theme="light"] { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-link: var(--light-color-link); - --color-focus-outline: var(--light-color-focus-outline); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - --color-document: var(--light-color-document); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); -} - -:root[data-theme="dark"] { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-link: var(--dark-color-link); - --color-focus-outline: var(--dark-color-focus-outline); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - --color-document: var(--dark-color-document); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); -} - -*:focus-visible, -.tsd-accordion-summary:focus-visible svg { - outline: 2px solid var(--color-focus-outline); -} - -.always-visible, -.always-visible .tsd-signatures { - display: inherit !important; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.2; -} - -h1 { - font-size: 1.875rem; - margin: 0.67rem 0; -} - -h2 { - font-size: 1.5rem; - margin: 0.83rem 0; -} - -h3 { - font-size: 1.25rem; - margin: 1rem 0; -} - -h4 { - font-size: 1.05rem; - margin: 1.33rem 0; -} - -h5 { - font-size: 1rem; - margin: 1.5rem 0; -} - -h6 { - font-size: 0.875rem; - margin: 2.33rem 0; -} - -dl, -menu, -ol, -ul { - margin: 1em 0; -} - -dd { - margin: 0 0 0 40px; -} - -.container { - max-width: 1700px; - padding: 0 2rem; -} - -/* Footer */ -footer { - border-top: 1px solid var(--color-accent); - padding-top: 1rem; - padding-bottom: 1rem; - max-height: 3.5rem; -} -footer > p { - margin: 0 1em; -} - -.container-main { - margin: 0 auto; - /* toolbar, footer, margin */ - min-height: calc(100vh - 41px - 56px - 4rem); -} - -@keyframes fade-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes fade-out { - from { - opacity: 1; - visibility: visible; - } - to { - opacity: 0; - } -} -@keyframes fade-in-delayed { - 0% { - opacity: 0; - } - 33% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -@keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; - } - 66% { - opacity: 0; - } - 100% { - opacity: 0; - } -} -@keyframes pop-in-from-right { - from { - transform: translate(100%, 0); - } - to { - transform: translate(0, 0); - } -} -@keyframes pop-out-to-right { - from { - transform: translate(0, 0); - visibility: visible; - } - to { - transform: translate(100%, 0); - } -} -body { - background: var(--color-background); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", - Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; - font-size: 16px; - color: var(--color-text); -} - -a { - color: var(--color-link); - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -a.external[target="_blank"] { - background-image: var(--external-icon); - background-position: top 3px right; - background-repeat: no-repeat; - padding-right: 13px; -} -a.tsd-anchor-link { - color: var(--color-text); -} - -code, -pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - padding: 0.2em; - margin: 0; - font-size: 0.875rem; - border-radius: 0.8em; -} - -pre { - position: relative; - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; - padding: 10px; - border: 1px solid var(--color-accent); -} -pre code { - padding: 0; - font-size: 100%; -} -pre > button { - position: absolute; - top: 10px; - right: 10px; - opacity: 0; - transition: opacity 0.1s; - box-sizing: border-box; -} -pre:hover > button, -pre > button.visible { - opacity: 1; -} - -blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid gray; -} - -.tsd-typography { - line-height: 1.333em; -} -.tsd-typography ul { - list-style: square; - padding: 0 0 0 20px; - margin: 0; -} -.tsd-typography .tsd-index-panel h3, -.tsd-index-panel .tsd-typography h3, -.tsd-typography h4, -.tsd-typography h5, -.tsd-typography h6 { - font-size: 1em; -} -.tsd-typography h5, -.tsd-typography h6 { - font-weight: normal; -} -.tsd-typography p, -.tsd-typography ul, -.tsd-typography ol { - margin: 1em 0; -} -.tsd-typography table { - border-collapse: collapse; - border: none; -} -.tsd-typography td, -.tsd-typography th { - padding: 6px 13px; - border: 1px solid var(--color-accent); -} -.tsd-typography thead, -.tsd-typography tr:nth-child(even) { - background-color: var(--color-background-secondary); -} - -.tsd-breadcrumb { - margin: 0; - padding: 0; - color: var(--color-text-aside); -} -.tsd-breadcrumb a { - color: var(--color-text-aside); - text-decoration: none; -} -.tsd-breadcrumb a:hover { - text-decoration: underline; -} -.tsd-breadcrumb li { - display: inline; -} -.tsd-breadcrumb li:after { - content: " / "; -} - -.tsd-comment-tags { - display: flex; - flex-direction: column; -} -dl.tsd-comment-tag-group { - display: flex; - align-items: center; - overflow: hidden; - margin: 0.5em 0; -} -dl.tsd-comment-tag-group dt { - display: flex; - margin-right: 0.5em; - font-size: 0.875em; - font-weight: normal; -} -dl.tsd-comment-tag-group dd { - margin: 0; -} -code.tsd-tag { - padding: 0.25em 0.4em; - border: 0.1em solid var(--color-accent); - margin-right: 0.25em; - font-size: 70%; -} -h1 code.tsd-tag:first-of-type { - margin-left: 0.25em; -} - -dl.tsd-comment-tag-group dd:before, -dl.tsd-comment-tag-group dd:after { - content: " "; -} -dl.tsd-comment-tag-group dd pre, -dl.tsd-comment-tag-group dd:after { - clear: both; -} -dl.tsd-comment-tag-group p { - margin: 0; -} - -.tsd-panel.tsd-comment .lead { - font-size: 1.1em; - line-height: 1.333em; - margin-bottom: 2em; -} -.tsd-panel.tsd-comment .lead:last-child { - margin-bottom: 0; -} - -.tsd-filter-visibility h4 { - font-size: 1rem; - padding-top: 0.75rem; - padding-bottom: 0.5rem; - margin: 0; -} -.tsd-filter-item:not(:last-child) { - margin-bottom: 0.5rem; -} -.tsd-filter-input { - display: flex; - width: -moz-fit-content; - width: fit-content; - align-items: center; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; -} -.tsd-filter-input input[type="checkbox"] { - cursor: pointer; - position: absolute; - width: 1.5em; - height: 1.5em; - opacity: 0; -} -.tsd-filter-input input[type="checkbox"]:disabled { - pointer-events: none; -} -.tsd-filter-input svg { - cursor: pointer; - width: 1.5em; - height: 1.5em; - margin-right: 0.5em; - border-radius: 0.33em; - /* Leaving this at full opacity breaks event listeners on Firefox. - Don't remove unless you know what you're doing. */ - opacity: 0.99; -} -.tsd-filter-input input[type="checkbox"]:focus-visible + svg { - outline: 2px solid var(--color-focus-outline); -} -.tsd-checkbox-background { - fill: var(--color-accent); -} -input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { - stroke: var(--color-text); -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { - fill: var(--color-background); - stroke: var(--color-accent); - stroke-width: 0.25rem; -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { - stroke: var(--color-accent); -} - -.settings-label { - font-weight: bold; - text-transform: uppercase; - display: inline-block; -} - -.tsd-filter-visibility .settings-label { - margin: 0.75rem 0 0.5rem 0; -} - -.tsd-theme-toggle .settings-label { - margin: 0.75rem 0.75rem 0 0; -} - -.tsd-hierarchy { - list-style: square; - margin: 0; -} -.tsd-hierarchy .target { - font-weight: bold; -} - -.tsd-full-hierarchy:not(:last-child) { - margin-bottom: 1em; - padding-bottom: 1em; - border-bottom: 1px solid var(--color-accent); -} -.tsd-full-hierarchy, -.tsd-full-hierarchy ul { - list-style: none; - margin: 0; - padding: 0; -} -.tsd-full-hierarchy ul { - padding-left: 1.5rem; -} -.tsd-full-hierarchy a { - padding: 0.25rem 0 !important; - font-size: 1rem; - display: inline-flex; - align-items: center; - color: var(--color-text); -} - -.tsd-panel-group.tsd-index-group { - margin-bottom: 0; -} -.tsd-index-panel .tsd-index-list { - list-style: none; - line-height: 1.333em; - margin: 0; - padding: 0.25rem 0 0 0; - overflow: hidden; - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: 1rem; - grid-template-rows: auto; -} -@media (max-width: 1024px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(2, 1fr); - } -} -@media (max-width: 768px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(1, 1fr); - } -} -.tsd-index-panel .tsd-index-list li { - -webkit-page-break-inside: avoid; - -moz-page-break-inside: avoid; - -ms-page-break-inside: avoid; - -o-page-break-inside: avoid; - page-break-inside: avoid; -} - -.tsd-flag { - display: inline-block; - padding: 0.25em 0.4em; - border-radius: 4px; - color: var(--color-comment-tag-text); - background-color: var(--color-comment-tag); - text-indent: 0; - font-size: 75%; - line-height: 1; - font-weight: normal; -} - -.tsd-anchor { - position: relative; - top: -100px; -} - -.tsd-member { - position: relative; -} -.tsd-member .tsd-anchor + h3 { - display: flex; - align-items: center; - margin-top: 0; - margin-bottom: 0; - border-bottom: none; -} - -.tsd-navigation.settings { - margin: 1rem 0; -} -.tsd-navigation > a, -.tsd-navigation .tsd-accordion-summary { - width: calc(100% - 0.25rem); - display: flex; - align-items: center; -} -.tsd-navigation a, -.tsd-navigation summary > span, -.tsd-page-navigation a { - display: flex; - width: calc(100% - 0.25rem); - align-items: center; - padding: 0.25rem; - color: var(--color-text); - text-decoration: none; - box-sizing: border-box; -} -.tsd-navigation a.current, -.tsd-page-navigation a.current { - background: var(--color-active-menu-item); -} -.tsd-navigation a:hover, -.tsd-page-navigation a:hover { - text-decoration: underline; -} -.tsd-navigation ul, -.tsd-page-navigation ul { - margin-top: 0; - margin-bottom: 0; - padding: 0; - list-style: none; -} -.tsd-navigation li, -.tsd-page-navigation li { - padding: 0; - max-width: 100%; -} -.tsd-navigation .tsd-nav-link { - display: none; -} -.tsd-nested-navigation { - margin-left: 3rem; -} -.tsd-nested-navigation > li > details { - margin-left: -1.5rem; -} -.tsd-small-nested-navigation { - margin-left: 1.5rem; -} -.tsd-small-nested-navigation > li > details { - margin-left: -1.5rem; -} - -.tsd-page-navigation-section { - margin-left: 10px; -} -.tsd-page-navigation-section > summary { - padding: 0.25rem; -} -.tsd-page-navigation-section > div { - margin-left: 20px; -} -.tsd-page-navigation ul { - padding-left: 1.75rem; -} - -#tsd-sidebar-links a { - margin-top: 0; - margin-bottom: 0.5rem; - line-height: 1.25rem; -} -#tsd-sidebar-links a:last-of-type { - margin-bottom: 0; -} - -a.tsd-index-link { - padding: 0.25rem 0 !important; - font-size: 1rem; - line-height: 1.25rem; - display: inline-flex; - align-items: center; - color: var(--color-text); -} -.tsd-accordion-summary { - list-style-type: none; /* hide marker on non-safari */ - outline: none; /* broken on safari, so just hide it */ -} -.tsd-accordion-summary::-webkit-details-marker { - display: none; /* hide marker on safari */ -} -.tsd-accordion-summary, -.tsd-accordion-summary a { - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - - cursor: pointer; -} -.tsd-accordion-summary a { - width: calc(100% - 1.5rem); -} -.tsd-accordion-summary > * { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; -} -.tsd-accordion .tsd-accordion-summary > svg { - margin-left: 0.25rem; - vertical-align: text-top; -} -.tsd-index-content > :not(:first-child) { - margin-top: 0.75rem; -} -.tsd-index-heading { - margin-top: 1.5rem; - margin-bottom: 0.75rem; -} - -.tsd-kind-icon { - margin-right: 0.5rem; - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - min-height: 1.25rem; -} -.tsd-kind-icon path { - transform-origin: center; - transform: scale(1.1); -} -.tsd-signature > .tsd-kind-icon { - margin-right: 0.8rem; -} - -.tsd-panel { - margin-bottom: 2.5rem; -} -.tsd-panel.tsd-member { - margin-bottom: 4rem; -} -.tsd-panel:empty { - display: none; -} -.tsd-panel > h1, -.tsd-panel > h2, -.tsd-panel > h3 { - margin: 1.5rem -1.5rem 0.75rem -1.5rem; - padding: 0 1.5rem 0.75rem 1.5rem; -} -.tsd-panel > h1.tsd-before-signature, -.tsd-panel > h2.tsd-before-signature, -.tsd-panel > h3.tsd-before-signature { - margin-bottom: 0; - border-bottom: none; -} - -.tsd-panel-group { - margin: 2rem 0; -} -.tsd-panel-group.tsd-index-group { - margin: 2rem 0; -} -.tsd-panel-group.tsd-index-group details { - margin: 2rem 0; -} -.tsd-panel-group > .tsd-accordion-summary { - margin-bottom: 1rem; -} - -#tsd-search { - transition: background-color 0.2s; -} -#tsd-search .title { - position: relative; - z-index: 2; -} -#tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 2.5rem; - height: 100%; -} -#tsd-search .field input { - box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; - width: 100%; - padding: 0 10px; - opacity: 0; - outline: 0; - border: 0; - background: transparent; - color: var(--color-text); -} -#tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; -} -#tsd-search .field input, -#tsd-search .title, -#tsd-toolbar-links a { - transition: opacity 0.2s; -} -#tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; - margin: 0; - padding: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -} -#tsd-search .results li { - background-color: var(--color-background); - line-height: initial; - padding: 4px; -} -#tsd-search .results li:nth-child(even) { - background-color: var(--color-background-secondary); -} -#tsd-search .results li.state { - display: none; -} -#tsd-search .results li.current:not(.no-results), -#tsd-search .results li:hover:not(.no-results) { - background-color: var(--color-accent); -} -#tsd-search .results a { - display: flex; - align-items: center; - padding: 0.25rem; - box-sizing: border-box; -} -#tsd-search .results a:before { - top: 10px; -} -#tsd-search .results span.parent { - color: var(--color-text-aside); - font-weight: normal; -} -#tsd-search.has-focus { - background-color: var(--color-accent); -} -#tsd-search.has-focus .field input { - top: 0; - opacity: 1; -} -#tsd-search.has-focus .title, -#tsd-search.has-focus #tsd-toolbar-links a { - z-index: 0; - opacity: 0; -} -#tsd-search.has-focus .results { - visibility: visible; -} -#tsd-search.loading .results li.state.loading { - display: block; -} -#tsd-search.failure .results li.state.failure { - display: block; -} - -#tsd-toolbar-links { - position: absolute; - top: 0; - right: 2rem; - height: 100%; - display: flex; - align-items: center; - justify-content: flex-end; -} -#tsd-toolbar-links a { - margin-left: 1.5rem; -} -#tsd-toolbar-links a:hover { - text-decoration: underline; -} - -.tsd-signature { - margin: 0 0 1rem 0; - padding: 1rem 0.5rem; - border: 1px solid var(--color-accent); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 14px; - overflow-x: auto; -} - -.tsd-signature-keyword { - color: var(--color-ts-keyword); - font-weight: normal; -} - -.tsd-signature-symbol { - color: var(--color-text-aside); - font-weight: normal; -} - -.tsd-signature-type { - font-style: italic; - font-weight: normal; -} - -.tsd-signatures { - padding: 0; - margin: 0 0 1em 0; - list-style-type: none; -} -.tsd-signatures .tsd-signature { - margin: 0; - border-color: var(--color-accent); - border-width: 1px 0; - transition: background-color 0.1s; -} -.tsd-signatures .tsd-index-signature:not(:last-child) { - margin-bottom: 1em; -} -.tsd-signatures .tsd-index-signature .tsd-signature { - border-width: 1px; -} -.tsd-description .tsd-signatures .tsd-signature { - border-width: 1px; -} - -ul.tsd-parameter-list, -ul.tsd-type-parameter-list { - list-style: square; - margin: 0; - padding-left: 20px; -} -ul.tsd-parameter-list > li.tsd-parameter-signature, -ul.tsd-type-parameter-list > li.tsd-parameter-signature { - list-style: none; - margin-left: -20px; -} -ul.tsd-parameter-list h5, -ul.tsd-type-parameter-list h5 { - font-size: 16px; - margin: 1em 0 0.5em 0; -} -.tsd-sources { - margin-top: 1rem; - font-size: 0.875em; -} -.tsd-sources a { - color: var(--color-text-aside); - text-decoration: underline; -} -.tsd-sources ul { - list-style: none; - padding: 0; -} - -.tsd-page-toolbar { - position: sticky; - z-index: 1; - top: 0; - left: 0; - width: 100%; - color: var(--color-text); - background: var(--color-background-secondary); - border-bottom: 1px var(--color-accent) solid; - transition: transform 0.3s ease-in-out; -} -.tsd-page-toolbar a { - color: var(--color-text); - text-decoration: none; -} -.tsd-page-toolbar a.title { - font-weight: bold; -} -.tsd-page-toolbar a.title:hover { - text-decoration: underline; -} -.tsd-page-toolbar .tsd-toolbar-contents { - display: flex; - justify-content: space-between; - height: 2.5rem; - margin: 0 auto; -} -.tsd-page-toolbar .table-cell { - position: relative; - white-space: nowrap; - line-height: 40px; -} -.tsd-page-toolbar .table-cell:first-child { - width: 100%; -} -.tsd-page-toolbar .tsd-toolbar-icon { - box-sizing: border-box; - line-height: 0; - padding: 12px 0; -} - -.tsd-widget { - display: inline-block; - overflow: hidden; - opacity: 0.8; - height: 40px; - transition: - opacity 0.1s, - background-color 0.2s; - vertical-align: bottom; - cursor: pointer; -} -.tsd-widget:hover { - opacity: 0.9; -} -.tsd-widget.active { - opacity: 1; - background-color: var(--color-accent); -} -.tsd-widget.no-caption { - width: 40px; -} -.tsd-widget.no-caption:before { - margin: 0; -} - -.tsd-widget.options, -.tsd-widget.menu { - display: none; -} -input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; -} -input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; -} - -img { - max-width: 100%; -} - -.tsd-anchor-icon { - display: inline-flex; - align-items: center; - margin-left: 0.5rem; - vertical-align: middle; - color: var(--color-text); -} - -.tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; -} - -.tsd-anchor-link:hover > .tsd-anchor-icon svg { - visibility: visible; -} - -.deprecated { - text-decoration: line-through !important; -} - -.warning { - padding: 1rem; - color: var(--color-warning-text); - background: var(--color-background-warning); -} - -.tsd-kind-project { - color: var(--color-ts-project); -} -.tsd-kind-module { - color: var(--color-ts-module); -} -.tsd-kind-namespace { - color: var(--color-ts-namespace); -} -.tsd-kind-enum { - color: var(--color-ts-enum); -} -.tsd-kind-enum-member { - color: var(--color-ts-enum-member); -} -.tsd-kind-variable { - color: var(--color-ts-variable); -} -.tsd-kind-function { - color: var(--color-ts-function); -} -.tsd-kind-class { - color: var(--color-ts-class); -} -.tsd-kind-interface { - color: var(--color-ts-interface); -} -.tsd-kind-constructor { - color: var(--color-ts-constructor); -} -.tsd-kind-property { - color: var(--color-ts-property); -} -.tsd-kind-method { - color: var(--color-ts-method); -} -.tsd-kind-call-signature { - color: var(--color-ts-call-signature); -} -.tsd-kind-index-signature { - color: var(--color-ts-index-signature); -} -.tsd-kind-constructor-signature { - color: var(--color-ts-constructor-signature); -} -.tsd-kind-parameter { - color: var(--color-ts-parameter); -} -.tsd-kind-type-literal { - color: var(--color-ts-type-literal); -} -.tsd-kind-type-parameter { - color: var(--color-ts-type-parameter); -} -.tsd-kind-accessor { - color: var(--color-ts-accessor); -} -.tsd-kind-get-signature { - color: var(--color-ts-get-signature); -} -.tsd-kind-set-signature { - color: var(--color-ts-set-signature); -} -.tsd-kind-type-alias { - color: var(--color-ts-type-alias); -} - -/* if we have a kind icon, don't color the text by kind */ -.tsd-kind-icon ~ span { - color: var(--color-text); -} - -* { - scrollbar-width: thin; - scrollbar-color: var(--color-accent) var(--color-icon-background); -} - -*::-webkit-scrollbar { - width: 0.75rem; -} - -*::-webkit-scrollbar-track { - background: var(--color-icon-background); -} - -*::-webkit-scrollbar-thumb { - background-color: var(--color-accent); - border-radius: 999rem; - border: 0.25rem solid var(--color-icon-background); -} - -/* mobile */ -@media (max-width: 769px) { - .tsd-widget.options, - .tsd-widget.menu { - display: inline-block; - } - - .container-main { - display: flex; - } - html .col-content { - float: none; - max-width: 100%; - width: 100%; - } - html .col-sidebar { - position: fixed !important; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - padding: 1.5rem 1.5rem 0 0; - width: 75vw; - visibility: hidden; - background-color: var(--color-background); - transform: translate(100%, 0); - } - html .col-sidebar > *:last-child { - padding-bottom: 20px; - } - html .overlay { - content: ""; - display: block; - position: fixed; - z-index: 1023; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; - } - - .to-has-menu .overlay { - animation: fade-in 0.4s; - } - - .to-has-menu .col-sidebar { - animation: pop-in-from-right 0.4s; - } - - .from-has-menu .overlay { - animation: fade-out 0.4s; - } - - .from-has-menu .col-sidebar { - animation: pop-out-to-right 0.4s; - } - - .has-menu body { - overflow: hidden; - } - .has-menu .overlay { - visibility: visible; - } - .has-menu .col-sidebar { - visibility: visible; - transform: translate(0, 0); - display: flex; - flex-direction: column; - gap: 1.5rem; - max-height: 100vh; - padding: 1rem 2rem; - } - .has-menu .tsd-navigation { - max-height: 100%; - } - #tsd-toolbar-links { - display: none; - } - .tsd-navigation .tsd-nav-link { - display: flex; - } -} - -/* one sidebar */ -@media (min-width: 770px) { - .container-main { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); - grid-template-areas: "sidebar content"; - margin: 2rem auto; - } - - .col-sidebar { - grid-area: sidebar; - } - .col-content { - grid-area: content; - padding: 0 1rem; - } -} -@media (min-width: 770px) and (max-width: 1399px) { - .col-sidebar { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - padding-top: 1rem; - } - .site-menu { - margin-top: 1rem; - } -} - -/* two sidebars */ -@media (min-width: 1200px) { - .container-main { - grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); - grid-template-areas: "sidebar content toc"; - } - - .col-sidebar { - display: contents; - } - - .page-menu { - grid-area: toc; - padding-left: 1rem; - } - .site-menu { - grid-area: sidebar; - } - - .site-menu { - margin-top: 1rem 0; - } - - .page-menu, - .site-menu { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - } -} diff --git a/api/assets/typedoc-github-style.css b/api/assets/typedoc-github-style.css deleted file mode 100644 index 8fe9cdc..0000000 --- a/api/assets/typedoc-github-style.css +++ /dev/null @@ -1,435 +0,0 @@ -/* - * Define colors - */ - -:root { - /* GitHub "Light default" */ - --light-color-background: #ffffff; - --light-color-background-secondary: #f6f8fa; - --light-color-background-navbar: #f6f8fa; - - --light-color-accent: #d0d7de; - - --light-color-text: #1f2328; - --light-color-text-aside: #636c76; - - --light-color-link: #0969da; - - --light-color-warning-border: #f7ebba; - --light-color-background-warning: #fff8c5; - - /* GitHub "Dark default" */ - --dark-color-background: #0d1117; - --dark-color-background-secondary: #161b22; - --dark-color-background-navbar: #000000; - - --dark-color-accent: #30363d; - - --dark-color-text: #e6edf3; - --dark-color-text-aside: #8d96a0; - - --dark-color-link: #4493f8; - - --dark-color-warning-border: #3a2d12; - --dark-color-background-warning: #282215; - - /* Link colors */ - --color-warning-text: var(--color-text); - --color-icon-background: var(--color-background); - --color-focus-outline: var(--color-accent); -} - -@media (prefers-color-scheme: light) { - :root { - --color-background-navbar: var(--light-color-background-navbar); - --color-warning-border: var(--light-color-warning-border); - } -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background-navbar: var(--dark-color-background-navbar); - --color-warning-border: var(--dark-color-warning-border); - } -} - -:root[data-theme='light'] { - --color-background-navbar: var(--light-color-background-navbar); - --color-warning-border: var(--light-color-warning-border); -} - -:root[data-theme='dark'] { - --color-background-navbar: var(--dark-color-background-navbar); - --color-warning-border: var(--dark-color-warning-border); -} - -/* - * Define fonts - */ - -:root { - --font-family-text: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', - 'Segoe UI Emoji'; - --font-family-code: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace; -} - -body { - font-family: var(--font-family-text); -} - -/* - * Headlines - */ - -h1, -h2, -h3, -h4, -h5, -h6 { - margin-top: 1em; - margin-bottom: 0.5em; -} - -/* - * Links - */ - -a, -.tsd-kind-class { - color: var(--color-link); - text-decoration: underline; -} - -.tsd-index-link { - text-decoration: none; -} - -.tsd-index-link:hover { - text-decoration: underline; -} - -.tsd-sources a { - color: var(--color-link); -} - -/* - * Lists - */ - -ul, -ol { - margin-left: 20px; - list-style: disc; -} - -li::marker { - color: var(--color-accent); -} - -/* - * Input fields - */ - -input { - background-color: var(--color-background-secondary); - color: var(--color-text); - border: 1px solid var(--color-accent); - border-radius: 6px; - padding: 8px; - width: 100%; -} - -/* - * Tables - */ - -table { - margin: 1em 0; -} - -.tsd-typography th, -.tsd-typography td { - padding: 8px; - text-align: left; -} - -.tsd-typography th { - background-color: var(--color-background); - color: var(--color-text); -} - -.tsd-typography tr:nth-child(2n) { - background-color: var(--color-background-code); -} - -/* - * Horizontal line - */ - -.tsd-typography hr { - color: var(--color-accent); -} - -/* - * Buttons - */ - -button { - background-color: var(--color-background-navbar); - color: var(--color-text); - border: 1px solid var(--color-accent); - border-radius: 6px; - padding: 8px 16px; - cursor: pointer; - transition: background-color 0.1s ease-in-out; -} - -button:hover { - background-color: var(--color-accent); -} - -pre > button { - background-color: transparent; - transition: background-color 0.1s ease-in-out; - border: none; - opacity: 1; - top: 8px; - padding: 4px 8px; -} - -/* - * Checkbox - */ - -.tsd-filter-input input[type='checkbox'], -.tsd-filter-input svg { - width: 1em; - height: 1em; -} - -.tsd-filter-input svg { - border-radius: 2px; -} - -.tsd-checkbox-background { - fill: var(--color-background); - stroke: var(--color-accent); - stroke-width: 6px; -} - -input[type='checkbox']:checked ~ svg .tsd-checkbox-background { - fill: var(--color-accent); -} - -.tsd-checkbox-checkmark { - color: var(--color-text); -} - -/* - * Select - */ - -select { - background-color: var(--color-background); - border: 1px solid var(--color-accent); - border-radius: 6px; - padding: 8px; - font-family: inherit; -} - -/* - * Code blocks - */ - -code, -pre { - border: none; - border-radius: 6px; - margin: 1em 0; - background-color: var(--color-background-secondary); - color: var(--color-text); - font-family: var(--font-family-code); -} - -code.tsd-tag { - background-color: var(--color-accent); - border: unset; -} - -/* - * Warnings - */ - -.warning { - border-style: solid; - border-width: 1px; - border-color: var(--color-warning-border); - border-radius: 6px; -} - -/* - * Topbar - */ - -.tsd-page-toolbar { - background-color: var(--color-background-navbar); - border-bottom-color: var(--color-accent); -} - -.tsd-page-toolbar a.title:hover { - text-decoration: none; -} - -#tsd-search.has-focus { - background-color: var(--color-background-navbar); -} - -#tsd-search .results, -#tsd-search .results li, -#tsd-search .results li:nth-child(2n) { - background-color: var(--color-background-navbar); -} - -#tsd-search .results li { - margin-bottom: 0px; -} - -#tsd-search .results li:hover:not(.no-results) { - background-color: var(--color-accent); -} - -#tsd-search .results { - border-style: solid; - border-width: 1px; - border-color: var(--color-accent); - border-radius: 0px 0px 6px 6px; - overflow: hidden; -} - -#tsd-search .results .no-results { - padding: calc(4px + 0.25rem); -} - -/* - * Baseboard - */ - -footer { - border-top-color: var(--color-accent); -} - -/* - * Side navigations - */ - -.site-menu { - padding: 1rem 0; -} - -.tsd-navigation a { - color: var(--color-text); - border-radius: 6px; - padding: 6px; -} - -.tsd-navigation a, -.tsd-navigation a:hover { - text-decoration: none; -} - -.tsd-navigation a:hover:not(.current) { - background-color: color-mix(in srgb, var(--color-text-aside), #0000 88%); -} - -.tsd-navigation a.current { - background-color: color-mix(in srgb, var(--color-text-aside), #0000 92%); -} - -/* - * Type definition groups - */ - -.tsd-index-panel, -.tsd-member-group { - background-color: var(--color-background); - padding: 16px; - border: 1px var(--color-accent) solid; - border-radius: 6px; -} - -.tsd-panel > h1, -.tsd-panel > h2, -.tsd-panel > h3 { - margin-top: 0px; -} - -.tsd-panel-group.tsd-index-group details { - margin: 0px; -} - -.tsd-member-group .tsd-member:last-child { - margin-bottom: 0px; -} - -.tsd-signature { - border: 1px solid var(--color-accent); - border-radius: 6px; -} - -.tsd-signatures .tsd-signature { - border-color: var(--color-accent); - border-radius: 0px; -} - -.tsd-description .tsd-signatures .tsd-signature { - border-radius: 6px; -} - -.tsd-full-hierarchy:not(:last-child) { - border-bottom: var(--color-accent); -} - -/* - * Footer - */ - -footer p { - font-size: 1rem; - text-align: center; - color: var(--color-text-aside); -} - -/* - * Fix collapsed margin - */ - -.tsd-accordion-summary.tsd-index-summary > h5 { - margin-top: 0px; - margin-bottom: 0px; -} - -.tsd-panel-group:not([open]) > .tsd-accordion-summary { - margin-bottom: 0px; -} - -/* - * Fix collapse arrow position - */ - -.tsd-accordion-summary:has(svg) > * { - display: inline-flex; - align-items: center; - line-height: normal; -} - -.tsd-accordion-summary > * > svg { - padding-top: 0px; - position: relative; - left: 0px; - top: 50%; -} - -.tsd-accordion-summary svg { - transition: transform 0.1s ease-in-out; -} diff --git a/api/classes/GS1.GTINCreator.html b/api/classes/GS1.GTINCreator.html deleted file mode 100644 index a0c528a..0000000 --- a/api/classes/GS1.GTINCreator.html +++ /dev/null @@ -1,132 +0,0 @@ -GTINCreator | AIDC Toolkit

    GTIN creator. Applicable to GTIN-13, GTIN-12, and GTIN-8 types; no applicable to GTIN-14 type.

    -

    Hierarchy

    • GTINValidator<this> & AbstractNumericIdentificationKeyCreator<this>
      • GTINCreator

    Properties

    leaderType: LeaderType
    identificationKeyType: IdentificationKeyType
    prefixType: PrefixType
    length: number
    referenceCharacterSet: CharacterSet
    referenceValidator: CharacterSetValidator

    Constructors

    Accessors

    • get prefix(): string
    • Returns string

    • get gtinType(): GTINType
    • Returns GTINType

    • get capacity(): number
    • Get the capacity (10**referenceLength).

      -

      Returns number

    • get tweak(): bigint
    • Get the tweak for sparse creation.

      -

      Returns bigint

    • set tweak(value): void
    • Set the tweak for sparse creation.

      -

      Parameters

      • value: bigint

      Returns void

    • get referenceCreator(): CharacterSetCreator
    • Get the reference creator.

      -

      Returns CharacterSetCreator

    • get prefixManager(): PrefixManager
    • Get the prefix manager to which this identification key creator is bound.

      -

      Returns PrefixManager

    • get referenceLength(): number
    • Get the reference length.

      -

      Returns number

    Methods

    • Zero suppress a GTIN-12.

      -

      Parameters

      • gtin12: string

        GTIN-12.

        -

      Returns string

      Zero-suppressed GTIN-12.

      -

      RangeError

      -
    • Convert a GTIN of any length to a GTIN-14 with an optional indicator digit.

      -

      Parameters

      • indicatorDigit: string

        Indicator digit. If blank, assumes "0" if the GTIN is not already a GTIN-14.

        -
      • gtin: string

        GTIN.

        -

      Returns string

      GTIN-14.

      -
    • Normalize a GTIN of any length.

      -
        -
      • A GTIN-14 that starts with six zeros or a GTIN-13 that starts with five zeros is normalized to GTIN-8.
      • -
      • A GTIN-14 that starts with two zeros or a GTIN-13 that starts with one zero is normalized to GTIN-12.
      • -
      • A GTIN-14 that starts with one zero is normalized to GTIN-13.
      • -
      • Otherwise, the GTIN is unchanged.
      • -
      -

      Parameters

      • gtin: string

        GTIN.

        -

      Returns string

      Normalized GTIN.

      -

      RangeError

      -
    • Zero expand a zero-suppressed GTIN-12.

      -

      Parameters

      • zeroSuppressedGTIN12: string

        Zero-suppressed GTIN-12.

        -

      Returns string

      GTIN-12.

      -

      RangeError

      -
    • Validate any GTIN, optionally against a level.

      -

      Parameters

      • gtin: string

        GTIN.

        -
      • gtinLevel: GTINLevel = GTINLevel.Any

        Level at which GTIN is to be validated.

        -

      Returns void

      RangeError

      -
    • Validate a GTIN-14.

      -

      Parameters

      • gtin14: string

        GTIN-14.

        -

      Returns void

      RangeError

      -
    • Get the character set validator for a character set.

      -

      Parameters

      Returns CharacterSetValidator

      Character set validator.

      -
    • Pad an identification key on the left with zeroes for validation purposes. This is done to align an -identification key with a position offset for any error message that may be thrown by the reference validator.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • validation: undefined | IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns string

      Padded identification key.

      -
    • Create a GTIN-14 with an indicator digit and a reference based on a numeric value. The value is converted to a -reference of the appropriate length using NUMERIC_CREATOR.

      -

      Parameters

      • indicatorDigit: string

        Indicator digit.

        -
      • value: number

        Numeric value.

        -
      • sparse: boolean = false

        If true, the value is mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns string

      GTIN-14.

      -
    • Create a sequence of GTIN-14s with an indicator digit and references based on a sequence of numeric values. -The values are converted to references of the appropriate length using NUMERIC_CREATOR. References -are created with values from startValue to startValue + count - 1.

      -

      The implementation uses CharacterSetCreator.createSequence, so the values are created only as needed.

      -

      Parameters

      • indicatorDigit: string

        Indicator digit.

        -
      • startValue: number

        Start numeric value.

        -
      • count: number

        Count of identification keys to create.

        -
      • sparse: boolean = false

        If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Iterable iterator over created GTIN-14s.

      -
    • Create multiple GTIN-14s with an indicator digit and references based on numeric values. The values are converted -to references of the appropriate length using NUMERIC_CREATOR.

      -

      The implementation uses CharacterSetCreator.createMultiple, so the values are created only as needed.

      -

      Parameters

      • indicatorDigit: string

        Indicator digit.

        -
      • valuesSource: IterationSource<number>

        Source of values.

        -
      • sparse: boolean = false

        If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Iterable iterator over created GTIN-14s.

      -
    • Validate the prefix within an identification key.

      -

      Parameters

      • partialIdentificationKey: string

        Partial identification key.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

    • Parameters

      Returns void

    • Initialize the prefix manager. This method is in lieu of a constructor due to the mixin architecture.

      -

      Parameters

      • prefixManager: PrefixManager

        Prefix manager.

        -
      • prefix: string

        Prefix within prefix manager to use to calculate reference length.

        -

      Returns void

      Error

      -
    • Create an identification key with a reference based on a numeric value. The value is converted to a reference of -the appropriate length using NUMERIC_CREATOR.

      -

      Parameters

      • value: number

        Numeric value.

        -
      • sparse: boolean = false

        If true, the value is mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns string

      Identification key.

      -
    • Create a sequence of identification keys with references based on a sequence of numeric values. The values are -converted to references of the appropriate length using NUMERIC_CREATOR. References are created with -values from startValue to startValue + count - 1.

      -

      The implementation uses CharacterSetCreator.createSequence, so the values are created only as needed.

      -

      Parameters

      • startValue: number

        Start numeric value.

        -
      • count: number

        Count of identification keys to create.

        -
      • sparse: boolean = false

        If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    • Create multiple identification keys with references based on numeric values. The values are converted to -references of the appropriate length using NUMERIC_CREATOR.

      -

      The implementation uses CharacterSetCreator.createMultiple, so the values are created only as needed.

      -

      Parameters

      • valuesSource: IterationSource<number>

        Source of values.

        -
      • sparse: boolean = false

        If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    • Create all identification keys for the prefix from 0 to capacity - 1.

      -

      The implementation creates the strings as needed using an internal generator function, so the values are created -only as needed.

      -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    diff --git a/api/classes/GS1.GTINValidator.html b/api/classes/GS1.GTINValidator.html deleted file mode 100644 index 6f121f5..0000000 --- a/api/classes/GS1.GTINValidator.html +++ /dev/null @@ -1,50 +0,0 @@ -GTINValidator | AIDC Toolkit

    Class GTINValidator

    GTIN validator.

    -

    Hierarchy

    • AbstractNumericIdentificationKeyValidator
      • GTINValidator

    Constructors

    Accessors

    • get identificationKeyType(): IdentificationKeyType
    • Get the identification key type. Per the GS1 General Specifications, the identification key type determines -the remaining properties.

      -

      Returns IdentificationKeyType

    • get prefixType(): PrefixType
    • Get the prefix type supported by the identification key type. For all identification key types except the GTIN, -this is PrefixType.GS1CompanyPrefix. For the GTIN, the prefix type determines the length.

      -

      Returns PrefixType

    • get length(): number
    • Get the length. For numeric identification key types, the length is fixed; for alphanumeric identification key -types, the length is the maximum.

      -

      Returns number

    • get referenceCharacterSet(): CharacterSet
    • Get the reference character set.

      -

      Returns CharacterSet

    • get referenceValidator(): CharacterSetValidator
    • Get the reference validator.

      -

      Returns CharacterSetValidator

    Methods

    • Zero expand a zero-suppressed GTIN-12.

      -

      Parameters

      • zeroSuppressedGTIN12: string

        Zero-suppressed GTIN-12.

        -

      Returns string

      GTIN-12.

      -

      RangeError

      -
    • Validate any GTIN, optionally against a level.

      -

      Parameters

      • gtin: string

        GTIN.

        -
      • gtinLevel: GTINLevel = GTINLevel.Any

        Level at which GTIN is to be validated.

        -

      Returns void

      RangeError

      -
    • Validate a GTIN-14.

      -

      Parameters

      • gtin14: string

        GTIN-14.

        -

      Returns void

      RangeError

      -
    • Get the character set validator for a character set.

      -

      Parameters

      Returns CharacterSetValidator

      Character set validator.

      -
    • Pad an identification key on the left with zeroes for validation purposes. This is done to align an -identification key with a position offset for any error message that may be thrown by the reference validator.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • validation: undefined | IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns string

      Padded identification key.

      -
    • Validate the prefix within an identification key.

      -

      Parameters

      • partialIdentificationKey: string

        Partial identification key.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

    • Parameters

      Returns void

    diff --git a/api/classes/GS1.NonGTINNumericIdentificationKeyCreator.html b/api/classes/GS1.NonGTINNumericIdentificationKeyCreator.html deleted file mode 100644 index 956f32d..0000000 --- a/api/classes/GS1.NonGTINNumericIdentificationKeyCreator.html +++ /dev/null @@ -1,77 +0,0 @@ -NonGTINNumericIdentificationKeyCreator | AIDC Toolkit

    Class NonGTINNumericIdentificationKeyCreator

    Non-GTIN numeric identification key creator.

    -

    Hierarchy

    Properties

    leaderType: LeaderType
    identificationKeyType: IdentificationKeyType
    prefixType: PrefixType
    length: number
    referenceCharacterSet: CharacterSet
    referenceValidator: CharacterSetValidator

    Constructors

    Accessors

    • get capacity(): number
    • Get the capacity (10**referenceLength).

      -

      Returns number

    • get tweak(): bigint
    • Get the tweak for sparse creation.

      -

      Returns bigint

    • set tweak(value): void
    • Set the tweak for sparse creation.

      -

      Parameters

      • value: bigint

      Returns void

    • get referenceCreator(): CharacterSetCreator
    • Get the reference creator.

      -

      Returns CharacterSetCreator

    • get prefixManager(): PrefixManager
    • Get the prefix manager to which this identification key creator is bound.

      -

      Returns PrefixManager

    • get prefix(): string
    • Get the prefix, equivalent to calling prefixManager.prefix for a GTIN or -prefixManager.gs1CompanyPrefix for all other identification key -types.

      -

      Returns string

    • get referenceLength(): number
    • Get the reference length.

      -

      Returns number

    Methods

    • Get the character set validator for a character set.

      -

      Parameters

      Returns CharacterSetValidator

      Character set validator.

      -
    • Pad an identification key on the left with zeroes for validation purposes. This is done to align an -identification key with a position offset for any error message that may be thrown by the reference validator.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • validation: undefined | IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns string

      Padded identification key.

      -
    • Parameters

      Returns void

    • Validate the prefix within an identification key.

      -

      Parameters

      • partialIdentificationKey: string

        Partial identification key.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

    • Initialize the prefix manager. This method is in lieu of a constructor due to the mixin architecture.

      -

      Parameters

      • prefixManager: PrefixManager

        Prefix manager.

        -
      • prefix: string

        Prefix within prefix manager to use to calculate reference length.

        -

      Returns void

      Error

      -
    • Create an identification key with a reference based on a numeric value. The value is converted to a reference of -the appropriate length using NUMERIC_CREATOR.

      -

      Parameters

      • value: number

        Numeric value.

        -
      • sparse: boolean = false

        If true, the value is mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns string

      Identification key.

      -
    • Create a sequence of identification keys with references based on a sequence of numeric values. The values are -converted to references of the appropriate length using NUMERIC_CREATOR. References are created with -values from startValue to startValue + count - 1.

      -

      The implementation uses CharacterSetCreator.createSequence, so the values are created only as needed.

      -

      Parameters

      • startValue: number

        Start numeric value.

        -
      • count: number

        Count of identification keys to create.

        -
      • sparse: boolean = false

        If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    • Create multiple identification keys with references based on numeric values. The values are converted to -references of the appropriate length using NUMERIC_CREATOR.

      -

      The implementation uses CharacterSetCreator.createMultiple, so the values are created only as needed.

      -

      Parameters

      • valuesSource: IterationSource<number>

        Source of values.

        -
      • sparse: boolean = false

        If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    • Create all identification keys for the prefix from 0 to capacity - 1.

      -

      The implementation creates the strings as needed using an internal generator function, so the values are created -only as needed.

      -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    diff --git a/api/classes/GS1.NonGTINNumericIdentificationKeyValidator.html b/api/classes/GS1.NonGTINNumericIdentificationKeyValidator.html deleted file mode 100644 index 41fee68..0000000 --- a/api/classes/GS1.NonGTINNumericIdentificationKeyValidator.html +++ /dev/null @@ -1,37 +0,0 @@ -NonGTINNumericIdentificationKeyValidator | AIDC Toolkit

    Class NonGTINNumericIdentificationKeyValidator

    Non-GTIN numeric identification key validator.

    -

    Hierarchy (view full)

    Constructors

    Accessors

    • get identificationKeyType(): IdentificationKeyType
    • Get the identification key type. Per the GS1 General Specifications, the identification key type determines -the remaining properties.

      -

      Returns IdentificationKeyType

    • get prefixType(): PrefixType
    • Get the prefix type supported by the identification key type. For all identification key types except the GTIN, -this is PrefixType.GS1CompanyPrefix. For the GTIN, the prefix type determines the length.

      -

      Returns PrefixType

    • get length(): number
    • Get the length. For numeric identification key types, the length is fixed; for alphanumeric identification key -types, the length is the maximum.

      -

      Returns number

    • get referenceCharacterSet(): CharacterSet
    • Get the reference character set.

      -

      Returns CharacterSet

    • get referenceValidator(): CharacterSetValidator
    • Get the reference validator.

      -

      Returns CharacterSetValidator

    Methods

    • Get the character set validator for a character set.

      -

      Parameters

      Returns CharacterSetValidator

      Character set validator.

      -
    • Pad an identification key on the left with zeroes for validation purposes. This is done to align an -identification key with a position offset for any error message that may be thrown by the reference validator.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • validation: undefined | IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns string

      Padded identification key.

      -
    • Parameters

      Returns void

    • Validate the prefix within an identification key.

      -

      Parameters

      • partialIdentificationKey: string

        Partial identification key.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

    diff --git a/api/classes/GS1.NonNumericIdentificationKeyCreator.html b/api/classes/GS1.NonNumericIdentificationKeyCreator.html deleted file mode 100644 index 9d8743e..0000000 --- a/api/classes/GS1.NonNumericIdentificationKeyCreator.html +++ /dev/null @@ -1,59 +0,0 @@ -NonNumericIdentificationKeyCreator | AIDC Toolkit

    Class NonNumericIdentificationKeyCreator

    Non-numeric identification key creator.

    -

    Hierarchy

    Properties

    identificationKeyType: IdentificationKeyType
    prefixType: PrefixType
    length: number
    referenceCharacterSet: CharacterSet
    referenceValidator: CharacterSetValidator

    Constructors

    • Constructor. Called internally by PrefixManager non-numeric identification key creator getters; should -not be called by other code.

      -

      Parameters

      • prefixManager: PrefixManager

        Prefix manager.

        -
      • identificationKeyType: IdentificationKeyType

        Identification key type.

        -
      • length: number

        Length.

        -
      • referenceCharacterSet: CharacterSet

        Reference character set.

        -
      • requiresCheckCharacterPair: boolean = false

        True if the identification key requires a check character pair.

        -

      Returns NonNumericIdentificationKeyCreator

    Accessors

    • get requiresCheckCharacterPair(): boolean
    • Determine if the identification key requires a check character pair.

      -

      Returns boolean

    • get referenceCreator(): CharacterSetCreator
    • Get the reference creator.

      -

      Returns CharacterSetCreator

    • get prefixManager(): PrefixManager
    • Get the prefix manager to which this identification key creator is bound.

      -

      Returns PrefixManager

    • get referenceLength(): number
    • Get the reference length.

      -

      Returns number

    Methods

    • Get the character set validator for a character set.

      -

      Parameters

      Returns CharacterSetValidator

      Character set validator.

      -
    • Pad an identification key on the left with zeroes for validation purposes. This is done to align an -identification key with a position offset for any error message that may be thrown by the reference validator.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • validation: undefined | IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns string

      Padded identification key.

      -
    • Create an identification key with a reference.

      -

      Parameters

      • reference: string

        Reference.

        -

      Returns string

      Identification key.

      -
    • Create multiple identification keys with references.

      -

      Parameters

      • referencesSource: IterationSource<string>

        Source of references.

        -

      Returns IterableIterator<string>

      Identification keys.

      -
    • Parameters

      Returns void

    • Validate an identification key and throw an exception if validation fails.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • Optionalvalidation: IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns void

    • Validate the prefix within an identification key.

      -

      Parameters

      • partialIdentificationKey: string

        Partial identification key.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

    • Initialize the prefix manager. This method is in lieu of a constructor due to the mixin architecture.

      -

      Parameters

      • prefixManager: PrefixManager

        Prefix manager.

        -
      • prefix: string

        Prefix within prefix manager to use to calculate reference length.

        -
      • checkAllowance: number

        Number of characters to allow for check digit or check character pair.

        -

      Returns void

      Error

      -
    diff --git a/api/classes/GS1.NonNumericIdentificationKeyValidator.html b/api/classes/GS1.NonNumericIdentificationKeyValidator.html deleted file mode 100644 index 7fe89ba..0000000 --- a/api/classes/GS1.NonNumericIdentificationKeyValidator.html +++ /dev/null @@ -1,38 +0,0 @@ -NonNumericIdentificationKeyValidator | AIDC Toolkit

    Class NonNumericIdentificationKeyValidator

    Non-numeric identification key validator.

    -

    Hierarchy

    • AbstractIdentificationKeyValidator
      • NonNumericIdentificationKeyValidator

    Constructors

    Accessors

    • get requiresCheckCharacterPair(): boolean
    • Determine if the identification key requires a check character pair.

      -

      Returns boolean

    • get identificationKeyType(): IdentificationKeyType
    • Get the identification key type. Per the GS1 General Specifications, the identification key type determines -the remaining properties.

      -

      Returns IdentificationKeyType

    • get prefixType(): PrefixType
    • Get the prefix type supported by the identification key type. For all identification key types except the GTIN, -this is PrefixType.GS1CompanyPrefix. For the GTIN, the prefix type determines the length.

      -

      Returns PrefixType

    • get length(): number
    • Get the length. For numeric identification key types, the length is fixed; for alphanumeric identification key -types, the length is the maximum.

      -

      Returns number

    • get referenceCharacterSet(): CharacterSet
    • Get the reference character set.

      -

      Returns CharacterSet

    • get referenceValidator(): CharacterSetValidator
    • Get the reference validator.

      -

      Returns CharacterSetValidator

    Methods

    • Get the character set validator for a character set.

      -

      Parameters

      Returns CharacterSetValidator

      Character set validator.

      -
    • Pad an identification key on the left with zeroes for validation purposes. This is done to align an -identification key with a position offset for any error message that may be thrown by the reference validator.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • validation: undefined | IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns string

      Padded identification key.

      -
    • Validate the prefix within an identification key.

      -

      Parameters

      • partialIdentificationKey: string

        Partial identification key.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

    diff --git a/api/classes/GS1.PrefixManager.html b/api/classes/GS1.PrefixManager.html deleted file mode 100644 index 2d17fd2..0000000 --- a/api/classes/GS1.PrefixManager.html +++ /dev/null @@ -1,83 +0,0 @@ -PrefixManager | AIDC Toolkit

    Class PrefixManager

    Prefix manager. This is the core class for identification key creation.

    -

    A prefix manager may be created for any type. As most applications work with a limited -number of prefixes for creating identification keys, prefix managers are cached in memory and may be reused.

    -

    Prefix managers are keyed by GS1 Company Prefix, so the prefix type that is requested may not match the prefix type -of the returned prefix manager. For example, the prefix manager for GS1 Company Prefix 0614141 is identical to the -one for U.P.C. Company Prefix 614141, with the prefix type equal to PrefixType.UPCCompanyPrefix and the -prefix equal to "614141".

    -

    To support the creation of sparse identification keys, a prefix manager maintains a tweak which is used, along with a type-specific multiplier, as the tweak when creating numeric identification keys. -The default tweak factor is the numeric value of the GS1 Company Prefix representation of the prefix preceded by '1' -to ensure uniqueness (i.e., so that prefixes 0 N1 N2 N3... and N1 N2 N3... produce different tweak factors). This is -usually sufficient for obfuscation, but as the sparse creation algorithm is reversible and as the GS1 Company Prefix -is discoverable via Verified by GS1, a user-defined tweak -factor should be used if a higher degree of obfuscation is required. When using a tweak factor other than the -default, care should be taken to restore it when resuming the application. A tweak factor of 0 creates a straight -sequence.

    -

    Properties

    GS1_COMPANY_PREFIX_MINIMUM_LENGTH: 4 = 4

    GS1 Company Prefix minimum length.

    -
    GS1_COMPANY_PREFIX_MAXIMUM_LENGTH: 12 = 12

    GS1 Company Prefix maximum length.

    -
    UPC_COMPANY_PREFIX_MINIMUM_LENGTH: 6 = 6

    U.P.C. Company Prefix minimum length.

    -
    UPC_COMPANY_PREFIX_MAXIMUM_LENGTH: 11 = 11

    U.P.C. Company Prefix maximum length.

    -
    GS1_8_PREFIX_MINIMUM_LENGTH: 2 = 2

    GS1-8 Prefix minimum length.

    -
    GS1_8_PREFIX_MAXIMUM_LENGTH: 7 = 7

    GS1-8 Prefix maximum length.

    -

    Accessors

    • get prefix(): string
    • Get the prefix.

      -

      Returns string

    • get gs1CompanyPrefix(): string
    • Get the GS1 Company Prefix.

      -

      Returns string

    • get tweakFactor(): bigint
    • Get the tweak factor.

      -

      Returns bigint

    • set tweakFactor(value): void
    • Set the tweak factor.

      -

      Parameters

      • value: number | bigint

        Tweak factor.

        -

      Returns void

    Methods

    • Validate a prefix.

      -

      Parameters

      • prefixType: PrefixType

        Prefix type.

        -
      • allowUPCCompanyPrefix: boolean

        If true, a U.P.C. Company Prefix expressed as a GS1 Company Prefix is permitted.

        -
      • allowGS18Prefix: boolean

        If true, a GS1-8 Prefix expressed as a GS1 Company Prefix is permitted.

        -
      • prefix: string

        Prefix.

        -
      • isFromIdentificationKey: boolean = false

        If true, the prefix is from an identification key and should be trimmed before its character set is validated.

        -
      • isNumericIdentificationKey: boolean = false

        If true, the prefix is from a numeric identification key and its character set will be validated by the caller.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

      RangeError

      -
    • Reset the tweak factor to its default (numeric value of the GS1 Company Prefix preceded by '1').

      -

      Returns void

    diff --git a/api/classes/GS1.SerializableNumericIdentificationKeyCreator.html b/api/classes/GS1.SerializableNumericIdentificationKeyCreator.html deleted file mode 100644 index e64fcc8..0000000 --- a/api/classes/GS1.SerializableNumericIdentificationKeyCreator.html +++ /dev/null @@ -1,112 +0,0 @@ -SerializableNumericIdentificationKeyCreator | AIDC Toolkit

    Class SerializableNumericIdentificationKeyCreator

    Serializable numeric identification key creator.

    -

    Hierarchy

    Properties

    leaderType: LeaderType
    identificationKeyType: IdentificationKeyType
    prefixType: PrefixType
    length: number
    referenceCharacterSet: CharacterSet
    referenceValidator: CharacterSetValidator

    Constructors

    • Constructor. Called internally by PrefixManager serialized numeric identification key creator getters; -should not be called by other code.

      -

      Parameters

      • prefixManager: PrefixManager

        Prefix manager.

        -
      • identificationKeyType: IdentificationKeyType

        Identification key type.

        -
      • length: number

        Length.

        -
      • serialComponentLength: number

        Serial component length.

        -
      • serialComponentCharacterSet: CharacterSet

        Serial component character set.

        -

      Returns SerializableNumericIdentificationKeyCreator

    Accessors

    • get serialComponentCreator(): CharacterSetCreator
    • Get the serial component creator.

      -

      Returns CharacterSetCreator

    • get serialComponentLength(): number
    • Get the serial component length.

      -

      Returns number

    • get serialComponentCharacterSet(): CharacterSet
    • Get the serial component character set.

      -

      Returns CharacterSet

    • get serialComponentValidation(): CharacterSetValidation
    • Get the serial component validation parameters.

      -

      Returns CharacterSetValidation

    • get serialComponentValidator(): CharacterSetValidator
    • Get the serial component validator.

      -

      Returns CharacterSetValidator

    • get capacity(): number
    • Get the capacity (10**referenceLength).

      -

      Returns number

    • get tweak(): bigint
    • Get the tweak for sparse creation.

      -

      Returns bigint

    • set tweak(value): void
    • Set the tweak for sparse creation.

      -

      Parameters

      • value: bigint

      Returns void

    • get referenceCreator(): CharacterSetCreator
    • Get the reference creator.

      -

      Returns CharacterSetCreator

    • get prefixManager(): PrefixManager
    • Get the prefix manager to which this identification key creator is bound.

      -

      Returns PrefixManager

    • get prefix(): string
    • Get the prefix, equivalent to calling prefixManager.prefix for a GTIN or -prefixManager.gs1CompanyPrefix for all other identification key -types.

      -

      Returns string

    • get referenceLength(): number
    • Get the reference length.

      -

      Returns number

    Methods

    • Get the character set validator for a character set.

      -

      Parameters

      Returns CharacterSetValidator

      Character set validator.

      -
    • Pad an identification key on the left with zeroes for validation purposes. This is done to align an -identification key with a position offset for any error message that may be thrown by the reference validator.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • validation: undefined | IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns string

      Padded identification key.

      -
    • Create a serialized identification key with a reference based on a numeric value and a serial component. The -value is converted to a reference of the appropriate length using NUMERIC_CREATOR.

      -

      Parameters

      • value: number

        Numeric value.

        -
      • serialComponent: string

        Serial component.

        -
      • sparse: boolean = false

        If true, the value is mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns string

      Serialized identification key.

      -
    • Create multiple serialized identification keys with a reference based on a numeric value and multiple serial -components. The value is converted to a reference of the appropriate length using NUMERIC_CREATOR.

      -

      Parameters

      • value: number

        Numeric value.

        -
      • serialComponentsSource: IterationSource<string>

        Source of serial components.

        -
      • sparse: boolean = false

        If true, the value is mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Serialized identification keys.

      -
    • Concatenate a base identification key with a serial component.

      -

      Parameters

      • baseIdentificationKey: string

        Base identification key.

        -
      • serialComponent: string

        Serial component.

        -

      Returns string

      Serialized identification key.

      -
    • Concatenate a base identification key with multiple serial components.

      -

      Parameters

      • baseIdentificationKey: string

        Base identification key.

        -
      • serialComponentsSource: IterationSource<string>

        Source of serial components.

        -

      Returns IterableIterator<string>

      Serialized identification keys.

      -
    • Parameters

      Returns void

    • Validate the prefix within an identification key.

      -

      Parameters

      • partialIdentificationKey: string

        Partial identification key.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

    • Initialize the prefix manager. This method is in lieu of a constructor due to the mixin architecture.

      -

      Parameters

      • prefixManager: PrefixManager

        Prefix manager.

        -
      • prefix: string

        Prefix within prefix manager to use to calculate reference length.

        -

      Returns void

      Error

      -
    • Create an identification key with a reference based on a numeric value. The value is converted to a reference of -the appropriate length using NUMERIC_CREATOR.

      -

      Parameters

      • value: number

        Numeric value.

        -
      • sparse: boolean = false

        If true, the value is mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns string

      Identification key.

      -
    • Create a sequence of identification keys with references based on a sequence of numeric values. The values are -converted to references of the appropriate length using NUMERIC_CREATOR. References are created with -values from startValue to startValue + count - 1.

      -

      The implementation uses CharacterSetCreator.createSequence, so the values are created only as needed.

      -

      Parameters

      • startValue: number

        Start numeric value.

        -
      • count: number

        Count of identification keys to create.

        -
      • sparse: boolean = false

        If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    • Create multiple identification keys with references based on numeric values. The values are converted to -references of the appropriate length using NUMERIC_CREATOR.

      -

      The implementation uses CharacterSetCreator.createMultiple, so the values are created only as needed.

      -

      Parameters

      • valuesSource: IterationSource<number>

        Source of values.

        -
      • sparse: boolean = false

        If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

        -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    • Create all identification keys for the prefix from 0 to capacity - 1.

      -

      The implementation creates the strings as needed using an internal generator function, so the values are created -only as needed.

      -

      Returns IterableIterator<string>

      Iterable iterator over created identification keys.

      -
    diff --git a/api/classes/GS1.SerializableNumericIdentificationKeyValidator.html b/api/classes/GS1.SerializableNumericIdentificationKeyValidator.html deleted file mode 100644 index 48586c8..0000000 --- a/api/classes/GS1.SerializableNumericIdentificationKeyValidator.html +++ /dev/null @@ -1,47 +0,0 @@ -SerializableNumericIdentificationKeyValidator | AIDC Toolkit

    Class SerializableNumericIdentificationKeyValidator

    Serializable numeric identification key validator. Validates both serialized and non-serialized forms of -numeric identification keys that support serialization.

    -

    Hierarchy (view full)

    Constructors

    Accessors

    • get serialComponentLength(): number
    • Get the serial component length.

      -

      Returns number

    • get serialComponentValidation(): CharacterSetValidation
    • Get the serial component validation parameters.

      -

      Returns CharacterSetValidation

    • get serialComponentValidator(): CharacterSetValidator
    • Get the serial component validator.

      -

      Returns CharacterSetValidator

    • get identificationKeyType(): IdentificationKeyType
    • Get the identification key type. Per the GS1 General Specifications, the identification key type determines -the remaining properties.

      -

      Returns IdentificationKeyType

    • get prefixType(): PrefixType
    • Get the prefix type supported by the identification key type. For all identification key types except the GTIN, -this is PrefixType.GS1CompanyPrefix. For the GTIN, the prefix type determines the length.

      -

      Returns PrefixType

    • get length(): number
    • Get the length. For numeric identification key types, the length is fixed; for alphanumeric identification key -types, the length is the maximum.

      -

      Returns number

    • get referenceCharacterSet(): CharacterSet
    • Get the reference character set.

      -

      Returns CharacterSet

    • get referenceValidator(): CharacterSetValidator
    • Get the reference validator.

      -

      Returns CharacterSetValidator

    Methods

    • Pad an identification key on the left with zeroes for validation purposes. This is done to align an -identification key with a position offset for any error message that may be thrown by the reference validator.

      -

      Parameters

      • identificationKey: string

        Identification key.

        -
      • validation: undefined | IdentificationKeyValidation

        Identification key validation parameters.

        -

      Returns string

      Padded identification key.

      -
    • Validate the prefix within an identification key.

      -

      Parameters

      • partialIdentificationKey: string

        Partial identification key.

        -
      • OptionalpositionOffset: number

        Position offset within a larger string.

        -

      Returns void

    diff --git a/api/classes/Utility.CharacterSetCreator.html b/api/classes/Utility.CharacterSetCreator.html deleted file mode 100644 index 4815726..0000000 --- a/api/classes/Utility.CharacterSetCreator.html +++ /dev/null @@ -1,78 +0,0 @@ -CharacterSetCreator | AIDC Toolkit

    Character set creator. Maps numeric values to strings using the character set as digits.

    -

    Hierarchy (view full)

    Properties

    MAXIMUM_STRING_LENGTH: 40 = 40

    Maximum string length supported.

    -

    Constructors

    Accessors

    • get characterSet(): readonly string[]
    • Get the character set.

      -

      Returns readonly string[]

    • get characterSetSize(): number
    • Get the character set size.

      -

      Returns number

    • get exclusionSupport(): readonly Exclusion[]
    • Get the exclusions supported by the character set.

      -

      Returns readonly Exclusion[]

    Methods

    • Get a power of 10.

      -

      Parameters

      • power: number

        Power.

        -

      Returns bigint

      10**power.

      -
    • Create a string by mapping a value to the equivalent characters in the character set across the length of the -string.

      -

      Parameters

      • length: number

        Required string length.

        -
      • value: number | bigint

        Numeric value of the string.

        -
      • exclusion: Exclusion = Exclusion.None

        Strings to be excluded from the range of outputs. See Exclusion for possible values and their meaning.

        -
      • Optionaltweak: number | bigint

        If provided, the numerical value of the string is "tweaked" using an encryption transformer.

        -
      • OptionalcreationCallback: CreationCallback

        If provided, called after the string is constructed to create the final value.

        -

      Returns string

      String created from the value.

      -
    • Create a sequence of strings by mapping each value to the equivalent characters in the character set across the -length of the string. Equivalent to calling create for value = startValue + n where n ranges from 0 -to count - 1.

      -

      The implementation uses Transformer.forwardSequence, so the values are created only as needed.

      -

      Parameters

      • length: number

        See create.

        -
      • startValue: number | bigint

        Numeric value of the first string. Strings are created from startValue to startValue + count - 1.

        -
      • count: number

        The number of strings to create.

        -
      • exclusion: Exclusion = Exclusion.None

        See create.

        -
      • Optionaltweak: number | bigint

        See create.

        -
      • OptionalcreationCallback: CreationCallback

        See create.

        -

      Returns IterableIterator<string>

      Iterable iterator over created strings.

      -
    • Create multiple strings by mapping each value to the equivalent characters in the character set across the length -of the string. Equivalent to calling create for each value in the values source.

      -

      The implementation uses Transformer.forwardMultiple, so the values are created only as needed.

      -

      Parameters

      Returns IterableIterator<string>

      Iterable iterator over created strings.

      -
    • Determine the value for a string.

      -

      Parameters

      • s: string

        String.

        -
      • exclusion: Exclusion = Exclusion.None

        Strings excluded from the range of inputs. See Exclusion for possible values and their meaning.

        -
      • Optionaltweak: number | bigint

        If provided, the numerical value of the string was "tweaked" using an encryption transformer.

        -

      Returns bigint

      Numeric value of the string.

      -
    • Get the index for a character.

      -

      Parameters

      • c: string

        Character.

        -

      Returns undefined | number

      Index for the character or undefined if the character is not in the character set.

      -
    • Get the indexes for all characters in a string.

      -

      Parameters

      • s: string

        String.

        -

      Returns readonly (undefined | number)[]

      Array of indexes for each character or undefined if the character is not in the character set.

      -
    • Validate a string. If the string violates the character set or any of the character set validation parameters, an -exception is thrown.

      -

      Parameters

      Returns void

      RangeError

      -
    diff --git a/api/classes/Utility.CharacterSetValidator.html b/api/classes/Utility.CharacterSetValidator.html deleted file mode 100644 index 5fd662c..0000000 --- a/api/classes/Utility.CharacterSetValidator.html +++ /dev/null @@ -1,35 +0,0 @@ -CharacterSetValidator | AIDC Toolkit

    Class CharacterSetValidator

    Character set validator. Validates a string against a specified character set.

    -

    Hierarchy (view full)

    Implements

    Constructors

    • Constructor.

      -

      Parameters

      • characterSet: readonly string[]

        Character set. Each element is a single-character string, unique within the array, that defines the character -set.

        -
      • Rest...exclusionSupport: readonly Exclusion[]

        Exclusions supported by the character set. All character sets implicitly support Exclusion.None.

        -

      Returns CharacterSetValidator

    Accessors

    • get characterSet(): readonly string[]
    • Get the character set.

      -

      Returns readonly string[]

    • get characterSetSize(): number
    • Get the character set size.

      -

      Returns number

    Methods

    • Get the character at an index.

      -

      Parameters

      • index: number

        Index into the character set.

        -

      Returns string

      Character at the index.

      -
    • Get the index for a character.

      -

      Parameters

      • c: string

        Character.

        -

      Returns undefined | number

      Index for the character or undefined if the character is not in the character set.

      -
    • Get the indexes for all characters in a string.

      -

      Parameters

      • s: string

        String.

        -

      Returns readonly (undefined | number)[]

      Array of indexes for each character or undefined if the character is not in the character set.

      -
    • Validate that an exclusion is supported. If not, an exception is thrown.

      -

      Parameters

      Returns void

      RangeError

      -
    • Validate a string. If the string violates the character set or any of the character set validation parameters, an -exception is thrown.

      -

      Parameters

      Returns void

      RangeError

      -
    diff --git a/api/classes/Utility.EncryptionTransformer.html b/api/classes/Utility.EncryptionTransformer.html deleted file mode 100644 index c11ec83..0000000 --- a/api/classes/Utility.EncryptionTransformer.html +++ /dev/null @@ -1,73 +0,0 @@ -EncryptionTransformer | AIDC Toolkit

    Class EncryptionTransformer

    Encryption transformer. Values are transformed using repeated shuffle and xor operations. The underlying operations -are similar to those found in many cryptography algorithms, particularly AES. While sufficient for obfuscation of -numeric sequences (e.g., serial number generation, below), if true format-preserving encryption is required, a more -robust algorithm such as FF1 is recommended.

    -

    The purpose of the encryption transformer is to generate pseudo-random values in a deterministic manner to obscure -the sequence of values generated over time. A typical example is for serial number generation, where knowledge of the -sequence can infer production volumes (e.g., serial number 1000 implies that at least 1,000 units have been -manufactured) or can be used in counterfeiting (e.g., a counterfeiter can generate serial numbers 1001, 1002, ... -with reasonable confidence that they would be valid if queried).

    -

    The domain and the tweak together determine the encryption key, which in turn determines the number of rounds of -shuffle and xor operations. The minimum number of rounds is 4, except where the domain is less than or equal to 256, -which results in single-byte operations. To ensure that the operations are effective for single-byte domains, the -number of rounds is 1 and only the xor operation is applied (shuffling a single byte is an identity operation).

    -

    Another exception is when there is a tweak value of 0; this results in identity operations where the output value is -identical to the input value, as no shuffle or xor takes place.

    -

    Hierarchy (view full)

    Constructors

    Accessors

    • get domain(): bigint
    • Get the domain.

      -

      Returns bigint

    Methods

    • Do the work of transforming a value forward.

      -

      Parameters

      • value: bigint

        Value.

        -

      Returns bigint

      Transformed value.

      -
    • Do the work of transforming a value in reverse.

      -

      Parameters

      • transformedValue: bigint

        Transformed value.

        -

      Returns bigint

      Value.

      -
    • Transform a value forward.

      -

      Parameters

      • value: bigint

        Value.

        -

      Returns bigint

      Transformed value.

      -
    • Transform a value forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • value: bigint

        Value.

        -
      • transformationCallback: TransformationCallback<T>

        Called after the value is transformed to convert it to its final value.

        -

      Returns T

      Value transformed into object.

      -
    • Transform a sequence of values forward.

      -

      Parameters

      • startValue: bigint

        Numerical value of the first object. Objects are created from startValue to startValue + count - 1.

        -
      • count: number

        Number of objects to create.

        -

      Returns IterableIterator<bigint>

      Transformed value.

      -
    • Transform a sequence of values forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • startValue: bigint

        Numerical value of the first object. Objects are created from startValue to startValue + count - 1.

        -
      • count: number

        Number of objects to create.

        -
      • transformationCallback: TransformationCallback<T>

        Transformation callback called after the value is transformed to convert it to its final value.

        -

      Returns IterableIterator<T>

      Iterable iterator over transformed values as defined by transformation callback.

      -
    • Transform multiple values forward.

      -

      Parameters

      Returns IterableIterator<bigint>

      Iterable iterator over transformed values.

      -
    • Transform multiple values forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • valuesSource: IterationSource<bigint>

        Source of values.

        -
      • transformationCallback: TransformationCallback<T>

        Transformation callback called after the value is transformed to convert it to its final value.

        -

      Returns IterableIterator<T>

      Iterable iterator over transformed values as defined by transformation callback.

      -
    • Transform a value in reverse.

      -

      Parameters

      • transformedValue: bigint

        Transformed value.

        -

      Returns bigint

      Value.

      -
    diff --git a/api/classes/Utility.IdentityTransformer.html b/api/classes/Utility.IdentityTransformer.html deleted file mode 100644 index e488400..0000000 --- a/api/classes/Utility.IdentityTransformer.html +++ /dev/null @@ -1,56 +0,0 @@ -IdentityTransformer | AIDC Toolkit

    Identity transformer. Values are transformed to themselves.

    -

    Hierarchy (view full)

    Constructors

    Accessors

    • get domain(): bigint
    • Get the domain.

      -

      Returns bigint

    Methods

    • Do the work of transforming a value forward.

      -

      Parameters

      • value: bigint

        Value.

        -

      Returns bigint

      Transformed value.

      -
    • Do the work of transforming a value in reverse.

      -

      Parameters

      • transformedValue: bigint

        Transformed value.

        -

      Returns bigint

      Value.

      -
    • Transform a value forward.

      -

      Parameters

      • value: bigint

        Value.

        -

      Returns bigint

      Transformed value.

      -
    • Transform a value forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • value: bigint

        Value.

        -
      • transformationCallback: TransformationCallback<T>

        Called after the value is transformed to convert it to its final value.

        -

      Returns T

      Value transformed into object.

      -
    • Transform a sequence of values forward.

      -

      Parameters

      • startValue: bigint

        Numerical value of the first object. Objects are created from startValue to startValue + count - 1.

        -
      • count: number

        Number of objects to create.

        -

      Returns IterableIterator<bigint>

      Transformed value.

      -
    • Transform a sequence of values forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • startValue: bigint

        Numerical value of the first object. Objects are created from startValue to startValue + count - 1.

        -
      • count: number

        Number of objects to create.

        -
      • transformationCallback: TransformationCallback<T>

        Transformation callback called after the value is transformed to convert it to its final value.

        -

      Returns IterableIterator<T>

      Iterable iterator over transformed values as defined by transformation callback.

      -
    • Transform multiple values forward.

      -

      Parameters

      Returns IterableIterator<bigint>

      Iterable iterator over transformed values.

      -
    • Transform multiple values forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • valuesSource: IterationSource<bigint>

        Source of values.

        -
      • transformationCallback: TransformationCallback<T>

        Transformation callback called after the value is transformed to convert it to its final value.

        -

      Returns IterableIterator<T>

      Iterable iterator over transformed values as defined by transformation callback.

      -
    • Transform a value in reverse.

      -

      Parameters

      • transformedValue: bigint

        Transformed value.

        -

      Returns bigint

      Value.

      -
    diff --git a/api/classes/Utility.IterationHelper.html b/api/classes/Utility.IterationHelper.html deleted file mode 100644 index 90813d5..0000000 --- a/api/classes/Utility.IterationHelper.html +++ /dev/null @@ -1,53 +0,0 @@ -IterationHelper | AIDC Toolkit

    Class IterationHelper<T>

    Iteration helper. Adds array-like functionality through forEach, map, filter, and -reduce methods. Likely to be refactored as iterator helpers are more widely deployed.

    -

    Type Parameters

    • T

    Implements

    • IterableIterator<T>

    Accessors

    Methods

    • Get an iteration helper from an iteration source. If the iteration source is itself an iteration helper, it is -returned verbatim, otherwise a new iteration helper is constructed.

      -

      Type Parameters

      • T

      Parameters

      Returns IterationHelper<T>

      Iteration helper.

      -
    • Get the iteration source as an iterable.

      -

      Returns Iterable<T>

      Iterable.

      -
    • Get the iteration source as an array.

      -

      Returns readonly T[]

      Array.

      -
    • Get the iteration source as an iterator.

      -

      Returns Iterator<T, any, undefined>

      Iterator.

      -
    • Iterator interface implementation.

      -

      Parameters

      • Rest...args: [] | [undefined]

        Arguments.

        -

      Returns IteratorResult<T, unknown>

      Next element.

      -
    • Perform an action for each element in the iteration helper.

      -

      Parameters

      • callback: ((element: T, index: number) => void)

        Callback that processes the element and its index in the iteration sequence.

        -
          • (element, index): void
          • Parameters

            • element: T
            • index: number

            Returns void

      Returns void

    • Map the iteration helper to another iteration helper by performing an action for each element in the iteration -helper along the way.

      -

      Type Parameters

      • U

      Parameters

      • callback: ((element: T, index: number) => U)

        Callback that processes the element and its index in the iteration sequence.

        -
          • (element, index): U
          • Parameters

            • element: T
            • index: number

            Returns U

      Returns IterableIterator<U>

      Iterable iterator over callback results.

      -
    • Filter the iteration helper based on the condition specified in a predicate. Each call to .next() will iterate -as far as necessary until it reaches an element that satisfies the predicate. Care should be taken when working -with large iterators and infrequently truthy predicates.

      -

      Parameters

      • predicate: ((element: T, index: number) => boolean)

        Predicate that processes the element and its index in the iteration sequence.

        -
          • (element, index): boolean
          • Parameters

            • element: T
            • index: number

            Returns boolean

      Returns IterableIterator<T>

      Iterator iterable over elements that satisfy the predicate.

      -
    • Reduce the iterator to a single value by applying a callback.

      -

      Parameters

      • callback: ((previousValue: T, currentValue: T, currentIndex: number) => T)

        Callback that processes the previous return value of the callback, the current value of the iterator, and the -current index. The initial value is considered to be the first element in the iteration helper.

        -
          • (previousValue, currentValue, currentIndex): T
          • Parameters

            • previousValue: T
            • currentValue: T
            • currentIndex: number

            Returns T

      Returns T

      Reduced value.

      -
    • Reduce the iterator to a single value by applying a callback.

      -

      Parameters

      • callback: ((previousValue: T, currentValue: T, currentIndex: number) => T)

        Callback that processes the previous return value of the callback, the current value of the iterator, and the -current index.

        -
          • (previousValue, currentValue, currentIndex): T
          • Parameters

            • previousValue: T
            • currentValue: T
            • currentIndex: number

            Returns T

      • initialValue: T

        Initial value, passed as the first previous return value of the callback.

        -

      Returns T

      Reduced value.

      -
    • Iterable interface implementation.

      -

      Returns IterableIterator<T>

      Iterable iterator.

      -
    diff --git a/api/classes/Utility.RecordValidator.html b/api/classes/Utility.RecordValidator.html deleted file mode 100644 index aa238d2..0000000 --- a/api/classes/Utility.RecordValidator.html +++ /dev/null @@ -1,15 +0,0 @@ -RecordValidator | AIDC Toolkit

    Class RecordValidator<T>

    Record validator. Validation is performed against a record with a string key type and throws an exception if the key -is not found.

    -

    Type Parameters

    • T

    Implements

    Constructors

    Accessors

    Methods

    Constructors

    • Constructor.

      -

      Type Parameters

      • T

      Parameters

      • typeName: string

        Type name for error message.

        -
      • record: Readonly<Record<string, T>>

        Record in which to look up keys.

        -

      Returns RecordValidator<T>

    Accessors

    • get typeName(): string
    • Get the type name.

      -

      Returns string

    • get record(): Readonly<Record<string, T>>
    • Get the record.

      -

      Returns Readonly<Record<string, T>>

    Methods

    • Validate a key by looking it up in the record.

      -

      Parameters

      • key: string

        Record key.

        -

      Returns void

      RangeError

      -
    diff --git a/api/classes/Utility.RegExpValidator.html b/api/classes/Utility.RegExpValidator.html deleted file mode 100644 index a1402a7..0000000 --- a/api/classes/Utility.RegExpValidator.html +++ /dev/null @@ -1,20 +0,0 @@ -RegExpValidator | AIDC Toolkit

    Regular expression validator. The regular expression applies to the full string only if constructed as such. For -example, /\d*/ (0 or more digits) matches every string, /\d+/ -(1 or more digits) matches strings with at least one digit, /^\d*$/ matches strings that -are all digits or empty, and /^\d+$/ matches strings that are all digits and not empty.

    -

    Clients of this class are recommended to override the createErrorMessage method create a more suitable error -message for their use case.

    -

    Implements

    Constructors

    Accessors

    Methods

    Constructors

    Accessors

    • get regExp(): RegExp
    • Get the regular expression.

      -

      Returns RegExp

    Methods

    • Create an error message for a string. The generic error message is sufficient for many use cases but a more -domain-specific error message, possibly including the pattern itself, is often required.

      -

      Parameters

      • s: string

        String.

        -

      Returns string

      Error message.

      -
    • Validate a string and throw an exception if validation fails.

      -

      Parameters

      • s: string

        String.

        -

      Returns void

    diff --git a/api/classes/Utility.Transformer.html b/api/classes/Utility.Transformer.html deleted file mode 100644 index 65c5249..0000000 --- a/api/classes/Utility.Transformer.html +++ /dev/null @@ -1,66 +0,0 @@ -Transformer | AIDC Toolkit

    Class TransformerAbstract

    Transformer that transforms values in a numeric domain to values in a range equal to the domain or to another range -defined by a callback function. In other words, the domain determines valid input values and, without a callback, the -range of valid output values.

    -

    The concept is similar to format-preserving encryption, where input values within a specified domain (e.g., payment card numbers ranging from 8-19 digits) are transformed -into values in the same domain, typically for storage in a database where the data type and length are already fixed -and exfiltration of the data can have significant repercussions.

    -

    Two subclasses are supported directly by this class: IdentityTransformer (which operates based on a domain -only) and EncryptionTransformer (which operates based on a domain and a tweak). If an application is expected -to make repeated use of a transformer with the same domain and (optional) tweak and can't manage the transformer -object, an in-memory cache is available via the get method. Properties in IdentityTransformer and -EncryptionTransformer are read-only once constructed, so there is no issue with their shared use.

    -

    Hierarchy (view full)

    Constructors

    Accessors

    Methods

    • Do the work of transforming a value forward.

      -

      Parameters

      • value: bigint

        Value.

        -

      Returns bigint

      Transformed value.

      -
    • Transform a value forward.

      -

      Parameters

      • value: bigint

        Value.

        -

      Returns bigint

      Transformed value.

      -
    • Transform a value forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • value: bigint

        Value.

        -
      • transformationCallback: TransformationCallback<T>

        Called after the value is transformed to convert it to its final value.

        -

      Returns T

      Value transformed into object.

      -
    • Transform a sequence of values forward.

      -

      Parameters

      • startValue: bigint

        Numerical value of the first object. Objects are created from startValue to startValue + count - 1.

        -
      • count: number

        Number of objects to create.

        -

      Returns IterableIterator<bigint>

      Transformed value.

      -
    • Transform a sequence of values forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • startValue: bigint

        Numerical value of the first object. Objects are created from startValue to startValue + count - 1.

        -
      • count: number

        Number of objects to create.

        -
      • transformationCallback: TransformationCallback<T>

        Transformation callback called after the value is transformed to convert it to its final value.

        -

      Returns IterableIterator<T>

      Iterable iterator over transformed values as defined by transformation callback.

      -
    • Transform multiple values forward.

      -

      Parameters

      Returns IterableIterator<bigint>

      Iterable iterator over transformed values.

      -
    • Transform multiple values forward.

      -

      Type Parameters

      • T

        Type returned by transformation callback or bigint if none.

        -

      Parameters

      • valuesSource: IterationSource<bigint>

        Source of values.

        -
      • transformationCallback: TransformationCallback<T>

        Transformation callback called after the value is transformed to convert it to its final value.

        -

      Returns IterableIterator<T>

      Iterable iterator over transformed values as defined by transformation callback.

      -
    • Do the work of transforming a value in reverse.

      -

      Parameters

      • transformedValue: bigint

        Transformed value.

        -

      Returns bigint

      Value.

      -
    • Transform a value in reverse.

      -

      Parameters

      • transformedValue: bigint

        Transformed value.

        -

      Returns bigint

      Value.

      -
    diff --git a/api/enums/Core.I18NEnvironment.html b/api/enums/Core.I18NEnvironment.html deleted file mode 100644 index 16bec8f..0000000 --- a/api/enums/Core.I18NEnvironment.html +++ /dev/null @@ -1,8 +0,0 @@ -I18NEnvironment | AIDC Toolkit

    Enumeration I18NEnvironment

    Internationalization operating environment.

    -

    Enumeration Members

    Enumeration Members

    CLI: 0

    Command-line interface (e.g., unit tests).

    -
    Server: 1

    Web server.

    -
    Browser: 2

    Web browser.

    -
    diff --git a/api/enums/GS1.CharacterSet.html b/api/enums/GS1.CharacterSet.html deleted file mode 100644 index c4336b3..0000000 --- a/api/enums/GS1.CharacterSet.html +++ /dev/null @@ -1,9 +0,0 @@ -CharacterSet | AIDC Toolkit

    Enumeration CharacterSet

    Character set supported by the reference portion of an identification key or the serial component of a numeric -identification key.

    -

    Enumeration Members

    Enumeration Members

    Numeric: 0

    Numeric.

    -
    AI82: 1

    GS1 AI encodable character set 82.

    -
    AI39: 2

    GS1 AI encodable character set 39.

    -
    diff --git a/api/enums/GS1.GTINLevel.html b/api/enums/GS1.GTINLevel.html deleted file mode 100644 index a8cbbbe..0000000 --- a/api/enums/GS1.GTINLevel.html +++ /dev/null @@ -1,8 +0,0 @@ -GTINLevel | AIDC Toolkit

    Enumeration GTINLevel

    Level at which GTIN is to be validated.

    -

    Enumeration Members

    Any: 0

    Any level (level is ignored).

    -
    RetailConsumer: 1

    Retail consumer trade item level, supporting GTIN-13, GTIN-12 (optionally zero-suppressed), and GTIN-8.

    -
    OtherThanRetailConsumer: 2

    Other than retail consumer trade item level, supporting GTIN-13, GTIN-12 (not zero-suppressed), and GTIN-14.

    -
    diff --git a/api/enums/GS1.GTINType.html b/api/enums/GS1.GTINType.html deleted file mode 100644 index 22069aa..0000000 --- a/api/enums/GS1.GTINType.html +++ /dev/null @@ -1,10 +0,0 @@ -GTINType | AIDC Toolkit

    Enumeration GTINType

    GTIN type. The numeric values of this enumeration are equal to the lengths of the GTIN types.

    -

    Enumeration Members

    Enumeration Members

    GTIN13: 13

    GTIN-13.

    -
    GTIN12: 12

    GTIN-12.

    -
    GTIN8: 8

    GTIN-8.

    -
    GTIN14: 14

    GTIN-14.

    -
    diff --git a/api/enums/GS1.IdentificationKeyType.html b/api/enums/GS1.IdentificationKeyType.html deleted file mode 100644 index 1cd2807..0000000 --- a/api/enums/GS1.IdentificationKeyType.html +++ /dev/null @@ -1,26 +0,0 @@ -IdentificationKeyType | AIDC Toolkit

    Enumeration IdentificationKeyType

    Identification key type.

    -

    Enumeration Members

    Enumeration Members

    GTIN: "GTIN"

    Global Trade Item Number.

    -
    GLN: "GLN"

    Global Location Number.

    -
    SSCC: "SSCC"

    Serial Shipping Container Code.

    -
    GRAI: "GRAI"

    Global Returnable Asset Identifier.

    -
    GIAI: "GIAI"

    Global Individual Asset Identifier.

    -
    GSRN: "GSRN"

    Global Service Relation Number.

    -
    GDTI: "GDTI"

    Global Document Type Identifier.

    -
    GINC: "GINC"

    Global Identification Number for Consignment.

    -
    GSIN: "GSIN"

    Global Shipment Identification Number.

    -
    GCN: "GCN"

    Global Coupon Number.

    -
    CPID: "CPID"

    Component/Part Identifier.

    -
    GMN: "GMN"

    Global Model Number.

    -
    diff --git a/api/enums/GS1.LeaderType.html b/api/enums/GS1.LeaderType.html deleted file mode 100644 index 860d6e8..0000000 --- a/api/enums/GS1.LeaderType.html +++ /dev/null @@ -1,8 +0,0 @@ -LeaderType | AIDC Toolkit

    Enumeration LeaderType

    Leader type.

    -

    Enumeration Members

    Enumeration Members

    None: 0

    No leader.

    -
    IndicatorDigit: 1

    Indicator digit (GTIN only).

    -
    ExtensionDigit: 2

    Extension digit (SSCC only).

    -
    diff --git a/api/enums/GS1.PrefixType.html b/api/enums/GS1.PrefixType.html deleted file mode 100644 index faaec6f..0000000 --- a/api/enums/GS1.PrefixType.html +++ /dev/null @@ -1,8 +0,0 @@ -PrefixType | AIDC Toolkit

    Enumeration PrefixType

    Prefix type.

    -

    Enumeration Members

    GS1CompanyPrefix: 0

    GS1 Company Prefix.

    -
    UPCCompanyPrefix: 1

    U.P.C. Company Prefix.

    -
    GS18Prefix: 2

    GS1-8 Prefix.

    -
    diff --git a/api/enums/Utility.Exclusion.html b/api/enums/Utility.Exclusion.html deleted file mode 100644 index 21444c4..0000000 --- a/api/enums/Utility.Exclusion.html +++ /dev/null @@ -1,8 +0,0 @@ -Exclusion | AIDC Toolkit

    Enumeration Exclusion

    Exclusion options for validating and creating strings based on character sets.

    -

    Enumeration Members

    Enumeration Members

    None: 0

    No strings excluded.

    -
    FirstZero: 1

    Strings that start with zero ('0') excluded.

    -
    AllNumeric: 2

    Strings that are all-numeric (e.g., "123456") excluded.

    -
    diff --git a/api/functions/Core.i18nAddResourceBundle.html b/api/functions/Core.i18nAddResourceBundle.html deleted file mode 100644 index 6a4c68d..0000000 --- a/api/functions/Core.i18nAddResourceBundle.html +++ /dev/null @@ -1,5 +0,0 @@ -i18nAddResourceBundle | AIDC Toolkit

    Function i18nAddResourceBundle

    • Add a resource bundle.

      -

      Parameters

      • lng: string

        Language.

        -
      • ns: string

        Namespace.

        -
      • resources: object

        Resources.

        -

      Returns void

    diff --git a/api/functions/Core.i18nInit.html b/api/functions/Core.i18nInit.html deleted file mode 100644 index 8335b7e..0000000 --- a/api/functions/Core.i18nInit.html +++ /dev/null @@ -1,4 +0,0 @@ -i18nInit | AIDC Toolkit

    Function i18nInit

    • Initialize internationalization.

      -

      Parameters

      • environment: I18NEnvironment

        Environment in which the application is running.

        -
      • debug: boolean = false

        Debug setting.

        -

      Returns Promise<void>

    diff --git a/api/functions/GS1.checkCharacterPair.html b/api/functions/GS1.checkCharacterPair.html deleted file mode 100644 index 5e2573f..0000000 --- a/api/functions/GS1.checkCharacterPair.html +++ /dev/null @@ -1,5 +0,0 @@ -checkCharacterPair | AIDC Toolkit

    Function checkCharacterPair

    • Calculate the check character for a GS1 AI encodable character set 82 string as per section 7.9.5 of the General Specifications.

      -

      Parameters

      • s: string

        GS1 AI encodable character set 82 string.

        -

      Returns string

      Check character pair.

      -

      RangeError

      -
    diff --git a/api/functions/GS1.checkDigit.html b/api/functions/GS1.checkDigit.html deleted file mode 100644 index d422f4f..0000000 --- a/api/functions/GS1.checkDigit.html +++ /dev/null @@ -1,4 +0,0 @@ -checkDigit | AIDC Toolkit

    Function checkDigit

    • Calculate the check digit for a numeric string as per section 7.9.1 of the General Specifications.

      -

      Parameters

      • s: string

        Numeric string.

        -

      Returns string

      Check digit 0-9 as a string.

      -
    diff --git a/api/functions/GS1.checkDigitSum.html b/api/functions/GS1.checkDigitSum.html deleted file mode 100644 index 5f06921..0000000 --- a/api/functions/GS1.checkDigitSum.html +++ /dev/null @@ -1,5 +0,0 @@ -checkDigitSum | AIDC Toolkit

    Function checkDigitSum

    • Calculate the check digit sum for a numeric string as per section 7.9.1 of the General Specifications.

      -

      Parameters

      • exchangeWeights: boolean

        If true, start the weights at 1 instead of 3 on the right.

        -
      • s: string

        Numeric string.

        -

      Returns number

      Accumulated sum of each digit multiplied by the weight at its position.

      -
    diff --git a/api/functions/GS1.fiveDigitPriceWeightCheckDigit.html b/api/functions/GS1.fiveDigitPriceWeightCheckDigit.html deleted file mode 100644 index 3f841bd..0000000 --- a/api/functions/GS1.fiveDigitPriceWeightCheckDigit.html +++ /dev/null @@ -1,4 +0,0 @@ -fiveDigitPriceWeightCheckDigit | AIDC Toolkit

    Function fiveDigitPriceWeightCheckDigit

    • Calculate the price/weight check digit for a five-digit numeric string as per section 7.9.3 of the General Specifications.

      -

      Parameters

      • s: string

        Numeric string exactly five characters long.

        -

      Returns string

      Check digit 0-9 as a string.

      -
    diff --git a/api/functions/GS1.fourDigitPriceWeightCheckDigit.html b/api/functions/GS1.fourDigitPriceWeightCheckDigit.html deleted file mode 100644 index 7ace0ce..0000000 --- a/api/functions/GS1.fourDigitPriceWeightCheckDigit.html +++ /dev/null @@ -1,4 +0,0 @@ -fourDigitPriceWeightCheckDigit | AIDC Toolkit

    Function fourDigitPriceWeightCheckDigit

    • Calculate the price/weight check digit for a four-digit numeric string as per section 7.9.3 of the General Specifications.

      -

      Parameters

      • s: string

        Numeric string exactly four characters long.

        -

      Returns string

      Check digit 0-9 as a string.

      -
    diff --git a/api/functions/GS1.hasValidCheckCharacterPair.html b/api/functions/GS1.hasValidCheckCharacterPair.html deleted file mode 100644 index 0c7b1ad..0000000 --- a/api/functions/GS1.hasValidCheckCharacterPair.html +++ /dev/null @@ -1,4 +0,0 @@ -hasValidCheckCharacterPair | AIDC Toolkit

    Function hasValidCheckCharacterPair

    • Determine if a GS1 AI encodable character set 82 string has a valid check character pair.

      -

      Parameters

      • s: string

        GS1 AI encodable character set 82 string with check character pair.

        -

      Returns boolean

      True if the check character pair is valid.

      -
    diff --git a/api/functions/GS1.hasValidCheckDigit.html b/api/functions/GS1.hasValidCheckDigit.html deleted file mode 100644 index e835c57..0000000 --- a/api/functions/GS1.hasValidCheckDigit.html +++ /dev/null @@ -1,4 +0,0 @@ -hasValidCheckDigit | AIDC Toolkit

    Function hasValidCheckDigit

    • Determine if a numeric string has a valid check digit.

      -

      Parameters

      • s: string

        Numeric string with check digit.

        -

      Returns boolean

      True if the check digit is valid.

      -
    diff --git a/api/hierarchy.html b/api/hierarchy.html deleted file mode 100644 index e1ec5b0..0000000 --- a/api/hierarchy.html +++ /dev/null @@ -1 +0,0 @@ -AIDC Toolkit
    diff --git a/api/index.html b/api/index.html deleted file mode 100644 index 3040a33..0000000 --- a/api/index.html +++ /dev/null @@ -1 +0,0 @@ -AIDC Toolkit

    AIDC Toolkit

    diff --git a/api/interfaces/GS1.IdentificationKeyCreator.html b/api/interfaces/GS1.IdentificationKeyCreator.html deleted file mode 100644 index b1c9cb1..0000000 --- a/api/interfaces/GS1.IdentificationKeyCreator.html +++ /dev/null @@ -1,30 +0,0 @@ -IdentificationKeyCreator | AIDC Toolkit

    Interface IdentificationKeyCreator

    Identification key creator. Creates an identification key based on its definition in section 3 of the General Specifications.

    -

    Keys are created based on a prefix defined in a prefix manager to which the identification key creator is bound.

    -
    interface IdentificationKeyCreator {
        get referenceCreator(): CharacterSetCreator;
        get prefixManager(): PrefixManager;
        get prefix(): string;
        get referenceLength(): number;
        get identificationKeyType(): IdentificationKeyType;
        get prefixType(): PrefixType;
        get length(): number;
        get referenceCharacterSet(): CharacterSet;
        get referenceValidator(): CharacterSetValidator;
        validate: ((identificationKey: string, validation?: IdentificationKeyValidation) => void);
    }

    Hierarchy (view full)

    Properties

    validate: ((identificationKey: string, validation?: IdentificationKeyValidation) => void)

    Validate an identification key and throw an exception if validation fails.

    -

    Type declaration

      • (identificationKey, validation?): void
      • Parameters

        • identificationKey: string

          Identification key.

          -
        • Optionalvalidation: IdentificationKeyValidation

          Identification key validation parameters.

          -

        Returns void

    Accessors

    • get referenceCreator(): CharacterSetCreator
    • Get the reference creator.

      -

      Returns CharacterSetCreator

    • get referenceLength(): number
    • Get the reference length.

      -

      Returns number

    • get identificationKeyType(): IdentificationKeyType
    • Get the identification key type. Per the GS1 General Specifications, the identification key type determines -the remaining properties.

      -

      Returns IdentificationKeyType

    • get prefixType(): PrefixType
    • Get the prefix type supported by the identification key type. For all identification key types except the GTIN, -this is PrefixType.GS1CompanyPrefix. For the GTIN, the prefix type determines the length.

      -

      Returns PrefixType

    • get length(): number
    • Get the length. For numeric identification key types, the length is fixed; for alphanumeric identification key -types, the length is the maximum.

      -

      Returns number

    • get referenceCharacterSet(): CharacterSet
    • Get the reference character set.

      -

      Returns CharacterSet

    • get referenceValidator(): CharacterSetValidator
    • Get the reference validator.

      -

      Returns CharacterSetValidator

    diff --git a/api/interfaces/GS1.IdentificationKeyValidation.html b/api/interfaces/GS1.IdentificationKeyValidation.html deleted file mode 100644 index 5e3ba0f..0000000 --- a/api/interfaces/GS1.IdentificationKeyValidation.html +++ /dev/null @@ -1,5 +0,0 @@ -IdentificationKeyValidation | AIDC Toolkit

    Interface IdentificationKeyValidation

    Identification key validation parameters.

    -
    interface IdentificationKeyValidation {
        positionOffset?: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    positionOffset?: number

    Position offset within a larger string. Strings are sometimes composed of multiple substrings; this parameter -ensures that the exception notes the proper position in the string.

    -
    diff --git a/api/interfaces/GS1.IdentificationKeyValidator.html b/api/interfaces/GS1.IdentificationKeyValidator.html deleted file mode 100644 index 2201865..0000000 --- a/api/interfaces/GS1.IdentificationKeyValidator.html +++ /dev/null @@ -1,19 +0,0 @@ -IdentificationKeyValidator | AIDC Toolkit

    Interface IdentificationKeyValidator

    Identification key validator. Validates an identification key against its definition in section 3 of the General Specifications.

    -
    interface IdentificationKeyValidator {
        get identificationKeyType(): IdentificationKeyType;
        get prefixType(): PrefixType;
        get length(): number;
        get referenceCharacterSet(): CharacterSet;
        get referenceValidator(): CharacterSetValidator;
        validate: ((identificationKey: string, validation?: IdentificationKeyValidation) => void);
    }

    Hierarchy (view full)

    Properties

    validate: ((identificationKey: string, validation?: IdentificationKeyValidation) => void)

    Validate an identification key and throw an exception if validation fails.

    -

    Type declaration

      • (identificationKey, validation?): void
      • Parameters

        • identificationKey: string

          Identification key.

          -
        • Optionalvalidation: IdentificationKeyValidation

          Identification key validation parameters.

          -

        Returns void

    Accessors

    • get length(): number
    • Get the length. For numeric identification key types, the length is fixed; for alphanumeric identification key -types, the length is the maximum.

      -

      Returns number

    • get referenceValidator(): CharacterSetValidator
    • Get the reference validator.

      -

      Returns CharacterSetValidator

    diff --git a/api/interfaces/GS1.NonNumericIdentificationKeyValidation.html b/api/interfaces/GS1.NonNumericIdentificationKeyValidation.html deleted file mode 100644 index 05a43c7..0000000 --- a/api/interfaces/GS1.NonNumericIdentificationKeyValidation.html +++ /dev/null @@ -1,6 +0,0 @@ -NonNumericIdentificationKeyValidation | AIDC Toolkit

    Interface NonNumericIdentificationKeyValidation

    Non-numeric identification key validation parameters.

    -
    interface NonNumericIdentificationKeyValidation {
        exclusion?: None | AllNumeric;
        positionOffset?: number;
    }

    Hierarchy (view full)

    Properties

    exclusion?: None | AllNumeric
    positionOffset?: number

    Position offset within a larger string. Strings are sometimes composed of multiple substrings; this parameter -ensures that the exception notes the proper position in the string.

    -
    diff --git a/api/interfaces/GS1.NumericIdentificationKeyCreator.html b/api/interfaces/GS1.NumericIdentificationKeyCreator.html deleted file mode 100644 index 5d4bdaa..0000000 --- a/api/interfaces/GS1.NumericIdentificationKeyCreator.html +++ /dev/null @@ -1,60 +0,0 @@ -NumericIdentificationKeyCreator | AIDC Toolkit

    Interface NumericIdentificationKeyCreator

    Numeric identification key creator. Creates one or many numeric identification keys.

    -
    interface NumericIdentificationKeyCreator {
        get capacity(): number;
        create: ((value: number, sparse?: boolean) => string);
        createSequence: ((startValue: number, count: number, sparse?: boolean) => IterableIterator<string>);
        createMultiple: ((valuesSource: IterationSource<number>, sparse?: boolean) => IterableIterator<string>);
        createAll: (() => IterableIterator<string>);
        get leaderType(): LeaderType;
        get identificationKeyType(): IdentificationKeyType;
        get prefixType(): PrefixType;
        get length(): number;
        get referenceCharacterSet(): CharacterSet;
        get referenceValidator(): CharacterSetValidator;
        validate: ((identificationKey: string, validation?: IdentificationKeyValidation) => void);
        get referenceCreator(): CharacterSetCreator;
        get prefixManager(): PrefixManager;
        get prefix(): string;
        get referenceLength(): number;
    }

    Hierarchy (view full)

    Properties

    create: ((value: number, sparse?: boolean) => string)

    Create an identification key with a reference based on a numeric value. The value is converted to a reference of -the appropriate length using NUMERIC_CREATOR.

    -

    Type declaration

      • (value, sparse?): string
      • Parameters

        • value: number

          Numeric value.

          -
        • Optionalsparse: boolean

          If true, the value is mapped to a sparse sequence resistant to discovery. Default is false.

          -

        Returns string

        Identification key.

        -
    createSequence: ((startValue: number, count: number, sparse?: boolean) => IterableIterator<string>)

    Create a sequence of identification keys with references based on a sequence of numeric values. The values are -converted to references of the appropriate length using NUMERIC_CREATOR. References are created with -values from startValue to startValue + count - 1.

    -

    The implementation uses CharacterSetCreator.createSequence, so the values are created only as needed.

    -

    Type declaration

      • (startValue, count, sparse?): IterableIterator<string>
      • Parameters

        • startValue: number

          Start numeric value.

          -
        • count: number

          Count of identification keys to create.

          -
        • Optionalsparse: boolean

          If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

          -

        Returns IterableIterator<string>

        Iterable iterator over created identification keys.

        -
    createMultiple: ((valuesSource: IterationSource<number>, sparse?: boolean) => IterableIterator<string>)

    Create multiple identification keys with references based on numeric values. The values are converted to -references of the appropriate length using NUMERIC_CREATOR.

    -

    The implementation uses CharacterSetCreator.createMultiple, so the values are created only as needed.

    -

    Type declaration

      • (valuesSource, sparse?): IterableIterator<string>
      • Parameters

        • valuesSource: IterationSource<number>

          Source of values.

          -
        • Optionalsparse: boolean

          If true, the values are mapped to a sparse sequence resistant to discovery. Default is false.

          -

        Returns IterableIterator<string>

        Iterable iterator over created identification keys.

        -
    createAll: (() => IterableIterator<string>)

    Create all identification keys for the prefix from 0 to capacity - 1.

    -

    The implementation creates the strings as needed using an internal generator function, so the values are created -only as needed.

    -

    Type declaration

      • (): IterableIterator<string>
      • Returns IterableIterator<string>

        Iterable iterator over created identification keys.

        -
    validate: ((identificationKey: string, validation?: IdentificationKeyValidation) => void)

    Validate an identification key and throw an exception if validation fails.

    -

    Type declaration

      • (identificationKey, validation?): void
      • Parameters

        • identificationKey: string

          Identification key.

          -
        • Optionalvalidation: IdentificationKeyValidation

          Identification key validation parameters.

          -

        Returns void

    Accessors

    • get capacity(): number
    • Get the capacity (10**referenceLength).

      -

      Returns number

    • get identificationKeyType(): IdentificationKeyType
    • Get the identification key type. Per the GS1 General Specifications, the identification key type determines -the remaining properties.

      -

      Returns IdentificationKeyType

    • get prefixType(): PrefixType
    • Get the prefix type supported by the identification key type. For all identification key types except the GTIN, -this is PrefixType.GS1CompanyPrefix. For the GTIN, the prefix type determines the length.

      -

      Returns PrefixType

    • get length(): number
    • Get the length. For numeric identification key types, the length is fixed; for alphanumeric identification key -types, the length is the maximum.

      -

      Returns number

    • get referenceCharacterSet(): CharacterSet
    • Get the reference character set.

      -

      Returns CharacterSet

    • get referenceValidator(): CharacterSetValidator
    • Get the reference validator.

      -

      Returns CharacterSetValidator

    • get referenceCreator(): CharacterSetCreator
    • Get the reference creator.

      -

      Returns CharacterSetCreator

    • get prefixManager(): PrefixManager
    • Get the prefix manager to which this identification key creator is bound.

      -

      Returns PrefixManager

    • get referenceLength(): number
    • Get the reference length.

      -

      Returns number

    diff --git a/api/interfaces/GS1.NumericIdentificationKeyValidator.html b/api/interfaces/GS1.NumericIdentificationKeyValidator.html deleted file mode 100644 index 56a78ad..0000000 --- a/api/interfaces/GS1.NumericIdentificationKeyValidator.html +++ /dev/null @@ -1,21 +0,0 @@ -NumericIdentificationKeyValidator | AIDC Toolkit

    Interface NumericIdentificationKeyValidator

    Numeric identification key validator. Validates a numeric identification key.

    -
    interface NumericIdentificationKeyValidator {
        get leaderType(): LeaderType;
        get identificationKeyType(): IdentificationKeyType;
        get prefixType(): PrefixType;
        get length(): number;
        get referenceCharacterSet(): CharacterSet;
        get referenceValidator(): CharacterSetValidator;
        validate: ((identificationKey: string, validation?: IdentificationKeyValidation) => void);
    }

    Hierarchy (view full)

    Properties

    validate: ((identificationKey: string, validation?: IdentificationKeyValidation) => void)

    Validate an identification key and throw an exception if validation fails.

    -

    Type declaration

      • (identificationKey, validation?): void
      • Parameters

        • identificationKey: string

          Identification key.

          -
        • Optionalvalidation: IdentificationKeyValidation

          Identification key validation parameters.

          -

        Returns void

    Accessors

    • get identificationKeyType(): IdentificationKeyType
    • Get the identification key type. Per the GS1 General Specifications, the identification key type determines -the remaining properties.

      -

      Returns IdentificationKeyType

    • get prefixType(): PrefixType
    • Get the prefix type supported by the identification key type. For all identification key types except the GTIN, -this is PrefixType.GS1CompanyPrefix. For the GTIN, the prefix type determines the length.

      -

      Returns PrefixType

    • get length(): number
    • Get the length. For numeric identification key types, the length is fixed; for alphanumeric identification key -types, the length is the maximum.

      -

      Returns number

    • get referenceCharacterSet(): CharacterSet
    • Get the reference character set.

      -

      Returns CharacterSet

    • get referenceValidator(): CharacterSetValidator
    • Get the reference validator.

      -

      Returns CharacterSetValidator

    diff --git a/api/interfaces/Utility.CharacterSetValidation.html b/api/interfaces/Utility.CharacterSetValidation.html deleted file mode 100644 index 30371d9..0000000 --- a/api/interfaces/Utility.CharacterSetValidation.html +++ /dev/null @@ -1,15 +0,0 @@ -CharacterSetValidation | AIDC Toolkit

    Interface CharacterSetValidation

    Character set validation parameters.

    -
    interface CharacterSetValidation {
        minimumLength?: number;
        maximumLength?: number;
        exclusion?: Exclusion;
        positionOffset?: number;
        component?: string | (() => string);
    }

    Hierarchy (view full)

    Properties

    minimumLength?: number

    Minimum length. If defined and the string is less than this length, an exception is thrown.

    -
    maximumLength?: number

    Maximum length. If defined and the string is greater than this length, an exception is thrown.

    -
    exclusion?: Exclusion

    Exclusion from the string. If defined and the string is within the exclusion range, an exception is thrown.

    -
    positionOffset?: number

    Position offset within a larger string. Strings are sometimes composed of multiple substrings; this parameter -ensures that the exception notes the proper position in the string.

    -
    component?: string | (() => string)

    Name of component, typically but not exclusively within a larger string. This parameter ensure that the -exception notes the component that triggered it. Value may be a string or a callback that returns a string, the -latter allowing for localization changes.

    -
    diff --git a/api/interfaces/Utility.StringValidation.html b/api/interfaces/Utility.StringValidation.html deleted file mode 100644 index 01c6603..0000000 --- a/api/interfaces/Utility.StringValidation.html +++ /dev/null @@ -1,3 +0,0 @@ -StringValidation | AIDC Toolkit

    Interface StringValidation

    String validation interface. To ensure signature compatibility in implementing classes, string validation is -controlled by validation interfaces specific to each validator type.

    -

    Hierarchy (view full)

    diff --git a/api/interfaces/Utility.StringValidator.html b/api/interfaces/Utility.StringValidator.html deleted file mode 100644 index 2af7547..0000000 --- a/api/interfaces/Utility.StringValidator.html +++ /dev/null @@ -1,6 +0,0 @@ -StringValidator | AIDC Toolkit

    Interface StringValidator

    String validator interface.

    -
    interface StringValidator {
        validate: ((s: string, validation?: StringValidation) => void);
    }

    Implemented by

    Properties

    Properties

    validate: ((s: string, validation?: StringValidation) => void)

    Validate a string and throw an exception if validation fails.

    -

    Type declaration

      • (s, validation?): void
      • Parameters

        • s: string

          String.

          -
        • Optionalvalidation: StringValidation

          String validation parameters.

          -

        Returns void

    diff --git a/api/modules/Core.html b/api/modules/Core.html deleted file mode 100644 index c291a78..0000000 --- a/api/modules/Core.html +++ /dev/null @@ -1,18 +0,0 @@ -Core | AIDC Toolkit

    Module Core

    The AIDC Toolkit core package contains artefacts to support other AIDC Toolkit packages; it does not itself provide -any of the functionality of the AIDC Toolkit. It is a required dependency for all AIDC Toolkit packages.

    -

    All AIDC Toolkit packages require localization. The localization functionality in this package simplifies initialization -and allows packages to share a common internationalization engine, whose initialization is the responsibility of the -client application. Packages install their resources as follows in i18n.ts or similar:

    -
    import { i18nAddResourceBundle, i18next } from "@aidc-toolkit/core";
    import { localeStrings as enLocaleStrings } from "./en/locale_strings.js";

    export const packageNS = "aidct_package";

    i18nAddResourceBundle("en", packageNS, enLocaleStrings);

    export default i18next; -
    - -

    The resource types are declared in i18next.d.ts or similar:

    -
    import type { localeStrings } from "./en/locale_strings.js";

    declare module "i18next" {
    interface CustomTypeOptions {
    resources: {
    // Extract the type from the English locale strings object.
    aidct_package: typeof localeStrings;
    };
    }
    } -
    - -

    The resource folder contains common resources (e.g., AIDC Toolkit icon) usable by all AIDC Toolkit packages.

    -

    Index

    Enumerations

    Variables

    Functions

    diff --git a/api/modules/GS1.html b/api/modules/GS1.html deleted file mode 100644 index a0f272a..0000000 --- a/api/modules/GS1.html +++ /dev/null @@ -1,57 +0,0 @@ -GS1 | AIDC Toolkit

    Module GS1

    ⚠️ This software is in beta, with production release is scheduled for 2024Q4. To follow the status of that and other -projects, go to the AIDC Toolkit projects page.

    -

    The AIDC Toolkit gs1 package provides functionality related to the GS1 identification system:

    -
      -
    • Check digit calculation and validation for GS1 identification keys and price/weight encoding
    • -
    • Check character pair calculation and validation for GS1 identification keys
    • -
    • GS1 identification key validation
    • -
    • GS1 identification key creation
    • -
    -

    A comprehensive overview of this package may be found in the AIDC Toolkit -documentation.

    -

    Index

    Enumerations

    Interfaces

    Classes

    Variables

    Functions

    diff --git a/api/modules/Utility.html b/api/modules/Utility.html deleted file mode 100644 index 92eb9ed..0000000 --- a/api/modules/Utility.html +++ /dev/null @@ -1,31 +0,0 @@ -Utility | AIDC Toolkit

    Module Utility

    ⚠️ This software is in beta, with production release is scheduled for 2024Q4. To follow the status of that and other -projects, go to the AIDC Toolkit projects page.

    -

    The AIDC Toolkit utility package provides functionality that is not specific to AIDC but is nevertheless required by -other AIDC Toolkit packages:

    -
      -
    • Number transformation
    • -
    • String validation
    • -
    • String creation
    • -
    -

    A comprehensive overview of this package may be found in the AIDC Toolkit -documentation.

    -

    Index

    Enumerations

    Type Aliases

    Interfaces

    Classes

    Variables

    diff --git a/api/types/Utility.CreationCallback.html b/api/types/Utility.CreationCallback.html deleted file mode 100644 index a00da8a..0000000 --- a/api/types/Utility.CreationCallback.html +++ /dev/null @@ -1,5 +0,0 @@ -CreationCallback | AIDC Toolkit

    Type Alias CreationCallback

    CreationCallback: ((s: string, index: number) => string)

    Creation callback, used to convert created string to its final value.

    -

    Type declaration

      • (s, index): string
      • Parameters

        • s: string

          Created string.

          -
        • index: number

          Index in sequence creation (0 for single creation).

          -

        Returns string

        Final value.

        -
    diff --git a/api/types/Utility.IterationSource.html b/api/types/Utility.IterationSource.html deleted file mode 100644 index 45514f2..0000000 --- a/api/types/Utility.IterationSource.html +++ /dev/null @@ -1,2 +0,0 @@ -IterationSource | AIDC Toolkit

    Type Alias IterationSource<T>

    IterationSource<T>: Iterable<T> | Iterator<T> | (() => Iterable<T> | Iterator<T>)

    Iteration source type. The underlying source is an iterable or iterator or a callback to an iterable or iterator.

    -

    Type Parameters

    • T
    diff --git a/api/types/Utility.TransformationCallback.html b/api/types/Utility.TransformationCallback.html deleted file mode 100644 index 2ce36c5..0000000 --- a/api/types/Utility.TransformationCallback.html +++ /dev/null @@ -1,6 +0,0 @@ -TransformationCallback | AIDC Toolkit

    Type Alias TransformationCallback<T>

    TransformationCallback<T>: ((transformedValue: bigint, index: number) => T)

    Transformation callback, used to convert transformed value to its final value.

    -

    Type Parameters

    • T

      Type returned by callback.

      -

    Type declaration

      • (transformedValue, index): T
      • Parameters

        • transformedValue: bigint

          Transformed value.

          -
        • index: number

          Index in sequence transformation (0 for single transformation).

          -

        Returns T

        Final value.

        -
    diff --git a/api/variables/Core.i18next.html b/api/variables/Core.i18next.html deleted file mode 100644 index 065fd16..0000000 --- a/api/variables/Core.i18next.html +++ /dev/null @@ -1 +0,0 @@ -i18next | AIDC Toolkit

    Variable i18nextConst

    i18next: i18n
    diff --git a/api/variables/GS1.AI39_CREATOR.html b/api/variables/GS1.AI39_CREATOR.html deleted file mode 100644 index ac9999f..0000000 --- a/api/variables/GS1.AI39_CREATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -AI39_CREATOR | AIDC Toolkit

    Variable AI39_CREATORConst

    AI39_CREATOR: CharacterSetCreator = ...

    GS1 AI encodable character set 39 creator as defined in section 7.11 of the General Specifications. Supports Exclusion.AllNumeric.

    -
    diff --git a/api/variables/GS1.AI82_CREATOR.html b/api/variables/GS1.AI82_CREATOR.html deleted file mode 100644 index 8e11dc7..0000000 --- a/api/variables/GS1.AI82_CREATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -AI82_CREATOR | AIDC Toolkit

    Variable AI82_CREATORConst

    AI82_CREATOR: CharacterSetCreator = ...

    GS1 AI encodable character set 82 creator as defined in section 7.11 of the General Specifications. Supports Exclusion.AllNumeric.

    -
    diff --git a/api/variables/GS1.CPID_VALIDATOR.html b/api/variables/GS1.CPID_VALIDATOR.html deleted file mode 100644 index 26ab1a5..0000000 --- a/api/variables/GS1.CPID_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -CPID_VALIDATOR | AIDC Toolkit

    Variable CPID_VALIDATORConst

    CPID validator.

    -
    diff --git a/api/variables/GS1.GCN_VALIDATOR.html b/api/variables/GS1.GCN_VALIDATOR.html deleted file mode 100644 index 79b275c..0000000 --- a/api/variables/GS1.GCN_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GCN_VALIDATOR | AIDC Toolkit

    Variable GCN_VALIDATORConst

    GCN validator.

    -
    diff --git a/api/variables/GS1.GDTI_VALIDATOR.html b/api/variables/GS1.GDTI_VALIDATOR.html deleted file mode 100644 index e1fd619..0000000 --- a/api/variables/GS1.GDTI_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GDTI_VALIDATOR | AIDC Toolkit

    Variable GDTI_VALIDATORConst

    GDTI validator.

    -
    diff --git a/api/variables/GS1.GIAI_VALIDATOR.html b/api/variables/GS1.GIAI_VALIDATOR.html deleted file mode 100644 index 3f345c0..0000000 --- a/api/variables/GS1.GIAI_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GIAI_VALIDATOR | AIDC Toolkit

    Variable GIAI_VALIDATORConst

    GIAI validator.

    -
    diff --git a/api/variables/GS1.GINC_VALIDATOR.html b/api/variables/GS1.GINC_VALIDATOR.html deleted file mode 100644 index 4744eb0..0000000 --- a/api/variables/GS1.GINC_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GINC_VALIDATOR | AIDC Toolkit

    Variable GINC_VALIDATORConst

    GINC validator.

    -
    diff --git a/api/variables/GS1.GLN_VALIDATOR.html b/api/variables/GS1.GLN_VALIDATOR.html deleted file mode 100644 index aaebdec..0000000 --- a/api/variables/GS1.GLN_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GLN_VALIDATOR | AIDC Toolkit

    Variable GLN_VALIDATORConst

    GLN validator.

    -
    diff --git a/api/variables/GS1.GMN_VALIDATOR.html b/api/variables/GS1.GMN_VALIDATOR.html deleted file mode 100644 index 187e95c..0000000 --- a/api/variables/GS1.GMN_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GMN_VALIDATOR | AIDC Toolkit

    Variable GMN_VALIDATORConst

    GMN validator.

    -
    diff --git a/api/variables/GS1.GRAI_VALIDATOR.html b/api/variables/GS1.GRAI_VALIDATOR.html deleted file mode 100644 index a807296..0000000 --- a/api/variables/GS1.GRAI_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GRAI_VALIDATOR | AIDC Toolkit

    Variable GRAI_VALIDATORConst

    GRAI validator.

    -
    diff --git a/api/variables/GS1.GSIN_VALIDATOR.html b/api/variables/GS1.GSIN_VALIDATOR.html deleted file mode 100644 index 7da411e..0000000 --- a/api/variables/GS1.GSIN_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GSIN_VALIDATOR | AIDC Toolkit

    Variable GSIN_VALIDATORConst

    GSIN validator.

    -
    diff --git a/api/variables/GS1.GSRN_VALIDATOR.html b/api/variables/GS1.GSRN_VALIDATOR.html deleted file mode 100644 index 64fe3ef..0000000 --- a/api/variables/GS1.GSRN_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GSRN_VALIDATOR | AIDC Toolkit

    Variable GSRN_VALIDATORConst

    GSRN validator.

    -
    diff --git a/api/variables/GS1.GTIN12_VALIDATOR.html b/api/variables/GS1.GTIN12_VALIDATOR.html deleted file mode 100644 index 5b0c57a..0000000 --- a/api/variables/GS1.GTIN12_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GTIN12_VALIDATOR | AIDC Toolkit

    Variable GTIN12_VALIDATORConst

    GTIN12_VALIDATOR: GTINValidator = ...

    GTIN-12 validator.

    -
    diff --git a/api/variables/GS1.GTIN13_VALIDATOR.html b/api/variables/GS1.GTIN13_VALIDATOR.html deleted file mode 100644 index bd62429..0000000 --- a/api/variables/GS1.GTIN13_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GTIN13_VALIDATOR | AIDC Toolkit

    Variable GTIN13_VALIDATORConst

    GTIN13_VALIDATOR: GTINValidator = ...

    GTIN-13 validator.

    -
    diff --git a/api/variables/GS1.GTIN8_VALIDATOR.html b/api/variables/GS1.GTIN8_VALIDATOR.html deleted file mode 100644 index 1759d7e..0000000 --- a/api/variables/GS1.GTIN8_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -GTIN8_VALIDATOR | AIDC Toolkit

    Variable GTIN8_VALIDATORConst

    GTIN8_VALIDATOR: GTINValidator = ...

    GTIN-8 validator.

    -
    diff --git a/api/variables/GS1.GTIN_VALIDATORS.html b/api/variables/GS1.GTIN_VALIDATORS.html deleted file mode 100644 index 46047c6..0000000 --- a/api/variables/GS1.GTIN_VALIDATORS.html +++ /dev/null @@ -1,2 +0,0 @@ -GTIN_VALIDATORS | AIDC Toolkit

    Variable GTIN_VALIDATORSConst

    GTIN_VALIDATORS: GTINValidator[] = ...

    GTIN validators indexed by prefix type.

    -
    diff --git a/api/variables/GS1.SSCC_VALIDATOR.html b/api/variables/GS1.SSCC_VALIDATOR.html deleted file mode 100644 index 29d5847..0000000 --- a/api/variables/GS1.SSCC_VALIDATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -SSCC_VALIDATOR | AIDC Toolkit

    Variable SSCC_VALIDATORConst

    SSCC validator.

    -
    diff --git a/api/variables/Utility.ALPHABETIC_CREATOR.html b/api/variables/Utility.ALPHABETIC_CREATOR.html deleted file mode 100644 index f58536b..0000000 --- a/api/variables/Utility.ALPHABETIC_CREATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -ALPHABETIC_CREATOR | AIDC Toolkit

    Variable ALPHABETIC_CREATORConst

    ALPHABETIC_CREATOR: CharacterSetCreator = ...

    Alphabetic creator. Character set is A-Z.

    -
    diff --git a/api/variables/Utility.ALPHANUMERIC_CREATOR.html b/api/variables/Utility.ALPHANUMERIC_CREATOR.html deleted file mode 100644 index dcdba14..0000000 --- a/api/variables/Utility.ALPHANUMERIC_CREATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -ALPHANUMERIC_CREATOR | AIDC Toolkit

    Variable ALPHANUMERIC_CREATORConst

    ALPHANUMERIC_CREATOR: CharacterSetCreator = ...

    Alphanumeric creator. Character set is 0-9, A-Z. Supports Exclusion.FirstZero and Exclusion.AllNumeric.

    -
    diff --git a/api/variables/Utility.HEXADECIMAL_CREATOR.html b/api/variables/Utility.HEXADECIMAL_CREATOR.html deleted file mode 100644 index e4993cd..0000000 --- a/api/variables/Utility.HEXADECIMAL_CREATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -HEXADECIMAL_CREATOR | AIDC Toolkit

    Variable HEXADECIMAL_CREATORConst

    HEXADECIMAL_CREATOR: CharacterSetCreator = ...

    Hexadecimal creator. Character set is 0-9, A-F. Supports Exclusion.FirstZero and Exclusion.AllNumeric.

    -
    diff --git a/api/variables/Utility.NUMERIC_CREATOR.html b/api/variables/Utility.NUMERIC_CREATOR.html deleted file mode 100644 index 68c57a4..0000000 --- a/api/variables/Utility.NUMERIC_CREATOR.html +++ /dev/null @@ -1,2 +0,0 @@ -NUMERIC_CREATOR | AIDC Toolkit

    Variable NUMERIC_CREATORConst

    NUMERIC_CREATOR: CharacterSetCreator = ...

    Numeric creator. Character set is 0-9. Supports Exclusion.FirstZero.

    -
    diff --git a/copy-files-from-to.json b/copy-files-from-to.json index de977c1..49b89bb 100644 --- a/copy-files-from-to.json +++ b/copy-files-from-to.json @@ -2,11 +2,11 @@ "copyFiles": [ { "from": "../core/resource/icon-144.png", - "to": "resource/" - }, - { - "from": "../demo/dist/**/*", - "to": "demo/" + "to": "Writerside/images/" } - ] + ], + + "copyFilesSettings": { + "whenFileExists": "overwrite" + } } diff --git a/demo/assets/icon-288-CDfjY7nB.png b/demo/assets/icon-288-CDfjY7nB.png deleted file mode 100644 index 2cad78c..0000000 Binary files a/demo/assets/icon-288-CDfjY7nB.png and /dev/null differ diff --git a/demo/assets/index-BCCAPhev.css b/demo/assets/index-BCCAPhev.css deleted file mode 100644 index 0581270..0000000 --- a/demo/assets/index-BCCAPhev.css +++ /dev/null @@ -1,5 +0,0 @@ -@charset "UTF-8";#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:4em;padding:.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 .5em red)}/*! - * Bootstrap v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #052c65;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a3622;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #cfe2ff;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #9ec5fe;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13, 110, 253;--bs-link-decoration: underline;--bs-link-hover-color: #0a58ca;--bs-link-hover-color-rgb: 10, 88, 202;--bs-code-color: #d63384;--bs-highlight-color: #212529;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(13, 110, 253, .25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, .75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, .5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #6ea8fe;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #75b798;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #031633;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #084298;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6ea8fe;--bs-link-hover-color: #8bb9fe;--bs-link-color-rgb: 110, 168, 254;--bs-link-hover-color-rgb: 139, 185, 254;--bs-code-color: #e685b5;--bs-highlight-color: #dee2e6;--bs-highlight-bg: #664d03;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-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(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}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(--bs-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:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}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}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::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:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.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:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-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{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.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{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@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{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@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{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@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{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@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{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@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{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-emphasis-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-emphasis-color);--bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color: var(--bs-emphasis-color);--bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color: var(--bs-emphasis-color);--bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-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(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cfe2ff;--bs-table-border-color: #a6b5cc;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #b5b6b7;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #a7b9b1;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #a6c3ca;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #ccc2a4;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #c6acae;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #c6c7c8;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #4d5154;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-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}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);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(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-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::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-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.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-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='%23343a40' 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:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);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:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-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='%23dee2e6' 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.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-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='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-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='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-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%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-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='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-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='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;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:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-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.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-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(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-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(--bs-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::-moz-placeholder,.form-floating>.form-control-plaintext::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown),.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.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:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.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(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label:after{position:absolute;top:1rem;right:.375rem;bottom:1rem;left:.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.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;top:1rem;right:.375rem;bottom:1rem;left:.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--bs-secondary-bg)}.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:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-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(--bs-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:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-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(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-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"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-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:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-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(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-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"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-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{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);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(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.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(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0b5ed7;--bs-btn-hover-border-color: #0a58ca;--bs-btn-focus-shadow-rgb: 49, 132, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0a58ca;--bs-btn-active-border-color: #0a53be;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60, 153, 110;--bs-btn-active-color: #fff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11, 172, 204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13, 110, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25, 135, 84;--bs-btn-active-color: #fff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13, 202, 240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 49, 132, 253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-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{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-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(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.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(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.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(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-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:.5625rem;padding-left:.5625rem}.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:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-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{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-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:700;color:var(--bs-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{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-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%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-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(--bs-navbar-padding-y) var(--bs-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(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-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(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-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(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-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(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-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;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(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-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;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(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-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;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(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-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;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(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-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;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(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-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;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]{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-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.55%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{--bs-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.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.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(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-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(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-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{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-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;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-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='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-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(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-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{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%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");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%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{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-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(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-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(--bs-progress-height) var(--bs-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{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-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(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-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(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-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(--bs-list-group-border-width));border-top-width:var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%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");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-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(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-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{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-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(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-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(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-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(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-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(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-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(--bs-popover-arrow-height)) - var(--bs-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(--bs-popover-arrow-height) calc(var(--bs-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(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-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(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-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(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-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(--bs-popover-arrow-width) * .5) var(--bs-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(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-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(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-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(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-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(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-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%;-webkit-backface-visibility:hidden;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:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%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(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-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(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-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{--bs-offcanvas-height: auto;--bs-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(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-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(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-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{--bs-offcanvas-height: auto;--bs-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(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-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(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-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{--bs-offcanvas-height: auto;--bs-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(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-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(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-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{--bs-offcanvas-height: auto;--bs-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(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-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(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-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{--bs-offcanvas-height: auto;--bs-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(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-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:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.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:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity, 1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-primary:hover,.link-primary:focus{color:RGBA(10,88,202,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity, 1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,94,100,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity, 1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))!important}.link-success:hover,.link-success:focus{color:RGBA(20,108,67,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity, 1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))!important}.link-info:hover,.link-info:focus{color:RGBA(61,213,243,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity, 1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))!important}.link-warning:hover,.link-warning:focus{color:RGBA(255,205,57,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity, 1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))!important}.link-danger:hover,.link-danger:focus{color:RGBA(176,42,55,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity, 1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))!important}.link-light:hover,.link-light:focus{color:RGBA(249,250,251,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity, 1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))!important}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, .75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-underline-offset:.25em;-webkit-backface-visibility:hidden;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(--bs-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.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:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;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;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.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{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!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(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-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:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.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(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-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{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-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:3rem!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:3rem!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:3rem!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:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.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:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.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:3rem!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:3rem!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:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!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{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!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-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-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{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-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(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-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(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-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(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-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(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-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(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-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(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-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(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-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(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-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}@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{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;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:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-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:3rem!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:3rem!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:3rem!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:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.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:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.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:3rem!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:3rem!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:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!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{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;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:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-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:3rem!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:3rem!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:3rem!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:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.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:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.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:3rem!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:3rem!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:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!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{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;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:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-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:3rem!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:3rem!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:3rem!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:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.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:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.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:3rem!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:3rem!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:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!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{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;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:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-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:3rem!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:3rem!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:3rem!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:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.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:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.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:3rem!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:3rem!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:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!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{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;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:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-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:3rem!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:3rem!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:3rem!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:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.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:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.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:3rem!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:3rem!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:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!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}} diff --git a/demo/assets/index-BoXteRzp.js b/demo/assets/index-BoXteRzp.js deleted file mode 100644 index 7830e97..0000000 --- a/demo/assets/index-BoXteRzp.js +++ /dev/null @@ -1,45 +0,0 @@ -var dv=Object.defineProperty;var pv=(e,t,n)=>t in e?dv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var En=(e,t,n)=>pv(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();function zi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Md={exports:{}},Rs={},$d={exports:{}},z={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Gi=Symbol.for("react.element"),hv=Symbol.for("react.portal"),mv=Symbol.for("react.fragment"),gv=Symbol.for("react.strict_mode"),vv=Symbol.for("react.profiler"),yv=Symbol.for("react.provider"),xv=Symbol.for("react.context"),wv=Symbol.for("react.forward_ref"),Sv=Symbol.for("react.suspense"),Cv=Symbol.for("react.memo"),Ev=Symbol.for("react.lazy"),Oc=Symbol.iterator;function Nv(e){return e===null||typeof e!="object"?null:(e=Oc&&e[Oc]||e["@@iterator"],typeof e=="function"?e:null)}var jd={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Dd=Object.assign,Fd={};function _r(e,t,n){this.props=e,this.context=t,this.refs=Fd,this.updater=n||jd}_r.prototype.isReactComponent={};_r.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};_r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function bd(){}bd.prototype=_r.prototype;function Jl(e,t,n){this.props=e,this.context=t,this.refs=Fd,this.updater=n||jd}var eu=Jl.prototype=new bd;eu.constructor=Jl;Dd(eu,_r.prototype);eu.isPureReactComponent=!0;var Rc=Array.isArray,Vd=Object.prototype.hasOwnProperty,tu={current:null},zd={key:!0,ref:!0,__self:!0,__source:!0};function Gd(e,t,n){var r,i={},o=null,s=null;if(t!=null)for(r in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(o=""+t.key),t)Vd.call(t,r)&&!zd.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,W=T[V];if(0>>1;Vi(Z,_))mei(ut,Z)?(T[V]=ut,T[me]=_,V=me):(T[V]=Z,T[de]=_,V=de);else if(mei(ut,_))T[V]=ut,T[me]=_,V=me;else break e}}return L}function i(T,L){var _=T.sortIndex-L.sortIndex;return _!==0?_:T.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,a=s.now();e.unstable_now=function(){return s.now()-a}}var l=[],u=[],c=1,d=null,f=3,h=!1,x=!1,S=!1,C=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,p=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(T){for(var L=n(u);L!==null;){if(L.callback===null)r(u);else if(L.startTime<=T)r(u),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(u)}}function w(T){if(S=!1,v(T),!x)if(n(l)!==null)x=!0,G(N);else{var L=n(u);L!==null&&q(w,L.startTime-T)}}function N(T,L){x=!1,S&&(S=!1,g(I),I=-1),h=!0;var _=f;try{for(v(L),d=n(l);d!==null&&(!(d.expirationTime>L)||T&&!A());){var V=d.callback;if(typeof V=="function"){d.callback=null,f=d.priorityLevel;var W=V(d.expirationTime<=L);L=e.unstable_now(),typeof W=="function"?d.callback=W:d===n(l)&&r(l),v(L)}else r(l);d=n(l)}if(d!==null)var ke=!0;else{var de=n(u);de!==null&&q(w,de.startTime-L),ke=!1}return ke}finally{d=null,f=_,h=!1}}var E=!1,k=null,I=-1,M=5,R=-1;function A(){return!(e.unstable_now()-RT||125V?(T.sortIndex=_,t(u,T),n(l)===null&&T===n(u)&&(S?(g(I),I=-1):S=!0,q(w,_-V))):(T.sortIndex=W,t(l,T),x||h||(x=!0,G(N))),T},e.unstable_shouldYield=A,e.unstable_wrapCallback=function(T){var L=f;return function(){var _=f;f=L;try{return T.apply(this,arguments)}finally{f=_}}}})(Wd);Hd.exports=Wd;var $v=Hd.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var jv=y,qe=$v;function O(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ka=Object.prototype.hasOwnProperty,Dv=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Lc={},_c={};function Fv(e){return Ka.call(_c,e)?!0:Ka.call(Lc,e)?!1:Dv.test(e)?_c[e]=!0:(Lc[e]=!0,!1)}function bv(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Vv(e,t,n,r){if(t===null||typeof t>"u"||bv(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function De(e,t,n,r,i,o,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var Ne={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ne[e]=new De(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ne[t]=new De(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ne[e]=new De(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ne[e]=new De(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ne[e]=new De(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ne[e]=new De(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ne[e]=new De(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ne[e]=new De(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ne[e]=new De(e,5,!1,e.toLowerCase(),null,!1,!1)});var ru=/[\-:]([a-z])/g;function iu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ru,iu);Ne[t]=new De(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ru,iu);Ne[t]=new De(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ru,iu);Ne[t]=new De(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ne[e]=new De(e,1,!1,e.toLowerCase(),null,!1,!1)});Ne.xlinkHref=new De("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ne[e]=new De(e,1,!1,e.toLowerCase(),null,!0,!0)});function ou(e,t,n,r){var i=Ne.hasOwnProperty(t)?Ne[t]:null;(i!==null?i.type!==0:r||!(2a||i[s]!==o[a]){var l=` -`+i[s].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=s&&0<=a);break}}}finally{ca=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ei(e):""}function zv(e){switch(e.tag){case 5:return ei(e.type);case 16:return ei("Lazy");case 13:return ei("Suspense");case 19:return ei("SuspenseList");case 0:case 2:case 15:return e=fa(e.type,!1),e;case 11:return e=fa(e.type.render,!1),e;case 1:return e=fa(e.type,!0),e;default:return""}}function Qa(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case tr:return"Fragment";case er:return"Portal";case Ha:return"Profiler";case su:return"StrictMode";case Wa:return"Suspense";case Xa:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case qd:return(e.displayName||"Context")+".Consumer";case Qd:return(e._context.displayName||"Context")+".Provider";case au:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case lu:return t=e.displayName||null,t!==null?t:Qa(e.type)||"Memo";case Qt:t=e._payload,e=e._init;try{return Qa(e(t))}catch{}}return null}function Gv(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa(t);case 8:return t===su?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function dn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Zd(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Bv(e){var t=Zd(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(s){r=""+s,o.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ro(e){e._valueTracker||(e._valueTracker=Bv(e))}function Jd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Zd(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Uo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function qa(e,t){var n=t.checked;return ae({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Mc(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=dn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ep(e,t){t=t.checked,t!=null&&ou(e,"checked",t,!1)}function Ya(e,t){ep(e,t);var n=dn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Za(e,t.type,n):t.hasOwnProperty("defaultValue")&&Za(e,t.type,dn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function $c(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Za(e,t,n){(t!=="number"||Uo(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ti=Array.isArray;function hr(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=io.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function wi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var oi={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Uv=["Webkit","ms","Moz","O"];Object.keys(oi).forEach(function(e){Uv.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),oi[t]=oi[e]})});function ip(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||oi.hasOwnProperty(e)&&oi[e]?(""+t).trim():t+"px"}function op(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=ip(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Kv=ae({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function tl(e,t){if(t){if(Kv[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(O(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(O(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(O(61))}if(t.style!=null&&typeof t.style!="object")throw Error(O(62))}}function nl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var rl=null;function uu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var il=null,mr=null,gr=null;function Fc(e){if(e=Ki(e)){if(typeof il!="function")throw Error(O(280));var t=e.stateNode;t&&(t=Ms(t),il(e.stateNode,e.type,t))}}function sp(e){mr?gr?gr.push(e):gr=[e]:mr=e}function ap(){if(mr){var e=mr,t=gr;if(gr=mr=null,Fc(e),t)for(e=0;e>>=0,e===0?32:31-(ny(e)/ry|0)|0}var oo=64,so=4194304;function ni(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Xo(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,s=n&268435455;if(s!==0){var a=s&~i;a!==0?r=ni(a):(o&=s,o!==0&&(r=ni(o)))}else s=n&~i,s!==0?r=ni(s):o!==0&&(r=ni(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Bi(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-gt(t),e[t]=n}function ay(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=ai),Wc=" ",Xc=!1;function Tp(e,t){switch(e){case"keyup":return $y.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Op(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var nr=!1;function Dy(e,t){switch(e){case"compositionend":return Op(t);case"keypress":return t.which!==32?null:(Xc=!0,Wc);case"textInput":return e=t.data,e===Wc&&Xc?null:e;default:return null}}function Fy(e,t){if(nr)return e==="compositionend"||!vu&&Tp(e,t)?(e=kp(),Lo=hu=en=null,nr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Zc(n)}}function _p(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?_p(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ap(){for(var e=window,t=Uo();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Uo(e.document)}return t}function yu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Wy(e){var t=Ap(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&_p(n.ownerDocument.documentElement,n)){if(r!==null&&yu(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=Jc(n,o);var s=Jc(n,r);i&&s&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,rr=null,cl=null,ui=null,fl=!1;function ef(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;fl||rr==null||rr!==Uo(r)||(r=rr,"selectionStart"in r&&yu(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ui&&Ii(ui,r)||(ui=r,r=Yo(cl,"onSelect"),0sr||(e.current=vl[sr],vl[sr]=null,sr--)}function J(e,t){sr++,vl[sr]=e.current,e.current=t}var pn={},Le=gn(pn),ze=gn(!1),$n=pn;function Sr(e,t){var n=e.type.contextTypes;if(!n)return pn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Ge(e){return e=e.childContextTypes,e!=null}function Jo(){te(ze),te(Le)}function lf(e,t,n){if(Le.current!==pn)throw Error(O(168));J(Le,t),J(ze,n)}function Gp(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(O(108,Gv(e)||"Unknown",i));return ae({},n,r)}function es(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||pn,$n=Le.current,J(Le,e),J(ze,ze.current),!0}function uf(e,t,n){var r=e.stateNode;if(!r)throw Error(O(169));n?(e=Gp(e,t,$n),r.__reactInternalMemoizedMergedChildContext=e,te(ze),te(Le),J(Le,e)):te(ze),J(ze,n)}var Pt=null,$s=!1,ka=!1;function Bp(e){Pt===null?Pt=[e]:Pt.push(e)}function o0(e){$s=!0,Bp(e)}function vn(){if(!ka&&Pt!==null){ka=!0;var e=0,t=X;try{var n=Pt;for(X=1;e>=s,i-=s,Mt=1<<32-gt(t)+i|n<I?(M=k,k=null):M=k.sibling;var R=f(g,k,v[I],w);if(R===null){k===null&&(k=M);break}e&&k&&R.alternate===null&&t(g,k),p=o(R,p,I),E===null?N=R:E.sibling=R,E=R,k=M}if(I===v.length)return n(g,k),ne&&Nn(g,I),N;if(k===null){for(;II?(M=k,k=null):M=k.sibling;var A=f(g,k,R.value,w);if(A===null){k===null&&(k=M);break}e&&k&&A.alternate===null&&t(g,k),p=o(A,p,I),E===null?N=A:E.sibling=A,E=A,k=M}if(R.done)return n(g,k),ne&&Nn(g,I),N;if(k===null){for(;!R.done;I++,R=v.next())R=d(g,R.value,w),R!==null&&(p=o(R,p,I),E===null?N=R:E.sibling=R,E=R);return ne&&Nn(g,I),N}for(k=r(g,k);!R.done;I++,R=v.next())R=h(k,g,I,R.value,w),R!==null&&(e&&R.alternate!==null&&k.delete(R.key===null?I:R.key),p=o(R,p,I),E===null?N=R:E.sibling=R,E=R);return e&&k.forEach(function(F){return t(g,F)}),ne&&Nn(g,I),N}function C(g,p,v,w){if(typeof v=="object"&&v!==null&&v.type===tr&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case no:e:{for(var N=v.key,E=p;E!==null;){if(E.key===N){if(N=v.type,N===tr){if(E.tag===7){n(g,E.sibling),p=i(E,v.props.children),p.return=g,g=p;break e}}else if(E.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===Qt&&df(N)===E.type){n(g,E.sibling),p=i(E,v.props),p.ref=Hr(g,E,v),p.return=g,g=p;break e}n(g,E);break}else t(g,E);E=E.sibling}v.type===tr?(p=An(v.props.children,g.mode,w,v.key),p.return=g,g=p):(w=bo(v.type,v.key,v.props,null,g.mode,w),w.ref=Hr(g,p,v),w.return=g,g=w)}return s(g);case er:e:{for(E=v.key;p!==null;){if(p.key===E)if(p.tag===4&&p.stateNode.containerInfo===v.containerInfo&&p.stateNode.implementation===v.implementation){n(g,p.sibling),p=i(p,v.children||[]),p.return=g,g=p;break e}else{n(g,p);break}else t(g,p);p=p.sibling}p=Aa(v,g.mode,w),p.return=g,g=p}return s(g);case Qt:return E=v._init,C(g,p,E(v._payload),w)}if(ti(v))return x(g,p,v,w);if(zr(v))return S(g,p,v,w);ho(g,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,p!==null&&p.tag===6?(n(g,p.sibling),p=i(p,v),p.return=g,g=p):(n(g,p),p=_a(v,g.mode,w),p.return=g,g=p),s(g)):n(g,p)}return C}var Er=Wp(!0),Xp=Wp(!1),rs=gn(null),is=null,ur=null,Cu=null;function Eu(){Cu=ur=is=null}function Nu(e){var t=rs.current;te(rs),e._currentValue=t}function wl(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function yr(e,t){is=e,Cu=ur=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ve=!0),e.firstContext=null)}function ot(e){var t=e._currentValue;if(Cu!==e)if(e={context:e,memoizedValue:t,next:null},ur===null){if(is===null)throw Error(O(308));ur=e,is.dependencies={lanes:0,firstContext:e}}else ur=ur.next=e;return t}var Rn=null;function ku(e){Rn===null?Rn=[e]:Rn.push(e)}function Qp(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,ku(t)):(n.next=i.next,i.next=n),t.interleaved=n,Vt(e,r)}function Vt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var qt=!1;function Iu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function qp(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function jt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ln(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,B&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Vt(e,n)}return i=r.interleaved,i===null?(t.next=t,ku(r)):(t.next=i.next,i.next=t),r.interleaved=t,Vt(e,n)}function Ao(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,fu(e,n)}}function pf(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var s={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=s:o=o.next=s,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function os(e,t,n,r){var i=e.updateQueue;qt=!1;var o=i.firstBaseUpdate,s=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var l=a,u=l.next;l.next=null,s===null?o=u:s.next=u,s=l;var c=e.alternate;c!==null&&(c=c.updateQueue,a=c.lastBaseUpdate,a!==s&&(a===null?c.firstBaseUpdate=u:a.next=u,c.lastBaseUpdate=l))}if(o!==null){var d=i.baseState;s=0,c=u=l=null,a=o;do{var f=a.lane,h=a.eventTime;if((r&f)===f){c!==null&&(c=c.next={eventTime:h,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var x=e,S=a;switch(f=t,h=n,S.tag){case 1:if(x=S.payload,typeof x=="function"){d=x.call(h,d,f);break e}d=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=S.payload,f=typeof x=="function"?x.call(h,d,f):x,f==null)break e;d=ae({},d,f);break e;case 2:qt=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,f=i.effects,f===null?i.effects=[a]:f.push(a))}else h={eventTime:h,lane:f,tag:a.tag,payload:a.payload,callback:a.callback,next:null},c===null?(u=c=h,l=d):c=c.next=h,s|=f;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;f=a,a=f.next,f.next=null,i.lastBaseUpdate=f,i.shared.pending=null}}while(!0);if(c===null&&(l=d),i.baseState=l,i.firstBaseUpdate=u,i.lastBaseUpdate=c,t=i.shared.interleaved,t!==null){i=t;do s|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);Fn|=s,e.lanes=s,e.memoizedState=d}}function hf(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Ta.transition;Ta.transition={};try{e(!1),t()}finally{X=n,Ta.transition=r}}function ph(){return st().memoizedState}function u0(e,t,n){var r=cn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},hh(e))mh(t,n);else if(n=Qp(e,t,n,r),n!==null){var i=$e();vt(n,e,r,i),gh(n,t,r)}}function c0(e,t,n){var r=cn(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(hh(e))mh(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var s=t.lastRenderedState,a=o(s,n);if(i.hasEagerState=!0,i.eagerState=a,yt(a,s)){var l=t.interleaved;l===null?(i.next=i,ku(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=Qp(e,t,i,r),n!==null&&(i=$e(),vt(n,e,r,i),gh(n,t,r))}}function hh(e){var t=e.alternate;return e===se||t!==null&&t===se}function mh(e,t){ci=as=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function gh(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,fu(e,n)}}var ls={readContext:ot,useCallback:Ie,useContext:Ie,useEffect:Ie,useImperativeHandle:Ie,useInsertionEffect:Ie,useLayoutEffect:Ie,useMemo:Ie,useReducer:Ie,useRef:Ie,useState:Ie,useDebugValue:Ie,useDeferredValue:Ie,useTransition:Ie,useMutableSource:Ie,useSyncExternalStore:Ie,useId:Ie,unstable_isNewReconciler:!1},f0={readContext:ot,useCallback:function(e,t){return wt().memoizedState=[e,t===void 0?null:t],e},useContext:ot,useEffect:gf,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,$o(4194308,4,lh.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $o(4194308,4,e,t)},useInsertionEffect:function(e,t){return $o(4,2,e,t)},useMemo:function(e,t){var n=wt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=wt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=u0.bind(null,se,e),[r.memoizedState,e]},useRef:function(e){var t=wt();return e={current:e},t.memoizedState=e},useState:mf,useDebugValue:Mu,useDeferredValue:function(e){return wt().memoizedState=e},useTransition:function(){var e=mf(!1),t=e[0];return e=l0.bind(null,e[1]),wt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=se,i=wt();if(ne){if(n===void 0)throw Error(O(407));n=n()}else{if(n=t(),xe===null)throw Error(O(349));Dn&30||eh(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,gf(nh.bind(null,r,o,e),[e]),r.flags|=2048,Mi(9,th.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=wt(),t=xe.identifierPrefix;if(ne){var n=$t,r=Mt;n=(r&~(1<<32-gt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=_i++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),n==="select"&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[St]=t,e[Ri]=r,Ih(e,t,!1,!1),t.stateNode=e;e:{switch(s=nl(n,r),n){case"dialog":ee("cancel",e),ee("close",e),i=r;break;case"iframe":case"object":case"embed":ee("load",e),i=r;break;case"video":case"audio":for(i=0;iIr&&(t.flags|=128,r=!0,Wr(o,!1),t.lanes=4194304)}else{if(!r)if(e=ss(s),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Wr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!s.alternate&&!ne)return Te(t),null}else 2*fe()-o.renderingStartTime>Ir&&n!==1073741824&&(t.flags|=128,r=!0,Wr(o,!1),t.lanes=4194304);o.isBackwards?(s.sibling=t.child,t.child=s):(n=o.last,n!==null?n.sibling=s:t.child=s,o.last=s)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=fe(),t.sibling=null,n=oe.current,J(oe,r?n&1|2:n&1),t):(Te(t),null);case 22:case 23:return Vu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?We&1073741824&&(Te(t),t.subtreeFlags&6&&(t.flags|=8192)):Te(t),null;case 24:return null;case 25:return null}throw Error(O(156,t.tag))}function x0(e,t){switch(wu(t),t.tag){case 1:return Ge(t.type)&&Jo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Nr(),te(ze),te(Le),Ru(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ou(t),null;case 13:if(te(oe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(O(340));Cr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return te(oe),null;case 4:return Nr(),null;case 10:return Nu(t.type._context),null;case 22:case 23:return Vu(),null;case 24:return null;default:return null}}var go=!1,Oe=!1,w0=typeof WeakSet=="function"?WeakSet:Set,P=null;function cr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){le(e,t,r)}else n.current=null}function Rl(e,t,n){try{n()}catch(r){le(e,t,r)}}var Tf=!1;function S0(e,t){if(dl=Qo,e=Ap(),yu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var s=0,a=-1,l=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var h;d!==n||i!==0&&d.nodeType!==3||(a=s+i),d!==o||r!==0&&d.nodeType!==3||(l=s+r),d.nodeType===3&&(s+=d.nodeValue.length),(h=d.firstChild)!==null;)f=d,d=h;for(;;){if(d===e)break t;if(f===n&&++u===i&&(a=s),f===o&&++c===r&&(l=s),(h=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=h}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(pl={focusedElem:e,selectionRange:n},Qo=!1,P=t;P!==null;)if(t=P,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,P=e;else for(;P!==null;){t=P;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var S=x.memoizedProps,C=x.memoizedState,g=t.stateNode,p=g.getSnapshotBeforeUpdate(t.elementType===t.type?S:dt(t.type,S),C);g.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(O(163))}}catch(w){le(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,P=e;break}P=t.return}return x=Tf,Tf=!1,x}function fi(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&Rl(t,n,o)}i=i.next}while(i!==r)}}function Fs(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Pl(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Rh(e){var t=e.alternate;t!==null&&(e.alternate=null,Rh(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[St],delete t[Ri],delete t[gl],delete t[r0],delete t[i0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Ph(e){return e.tag===5||e.tag===3||e.tag===4}function Of(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Ph(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ll(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zo));else if(r!==4&&(e=e.child,e!==null))for(Ll(e,t,n),e=e.sibling;e!==null;)Ll(e,t,n),e=e.sibling}function _l(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(_l(e,t,n),e=e.sibling;e!==null;)_l(e,t,n),e=e.sibling}var Se=null,pt=!1;function Ht(e,t,n){for(n=n.child;n!==null;)Lh(e,t,n),n=n.sibling}function Lh(e,t,n){if(Et&&typeof Et.onCommitFiberUnmount=="function")try{Et.onCommitFiberUnmount(Ps,n)}catch{}switch(n.tag){case 5:Oe||cr(n,t);case 6:var r=Se,i=pt;Se=null,Ht(e,t,n),Se=r,pt=i,Se!==null&&(pt?(e=Se,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Se.removeChild(n.stateNode));break;case 18:Se!==null&&(pt?(e=Se,n=n.stateNode,e.nodeType===8?Na(e.parentNode,n):e.nodeType===1&&Na(e,n),Ni(e)):Na(Se,n.stateNode));break;case 4:r=Se,i=pt,Se=n.stateNode.containerInfo,pt=!0,Ht(e,t,n),Se=r,pt=i;break;case 0:case 11:case 14:case 15:if(!Oe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,s=o.destroy;o=o.tag,s!==void 0&&(o&2||o&4)&&Rl(n,t,s),i=i.next}while(i!==r)}Ht(e,t,n);break;case 1:if(!Oe&&(cr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){le(n,t,a)}Ht(e,t,n);break;case 21:Ht(e,t,n);break;case 22:n.mode&1?(Oe=(r=Oe)||n.memoizedState!==null,Ht(e,t,n),Oe=r):Ht(e,t,n);break;default:Ht(e,t,n)}}function Rf(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new w0),t.forEach(function(r){var i=P0.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function ct(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=s),r&=~o}if(r=i,r=fe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*E0(r/1960))-r,10e?16:e,tn===null)var r=!1;else{if(e=tn,tn=null,fs=0,B&6)throw Error(O(331));var i=B;for(B|=4,P=e.current;P!==null;){var o=P,s=o.child;if(P.flags&16){var a=o.deletions;if(a!==null){for(var l=0;lfe()-Fu?_n(e,0):Du|=n),Be(e,t)}function bh(e,t){t===0&&(e.mode&1?(t=so,so<<=1,!(so&130023424)&&(so=4194304)):t=1);var n=$e();e=Vt(e,t),e!==null&&(Bi(e,t,n),Be(e,n))}function R0(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),bh(e,n)}function P0(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(O(314))}r!==null&&r.delete(t),bh(e,n)}var Vh;Vh=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ze.current)Ve=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ve=!1,v0(e,t,n);Ve=!!(e.flags&131072)}else Ve=!1,ne&&t.flags&1048576&&Up(t,ns,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;jo(e,t),e=t.pendingProps;var i=Sr(t,Le.current);yr(t,n),i=Lu(null,t,r,e,i,n);var o=_u();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ge(r)?(o=!0,es(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Iu(t),i.updater=Ds,t.stateNode=i,i._reactInternals=t,Cl(t,r,e,n),t=kl(null,t,r,!0,o,n)):(t.tag=0,ne&&o&&xu(t),Me(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(jo(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=_0(r),e=dt(r,e),i){case 0:t=Nl(null,t,r,e,n);break e;case 1:t=Nf(null,t,r,e,n);break e;case 11:t=Cf(null,t,r,e,n);break e;case 14:t=Ef(null,t,r,dt(r.type,e),n);break e}throw Error(O(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:dt(r,i),Nl(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:dt(r,i),Nf(e,t,r,i,n);case 3:e:{if(Eh(t),e===null)throw Error(O(387));r=t.pendingProps,o=t.memoizedState,i=o.element,qp(e,t),os(t,r,null,n);var s=t.memoizedState;if(r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=kr(Error(O(423)),t),t=kf(e,t,r,n,i);break e}else if(r!==i){i=kr(Error(O(424)),t),t=kf(e,t,r,n,i);break e}else for(Xe=an(t.stateNode.containerInfo.firstChild),Qe=t,ne=!0,ht=null,n=Xp(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Cr(),r===i){t=zt(e,t,n);break e}Me(e,t,r,n)}t=t.child}return t;case 5:return Yp(t),e===null&&xl(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,s=i.children,hl(r,i)?s=null:o!==null&&hl(r,o)&&(t.flags|=32),Ch(e,t),Me(e,t,s,n),t.child;case 6:return e===null&&xl(t),null;case 13:return Nh(e,t,n);case 4:return Tu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Er(t,null,r,n):Me(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:dt(r,i),Cf(e,t,r,i,n);case 7:return Me(e,t,t.pendingProps,n),t.child;case 8:return Me(e,t,t.pendingProps.children,n),t.child;case 12:return Me(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,s=i.value,J(rs,r._currentValue),r._currentValue=s,o!==null)if(yt(o.value,s)){if(o.children===i.children&&!ze.current){t=zt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){s=o.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=jt(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?l.next=l:(l.next=c.next,c.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),wl(o.return,n,t),a.lanes|=n;break}l=l.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(O(341));s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),wl(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}Me(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,yr(t,n),i=ot(i),r=r(i),t.flags|=1,Me(e,t,r,n),t.child;case 14:return r=t.type,i=dt(r,t.pendingProps),i=dt(r.type,i),Ef(e,t,r,i,n);case 15:return wh(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:dt(r,i),jo(e,t),t.tag=1,Ge(r)?(e=!0,es(t)):e=!1,yr(t,n),vh(t,r,i),Cl(t,r,i,n),kl(null,t,r,!0,e,n);case 19:return kh(e,t,n);case 22:return Sh(e,t,n)}throw Error(O(156,t.tag))};function zh(e,t){return hp(e,t)}function L0(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function rt(e,t,n,r){return new L0(e,t,n,r)}function Gu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function _0(e){if(typeof e=="function")return Gu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===au)return 11;if(e===lu)return 14}return 2}function fn(e,t){var n=e.alternate;return n===null?(n=rt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function bo(e,t,n,r,i,o){var s=2;if(r=e,typeof e=="function")Gu(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case tr:return An(n.children,i,o,t);case su:s=8,i|=8;break;case Ha:return e=rt(12,n,t,i|2),e.elementType=Ha,e.lanes=o,e;case Wa:return e=rt(13,n,t,i),e.elementType=Wa,e.lanes=o,e;case Xa:return e=rt(19,n,t,i),e.elementType=Xa,e.lanes=o,e;case Yd:return Vs(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Qd:s=10;break e;case qd:s=9;break e;case au:s=11;break e;case lu:s=14;break e;case Qt:s=16,r=null;break e}throw Error(O(130,e==null?e:typeof e,""))}return t=rt(s,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function An(e,t,n,r){return e=rt(7,e,r,t),e.lanes=n,e}function Vs(e,t,n,r){return e=rt(22,e,r,t),e.elementType=Yd,e.lanes=n,e.stateNode={isHidden:!1},e}function _a(e,t,n){return e=rt(6,e,null,t),e.lanes=n,e}function Aa(e,t,n){return t=rt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function A0(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=pa(0),this.expirationTimes=pa(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=pa(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Bu(e,t,n,r,i,o,s,a,l){return e=new A0(e,t,n,a,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=rt(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Iu(o),e}function M0(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Kh)}catch(e){console.error(e)}}Kh(),Kd.exports=Ze;var Hh=Kd.exports;const dr=zi(Hh);var Wh,Df=Hh;Wh=Df.createRoot,Df.hydrateRoot;const b0={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class hs{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||b0,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),r=0;r{this.observers[r]||(this.observers[r]=new Map);const i=this.observers[r].get(n)||0;this.observers[r].set(n,i+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i{let[a,l]=s;for(let u=0;u{let[a,l]=s;for(let u=0;u{let e,t;const n=new Promise((r,i)=>{e=r,t=i});return n.resolve=e,n.reject=t,n},Ff=e=>e==null?"":""+e,V0=(e,t,n)=>{e.forEach(r=>{t[r]&&(n[r]=t[r])})},z0=/###/g,bf=e=>e&&e.indexOf("###")>-1?e.replace(z0,"."):e,Vf=e=>!e||typeof e=="string",hi=(e,t,n)=>{const r=typeof t!="string"?t:t.split(".");let i=0;for(;i{const{obj:r,k:i}=hi(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let o=t[t.length-1],s=t.slice(0,t.length-1),a=hi(e,s,Object);for(;a.obj===void 0&&s.length;)o=`${s[s.length-1]}.${o}`,s=s.slice(0,s.length-1),a=hi(e,s,Object),a&&a.obj&&typeof a.obj[`${a.k}.${o}`]<"u"&&(a.obj=void 0);a.obj[`${a.k}.${o}`]=n},G0=(e,t,n,r)=>{const{obj:i,k:o}=hi(e,t,Object);i[o]=i[o]||[],i[o].push(n)},ms=(e,t)=>{const{obj:n,k:r}=hi(e,t);if(n)return n[r]},B0=(e,t,n)=>{const r=ms(e,n);return r!==void 0?r:ms(t,n)},Xh=(e,t,n)=>{for(const r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?typeof e[r]=="string"||e[r]instanceof String||typeof t[r]=="string"||t[r]instanceof String?n&&(e[r]=t[r]):Xh(e[r],t[r],n):e[r]=t[r]);return e},qn=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var U0={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const K0=e=>typeof e=="string"?e.replace(/[&<>"'\/]/g,t=>U0[t]):e;class H0{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}}const W0=[" ",",","?","!",";"],X0=new H0(20),Q0=(e,t,n)=>{t=t||"",n=n||"";const r=W0.filter(s=>t.indexOf(s)<0&&n.indexOf(s)<0);if(r.length===0)return!0;const i=X0.getRegExp(`(${r.map(s=>s==="?"?"\\?":s).join("|")})`);let o=!i.test(e);if(!o){const s=e.indexOf(n);s>0&&!i.test(e.substring(0,s))&&(o=!0)}return o},Dl=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const r=t.split(n);let i=e;for(let o=0;o-1&&le&&e.indexOf("_")>0?e.replace("_","-"):e;class Gf extends Ks{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,s=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;t.indexOf(".")>-1?a=t.split("."):(a=[t,n],r&&(Array.isArray(r)?a.push(...r):typeof r=="string"&&o?a.push(...r.split(o)):a.push(r)));const l=ms(this.data,a);return!l&&!n&&!r&&t.indexOf(".")>-1&&(t=a[0],n=a[1],r=a.slice(2).join(".")),l||!s||typeof r!="string"?l:Dl(this.data&&this.data[t]&&this.data[t][n],r,o)}addResource(t,n,r,i){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const s=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let a=[t,n];r&&(a=a.concat(s?r.split(s):r)),t.indexOf(".")>-1&&(a=t.split("."),i=n,n=a[1]),this.addNamespaces(n),zf(this.data,a,i),o.silent||this.emit("added",t,n,r,i)}addResources(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const o in r)(typeof r[o]=="string"||Array.isArray(r[o]))&&this.addResource(t,n,o,r[o],{silent:!0});i.silent||this.emit("added",t,n,r)}addResourceBundle(t,n,r,i,o){let s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},a=[t,n];t.indexOf(".")>-1&&(a=t.split("."),i=r,r=n,n=a[1]),this.addNamespaces(n);let l=ms(this.data,a)||{};s.skipCopy||(r=JSON.parse(JSON.stringify(r))),i?Xh(l,r,o):l={...l,...r},zf(this.data,a,l),s.silent||this.emit("added",t,n,r)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,n)}:this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(i=>n[i]&&Object.keys(n[i]).length>0)}toJSON(){return this.data}}var Qh={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(o=>{this.processors[o]&&(t=this.processors[o].process(t,n,r,i))}),t}};const Bf={};class vs extends Ks{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),V0(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ct.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const r=this.resolve(t,n);return r&&r.res!==void 0}extractFromKey(t,n){let r=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let o=n.ns||this.options.defaultNS||[];const s=r&&t.indexOf(r)>-1,a=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!Q0(t,r,i);if(s&&!a){const l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:o};const u=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(u[0])>-1)&&(o=u.shift()),t=u.join(i)}return typeof o=="string"&&(o=[o]),{key:t,namespaces:o}}translate(t,n,r){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const i=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,o=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:s,namespaces:a}=this.extractFromKey(t[t.length-1],n),l=a[a.length-1],u=n.lng||this.language,c=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(c){const w=n.nsSeparator||this.options.nsSeparator;return i?{res:`${l}${w}${s}`,usedKey:s,exactUsedKey:s,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:`${l}${w}${s}`}return i?{res:s,usedKey:s,exactUsedKey:s,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:s}const d=this.resolve(t,n);let f=d&&d.res;const h=d&&d.usedKey||s,x=d&&d.exactUsedKey||s,S=Object.prototype.toString.apply(f),C=["[object Number]","[object Function]","[object RegExp]"],g=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,p=!this.i18nFormat||this.i18nFormat.handleAsObject;if(p&&f&&(typeof f!="string"&&typeof f!="boolean"&&typeof f!="number")&&C.indexOf(S)<0&&!(typeof g=="string"&&Array.isArray(f))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const w=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,f,{...n,ns:a}):`key '${s} (${this.language})' returned an object instead of string.`;return i?(d.res=w,d.usedParams=this.getUsedParamsDetails(n),d):w}if(o){const w=Array.isArray(f),N=w?[]:{},E=w?x:h;for(const k in f)if(Object.prototype.hasOwnProperty.call(f,k)){const I=`${E}${o}${k}`;N[k]=this.translate(I,{...n,joinArrays:!1,ns:a}),N[k]===I&&(N[k]=f[k])}f=N}}else if(p&&typeof g=="string"&&Array.isArray(f))f=f.join(g),f&&(f=this.extendTranslation(f,t,n,r));else{let w=!1,N=!1;const E=n.count!==void 0&&typeof n.count!="string",k=vs.hasDefaultValue(n),I=E?this.pluralResolver.getSuffix(u,n.count,n):"",M=n.ordinal&&E?this.pluralResolver.getSuffix(u,n.count,{ordinal:!1}):"",R=E&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),A=R&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${I}`]||n[`defaultValue${M}`]||n.defaultValue;!this.isValidLookup(f)&&k&&(w=!0,f=A),this.isValidLookup(f)||(N=!0,f=s);const D=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&N?void 0:f,U=k&&A!==f&&this.options.updateMissing;if(N||w||U){if(this.logger.log(U?"updateKey":"missingKey",u,l,s,U?A:f),o){const T=this.resolve(s,{...n,keySeparator:!1});T&&T.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let Q=[];const G=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&G&&G[0])for(let T=0;T{const V=k&&_!==f?_:D;this.options.missingKeyHandler?this.options.missingKeyHandler(T,l,L,V,U,n):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(T,l,L,V,U,n),this.emit("missingKey",T,l,L,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&E?Q.forEach(T=>{const L=this.pluralResolver.getSuffixes(T,n);R&&n[`defaultValue${this.options.pluralSeparator}zero`]&&L.indexOf(`${this.options.pluralSeparator}zero`)<0&&L.push(`${this.options.pluralSeparator}zero`),L.forEach(_=>{q([T],s+_,n[`defaultValue${_}`]||A)})}):q(Q,s,A))}f=this.extendTranslation(f,t,n,d,r),N&&f===s&&this.options.appendNamespaceToMissingKey&&(f=`${l}:${s}`),(N||w)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${s}`:s,w?f:void 0):f=this.options.parseMissingKeyHandler(f))}return i?(d.res=f,d.usedParams=this.getUsedParamsDetails(n),d):f}extendTranslation(t,n,r,i,o){var s=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const u=typeof t=="string"&&(r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(u){const f=t.match(this.interpolator.nestingRegexp);c=f&&f.length}let d=r.replace&&typeof r.replace!="string"?r.replace:r;if(this.options.interpolation.defaultVariables&&(d={...this.options.interpolation.defaultVariables,...d}),t=this.interpolator.interpolate(t,d,r.lng||this.language||i.usedLng,r),u){const f=t.match(this.interpolator.nestingRegexp),h=f&&f.length;c1&&arguments[1]!==void 0?arguments[1]:{},r,i,o,s,a;return typeof t=="string"&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(r))return;const u=this.extractFromKey(l,n),c=u.key;i=c;let d=u.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));const f=n.count!==void 0&&typeof n.count!="string",h=f&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),x=n.context!==void 0&&(typeof n.context=="string"||typeof n.context=="number")&&n.context!=="",S=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);d.forEach(C=>{this.isValidLookup(r)||(a=C,!Bf[`${S[0]}-${C}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(a)&&(Bf[`${S[0]}-${C}`]=!0,this.logger.warn(`key "${i}" for languages "${S.join(", ")}" won't get resolved as namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),S.forEach(g=>{if(this.isValidLookup(r))return;s=g;const p=[c];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(p,c,g,C,n);else{let w;f&&(w=this.pluralResolver.getSuffix(g,n.count,n));const N=`${this.options.pluralSeparator}zero`,E=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(f&&(p.push(c+w),n.ordinal&&w.indexOf(E)===0&&p.push(c+w.replace(E,this.options.pluralSeparator)),h&&p.push(c+N)),x){const k=`${c}${this.options.contextSeparator}${n.context}`;p.push(k),f&&(p.push(k+w),n.ordinal&&w.indexOf(E)===0&&p.push(k+w.replace(E,this.options.pluralSeparator)),h&&p.push(k+N))}}let v;for(;v=p.pop();)this.isValidLookup(r)||(o=v,r=this.getResource(g,C,v,n))}))})}),{res:r,usedKey:i,exactUsedKey:o,usedLng:s,usedNS:a}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,i):this.resourceStore.getResource(t,n,r,i)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&typeof t.replace!="string";let i=r?t.replace:t;if(r&&typeof t.count<"u"&&(i.count=t.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!r){i={...i};for(const o of n)delete i[o]}return i}static hasDefaultValue(t){const n="defaultValue";for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&t[r]!==void 0)return!0;return!1}}const Ma=e=>e.charAt(0).toUpperCase()+e.slice(1);class Uf{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ct.create("languageUtils")}getScriptPartFromCode(t){if(t=gs(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=gs(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(typeof t=="string"&&t.indexOf("-")>-1){const n=["hans","hant","latn","cyrl","cans","mong","arab"];let r=t.split("-");return this.options.lowerCaseLng?r=r.map(i=>i.toLowerCase()):r.length===2?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=Ma(r[1].toLowerCase()))):r.length===3&&(r[0]=r[0].toLowerCase(),r[1].length===2&&(r[1]=r[1].toUpperCase()),r[0]!=="sgn"&&r[2].length===2&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=Ma(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=Ma(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(r=>{if(n)return;const i=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(i))&&(n=i)}),!n&&this.options.supportedLngs&&t.forEach(r=>{if(n)return;const i=this.getLanguagePartFromCode(r);if(this.isSupportedCode(i))return n=i;n=this.options.supportedLngs.find(o=>{if(o===i)return o;if(!(o.indexOf("-")<0&&i.indexOf("-")<0)&&(o.indexOf("-")>0&&i.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===i||o.indexOf(i)===0&&i.length>1))return o})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),typeof t=="string"&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}toResolveHierarchy(t,n){const r=this.getFallbackCodes(n||this.options.fallbackLng||[],t),i=[],o=s=>{s&&(this.isSupportedCode(s)?i.push(s):this.logger.warn(`rejecting language code not found in supportedLngs: ${s}`))};return typeof t=="string"&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(t))):typeof t=="string"&&o(this.formatLanguageCode(t)),r.forEach(s=>{i.indexOf(s)<0&&o(this.formatLanguageCode(s))}),i}}let q0=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],Y0={1:e=>+(e>1),2:e=>+(e!=1),3:e=>0,4:e=>e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,5:e=>e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5,6:e=>e==1?0:e>=2&&e<=4?1:2,7:e=>e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,8:e=>e==1?0:e==2?1:e!=8&&e!=11?2:3,9:e=>+(e>=2),10:e=>e==1?0:e==2?1:e<7?2:e<11?3:4,11:e=>e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3,12:e=>+(e%10!=1||e%100==11),13:e=>+(e!==0),14:e=>e==1?0:e==2?1:e==3?2:3,15:e=>e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2,16:e=>e%10==1&&e%100!=11?0:e!==0?1:2,17:e=>e==1||e%10==1&&e%100!=11?0:1,18:e=>e==0?0:e==1?1:2,19:e=>e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3,20:e=>e==1?0:e==0||e%100>0&&e%100<20?1:2,21:e=>e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0,22:e=>e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3};const Z0=["v1","v2","v3"],J0=["v4"],Kf={zero:0,one:1,two:2,few:3,many:4,other:5},e1=()=>{const e={};return q0.forEach(t=>{t.lngs.forEach(n=>{e[n]={numbers:t.nr,plurals:Y0[t.fc]}})}),e};class t1{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=Ct.create("pluralResolver"),(!this.options.compatibilityJSON||J0.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=e1(),this.pluralRulesCache={}}addRule(t,n){this.rules[t]=n}clearCache(){this.pluralRulesCache={}}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{const r=gs(t==="dev"?"en":t),i=n.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:r,type:i});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];const s=new Intl.PluralRules(r,{type:i});return this.pluralRulesCache[o]=s,s}catch{return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return this.shouldUseIntlApi()?r&&r.resolvedOptions().pluralCategories.length>1:r&&r.numbers.length>1}getPluralFormsOfKey(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(i=>`${n}${i}`)}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((i,o)=>Kf[i]-Kf[o]).map(i=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${i}`):r.numbers.map(i=>this.getSuffix(t,i,n)):[]}getSuffix(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const i=this.getRule(t,r);return i?this.shouldUseIntlApi()?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i.select(n)}`:this.getSuffixRetroCompatible(i,n):(this.logger.warn(`no plural rule found for: ${t}`),"")}getSuffixRetroCompatible(t,n){const r=t.noAbs?t.plurals(n):t.plurals(Math.abs(n));let i=t.numbers[r];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(i===2?i="plural":i===1&&(i=""));const o=()=>this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString();return this.options.compatibilityJSON==="v1"?i===1?"":typeof i=="number"?`_plural_${i.toString()}`:o():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?o():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}shouldUseIntlApi(){return!Z0.includes(this.options.compatibilityJSON)}}const Hf=function(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=B0(e,t,n);return!o&&i&&typeof n=="string"&&(o=Dl(e,n,r),o===void 0&&(o=Dl(t,n,r))),o},$a=e=>e.replace(/\$/g,"$$$$");class n1{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ct.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:r,useRawValueToEscape:i,prefix:o,prefixEscaped:s,suffix:a,suffixEscaped:l,formatSeparator:u,unescapeSuffix:c,unescapePrefix:d,nestingPrefix:f,nestingPrefixEscaped:h,nestingSuffix:x,nestingSuffixEscaped:S,nestingOptionsSeparator:C,maxReplaces:g,alwaysFormat:p}=t.interpolation;this.escape=n!==void 0?n:K0,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=o?qn(o):s||"{{",this.suffix=a?qn(a):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=c?"":d||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=f?qn(f):h||qn("$t("),this.nestingSuffix=x?qn(x):S||qn(")"),this.nestingOptionsSeparator=C||",",this.maxReplaces=g||1e3,this.alwaysFormat=p!==void 0?p:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,r)=>n&&n.source===r?(n.lastIndex=0,n):new RegExp(r,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,n,r,i){let o,s,a;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=h=>{if(h.indexOf(this.formatSeparator)<0){const g=Hf(n,l,h,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(g,void 0,r,{...i,...n,interpolationkey:h}):g}const x=h.split(this.formatSeparator),S=x.shift().trim(),C=x.join(this.formatSeparator).trim();return this.format(Hf(n,l,S,this.options.keySeparator,this.options.ignoreJSONStructure),C,r,{...i,...n,interpolationkey:S})};this.resetRegExp();const c=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,d=i&&i.interpolation&&i.interpolation.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:h=>$a(h)},{regex:this.regexp,safeValue:h=>this.escapeValue?$a(this.escape(h)):$a(h)}].forEach(h=>{for(a=0;o=h.regex.exec(t);){const x=o[1].trim();if(s=u(x),s===void 0)if(typeof c=="function"){const C=c(t,o,i);s=typeof C=="string"?C:""}else if(i&&Object.prototype.hasOwnProperty.call(i,x))s="";else if(d){s=o[0];continue}else this.logger.warn(`missed to pass in variable ${x} for interpolating ${t}`),s="";else typeof s!="string"&&!this.useRawValueToEscape&&(s=Ff(s));const S=h.safeValue(s);if(t=t.replace(o[0],S),d?(h.regex.lastIndex+=s.length,h.regex.lastIndex-=o[0].length):h.regex.lastIndex=0,a++,a>=this.maxReplaces)break}}),t}nest(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i,o,s;const a=(l,u)=>{const c=this.nestingOptionsSeparator;if(l.indexOf(c)<0)return l;const d=l.split(new RegExp(`${c}[ ]*{`));let f=`{${d[1]}`;l=d[0],f=this.interpolate(f,s);const h=f.match(/'/g),x=f.match(/"/g);(h&&h.length%2===0&&!x||x.length%2!==0)&&(f=f.replace(/'/g,'"'));try{s=JSON.parse(f),u&&(s={...u,...s})}catch(S){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,S),`${l}${c}${f}`}return s.defaultValue&&s.defaultValue.indexOf(this.prefix)>-1&&delete s.defaultValue,l};for(;i=this.nestingRegexp.exec(t);){let l=[];s={...r},s=s.replace&&typeof s.replace!="string"?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;let u=!1;if(i[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(i[1])){const c=i[1].split(this.formatSeparator).map(d=>d.trim());i[1]=c.shift(),l=c,u=!0}if(o=n(a.call(this,i[1].trim(),s),s),o&&i[0]===t&&typeof o!="string")return o;typeof o!="string"&&(o=Ff(o)),o||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${t}`),o=""),u&&(o=l.reduce((c,d)=>this.format(c,d,r.lng,{...r,interpolationkey:i[1].trim()}),o.trim())),t=t.replace(i[0],o),this.regexp.lastIndex=0}return t}}const r1=e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const i=r[1].substring(0,r[1].length-1);t==="currency"&&i.indexOf(":")<0?n.currency||(n.currency=i.trim()):t==="relativetime"&&i.indexOf(":")<0?n.range||(n.range=i.trim()):i.split(";").forEach(s=>{if(s){const[a,...l]=s.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),c=a.trim();n[c]||(n[c]=u),u==="false"&&(n[c]=!1),u==="true"&&(n[c]=!0),isNaN(u)||(n[c]=parseInt(u,10))}})}return{formatName:t,formatOptions:n}},Yn=e=>{const t={};return(n,r,i)=>{let o=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(o={...o,[i.interpolationkey]:void 0});const s=r+JSON.stringify(o);let a=t[s];return a||(a=e(gs(r),i),t[s]=a),a(n)}};class i1{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ct.create("formatter"),this.options=t,this.formats={number:Yn((n,r)=>{const i=new Intl.NumberFormat(n,{...r});return o=>i.format(o)}),currency:Yn((n,r)=>{const i=new Intl.NumberFormat(n,{...r,style:"currency"});return o=>i.format(o)}),datetime:Yn((n,r)=>{const i=new Intl.DateTimeFormat(n,{...r});return o=>i.format(o)}),relativetime:Yn((n,r)=>{const i=new Intl.RelativeTimeFormat(n,{...r});return o=>i.format(o,r.range||"day")}),list:Yn((n,r)=>{const i=new Intl.ListFormat(n,{...r});return o=>i.format(o)})},this.init(t)}init(t){const r=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=Yn(n)}format(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=n.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find(a=>a.indexOf(")")>-1)){const a=o.findIndex(l=>l.indexOf(")")>-1);o[0]=[o[0],...o.splice(1,a)].join(this.formatSeparator)}return o.reduce((a,l)=>{const{formatName:u,formatOptions:c}=r1(l);if(this.formats[u]){let d=a;try{const f=i&&i.formatParams&&i.formatParams[i.interpolationkey]||{},h=f.locale||f.lng||i.locale||i.lng||r;d=this.formats[u](a,h,{...c,...i,...f})}catch(f){this.logger.warn(f)}return d}else this.logger.warn(`there was no format function for ${u}`);return a},t)}}const o1=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class s1 extends Ks{constructor(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=r,this.languageUtils=r.languageUtils,this.options=i,this.logger=Ct.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(r,i.backend,i)}queueLoad(t,n,r,i){const o={},s={},a={},l={};return t.forEach(u=>{let c=!0;n.forEach(d=>{const f=`${u}|${d}`;!r.reload&&this.store.hasResourceBundle(u,d)?this.state[f]=2:this.state[f]<0||(this.state[f]===1?s[f]===void 0&&(s[f]=!0):(this.state[f]=1,c=!1,s[f]===void 0&&(s[f]=!0),o[f]===void 0&&(o[f]=!0),l[d]===void 0&&(l[d]=!0)))}),c||(a[u]=!0)}),(Object.keys(o).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(o),pending:Object.keys(s),toLoadLanguages:Object.keys(a),toLoadNamespaces:Object.keys(l)}}loaded(t,n,r){const i=t.split("|"),o=i[0],s=i[1];n&&this.emit("failedLoading",o,s,n),!n&&r&&this.store.addResourceBundle(o,s,r,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&r&&(this.state[t]=0);const a={};this.queue.forEach(l=>{G0(l.loaded,[o],s),o1(l,t),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{a[u]||(a[u]={});const c=l.loaded[u];c.length&&c.forEach(d=>{a[u][d]===void 0&&(a[u][d]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",a),this.queue=this.queue.filter(l=>!l.done)}read(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,s=arguments.length>5?arguments[5]:void 0;if(!t.length)return s(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:r,tried:i,wait:o,callback:s});return}this.readingCalls++;const a=(u,c)=>{if(this.readingCalls--,this.waitingReads.length>0){const d=this.waitingReads.shift();this.read(d.lng,d.ns,d.fcName,d.tried,d.wait,d.callback)}if(u&&c&&i{this.read.call(this,t,n,r,i+1,o*2,s)},o);return}s(u,c)},l=this.backend[r].bind(this.backend);if(l.length===2){try{const u=l(t,n);u&&typeof u.then=="function"?u.then(c=>a(null,c)).catch(a):a(null,u)}catch(u){a(u)}return}return l(t,n,a)}prepareLoading(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();typeof t=="string"&&(t=this.languageUtils.toResolveHierarchy(t)),typeof n=="string"&&(n=[n]);const o=this.queueLoad(t,n,r,i);if(!o.toLoad.length)return o.pending.length||i(),null;o.toLoad.forEach(s=>{this.loadOne(s)})}load(t,n,r){this.prepareLoading(t,n,{},r)}reload(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const r=t.split("|"),i=r[0],o=r[1];this.read(i,o,"read",void 0,void 0,(s,a)=>{s&&this.logger.warn(`${n}loading namespace ${o} for language ${i} failed`,s),!s&&a&&this.logger.log(`${n}loaded namespace ${o} for language ${i}`,a),this.loaded(t,s,a)})}saveMissing(t,n,r,i,o){let s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${r}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend&&this.backend.create){const l={...s,isUpdate:o},u=this.backend.create.bind(this.backend);if(u.length<6)try{let c;u.length===5?c=u(t,n,r,i,l):c=u(t,n,r,i),c&&typeof c.then=="function"?c.then(d=>a(null,d)).catch(a):a(null,c)}catch(c){a(c)}else u(t,n,r,i,a,l)}!t||!t[0]||this.store.addResource(t[0],n,r,i)}}}const Wf=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),typeof e[1]=="string"&&(t.defaultValue=e[1]),typeof e[2]=="string"&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(r=>{t[r]=n[r]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Xf=e=>(typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),xo=()=>{},a1=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})};class ji extends Ks{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Xf(t),this.services={},this.logger=Ct,this.modules={external:[]},a1(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof n=="function"&&(r=n,n={}),!n.defaultNS&&n.defaultNS!==!1&&n.ns&&(typeof n.ns=="string"?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const i=Wf();this.options={...i,...this.options,...Xf(n)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...i.interpolation,...this.options.interpolation}),n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);const o=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?Ct.init(o(this.modules.logger),this.options):Ct.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:typeof Intl<"u"&&(c=i1);const d=new Uf(this.options);this.store=new Gf(this.options.resources,this.options);const f=this.services;f.logger=Ct,f.resourceStore=this.store,f.languageUtils=d,f.pluralResolver=new t1(d,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(f.formatter=o(c),f.formatter.init(f,this.options),this.options.interpolation.format=f.formatter.format.bind(f.formatter)),f.interpolator=new n1(this.options),f.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},f.backendConnector=new s1(o(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on("*",function(h){for(var x=arguments.length,S=new Array(x>1?x-1:0),C=1;C1?x-1:0),C=1;C{h.init&&h.init(this)})}if(this.format=this.options.interpolation.format,r||(r=xo),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=function(){return t.store[c](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=function(){return t.store[c](...arguments),t}});const l=Qr(),u=()=>{const c=(d,f)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(f),r(d,f)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:xo;const i=typeof t=="string"?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if(i&&i.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const o=[],s=a=>{if(!a||a==="cimode")return;this.services.languageUtils.toResolveHierarchy(a).forEach(u=>{u!=="cimode"&&o.indexOf(u)<0&&o.push(u)})};i?s(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>s(l)),this.options.preload&&this.options.preload.forEach(a=>s(a)),this.services.backendConnector.load(o,this.options.ns,a=>{!a&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(a)})}else r(null)}reloadResources(t,n,r){const i=Qr();return typeof t=="function"&&(r=t,t=void 0),typeof n=="function"&&(r=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),r||(r=xo),this.services.backendConnector.reload(t,n,o=>{i.resolve(),r(o)}),i}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Qh.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,n){var r=this;this.isLanguageChangingTo=t;const i=Qr();this.emit("languageChanging",t);const o=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},s=(l,u)=>{u?(o(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,i.resolve(function(){return r.t(...arguments)}),n&&n(l,function(){return r.t(...arguments)})},a=l=>{!t&&!l&&this.services.languageDetector&&(l=[]);const u=typeof l=="string"?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||o(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,c=>{s(c,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(t),i}getFixedT(t,n,r){var i=this;const o=function(s,a){let l;if(typeof a!="object"){for(var u=arguments.length,c=new Array(u>2?u-2:0),d=2;d`${l.keyPrefix}${f}${x}`):h=l.keyPrefix?`${l.keyPrefix}${f}${s}`:s,i.t(h,l)};return typeof t=="string"?o.lng=t:o.lngs=t,o.ns=n,o.keyPrefix=r,o}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=n.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const s=(a,l)=>{const u=this.services.backendConnector.state[`${a}|${l}`];return u===-1||u===0||u===2};if(n.precheck){const a=n.precheck(this,s);if(a!==void 0)return a}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||s(r,t)&&(!i||s(o,t)))}loadNamespaces(t,n){const r=Qr();return this.options.ns?(typeof t=="string"&&(t=[t]),t.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{r.resolve(),n&&n(i)}),r):(n&&n(),Promise.resolve())}loadLanguages(t,n){const r=Qr();typeof t=="string"&&(t=[t]);const i=this.options.preload||[],o=t.filter(s=>i.indexOf(s)<0&&this.services.languageUtils.isSupportedCode(s));return o.length?(this.options.preload=i.concat(o),this.loadResources(s=>{r.resolve(),n&&n(s)}),r):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=this.services&&this.services.languageUtils||new Uf(Wf());return n.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new ji(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:xo;const r=t.forkResourceStore;r&&delete t.forkResourceStore;const i={...this.options,...t,isClone:!0},o=new ji(i);return(t.debug!==void 0||t.prefix!==void 0)&&(o.logger=o.logger.clone(t)),["store","services","language"].forEach(a=>{o[a]=this[a]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},r&&(o.store=new Gf(this.store.data,i),o.services.resourceStore=o.store),o.translator=new vs(o.services,i),o.translator.on("*",function(a){for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c{if(t)for(const n in t)e[n]===void 0&&(e[n]=t[n])}),e}var Qf=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,p1=(e,t,n)=>{const r=n||{};r.path=r.path||"/";const i=encodeURIComponent(t);let o=`${e}=${i}`;if(r.maxAge>0){const s=r.maxAge-0;if(Number.isNaN(s))throw new Error("maxAge should be a Number");o+=`; Max-Age=${Math.floor(s)}`}if(r.domain){if(!Qf.test(r.domain))throw new TypeError("option domain is invalid");o+=`; Domain=${r.domain}`}if(r.path){if(!Qf.test(r.path))throw new TypeError("option path is invalid");o+=`; Path=${r.path}`}if(r.expires){if(typeof r.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+=`; Expires=${r.expires.toUTCString()}`}if(r.httpOnly&&(o+="; HttpOnly"),r.secure&&(o+="; Secure"),r.sameSite)switch(typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return o},qf={create(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};n&&(i.expires=new Date,i.expires.setTime(i.expires.getTime()+n*60*1e3)),r&&(i.domain=r),document.cookie=p1(e,encodeURIComponent(t),i)},read(e){const t=`${e}=`,n=document.cookie.split(";");for(let r=0;r-1&&(i=window.location.hash.substring(window.location.hash.indexOf("?")));const s=i.substring(1).split("&");for(let a=0;a0&&s[a].substring(0,l)===t&&(n=s[a].substring(l+1))}}return n}},qr=null,Yf=()=>{if(qr!==null)return qr;try{qr=window!=="undefined"&&window.localStorage!==null;const e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch{qr=!1}return qr},g1={name:"localStorage",lookup(e){let{lookupLocalStorage:t}=e;if(t&&Yf())return window.localStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupLocalStorage:n}=t;n&&Yf()&&window.localStorage.setItem(n,e)}},Yr=null,Zf=()=>{if(Yr!==null)return Yr;try{Yr=window!=="undefined"&&window.sessionStorage!==null;const e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch{Yr=!1}return Yr},v1={name:"sessionStorage",lookup(e){let{lookupSessionStorage:t}=e;if(t&&Zf())return window.sessionStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupSessionStorage:n}=t;n&&Zf()&&window.sessionStorage.setItem(n,e)}},y1={name:"navigator",lookup(e){const t=[];if(typeof navigator<"u"){const{languages:n,userLanguage:r,language:i}=navigator;if(n)for(let o=0;o0?t:void 0}},x1={name:"htmlTag",lookup(e){let{htmlTag:t}=e,n;const r=t||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(n=r.getAttribute("lang")),n}},w1={name:"path",lookup(e){var i;let{lookupFromPathIndex:t}=e;if(typeof window>"u")return;const n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(n)?(i=n[typeof t=="number"?t:0])==null?void 0:i.replace("/",""):void 0}},S1={name:"subdomain",lookup(e){var i,o;let{lookupFromSubdomainIndex:t}=e;const n=typeof t=="number"?t+1:1,r=typeof window<"u"&&((o=(i=window.location)==null?void 0:i.hostname)==null?void 0:o.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i));if(r)return r[n]}};function C1(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:e=>e}}var qh=class{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(e,t)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=e||{languageUtils:{}},this.options=d1(t,this.options||{},C1()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=r=>r.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(h1),this.addDetector(m1),this.addDetector(g1),this.addDetector(v1),this.addDetector(y1),this.addDetector(x1),this.addDetector(w1),this.addDetector(S1)}addDetector(e){return this.detectors[e.name]=e,this}detect(e){e||(e=this.options.order);let t=[];return e.forEach(n=>{if(this.detectors[n]){let r=this.detectors[n].lookup(this.options);r&&typeof r=="string"&&(r=[r]),r&&(t=t.concat(r))}}),t=t.map(n=>this.options.convertDetectedLanguage(n)),this.services.languageUtils.getBestMatchFromCodes?t:t.length>0?t[0]:null}cacheUserLanguage(e,t){t||(t=this.options.caches),t&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||t.forEach(n=>{this.detectors[n]&&this.detectors[n].cacheUserLanguage(e,this.options)}))}};qh.type="languageDetector";var Yh=we,mi=[],Zh=(e=>(e[e.CLI=0]="CLI",e[e.Server=1]="Server",e[e.Browser=2]="Browser",e))(Zh||{});async function E1(e,t=!1){if(mi!==void 0){let n;switch(e){case 0:n=u1;break;case 2:n=qh;break;default:throw new Error("Not supported")}await we.use(n).init({fallbackLng:"en",debug:t,resources:{}}).then(()=>{const r=mi;mi=void 0,r.forEach(i=>{Wu(i.lng,i.ns,i.resources)})})}else throw new Error("i18n already initialized")}function Wu(e,t,n){mi!==void 0?mi.push({lng:e,ns:t,resources:n}):we.addResourceBundle(e,t,n)}const N1=""+new URL("icon-288-CDfjY7nB.png",import.meta.url).href;var Jh={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var o="",s=0;s1?c-1:0),f=1;f{o.target===e&&(i(),t(o))},n+r)}function Zr(...e){return e.filter(t=>t!=null).reduce((t,n)=>{if(typeof n!="function")throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return t===null?n:function(...i){t.apply(this,i),n.apply(this,i)}},null)}function lm(e){e.offsetHeight}const nd=e=>!e||typeof e=="function"?e:t=>{e.current=t};function Y1(e,t){const n=nd(e),r=nd(t);return i=>{n&&n(i),r&&r(i)}}function Un(e,t){return y.useMemo(()=>Y1(e,t),[e,t])}function Z1(e){return e&&"setState"in e?dr.findDOMNode(e):e??null}const Qu=Pe.forwardRef(({onEnter:e,onEntering:t,onEntered:n,onExit:r,onExiting:i,onExited:o,addEndListener:s,children:a,childRef:l,...u},c)=>{const d=y.useRef(null),f=Un(d,l),h=E=>{f(Z1(E))},x=E=>k=>{E&&d.current&&E(d.current,k)},S=y.useCallback(x(e),[e]),C=y.useCallback(x(t),[t]),g=y.useCallback(x(n),[n]),p=y.useCallback(x(r),[r]),v=y.useCallback(x(i),[i]),w=y.useCallback(x(o),[o]),N=y.useCallback(x(s),[s]);return m.jsx(Kt,{ref:c,...u,onEnter:S,onEntered:g,onEntering:C,onExit:p,onExited:w,onExiting:v,addEndListener:N,nodeRef:d,children:typeof a=="function"?(E,k)=>a(E,{...k,ref:h}):Pe.cloneElement(a,{ref:h})})}),J1={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]};function ex(e,t){const n=`offset${e[0].toUpperCase()}${e.slice(1)}`,r=t[n],i=J1[e];return r+parseInt(Dt(t,i[0]),10)+parseInt(Dt(t,i[1]),10)}const tx={[Yt]:"collapse",[Di]:"collapsing",[mt]:"collapsing",[At]:"collapse show"},nx=Pe.forwardRef(({onEnter:e,onEntering:t,onEntered:n,onExit:r,onExiting:i,className:o,children:s,dimension:a="height",in:l=!1,timeout:u=300,mountOnEnter:c=!1,unmountOnExit:d=!1,appear:f=!1,getDimensionValue:h=ex,...x},S)=>{const C=typeof a=="function"?a():a,g=y.useMemo(()=>Zr(E=>{E.style[C]="0"},e),[C,e]),p=y.useMemo(()=>Zr(E=>{const k=`scroll${C[0].toUpperCase()}${C.slice(1)}`;E.style[C]=`${E[k]}px`},t),[C,t]),v=y.useMemo(()=>Zr(E=>{E.style[C]=null},n),[C,n]),w=y.useMemo(()=>Zr(E=>{E.style[C]=`${h(C,E)}px`,lm(E)},r),[r,h,C]),N=y.useMemo(()=>Zr(E=>{E.style[C]=null},i),[C,i]);return m.jsx(Qu,{ref:S,addEndListener:Xu,...x,"aria-expanded":x.role?l:null,onEnter:g,onEntering:p,onEntered:v,onExit:w,onExiting:N,childRef:s.ref,in:l,timeout:u,mountOnEnter:c,unmountOnExit:d,appear:f,children:(E,k)=>Pe.cloneElement(s,{...k,className:$(o,s.props.className,tx[E],C==="width"&&"collapse-horizontal")})})});function rx(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e},[e]),t}function ce(e){const t=rx(e);return y.useCallback(function(...n){return t.current&&t.current(...n)},[t])}const Qs=e=>y.forwardRef((t,n)=>m.jsx("div",{...t,ref:n,className:$(t.className,e)})),um=Qs("h4");um.displayName="DivStyledAsH4";const cm=y.forwardRef(({className:e,bsPrefix:t,as:n=um,...r},i)=>(t=j(t,"alert-heading"),m.jsx(n,{ref:i,className:$(e,t),...r})));cm.displayName="AlertHeading";function ix(){return y.useState(null)}function ox(e,t,n,r=!1){const i=ce(n);y.useEffect(()=>{const o=typeof e=="function"?e():e;return o.addEventListener(t,i,r),()=>o.removeEventListener(t,i,r)},[e])}function fm(){const e=y.useRef(!0),t=y.useRef(()=>e.current);return y.useEffect(()=>(e.current=!0,()=>{e.current=!1}),[]),t.current}function dm(e){const t=y.useRef(null);return y.useEffect(()=>{t.current=e}),t.current}const sx=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",ax=typeof document<"u",ys=ax||sx?y.useLayoutEffect:y.useEffect,lx=["as","disabled"];function ux(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function cx(e){return!e||e.trim()==="#"}function qu({tagName:e,disabled:t,href:n,target:r,rel:i,role:o,onClick:s,tabIndex:a=0,type:l}){e||(n!=null||r!=null||i!=null?e="a":e="button");const u={tagName:e};if(e==="button")return[{type:l||"button",disabled:t},u];const c=f=>{if((t||e==="a"&&cx(n))&&f.preventDefault(),t){f.stopPropagation();return}s==null||s(f)},d=f=>{f.key===" "&&(f.preventDefault(),c(f))};return e==="a"&&(n||(n="#"),t&&(n=void 0)),[{role:o??"button",disabled:void 0,tabIndex:t?void 0:a,href:n,target:e==="a"?r:void 0,"aria-disabled":t||void 0,rel:e==="a"?i:void 0,onClick:c,onKeyDown:d},u]}const pm=y.forwardRef((e,t)=>{let{as:n,disabled:r}=e,i=ux(e,lx);const[o,{tagName:s}]=qu(Object.assign({tagName:n,disabled:r},i));return m.jsx(s,Object.assign({},i,o,{ref:t}))});pm.displayName="Button";const hm=pm,fx=["onKeyDown"];function dx(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function px(e){return!e||e.trim()==="#"}const qs=y.forwardRef((e,t)=>{let{onKeyDown:n}=e,r=dx(e,fx);const[i]=qu(Object.assign({tagName:"a"},r)),o=ce(s=>{i.onKeyDown(s),n==null||n(s)});return px(r.href)||r.role==="button"?m.jsx("a",Object.assign({ref:t},r,i,{onKeyDown:o})):m.jsx("a",Object.assign({ref:t},r,{onKeyDown:n}))});qs.displayName="Anchor";const mm=y.forwardRef(({className:e,bsPrefix:t,as:n=qs,...r},i)=>(t=j(t,"alert-link"),m.jsx(n,{ref:i,className:$(e,t),...r})));mm.displayName="AlertLink";const hx={[mt]:"show",[At]:"show"},xs=y.forwardRef(({className:e,children:t,transitionClasses:n={},onEnter:r,...i},o)=>{const s={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1,...i},a=y.useCallback((l,u)=>{lm(l),r==null||r(l,u)},[r]);return m.jsx(Qu,{ref:o,addEndListener:Xu,...s,onEnter:a,childRef:t.ref,children:(l,u)=>y.cloneElement(t,{...u,className:$("fade",e,t.props.className,hx[l],n[l])})})});xs.displayName="Fade";const mx={"aria-label":be.string,onClick:be.func,variant:be.oneOf(["white"])},Ys=y.forwardRef(({className:e,variant:t,"aria-label":n="Close",...r},i)=>m.jsx("button",{ref:i,type:"button",className:$("btn-close",t&&`btn-close-${t}`,e),"aria-label":n,...r}));Ys.displayName="CloseButton";Ys.propTypes=mx;const gm=y.forwardRef((e,t)=>{const{bsPrefix:n,show:r=!0,closeLabel:i="Close alert",closeVariant:o,className:s,children:a,variant:l="primary",onClose:u,dismissible:c,transition:d=xs,...f}=Wi(e,{show:"onClose"}),h=j(n,"alert"),x=ce(g=>{u&&u(!1,g)}),S=d===!0?xs:d,C=m.jsxs("div",{role:"alert",...S?void 0:f,ref:t,className:$(s,h,l&&`${h}-${l}`,c&&`${h}-dismissible`),children:[c&&m.jsx(Ys,{onClick:x,"aria-label":i,variant:o}),a]});return S?m.jsx(S,{unmountOnExit:!0,...f,ref:void 0,in:r,children:C}):r?C:null});gm.displayName="Alert";const rd=Object.assign(gm,{Link:mm,Heading:cm}),ws=y.forwardRef(({as:e,bsPrefix:t,variant:n="primary",size:r,active:i=!1,disabled:o=!1,className:s,...a},l)=>{const u=j(t,"btn"),[c,{tagName:d}]=qu({tagName:e,disabled:o,...a}),f=d;return m.jsx(f,{...c,...a,ref:l,disabled:o,className:$(s,u,i&&"active",n&&`${u}-${n}`,r&&`${u}-${r}`,a.href&&o&&"disabled")})});ws.displayName="Button";const Yu=y.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},i)=>(t=j(t,"card-body"),m.jsx(n,{ref:i,className:$(e,t),...r})));Yu.displayName="CardBody";const vm=y.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},i)=>(t=j(t,"card-footer"),m.jsx(n,{ref:i,className:$(e,t),...r})));vm.displayName="CardFooter";const Zu=y.createContext(null);Zu.displayName="CardHeaderContext";const ym=y.forwardRef(({bsPrefix:e,className:t,as:n="div",...r},i)=>{const o=j(e,"card-header"),s=y.useMemo(()=>({cardHeaderBsPrefix:o}),[o]);return m.jsx(Zu.Provider,{value:s,children:m.jsx(n,{ref:i,...r,className:$(t,o)})})});ym.displayName="CardHeader";const xm=y.forwardRef(({bsPrefix:e,className:t,variant:n,as:r="img",...i},o)=>{const s=j(e,"card-img");return m.jsx(r,{ref:o,className:$(n?`${s}-${n}`:s,t),...i})});xm.displayName="CardImg";const wm=y.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},i)=>(t=j(t,"card-img-overlay"),m.jsx(n,{ref:i,className:$(e,t),...r})));wm.displayName="CardImgOverlay";const Sm=y.forwardRef(({className:e,bsPrefix:t,as:n="a",...r},i)=>(t=j(t,"card-link"),m.jsx(n,{ref:i,className:$(e,t),...r})));Sm.displayName="CardLink";const gx=Qs("h6"),Cm=y.forwardRef(({className:e,bsPrefix:t,as:n=gx,...r},i)=>(t=j(t,"card-subtitle"),m.jsx(n,{ref:i,className:$(e,t),...r})));Cm.displayName="CardSubtitle";const Em=y.forwardRef(({className:e,bsPrefix:t,as:n="p",...r},i)=>(t=j(t,"card-text"),m.jsx(n,{ref:i,className:$(e,t),...r})));Em.displayName="CardText";const vx=Qs("h5"),Nm=y.forwardRef(({className:e,bsPrefix:t,as:n=vx,...r},i)=>(t=j(t,"card-title"),m.jsx(n,{ref:i,className:$(e,t),...r})));Nm.displayName="CardTitle";const km=y.forwardRef(({bsPrefix:e,className:t,bg:n,text:r,border:i,body:o=!1,children:s,as:a="div",...l},u)=>{const c=j(e,"card");return m.jsx(a,{ref:u,...l,className:$(t,c,n&&`bg-${n}`,r&&`text-${r}`,i&&`border-${i}`),children:o?m.jsx(Yu,{children:s}):s})});km.displayName="Card";const Co=Object.assign(km,{Img:xm,Title:Nm,Subtitle:Cm,Body:Yu,Link:Sm,Text:Em,Header:ym,Footer:vm,ImgOverlay:wm});function yx(e){const t=y.useRef(e);return t.current=e,t}function xx(e){const t=yx(e);y.useEffect(()=>()=>t.current(),[])}function wx(e,t){return y.Children.toArray(e).some(n=>y.isValidElement(n)&&n.type===t)}function Sx({as:e,bsPrefix:t,className:n,...r}){t=j(t,"col");const i=tm(),o=nm(),s=[],a=[];return i.forEach(l=>{const u=r[l];delete r[l];let c,d,f;typeof u=="object"&&u!=null?{span:c,offset:d,order:f}=u:c=u;const h=l!==o?`-${l}`:"";c&&s.push(c===!0?`${t}${h}`:`${t}${h}-${c}`),f!=null&&a.push(`order${h}-${f}`),d!=null&&a.push(`offset${h}-${d}`)}),[{...r,className:$(n,...s,...a)},{as:e,bsPrefix:t,spans:s}]}const Im=y.forwardRef((e,t)=>{const[{className:n,...r},{as:i="div",bsPrefix:o,spans:s}]=Sx(e);return m.jsx(i,{...r,ref:t,className:$(n,!s.length&&o)})});Im.displayName="Col";var Cx=Function.prototype.bind.call(Function.prototype.call,[].slice);function Lt(e,t){return Cx(e.querySelectorAll(t))}function Ex(e,t,n){const r=y.useRef(e!==void 0),[i,o]=y.useState(t),s=e!==void 0,a=r.current;return r.current=s,!s&&a&&i!==t&&o(t),[s?e:i,y.useCallback((...l)=>{const[u,...c]=l;let d=n==null?void 0:n(u,...c);return o(u),d},[n])]}function Tm(){const[,e]=y.useReducer(t=>!t,!1);return e}const Zs=y.createContext(null);var id=Object.prototype.hasOwnProperty;function od(e,t,n){for(n of e.keys())if(gi(n,t))return n}function gi(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&gi(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i=="object"&&(i=od(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i=="object"&&(i=od(t,i),!i)||!gi(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(id.call(e,n)&&++r&&!id.call(t,n)||!(n in t)||!gi(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}function Nx(e){const t=fm();return[e[0],y.useCallback(n=>{if(t())return e[1](n)},[t,e[1]])]}var Ue="top",at="bottom",lt="right",Ke="left",Ju="auto",Xi=[Ue,at,lt,Ke],Tr="start",Fi="end",kx="clippingParents",Om="viewport",Jr="popper",Ix="reference",sd=Xi.reduce(function(e,t){return e.concat([t+"-"+Tr,t+"-"+Fi])},[]),Rm=[].concat(Xi,[Ju]).reduce(function(e,t){return e.concat([t,t+"-"+Tr,t+"-"+Fi])},[]),Tx="beforeRead",Ox="read",Rx="afterRead",Px="beforeMain",Lx="main",_x="afterMain",Ax="beforeWrite",Mx="write",$x="afterWrite",jx=[Tx,Ox,Rx,Px,Lx,_x,Ax,Mx,$x];function kt(e){return e.split("-")[0]}function Ye(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Vn(e){var t=Ye(e).Element;return e instanceof t||e instanceof Element}function It(e){var t=Ye(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function ec(e){if(typeof ShadowRoot>"u")return!1;var t=Ye(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var Mn=Math.max,Ss=Math.min,Or=Math.round;function Gl(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Pm(){return!/^((?!chrome|android).)*safari/i.test(Gl())}function Rr(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&It(e)&&(i=e.offsetWidth>0&&Or(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Or(r.height)/e.offsetHeight||1);var s=Vn(e)?Ye(e):window,a=s.visualViewport,l=!Pm()&&n,u=(r.left+(l&&a?a.offsetLeft:0))/i,c=(r.top+(l&&a?a.offsetTop:0))/o,d=r.width/i,f=r.height/o;return{width:d,height:f,top:c,right:u+d,bottom:c+f,left:u,x:u,y:c}}function tc(e){var t=Rr(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Lm(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&ec(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function hn(e){return e?(e.nodeName||"").toLowerCase():null}function Gt(e){return Ye(e).getComputedStyle(e)}function Dx(e){return["table","td","th"].indexOf(hn(e))>=0}function yn(e){return((Vn(e)?e.ownerDocument:e.document)||window.document).documentElement}function Js(e){return hn(e)==="html"?e:e.assignedSlot||e.parentNode||(ec(e)?e.host:null)||yn(e)}function ad(e){return!It(e)||Gt(e).position==="fixed"?null:e.offsetParent}function Fx(e){var t=/firefox/i.test(Gl()),n=/Trident/i.test(Gl());if(n&&It(e)){var r=Gt(e);if(r.position==="fixed")return null}var i=Js(e);for(ec(i)&&(i=i.host);It(i)&&["html","body"].indexOf(hn(i))<0;){var o=Gt(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function Qi(e){for(var t=Ye(e),n=ad(e);n&&Dx(n)&&Gt(n).position==="static";)n=ad(n);return n&&(hn(n)==="html"||hn(n)==="body"&&Gt(n).position==="static")?t:n||Fx(e)||t}function nc(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function vi(e,t,n){return Mn(e,Ss(t,n))}function bx(e,t,n){var r=vi(e,t,n);return r>n?n:r}function _m(){return{top:0,right:0,bottom:0,left:0}}function Am(e){return Object.assign({},_m(),e)}function Mm(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var Vx=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Am(typeof t!="number"?t:Mm(t,Xi))};function zx(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,s=n.modifiersData.popperOffsets,a=kt(n.placement),l=nc(a),u=[Ke,lt].indexOf(a)>=0,c=u?"height":"width";if(!(!o||!s)){var d=Vx(i.padding,n),f=tc(o),h=l==="y"?Ue:Ke,x=l==="y"?at:lt,S=n.rects.reference[c]+n.rects.reference[l]-s[l]-n.rects.popper[c],C=s[l]-n.rects.reference[l],g=Qi(o),p=g?l==="y"?g.clientHeight||0:g.clientWidth||0:0,v=S/2-C/2,w=d[h],N=p-f[c]-d[x],E=p/2-f[c]/2+v,k=vi(w,E,N),I=l;n.modifiersData[r]=(t={},t[I]=k,t.centerOffset=k-E,t)}}function Gx(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||Lm(t.elements.popper,i)&&(t.elements.arrow=i))}const Bx={name:"arrow",enabled:!0,phase:"main",fn:zx,effect:Gx,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Pr(e){return e.split("-")[1]}var Ux={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Kx(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Or(n*i)/i||0,y:Or(r*i)/i||0}}function ld(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,s=e.offsets,a=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,f=s.x,h=f===void 0?0:f,x=s.y,S=x===void 0?0:x,C=typeof c=="function"?c({x:h,y:S}):{x:h,y:S};h=C.x,S=C.y;var g=s.hasOwnProperty("x"),p=s.hasOwnProperty("y"),v=Ke,w=Ue,N=window;if(u){var E=Qi(n),k="clientHeight",I="clientWidth";if(E===Ye(n)&&(E=yn(n),Gt(E).position!=="static"&&a==="absolute"&&(k="scrollHeight",I="scrollWidth")),E=E,i===Ue||(i===Ke||i===lt)&&o===Fi){w=at;var M=d&&E===N&&N.visualViewport?N.visualViewport.height:E[k];S-=M-r.height,S*=l?1:-1}if(i===Ke||(i===Ue||i===at)&&o===Fi){v=lt;var R=d&&E===N&&N.visualViewport?N.visualViewport.width:E[I];h-=R-r.width,h*=l?1:-1}}var A=Object.assign({position:a},u&&Ux),F=c===!0?Kx({x:h,y:S},Ye(n)):{x:h,y:S};if(h=F.x,S=F.y,l){var D;return Object.assign({},A,(D={},D[w]=p?"0":"",D[v]=g?"0":"",D.transform=(N.devicePixelRatio||1)<=1?"translate("+h+"px, "+S+"px)":"translate3d("+h+"px, "+S+"px, 0)",D))}return Object.assign({},A,(t={},t[w]=p?S+"px":"",t[v]=g?h+"px":"",t.transform="",t))}function Hx(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,s=o===void 0?!0:o,a=n.roundOffsets,l=a===void 0?!0:a,u={placement:kt(t.placement),variation:Pr(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,ld(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,ld(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Wx={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Hx,data:{}};var Eo={passive:!0};function Xx(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,s=r.resize,a=s===void 0?!0:s,l=Ye(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(c){c.addEventListener("scroll",n.update,Eo)}),a&&l.addEventListener("resize",n.update,Eo),function(){o&&u.forEach(function(c){c.removeEventListener("scroll",n.update,Eo)}),a&&l.removeEventListener("resize",n.update,Eo)}}const Qx={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Xx,data:{}};var qx={left:"right",right:"left",bottom:"top",top:"bottom"};function Vo(e){return e.replace(/left|right|bottom|top/g,function(t){return qx[t]})}var Yx={start:"end",end:"start"};function ud(e){return e.replace(/start|end/g,function(t){return Yx[t]})}function rc(e){var t=Ye(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function ic(e){return Rr(yn(e)).left+rc(e).scrollLeft}function Zx(e,t){var n=Ye(e),r=yn(e),i=n.visualViewport,o=r.clientWidth,s=r.clientHeight,a=0,l=0;if(i){o=i.width,s=i.height;var u=Pm();(u||!u&&t==="fixed")&&(a=i.offsetLeft,l=i.offsetTop)}return{width:o,height:s,x:a+ic(e),y:l}}function Jx(e){var t,n=yn(e),r=rc(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=Mn(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=Mn(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),a=-r.scrollLeft+ic(e),l=-r.scrollTop;return Gt(i||n).direction==="rtl"&&(a+=Mn(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:s,x:a,y:l}}function oc(e){var t=Gt(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function $m(e){return["html","body","#document"].indexOf(hn(e))>=0?e.ownerDocument.body:It(e)&&oc(e)?e:$m(Js(e))}function yi(e,t){var n;t===void 0&&(t=[]);var r=$m(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=Ye(r),s=i?[o].concat(o.visualViewport||[],oc(r)?r:[]):r,a=t.concat(s);return i?a:a.concat(yi(Js(s)))}function Bl(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ew(e,t){var n=Rr(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function cd(e,t,n){return t===Om?Bl(Zx(e,n)):Vn(t)?ew(t,n):Bl(Jx(yn(e)))}function tw(e){var t=yi(Js(e)),n=["absolute","fixed"].indexOf(Gt(e).position)>=0,r=n&&It(e)?Qi(e):e;return Vn(r)?t.filter(function(i){return Vn(i)&&Lm(i,r)&&hn(i)!=="body"}):[]}function nw(e,t,n,r){var i=t==="clippingParents"?tw(e):[].concat(t),o=[].concat(i,[n]),s=o[0],a=o.reduce(function(l,u){var c=cd(e,u,r);return l.top=Mn(c.top,l.top),l.right=Ss(c.right,l.right),l.bottom=Ss(c.bottom,l.bottom),l.left=Mn(c.left,l.left),l},cd(e,s,r));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function jm(e){var t=e.reference,n=e.element,r=e.placement,i=r?kt(r):null,o=r?Pr(r):null,s=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,l;switch(i){case Ue:l={x:s,y:t.y-n.height};break;case at:l={x:s,y:t.y+t.height};break;case lt:l={x:t.x+t.width,y:a};break;case Ke:l={x:t.x-n.width,y:a};break;default:l={x:t.x,y:t.y}}var u=i?nc(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(o){case Tr:l[u]=l[u]-(t[c]/2-n[c]/2);break;case Fi:l[u]=l[u]+(t[c]/2-n[c]/2);break}}return l}function bi(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.strategy,s=o===void 0?e.strategy:o,a=n.boundary,l=a===void 0?kx:a,u=n.rootBoundary,c=u===void 0?Om:u,d=n.elementContext,f=d===void 0?Jr:d,h=n.altBoundary,x=h===void 0?!1:h,S=n.padding,C=S===void 0?0:S,g=Am(typeof C!="number"?C:Mm(C,Xi)),p=f===Jr?Ix:Jr,v=e.rects.popper,w=e.elements[x?p:f],N=nw(Vn(w)?w:w.contextElement||yn(e.elements.popper),l,c,s),E=Rr(e.elements.reference),k=jm({reference:E,element:v,strategy:"absolute",placement:i}),I=Bl(Object.assign({},v,k)),M=f===Jr?I:E,R={top:N.top-M.top+g.top,bottom:M.bottom-N.bottom+g.bottom,left:N.left-M.left+g.left,right:M.right-N.right+g.right},A=e.modifiersData.offset;if(f===Jr&&A){var F=A[i];Object.keys(R).forEach(function(D){var U=[lt,at].indexOf(D)>=0?1:-1,Q=[Ue,at].indexOf(D)>=0?"y":"x";R[D]+=F[Q]*U})}return R}function rw(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?Rm:l,c=Pr(r),d=c?a?sd:sd.filter(function(x){return Pr(x)===c}):Xi,f=d.filter(function(x){return u.indexOf(x)>=0});f.length===0&&(f=d);var h=f.reduce(function(x,S){return x[S]=bi(e,{placement:S,boundary:i,rootBoundary:o,padding:s})[kt(S)],x},{});return Object.keys(h).sort(function(x,S){return h[x]-h[S]})}function iw(e){if(kt(e)===Ju)return[];var t=Vo(e);return[ud(e),t,ud(t)]}function ow(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,s=n.altAxis,a=s===void 0?!0:s,l=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,f=n.altBoundary,h=n.flipVariations,x=h===void 0?!0:h,S=n.allowedAutoPlacements,C=t.options.placement,g=kt(C),p=g===C,v=l||(p||!x?[Vo(C)]:iw(C)),w=[C].concat(v).reduce(function(de,Z){return de.concat(kt(Z)===Ju?rw(t,{placement:Z,boundary:c,rootBoundary:d,padding:u,flipVariations:x,allowedAutoPlacements:S}):Z)},[]),N=t.rects.reference,E=t.rects.popper,k=new Map,I=!0,M=w[0],R=0;R=0,Q=U?"width":"height",G=bi(t,{placement:A,boundary:c,rootBoundary:d,altBoundary:f,padding:u}),q=U?D?lt:Ke:D?at:Ue;N[Q]>E[Q]&&(q=Vo(q));var T=Vo(q),L=[];if(o&&L.push(G[F]<=0),a&&L.push(G[q]<=0,G[T]<=0),L.every(function(de){return de})){M=A,I=!1;break}k.set(A,L)}if(I)for(var _=x?3:1,V=function(Z){var me=w.find(function(ut){var Ot=k.get(ut);if(Ot)return Ot.slice(0,Z).every(function(Sn){return Sn})});if(me)return M=me,"break"},W=_;W>0;W--){var ke=V(W);if(ke==="break")break}t.placement!==M&&(t.modifiersData[r]._skip=!0,t.placement=M,t.reset=!0)}}const sw={name:"flip",enabled:!0,phase:"main",fn:ow,requiresIfExists:["offset"],data:{_skip:!1}};function fd(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function dd(e){return[Ue,lt,at,Ke].some(function(t){return e[t]>=0})}function aw(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,s=bi(t,{elementContext:"reference"}),a=bi(t,{altBoundary:!0}),l=fd(s,r),u=fd(a,i,o),c=dd(l),d=dd(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const lw={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:aw};function uw(e,t,n){var r=kt(e),i=[Ke,Ue].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=o[0],a=o[1];return s=s||0,a=(a||0)*i,[Ke,lt].indexOf(r)>=0?{x:a,y:s}:{x:s,y:a}}function cw(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,s=Rm.reduce(function(c,d){return c[d]=uw(d,t.rects,o),c},{}),a=s[t.placement],l=a.x,u=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=s}const fw={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:cw};function dw(e){var t=e.state,n=e.name;t.modifiersData[n]=jm({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const pw={name:"popperOffsets",enabled:!0,phase:"read",fn:dw,data:{}};function hw(e){return e==="x"?"y":"x"}function mw(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,s=n.altAxis,a=s===void 0?!1:s,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,f=n.tether,h=f===void 0?!0:f,x=n.tetherOffset,S=x===void 0?0:x,C=bi(t,{boundary:l,rootBoundary:u,padding:d,altBoundary:c}),g=kt(t.placement),p=Pr(t.placement),v=!p,w=nc(g),N=hw(w),E=t.modifiersData.popperOffsets,k=t.rects.reference,I=t.rects.popper,M=typeof S=="function"?S(Object.assign({},t.rects,{placement:t.placement})):S,R=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),A=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,F={x:0,y:0};if(E){if(o){var D,U=w==="y"?Ue:Ke,Q=w==="y"?at:lt,G=w==="y"?"height":"width",q=E[w],T=q+C[U],L=q-C[Q],_=h?-I[G]/2:0,V=p===Tr?k[G]:I[G],W=p===Tr?-I[G]:-k[G],ke=t.elements.arrow,de=h&&ke?tc(ke):{width:0,height:0},Z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:_m(),me=Z[U],ut=Z[Q],Ot=vi(0,k[G],de[G]),Sn=v?k[G]/2-_-Ot-me-R.mainAxis:V-Ot-me-R.mainAxis,Fr=v?-k[G]/2+_+Ot+ut+R.mainAxis:W+Ot+ut+R.mainAxis,br=t.elements.arrow&&Qi(t.elements.arrow),Ji=br?w==="y"?br.clientTop||0:br.clientLeft||0:0,Hn=(D=A==null?void 0:A[w])!=null?D:0,Wn=q+Sn-Hn-Ji,ie=q+Fr-Hn,Vr=vi(h?Ss(T,Wn):T,q,h?Mn(L,ie):L);E[w]=Vr,F[w]=Vr-q}if(a){var Xn,cv=w==="x"?Ue:Ke,fv=w==="x"?at:lt,Cn=E[N],eo=N==="y"?"height":"width",Cc=Cn+C[cv],Ec=Cn-C[fv],aa=[Ue,Ke].indexOf(g)!==-1,Nc=(Xn=A==null?void 0:A[N])!=null?Xn:0,kc=aa?Cc:Cn-k[eo]-I[eo]-Nc+R.altAxis,Ic=aa?Cn+k[eo]+I[eo]-Nc-R.altAxis:Ec,Tc=h&&aa?bx(kc,Cn,Ic):vi(h?kc:Cc,Cn,h?Ic:Ec);E[N]=Tc,F[N]=Tc-Cn}t.modifiersData[r]=F}}const gw={name:"preventOverflow",enabled:!0,phase:"main",fn:mw,requiresIfExists:["offset"]};function vw(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function yw(e){return e===Ye(e)||!It(e)?rc(e):vw(e)}function xw(e){var t=e.getBoundingClientRect(),n=Or(t.width)/e.offsetWidth||1,r=Or(t.height)/e.offsetHeight||1;return n!==1||r!==1}function ww(e,t,n){n===void 0&&(n=!1);var r=It(t),i=It(t)&&xw(t),o=yn(t),s=Rr(e,i,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((hn(t)!=="body"||oc(o))&&(a=yw(t)),It(t)?(l=Rr(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=ic(o))),{x:s.left+a.scrollLeft-l.x,y:s.top+a.scrollTop-l.y,width:s.width,height:s.height}}function Sw(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var s=[].concat(o.requires||[],o.requiresIfExists||[]);s.forEach(function(a){if(!n.has(a)){var l=t.get(a);l&&i(l)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function Cw(e){var t=Sw(e);return jx.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function Ew(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Nw(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var pd={placement:"bottom",modifiers:[],strategy:"absolute"};function hd(){for(var e=arguments.length,t=new Array(e),n=0;n=0)continue;n[r]=e[r]}return n}const Rw={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},Pw={name:"ariaDescribedBy",enabled:!0,phase:"afterWrite",effect:({state:e})=>()=>{const{reference:t,popper:n}=e.elements;if("removeAttribute"in t){const r=(t.getAttribute("aria-describedby")||"").split(",").filter(i=>i.trim()!==n.id);r.length?t.setAttribute("aria-describedby",r.join(",")):t.removeAttribute("aria-describedby")}},fn:({state:e})=>{var t;const{popper:n,reference:r}=e.elements,i=(t=n.getAttribute("role"))==null?void 0:t.toLowerCase();if(n.id&&i==="tooltip"&&"setAttribute"in r){const o=r.getAttribute("aria-describedby");if(o&&o.split(",").indexOf(n.id)!==-1)return;r.setAttribute("aria-describedby",o?`${o},${n.id}`:n.id)}}},Lw=[];function _w(e,t,n={}){let{enabled:r=!0,placement:i="bottom",strategy:o="absolute",modifiers:s=Lw}=n,a=Ow(n,Tw);const l=y.useRef(s),u=y.useRef(),c=y.useCallback(()=>{var C;(C=u.current)==null||C.update()},[]),d=y.useCallback(()=>{var C;(C=u.current)==null||C.forceUpdate()},[]),[f,h]=Nx(y.useState({placement:i,update:c,forceUpdate:d,attributes:{},styles:{popper:{},arrow:{}}})),x=y.useMemo(()=>({name:"updateStateModifier",enabled:!0,phase:"write",requires:["computeStyles"],fn:({state:C})=>{const g={},p={};Object.keys(C.elements).forEach(v=>{g[v]=C.styles[v],p[v]=C.attributes[v]}),h({state:C,styles:g,attributes:p,update:c,forceUpdate:d,placement:C.placement})}}),[c,d,h]),S=y.useMemo(()=>(gi(l.current,s)||(l.current=s),l.current),[s]);return y.useEffect(()=>{!u.current||!r||u.current.setOptions({placement:i,strategy:o,modifiers:[...S,x,Rw]})},[o,i,x,r,S]),y.useEffect(()=>{if(!(!r||e==null||t==null))return u.current=Iw(e,t,Object.assign({},a,{placement:i,strategy:o,modifiers:[...S,Pw,x]})),()=>{u.current!=null&&(u.current.destroy(),u.current=void 0,h(C=>Object.assign({},C,{attributes:{},styles:{popper:{}}})))}},[r,e,t]),f}function Cs(e,t){if(e.contains)return e.contains(t);if(e.compareDocumentPosition)return e===t||!!(e.compareDocumentPosition(t)&16)}var Aw=function(){},Mw=Aw;const $w=zi(Mw),md=()=>{};function jw(e){return e.button===0}function Dw(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const Da=e=>e&&("current"in e?e.current:e),gd={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};function Fw(e,t=md,{disabled:n,clickTrigger:r="click"}={}){const i=y.useRef(!1),o=y.useRef(!1),s=y.useCallback(u=>{const c=Da(e);$w(!!c,"ClickOutside captured a close event but does not have a ref to compare it to. useClickOutside(), should be passed a ref that resolves to a DOM node"),i.current=!c||Dw(u)||!jw(u)||!!Cs(c,u.target)||o.current,o.current=!1},[e]),a=ce(u=>{const c=Da(e);c&&Cs(c,u.target)&&(o.current=!0)}),l=ce(u=>{i.current||t(u)});y.useEffect(()=>{var u,c;if(n||e==null)return;const d=Ws(Da(e)),f=d.defaultView||window;let h=(u=f.event)!=null?u:(c=f.parent)==null?void 0:c.event,x=null;gd[r]&&(x=nn(d,gd[r],a,!0));const S=nn(d,r,s,!0),C=nn(d,r,p=>{if(p===h){h=void 0;return}l(p)});let g=[];return"ontouchstart"in d.documentElement&&(g=[].slice.call(d.body.children).map(p=>nn(p,"mousemove",md))),()=>{x==null||x(),S(),C(),g.forEach(p=>p())}},[e,n,r,s,a,l])}function bw(e){const t={};return Array.isArray(e)?(e==null||e.forEach(n=>{t[n.name]=n}),t):e||t}function Vw(e={}){return Array.isArray(e)?e:Object.keys(e).map(t=>(e[t].name=t,e[t]))}function zw({enabled:e,enableEvents:t,placement:n,flip:r,offset:i,fixed:o,containerPadding:s,arrowElement:a,popperConfig:l={}}){var u,c,d,f,h;const x=bw(l.modifiers);return Object.assign({},l,{placement:n,enabled:e,strategy:o?"fixed":l.strategy,modifiers:Vw(Object.assign({},x,{eventListeners:{enabled:t,options:(u=x.eventListeners)==null?void 0:u.options},preventOverflow:Object.assign({},x.preventOverflow,{options:s?Object.assign({padding:s},(c=x.preventOverflow)==null?void 0:c.options):(d=x.preventOverflow)==null?void 0:d.options}),offset:{options:Object.assign({offset:i},(f=x.offset)==null?void 0:f.options)},arrow:Object.assign({},x.arrow,{enabled:!!a,options:Object.assign({},(h=x.arrow)==null?void 0:h.options,{element:a})}),flip:Object.assign({enabled:!!r},x.flip)}))})}const Gw=["children","usePopper"];function Bw(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}const Uw=()=>{};function Dm(e={}){const t=y.useContext(Zs),[n,r]=ix(),i=y.useRef(!1),{flip:o,offset:s,rootCloseEvent:a,fixed:l=!1,placement:u,popperConfig:c={},enableEventListeners:d=!0,usePopper:f=!!t}=e,h=(t==null?void 0:t.show)==null?!!e.show:t.show;h&&!i.current&&(i.current=!0);const x=E=>{t==null||t.toggle(!1,E)},{placement:S,setMenu:C,menuElement:g,toggleElement:p}=t||{},v=_w(p,g,zw({placement:u||S||"bottom-start",enabled:f,enableEvents:d??h,offset:s,flip:o,fixed:l,arrowElement:n,popperConfig:c})),w=Object.assign({ref:C||Uw,"aria-labelledby":p==null?void 0:p.id},v.attributes.popper,{style:v.styles.popper}),N={show:h,placement:S,hasShown:i.current,toggle:t==null?void 0:t.toggle,popper:f?v:null,arrowProps:f?Object.assign({ref:r},v.attributes.arrow,{style:v.styles.arrow}):{}};return Fw(g,x,{clickTrigger:a,disabled:!h}),[w,N]}function Fm(e){let{children:t,usePopper:n=!0}=e,r=Bw(e,Gw);const[i,o]=Dm(Object.assign({},r,{usePopper:n}));return m.jsx(m.Fragment,{children:t(i,o)})}Fm.displayName="DropdownMenu";const Es={prefix:String(Math.round(Math.random()*1e10)),current:0},bm=Pe.createContext(Es),Kw=Pe.createContext(!1);let Hw=!!(typeof window<"u"&&window.document&&window.document.createElement),Fa=new WeakMap;function Ww(e=!1){let t=y.useContext(bm),n=y.useRef(null);if(n.current===null&&!e){var r,i;let o=(i=Pe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||i===void 0||(r=i.ReactCurrentOwner)===null||r===void 0?void 0:r.current;if(o){let s=Fa.get(o);s==null?Fa.set(o,{id:t.current,state:o.memoizedState}):o.memoizedState!==s.state&&(t.current=s.id,Fa.delete(o))}n.current=++t.current}return n.current}function Xw(e){let t=y.useContext(bm);t===Es&&!Hw&&console.warn("When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.");let n=Ww(!!e),r=`react-aria${t.prefix}`;return e||`${r}-${n}`}function Qw(e){let t=Pe.useId(),[n]=y.useState(eS()),r=n?"react-aria":`react-aria${Es.prefix}`;return e||`${r}-${t}`}const qw=typeof Pe.useId=="function"?Qw:Xw;function Yw(){return!1}function Zw(){return!0}function Jw(e){return()=>{}}function eS(){return typeof Pe.useSyncExternalStore=="function"?Pe.useSyncExternalStore(Jw,Yw,Zw):y.useContext(Kw)}const Vm=e=>{var t;return((t=e.getAttribute("role"))==null?void 0:t.toLowerCase())==="menu"},vd=()=>{};function zm(){const e=qw(),{show:t=!1,toggle:n=vd,setToggle:r,menuElement:i}=y.useContext(Zs)||{},o=y.useCallback(a=>{n(!t,a)},[t,n]),s={id:e,ref:r||vd,onClick:o,"aria-expanded":!!t};return i&&Vm(i)&&(s["aria-haspopup"]=!0),[s,{show:t,toggle:n}]}function Gm({children:e}){const[t,n]=zm();return m.jsx(m.Fragment,{children:e(t,n)})}Gm.displayName="DropdownToggle";const tS=y.createContext(null),Lr=(e,t=null)=>e!=null?String(e):t||null,zn=tS,ea=y.createContext(null);ea.displayName="NavContext";const nS="data-rr-ui-",rS="rrUi";function $r(e){return`${nS}${e}`}function iS(e){return`${rS}${e}`}const oS=["eventKey","disabled","onClick","active","as"];function sS(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Bm({key:e,href:t,active:n,disabled:r,onClick:i}){const o=y.useContext(zn),s=y.useContext(ea),{activeKey:a}=s||{},l=Lr(e,t),u=n==null&&e!=null?Lr(a)===l:n;return[{onClick:ce(d=>{r||(i==null||i(d),o&&!d.isPropagationStopped()&&o(l,d))}),"aria-disabled":r||void 0,"aria-selected":u,[$r("dropdown-item")]:""},{isActive:u}]}const Um=y.forwardRef((e,t)=>{let{eventKey:n,disabled:r,onClick:i,active:o,as:s=hm}=e,a=sS(e,oS);const[l]=Bm({key:n,href:a.href,disabled:r,onClick:i,active:o});return m.jsx(s,Object.assign({},a,{ref:t},l))});Um.displayName="DropdownItem";const Km=y.createContext(Xs?window:void 0);Km.Provider;function ta(){return y.useContext(Km)}function yd(){const e=Tm(),t=y.useRef(null),n=y.useCallback(r=>{t.current=r,e()},[e]);return[t,n]}function qi({defaultShow:e,show:t,onSelect:n,onToggle:r,itemSelector:i=`* [${$r("dropdown-item")}]`,focusFirstItemOnShow:o,placement:s="bottom-start",children:a}){const l=ta(),[u,c]=Ex(t,e,r),[d,f]=yd(),h=d.current,[x,S]=yd(),C=x.current,g=dm(u),p=y.useRef(null),v=y.useRef(!1),w=y.useContext(zn),N=y.useCallback((A,F,D=F==null?void 0:F.type)=>{c(A,{originalEvent:F,source:D})},[c]),E=ce((A,F)=>{n==null||n(A,F),N(!1,F,"select"),F.isPropagationStopped()||w==null||w(A,F)}),k=y.useMemo(()=>({toggle:N,placement:s,show:u,menuElement:h,toggleElement:C,setMenu:f,setToggle:S}),[N,s,u,h,C,f,S]);h&&g&&!u&&(v.current=h.contains(h.ownerDocument.activeElement));const I=ce(()=>{C&&C.focus&&C.focus()}),M=ce(()=>{const A=p.current;let F=o;if(F==null&&(F=d.current&&Vm(d.current)?"keyboard":!1),F===!1||F==="keyboard"&&!/^key.+$/.test(A))return;const D=Lt(d.current,i)[0];D&&D.focus&&D.focus()});y.useEffect(()=>{u?M():v.current&&(v.current=!1,I())},[u,v,I,M]),y.useEffect(()=>{p.current=null});const R=(A,F)=>{if(!d.current)return null;const D=Lt(d.current,i);let U=D.indexOf(A)+F;return U=Math.max(0,Math.min(U,D.length)),D[U]};return ox(y.useCallback(()=>l.document,[l]),"keydown",A=>{var F,D;const{key:U}=A,Q=A.target,G=(F=d.current)==null?void 0:F.contains(Q),q=(D=x.current)==null?void 0:D.contains(Q);if(/input|textarea/i.test(Q.tagName)&&(U===" "||U!=="Escape"&&G||U==="Escape"&&Q.type==="search")||!G&&!q||U==="Tab"&&(!d.current||!u))return;p.current=A.type;const L={originalEvent:A,source:A.type};switch(U){case"ArrowUp":{const _=R(Q,-1);_&&_.focus&&_.focus(),A.preventDefault();return}case"ArrowDown":if(A.preventDefault(),!u)c(!0,L);else{const _=R(Q,1);_&&_.focus&&_.focus()}return;case"Tab":am(Q.ownerDocument,"keyup",_=>{var V;(_.key==="Tab"&&!_.target||!((V=d.current)!=null&&V.contains(_.target)))&&c(!1,L)},{once:!0});break;case"Escape":U==="Escape"&&(A.preventDefault(),A.stopPropagation()),c(!1,L);break}}),m.jsx(zn.Provider,{value:E,children:m.jsx(Zs.Provider,{value:k,children:a})})}qi.displayName="Dropdown";qi.Menu=Fm;qi.Toggle=Gm;qi.Item=Um;const sc=y.createContext({});sc.displayName="DropdownContext";const Hm=y.forwardRef(({className:e,bsPrefix:t,as:n="hr",role:r="separator",...i},o)=>(t=j(t,"dropdown-divider"),m.jsx(n,{ref:o,className:$(e,t),role:r,...i})));Hm.displayName="DropdownDivider";const Wm=y.forwardRef(({className:e,bsPrefix:t,as:n="div",role:r="heading",...i},o)=>(t=j(t,"dropdown-header"),m.jsx(n,{ref:o,className:$(e,t),role:r,...i})));Wm.displayName="DropdownHeader";const Xm=y.forwardRef(({bsPrefix:e,className:t,eventKey:n,disabled:r=!1,onClick:i,active:o,as:s=qs,...a},l)=>{const u=j(e,"dropdown-item"),[c,d]=Bm({key:n,href:a.href,disabled:r,onClick:i,active:o});return m.jsx(s,{...a,...c,ref:l,className:$(t,u,d.isActive&&"active",r&&"disabled")})});Xm.displayName="DropdownItem";const Qm=y.forwardRef(({className:e,bsPrefix:t,as:n="span",...r},i)=>(t=j(t,"dropdown-item-text"),m.jsx(n,{ref:i,className:$(e,t),...r})));Qm.displayName="DropdownItemText";const ac=y.createContext(null);ac.displayName="InputGroupContext";const xn=y.createContext(null);xn.displayName="NavbarContext";function qm(e,t){return e}function Ym(e,t,n){const r=n?"top-end":"top-start",i=n?"top-start":"top-end",o=n?"bottom-end":"bottom-start",s=n?"bottom-start":"bottom-end",a=n?"right-start":"left-start",l=n?"right-end":"left-end",u=n?"left-start":"right-start",c=n?"left-end":"right-end";let d=e?s:o;return t==="up"?d=e?i:r:t==="end"?d=e?c:u:t==="start"?d=e?l:a:t==="down-centered"?d="bottom":t==="up-centered"&&(d="top"),d}const Zm=y.forwardRef(({bsPrefix:e,className:t,align:n,rootCloseEvent:r,flip:i=!0,show:o,renderOnMount:s,as:a="div",popperConfig:l,variant:u,...c},d)=>{let f=!1;const h=y.useContext(xn),x=j(e,"dropdown-menu"),{align:S,drop:C,isRTL:g}=y.useContext(sc);n=n||S;const p=y.useContext(ac),v=[];if(n)if(typeof n=="object"){const A=Object.keys(n);if(A.length){const F=A[0],D=n[F];f=D==="start",v.push(`${x}-${F}-${D}`)}}else n==="end"&&(f=!0);const w=Ym(f,C,g),[N,{hasShown:E,popper:k,show:I,toggle:M}]=Dm({flip:i,rootCloseEvent:r,show:o,usePopper:!h&&v.length===0,offset:[0,2],popperConfig:l,placement:w});if(N.ref=Un(qm(d),N.ref),ys(()=>{I&&(k==null||k.update())},[I]),!E&&!s&&!p)return null;typeof a!="string"&&(N.show=I,N.close=()=>M==null?void 0:M(!1),N.align=n);let R=c.style;return k!=null&&k.placement&&(R={...c.style,...N.style},c["x-placement"]=k.placement),m.jsx(a,{...c,...N,style:R,...(v.length||h)&&{"data-bs-popper":"static"},className:$(t,x,I&&"show",f&&`${x}-end`,u&&`${x}-${u}`,...v)})});Zm.displayName="DropdownMenu";const Jm=y.forwardRef(({bsPrefix:e,split:t,className:n,childBsPrefix:r,as:i=ws,...o},s)=>{const a=j(e,"dropdown-toggle"),l=y.useContext(Zs);r!==void 0&&(o.bsPrefix=r);const[u]=zm();return u.ref=Un(u.ref,qm(s)),m.jsx(i,{className:$(n,a,t&&`${a}-split`,(l==null?void 0:l.show)&&"show"),...u,...o})});Jm.displayName="DropdownToggle";const eg=y.forwardRef((e,t)=>{const{bsPrefix:n,drop:r="down",show:i,className:o,align:s="start",onSelect:a,onToggle:l,focusFirstItemOnShow:u,as:c="div",navbar:d,autoClose:f=!0,...h}=Wi(e,{show:"onToggle"}),x=y.useContext(ac),S=j(n,"dropdown"),C=_1(),g=k=>f===!1?k==="click":f==="inside"?k!=="rootClose":f==="outside"?k!=="select":!0,p=ce((k,I)=>{var M;!((M=I.originalEvent)==null||(M=M.target)==null)&&M.classList.contains("dropdown-toggle")&&I.source==="mousedown"||(I.originalEvent.currentTarget===document&&(I.source!=="keydown"||I.originalEvent.key==="Escape")&&(I.source="rootClose"),g(I.source)&&(l==null||l(k,I)))}),w=Ym(s==="end",r,C),N=y.useMemo(()=>({align:s,drop:r,isRTL:C}),[s,r,C]),E={down:S,"down-centered":`${S}-center`,up:"dropup","up-centered":"dropup-center dropup",end:"dropend",start:"dropstart"};return m.jsx(sc.Provider,{value:N,children:m.jsx(qi,{placement:w,show:i,onSelect:a,onToggle:p,focusFirstItemOnShow:u,itemSelector:`.${S}-item:not(.disabled):not(:disabled)`,children:x?h.children:m.jsx(c,{...h,ref:t,className:$(o,i&&"show",E[r])})})})});eg.displayName="Dropdown";const Ln=Object.assign(eg,{Toggle:Jm,Menu:Zm,Item:Xm,ItemText:Qm,Divider:Hm,Header:Wm});be.string,be.bool,be.bool,be.bool,be.bool;const tg=y.forwardRef(({bsPrefix:e,className:t,fluid:n=!1,rounded:r=!1,roundedCircle:i=!1,thumbnail:o=!1,...s},a)=>(e=j(e,"img"),m.jsx("img",{ref:a,...s,className:$(t,n&&`${e}-fluid`,r&&"rounded",i&&"rounded-circle",o&&`${e}-thumbnail`)})));tg.displayName="Image";const aS={type:be.string,tooltip:be.bool,as:be.elementType},na=y.forwardRef(({as:e="div",className:t,type:n="valid",tooltip:r=!1,...i},o)=>m.jsx(e,{...i,ref:o,className:$(t,`${n}-${r?"tooltip":"feedback"}`)}));na.displayName="Feedback";na.propTypes=aS;const Bt=y.createContext({}),lc=y.forwardRef(({id:e,bsPrefix:t,className:n,type:r="checkbox",isValid:i=!1,isInvalid:o=!1,as:s="input",...a},l)=>{const{controlId:u}=y.useContext(Bt);return t=j(t,"form-check-input"),m.jsx(s,{...a,ref:l,type:r,id:e||u,className:$(n,t,i&&"is-valid",o&&"is-invalid")})});lc.displayName="FormCheckInput";const Ns=y.forwardRef(({bsPrefix:e,className:t,htmlFor:n,...r},i)=>{const{controlId:o}=y.useContext(Bt);return e=j(e,"form-check-label"),m.jsx("label",{...r,ref:i,htmlFor:n||o,className:$(t,e)})});Ns.displayName="FormCheckLabel";const ng=y.forwardRef(({id:e,bsPrefix:t,bsSwitchPrefix:n,inline:r=!1,reverse:i=!1,disabled:o=!1,isValid:s=!1,isInvalid:a=!1,feedbackTooltip:l=!1,feedback:u,feedbackType:c,className:d,style:f,title:h="",type:x="checkbox",label:S,children:C,as:g="input",...p},v)=>{t=j(t,"form-check"),n=j(n,"form-switch");const{controlId:w}=y.useContext(Bt),N=y.useMemo(()=>({controlId:e||w}),[w,e]),E=!C&&S!=null&&S!==!1||wx(C,Ns),k=m.jsx(lc,{...p,type:x==="switch"?"checkbox":x,ref:v,isValid:s,isInvalid:a,disabled:o,as:g});return m.jsx(Bt.Provider,{value:N,children:m.jsx("div",{style:f,className:$(d,E&&t,r&&`${t}-inline`,i&&`${t}-reverse`,x==="switch"&&n),children:C||m.jsxs(m.Fragment,{children:[k,E&&m.jsx(Ns,{title:h,children:S}),u&&m.jsx(na,{type:c,tooltip:l,children:u})]})})})});ng.displayName="FormCheck";const ks=Object.assign(ng,{Input:lc,Label:Ns}),rg=y.forwardRef(({bsPrefix:e,type:t,size:n,htmlSize:r,id:i,className:o,isValid:s=!1,isInvalid:a=!1,plaintext:l,readOnly:u,as:c="input",...d},f)=>{const{controlId:h}=y.useContext(Bt);return e=j(e,"form-control"),m.jsx(c,{...d,type:t,size:r,ref:f,readOnly:u,id:i||h,className:$(o,l?`${e}-plaintext`:e,n&&`${e}-${n}`,t==="color"&&`${e}-color`,s&&"is-valid",a&&"is-invalid")})});rg.displayName="FormControl";const lS=Object.assign(rg,{Feedback:na}),ig=y.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},i)=>(t=j(t,"form-floating"),m.jsx(n,{ref:i,className:$(e,t),...r})));ig.displayName="FormFloating";const uc=y.forwardRef(({controlId:e,as:t="div",...n},r)=>{const i=y.useMemo(()=>({controlId:e}),[e]);return m.jsx(Bt.Provider,{value:i,children:m.jsx(t,{...n,ref:r})})});uc.displayName="FormGroup";const og=y.forwardRef(({as:e="label",bsPrefix:t,column:n=!1,visuallyHidden:r=!1,className:i,htmlFor:o,...s},a)=>{const{controlId:l}=y.useContext(Bt);t=j(t,"form-label");let u="col-form-label";typeof n=="string"&&(u=`${u} ${u}-${n}`);const c=$(i,t,r&&"visually-hidden",n&&u);return o=o||l,n?m.jsx(Im,{ref:a,as:"label",className:c,htmlFor:o,...s}):m.jsx(e,{ref:a,className:c,htmlFor:o,...s})});og.displayName="FormLabel";const sg=y.forwardRef(({bsPrefix:e,className:t,id:n,...r},i)=>{const{controlId:o}=y.useContext(Bt);return e=j(e,"form-range"),m.jsx("input",{...r,type:"range",ref:i,className:$(t,e),id:n||o})});sg.displayName="FormRange";const ag=y.forwardRef(({bsPrefix:e,size:t,htmlSize:n,className:r,isValid:i=!1,isInvalid:o=!1,id:s,...a},l)=>{const{controlId:u}=y.useContext(Bt);return e=j(e,"form-select"),m.jsx("select",{...a,size:n,ref:l,className:$(r,e,t&&`${e}-${t}`,i&&"is-valid",o&&"is-invalid"),id:s||u})});ag.displayName="FormSelect";const lg=y.forwardRef(({bsPrefix:e,className:t,as:n="small",muted:r,...i},o)=>(e=j(e,"form-text"),m.jsx(n,{...i,ref:o,className:$(t,e,r&&"text-muted")})));lg.displayName="FormText";const ug=y.forwardRef((e,t)=>m.jsx(ks,{...e,ref:t,type:"switch"}));ug.displayName="Switch";const uS=Object.assign(ug,{Input:ks.Input,Label:ks.Label}),cg=y.forwardRef(({bsPrefix:e,className:t,children:n,controlId:r,label:i,...o},s)=>(e=j(e,"form-floating"),m.jsxs(uc,{ref:s,className:$(t,e),controlId:r,...o,children:[n,m.jsx("label",{htmlFor:r,children:i})]})));cg.displayName="FloatingLabel";const cS={_ref:be.any,validated:be.bool,as:be.elementType},cc=y.forwardRef(({className:e,validated:t,as:n="form",...r},i)=>m.jsx(n,{...r,ref:i,className:$(e,t&&"was-validated")}));cc.displayName="Form";cc.propTypes=cS;const _e=Object.assign(cc,{Group:uc,Control:lS,Floating:ig,Check:ks,Switch:uS,Label:og,Text:lg,Range:sg,Select:ag,FloatingLabel:cg}),fg=y.createContext(null),fS=["as","active","eventKey"];function dS(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function fc({key:e,onClick:t,active:n,id:r,role:i,disabled:o}){const s=y.useContext(zn),a=y.useContext(ea),l=y.useContext(fg);let u=n;const c={role:i};if(a){!i&&a.role==="tablist"&&(c.role="tab");const d=a.getControllerId(e??null),f=a.getControlledId(e??null);c[$r("event-key")]=e,c.id=d||r,u=n==null&&e!=null?a.activeKey===e:n,(u||!(l!=null&&l.unmountOnExit)&&!(l!=null&&l.mountOnEnter))&&(c["aria-controls"]=f)}return c.role==="tab"&&(c["aria-selected"]=u,u||(c.tabIndex=-1),o&&(c.tabIndex=-1,c["aria-disabled"]=!0)),c.onClick=ce(d=>{o||(t==null||t(d),e!=null&&s&&!d.isPropagationStopped()&&s(e,d))}),[c,{isActive:u}]}const dg=y.forwardRef((e,t)=>{let{as:n=hm,active:r,eventKey:i}=e,o=dS(e,fS);const[s,a]=fc(Object.assign({key:Lr(i,o.href),active:r},o));return s[$r("active")]=a.isActive,m.jsx(n,Object.assign({},o,s,{ref:t}))});dg.displayName="NavItem";const pS=dg,hS=["as","onSelect","activeKey","role","onKeyDown"];function mS(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}const xd=()=>{},wd=$r("event-key"),pg=y.forwardRef((e,t)=>{let{as:n="div",onSelect:r,activeKey:i,role:o,onKeyDown:s}=e,a=mS(e,hS);const l=Tm(),u=y.useRef(!1),c=y.useContext(zn),d=y.useContext(fg);let f,h;d&&(o=o||"tablist",i=d.activeKey,f=d.getControlledId,h=d.getControllerId);const x=y.useRef(null),S=v=>{const w=x.current;if(!w)return null;const N=Lt(w,`[${wd}]:not([aria-disabled=true])`),E=w.querySelector("[aria-selected=true]");if(!E||E!==document.activeElement)return null;const k=N.indexOf(E);if(k===-1)return null;let I=k+v;return I>=N.length&&(I=0),I<0&&(I=N.length-1),N[I]},C=(v,w)=>{v!=null&&(r==null||r(v,w),c==null||c(v,w))},g=v=>{if(s==null||s(v),!d)return;let w;switch(v.key){case"ArrowLeft":case"ArrowUp":w=S(-1);break;case"ArrowRight":case"ArrowDown":w=S(1);break;default:return}w&&(v.preventDefault(),C(w.dataset[iS("EventKey")]||null,v),u.current=!0,l())};y.useEffect(()=>{if(x.current&&u.current){const v=x.current.querySelector(`[${wd}][aria-selected=true]`);v==null||v.focus()}u.current=!1});const p=Un(t,x);return m.jsx(zn.Provider,{value:C,children:m.jsx(ea.Provider,{value:{role:o,activeKey:Lr(i),getControlledId:f||xd,getControllerId:h||xd},children:m.jsx(n,Object.assign({},a,{onKeyDown:g,ref:p,role:o}))})})});pg.displayName="Nav";const hg=Object.assign(pg,{Item:pS}),mg=y.forwardRef(({bsPrefix:e,active:t,disabled:n,eventKey:r,className:i,variant:o,action:s,as:a,...l},u)=>{e=j(e,"list-group-item");const[c,d]=fc({key:Lr(r,l.href),active:t,...l}),f=ce(x=>{if(n){x.preventDefault(),x.stopPropagation();return}c.onClick(x)});n&&l.tabIndex===void 0&&(l.tabIndex=-1,l["aria-disabled"]=!0);const h=a||(s?l.href?"a":"button":"div");return m.jsx(h,{ref:u,...l,...c,onClick:f,className:$(i,e,d.isActive&&"active",n&&"disabled",o&&`${e}-${o}`,s&&`${e}-action`)})});mg.displayName="ListGroupItem";const gg=y.forwardRef((e,t)=>{const{className:n,bsPrefix:r,variant:i,horizontal:o,numbered:s,as:a="div",...l}=Wi(e,{activeKey:"onSelect"}),u=j(r,"list-group");let c;return o&&(c=o===!0?"horizontal":`horizontal-${o}`),m.jsx(hg,{ref:t,...l,as:a,className:$(n,u,i&&`${u}-${i}`,c&&`${u}-${c}`,s&&`${u}-numbered`)})});gg.displayName="ListGroup";const Sd=Object.assign(gg,{Item:mg});function ba(e){e===void 0&&(e=Ws());try{var t=e.activeElement;return!t||!t.nodeName?null:t}catch{return e.body}}function gS(e=document){const t=e.defaultView;return Math.abs(t.innerWidth-e.documentElement.clientWidth)}const Cd=$r("modal-open");class dc{constructor({ownerDocument:t,handleContainerOverflow:n=!0,isRTL:r=!1}={}){this.handleContainerOverflow=n,this.isRTL=r,this.modals=[],this.ownerDocument=t}getScrollbarWidth(){return gS(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(t){}removeModalAttributes(t){}setContainerStyle(t){const n={overflow:"hidden"},r=this.isRTL?"paddingLeft":"paddingRight",i=this.getElement();t.style={overflow:i.style.overflow,[r]:i.style[r]},t.scrollBarWidth&&(n[r]=`${parseInt(Dt(i,r)||"0",10)+t.scrollBarWidth}px`),i.setAttribute(Cd,""),Dt(i,n)}reset(){[...this.modals].forEach(t=>this.remove(t))}removeContainerStyle(t){const n=this.getElement();n.removeAttribute(Cd),Object.assign(n.style,t.style)}add(t){let n=this.modals.indexOf(t);return n!==-1||(n=this.modals.length,this.modals.push(t),this.setModalAttributes(t),n!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),n}remove(t){const n=this.modals.indexOf(t);n!==-1&&(this.modals.splice(n,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(t))}isTopModal(t){return!!this.modals.length&&this.modals[this.modals.length-1]===t}}const Va=(e,t)=>Xs?e==null?(t||Ws()).body:(typeof e=="function"&&(e=e()),e&&"current"in e&&(e=e.current),e&&("nodeType"in e||e.getBoundingClientRect)?e:null):null;function vS(e,t){const n=ta(),[r,i]=y.useState(()=>Va(e,n==null?void 0:n.document));if(!r){const o=Va(e);o&&i(o)}return y.useEffect(()=>{},[t,r]),y.useEffect(()=>{const o=Va(e);o!==r&&i(o)},[e,r]),r}function yS({children:e,in:t,onExited:n,mountOnEnter:r,unmountOnExit:i}){const o=y.useRef(null),s=y.useRef(t),a=ce(n);y.useEffect(()=>{t?s.current=!0:a(o.current)},[t,a]);const l=Un(o,e.ref),u=y.cloneElement(e,{ref:l});return t?u:i||!s.current&&r?null:u}function xS(e){return e.code==="Escape"||e.keyCode===27}function wS(){const e=y.version.split(".");return{major:+e[0],minor:+e[1],patch:+e[2]}}const SS=["onEnter","onEntering","onEntered","onExit","onExiting","onExited","addEndListener","children"];function CS(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ES(e){let{onEnter:t,onEntering:n,onEntered:r,onExit:i,onExiting:o,onExited:s,addEndListener:a,children:l}=e,u=CS(e,SS);const{major:c}=wS(),d=c>=19?l.props.ref:l.ref,f=y.useRef(null),h=Un(f,typeof l=="function"?null:d),x=E=>k=>{E&&f.current&&E(f.current,k)},S=y.useCallback(x(t),[t]),C=y.useCallback(x(n),[n]),g=y.useCallback(x(r),[r]),p=y.useCallback(x(i),[i]),v=y.useCallback(x(o),[o]),w=y.useCallback(x(s),[s]),N=y.useCallback(x(a),[a]);return Object.assign({},u,{nodeRef:f},t&&{onEnter:S},n&&{onEntering:C},r&&{onEntered:g},i&&{onExit:p},o&&{onExiting:v},s&&{onExited:w},a&&{addEndListener:N},{children:typeof l=="function"?(E,k)=>l(E,Object.assign({},k,{ref:h})):y.cloneElement(l,{ref:h})})}const NS=["component"];function kS(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}const IS=y.forwardRef((e,t)=>{let{component:n}=e,r=kS(e,NS);const i=ES(r);return m.jsx(n,Object.assign({ref:t},i))});function TS({in:e,onTransition:t}){const n=y.useRef(null),r=y.useRef(!0),i=ce(t);return ys(()=>{if(!n.current)return;let o=!1;return i({in:e,element:n.current,initial:r.current,isStale:()=>o}),()=>{o=!0}},[e,i]),ys(()=>(r.current=!1,()=>{r.current=!0}),[]),n}function OS({children:e,in:t,onExited:n,onEntered:r,transition:i}){const[o,s]=y.useState(!t);t&&o&&s(!1);const a=TS({in:!!t,onTransition:u=>{const c=()=>{u.isStale()||(u.in?r==null||r(u.element,u.initial):(s(!0),n==null||n(u.element)))};Promise.resolve(i(u)).then(c,d=>{throw u.in||s(!0),d})}}),l=Un(a,e.ref);return o&&!t?null:y.cloneElement(e,{ref:l})}function Ed(e,t,n){return e?m.jsx(IS,Object.assign({},n,{component:e})):t?m.jsx(OS,Object.assign({},n,{transition:t})):m.jsx(yS,Object.assign({},n))}const RS=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function PS(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}let za;function LS(e){return za||(za=new dc({ownerDocument:e==null?void 0:e.document})),za}function _S(e){const t=ta(),n=e||LS(t),r=y.useRef({dialog:null,backdrop:null});return Object.assign(r.current,{add:()=>n.add(r.current),remove:()=>n.remove(r.current),isTopModal:()=>n.isTopModal(r.current),setDialogRef:y.useCallback(i=>{r.current.dialog=i},[]),setBackdropRef:y.useCallback(i=>{r.current.backdrop=i},[])})}const vg=y.forwardRef((e,t)=>{let{show:n=!1,role:r="dialog",className:i,style:o,children:s,backdrop:a=!0,keyboard:l=!0,onBackdropClick:u,onEscapeKeyDown:c,transition:d,runTransition:f,backdropTransition:h,runBackdropTransition:x,autoFocus:S=!0,enforceFocus:C=!0,restoreFocus:g=!0,restoreFocusOptions:p,renderDialog:v,renderBackdrop:w=ie=>m.jsx("div",Object.assign({},ie)),manager:N,container:E,onShow:k,onHide:I=()=>{},onExit:M,onExited:R,onExiting:A,onEnter:F,onEntering:D,onEntered:U}=e,Q=PS(e,RS);const G=ta(),q=vS(E),T=_S(N),L=fm(),_=dm(n),[V,W]=y.useState(!n),ke=y.useRef(null);y.useImperativeHandle(t,()=>T,[T]),Xs&&!_&&n&&(ke.current=ba(G==null?void 0:G.document)),n&&V&&W(!1);const de=ce(()=>{if(T.add(),Fr.current=nn(document,"keydown",Ot),Sn.current=nn(document,"focus",()=>setTimeout(me),!0),k&&k(),S){var ie,Vr;const Xn=ba((ie=(Vr=T.dialog)==null?void 0:Vr.ownerDocument)!=null?ie:G==null?void 0:G.document);T.dialog&&Xn&&!Cs(T.dialog,Xn)&&(ke.current=Xn,T.dialog.focus())}}),Z=ce(()=>{if(T.remove(),Fr.current==null||Fr.current(),Sn.current==null||Sn.current(),g){var ie;(ie=ke.current)==null||ie.focus==null||ie.focus(p),ke.current=null}});y.useEffect(()=>{!n||!q||de()},[n,q,de]),y.useEffect(()=>{V&&Z()},[V,Z]),xx(()=>{Z()});const me=ce(()=>{if(!C||!L()||!T.isTopModal())return;const ie=ba(G==null?void 0:G.document);T.dialog&&ie&&!Cs(T.dialog,ie)&&T.dialog.focus()}),ut=ce(ie=>{ie.target===ie.currentTarget&&(u==null||u(ie),a===!0&&I())}),Ot=ce(ie=>{l&&xS(ie)&&T.isTopModal()&&(c==null||c(ie),ie.defaultPrevented||I())}),Sn=y.useRef(),Fr=y.useRef(),br=(...ie)=>{W(!0),R==null||R(...ie)};if(!q)return null;const Ji=Object.assign({role:r,ref:T.setDialogRef,"aria-modal":r==="dialog"?!0:void 0},Q,{style:o,className:i,tabIndex:-1});let Hn=v?v(Ji):m.jsx("div",Object.assign({},Ji,{children:y.cloneElement(s,{role:"document"})}));Hn=Ed(d,f,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!n,onExit:M,onExiting:A,onExited:br,onEnter:F,onEntering:D,onEntered:U,children:Hn});let Wn=null;return a&&(Wn=w({ref:T.setBackdropRef,onClick:ut}),Wn=Ed(h,x,{in:!!n,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:Wn})),m.jsx(m.Fragment,{children:dr.createPortal(m.jsxs(m.Fragment,{children:[Wn,Hn]}),q)})});vg.displayName="Modal";const AS=Object.assign(vg,{Manager:dc});function MS(e,t){return e.classList?e.classList.contains(t):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")!==-1}function $S(e,t){e.classList?e.classList.add(t):MS(e,t)||(typeof e.className=="string"?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))}function Nd(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function jS(e,t){e.classList?e.classList.remove(t):typeof e.className=="string"?e.className=Nd(e.className,t):e.setAttribute("class",Nd(e.className&&e.className.baseVal||"",t))}const Jn={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class yg extends dc{adjustAndStore(t,n,r){const i=n.style[t];n.dataset[t]=i,Dt(n,{[t]:`${parseFloat(Dt(n,t))+r}px`})}restore(t,n){const r=n.dataset[t];r!==void 0&&(delete n.dataset[t],Dt(n,{[t]:r}))}setContainerStyle(t){super.setContainerStyle(t);const n=this.getElement();if($S(n,"modal-open"),!t.scrollBarWidth)return;const r=this.isRTL?"paddingLeft":"paddingRight",i=this.isRTL?"marginLeft":"marginRight";Lt(n,Jn.FIXED_CONTENT).forEach(o=>this.adjustAndStore(r,o,t.scrollBarWidth)),Lt(n,Jn.STICKY_CONTENT).forEach(o=>this.adjustAndStore(i,o,-t.scrollBarWidth)),Lt(n,Jn.NAVBAR_TOGGLER).forEach(o=>this.adjustAndStore(i,o,t.scrollBarWidth))}removeContainerStyle(t){super.removeContainerStyle(t);const n=this.getElement();jS(n,"modal-open");const r=this.isRTL?"paddingLeft":"paddingRight",i=this.isRTL?"marginLeft":"marginRight";Lt(n,Jn.FIXED_CONTENT).forEach(o=>this.restore(r,o)),Lt(n,Jn.STICKY_CONTENT).forEach(o=>this.restore(i,o)),Lt(n,Jn.NAVBAR_TOGGLER).forEach(o=>this.restore(i,o))}}let Ga;function DS(e){return Ga||(Ga=new yg(e)),Ga}const xg=y.createContext({onHide(){}}),FS=y.forwardRef(({closeLabel:e="Close",closeVariant:t,closeButton:n=!1,onHide:r,children:i,...o},s)=>{const a=y.useContext(xg),l=ce(()=>{a==null||a.onHide(),r==null||r()});return m.jsxs("div",{ref:s,...o,children:[i,n&&m.jsx(Ys,{"aria-label":e,variant:t,onClick:l})]})});var kd={exports:{}},Ul={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(r){function i(s,a,l,u,c,d){var f=u||"<>",h=d||l;if(a[l]==null)return s?new Error("Required "+c+" `"+h+"` was not specified "+("in `"+f+"`.")):null;for(var x=arguments.length,S=Array(x>6?x-6:0),C=6;C(t=j(t,"nav-item"),m.jsx(n,{ref:i,className:$(e,t),...r})));wg.displayName="NavItem";const pc=y.forwardRef(({bsPrefix:e,className:t,as:n=qs,active:r,eventKey:i,disabled:o=!1,...s},a)=>{e=j(e,"nav-link");const[l,u]=fc({key:Lr(i,s.href),active:r,disabled:o,...s});return m.jsx(n,{...s,...l,ref:a,disabled:o,className:$(t,e,o&&"disabled",u.isActive&&"active")})});pc.displayName="NavLink";const Sg=y.forwardRef((e,t)=>{const{as:n="div",bsPrefix:r,variant:i,fill:o=!1,justify:s=!1,navbar:a,navbarScroll:l,className:u,activeKey:c,...d}=Wi(e,{activeKey:"onSelect"}),f=j(r,"nav");let h,x,S=!1;const C=y.useContext(xn),g=y.useContext(Zu);return C?(h=C.bsPrefix,S=a??!0):g&&({cardHeaderBsPrefix:x}=g),m.jsx(hg,{as:n,ref:t,activeKey:c,className:$(u,{[f]:!S,[`${h}-nav`]:S,[`${h}-nav-scroll`]:S&&l,[`${x}-${i}`]:!!x,[`${f}-${i}`]:!!i,[`${f}-fill`]:o,[`${f}-justified`]:s}),...d})});Sg.displayName="Nav";const No=Object.assign(Sg,{Item:wg,Link:pc}),Cg=y.forwardRef(({bsPrefix:e,className:t,as:n,...r},i)=>{e=j(e,"navbar-brand");const o=n||(r.href?"a":"span");return m.jsx(o,{...r,ref:i,className:$(t,e)})});Cg.displayName="NavbarBrand";const Eg=y.forwardRef(({children:e,bsPrefix:t,...n},r)=>{t=j(t,"navbar-collapse");const i=y.useContext(xn);return m.jsx(nx,{in:!!(i&&i.expanded),...n,children:m.jsx("div",{ref:r,className:t,children:e})})});Eg.displayName="NavbarCollapse";const Ng=y.forwardRef(({bsPrefix:e,className:t,children:n,label:r="Toggle navigation",as:i="button",onClick:o,...s},a)=>{e=j(e,"navbar-toggler");const{onToggle:l,expanded:u}=y.useContext(xn)||{},c=ce(d=>{o&&o(d),l&&l()});return i==="button"&&(s.type="button"),m.jsx(i,{...s,ref:a,onClick:c,"aria-label":r,className:$(t,e,!u&&"collapsed"),children:n||m.jsx("span",{className:`${e}-icon`})})});Ng.displayName="NavbarToggle";const Kl=new WeakMap,Id=(e,t)=>{if(!e||!t)return;const n=Kl.get(t)||new Map;Kl.set(t,n);let r=n.get(e);return r||(r=t.matchMedia(e),r.refCount=0,n.set(r.media,r)),r};function VS(e,t=typeof window>"u"?void 0:window){const n=Id(e,t),[r,i]=y.useState(()=>n?n.matches:!1);return ys(()=>{let o=Id(e,t);if(!o)return i(!1);let s=Kl.get(t);const a=()=>{i(o.matches)};return o.refCount++,o.addListener(a),a(),()=>{o.removeListener(a),o.refCount--,o.refCount<=0&&(s==null||s.delete(o.media)),o=void 0}},[e]),r}function zS(e){const t=Object.keys(e);function n(a,l){return a===l?l:a?`${a} and ${l}`:l}function r(a){return t[Math.min(t.indexOf(a)+1,t.length-1)]}function i(a){const l=r(a);let u=e[l];return typeof u=="number"?u=`${u-.2}px`:u=`calc(${u} - 0.2px)`,`(max-width: ${u})`}function o(a){let l=e[a];return typeof l=="number"&&(l=`${l}px`),`(min-width: ${l})`}function s(a,l,u){let c;typeof a=="object"?(c=a,u=l,l=!0):(l=l||!0,c={[a]:l});let d=y.useMemo(()=>Object.entries(c).reduce((f,[h,x])=>((x==="up"||x===!0)&&(f=n(f,o(h))),(x==="down"||x===!0)&&(f=n(f,i(h))),f),""),[JSON.stringify(c)]);return VS(d,u)}return s}const GS=zS({xs:0,sm:576,md:768,lg:992,xl:1200,xxl:1400}),kg=y.forwardRef(({className:e,bsPrefix:t,as:n="div",...r},i)=>(t=j(t,"offcanvas-body"),m.jsx(n,{ref:i,className:$(e,t),...r})));kg.displayName="OffcanvasBody";const BS={[mt]:"show",[At]:"show"},Ig=y.forwardRef(({bsPrefix:e,className:t,children:n,in:r=!1,mountOnEnter:i=!1,unmountOnExit:o=!1,appear:s=!1,...a},l)=>(e=j(e,"offcanvas"),m.jsx(Qu,{ref:l,addEndListener:Xu,in:r,mountOnEnter:i,unmountOnExit:o,appear:s,...a,childRef:n.ref,children:(u,c)=>y.cloneElement(n,{...c,className:$(t,n.props.className,(u===mt||u===Di)&&`${e}-toggling`,BS[u])})})));Ig.displayName="OffcanvasToggling";const Tg=y.forwardRef(({bsPrefix:e,className:t,closeLabel:n="Close",closeButton:r=!1,...i},o)=>(e=j(e,"offcanvas-header"),m.jsx(FS,{ref:o,...i,className:$(t,e),closeLabel:n,closeButton:r})));Tg.displayName="OffcanvasHeader";const US=Qs("h5"),Og=y.forwardRef(({className:e,bsPrefix:t,as:n=US,...r},i)=>(t=j(t,"offcanvas-title"),m.jsx(n,{ref:i,className:$(e,t),...r})));Og.displayName="OffcanvasTitle";function KS(e){return m.jsx(Ig,{...e})}function HS(e){return m.jsx(xs,{...e})}const Rg=y.forwardRef(({bsPrefix:e,className:t,children:n,"aria-labelledby":r,placement:i="start",responsive:o,show:s=!1,backdrop:a=!0,keyboard:l=!0,scroll:u=!1,onEscapeKeyDown:c,onShow:d,onHide:f,container:h,autoFocus:x=!0,enforceFocus:S=!0,restoreFocus:C=!0,restoreFocusOptions:g,onEntered:p,onExit:v,onExiting:w,onEnter:N,onEntering:E,onExited:k,backdropClassName:I,manager:M,renderStaticNode:R=!1,...A},F)=>{const D=y.useRef();e=j(e,"offcanvas");const{onToggle:U}=y.useContext(xn)||{},[Q,G]=y.useState(!1),q=GS(o||"xs","up");y.useEffect(()=>{G(o?s&&!q:s)},[s,o,q]);const T=ce(()=>{U==null||U(),f==null||f()}),L=y.useMemo(()=>({onHide:T}),[T]);function _(){return M||(u?(D.current||(D.current=new yg({handleContainerOverflow:!1})),D.current):DS())}const V=(Z,...me)=>{Z&&(Z.style.visibility="visible"),N==null||N(Z,...me)},W=(Z,...me)=>{Z&&(Z.style.visibility=""),k==null||k(...me)},ke=y.useCallback(Z=>m.jsx("div",{...Z,className:$(`${e}-backdrop`,I)}),[I,e]),de=Z=>m.jsx("div",{...Z,...A,className:$(t,o?`${e}-${o}`:e,`${e}-${i}`),"aria-labelledby":r,children:n});return m.jsxs(m.Fragment,{children:[!Q&&(o||R)&&de({}),m.jsx(xg.Provider,{value:L,children:m.jsx(AS,{show:Q,ref:F,backdrop:a,container:h,keyboard:l,autoFocus:x,enforceFocus:S&&!u,restoreFocus:C,restoreFocusOptions:g,onEscapeKeyDown:c,onShow:d,onHide:T,onEnter:V,onEntering:E,onEntered:p,onExit:v,onExiting:w,onExited:W,manager:_(),transition:KS,backdropTransition:HS,renderBackdrop:ke,renderDialog:de})})]})});Rg.displayName="Offcanvas";const WS=Object.assign(Rg,{Body:kg,Header:Tg,Title:Og}),Pg=y.forwardRef((e,t)=>{const n=y.useContext(xn);return m.jsx(WS,{ref:t,show:!!(n!=null&&n.expanded),...e,renderStaticNode:!0})});Pg.displayName="NavbarOffcanvas";const Lg=y.forwardRef(({className:e,bsPrefix:t,as:n="span",...r},i)=>(t=j(t,"navbar-text"),m.jsx(n,{ref:i,className:$(e,t),...r})));Lg.displayName="NavbarText";const _g=y.forwardRef((e,t)=>{const{bsPrefix:n,expand:r=!0,variant:i="light",bg:o,fixed:s,sticky:a,className:l,as:u="nav",expanded:c,onToggle:d,onSelect:f,collapseOnSelect:h=!1,...x}=Wi(e,{expanded:"onToggle"}),S=j(n,"navbar"),C=y.useCallback((...v)=>{f==null||f(...v),h&&c&&(d==null||d(!1))},[f,h,c,d]);x.role===void 0&&u!=="nav"&&(x.role="navigation");let g=`${S}-expand`;typeof r=="string"&&(g=`${g}-${r}`);const p=y.useMemo(()=>({onToggle:()=>d==null?void 0:d(!c),bsPrefix:S,expanded:!!c,expand:r}),[S,c,r,d]);return m.jsx(xn.Provider,{value:p,children:m.jsx(zn.Provider,{value:C,children:m.jsx(u,{ref:t,...x,className:$(l,S,r&&g,i&&`${S}-${i}`,o&&`bg-${o}`,a&&`sticky-${a}`,s&&`fixed-${s}`)})})})});_g.displayName="Navbar";const Td=Object.assign(_g,{Brand:Cg,Collapse:Eg,Offcanvas:Pg,Text:Lg,Toggle:Ng}),Ag=y.forwardRef(({id:e,title:t,children:n,bsPrefix:r,className:i,rootCloseEvent:o,menuRole:s,disabled:a,active:l,renderMenuOnMount:u,menuVariant:c,...d},f)=>{const h=j(void 0,"nav-item");return m.jsxs(Ln,{ref:f,...d,className:$(i,h),children:[m.jsx(Ln.Toggle,{id:e,eventKey:null,active:l,disabled:a,childBsPrefix:r,as:pc,children:t}),m.jsx(Ln.Menu,{role:s,renderOnMount:u,rootCloseEvent:o,variant:c,children:n})]})});Ag.displayName="NavDropdown";const ue=Object.assign(Ag,{Item:Ln.Item,ItemText:Ln.ItemText,Divider:Ln.Divider,Header:Ln.Header}),zo=y.forwardRef(({bsPrefix:e,className:t,as:n="div",...r},i)=>{const o=j(e,"row"),s=tm(),a=nm(),l=`${o}-cols`,u=[];return s.forEach(c=>{const d=r[c];delete r[c];let f;d!=null&&typeof d=="object"?{cols:f}=d:f=d;const h=c!==a?`-${c}`:"";f!=null&&u.push(`${l}${h}-${f}`)}),m.jsx(n,{ref:i,...r,className:$(t,o,...u)})});zo.displayName="Row";const Mg=y.createContext({setDemoElement:()=>{},inputValues:new Map});class jr extends y.Component{}En(jr,"contextType",Mg);var XS=Object.defineProperty,QS=(e,t,n)=>t in e?XS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Y=(e,t,n)=>QS(e,typeof t!="symbol"?t+"":t,n),Od=class{constructor(e,t,n){Y(this,"_proxiedIterableIterator"),Y(this,"_callback"),Y(this,"_isPredicate"),Y(this,"_index"),this._proxiedIterableIterator=e,this._callback=t,this._isPredicate=n,this._index=0}[Symbol.iterator](){return this}next(...e){let t=!1,n,r;do{const i=this._proxiedIterableIterator.next(...e);if(i.done??!1)t=!0,r=!0;else{const o=i.value,s=this._callback(o,this._index++);this._isPredicate?(r=s,r&&(n=o)):(n=s,r=!0)}}while(!r);return t?{done:!0,value:this._index}:{done:!1,value:n}}},ra=class Hl{constructor(t){Y(this,"_iterationSource"),Y(this,"_iterable"),Y(this,"_iterator"),this._iterationSource=t}static from(t){return t instanceof Hl?t:new Hl(t)}get iterationSource(){return this._iterationSource}asIterable(){if(this._iterable===void 0){const t=typeof this.iterationSource=="function"?this.iterationSource():this.iterationSource;this._iterable=Symbol.iterator in t?t:{[Symbol.iterator](){return t}}}return this._iterable}asArray(){const t=this.asIterable();return Array.isArray(t)?t:Array.from(t)}asIterator(){return this._iterator===void 0&&(this._iterator=this.asIterable()[Symbol.iterator]()),this._iterator}asCallback(){return typeof this._iterationSource=="function"?this._iterationSource:()=>this._iterationSource}[Symbol.iterator](){return this}next(...t){return this.asIterator().next(...t)}forEach(t){let n=0;for(const r of this)t(r,n++)}map(t){return new Od(this,t,!1)}filter(t){return new Od(this,t,!0)}reduce(t,n){let r=0,i=n;for(const o of this)r===0&&n===void 0?i=o:i=t(i,o,r),r++;if(r===0&&n===void 0)throw new Error("reduce() of empty iterator with no initial value");return i}},qS={Transformer:{domainMustBeGreaterThanZero:"Domain {{domain}} must be greater than 0",tweakMustBeGreaterThanOrEqualToZero:"Tweak {{tweak}} must be greater than or equal to 0",valueMustBeGreaterThanOrEqualToZero:"Value {{startValue}} must be greater than or equal to 0",startValueMustBeGreaterThanOrEqualToZero:"Start value {{startValue}} must be greater than or equal to 0",valueMustBeLessThan:"Value {{endValue}} must be less than {{domain}}",endValueMustBeLessThan:"End value (start value + count - 1) {{endValue}} must be less than {{domain}}"},RegExpValidator:{stringDoesNotMatchPattern:"String {{s}} does not match pattern"},CharacterSetValidator:{stringMustNotBeAllNumeric:"String must not be all numeric",lengthMustBeGreaterThanOrEqualTo:"Length {{length}} must be greater than or equal to {{minimumLength}}",lengthMustBeLessThanOrEqualTo:"Length {{length}} must be less than or equal to {{maximumLength}}",lengthMustBeEqualTo:"Length {{length}} must be equal to {{exactLength}}",lengthOfComponentMustBeGreaterThanOrEqualTo:"Length {{length}} of {{component}} must be greater than or equal to {{minimumLength}}",lengthOfComponentMustBeLessThanOrEqualTo:"Length {{length}} of {{component}} must be less than or equal to {{maximumLength}}",lengthOfComponentMustBeEqualTo:"Length {{length}} of {{component}} must be equal to {{exactLength}}",invalidCharacterAtPosition:"Invalid character '{{c}}' at position {{position}}",invalidCharacterAtPositionOfComponent:"Invalid character '{{c}}' at position {{position}} of {{component}}",exclusionNotSupported:"Exclusion value of {{exclusion}} is not supported",invalidTweakWithAllNumericExclusion:"Tweak must not be used with all-numeric exclusion",endSequenceValueMustBeLessThanOrEqualTo:"End sequence value (start sequence value + count - 1) must be less than {{domain}}"},RecordValidator:{typeNameKeyNotFound:'{{typeName}} "{{key}}" not found'}},Ce="aidct_utility";Wu("en",Ce,qS);var Re=Yh,$g=class Wl{constructor(t){if(Y(this,"_domain"),t<=0n)throw new RangeError(Re.t("Transformer.domainMustBeGreaterThanZero",{ns:Ce,domain:t}));this._domain=BigInt(t)}static get(t,n){const r=BigInt(t);let i=Wl.TRANSFORMER_MAPS_MAP.get(r);i===void 0&&(i=new Map,Wl.TRANSFORMER_MAPS_MAP.set(r,i));const o=n===void 0?void 0:BigInt(n);let s=i.get(o);return s===void 0&&(s=o===void 0?new YS(r):new ZS(r,o),i.set(o,s)),s}get domain(){return this._domain}validate(t,n){if(t<0n)throw new RangeError(Re.t(n===void 0?"Transformer.valueMustBeGreaterThanOrEqualToZero":"Transformer.startValueMustBeGreaterThanOrEqualToZero",{ns:Ce,startValue:t}));const r=n===void 0?t:t+BigInt(n-1);if(r>=this.domain)throw new RangeError(Re.t(n===void 0?"Transformer.valueMustBeLessThan":"Transformer.endValueMustBeLessThan",{ns:Ce,endValue:r,domain:this.domain}))}forward(t,n){this.validate(t);const r=this.doForward(t);return n===void 0?r:n(r,0)}*doForwardSequence(t,n,r){for(let i=0,o=t;i{this.validate(r);const o=this.doForward(r);return n!==void 0?n(o,i):o})}reverse(t){return this.validate(t),this.doReverse(t)}};Y($g,"TRANSFORMER_MAPS_MAP",new Map);var Is=$g,YS=class extends Is{doForward(e){return e}doReverse(e){return e}},hc=class Wt extends Is{constructor(t,n){if(super(t),Y(this,"_domainBytes"),Y(this,"_tweak"),Y(this,"_xorBytes"),Y(this,"_bits"),Y(this,"_inverseBits"),Y(this,"_rounds"),n<0n)throw new RangeError(Re.t("Transformer.tweakMustBeGreaterThanOrEqualToZero",{ns:Ce,tweak:n}));let r=0;for(let a=t-1n;a!==0n;a=a>>8n)r++;this._domainBytes=r,this._tweak=n;const i=new Array,o=new Array,s=new Array;for(let a=t*n*603868999n;a!==0n;a=a>>8n){const l=Number(a&0xFFn);i.unshift(l);const u=l&7;o.push(Wt.BITS[u]),s.push(Wt.INVERSE_BITS[u])}if(r===1){const a=Wt.BITS.filter(l=>ll|u,0);this._xorBytes=new Uint8Array([i.reduce((l,u)=>l^u,0)&a]),this._bits=new Uint8Array([Wt.BITS[0]]),this._inverseBits=new Uint8Array([Wt.INVERSE_BITS[0]]),this._rounds=1}else this._xorBytes=new Uint8Array(i),this._bits=new Uint8Array(o),this._inverseBits=new Uint8Array(s),this._rounds=i.length}get tweak(){return this._tweak}valueToBytes(t){const n=new Uint8Array(this._domainBytes);let r=t;for(let i=this._domainBytes-1;i>=0;i--)n[i]=Number(r&0xFFn),r=r>>8n;return n}static bytesToValue(t){return t.reduce((n,r)=>n<<8n|BigInt(r),0n)}shuffle(t,n,r){const i=t.length,o=new Uint8Array(i),s=new Array,a=new Array,l=this._bits[n];t.forEach((d,f)=>{const h=d&l;o[f]=h,(h!==0?s:a).push(f)});const u=this._inverseBits[n],c=new Uint8Array(i);return[...s,...a].forEach((d,f)=>{r?c[f]=t[d]&u|o[f]:c[d]=t[f]&u|o[d]}),c}xor(t,n,r){let i=this._xorBytes[n];return t.map(o=>{const s=o^i;return i=r?s:o,s})}doForward(t){let n=this.valueToBytes(t),r;do{for(let i=0;i=this.domain);return r}doReverse(t){let n=this.valueToBytes(t),r;do{for(let i=this._rounds-1;i>=0;i--)n=this.shuffle(this.xor(n,i,!1),i,!1);r=Wt.bytesToValue(n)}while(r>=this.domain);return r}};Y(hc,"BITS",new Uint8Array([1,2,4,8,16,32,64,128]));Y(hc,"INVERSE_BITS",new Uint8Array([254,253,251,247,239,223,191,127]));var ZS=hc,jg=class{constructor(e){Y(this,"_regExp"),this._regExp=e}get regExp(){return this._regExp}createErrorMessage(e){return Re.t("RegExpValidator.stringDoesNotMatchPattern",{ns:Ce,s:e})}validate(e){if(!this._regExp.test(e))throw new RangeError(this.createErrorMessage(e))}},He=(e=>(e[e.None=0]="None",e[e.FirstZero=1]="FirstZero",e[e.AllNumeric=2]="AllNumeric",e))(He||{}),Dg=class In{constructor(t,...n){Y(this,"_characterSet"),Y(this,"_characterSetMap"),Y(this,"_exclusionSupport"),this._characterSet=t,this._characterSetMap=new Map(t.map((r,i)=>[r,i])),this._exclusionSupport=n}get characterSet(){return this._characterSet}get characterSetSize(){return this._characterSet.length}get exclusionSupport(){return this._exclusionSupport}character(t){return this._characterSet[t]}characterIndex(t){return this._characterSetMap.get(t)}characterIndexes(t){return[...t].map(n=>this._characterSetMap.get(n))}static componentToString(t){return t===void 0||typeof t=="string"?t:t()}validateExclusion(t){if(t!==0&&!this._exclusionSupport.includes(t))throw new RangeError(Re.t("CharacterSetValidator.exclusionNotSupported",{ns:Ce,exclusion:t}))}validate(t,n){const r=t.length,i=n==null?void 0:n.minimumLength,o=n==null?void 0:n.maximumLength;if(i!==void 0&&ro)throw new RangeError(Re.t((n==null?void 0:n.component)===void 0?"CharacterSetValidator.lengthMustBeLessThanOrEqualTo":"CharacterSetValidator.lengthOfComponentMustBeLessThanOrEqualTo",{ns:Ce,component:In.componentToString(n==null?void 0:n.component),length:r,maximumLength:o}));const s=this.characterIndexes(t).findIndex(a=>a===void 0);if(s!==-1)throw new RangeError(Re.t((n==null?void 0:n.component)===void 0?"CharacterSetValidator.invalidCharacterAtPosition":"CharacterSetValidator.invalidCharacterAtPositionOfComponent",{ns:Ce,component:In.componentToString(n==null?void 0:n.component),c:t.charAt(s),position:s+((n==null?void 0:n.positionOffset)??0)+1}));if((n==null?void 0:n.exclusion)!==void 0)switch(this.validateExclusion(n.exclusion),n.exclusion){case 1:if(t.startsWith("0"))throw new RangeError(Re.t(n.component===void 0?"CharacterSetValidator.invalidCharacterAtPosition":"CharacterSetValidator.invalidCharacterAtPositionOfComponent",{ns:Ce,component:In.componentToString(n.component),c:"0",position:(n.positionOffset??0)+1}));break;case 2:In.NOT_ALL_NUMERIC_VALIDATOR.validate(t);break}}};Y(Dg,"NOT_ALL_NUMERIC_VALIDATOR",new class extends jg{createErrorMessage(e){return Re.t("CharacterSetValidator.stringMustNotBeAllNumeric",{ns:Ce})}}(/\D/));var JS=Dg,Ts=class et extends JS{constructor(t,...n){super(t,...n),Y(this,"_characterSetSizeN"),Y(this,"_characterSetSizeMinusOneN"),Y(this,"_exclusionDomains"),Y(this,"_allZerosValues"),this._characterSetSizeN=BigInt(this.characterSetSize),this._characterSetSizeMinusOneN=BigInt(this.characterSetSize-1);const r=et.createPowersOf(this.characterSetSize);let i;if(n.includes(1)){i=new Array(et.MAXIMUM_STRING_LENGTH+1),i[0]=0n;for(let s=1;s<=et.MAXIMUM_STRING_LENGTH;s++)i[s]=this._characterSetSizeMinusOneN*r[s-1]}let o;if(n.includes(2)){o=new Array(et.MAXIMUM_STRING_LENGTH+1);const s=BigInt(this.characterIndex("0")),a=new Array(et.MAXIMUM_STRING_LENGTH+1);let l=0n;for(let u=0;u<=et.MAXIMUM_STRING_LENGTH;u++)o[u]=r[u]-et.powerOf10(u),a[u]=l,l=l*this._characterSetSizeN+s;this._allZerosValues=a}this._exclusionDomains=[r,i,o]}static createPowersOf(t){const n=new Array(this.MAXIMUM_STRING_LENGTH+1),r=BigInt(t);for(let i=0,o=1n;i<=this.MAXIMUM_STRING_LENGTH;i++,o*=r)n[i]=o;return n}static powerOf10(t){return this._powersOf10[t]}powerOfSize(t){return this._exclusionDomains[0][t]}allNumericShift(t,n,r){let i;if(n===0){if(!t&&r<10n)throw new RangeError(Re.t("CharacterSetValidator.stringMustNotBeAllNumeric",{ns:Ce}));i=10n}else{const o=this.powerOfSize(n),s=et.powerOf10(n),a=t?o-s:o,l=r/a;l>=10n?i=et.powerOf10(n+1):i=l*s+this.allNumericShift(t,n-1,r-l*a)}return i}validateLength(t){if(t>et.MAXIMUM_STRING_LENGTH)throw new RangeError(Re.t("CharacterSetValidator.lengthMustBeLessThanOrEqualTo",{ns:Ce,length:t,maximumLength:et.MAXIMUM_STRING_LENGTH}))}doCreate(t,n,r,i,o){this.validateLength(t),this.validateExclusion(n);const s=n===2?this._allZerosValues[t]:void 0,a=Is.get(this._exclusionDomains[n][t],r);return o(a,(l,u)=>{let c="";if(t!==0){let d=l;n===2&&d>=s&&(d=d+this.allNumericShift(!0,t,d-s));for(let f=t-1;f>0;f--){const h=d/this._characterSetSizeN;c=this.character(Number(d-h*this._characterSetSizeN))+c,d=h}c=this.character(n===1?Number(d%this._characterSetSizeMinusOneN)+1:Number(d%this._characterSetSizeN))+c}return i!==void 0?i(c,u):c})}create(t,n,r=0,i,o){return this.doCreate(t,r,i,o,(s,a)=>s.forward(BigInt(n),a))}createSequence(t,n,r,i=0,o,s){return this.doCreate(t,i,o,s,(a,l)=>a.forwardSequence(BigInt(n),r,l))}createMultiple(t,n,r=0,i,o){return this.doCreate(t,r,i,o,(s,a)=>s.forwardMultiple(ra.from(n).map(l=>BigInt(l)),a))}value(t,n=0,r){const i=t.length;this.validateLength(i),this.validateExclusion(n);const o=BigInt(this.characterSetSize);let s=this.characterIndexes(t).reduce((a,l,u)=>{if(l===void 0)throw new RangeError(Re.t("CharacterSetValidator.invalidCharacterAtPosition",{ns:Ce,c:t.charAt(u),position:u+1}));let c;if(u===0&&n===1){if(l===0)throw new RangeError(Re.t("CharacterSetValidator.invalidCharacterAtPosition",{ns:Ce,c:"0",position:1}));c=BigInt(l-1)}else c=a*o+BigInt(l);return c},0n);if(n===2){const a=this._allZerosValues[i];s>=a&&(s-=this.allNumericShift(!1,i,s-a))}return Is.get(this._exclusionDomains[n][i],r).reverse(s)}};Y(Ts,"MAXIMUM_STRING_LENGTH",40);Y(Ts,"_powersOf10",Ts.createPowersOf(10));var wn=Ts,pe=new wn(["0","1","2","3","4","5","6","7","8","9"],1),eC=new wn(["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"],1,2),tC=new wn(["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]),nC=new wn(["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],1,2);const Fg=(e,t,n=[])=>{const r=Object.getOwnPropertyDescriptors(t);for(let i of n)delete r[i];Object.defineProperties(e,r)},Vi=(e,t=[e])=>{const n=Object.getPrototypeOf(e);return n===null?t:Vi(n,[...t,n])},rC=(...e)=>{if(e.length===0)return;let t;const n=e.map(r=>Vi(r));for(;n.every(r=>r.length>0);){const r=n.map(o=>o.pop()),i=r[0];if(r.every(o=>o===i))t=i;else break}return t},Rd=(e,t,n=[])=>{var r;const i=(r=rC(...e))!==null&&r!==void 0?r:Object.prototype,o=Object.create(i),s=Vi(i);for(let a of e){let l=Vi(a);for(let u=l.length-1;u>=0;u--){let c=l[u];s.indexOf(c)===-1&&(Fg(o,c,["constructor",...n]),s.push(c))}}return o.constructor=t,o},Xl=e=>e.filter((t,n)=>e.indexOf(t)==n),bg=new WeakMap,iC=e=>bg.get(e),oC=(e,t)=>bg.set(e,t),Pd=(e,t)=>{var n,r;const i=Xl([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)]),o={};for(let s of i)o[s]=Xl([...(n=e==null?void 0:e[s])!==null&&n!==void 0?n:[],...(r=t==null?void 0:t[s])!==null&&r!==void 0?r:[]]);return o},Ld=(e,t)=>{var n,r,i,o;return{property:Pd((n=e==null?void 0:e.property)!==null&&n!==void 0?n:{},(r=t==null?void 0:t.property)!==null&&r!==void 0?r:{}),method:Pd((i=e==null?void 0:e.method)!==null&&i!==void 0?i:{},(o=t==null?void 0:t.method)!==null&&o!==void 0?o:{})}},sC=(e,t)=>{var n,r,i,o,s,a;return{class:Xl([...(n=e==null?void 0:e.class)!==null&&n!==void 0?n:[],...(r=t==null?void 0:t.class)!==null&&r!==void 0?r:[]]),static:Ld((i=e==null?void 0:e.static)!==null&&i!==void 0?i:{},(o=t==null?void 0:t.static)!==null&&o!==void 0?o:{}),instance:Ld((s=e==null?void 0:e.instance)!==null&&s!==void 0?s:{},(a=t==null?void 0:t.instance)!==null&&a!==void 0?a:{})}},aC=new Map,lC=(...e)=>{var t;const n=new Set,r=new Set([...e]);for(;r.size>0;)for(let i of r){const o=Vi(i.prototype).map(u=>u.constructor),s=(t=iC(i))!==null&&t!==void 0?t:[],l=[...o,...s].filter(u=>!n.has(u));for(let u of l)r.add(u);n.add(i),r.delete(i)}return[...n]},uC=(...e)=>{const t=lC(...e).map(n=>aC.get(n)).filter(n=>!!n);return t.length==0?{}:t.length==1?t[0]:t.reduce((n,r)=>sC(n,r))};function ia(...e){var t,n,r;const i=e.map(a=>a.prototype);function o(...a){for(const l of e)Fg(this,new l(...a))}o.prototype=Rd(i,o),Object.setPrototypeOf(o,Rd(e,null,["prototype"]));let s=o;{const a=uC(...e);for(let l of(t=a==null?void 0:a.class)!==null&&t!==void 0?t:[]){const u=l(s);u&&(s=u)}_d((n=a==null?void 0:a.static)!==null&&n!==void 0?n:{},s),_d((r=a==null?void 0:a.instance)!==null&&r!==void 0?r:{},s.prototype)}return oC(s,e),s}const _d=(e,t)=>{const n=e.property,r=e.method;if(n)for(let i in n)for(let o of n[i])o(t,i);if(r)for(let i in r)for(let o of r[i])o(t,i,Object.getOwnPropertyDescriptor(t,i))};var cC=Object.defineProperty,fC=(e,t,n)=>t in e?cC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,b=(e,t,n)=>fC(e,typeof t!="symbol"?t+"":t,n),mc=new wn(["!",'"',"%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","_","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],He.AllNumeric),Vg=new wn(["#","-","/","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],He.AllNumeric),dC={Check:{lengthOfStringForCheckCharacterPairMustBeLessThanOrEqualTo:"Length {{length}} of string for check character pair must be less than or equal to {{maximumLength}}"},IdentificationKey:{identificationKeyTypeLength:"{{identificationKeyType}} must be {{length}} digits long",invalidCheckDigit:"Invalid check digit",invalidGTINLength:"GTIN must be 13, 12, 8, or 14 digits long",invalidGTIN14Length:"GTIN must be 14 digits long",invalidZeroSuppressedGTIN12:"Invalid zero-suppressed GTIN-12",invalidZeroSuppressibleGTIN12:"GTIN-12 not zero-suppressible",invalidZeroSuppressedGTIN12AsGTIN13:"Invalid zero-suppressed GTIN-12 as GTIN-13",invalidZeroSuppressedGTIN12AsGTIN14:"Invalid zero-suppressed GTIN-12 as GTIN-14",invalidGTIN13AtRetail:"GTIN-13 at retail consumer trade item level can't start with zero",invalidGTINAtRetail:"GTIN not supported at retail consumer trade item level",invalidGTINAtOtherThanRetail:"GTIN not supported at other than retail consumer trade item level",indicatorDigit:"indicator digit",serialComponent:"serial component",reference:"reference",referenceCantBeAllNumeric:"Reference can't be all-numeric",invalidCheckCharacterPair:"Invalid check character pair"},Prefix:{gs1CompanyPrefix:"GS1 Company Prefix",upcCompanyPrefix:"U.P.C. Company Prefix",gs18Prefix:"GS1-8 Prefix",gs1CompanyPrefixCantStartWith0:`GS1 Company Prefix can't start with "0"`,gs1CompanyPrefixCantStartWith00000:`GS1 Company Prefix can't start with "00000"`,gs1CompanyPrefixCantStartWith000000:`GS1 Company Prefix can't start with "000000"`,upcCompanyPrefixCantStartWith0000:`U.P.C. Company Prefix can't start with "0000"`,gs18PrefixCantStartWith0:`GS1-8 Prefix can't start with "0"`,identificationKeyTypeNotSupportedByGS18Prefix:"{{identificationKeyType}} not supported by GS1-8 Prefix"}},K="aidct_gs1";Wu("en",K,dC);var H=Yh,pC=[0,3,6,9,12,15,18,21,24,27];function gc(e,t){let n=(t.length+Number(e))%2===0;return pe.characterIndexes(t).reduce((r,i,o)=>{if(i===void 0)throw new RangeError(`Invalid character '${t.charAt(o)}' at position ${o+1}`);return n=!n,r+(n?pC[i]:i)},0)}function Ql(e){return pe.character(9-(gc(!1,e)+9)%10)}function zg(e){return gc(!0,e)%10===0}var Ba=[107,103,101,97,89,83,79,73,71,67,61,59,53,47,43,41,37,31,29,23,19,17,13,11,7,5,3,2],Ad=["2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z"];function Gg(e){const t=Ba.length-e.length;if(t<0)throw new RangeError(H.t("Check.lengthOfStringForCheckCharacterPairMustBeLessThanOrEqualTo",{ns:K,length:e.length,maximumLength:Ba.length}));const n=mc.characterIndexes(e).reduce((i,o,s)=>{if(o===void 0)throw new RangeError(`Invalid character '${e.charAt(s)}' at position ${s+1}`);return i+o*Ba[t+s]},0)%1021,r=n%32;return Ad[(n-r)/32]+Ad[r]}function hC(e){const t=e.length-2;return Gg(e.substring(0,t))===e.substring(t)}var Ae=(e=>(e.GTIN="GTIN",e.GLN="GLN",e.SSCC="SSCC",e.GRAI="GRAI",e.GIAI="GIAI",e.GSRN="GSRN",e.GDTI="GDTI",e.GINC="GINC",e.GSIN="GSIN",e.GCN="GCN",e.CPID="CPID",e.GMN="GMN",e))(Ae||{}),_t=(e=>(e[e.GS1CompanyPrefix=0]="GS1CompanyPrefix",e[e.UPCCompanyPrefix=1]="UPCCompanyPrefix",e[e.GS18Prefix=2]="GS18Prefix",e))(_t||{}),ql=(e=>(e[e.Numeric=0]="Numeric",e[e.AI82=1]="AI82",e[e.AI39=2]="AI39",e))(ql||{}),Os=class Bg{constructor(t,n,r,i){b(this,"_identificationKeyType"),b(this,"_prefixType"),b(this,"_length"),b(this,"_referenceCharacterSet"),b(this,"_referenceValidator"),this._identificationKeyType=t,this._prefixType=n,this._length=r,this._referenceCharacterSet=i,this._referenceValidator=Bg.validatorFor(i)}static validatorFor(t){let n;switch(t){case 0:n=pe;break;case 1:n=mc;break;case 2:n=Vg;break}return n}get identificationKeyType(){return this._identificationKeyType}get prefixType(){return this._prefixType}get length(){return this._length}get referenceCharacterSet(){return this._referenceCharacterSet}get referenceValidator(){return this._referenceValidator}static padIdentificationKey(t,n){return(n==null?void 0:n.positionOffset)===void 0?t:"0".repeat(n.positionOffset).concat(t)}validatePrefix(t,n){Tn.validatePrefix(this.prefixType,!0,!1,t,!0,this.referenceCharacterSet===0,n)}},Ug=class extends Os{constructor(e,t,n,r){super(e,t,n,0),b(this,"_leaderType"),b(this,"_prefixPosition"),this._leaderType=r,this._prefixPosition=+(this.leaderType===2)}get leaderType(){return this._leaderType}validate(e,t){if(this._prefixPosition===0?super.validatePrefix(e,t==null?void 0:t.positionOffset):super.validatePrefix(e.substring(this._prefixPosition),(t==null?void 0:t.positionOffset)===void 0?this._prefixPosition:t.positionOffset+this._prefixPosition),e.length!==this.length)throw new RangeError(H.t("IdentificationKey.identificationKeyTypeLength",{ns:K,identificationKeyType:this.identificationKeyType,length:this.length}));if(!zg(Os.padIdentificationKey(e,t)))throw new RangeError(H.t("IdentificationKey.invalidCheckDigit",{ns:K}))}},Go=(e=>(e[e.Any=0]="Any",e[e.RetailConsumer=1]="RetailConsumer",e[e.OtherThanRetailConsumer=2]="OtherThanRetailConsumer",e))(Go||{}),Kg=class Yl extends Ug{constructor(t){let n;switch(t){case 13:n=0;break;case 12:n=1;break;case 8:n=2;break;default:throw new Error("Not supported")}super("GTIN",n,t,1)}get gtinType(){return this.length}validatePrefix(t,n){Tn.validatePrefix(this.prefixType,!1,!1,t,!0,!0,n)}static zeroExpand(t){pe.validate(t,Yl.ZERO_SUPPRESSED_GTIN12_VALIDATION);const n=Array.from(t);let r;if(n[0]==="0"&&(n[6]>="5"&&n[5]!=="0"?r=`0${n[1]}${n[2]}${n[3]}${n[4]}${n[5]}0000${n[6]}${n[7]}`:n[6]==="4"&&n[4]!=="0"?r=`0${n[1]}${n[2]}${n[3]}${n[4]}00000${n[5]}${n[7]}`:n[6]<="2"?r=`0${n[1]}${n[2]}${n[6]}0000${n[3]}${n[4]}${n[5]}${n[7]}`:n[6]==="3"&&n[3]>="3"&&(r=`0${n[1]}${n[2]}${n[3]}00000${n[4]}${n[5]}${n[7]}`)),r===void 0)throw new RangeError(H.t("IdentificationKey.invalidZeroSuppressedGTIN12",{ns:K}));return vc.validate(r),r}static validateAny(t,n=0){let r=t,i;switch(t.length){case 13:if(t.startsWith("0"))throw new RangeError(H.t("IdentificationKey.invalidGTIN13AtRetail",{ns:K}));Tn.validatePrefix(0,!1,!1,t,!0,!0),i=0;break;case 12:Tn.validatePrefix(1,!1,!1,t,!0,!0),i=0;break;case 8:t.startsWith("0")?r=Yl.zeroExpand(t):Tn.validatePrefix(2,!1,!1,t,!0,!0),i=1;break;case 14:Tn.validatePrefix(0,!0,!0,t.substring(1),!0,!0),i=2;break;default:throw new RangeError(H.t("IdentificationKey.invalidGTINLength",{ns:K}))}if(!zg(r))throw new RangeError(H.t("IdentificationKey.invalidCheckDigit",{ns:K}));if(n!==0&&i!==0&&i!==n)throw new RangeError(H.t(n===1?"IdentificationKey.invalidGTINAtRetail":"IdentificationKey.invalidGTINAtOtherThanRetail",{ns:K}))}static validateGTIN14(t){if(t.length!==14)throw new RangeError(H.t("IdentificationKey.invalidGTIN14Length",{ns:K}));Zi.validateAny(t)}};b(Kg,"ZERO_SUPPRESSED_GTIN12_VALIDATION",{minimumLength:8,maximumLength:8});var Kn=Kg,Dr=class extends Ug{constructor(e,t,n=0){super(e,0,t,n)}},oa=class Hg extends Dr{constructor(t,n,r,i){super(t,n,0),b(this,"_serialComponentLength"),b(this,"_serialComponentCharacterSet"),b(this,"_serialComponentValidation"),b(this,"_serialComponentValidator"),this._serialComponentLength=r,this._serialComponentCharacterSet=i,this._serialComponentValidation={minimumLength:1,maximumLength:r,component:()=>H.t("IdentificationKey.serialComponent",{ns:K})},this._serialComponentValidator=Hg.validatorFor(i)}get serialComponentLength(){return this._serialComponentLength}get serialComponentCharacterSet(){return this._serialComponentCharacterSet}get serialComponentValidation(){return this._serialComponentValidation}get serialComponentValidator(){return this._serialComponentValidator}validate(t,n){super.validate(t.substring(0,this.length),n),t.length>this.length&&this.serialComponentValidator.validate(t.substring(this.length),this._serialComponentValidation)}},Wg=class Xg extends Os{constructor(t,n,r,i=!1){super(t,0,n,r),b(this,"_requiresCheckCharacterPair"),this._requiresCheckCharacterPair=i}get requiresCheckCharacterPair(){return this._requiresCheckCharacterPair}validate(t,n){const r=this.requiresCheckCharacterPair?t.substring(0,t.length-2):t;if(super.validatePrefix(r,n==null?void 0:n.positionOffset),!this.requiresCheckCharacterPair)this.referenceValidator.validate(t,{maximumLength:this.length,positionOffset:n==null?void 0:n.positionOffset});else if(!hC(Os.padIdentificationKey(t,n)))throw new RangeError(H.t("IdentificationKey.invalidCheckCharacterPair",{ns:K}));(n==null?void 0:n.exclusion)===He.AllNumeric&&Xg.NOT_ALL_NUMERIC_VALIDATOR.validate(r)}};b(Wg,"NOT_ALL_NUMERIC_VALIDATOR",new class extends jg{createErrorMessage(e){return H.t("IdentificationKey.referenceCantBeAllNumeric",{ns:K})}}(/\D/));var Yi=Wg,mC=new Kn(13),vc=new Kn(12),gC=new Kn(8),vC=[mC,vc,gC],Qg=new Dr("GLN",13),qg=new Dr("SSCC",18,2),Yg=new oa("GRAI",13,16,1),Zg=new Yi("GIAI",30,1),Jg=new Dr("GSRN",18),ev=new oa("GDTI",13,17,1),tv=new Yi("GINC",30,1),nv=new Dr("GSIN",17),rv=new oa("GCN",13,12,0),iv=new Yi("CPID",30,2),ov=new Yi("GMN",25,1,!0),sv=class{constructor(){b(this,"_prefixManager"),b(this,"_referenceLength")}init(e,t,n){if(this._prefixManager!==void 0)throw new Error("Not supported");this._prefixManager=e,this._referenceLength=this.length-t.length-n}get referenceCreator(){return this.referenceValidator}get prefixManager(){return this._prefixManager}get prefix(){return this.prefixManager.gs1CompanyPrefix}get referenceLength(){return this._referenceLength}},yc=class Bo extends sv{constructor(){super(...arguments),b(this,"_capacity"),b(this,"_tweak",0n)}init(t,n){super.init(t,n,1),this._capacity=Number(wn.powerOf10(this.referenceLength))}get capacity(){return this._capacity}get tweak(){return this._tweak}set tweak(t){this._tweak=t}buildIdentificationKey(t){const n=this.leaderType===2?t.substring(0,1)+this.prefix+t.substring(1):this.prefix+t;return n+Ql(n)}create(t,n=!1){return pe.create(this.referenceLength,t,He.None,n?this.tweak:void 0,r=>this.buildIdentificationKey(r))}createSequence(t,n,r=!1){return pe.createSequence(this.referenceLength,t,n,He.None,r?this.tweak:void 0,i=>this.buildIdentificationKey(i))}createMultiple(t,n=!1){return pe.createMultiple(this.referenceLength,t,He.None,n?this.tweak:void 0,r=>this.buildIdentificationKey(r))}static*createAllPartial(t,n,r,i,o){if(n===0)yield t+pe.character(9-(o+9)%10);else{const s=n-1;let a=o;if(r!==0)for(const l of pe.characterSet)yield*Bo.createAllPartial(l+t,s,0,i,a),a+=r;else{const l=4-i;for(const u of pe.characterSet)yield*Bo.createAllPartial(t+u,s,0,l,a),a+=i}}}createAll(){const t=this.leaderType===2,n=this.prefix,r=this.referenceLength,i=3-2*((r+1-Number(t))%2);return Bo.createAllPartial(n,r,t?3-2*this.length%2:0,i,gc(i===3,n))}},xc=class Xt extends ia(Kn,yc){constructor(t,n){super(n),this.init(t,t.prefix)}get prefix(){return this.prefixManager.prefix}buildGTIN14(t,n){const r=t+this.prefixManager.gs1CompanyPrefix+n;return r+Ql(r)}createGTIN14(t,n,r=!1){return pe.validate(t,Xt.REQUIRED_INDICATOR_DIGIT_VALIDATION),pe.create(13-this.prefixManager.gs1CompanyPrefix.length-1,n,He.None,r?this.tweak:void 0,i=>this.buildGTIN14(t,i))}createGTIN14Sequence(t,n,r,i=!1){return pe.validate(t,Xt.REQUIRED_INDICATOR_DIGIT_VALIDATION),pe.createSequence(13-this.prefixManager.gs1CompanyPrefix.length-1,n,r,He.None,i?this.tweak:void 0,o=>this.buildGTIN14(t,o))}createGTIN14Multiple(t,n,r=!1){return pe.validate(t,Xt.REQUIRED_INDICATOR_DIGIT_VALIDATION),pe.createMultiple(13-this.prefixManager.gs1CompanyPrefix.length-1,n,He.None,r?this.tweak:void 0,i=>this.buildGTIN14(t,i))}static zeroSuppress(t){vc.validate(t);const n=Array.from(t);let r;if(n[0]==="0"&&n[6]==="0"&&n[7]==="0"&&(n[10]>="5"&&n[8]==="0"&&n[9]==="0"&&n[5]!=="0"?r=`0${n[1]}${n[2]}${n[3]}${n[4]}${n[5]}${n[10]}${n[11]}`:n[5]==="0"&&n[8]==="0"&&n[9]==="0"&&n[4]!=="0"?r=`0${n[1]}${n[2]}${n[3]}${n[4]}${n[10]}4${n[11]}`:n[3]<="2"&&n[4]==="0"&&n[5]==="0"?r=`0${n[1]}${n[2]}${n[8]}${n[9]}${n[10]}${n[3]}${n[11]}`:n[3]>="3"&&n[4]==="0"&&n[5]==="0"&&n[8]==="0"&&(r=`0${n[1]}${n[2]}${n[3]}${n[9]}${n[10]}3${n[11]}`)),r===void 0)throw new RangeError(H.t("IdentificationKey.invalidZeroSuppressibleGTIN12",{ns:K}));return r}static convertToGTIN14(t,n){Xt.validateAny(n),pe.validate(t,Xt.OPTIONAL_INDICATOR_DIGIT_VALIDATION);const r=n.length;let i="0".repeat(14-r)+n;if(t.length!==0&&t!==i.charAt(0)){const o=t+i.substring(1,13);i=o+Ql(o)}return i}static normalize(t){const n=t.length;let r;switch(n){case 13:if(!t.startsWith("0"))r=t;else if(!t.startsWith("00000"))r=t.substring(1);else if(!t.startsWith("000000"))r=t.substring(5);else throw new RangeError(H.t("IdentificationKey.invalidZeroSuppressedGTIN12AsGTIN13",{ns:K}));break;case 12:r=t;break;case 8:t.charAt(0)!=="0"?r=t:r=Xt.zeroExpand(t);break;case 14:if(!t.startsWith("0"))r=t;else if(!t.startsWith("00"))r=t.substring(1);else if(!t.startsWith("000000"))r=t.substring(2);else if(!t.startsWith("0000000"))r=t.substring(6);else throw new RangeError(H.t("IdentificationKey.invalidZeroSuppressedGTIN12AsGTIN14",{ns:K}));break;default:throw new RangeError(H.t("IdentificationKey.invalidGTINLength",{ns:K}))}return Xt.validateAny(r),r}};b(xc,"REQUIRED_INDICATOR_DIGIT_VALIDATION",{minimumLength:1,maximumLength:1,component:()=>H.t("IdentificationKey.indicatorDigit",{ns:K})});b(xc,"OPTIONAL_INDICATOR_DIGIT_VALIDATION",{minimumLength:0,maximumLength:1,component:()=>H.t("IdentificationKey.indicatorDigit",{ns:K})});var Zi=xc,yC=class extends ia(Dr,yc){constructor(e,t,n,r=0){super(t,n,r),this.init(e,e.gs1CompanyPrefix)}},xC=class extends ia(oa,yc){constructor(e,t,n,r,i){super(t,n,r,i),this.init(e,e.gs1CompanyPrefix)}get serialComponentCreator(){return this.serialComponentValidator}concatenateValidated(e,t){return this.serialComponentCreator.validate(t,this.serialComponentValidation),e+t}concatenateValidatedMultiple(e,t){return ra.from(t).map(n=>this.concatenateValidated(e,n))}createSerialized(e,t,n=!1){return this.concatenateValidated(this.create(e,n),t)}createMultipleSerialized(e,t,n=!1){return this.concatenateValidatedMultiple(this.create(e,n),t)}concatenate(e,t){return this.validate(e),this.concatenateValidated(e,t)}concatenateMultiple(e,t){return this.validate(e),this.concatenateValidatedMultiple(e,t)}},wC=class extends ia(Yi,sv){constructor(e,t,n,r,i=!1){super(t,n,r,i),b(this,"_referenceValidation"),this.init(e,e.gs1CompanyPrefix,2*Number(i)),this._referenceValidation={minimumLength:1,maximumLength:this.referenceLength,component:()=>H.t("IdentificationKey.reference",{ns:K})}}create(e){this.referenceValidator.validate(e,this._referenceValidation);const t=this.prefix+e;return this.requiresCheckCharacterPair?t+Gg(t):t}createMultiple(e){return ra.from(e).map(t=>this.create(t))}},re=class ft{constructor(t){b(this,"_prefixType"),b(this,"_prefix"),b(this,"_gs1CompanyPrefix"),b(this,"_upcCompanyPrefix"),b(this,"_gs18Prefix"),b(this,"_tweakFactor",0n),b(this,"_identificationKeyCreatorsMap",new Map),this._gs1CompanyPrefix=t,t.startsWith("0")?t.startsWith("00000")?(this._prefixType=2,this._gs18Prefix=t.substring(5),this._prefix=this._gs18Prefix):(this._prefixType=1,this._upcCompanyPrefix=t.substring(1),this._prefix=this._upcCompanyPrefix):(this._prefixType=0,this._prefix=this._gs1CompanyPrefix),this.resetTweakFactor()}get prefixType(){return this._prefixType}get prefix(){return this._prefix}get gs1CompanyPrefix(){return this._gs1CompanyPrefix}get upcCompanyPrefix(){return this._upcCompanyPrefix}get gs18Prefix(){return this._gs18Prefix}setCreatorTweak(t){const n=ft.CREATOR_TWEAK_FACTORS_MAP.get(t.identificationKeyType);n!==void 0&&(t.tweak=this.tweakFactor*n)}get tweakFactor(){return this._tweakFactor}set tweakFactor(t){const n=BigInt(t);this._tweakFactor!==n&&(this._tweakFactor=n,this._identificationKeyCreatorsMap.forEach(r=>{this.setCreatorTweak(r)}))}resetTweakFactor(){this.tweakFactor=BigInt("1"+this.gs1CompanyPrefix)}static get(t,n){ft.validatePrefix(t,!0,!0,n);let r;switch(t){case 0:r=n;break;case 1:r="0"+n;break;case 2:r="00000"+n;break}let i=ft.PREFIX_MANAGERS_MAP.get(r);return i===void 0&&(i=new ft(r),ft.PREFIX_MANAGERS_MAP.set(r,i)),i}static validatePrefix(t,n,r,i,o=!1,s=!1,a){let l;switch(t){case 0:if(!i.startsWith("0"))l=ft.GS1_COMPANY_PREFIX_VALIDATION;else if(i.startsWith("00000")){if(i.startsWith("000000"))throw new RangeError(H.t("Prefix.gs1CompanyPrefixCantStartWith000000",{ns:K}));if(!r)throw new RangeError(H.t("Prefix.gs1CompanyPrefixCantStartWith00000",{ns:K}));l=ft.GS1_8_PREFIX_AS_GS1_COMPANY_PREFIX_VALIDATION}else{if(!n)throw new RangeError(H.t("Prefix.gs1CompanyPrefixCantStartWith0",{ns:K}));l=ft.UPC_COMPANY_PREFIX_AS_GS1_COMPANY_PREFIX_VALIDATION}break;case 1:if(i.startsWith("0000"))throw new RangeError(H.t("Prefix.upcCompanyPrefixCantStartWith0000",{ns:K}));l=ft.UPC_COMPANY_PREFIX_VALIDATION;break;case 2:if(i.startsWith("0"))throw new RangeError(H.t("Prefix.gs18PrefixCantStartWith0",{ns:K}));l=ft.GS1_8_PREFIX_VALIDATION;break}const u={...l,positionOffset:a};o?s||pe.validate(i.substring(0,Math.min(u.minimumLength,i.length-1)),u):pe.validate(i,u)}getIdentificationKeyCreator(t,n){let r=this._identificationKeyCreatorsMap.get(t);if(r===void 0){if(this.prefixType===2&&t!=="GTIN")throw new RangeError(H.t("Prefix.identificationKeyTypeNotSupportedByGS18Prefix",{ns:K,identificationKeyType:t}));r=n(),this.setCreatorTweak(r)}return r}getNonGTINNumericIdentificationKeyCreator(t){return this.getIdentificationKeyCreator(t.identificationKeyType,()=>new yC(this,t.identificationKeyType,t.length,t.leaderType))}getSerializableNumericIdentificationKeyCreator(t){return this.getIdentificationKeyCreator(t.identificationKeyType,()=>new xC(this,t.identificationKeyType,t.length,t.serialComponentLength,t.serialComponentCharacterSet))}getNonNumericIdentificationKeyCreator(t){return this.getIdentificationKeyCreator(t.identificationKeyType,()=>new wC(this,t.identificationKeyType,t.length,t.referenceCharacterSet,t.requiresCheckCharacterPair))}get gtinCreator(){return this.getIdentificationKeyCreator("GTIN",()=>{let t;switch(this.prefixType){case 0:t=13;break;case 1:t=12;break;case 2:t=8;break}return new Zi(this,t)})}get glnCreator(){return this.getNonGTINNumericIdentificationKeyCreator(Qg)}get ssccCreator(){return this.getNonGTINNumericIdentificationKeyCreator(qg)}get graiCreator(){return this.getSerializableNumericIdentificationKeyCreator(Yg)}get giaiCreator(){return this.getNonNumericIdentificationKeyCreator(Zg)}get gsrnCreator(){return this.getNonGTINNumericIdentificationKeyCreator(Jg)}get gdtiCreator(){return this.getSerializableNumericIdentificationKeyCreator(ev)}get gincCreator(){return this.getNonNumericIdentificationKeyCreator(tv)}get gsinCreator(){return this.getNonGTINNumericIdentificationKeyCreator(nv)}get gcnCreator(){return this.getSerializableNumericIdentificationKeyCreator(rv)}get cpidCreator(){return this.getNonNumericIdentificationKeyCreator(iv)}get gmnCreator(){return this.getNonNumericIdentificationKeyCreator(ov)}};b(re,"PREFIX_MANAGERS_MAP",new Map);b(re,"GS1_COMPANY_PREFIX_MINIMUM_LENGTH",4);b(re,"GS1_COMPANY_PREFIX_MAXIMUM_LENGTH",12);b(re,"UPC_COMPANY_PREFIX_MINIMUM_LENGTH",6);b(re,"UPC_COMPANY_PREFIX_MAXIMUM_LENGTH",11);b(re,"GS1_8_PREFIX_MINIMUM_LENGTH",2);b(re,"GS1_8_PREFIX_MAXIMUM_LENGTH",7);b(re,"GS1_COMPANY_PREFIX_VALIDATION",{minimumLength:re.GS1_COMPANY_PREFIX_MINIMUM_LENGTH,maximumLength:re.GS1_COMPANY_PREFIX_MAXIMUM_LENGTH,component:()=>H.t("Prefix.gs1CompanyPrefix",{ns:K})});b(re,"UPC_COMPANY_PREFIX_AS_GS1_COMPANY_PREFIX_VALIDATION",{minimumLength:re.UPC_COMPANY_PREFIX_MINIMUM_LENGTH+1,maximumLength:re.UPC_COMPANY_PREFIX_MAXIMUM_LENGTH+1,component:()=>H.t("Prefix.gs1CompanyPrefix",{ns:K})});b(re,"GS1_8_PREFIX_AS_GS1_COMPANY_PREFIX_VALIDATION",{minimumLength:re.GS1_8_PREFIX_MINIMUM_LENGTH+5,maximumLength:re.GS1_8_PREFIX_MAXIMUM_LENGTH+5,component:()=>H.t("Prefix.gs1CompanyPrefix",{ns:K})});b(re,"UPC_COMPANY_PREFIX_VALIDATION",{minimumLength:re.UPC_COMPANY_PREFIX_MINIMUM_LENGTH,maximumLength:re.UPC_COMPANY_PREFIX_MAXIMUM_LENGTH,component:()=>H.t("Prefix.upcCompanyPrefix",{ns:K})});b(re,"GS1_8_PREFIX_VALIDATION",{minimumLength:re.GS1_8_PREFIX_MINIMUM_LENGTH,maximumLength:re.GS1_8_PREFIX_MAXIMUM_LENGTH,component:()=>H.t("Prefix.gs18Prefix",{ns:K})});b(re,"CREATOR_TWEAK_FACTORS_MAP",new Map([["GTIN",1987n],["GLN",4241n],["SSCC",8087n],["GRAI",3221n],["GSRN",2341n],["GDTI",7333n],["GSIN",5623n],["GCN",6869n]]));var Tn=re;class av extends jr{constructor(){super(...arguments);En(this,"state",{errorsMap:new Map});En(this,"_formElement")}get resultElementName(){}get isValid(){return this.state.errorsMap.size===0}textElement(n,r,i){return m.jsxs(_e.Group,{className:"mb-3",controlId:n,children:[m.jsx(_e.Label,{column:"lg",sm:2,children:r}),m.jsx(_e.Control,{type:"text",defaultValue:this.context.inputValues.get(n),isInvalid:this.state.errorsMap.has(n)}),m.jsx(_e.Text,{muted:!0,children:i}),m.jsx(_e.Control.Feedback,{type:"invalid",children:this.state.errorsMap.get(n)})]})}enumElement(n,r,i,o,s){const a=this.context.inputValues.get(n),l=a!==void 0?Number(a):i[0];return m.jsx(_e.Group,{className:"mb-3",children:i.length===1?m.jsx(_e.Control,{id:n,type:"hidden",defaultValue:l}):m.jsxs(m.Fragment,{children:[m.jsx(zo,{className:"justify-content-center",children:m.jsx(_e.Label,{column:"lg",sm:2,children:r})}),i.map(u=>{const c=`${n}-${u}`;return m.jsx(_e.Check,{inline:!0,id:c,name:n,label:o[u],type:"radio",value:u,defaultChecked:u===l},c)}),m.jsx(zo,{children:m.jsx(_e.Text,{muted:!0,children:s})})]})})}booleanElement(n,r,i){const o=this.context.inputValues.get(n)==="true";return m.jsxs(_e.Group,{className:"mb-3",controlId:n,children:[m.jsx(_e.Check,{inline:!0,name:n,label:r,type:"checkbox",defaultChecked:o}),m.jsx(zo,{children:m.jsx(_e.Text,{muted:!0,children:i})}),m.jsx(_e.Control.Feedback,{type:"invalid",children:this.state.errorsMap.get(n)})]})}render(){const n=this.state.errorsMap,r=this.state.result;return m.jsx(Co,{children:m.jsxs(Co.Body,{children:[m.jsx(Co.Title,{children:this.title}),m.jsx(Co.Subtitle,{className:"mb-2 text-muted",children:this.subtitle}),m.jsxs(_e,{noValidate:!0,onSubmit:this.onSubmit.bind(this),onReset:this.onReset.bind(this),children:[this.renderParameters(),m.jsx(ws,{className:"m-3",variant:"primary",type:"submit",children:this.subtitle}),m.jsx(ws,{className:"m-3",variant:"secondary",type:"reset",children:"Reset"}),m.jsx(rd,{className:"mb-3",variant:"danger",hidden:!n.has(""),children:n.get("")}),m.jsx(rd,{className:"mb-3",variant:"success",hidden:r===void 0,children:typeof r=="object"?m.jsx(Sd,{children:Array.from(r).map((i,o)=>m.jsx(Sd.Item,{variant:"success",children:i},`s-${o}`))}):r})]})]})})}getInputElement(n){return this._formElement.elements.namedItem(n)}addError(n,r){this.state.errorsMap.has(n)||(n!==""&&this.getInputElement(n).setCustomValidity(r),this.state.errorsMap.set(n,r))}optionalStringInput(n){const r=this.getInputElement(n).value;return this.context.inputValues.set(n,r),r}requiredStringInput(n){const r=this.optionalStringInput(n).trim();return r===""&&this.addError(n,"Value is required."),r}optionalNumberInput(n){const r=this.optionalStringInput(n);let i;return r!==""&&(i=parseInt(r),Number.isNaN(i)&&this.addError(n,"Value is not a number.")),i}requiredNumberInput(n){let r=this.optionalNumberInput(n);return r===void 0&&(this.addError(n,"Value is required."),r=0),r}enumInput(n){return this.requiredNumberInput(n)}booleanInput(n){const r=this.getInputElement(n).checked;return this.context.inputValues.set(n,String(r)),r}confirmCreateStrings(n){return n<=1e3||confirm(`This will create ${n.toLocaleString()} identification keys. -Are you sure?`)}onSubmit(n){n.preventDefault(),this._formElement=n.currentTarget,this.state.errorsMap.clear();let r;try{r=this.processForm()}catch(i){i instanceof Error?this.addError("",i.message):this.addError("",`Unknown error: ${String(i)}`)}this.resultElementName!==void 0&&typeof r=="string"&&this.context.inputValues.set(this.resultElementName,r),this.setState(i=>({...i,result:r}))}onReset(n){n.preventDefault(),this.state.errorsMap.clear(),this.setState(r=>({...r,result:void 0}))}}class wc extends av{get title(){return this.props.identificationKeyType}getValidator(t){const n=this.props.validators;return Array.isArray(n)?n[t]:n}getCreator(t,n){return this.props.creatorCallback(Tn.get(t,n))}prefixTypeElement(t){let n;return t?n=[_t.GS1CompanyPrefix]:this.props.identificationKeyType===Ae.GTIN?n=[_t.GS1CompanyPrefix,_t.UPCCompanyPrefix,_t.GS18Prefix]:n=[_t.GS1CompanyPrefix,_t.UPCCompanyPrefix],this.enumElement("prefixType","Prefix type",n,["GS1 Company Prefix","U.P.C. Company Prefix","GS1-8 Prefix"],"Prefix type underlying the identification key.")}prefixTypeInput(){return this.enumInput("prefixType")}prefixElement(){return this.textElement("prefix","Prefix","Prefix underlying the identification key.")}prefixInput(){return this.requiredStringInput("prefix")}identificationKeyElement(t,n){return this.textElement("identificationKey",t??this.props.identificationKeyType,n??`${this.props.identificationKeyType} to be validated.`)}identificationKeyInput(){return this.requiredStringInput("identificationKey")}valueElement(){return this.textElement("value","Value","Numeric value to be converted to reference.")}valueInput(){return this.requiredNumberInput("value")}}class SC extends wc{get subtitle(){return"Validate"}renderParameters(){const t=this.getValidator(_t.GS1CompanyPrefix).referenceCharacterSet===ql.Numeric;return m.jsxs(m.Fragment,{children:[this.prefixTypeElement(this.props.identificationKeyType!==Ae.GTIN),this.identificationKeyElement(),this.enumElement("exclusion","Exclusion",t?[He.None]:[He.None,He.AllNumeric],["None","First zero","All numeric"],"Type of reference to be excluded from validation.")]})}processForm(){const t=this.prefixTypeInput(),n=this.identificationKeyInput(),r=this.enumInput("exclusion");if(this.isValid){const i=this.getValidator(t),s=i.referenceCharacterSet===ql.Numeric?{}:{exclusion:r};i.validate(n,s)}return this.isValid?"✓":void 0}}class lv extends jr{menuItems(){return m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(SC,{...this.props},`${this.props.identificationKeyType}/Validate`))},children:"Validate"})}render(){return m.jsx(ue,{title:this.props.identificationKeyType,children:this.menuItems()})}}class Tt extends wc{sparseElement(){return this.booleanElement("sparse","Sparse","If true, the value is mapped to a sparse sequence resistant to discovery.")}sparseInput(){return this.booleanInput("sparse")}}class CC extends Tt{get subtitle(){return"Create"}get resultElementName(){return"identificationKey"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.prefixTypeElement(!1),this.prefixElement(),this.valueElement(),this.sparseElement()]})}processForm(){const t=this.prefixTypeInput(),n=this.prefixInput(),r=this.valueInput(),i=this.sparseInput();return this.isValid?this.getCreator(t,n).create(r,i):void 0}}class EC extends Tt{get subtitle(){return"Create sequence"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.prefixTypeElement(!1),this.prefixElement(),this.textElement("startValue","Start value","Start of numeric values to be converted to references."),this.textElement("count","Count","Count of numeric values to be converted to references."),this.sparseElement()]})}processForm(){const t=this.prefixTypeInput(),n=this.prefixInput(),r=this.requiredNumberInput("startValue"),i=this.requiredNumberInput("count"),o=this.sparseInput();return this.isValid&&this.confirmCreateStrings(i)?this.getCreator(t,n).createSequence(r,i,o):void 0}}class NC extends Tt{get subtitle(){return"Create all"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.prefixTypeElement(!1),this.prefixElement()]})}processForm(){const t=this.prefixTypeInput(),n=this.prefixInput();let r;if(this.isValid){const i=this.getCreator(t,n);this.confirmCreateStrings(i.capacity)&&(r=i.createAll())}return r}}class Sc extends lv{menuItems(){return m.jsxs(m.Fragment,{children:[super.menuItems(),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(CC,{...this.props},`${this.props.identificationKeyType}/Create`))},children:"Create"}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(EC,{...this.props},`${this.props.identificationKeyType}/Create sequence`))},children:"Create sequence"}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(NC,{...this.props},`${this.props.identificationKeyType}/Create all`))},children:"Create all"})]})}}class kC extends Tt{get subtitle(){return"Zero expand GTIN-12"}get resultElementName(){return"identificationKey"}renderParameters(){return m.jsx(m.Fragment,{children:this.textElement("zeroSuppressedGTIN12","Zero-suppressed GTIN-12","Zero-suppressed GTIN-12 to be expanded.")})}processForm(){const t=this.requiredStringInput("zeroSuppressedGTIN12");return this.isValid?Kn.zeroExpand(t):void 0}}class IC extends Tt{get subtitle(){return"Zero suppress GTIN-12"}get resultElementName(){return"zeroSuppressedGTIN12"}renderParameters(){return m.jsx(m.Fragment,{children:this.identificationKeyElement("GTIN-12","GTIN-12 to be zero-suppressed.")})}processForm(){const t=this.identificationKeyInput();return this.isValid?Zi.zeroSuppress(t):void 0}}class TC extends Tt{get subtitle(){return"Validate any"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.identificationKeyElement(),this.enumElement("gtinLevel","Level",[Go.Any,Go.RetailConsumer,Go.OtherThanRetailConsumer],["Any","Retail consumer","Other than retail consumer"],"Level at which the GTIN is applied.")]})}processForm(){const t=this.identificationKeyInput(),n=this.enumInput("gtinLevel");return this.isValid&&Kn.validateAny(t,n),this.isValid?"✓":void 0}}class OC extends Tt{get subtitle(){return"Validate GTIN-14"}renderParameters(){return m.jsx(m.Fragment,{children:this.identificationKeyElement("GTIN-14","GTIN-14 to be validated.")})}processForm(){const t=this.identificationKeyInput();return this.isValid&&Kn.validateGTIN14(t),this.isValid?"✓":void 0}}class RC extends Tt{get subtitle(){return"Convert to GTIN-14"}get resultElementName(){return"identificationKey"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.textElement("indicatorDigit","Indicator digit","If provided, indicator digit to apply to GTIN-14."),this.identificationKeyElement("GTIN","GTIN to be converted to GTIN-14.")]})}processForm(){const t=this.optionalStringInput("indicatorDigit"),n=this.identificationKeyInput();return this.isValid?Zi.convertToGTIN14(t,n):void 0}}class PC extends Tt{get subtitle(){return"Normalize"}get resultElementName(){return"identificationKey"}renderParameters(){return m.jsx(m.Fragment,{children:this.identificationKeyElement("GTIN","GTIN to be normalized.")})}processForm(){const t=this.identificationKeyInput();return this.isValid?Zi.normalize(t):void 0}}class LC extends Sc{menuItems(){return m.jsxs(m.Fragment,{children:[super.menuItems(),m.jsx(ue.Divider,{}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(kC,{...this.props},`${this.props.identificationKeyType}/Zero expand GTIN-12`))},children:"Zero expand GTIN-12"}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(IC,{...this.props},`${this.props.identificationKeyType}/Zero suppress GTIN-12`))},children:"Zero suppress GTIN-12"}),m.jsx(ue.Divider,{}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(TC,{...this.props},`${this.props.identificationKeyType}/Validate any`))},children:"Validate any"}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(OC,{...this.props},`${this.props.identificationKeyType}/Validate GTIN-14`))},children:"Validate GTIN-14"}),m.jsx(ue.Divider,{}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(RC,{...this.props},`${this.props.identificationKeyType}/Convert to GTIN-14`))},children:"Convert to GTIN-14"}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(PC,{...this.props},`${this.props.identificationKeyType}/Normalize`))},children:"Normalize"})]})}}class ko extends Sc{}class uv extends Tt{serialComponentElement(){return this.textElement("serialComponent","Serial component","Serial component of the identification key.")}serialComponentInput(){return this.requiredStringInput("serialComponent")}}class _C extends uv{get subtitle(){return"Create serialized"}get resultElementName(){return"identificationKey"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.prefixTypeElement(!1),this.prefixElement(),this.valueElement(),this.sparseElement(),this.serialComponentElement()]})}processForm(){const t=this.prefixTypeInput(),n=this.prefixInput(),r=this.valueInput(),i=this.sparseInput(),o=this.serialComponentInput();return this.isValid?this.getCreator(t,n).createSerialized(r,o,i):void 0}}class AC extends uv{get subtitle(){return"Concatenate"}get resultElementName(){return"identificationKey"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.identificationKeyElement(`Base ${this.props.identificationKeyType}`,`Base ${this.props.identificationKeyType} to which to concatenate serial component.`),this.serialComponentElement()]})}processForm(){const t=this.identificationKeyInput(),n=this.serialComponentInput();return this.isValid?this.getCreator(_t.GS1CompanyPrefix,"9521234").concatenate(t,n):void 0}}class Ua extends Sc{menuItems(){return m.jsxs(m.Fragment,{children:[super.menuItems(),m.jsx(ue.Divider,{}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(_C,{...this.props},`${this.props.identificationKeyType}/Create serialized`))},children:"Create serialized"}),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx(AC,{...this.props},`${this.props.identificationKeyType}/Concatenate`))},children:"Concatenate"})]})}}class MC extends wc{}class $C extends MC{get subtitle(){return"Create"}get resultElementName(){return"identificationKey"}valueElement(){return this.textElement("value","Value","Numeric value to be converted to reference.")}valueInput(){return this.requiredNumberInput("value")}renderParameters(){return m.jsxs(m.Fragment,{children:[this.prefixTypeElement(!1),this.prefixElement(),this.textElement("reference","Reference","Reference to be appended to prefix.")]})}processForm(){const t=this.prefixTypeInput(),n=this.prefixInput(),r=this.requiredStringInput("reference");return this.isValid?this.getCreator(t,n).create(r):void 0}}class Io extends lv{menuItems(){return m.jsxs(m.Fragment,{children:[super.menuItems(),m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(m.jsx($C,{...this.props},`${this.props.identificationKeyType}/Create`))},children:"Create"})]})}}class jC extends jr{render(){return m.jsxs(ue,{title:"GS1 ID Key",children:[m.jsx(LC,{identificationKeyType:Ae.GTIN,validators:vC,creatorCallback:t=>t.gtinCreator}),m.jsx(ko,{identificationKeyType:Ae.GLN,validators:Qg,creatorCallback:t=>t.glnCreator}),m.jsx(ko,{identificationKeyType:Ae.SSCC,validators:qg,creatorCallback:t=>t.ssccCreator}),m.jsx(Ua,{identificationKeyType:Ae.GRAI,validators:Yg,creatorCallback:t=>t.graiCreator}),m.jsx(Io,{identificationKeyType:Ae.GIAI,validators:Zg,creatorCallback:t=>t.giaiCreator}),m.jsx(ko,{identificationKeyType:Ae.GSRN,validators:Jg,creatorCallback:t=>t.gsrnCreator}),m.jsx(Ua,{identificationKeyType:Ae.GDTI,validators:ev,creatorCallback:t=>t.gdtiCreator}),m.jsx(Io,{identificationKeyType:Ae.GINC,validators:tv,creatorCallback:t=>t.gincCreator}),m.jsx(ko,{identificationKeyType:Ae.GSIN,validators:nv,creatorCallback:t=>t.gsinCreator}),m.jsx(Ua,{identificationKeyType:Ae.GCN,validators:rv,creatorCallback:t=>t.gcnCreator}),m.jsx(Io,{identificationKeyType:Ae.CPID,validators:iv,creatorCallback:t=>t.cpidCreator}),m.jsx(Io,{identificationKeyType:Ae.GMN,validators:ov,creatorCallback:t=>t.gmnCreator})]})}}class sa extends av{get title(){return`${this.props.name} String`}sElement(t){return this.textElement("s","S",t)}sInput(){return this.optionalStringInput("s")}lengthElement(){return this.textElement("length","Length",`Length must be from 1-${wn.MAXIMUM_STRING_LENGTH.toLocaleString()}.`)}lengthInput(){return this.requiredNumberInput("length")}exclusionElement(){return this.enumElement("exclusion","Exclusion",[He.None,...this.props.creator.exclusionSupport],["None","First zero","All numeric"],"Type of string to be excluded from creation.")}exclusionInput(){return this.enumInput("exclusion")}tweakElement(){return this.textElement("tweak","Tweak",'If provided, the numerical value of the string "tweaked" by this value using an encryption transformer.')}tweakInput(){return this.optionalNumberInput("tweak")}}class DC extends sa{get subtitle(){return"Validate"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.sElement(`${this.props.name} string to validate.`),this.textElement("minimumLength","Minimum length",`If provided, the minimum length of the ${this.props.name.toLowerCase()} string.`),this.textElement("maximumLength","Maximum length",`If provided, the maximum length of the ${this.props.name.toLowerCase()} string.`),this.exclusionElement()]})}processForm(){const t=this.sInput(),n=this.optionalNumberInput("minimumLength"),r=this.optionalNumberInput("maximumLength"),i=this.exclusionInput();return this.isValid&&this.props.creator.validate(t,{minimumLength:n,maximumLength:r,exclusion:i}),this.isValid?"✓":void 0}}class FC extends sa{get resultElementName(){return"s"}get subtitle(){return"Create"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.lengthElement(),this.textElement("value","Value",`Numeric value to be converted to equivalent ${this.props.name} string.`),this.exclusionElement(),this.tweakElement()]})}processForm(){const t=this.lengthInput(),n=this.requiredNumberInput("value"),r=this.exclusionInput(),i=this.tweakInput();return this.isValid?this.props.creator.create(t,n,r,i):void 0}}class bC extends sa{get subtitle(){return"Create sequence"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.lengthElement(),this.textElement("startValue","Start value",`Start of numeric values to be converted to equivalent ${this.props.name} strings.`),this.textElement("count","Count",`Count of numeric values to be converted to equivalent ${this.props.name} strings.`),this.exclusionElement(),this.tweakElement()]})}processForm(){const t=this.lengthInput(),n=this.requiredNumberInput("startValue"),r=this.requiredNumberInput("count"),i=this.exclusionInput(),o=this.tweakInput();return this.isValid&&this.confirmCreateStrings(r)?this.props.creator.createSequence(t,n,r,i,o):void 0}}class VC extends sa{get resultElementName(){return"value"}get subtitle(){return"Value"}renderParameters(){return m.jsxs(m.Fragment,{children:[this.textElement("s","S",`${this.props.name} string to convert back to numeric value.`),this.exclusionElement(),this.tweakElement()]})}processForm(){const t=this.sInput(),n=this.exclusionInput(),r=this.tweakInput();return this.isValid?this.props.creator.value(t,n,r).toString():void 0}}const pr=class pr extends jr{render(){return m.jsx(ue,{title:"String",children:pr.CHARACTER_SET_PROPERTIES.map(t=>m.jsx(ue,{title:t.name,children:pr.CHARACTER_SET_FORM_DESCRIPTORS.map(n=>m.jsx(ue.Item,{onClick:()=>{this.context.setDemoElement(y.createElement(n.form,{key:`${t.name}/${n.name}`,...t}))},children:n.name},n.name))},t.name))})}};En(pr,"CHARACTER_SET_PROPERTIES",[{name:"Numeric",creator:pe},{name:"Hexadecimal",creator:eC},{name:"Alphabetic",creator:tC},{name:"Alphanumeric",creator:nC},{name:"GS1 AI 82",creator:mc},{name:"GS1 AI 39",creator:Vg}]),En(pr,"CHARACTER_SET_FORM_DESCRIPTORS",[{name:"Validate",form:DC},{name:"Create",form:FC},{name:"Create sequence",form:bC},{name:"Value",form:VC}]);let Zl=pr;const zC="@aidc-toolkit/demo",GC="0.9.0",BC="Demonstration of AIDC Toolkit",UC="module",KC="https://github.com/aidc-toolkit",HC={type:"git",url:"git+https://github.com/aidc-toolkit/gs1.git"},WC={url:"https://github.com/aidc-toolkit/gs1/issues"},XC="Apache-2.0",QC={name:"Kevin Dean",email:"Kevin.Dean@datadevelopment.com",url:"https://www.linkedin.com/in/kdean"},qC={dev:"vite",build:"tsc -b && vite build",lint:"eslint .",preview:"vite preview"},YC={"@aidc-toolkit/dev":"^0.9.0","@eslint/js":"^9.10.0","@stylistic/eslint-plugin":"^2.7.2","@types/react":"^18.3.5","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.1","eslint-config-love":"^64.0.0","eslint-plugin-jsdoc":"^50.2.2","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.11",globals:"^15.9.0",typescript:"^5.5.4","typescript-eslint":"^8.4.0",vite:"^5.4.3"},ZC={"@aidc-toolkit/core":"^0.9.0","@aidc-toolkit/gs1":"^0.9.0","@aidc-toolkit/utility":"^0.9.0",bootstrap:"^5.3.3",i18next:"^23.14.0",react:"^18.3.1","react-bootstrap":"^2.10.4","react-dom":"^18.3.1"},JC={name:zC,version:GC,description:BC,type:UC,private:!0,homepage:KC,repository:HC,bugs:WC,license:XC,author:QC,scripts:qC,devDependencies:YC,dependencies:ZC};let To=0;class eE extends jr{constructor(){super(...arguments);En(this,"state",{})}componentDidMount(){To===0&&(To=1,E1(Zh.Browser,!0).then(()=>{To=2,this.setState(n=>({...n}))}).catch(n=>{console.error(n)}))}setDemoElement(n){this.setState(r=>({...r,demoElement:n}))}reset(){this.context.inputValues.clear(),this.setDemoElement(void 0)}render(){return To!==2?m.jsx(m.Fragment,{}):m.jsxs(Mg.Provider,{value:{...this.context,setDemoElement:this.setDemoElement.bind(this)},children:[m.jsxs(Td,{className:"d-flex",expand:"lg",children:[m.jsxs(Td.Brand,{href:"https://github.com/aidc-toolkit",children:[m.jsx(tg,{src:N1,className:"logo d-inline-block align-center",alt:"AIDC Toolkit logo"}),`AIDC Toolkit v${JC.version}`]}),m.jsx(No,{children:m.jsx(Zl,{})}),m.jsx(No,{children:m.jsx(jC,{})}),m.jsx(No,{className:"ms-auto",children:m.jsx(No.Link,{onClick:this.reset.bind(this),children:"Reset"})})]}),this.state.demoElement]})}}Wh(document.getElementById("root")).render(m.jsx(y.StrictMode,{children:m.jsx(eE,{})})); diff --git a/demo/index.html b/demo/index.html deleted file mode 100644 index 7b0d66b..0000000 --- a/demo/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - AIDC Toolkit Demo - - - - -
    - - diff --git a/gs1-library.md b/gs1-library.md deleted file mode 100644 index 67d7ff7..0000000 --- a/gs1-library.md +++ /dev/null @@ -1,15 +0,0 @@ -## GS1 Library - -### Check digits and check character pairs - -#### Check digit - GS1 Identification key - -#### Check digit - price/weight encoding - -#### Check character pair - GS1 Identification key - -### GS1 identification keys - -#### GS1 identification key validation - -#### GS1 identification key creation diff --git a/index.md b/index.md deleted file mode 100644 index 5212089..0000000 --- a/index.md +++ /dev/null @@ -1,25 +0,0 @@ -# AIDC Toolkit - -![AIDC Toolkit logo](resource/icon-144.png "AIDC Toolkit logo") - -⚠️ The AIDC Toolkit is in beta, with production release is scheduled for 2024Q4. To follow the status of that and other -projects, go to the [AIDC Toolkit projects](https://github.com/orgs/aidc-toolkit/projects) page. - -> Skip the boring stuff! Go straight to the [demo](demo) or the [API documentation](api). - -## Table of Contents - -- [Overview](overview.md) - - [Roadmap](overview.md#roadmap) -- [Utility Library](utility-library.md) - - [Number transformation](utility-library.md#number-transformation) - - [String validation](utility-library.md#string-validation) - - [String creation](utility-library.md#number-transformation) -- [GS1 Library](gs1-library.md) - - [Check digits and check character pairs](gs1-library.md#check-digits-and-check-character-pairs) - - [Check digit - GS1 Identification key](gs1-library.md#check-digits-and-check-character-pairs) - - [Check digit - price/weight encoding](gs1-library.md#check-digits-and-check-character-pairs) - - [Check character pair - GS1 Identification key](gs1-library.md#check-digits-and-check-character-pairs) - - [GS1 identification keys](gs1-library.md#gs1-identification-keys) - - [GS1 identification key validation](gs1-library.md#check-digits-and-check-character-pairs) - - [GS1 identification key creation](gs1-library.md#check-digits-and-check-character-pairs) diff --git a/overview.md b/overview.md deleted file mode 100644 index efb59eb..0000000 --- a/overview.md +++ /dev/null @@ -1,53 +0,0 @@ -## Overview - -The AIDC Toolkit is a comprehensive set of libraries for integrating Automatic Identification and Data Capture (AIDC) -functionality into web-based applications. The libraries are published as [npm -packages](https://www.npmjs.com/search?q=%40aidc-toolkit) and full source code is available -on [GitHub](https://github.com/aidc-toolkit). - -### Roadmap - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ReleaseDateFeatures
    1.0.02024Q4 - -
  • Utility library
  • -
  • GS1 library
  • -
  • Full-featured demo application
  • -
  • English and French localization
  • -
    -
    1.1.02024Q4 - -
  • Microsoft Excel add-in integration
  • -
  • Google Sheets add-on integration
  • -
    -
    1.2.02025Q1 - -
  • GS1 element string generation and parsing
  • -
  • GS1 Digital Link generation and parsing
  • -
    -
    2.0.02025Top secret (but it's going to be big).
    diff --git a/package.json b/package.json index 3d7785a..09b9ad1 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "url": "https://www.linkedin.com/in/kdean" }, "scripts": { - "build": "typedoc && rimraf resource demo && copy-files-from-to" + "copy": "copy-files-from-to", + "typedoc": "typedoc" }, "devDependencies": { "@aidc-toolkit/dev": "^0.9.1", diff --git a/utility-library.md b/utility-library.md deleted file mode 100644 index 3e2fa06..0000000 --- a/utility-library.md +++ /dev/null @@ -1,7 +0,0 @@ -## Utility Library - -### Number transformation - -### String validation - -### String creation