From 0dca5b5407b4323936a6279a677c59deaf3ce4bb Mon Sep 17 00:00:00 2001 From: oliveregger Date: Tue, 11 Nov 2025 22:17:52 +0100 Subject: [PATCH 01/23] Fix CDA datatypes mapping Changes: - Cleaned up duplicated censusTract mapping in datatypes.map - Updated test to verify censusTract extension is properly mapped - Added test assertion for patient address line extension value Fixes #440 --- docs/changelog.md | 4 ++++ .../engine/tests/CdaToFhirTransformTests.java | 12 +++++++----- .../src/test/resources/cda/datatypes.map | 17 +++++------------ 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index d3281530576..7a795a0c10d 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,3 +1,7 @@ +2025 Release 4.0.16 + +- adapt test and map for (440) + 2025/11/03 Release 4.0.15 - Upgrade Tomcat to fix [CVE-2025-55752](https://github.com/advisories/GHSA-wmwf-9ccg-fff5) diff --git a/matchbox-engine/src/test/java/ch/ahdis/matchbox/engine/tests/CdaToFhirTransformTests.java b/matchbox-engine/src/test/java/ch/ahdis/matchbox/engine/tests/CdaToFhirTransformTests.java index af8667c0634..98cc4190953 100644 --- a/matchbox-engine/src/test/java/ch/ahdis/matchbox/engine/tests/CdaToFhirTransformTests.java +++ b/matchbox-engine/src/test/java/ch/ahdis/matchbox/engine/tests/CdaToFhirTransformTests.java @@ -31,27 +31,23 @@ import org.hl7.fhir.r4.model.OperationOutcome; import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; +import org.hl7.fhir.r4.model.Patient; import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.StructureMap; -import org.hl7.fhir.r5.elementmodel.Manager.FhirFormat; import org.hl7.fhir.r5.utils.EOperationOutcome; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.context.FhirVersionEnum; import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.io.InputStream; -import java.math.BigDecimal; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import java.util.Calendar; -import java.util.spi.CalendarNameProvider; class CdaToFhirTransformTests { @@ -173,6 +169,12 @@ void TestInitial() throws FHIRException, IOException { Composition composition = (Composition) resource.getEntryFirstRep().getResource(); assertNotNull(composition); assertEquals("2022-03-30T11:24:26+01:00", composition.getDateElement().getValueAsString()); + Patient patient = (Patient) resource.getEntry().stream() + .filter(e -> e.getResource() instanceof Patient) + .map(e -> e.getResource()) + .findFirst() + .orElse(null); + assertEquals("058091", patient.getAddressFirstRep().getLine().getFirst().getExtension().getFirst().getValue().toString()); } @Test diff --git a/matchbox-engine/src/test/resources/cda/datatypes.map b/matchbox-engine/src/test/resources/cda/datatypes.map index 8f3a19886b1..c2470d39022 100644 --- a/matchbox-engine/src/test/resources/cda/datatypes.map +++ b/matchbox-engine/src/test/resources/cda/datatypes.map @@ -198,18 +198,11 @@ group ADAddress(source src : AD, target tgt : Address) extends Any <> { item.county as v -> tgt.district = (v.xmlText); item.city as v -> tgt.city = (v.xmlText); item.postalCode as v -> tgt.postalCode = (v.xmlText); - item.streetAddressLine as v -> tgt.line=(v.xmlText); - - item -> tgt.line as line then { - item where src.censusTract.exists() then { - item.censusTract as v -> line.extension as ext1 then CensusTract(v, ext1) "line"; - }"sfgfdsg"; - } "CensusTract"; - - //share firstline "streetAddress"; - //as streetAddress then{ - //src.censusTract as v->tgt.line as line, line.extension as ext1 then CensusTract(v, ext1) "line"; - //src.censusTract as v ->tgt.line as line, line.extension as ext1 then CensusTract(v, ext1) "line"; + item.streetAddressLine as v -> tgt.line=(v.xmlText) as line then { + src.item as item2 then { + item2.censusTract as v -> line.extension as ext1 then CensusTract(v, ext1) "line"; + } "innercensus"; + } "item2"; item.streetName as v -> tgt.line = (v.xmlText); item.houseNumber as v -> tgt.line = (v.xmlText); } "item"; From 00aee03115604ccdc299181bbbda4c73e2f18d65 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Fri, 26 Dec 2025 06:53:59 +0100 Subject: [PATCH 02/23] update core to 6.7.10 --- docs/changelog.md | 1 + matchbox-engine/pom.xml | 2 +- .../ahdis/matchbox/engine/MatchboxEngine.java | 13 +- .../engine/ValidationPolicyAdvisor.java | 4 +- .../matchbox/engine/cli/MatchboxCli.java | 220 -- .../matchbox/engine/cli/MatchboxService.java | 3 +- .../fhir/r5/context/BaseWorkerContext.java | 473 ++-- .../hl7/fhir/r5/elementmodel/XmlParser.java | 43 +- .../utilities/TerminologyCache.java | 2389 +++++++++-------- .../structuremap/FHIRPathHostServices.java | 19 + .../npm/FilesystemPackageCacheManager.java | 87 +- .../hl7/fhir/utilities/npm/NpmPackage.java | 65 +- .../hl7/fhir/validation/BaseValidator.java | 74 +- .../hl7/fhir/validation/cli/param/Params.java | 762 +----- .../instance/InstanceValidator.java | 690 +++-- .../instance/type/BundleValidator.java | 33 +- matchbox-server/pom.xml | 2 +- .../validation/ValidatorResourceFetcher.java | 2 +- .../matchbox/util/MatchboxEngineSupport.java | 3 +- pom.xml | 4 +- udpatecoreversion.md | 39 + 21 files changed, 2190 insertions(+), 2738 deletions(-) delete mode 100644 matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxCli.java create mode 100644 udpatecoreversion.md diff --git a/docs/changelog.md b/docs/changelog.md index 7a795a0c10d..79744238c53 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,6 +1,7 @@ 2025 Release 4.0.16 - adapt test and map for (440) +- update to core (448) 2025/11/03 Release 4.0.15 diff --git a/matchbox-engine/pom.xml b/matchbox-engine/pom.xml index 18307308c11..54cae39eea6 100644 --- a/matchbox-engine/pom.xml +++ b/matchbox-engine/pom.xml @@ -6,7 +6,7 @@ matchbox health.matchbox - 4.0.15 + 4.0.16 matchbox-engine diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java index 73430036d27..5cccb1aeb81 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java @@ -308,7 +308,8 @@ public MatchboxEngine getEngineR4() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID)); + // TODO add referencesTo als parameter? + engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); log.info("engine R4 initialized"); return engine; @@ -353,7 +354,8 @@ public MatchboxEngine getEngineR4B() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID)); + // TODO add referencesTo als parameter? + engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); log.info("engine R4B initialized"); return engine; @@ -396,8 +398,8 @@ public MatchboxEngine getEngineR5() throws MatchboxEngineCreationException { throw new TerminologyServerException(e); } } - - engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID)); + // TODO add referencesTo als parameter? + engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); engine.getContext().setPackageTracker(engine); @@ -434,7 +436,8 @@ public MatchboxEngine getEngine() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID)); + // TODO add referencesTo als parameter? + engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); return engine; } diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/ValidationPolicyAdvisor.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/ValidationPolicyAdvisor.java index b55e6c1041b..288400440b7 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/ValidationPolicyAdvisor.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/ValidationPolicyAdvisor.java @@ -22,8 +22,8 @@ public class ValidationPolicyAdvisor extends BasePolicyAdvisorForFullValidation // This is a map of messageId to a list of regex paths that should be ignored private final Map> messagesToIgnore = new HashMap<>(); - public ValidationPolicyAdvisor(ReferenceValidationPolicy refpol) { - super(refpol); + public ValidationPolicyAdvisor(ReferenceValidationPolicy refpol, Set referencesTo) { + super(refpol, referencesTo); } @Override diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxCli.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxCli.java deleted file mode 100644 index 8ca4d53a605..00000000000 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxCli.java +++ /dev/null @@ -1,220 +0,0 @@ -package ch.ahdis.matchbox.engine.cli; - -import java.net.Authenticator; -import java.net.PasswordAuthentication; -import java.util.Locale; - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - */ - -import org.hl7.fhir.r5.model.ImplementationGuide; -import org.hl7.fhir.r5.model.StructureDefinition; -import org.hl7.fhir.r5.terminologies.JurisdictionUtilities; -import org.hl7.fhir.utilities.FileFormat; -import org.hl7.fhir.utilities.TimeTracker; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.utilities.VersionUtilities; -import org.hl7.fhir.validation.Scanner; -import org.hl7.fhir.validation.service.model.ValidationContext; -import org.hl7.fhir.validation.service.utils.EngineMode; -import org.hl7.fhir.validation.cli.Display; -import org.hl7.fhir.validation.cli.param.Params; -import org.hl7.fhir.validation.testexecutor.TestExecutor; -import org.hl7.fhir.validation.testexecutor.TestExecutorParams; - -import ch.ahdis.matchbox.engine.MatchboxEngine; -import lombok.extern.slf4j.Slf4j; - - -/** - * A executable class - * - * adapted from https://github.com/hapifhir/org.hl7.fhir.core/blob/master/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidatorCli.java - * - * @author Oliver Egger - */ -@Slf4j -public class MatchboxCli { - - public static final String HTTP_PROXY_HOST = "http.proxyHost"; - public static final String HTTP_PROXY_PORT = "http.proxyPort"; - public static final String HTTP_PROXY_USER = "http.proxyUser"; - public static final String HTTP_PROXY_PASS = "http.proxyPassword"; - public static final String JAVA_DISABLED_TUNNELING_SCHEMES = "jdk.http.auth.tunneling.disabledSchemes"; - public static final String JAVA_DISABLED_PROXY_SCHEMES = "jdk.http.auth.proxying.disabledSchemes"; - public static final String JAVA_USE_SYSTEM_PROXIES = "java.net.useSystemProxies"; - - private static MatchboxService matchboxService = new MatchboxService(); - - public static void main(String[] args) throws Exception { - TimeTracker tt = new TimeTracker(); - TimeTracker.Session tts = tt.start("Loading"); - - System.out.println(VersionUtil.getPoweredBy()); - Display.displaySystemInfo(log); - - if (Params.hasParam(args, Params.PROXY)) { - assert Params.getParam(args, Params.PROXY) != null : "PROXY arg passed in was NULL"; - String[] p = Params.getParam(args, Params.PROXY).split(":"); - System.setProperty(HTTP_PROXY_HOST, p[0]); - System.setProperty(HTTP_PROXY_PORT, p[1]); - } - - if (Params.hasParam(args, Params.PROXY_AUTH)) { - assert Params.getParam(args, Params.PROXY) != null : "Cannot set PROXY_AUTH without setting PROXY..."; - assert Params.getParam(args, Params.PROXY_AUTH) != null : "PROXY_AUTH arg passed in was NULL..."; - String[] p = Params.getParam(args, Params.PROXY_AUTH).split(":"); - String authUser = p[0]; - String authPass = p[1]; - - /* - * For authentication, use java.net.Authenticator to set proxy's configuration and set the system properties - * http.proxyUser and http.proxyPassword - */ - Authenticator.setDefault( - new Authenticator() { - @Override - public PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(authUser, authPass.toCharArray()); - } - } - ); - - System.setProperty(HTTP_PROXY_USER, authUser); - System.setProperty(HTTP_PROXY_PASS, authPass); - System.setProperty(JAVA_USE_SYSTEM_PROXIES, "true"); - - /* - * For Java 1.8 and higher you must set - * -Djdk.http.auth.tunneling.disabledSchemes= - * to make proxies with Basic Authorization working with https along with Authenticator - */ - System.setProperty(JAVA_DISABLED_TUNNELING_SCHEMES, ""); - System.setProperty(JAVA_DISABLED_PROXY_SCHEMES, ""); - } - - ValidationContext validationContext = Params.loadValidationContext(args); - - FileFormat.checkCharsetAndWarnIfNotUTF8(System.out); - - if (shouldDisplayHelpToUser(args)) { - Display.displayHelpDetails(log, "help/help.txt"); - } else if (Params.hasParam(args, Params.TEST)) { - parseTestParamsAndExecute(args); - } - else { - Display.printCliParamsAndInfo(log,args); - doValidation(tt, tts, validationContext); - } - } - - protected static void parseTestParamsAndExecute(String[] args) { - final String testModuleParam = Params.getParam(args, Params.TEST_MODULES); - final String testClassnameFilter = Params.getParam(args, Params.TEST_NAME_FILTER); - final String testCasesDirectory = Params.getParam(args, Params.TEST); - final String txCacheDirectory = Params.getParam(args, Params.TERMINOLOGY_CACHE); - assert TestExecutorParams.isValidModuleParam(testModuleParam) : "Invalid test module param: " + testModuleParam; - final String[] moduleNamesArg = TestExecutorParams.parseModuleParam(testModuleParam); - - assert TestExecutorParams.isValidClassnameFilterParam(testClassnameFilter) : "Invalid regex for test classname filter: " + testClassnameFilter; - - new TestExecutor(moduleNamesArg).executeTests(testClassnameFilter, txCacheDirectory, testCasesDirectory); - - System.exit(0); - } - - private static boolean shouldDisplayHelpToUser(String[] args) { - return (args.length == 0 - || Params.hasParam(args, Params.HELP) - || Params.hasParam(args, "?") - || Params.hasParam(args, "-?") - || Params.hasParam(args, "/?")); - } - - private static void doValidation(TimeTracker tt, TimeTracker.Session tts, ValidationContext cliContext) throws Exception { - if (cliContext.getSv() == null) { - cliContext.setSv(matchboxService.determineVersion(cliContext)); - } - if (cliContext.getJurisdiction() == null) { - System.out.println(" Jurisdiction: None specified (locale = "+Locale.getDefault().getCountry()+")"); - System.out.println(" Note that exceptions and validation failures may happen in the absense of a locale"); - } else { - System.out.println(" Jurisdiction: "+JurisdictionUtilities.displayJurisdiction(cliContext.getJurisdiction())); - } - - System.out.println("Loading"); - // Comment this out because definitions filename doesn't necessarily contain version (and many not even be 14 characters long). - // Version gets spit out a couple of lines later after we've loaded the context - String definitions = "dev".equals(cliContext.getSv()) ? "hl7.fhir.r5.core#current" : VersionUtilities.packageForVersion(cliContext.getSv()) + "#" + VersionUtilities.getCurrentVersion(cliContext.getSv()); - - MatchboxEngine validator = matchboxService.initializeValidator(cliContext, definitions, tt); - tts.end(); - switch (cliContext.getMode()) { - case TRANSFORM: - matchboxService.transform(cliContext, validator); - break; - case COMPILE: - matchboxService.compile(cliContext, validator); - break; - case NARRATIVE: - matchboxService.generateNarrative(cliContext, validator); - break; - case SNAPSHOT: - matchboxService.generateSnapshot(cliContext, validator); - break; - case CONVERT: - matchboxService.convertSources(cliContext, validator); - break; - case FHIRPATH: - matchboxService.evaluateFhirpath(cliContext, validator); - break; - case VERSION: - matchboxService.transformVersion(cliContext, validator); - break; - case VALIDATION: - case SCAN: - default: - for (String s : cliContext.getProfiles()) { - if (!validator.getContext().hasResource(StructureDefinition.class, s) && !validator.getContext().hasResource(ImplementationGuide.class, s)) { - System.out.println(" Fetch Profile from " + s); - validator.loadProfile(cliContext.getLocations().getOrDefault(s, s)); - } - } - System.out.println("Validating"); - if (cliContext.getMode() == EngineMode.SCAN) { - Scanner validationScanner = new Scanner(validator.getContext(), validator.getValidator(null), validator.getIgLoader(), validator.getFhirPathEngine()); - validationScanner.validateScan(cliContext.getOutput(), cliContext.getSources()); - } else { - matchboxService.validateSources(cliContext, validator); - } - break; - } - System.out.println("Done. " + tt.report()+". Max Memory = "+Utilities.describeSize(Runtime.getRuntime().maxMemory())); - } -} diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java index 9f9768618b0..f15f488c420 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java @@ -442,7 +442,8 @@ public String initializeValidator(ValidationContext validationContext, String de validator.setPolicyAdvisor(fetcher); refpol = ReferenceValidationPolicy.CHECK_TYPE_IF_EXISTS; } - validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy())); + // TODO add referencesTo als parameter? + validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), null)); validator.getBundleValidationRules().addAll(validationContext.getBundleValidationRules()); validator.setJurisdiction(CodeSystemUtilities.readCoding(validationContext.getJurisdiction())); diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java index 7cab0666ab8..02e36baf52b 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java @@ -48,8 +48,10 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.concurrent.atomic.AtomicReference; import lombok.Getter; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import javax.annotation.Nonnull; @@ -124,15 +126,11 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.r5.terminologies.client.TerminologyClientR5; import org.hl7.fhir.r5.terminologies.expansion.ValueSetExpander; import org.hl7.fhir.r5.terminologies.expansion.ValueSetExpansionOutcome; -import org.hl7.fhir.r5.terminologies.utilities.CodingValidationRequest; -import org.hl7.fhir.r5.terminologies.utilities.TerminologyCache; +import org.hl7.fhir.r5.terminologies.utilities.*; import org.hl7.fhir.r5.terminologies.utilities.TerminologyCache.CacheToken; import org.hl7.fhir.r5.terminologies.utilities.TerminologyCache.SourcedCodeSystem; import org.hl7.fhir.r5.terminologies.utilities.TerminologyCache.SourcedValueSet; -import org.hl7.fhir.r5.terminologies.utilities.TerminologyOperationContext; import org.hl7.fhir.r5.terminologies.utilities.TerminologyOperationContext.TerminologyServiceProtectionException; -import org.hl7.fhir.r5.terminologies.utilities.TerminologyServiceErrorClass; -import org.hl7.fhir.r5.terminologies.utilities.ValidationResult; import org.hl7.fhir.r5.terminologies.validation.VSCheckerException; import org.hl7.fhir.r5.terminologies.validation.ValueSetValidator; import org.hl7.fhir.r5.utils.PackageHackerR5; @@ -156,9 +154,10 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS @Slf4j @MarkedToMoveToAdjunctPackage -public abstract class BaseWorkerContext extends I18nBase implements IWorkerContext { +public abstract class BaseWorkerContext extends I18nBase implements IWorkerContext, IWorkerContextManager, IOIDServices { private static boolean allowedToIterateTerminologyResources; + public interface IByteProvider { byte[] bytes() throws IOException; } @@ -288,7 +287,7 @@ public int compare(T arg1, T arg2) { } } - private Object lock = new Object(); // used as a lock for the data that follows + private final Object lock = new Object(); // used as a lock for the data that follows protected String version; // although the internal resources are all R5, the version of FHIR they describe may not be private boolean minimalMemory = false; @@ -322,11 +321,13 @@ public int compare(T arg1, T arg2) { private UcumService ucumService; protected Map binaries = new HashMap(); - protected Map> oidCacheManual = new HashMap<>(); + protected Map> oidCacheManual = new HashMap<>(); protected List oidSources = new ArrayList<>(); protected Map> validationCache = new HashMap>(); protected String name; + @Setter + @Getter private boolean allowLoadingDuplicates; private final Set codeSystemsUsed = new HashSet<>(); @@ -336,7 +337,7 @@ public int compare(T arg1, T arg2) { private int expandCodesLimit = 1000; protected org.hl7.fhir.r5.context.ILoggingService logger = new Slf4JLoggingService(log); protected final TerminologyClientManager terminologyClientManager = new TerminologyClientManager(new TerminologyClientR5.TerminologyClientR5Factory(), UUID.randomUUID().toString(), logger); - protected Parameters expParameters; + protected AtomicReference expansionParameters = new AtomicReference<>(null); private Map packages = new HashMap<>(); @Getter @@ -347,9 +348,6 @@ public int compare(T arg1, T arg2) { protected String userAgent; protected ContextUtilities cutils; private List suppressedMappings; - - // matchbox patch https://github.com/ahdis/matchbox/issues/425 - private Locale locale; protected BaseWorkerContext() throws FileNotFoundException, IOException, FHIRException { setValidationMessageLanguage(getLocale()); @@ -422,7 +420,7 @@ protected void copy(BaseWorkerContext other) { txCache = other.txCache; // no copy. for now? expandCodesLimit = other.expandCodesLimit; logger = other.logger; - expParameters = other.expParameters != null ? other.expParameters.copy() : null; + expansionParameters = other.expansionParameters != null ? new AtomicReference<>(other.copyExpansionParametersWithUserData()) : null; version = other.version; supportedCodeSystems.putAll(other.supportedCodeSystems); unsupportedCodeSystems.addAll(other.unsupportedCodeSystems); @@ -439,8 +437,7 @@ protected void copy(BaseWorkerContext other) { cachingAllowed = other.cachingAllowed; suppressedMappings = other.suppressedMappings; cutils.setSuppressedMappings(other.suppressedMappings); - locale = other.locale; - } + } } @@ -543,7 +540,7 @@ public void registerResourceFromPackage(CanonicalResourceProxy r, PackageInforma } public void cacheResourceFromPackage(Resource r, PackageInformation packageInfo) throws FHIRException { - + synchronized (lock) { if (packageInfo != null) { packages.put(packageInfo.getVID(), packageInfo); @@ -603,7 +600,7 @@ public void cacheResourceFromPackage(Resource r, PackageInformation packageInfo) if (!oidCacheManual.containsKey(s)) { oidCacheManual.put(s, new HashSet<>()); } - oidCacheManual.get(s).add(new OIDDefinition(r.fhirType(), s, url, ((CanonicalResource) r).getVersion(), null, null)); + oidCacheManual.get(s).add(new IOIDServices.OIDDefinition(r.fhirType(), s, url, ((CanonicalResource) r).getVersion(), null, null)); } } } @@ -802,11 +799,6 @@ protected void seeMetadataResource(T r, Map supplements = codeSystems.getSupplements(cs); if (supplements.size() > 0) { @@ -886,16 +869,12 @@ public CodeSystem fetchSupplementedCodeSystem(String system, String version) { return cs; } - @Override - public SystemSupportInformation getTxSupportInfo(String system) throws TerminologyServiceException { - return getTxSupportInfo(system, null); - } @Override public SystemSupportInformation getTxSupportInfo(String system, String version) throws TerminologyServiceException { synchronized (lock) { String vurl = CanonicalType.urlWithVersion(system, version); if (codeSystems.has(vurl) && codeSystems.get(vurl).getContent() != CodeSystemContentMode.NOTPRESENT) { - return new SystemSupportInformation(true, "internal", TerminologyClientContext.LATEST_VERSION); + return new SystemSupportInformation(true, "internal", TerminologyClientContext.LATEST_VERSION, null); } else if (supportedCodeSystems.containsKey(vurl)) { return supportedCodeSystems.get(vurl); } else if (system.startsWith("http://example.org") || system.startsWith("http://acme.com") || system.startsWith("http://hl7.org/fhir/valueset-") || system.startsWith("urn:oid:")) { @@ -907,7 +886,7 @@ public SystemSupportInformation getTxSupportInfo(String system, String version) if (terminologyClientManager != null) { try { TerminologyClientContext client = terminologyClientManager.chooseServer(null, Set.of(vurl), false); - supportedCodeSystems.put(vurl, new SystemSupportInformation(client.supportsSystem(vurl), client.getAddress(), client.getTxTestVersion())); + supportedCodeSystems.put(vurl, new SystemSupportInformation(client.supportsSystem(vurl), client.getAddress(), client.getTxTestVersion(), client.supportsSystem(vurl) ? null : "The server does not support this code system")); } catch (Exception e) { if (canRunWithoutTerminology) { noTerminologyServer = true; @@ -932,24 +911,6 @@ public SystemSupportInformation getTxSupportInfo(String system, String version) } } - @Override - public boolean supportsSystem(String system) throws TerminologyServiceException { - SystemSupportInformation si = getTxSupportInfo(system); - return si.isSupported(); - } - - @Override - public boolean supportsSystem(String system, FhirPublication fhirVersion) throws TerminologyServiceException { - SystemSupportInformation si = getTxSupportInfo(system); - return si.isSupported(); - } - - public boolean isServerSideSystem(String url) { - boolean check = supportsSystem(url); - return check && supportedCodeSystems.containsKey(url); - } - - protected void txLog(String msg) { if (tlogging ) { logger.logDebugMessage(LogCategory.TX, msg); @@ -969,22 +930,20 @@ public void setExpandCodesLimit(int expandCodesLimit) { @Override public ValueSetExpansionOutcome expandVS(Resource src, ElementDefinitionBindingComponent binding, boolean cacheOk, boolean heirarchical) throws FHIRException { ValueSet vs = null; - vs = fetchResource(ValueSet.class, binding.getValueSet(), src); + vs = fetchResource(ValueSet.class, binding.getValueSet(), null, src); if (vs == null) { throw new FHIRException(formatMessage(I18nConstants.UNABLE_TO_RESOLVE_VALUE_SET_, binding.getValueSet())); } return expandVS(vs, cacheOk, heirarchical); } - - @Override - public ValueSetExpansionOutcome expandVS(ITerminologyOperationDetails opCtxt, ConceptSetComponent inc, boolean hierarchical, boolean noInactive) throws TerminologyServiceException { + public ValueSetExpansionOutcome expandVS(ValueSetProcessBase.TerminologyOperationDetails opCtxt, ConceptSetComponent inc, boolean hierarchical, boolean noInactive) throws TerminologyServiceException { ValueSet vs = new ValueSet(); vs.setStatus(PublicationStatus.ACTIVE); vs.setCompose(new ValueSetComposeComponent()); vs.getCompose().setInactive(!noInactive); vs.getCompose().getInclude().add(inc); - CacheToken cacheToken = txCache.generateExpandToken(vs, hierarchical); + CacheToken cacheToken = txCache.generateExpandToken(vs, new ExpansionOptions().withHierarchical(hierarchical)); ValueSetExpansionOutcome res; res = txCache.getExpansion(cacheToken); if (res != null) { @@ -1031,44 +990,43 @@ public ValueSetExpansionOutcome expandVS(ITerminologyOperationDetails opCtxt, Co @Override public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean heirarchical) { - if (expParameters == null) + if (expansionParameters.get() == null) throw new Error(formatMessage(I18nConstants.NO_EXPANSION_PARAMETERS_PROVIDED)); - Parameters p = expParameters.copy(); - return expandVS(vs, cacheOk, heirarchical, false, p); + return expandVS(vs, cacheOk, heirarchical, false, getExpansionParameters()); } @Override public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean heirarchical, int count) { - if (expParameters == null) + if (expansionParameters.get() == null) throw new Error(formatMessage(I18nConstants.NO_EXPANSION_PARAMETERS_PROVIDED)); - Parameters p = expParameters.copy(); + Parameters p = getExpansionParameters(); p.addParameter("count", count); return expandVS(vs, cacheOk, heirarchical, false, p); } @Override - public ValueSetExpansionOutcome expandVS(String url, boolean cacheOk, boolean hierarchical, int count) { - if (expParameters == null) + public ValueSetExpansionOutcome expandVS(ExpansionOptions options, String url) { + if (expansionParameters.get() == null) throw new Error(formatMessage(I18nConstants.NO_EXPANSION_PARAMETERS_PROVIDED)); if (noTerminologyServer) { return new ValueSetExpansionOutcome(formatMessage(I18nConstants.ERROR_EXPANDING_VALUESET_RUNNING_WITHOUT_TERMINOLOGY_SERVICES), TerminologyServiceErrorClass.NOSERVICE, null, false); } - Parameters p = expParameters.copy(); - p.addParameter("count", count); + Parameters p = getExpansionParameters(); + p.addParameter("count", options.getMaxCount()); p.addParameter("url", new UriType(url)); p.setParameter("_limit",new IntegerType("10000")); p.setParameter("_incomplete", new BooleanType("true")); - CacheToken cacheToken = txCache.generateExpandToken(url, hierarchical); + CacheToken cacheToken = txCache.generateExpandToken(url, options); ValueSetExpansionOutcome res; - if (cacheOk) { + if (options.isCacheOk()) { res = txCache.getExpansion(cacheToken); if (res != null) { return res; } } - p.setParameter("excludeNested", !hierarchical); + p.setParameter("excludeNested", !options.isHierarchical()); List allErrors = new ArrayList<>(); p.addParameter().setName("cache-id").setValue(new IdType(terminologyClientManager.getCacheId())); @@ -1099,19 +1057,15 @@ public ValueSetExpansionOutcome expandVS(String url, boolean cacheOk, boolean hi return res; } - @Override - public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean heirarchical, boolean incompleteOk) { - if (expParameters == null) - throw new Error(formatMessage(I18nConstants.NO_EXPANSION_PARAMETERS_PROVIDED)); - Parameters p = expParameters.copy(); - return expandVS(vs, cacheOk, heirarchical, incompleteOk, p); + public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean hierarchical, boolean incompleteOk, Parameters pIn) { + return expandVS(new ExpansionOptions(cacheOk, hierarchical, 0, incompleteOk, null), vs, pIn, false); } - public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean hierarchical, boolean incompleteOk, Parameters pIn) { - return expandVS(vs, cacheOk, hierarchical, incompleteOk, pIn, false); + public ValueSetExpansionOutcome expandVS(ExpansionOptions options, ValueSet vs) { + return expandVS(options, vs, getExpansionParameters(), false); } - - public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean hierarchical, boolean incompleteOk, Parameters pIn, boolean noLimits) { + + public ValueSetExpansionOutcome expandVS(ExpansionOptions options, ValueSet vs, Parameters pIn, boolean noLimits) { if (pIn == null) { throw new Error(formatMessage(I18nConstants.NO_PARAMETERS_PROVIDED_TO_EXPANDVS)); } @@ -1119,9 +1073,43 @@ public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean h return new ValueSetExpansionOutcome("This value set is not expanded correctly at this time (will be fixed in a future version)", TerminologyServiceErrorClass.VALUESET_UNSUPPORTED, false); } - Parameters p = pIn.copy(); + Parameters p = getExpansionParameters(); // it's already a copy + if (p == null) { + p = new Parameters(); + } + for (ParametersParameterComponent pp : pIn.getParameter()) { + if (Utilities.existsInList(pp.getName(), "designation", "filterProperty", "useSupplement", "property", "tx-resource")) { + // these parameters are additive + p.getParameter().add(pp.copy()); + } else { + ParametersParameterComponent existing = null; + if (Utilities.existsInList(pp.getName(), "system-version", "check-system-version", "force-system-version", + "default-valueset-version", "check-valueset-version", "force-valueset-version") && pp.hasValue() && pp.getValue().isPrimitive()) { + String url = pp.getValue().primitiveValue(); + if (url.contains("|")) { + url = url.substring(0, url.indexOf("|") + 1); + } + for (ParametersParameterComponent t : p.getParameter()) { + if (pp.getName().equals(t.getName()) && t.hasValue() && t.getValue().isPrimitive() && t.getValue().primitiveValue().startsWith(url)) { + existing = t; + break; + } + } + } else { + existing = p.getParameter(pp.getName()); + } + if (existing != null) { + existing.setValue(pp.getValue()); + } else { + p.getParameter().add(pp.copy()); + } + } + } p.setParameter("_limit",new IntegerType("10000")); p.setParameter("_incomplete", new BooleanType("true")); + if (options.hasLanguage()) { + p.setParameter("displayLanguage", new CodeType(options.getLanguage())); + } if (vs.hasExpansion()) { return new ValueSetExpansionOutcome(vs.copy()); } @@ -1139,28 +1127,29 @@ public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean h } } - CacheToken cacheToken = txCache.generateExpandToken(vs, hierarchical); + if (!noLimits && !p.hasParameter("count")) { + p.addParameter("count", expandCodesLimit); + p.addParameter("offset", 0); + } + p.setParameter("excludeNested", !options.isHierarchical()); + if (options.isIncompleteOk()) { + p.setParameter("incomplete-ok", true); + } + + CacheToken cacheToken = txCache.generateExpandToken(vs, options); ValueSetExpansionOutcome res; - if (cacheOk) { + if (options.isCacheOk()) { res = txCache.getExpansion(cacheToken); if (res != null) { return res; } } - if (!noLimits && !p.hasParameter("count")) { - p.addParameter("count", expandCodesLimit); - p.addParameter("offset", 0); - } - p.setParameter("excludeNested", !hierarchical); - if (incompleteOk) { - p.setParameter("incomplete-ok", true); - } - List allErrors = new ArrayList<>(); // ok, first we try to expand locally ValueSetExpander vse = constructValueSetExpanderSimple(new ValidationOptions(vs.getFHIRPublicationVersion())); + vse.setNoTerminologyServer(noTerminologyServer); res = null; try { res = vse.expand(vs, p); @@ -1261,7 +1250,7 @@ public void validateCodeBatch(ValidationOptions options, List set, ConceptSetComponent inc) { ValueSet vs = fetchResource(ValueSet.class, u.getValue()); if (vs != null) { findRelevantSystems(set, vs); + } else if (u.getValue() != null && u.getValue().startsWith("http://snomed.info/sct")) { + set.add("http://snomed.info/sct"); + } else if (u.getValue() != null && u.getValue().startsWith("http://loinc.org")) { + set.add("http://loinc.org"); } else { set.add(TerminologyClientManager.UNRESOLVED_VALUESET); } @@ -1944,11 +1937,11 @@ protected ValidationResult validateOnServer2(TerminologyClientContext tc, ValueS return processValidationResult(pOut, vs == null ? null : vs.getUrl(), tc.getClient().getAddress()); } - protected void addServerValidationParameters(ITerminologyOperationDetails opCtxt, TerminologyClientContext terminologyClientContext, ValueSet vs, Parameters pin, ValidationOptions options) { + protected void addServerValidationParameters(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext terminologyClientContext, ValueSet vs, Parameters pin, ValidationOptions options) { addServerValidationParameters(opCtxt, terminologyClientContext, vs, pin, options, null); } - protected void addServerValidationParameters(ITerminologyOperationDetails opCtxt, TerminologyClientContext terminologyClientContext, ValueSet vs, Parameters pin, ValidationOptions options, Set systems) { + protected void addServerValidationParameters(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext terminologyClientContext, ValueSet vs, Parameters pin, ValidationOptions options, Set systems) { boolean cache = false; if (vs != null) { if (terminologyClientContext != null && terminologyClientContext.isTxCaching() && terminologyClientContext.getCacheId() != null && vs.getUrl() != null && terminologyClientContext.getCached().contains(vs.getUrl()+"|"+ vs.getVersion())) { @@ -1982,11 +1975,11 @@ protected void addServerValidationParameters(ITerminologyOperationDetails opCtxt throw new Error(formatMessage(I18nConstants.CAN_ONLY_SPECIFY_PROFILE_IN_THE_CONTEXT)); } } - if (expParameters == null) { + if (expansionParameters.get() == null) { throw new Error(formatMessage(I18nConstants.NO_EXPANSIONPROFILE_PROVIDED)); } String defLang = null; - for (ParametersParameterComponent pp : expParameters.getParameter()) { + for (ParametersParameterComponent pp : expansionParameters.get().getParameter()) { if ("defaultDisplayLanguage".equals(pp.getName())) { defLang = pp.getValue().primitiveValue(); } else if (!pin.hasParameter(pp.getName())) { @@ -2005,7 +1998,7 @@ protected void addServerValidationParameters(ITerminologyOperationDetails opCtxt pin.addParameter("diagnostics", true); } - private boolean addDependentResources(ITerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, ValueSet vs) { + private boolean addDependentResources(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, ValueSet vs) { boolean cache = false; for (ConceptSetComponent inc : vs.getCompose().getInclude()) { cache = addDependentResources(opCtxt, tc, pin, inc, vs) || cache; @@ -2016,10 +2009,10 @@ private boolean addDependentResources(ITerminologyOperationDetails opCtxt, Termi return cache; } - private boolean addDependentResources(ITerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, ConceptSetComponent inc, Resource src) { + private boolean addDependentResources(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, ConceptSetComponent inc, Resource src) { boolean cache = false; for (CanonicalType c : inc.getValueSet()) { - ValueSet vs = fetchResource(ValueSet.class, c.getValue(), src); + ValueSet vs = fetchResource(ValueSet.class, c.getValue(), null, src); if (vs != null && !hasCanonicalResource(pin, "tx-resource", vs.getVUrl())) { cache = checkAddToParams(tc, pin, vs) || cache; addDependentResources(opCtxt, tc, pin, vs); @@ -2042,9 +2035,9 @@ private boolean addDependentResources(ITerminologyOperationDetails opCtxt, Termi return cache; } - public boolean addDependentCodeSystem(ITerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, String sys, Resource src) { + public boolean addDependentCodeSystem(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, String sys, Resource src) { boolean cache = false; - CodeSystem cs = fetchResource(CodeSystem.class, sys, src); + CodeSystem cs = fetchResource(CodeSystem.class, sys, null, src); if (cs != null && !hasCanonicalResource(pin, "tx-resource", cs.getVUrl()) && (cs.getContent() == CodeSystemContentMode.COMPLETE || cs.getContent() == CodeSystemContentMode.FRAGMENT)) { cache = checkAddToParams(tc, pin, cs) || cache; } @@ -2137,6 +2130,7 @@ public ValidationResult processValidationResult(Parameters pOut, String vs, Stri String version = null; boolean inactive = false; String status = null; + String diagnostics = null; List issues = new ArrayList<>(); Set unknownSystems = new HashSet<>(); @@ -2155,6 +2149,8 @@ public ValidationResult processValidationResult(Parameters pOut, String vs, Stri version = ((PrimitiveType) p.getValue()).asStringValue(); } else if (p.getName().equals("code")) { code = ((PrimitiveType) p.getValue()).asStringValue(); + } else if (p.getName().equals("diagnostics")) { + diagnostics = ((PrimitiveType) p.getValue()).asStringValue(); } else if (p.getName().equals("inactive")) { inactive = "true".equals(((PrimitiveType) p.getValue()).asStringValue()); } else if (p.getName().equals("status")) { @@ -2248,6 +2244,7 @@ public ValidationResult processValidationResult(Parameters pOut, String vs, Stri res.setUnknownSystems(unknownSystems); res.setServer(server); res.setParameters(pOut); + res.setDiagnostics(diagnostics); return res; } @@ -2292,13 +2289,22 @@ public void setLogger(@Nonnull org.hl7.fhir.r5.context.ILoggingService logger) { getTxClientManager().setLogger(logger); } + /** + * Returns a copy of the expansion parameters used by this context. Note that because the return value is a copy, any + * changes done to it will not be reflected in the context and any changes to the context will likewise not be + * reflected in the return value after it is returned. If you need to change the expansion parameters, use + * {@link #setExpansionParameters(Parameters)}. + * + * @return a copy of the expansion parameters + */ public Parameters getExpansionParameters() { - return expParameters; + final Parameters parameters = expansionParameters.get(); + return parameters == null ? null : parameters.copy(); } - public void setExpansionParameters(Parameters expParameters) { - this.expParameters = expParameters; - this.terminologyClientManager.setExpansionParameters(expParameters); + public void setExpansionParameters(Parameters expansionParameters) { + this.expansionParameters.set(expansionParameters); + this.terminologyClientManager.setExpansionParameters(expansionParameters); } @Override @@ -2334,17 +2340,9 @@ public Set getResourceNamesAsSet() { return res; } - public boolean isAllowLoadingDuplicates() { - return allowLoadingDuplicates; - } - - public void setAllowLoadingDuplicates(boolean allowLoadingDuplicates) { - this.allowLoadingDuplicates = allowLoadingDuplicates; - } - @Override public T fetchResourceWithException(Class class_, String uri) throws FHIRException { - return fetchResourceWithException(class_, uri, null); + return fetchResourceWithException(class_, uri, null, null); } public T fetchResourceWithException(String cls, String uri) throws FHIRException { @@ -2355,8 +2353,8 @@ public T fetchResourceByVersionWithException(Class class return fetchResourceWithExceptionByVersion(class_, uri, version, null); } - public T fetchResourceWithException(Class class_, String uri, Resource sourceForReference) throws FHIRException { - return fetchResourceWithExceptionByVersion(class_, uri, null, sourceForReference); + public T fetchResourceWithException(Class class_, String uri, String version, Resource sourceForReference) throws FHIRException { + return fetchResourceWithExceptionByVersion(class_, uri, version, sourceForReference); } @SuppressWarnings("unchecked") @@ -2943,29 +2941,23 @@ public Resource fetchResourceById(String type, String uri) { } } - public T fetchResource(Class class_, String uri, Resource sourceForReference) { + public T fetchResource(Class class_, String uri, String version, Resource sourceForReference) { try { - return fetchResourceWithException(class_, uri, sourceForReference); + return fetchResourceWithException(class_, uri, version, sourceForReference); } catch (FHIRException e) { throw new Error(e); } } - public T fetchResource(Class class_, String uri, FhirPublication fhirVersion) { - return fetchResource(class_, uri); - } - + public T fetchResource(Class class_, String uri) { try { - return fetchResourceWithException(class_, uri, null); + return fetchResourceWithException(class_, uri, null, null); } catch (FHIRException e) { throw new Error(e); } } - public T fetchResource(Class class_, String uri, String version, FhirPublication fhirVersion) { - return fetchResource(class_, uri, version); - } public T fetchResource(Class class_, String uri, String version) { try { return fetchResourceWithExceptionByVersion(class_, uri, version, null); @@ -3007,26 +2999,9 @@ public boolean hasResourceVersion(String cls, String uri, S } } - @Override - public boolean hasResource(Class class_, String uri, String fhirVersion) { - try { - return fetchResourceByVersionWithException(class_, uri, fhirVersion) != null; - } catch (Exception e) { - return false; - } - } - - public boolean hasResource(String cls, String uri, FhirPublication fhirVersion) { - try { - return fetchResourceWithException(cls, uri) != null; - } catch (Exception e) { - return false; - } - } - - public boolean hasResourceVersion(Class class_, String uri, String version, FhirPublication fhirVersion) { + public boolean hasResource(Class class_, String uri, String version, Resource sourceForReference) { try { - return fetchResourceWithExceptionByVersion(class_, uri, version, null) != null; + return fetchResourceWithExceptionByVersion(class_, uri, version, sourceForReference) != null; } catch (Exception e) { return false; } @@ -3156,11 +3131,27 @@ public List listMaps() { } return m; } - + public List listStructures() { List m = new ArrayList(); synchronized (lock) { - structures.listAll(m); + structures.listAll(m); + } + return m; + } + + public List listValueSets() { + List m = new ArrayList(); + synchronized (lock) { + valueSets.listAll(m); + } + return m; + } + + public List listCodeSystems() { + List m = new ArrayList(); + synchronized (lock) { + codeSystems.listAll(m); } return m; } @@ -3252,12 +3243,6 @@ public List fetchTypeDefinitions(String typeName) { return typeManager.getDefinitions(typeName); } - @Override - public List fetchTypeDefinitions(String typeName, FhirPublication fhirVersion) { - return typeManager.getDefinitions(typeName); - } - - public boolean isPrimitiveType(String type) { return typeManager.isPrimitive(type); } @@ -3387,6 +3372,7 @@ public void finishLoading(boolean genSnapshots) { if (!hasResource(StructureDefinition.class, "http://hl7.org/fhir/StructureDefinition/Base")) { cacheResource(ProfileUtilities.makeBaseDefinition(version)); } + new CoreVersionPinner(this).pinCoreVersions(listCodeSystems(), listValueSets(), listStructures()); if(genSnapshots) { for (StructureDefinition sd : listStructures()) { try { @@ -3512,16 +3498,16 @@ public void setCachingAllowed(boolean cachingAllowed) { } @Override - public OIDSummary urlsForOid(String oid, String resourceType) { - OIDSummary set = urlsForOid(oid, resourceType, true); + public IOIDServices.OIDSummary urlsForOid(String oid, String resourceType) { + IOIDServices.OIDSummary set = urlsForOid(oid, resourceType, true); if (set.getDefinitions().size() > 1) { set = urlsForOid(oid, resourceType, false); } return set; } - public OIDSummary urlsForOid(String oid, String resourceType, boolean retired) { - OIDSummary summary = new OIDSummary(); + public IOIDServices.OIDSummary urlsForOid(String oid, String resourceType, boolean retired) { + IOIDServices.OIDSummary summary = new IOIDServices.OIDSummary(); if (oid != null) { if (oidCacheManual.containsKey(oid)) { summary.addOIDs(oidCacheManual.get(oid)); @@ -3543,7 +3529,7 @@ public OIDSummary urlsForOid(String oid, String resourceType, boolean retired) { String url = rs.getString(2); String version = rs.getString(3); String status = rs.getString(4); - summary.addOID(new OIDDefinition(rt, oid, url, version, os.pid, status)); + summary.addOID(new IOIDServices.OIDDefinition(rt, oid, url, version, os.pid, status)); } } } catch (Exception e) { @@ -3555,13 +3541,13 @@ public OIDSummary urlsForOid(String oid, String resourceType, boolean retired) { switch (oid) { case "2.16.840.1.113883.6.1" : - summary.addOID(new OIDDefinition("CodeSystem", "2.16.840.1.113883.6.1", "http://loinc.org", null, null, null)); + summary.addOID(new IOIDServices.OIDDefinition("CodeSystem", "2.16.840.1.113883.6.1", "http://loinc.org", null, null, null)); break; case "2.16.840.1.113883.6.8" : - summary.addOID(new OIDDefinition("CodeSystem", "2.16.840.1.113883.6.8", "http://unitsofmeasure.org", null, null, null)); + summary.addOID(new IOIDServices.OIDDefinition("CodeSystem", "2.16.840.1.113883.6.8", "http://unitsofmeasure.org", null, null, null)); break; case "2.16.840.1.113883.6.96" : - summary.addOID(new OIDDefinition("CodeSystem", "2.16.840.1.113883.6.96", "http://snomed.info/sct", null, null, null)); + summary.addOID(new IOIDServices.OIDDefinition("CodeSystem", "2.16.840.1.113883.6.96", "http://snomed.info/sct", null, null, null)); break; default: } @@ -3665,11 +3651,11 @@ private T doFindTxResource(Class class_, String canonica } } - public T findTxResource(Class class_, String canonical, Resource sourceOfReference) { + public T findTxResource(Class class_, String canonical, String version, Resource sourceOfReference) { if (canonical == null) { return null; } - T result = fetchResource(class_, canonical, sourceOfReference); + T result = fetchResource(class_, canonical, version, sourceOfReference); if (result == null) { result = doFindTxResource(class_, canonical); } @@ -3699,14 +3685,14 @@ public T findTxResource(Class class_, String canonical, } @Override - public List fetchResourcesByUrl(Class class_, String uri) { + public List fetchResourceVersions(Class class_, String uri) { List res = new ArrayList<>(); if (uri != null && !uri.startsWith("#")) { if (class_ == StructureDefinition.class) { uri = ProfileUtilities.sdNs(uri, null); } if (uri.contains("|")) { - throw new Error("at fetchResourcesByUrl, but a version is found in the uri - should not happen ('"+uri+"')"); + throw new Error("at fetchResourceVersions, but a version is found in the uri - should not happen ('"+uri+"')"); } if (uri.contains("#")) { uri = uri.substring(0, uri.indexOf("#")); @@ -3791,54 +3777,85 @@ public List fetchResourcesByUrl(Class class_, String } return res; } - + public void setLocale(Locale locale) { - // matchbox patch https://github.com/ahdis/matchbox/issues/425 - if (this.locale == null) { - this.locale = locale; - super.setLocale(locale); - } else { - if (!this.locale.equals(locale)) { - this.locale = locale; - super.setLocale(locale); - if (locale != null) { - log.info("changing locale to" + locale.toLanguageTag()); - } else { - log.info("resetting locale"); + super.setLocale(locale); + if (locale == null) { + return; + } + final String languageTag = locale.toLanguageTag(); + if ("und".equals(languageTag)) { + throw new FHIRException("The locale " + locale.toString() + " is not valid"); + } + + if (expansionParameters.get() == null) { + return; + } + + /* + If displayLanguage is an existing parameter, we check to see if it was added automatically or explicitly set by + the user + + * If it was added automatically, we update it to the new locale + * If it was set by the user, we do not update it. + + In both cases, we are done. + */ + + Parameters newExpansionParameters = copyExpansionParametersWithUserData(); + + int displayLanguageCount = 0; + for (ParametersParameterComponent expParameter : newExpansionParameters.getParameter()) { + if ("displayLanguage".equals(expParameter.getName())) { + if (expParameter.hasUserData(UserDataNames.auto_added_parameter)) { + expParameter.setValue(new CodeType(languageTag)); } + displayLanguageCount++; } } - if (locale != null) { - String lt = locale.toLanguageTag(); - if ("und".equals(lt)) { - throw new FHIRException("The locale " + locale.toString() + " is not valid"); + if (displayLanguageCount > 1) { + throw new FHIRException("Multiple displayLanguage parameters found"); + } + if (displayLanguageCount == 1) { + this.expansionParameters.set(newExpansionParameters); + return; + } + + // There is no displayLanguage parameter so we are free to add a "defaultDisplayLanguage" instead. + + int defaultDisplayLanguageCount = 0; + for (ParametersParameterComponent expansionParameter : newExpansionParameters.getParameter()) { + if ("defaultDisplayLanguage".equals(expansionParameter.getName())) { + expansionParameter.setValue(new CodeType(languageTag)); + expansionParameter.setUserData(UserDataNames.auto_added_parameter, true); + defaultDisplayLanguageCount++; } - if (expParameters != null) { - for (ParametersParameterComponent p : expParameters.getParameter()) { - // matchbox patch https://github.com/ahdis/matchbox/issues/425 change from - // displayLanguage to defaultDisplayLanguage - if ("defaultDisplayLanguage".equals(p.getName())) { - if (p.hasUserData(UserDataNames.auto_added_parameter)) { - if (p.getValueCodeType() != null && !p.getValueCodeType().getCode().equals(lt)) { - log.error("should this acutally happenen that the defaultDisplayLanguage is overerwritten from " - + p.getValueCodeType().getCode() + " to " + lt); - p.setValue(new CodeType(lt)); - } - return; - } else { - // user supplied, we leave it alone - return; - } - } - } - ParametersParameterComponent p = expParameters.addParameter(); - p.setName("defaultDisplayLanguage"); - p.setValue(new CodeType(lt)); - p.setUserData(UserDataNames.auto_added_parameter, true); + } + if (defaultDisplayLanguageCount > 1) { + throw new FHIRException("Multiple defaultDisplayLanguage parameters found"); + } + if (defaultDisplayLanguageCount == 0) { + ParametersParameterComponent p = newExpansionParameters.addParameter(); + p.setName("defaultDisplayLanguage"); + p.setValue(new CodeType(languageTag)); + p.setUserData(UserDataNames.auto_added_parameter, true); + } + this.expansionParameters.set(newExpansionParameters); + } + + private Parameters copyExpansionParametersWithUserData() { + Parameters newExpansionParameters = new Parameters(); + // Copy all existing parameters include userData (not usually included in copyies) + if (this.expansionParameters.get() != null && this.expansionParameters.get().hasParameter()) { + for (ParametersParameterComponent expParameter : this.expansionParameters.get().getParameter()) { + ParametersParameterComponent copy = newExpansionParameters.addParameter(); + expParameter.copyValues(copy); + copy.copyUserData(expParameter); } } + return newExpansionParameters; } - + @Override public OperationOutcome validateTxResource(ValidationOptions options, Resource resource) { if (resource instanceof ValueSet) { @@ -3891,4 +3908,12 @@ public static boolean isAllowedToIterateTerminologyResources() { public static void setAllowedToIterateTerminologyResources(boolean allowedToIterateTerminologyResources) { BaseWorkerContext.allowedToIterateTerminologyResources = allowedToIterateTerminologyResources; } + + public IOIDServices oidServices() { + return this; + } + + public IWorkerContextManager getManager() { + return this; + } } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/elementmodel/XmlParser.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/elementmodel/XmlParser.java index d625dda361b..e8520f62921 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/elementmodel/XmlParser.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/elementmodel/XmlParser.java @@ -227,12 +227,18 @@ public Element parse(List errors, org.w3c.dom.Element element String ns = element.getNamespaceURI(); String name = element.getLocalName(); String path = "/"+pathPrefix(ns)+name; + String rd = element.getAttribute("resourceDefinition"); StructureDefinition sd = getDefinition(errors, line(element, false), col(element, false), (ns == null ? "noNamespace" : ns), name); - if (sd == null) + if (sd == null && rd != null) { + sd = context.fetchResource(StructureDefinition.class, rd); + } + if (sd == null) { return null; + } Element result = new Element(element.getLocalName(), new Property(context, sd.getSnapshot().getElement().get(0), sd, getProfileUtilities(), getContextUtilities())).setFormat(FhirFormat.XML); + result.setResourceDefinition(rd); result.setPath(element.getLocalName()); checkElement(errors, element, result, path, result.getProperty(), false); result.markLocation(line(element, false), col(element, false)); @@ -330,9 +336,23 @@ private StructureDefinition findLegalConstraint(String xsiType, String actualTyp return null; } - public Element parse(List errors, org.w3c.dom.Element base, String type) throws Exception { + public Element parse(List errors, org.w3c.dom.Element base, String typeName) throws Exception { + String typeTail = null; + String type = typeName; + if (typeName.contains(".")) { + typeTail = typeName.substring(typeName.indexOf('.') + 1); + type = typeName.substring(0, typeName.indexOf('.')); + } + StructureDefinition sd = getDefinition(errors, 0, 0, FormatUtilities.FHIR_NS, type); - Element result = new Element(base.getLocalName(), new Property(context, sd.getSnapshot().getElement().get(0), sd, getProfileUtilities(), getContextUtilities())).setFormat(FhirFormat.XML).setNativeObject(base); + if (sd == null) { + throw new FHIRException("Unable to find definition for type "+type); + } + ElementDefinition ed = sd.getSnapshot().getElement().get(0); + if (typeTail != null) { + ed = sd.getSnapshot().getElementByPath(typeName); + } + Element result = new Element(base.getLocalName(), new Property(context, ed, sd, getProfileUtilities(), getContextUtilities())).setFormat(FhirFormat.XML).setNativeObject(base); result.setPath(base.getLocalName()); String path = "/"+pathPrefix(base.getNamespaceURI())+base.getLocalName(); checkElement(errors, base, result, path, result.getProperty(), false); @@ -441,10 +461,11 @@ private void parseChildren(List errors, String path, org.w3c. if (attr.getLocalName().equals("schemaLocation") && FormatUtilities.NS_XSI.equals(attr.getNamespaceURI())) { ok = ok || allowXsiLocation; } - } else + } else { ok = ok || (attr.getLocalName().equals("schemaLocation")); // xsi:schemalocation allowed for non FHIR content + } ok = ok || (hasTypeAttr(element) && attr.getLocalName().equals("type") && FormatUtilities.NS_XSI.equals(attr.getNamespaceURI())); // xsi:type allowed if element says so - if (!ok) { + if (!ok && !Utilities.existsInList(attr.getLocalName(), "resourceDefinition")) { logError(errors, ValidationMessage.NO_RULE_DATE, line(node, false), col(node, false), path, IssueType.STRUCTURE, context.formatMessage(I18nConstants.UNDEFINED_ATTRIBUTE__ON__FOR_TYPE__PROPERTIES__, attr.getNodeName(), node.getNodeName(), element.fhirType(), properties), IssueSeverity.ERROR); } } @@ -777,6 +798,11 @@ public void compose(Element e, OutputStream stream, OutputStyle style, String ba if (Utilities.isAbsoluteUrl(e.getType())) { xml.namespace(urlRoot(e.getType()), "et"); } + + if (ExtensionUtilities.readBoolExtension(e.getProperty().getStructure(), ExtensionDefinitions.EXT_ADDITIONAL_RESOURCE)) { + xml.attribute("resourceDefinition", e.getProperty().getStructure().getVersionedUrl()); + } + addNamespaces(xml, e); composeElement(xml, e, e.getType(), true); xml.end(); @@ -850,6 +876,9 @@ private void composeElement(IXMLWriter xml, Element element, String elementName, if (canonicalFilter.contains(element.getPath())) { return; } + if (element.getProperty().getDefinition().hasExtension(ExtensionDefinitions.EXT_XML_NAME)) { + elementName = element.getProperty().getDefinition().getExtensionString(ExtensionDefinitions.EXT_XML_NAME); + } if (!(isElideElements() && element.isElided())) { if (showDecorations) { @SuppressWarnings("unchecked") @@ -900,6 +929,10 @@ private void composeElement(IXMLWriter xml, Element element, String elementName, if (isElideElements() && element.isElided() && xml.canElide()) xml.elide(); else { + if ((element.getXhtml()==null) && (element.getValue() != null)) { + XhtmlParser xhtml = new XhtmlParser(); + element.setXhtml(xhtml.setXmlMode(true).parse(element.getValue(), null).getDocumentElement()); + } if (isCdaText(element.getProperty())) { new CDANarrativeFormat().convert(xml, element.getXhtml()); } else { diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/terminologies/utilities/TerminologyCache.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/terminologies/utilities/TerminologyCache.java index 27cc483bd2d..5b2734c9d60 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/terminologies/utilities/TerminologyCache.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/terminologies/utilities/TerminologyCache.java @@ -1,5 +1,36 @@ package org.hl7.fhir.r5.terminologies.utilities; +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + */ + + + import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; @@ -12,6 +43,7 @@ import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; import org.hl7.fhir.exceptions.FHIRException; +import org.hl7.fhir.r5.context.ExpansionOptions; import org.hl7.fhir.r5.formats.IParser.OutputStyle; import org.hl7.fhir.r5.formats.JsonParser; import org.hl7.fhir.r5.model.*; @@ -32,1013 +64,1004 @@ import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; +/** + * This implements a two level cache. + * - a temporary cache for remembering previous local operations + * - a persistent cache for remembering tx server operations + * + * the cache is a series of pairs: a map, and a list. the map is the loaded cache, the list is the persistent cache, carefully maintained in order for version control consistency + * + * @author graha + * + */ @MarkedToMoveToAdjunctPackage @Slf4j public class TerminologyCache { - public static class SourcedCodeSystem { - private String server; - private CodeSystem cs; - - public SourcedCodeSystem(String server, CodeSystem cs) { - super(); - this.server = server; - this.cs = cs; - } - public String getServer() { - return server; - } - public CodeSystem getCs() { - return cs; - } - } - - - public static class SourcedCodeSystemEntry { - private String server; - private String filename; - - public SourcedCodeSystemEntry(String server, String filename) { - super(); - this.server = server; - this.filename = filename; - } - public String getServer() { - return server; - } - public String getFilename() { - return filename; - } - } - - - public static class SourcedValueSet { - private String server; - private ValueSet vs; - - public SourcedValueSet(String server, ValueSet vs) { - super(); - this.server = server; - this.vs = vs; - } - public String getServer() { - return server; - } - public ValueSet getVs() { - return vs; - } - } - - public static class SourcedValueSetEntry { - private String server; - private String filename; - - public SourcedValueSetEntry(String server, String filename) { - super(); - this.server = server; - this.filename = filename; - } - public String getServer() { - return server; - } - public String getFilename() { - return filename; - } - } - - public static final boolean TRANSIENT = false; - public static final boolean PERMANENT = true; - private static final String NAME_FOR_NO_SYSTEM = "all-systems"; - private static final String ENTRY_MARKER = "-------------------------------------------------------------------------------------"; - private static final String BREAK = "####"; - private static final String CACHE_FILE_EXTENSION = ".cache"; - private static final String CAPABILITY_STATEMENT_TITLE = ".capabilityStatement"; - private static final String TERMINOLOGY_CAPABILITIES_TITLE = ".terminologyCapabilities"; - private static final String FIXED_CACHE_VERSION = "4"; // last change: change the way tx.fhir.org handles expansions - - - private SystemNameKeyGenerator systemNameKeyGenerator = new SystemNameKeyGenerator(); - - public class CacheToken { - @Getter - private String name; - private String key; - @Getter - private String request; - @Accessors(fluent = true) - @Getter - private boolean hasVersion; - - public void setName(String n) { - String systemName = getSystemNameKeyGenerator().getNameForSystem(n); - if (name == null) - name = systemName; - else if (!systemName.equals(name)) - name = NAME_FOR_NO_SYSTEM; - } - } - - public static class SubsumesResult { - - private Boolean result; - - protected SubsumesResult(Boolean result) { - super(); - this.result = result; - } - - public Boolean getResult() { - return result; - } - - } - - protected SystemNameKeyGenerator getSystemNameKeyGenerator() { - return systemNameKeyGenerator; - } - public class SystemNameKeyGenerator { - public static final String SNOMED_SCT_CODESYSTEM_URL = "http://snomed.info/sct"; - public static final String RXNORM_CODESYSTEM_URL = "http://www.nlm.nih.gov/research/umls/rxnorm"; - public static final String LOINC_CODESYSTEM_URL = "http://loinc.org"; - public static final String UCUM_CODESYSTEM_URL = "http://unitsofmeasure.org"; - - public static final String HL7_TERMINOLOGY_CODESYSTEM_BASE_URL = "http://terminology.hl7.org/CodeSystem/"; - public static final String HL7_SID_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/sid/"; - public static final String HL7_FHIR_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/"; - - public static final String ISO_CODESYSTEM_URN = "urn:iso:std:iso:"; - public static final String LANG_CODESYSTEM_URN = "urn:ietf:bcp:47"; - public static final String MIMETYPES_CODESYSTEM_URN = "urn:ietf:bcp:13"; - - public static final String _11073_CODESYSTEM_URN = "urn:iso:std:iso:11073:10101"; - public static final String DICOM_CODESYSTEM_URL = "http://dicom.nema.org/resources/ontology/DCM"; - - public String getNameForSystem(String system) { - final int lastPipe = system.lastIndexOf('|'); - final String systemBaseName = lastPipe == -1 ? system : system.substring(0,lastPipe); - String systemVersion = lastPipe == -1 ? null : system.substring(lastPipe + 1); - - if (systemVersion != null) { - if (systemVersion.startsWith("http://snomed.info/sct/")) { - systemVersion = systemVersion.substring(23); - } - systemVersion = systemVersion.replace(":", "").replace("/", "").replace("\\", "").replace("?", "").replace("$", "").replace("*", "").replace("#", "").replace("%", ""); - } - if (systemBaseName.equals(SNOMED_SCT_CODESYSTEM_URL)) - return getVersionedSystem("snomed", systemVersion); - if (systemBaseName.equals(RXNORM_CODESYSTEM_URL)) - return getVersionedSystem("rxnorm", systemVersion); - if (systemBaseName.equals(LOINC_CODESYSTEM_URL)) - return getVersionedSystem("loinc", systemVersion); - if (systemBaseName.equals(UCUM_CODESYSTEM_URL)) - return getVersionedSystem("ucum", systemVersion); - if (systemBaseName.startsWith(HL7_SID_CODESYSTEM_BASE_URL)) - return getVersionedSystem(normalizeBaseURL(HL7_SID_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); - if (systemBaseName.equals(_11073_CODESYSTEM_URN)) - return getVersionedSystem("11073", systemVersion); - if (systemBaseName.startsWith(ISO_CODESYSTEM_URN)) - return getVersionedSystem("iso"+systemBaseName.substring(ISO_CODESYSTEM_URN.length()).replace(":", ""), systemVersion); - if (systemBaseName.startsWith(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL)) - return getVersionedSystem(normalizeBaseURL(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); - if (systemBaseName.startsWith(HL7_FHIR_CODESYSTEM_BASE_URL)) - return getVersionedSystem(normalizeBaseURL(HL7_FHIR_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); - if (systemBaseName.equals(LANG_CODESYSTEM_URN)) - return getVersionedSystem("lang", systemVersion); - if (systemBaseName.equals(MIMETYPES_CODESYSTEM_URN)) - return getVersionedSystem("mimetypes", systemVersion); - if (systemBaseName.equals(DICOM_CODESYSTEM_URL)) - return getVersionedSystem("dicom", systemVersion); - return getVersionedSystem(systemBaseName.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X"), systemVersion); - } - - public String normalizeBaseURL(String baseUrl, String fullUrl) { - return fullUrl.substring(baseUrl.length()).replace("/", ""); - } - - public String getVersionedSystem(String baseSystem, String version) { - if (version != null) { - return baseSystem + "_" + version; - } - return baseSystem; - } - } - - - private class CacheEntry { - private String request; - private boolean persistent; - private ValidationResult v; - private ValueSetExpansionOutcome e; - private SubsumesResult s; - } - - private class NamedCache { - private String name; - private List list = new ArrayList(); // persistent entries - private Map map = new HashMap(); - } - - - private Object lock; - private String folder; - @Getter private int requestCount; - @Getter private int hitCount; - @Getter private int networkCount; - - private final static long CAPABILITY_CACHE_EXPIRATION_HOURS = 24; - private final static long CAPABILITY_CACHE_EXPIRATION_MILLISECONDS = CAPABILITY_CACHE_EXPIRATION_HOURS * 60 * 60 * 1000; - private final long capabilityCacheExpirationMilliseconds; - private final TerminologyCapabilitiesCache capabilityStatementCache; - private final TerminologyCapabilitiesCache terminologyCapabilitiesCache; - private Map caches = new HashMap(); - private Map vsCache = new HashMap<>(); - private Map csCache = new HashMap<>(); - private Map serverMap = new HashMap<>(); - - @Getter @Setter private static boolean noCaching; - @Getter @Setter private static boolean cacheErrors; - - protected TerminologyCache(Object lock, String folder, Long capabilityCacheExpirationMilliseconds) throws FileNotFoundException, IOException, FHIRException { - super(); - log.trace("QLDBG folder = {}", folder); - this.lock = lock; - this.capabilityCacheExpirationMilliseconds = capabilityCacheExpirationMilliseconds; - capabilityStatementCache = new CommonsTerminologyCapabilitiesCache<>(capabilityCacheExpirationMilliseconds, TimeUnit.MILLISECONDS); - terminologyCapabilitiesCache = new CommonsTerminologyCapabilitiesCache<>(capabilityCacheExpirationMilliseconds, TimeUnit.MILLISECONDS); - if (folder == null) { - folder = Utilities.path("[tmp]", "default-tx-cache"); - } else if ("n/a".equals(folder)) { - // this is a weird way to do things but it maintains the legacy interface - folder = null; - } - this.folder = folder; - requestCount = 0; - hitCount = 0; - networkCount = 0; - - if (folder != null) { - File f = ManagedFileAccess.file(folder); - if (!f.exists()) { - FileUtilities.createDirectory(folder); - } - if (!f.exists()) { - throw new IOException("Unable to create terminology cache at "+folder); - } - checkVersion(); - load(); - } - } - - // use lock from the context - public TerminologyCache(Object lock, String folder) throws IOException, FHIRException { - this(lock, folder, CAPABILITY_CACHE_EXPIRATION_MILLISECONDS); - } - - private void checkVersion() throws IOException { - File verFile = ManagedFileAccess.file(Utilities.path(folder, "version.ctl")); - if (verFile.exists()) { - String ver = FileUtilities.fileToString(verFile); - if (!ver.equals(FIXED_CACHE_VERSION)) { - log.info("Terminology Cache Version has changed from 1 to "+FIXED_CACHE_VERSION+", so clearing txCache"); - clear(); - } - FileUtilities.stringToFile(FIXED_CACHE_VERSION, verFile); - } else { - FileUtilities.stringToFile(FIXED_CACHE_VERSION, verFile); - } - } - - public String getServerId(String address) throws IOException { - if (serverMap.containsKey(address)) { - return serverMap.get(address); - } - String id = address.replace("http://", "").replace("https://", "").replace("/", "."); - int i = 1; - while (serverMap.containsValue(id)) { - i++; - id = address.replace("https:", "").replace("https:", "").replace("/", ".")+i; - } - serverMap.put(address, id); - if (folder != null) { - IniFile ini = new IniFile(Utilities.path(folder, "servers.ini")); - ini.setStringProperty("servers", id, address, null); - ini.save(); - } - return id; - } - - public void unload() { - // not useable after this is called - caches.clear(); - vsCache.clear(); - csCache.clear(); - } - - public void clear() throws IOException { - if (folder != null) { - FileUtilities.clearDirectory(folder); - } - caches.clear(); - vsCache.clear(); - csCache.clear(); - } - - public boolean hasCapabilityStatement(String address) { - log.trace("QLDBG hasCapabilityStatement "+address+" : "+capabilityStatementCache.containsKey(address)); - return capabilityStatementCache.containsKey(address); - } - - public CapabilityStatement getCapabilityStatement(String address) { - return capabilityStatementCache.get(address); - } - - public void cacheCapabilityStatement(String address, CapabilityStatement capabilityStatement) throws IOException { - log.trace("QLDBG cacheCapabilityStatement "+address); - if (noCaching) { - return; - } - this.capabilityStatementCache.put(address, capabilityStatement); - save(capabilityStatement, CAPABILITY_STATEMENT_TITLE+"."+getServerId(address)); - } - - - public boolean hasTerminologyCapabilities(String address) { - log.trace("QLDBG hasTerminologyCapabilities "+address+" : "+terminologyCapabilitiesCache.containsKey(address)); - return terminologyCapabilitiesCache.containsKey(address); - } - - public TerminologyCapabilities getTerminologyCapabilities(String address) { - return terminologyCapabilitiesCache.get(address); - } - - public void cacheTerminologyCapabilities(String address, TerminologyCapabilities terminologyCapabilities) throws IOException { - log.trace("QLDBG cacheTerminologyCapabilities "+address); - if (noCaching) { - return; - } - this.terminologyCapabilitiesCache.put(address, terminologyCapabilities); - save(terminologyCapabilities, TERMINOLOGY_CAPABILITIES_TITLE+"."+getServerId(address)); - } - - - public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs, Parameters expParameters) { - log.trace("QLDBG generateValidationToken code {} in vs {}", code.getCode(), vs == null ? "null" : vs.getUrl()); - try { - CacheToken ct = new CacheToken(); - if (code.hasSystem()) { - ct.setName(code.getSystem()); - ct.hasVersion = code.hasVersion(); - } - else - ct.name = NAME_FOR_NO_SYSTEM; - nameCacheToken(vs, ct); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - // PATCH MATCHBOX: need to copy expParameters to avoid multithreading issues, see https://github.com/ahdis/matchbox/issues/425 - String expJS = expParameters == null ? "" : json.composeString(expParameters.copy()); - // END PATCH MATCHBOX - - if (vs != null && vs.hasUrl() && vs.hasVersion()) { - ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"url\": \""+Utilities.escapeJson(vs.getUrl()) - +"\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\""+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}\r\n"; - } else if (options.getVsAsUrl()) { - ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+extracted(json, vs)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - } else { - ValueSet vsc = getVSEssense(vs); - ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+(vsc == null ? "null" : extracted(json, vsc))+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - } - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } catch (IOException e) { - throw new Error(e); - } - } - - public CacheToken generateValidationToken(ValidationOptions options, Coding code, String vsUrl, Parameters expParameters) { - log.trace("QLDBG generateValidationToken code {} in vs {}", code.getCode(), vsUrl == null ? "null" : vsUrl); - try { - CacheToken ct = new CacheToken(); - if (code.hasSystem()) { - ct.setName(code.getSystem()); - ct.hasVersion = code.hasVersion(); - } else { - ct.name = NAME_FOR_NO_SYSTEM; - } - ct.setName(vsUrl); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - // PATCH MATCHBOX: need to copy expParameters to avoid multithreading issues, see https://github.com/ahdis/matchbox/issues/425 - String expJS = expParameters == null ? "" : json.composeString(expParameters.copy()); - // END PATCH MATCHBOX - - ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+(vsUrl == null ? "null" : vsUrl)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } catch (IOException e) { - throw new Error(e); - } - } - - public String extracted(JsonParser json, ValueSet vsc) throws IOException { - String s = null; - if (vsc.getExpansion().getContains().size() > 1000 || vsc.getCompose().getIncludeFirstRep().getConcept().size() > 1000) { - s = vsc.getUrl(); - } else { - s = json.composeString(vsc); - } - return s; - } - - public CacheToken generateValidationToken(ValidationOptions options, CodeableConcept code, ValueSet vs, Parameters expParameters) { - log.trace("QLDBG generateValidationToken code {} in vs {}", code.hasText() ? code.getText() : "(no text)", vs == null ? "null" : vs.getUrl()); - try { - CacheToken ct = new CacheToken(); - for (Coding c : code.getCoding()) { - if (c.hasSystem()) { - ct.setName(c.getSystem()); - ct.hasVersion = c.hasVersion(); - } - } - nameCacheToken(vs, ct); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - // PATCH MATCHBOX: need to copy expParameters to avoid multithreading issues, see https://github.com/ahdis/matchbox/issues/425 - String expJS = expParameters == null ? "" : json.composeString(expParameters.copy()); - // END PATCH MATCHBOX - if (vs != null && vs.hasUrl() && vs.hasVersion()) { - ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"url\": \""+Utilities.escapeJson(vs.getUrl())+ - "\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\""+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}\r\n"; - } else if (vs == null) { - ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - } else { - ValueSet vsc = getVSEssense(vs); - ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"valueSet\" :"+extracted(json, vsc)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - } - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } catch (IOException e) { - throw new Error(e); - } - } - - public ValueSet getVSEssense(ValueSet vs) { - if (vs == null) - return null; - ValueSet vsc = new ValueSet(); - vsc.setCompose(vs.getCompose()); - if (vs.hasExpansion()) { - vsc.getExpansion().getParameter().addAll(vs.getExpansion().getParameter()); - vsc.getExpansion().getContains().addAll(vs.getExpansion().getContains()); - } - return vsc; - } - - public CacheToken generateExpandToken(ValueSet vs, boolean hierarchical) { - log.trace("QLDBG generateExpandToken vs {}", vs == null ? "null" : vs.getUrl()); - CacheToken ct = new CacheToken(); - nameCacheToken(vs, ct); - if (vs.hasUrl() && vs.hasVersion()) { - ct.request = "{\"hierarchical\" : "+(hierarchical ? "true" : "false")+", \"url\": \""+Utilities.escapeJson(vs.getUrl())+"\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\"}\r\n"; - } else { - ValueSet vsc = getVSEssense(vs); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - try { - ct.request = "{\"hierarchical\" : "+(hierarchical ? "true" : "false")+", \"valueSet\" :"+extracted(json, vsc)+"}\r\n"; - } catch (IOException e) { - throw new Error(e); - } - } - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } - - public CacheToken generateExpandToken(String url, boolean hierarchical) { - log.trace("QLDBG generateExpandToken url {}", url == null ? "null" : url); - CacheToken ct = new CacheToken(); - ct.request = "{\"hierarchical\" : "+(hierarchical ? "true" : "false")+", \"url\": \""+Utilities.escapeJson(url)+"\"}\r\n"; - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } - - public void nameCacheToken(ValueSet vs, CacheToken ct) { - log.trace("QLDBG nameCacheToken vs {}", vs == null ? "null" : vs.getUrl()); - if (vs != null) { - for (ConceptSetComponent inc : vs.getCompose().getInclude()) { - if (inc.hasSystem()) { - ct.setName(inc.getSystem()); - ct.hasVersion = inc.hasVersion(); - } - } - for (ConceptSetComponent inc : vs.getCompose().getExclude()) { - if (inc.hasSystem()) { - ct.setName(inc.getSystem()); - ct.hasVersion = inc.hasVersion(); - } - } - for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains()) { - if (inc.hasSystem()) { - ct.setName(inc.getSystem()); - ct.hasVersion = inc.hasVersion(); - } - } - } - } - - private String normalizeSystemPath(String path) { - return path.replace("/", "").replace('|','X'); - } - - - - public NamedCache getNamedCache(CacheToken cacheToken) { - - final String cacheName = cacheToken.name == null ? "null" : cacheToken.name; - - NamedCache nc = caches.get(cacheName); - - if (nc == null) { - nc = new NamedCache(); - nc.name = cacheName; - caches.put(nc.name, nc); - } - return nc; - } - - public ValueSetExpansionOutcome getExpansion(CacheToken cacheToken) { - synchronized (lock) { - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = nc.map.get(cacheToken.key); - if (e == null) - return null; - else - return e.e; - } - } - - public void cacheExpansion(CacheToken cacheToken, ValueSetExpansionOutcome res, boolean persistent) { - synchronized (lock) { - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = new CacheEntry(); - e.request = cacheToken.request; - e.persistent = persistent; - e.e = res; - store(cacheToken, persistent, nc, e); - } - } - - public void store(CacheToken cacheToken, boolean persistent, NamedCache nc, CacheEntry e) { - log.trace("QLDBG store NamedCache.name={}, CacheToken.name={}, CacheToken.key={}", nc.name, cacheToken.name, cacheToken.key); - if (noCaching) { - return; - } - - if ( !cacheErrors && - ( e.v!= null - && e.v.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED - && !cacheToken.hasVersion)) { - return; - } - - boolean n = nc.map.containsKey(cacheToken.key); - nc.map.put(cacheToken.key, e); - if (persistent) { - if (n) { - for (int i = nc.list.size()- 1; i>= 0; i--) { - if (nc.list.get(i).request.equals(e.request)) { - nc.list.remove(i); - } - } - } - nc.list.add(e); - save(nc); - } - } - - public ValidationResult getValidation(CacheToken cacheToken) { - log.trace("QLDBG getValidation CacheToken.name={}, CacheToken.key={}", cacheToken.name, cacheToken.key); - if (cacheToken.key == null) { - return null; - } - synchronized (lock) { - requestCount++; - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = nc.map.get(cacheToken.key); - if (e == null) { - networkCount++; - return null; - } else { - hitCount++; - return new ValidationResult(e.v); - } - } - } - - public void cacheValidation(CacheToken cacheToken, ValidationResult res, boolean persistent) { - log.trace("QLDBG cacheValidation CacheToken.name={}, CacheToken.key={}", cacheToken.name, cacheToken.key); - if (cacheToken.key != null) { - synchronized (lock) { - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = new CacheEntry(); - e.request = cacheToken.request; - e.persistent = persistent; - e.v = new ValidationResult(res); - store(cacheToken, persistent, nc, e); - } - } - } - - - // persistence - - public void save() { - - } - - private void save(K resource, String title) { - if (folder == null) - return; - - try { - OutputStreamWriter sw = new OutputStreamWriter(ManagedFileAccess.outStream(Utilities.path(folder, title + CACHE_FILE_EXTENSION)), "UTF-8"); - - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - - sw.write(json.composeString(resource).trim()); - sw.close(); - } catch (Exception e) { - log.error("error saving capability statement "+e.getMessage(), e); - } - } - - private void save(NamedCache nc) { - log.trace("QLDBG cacheValidation NamedCache.name={}", nc.name); - if (folder == null) - return; - - try { - OutputStreamWriter sw = new OutputStreamWriter(ManagedFileAccess.outStream(Utilities.path(folder, nc.name+CACHE_FILE_EXTENSION)), "UTF-8"); - sw.write(ENTRY_MARKER+"\r\n"); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - for (CacheEntry ce : nc.list) { - sw.write(ce.request.trim()); - sw.write(BREAK+"\r\n"); - if (ce.e != null) { - sw.write("e: {\r\n"); - if (ce.e.isFromServer()) - sw.write(" \"from-server\" : true,\r\n"); - if (ce.e.getValueset() != null) { - if (ce.e.getValueset().hasUserData(UserDataNames.VS_EXPANSION_SOURCE)) { - sw.write(" \"source\" : "+Utilities.escapeJson(ce.e.getValueset().getUserString(UserDataNames.VS_EXPANSION_SOURCE)).trim()+",\r\n"); - } - sw.write(" \"valueSet\" : "+json.composeString(ce.e.getValueset()).trim()+",\r\n"); - } - sw.write(" \"error\" : \""+Utilities.escapeJson(ce.e.getError()).trim()+"\"\r\n}\r\n"); - } else if (ce.s != null) { - sw.write("s: {\r\n"); - sw.write(" \"result\" : "+ce.s.result+"\r\n}\r\n"); - } else { - sw.write("v: {\r\n"); - boolean first = true; - if (ce.v.getDisplay() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"display\" : \""+Utilities.escapeJson(ce.v.getDisplay()).trim()+"\""); - } - if (ce.v.getCode() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"code\" : \""+Utilities.escapeJson(ce.v.getCode()).trim()+"\""); - } - if (ce.v.getSystem() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"system\" : \""+Utilities.escapeJson(ce.v.getSystem()).trim()+"\""); - } - if (ce.v.getVersion() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"version\" : \""+Utilities.escapeJson(ce.v.getVersion()).trim()+"\""); - } - if (ce.v.getSeverity() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"severity\" : "+"\""+ce.v.getSeverity().toCode().trim()+"\""+""); - } - if (ce.v.getMessage() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"error\" : \""+Utilities.escapeJson(ce.v.getMessage()).trim()+"\""); - } - if (ce.v.getErrorClass() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"class\" : \""+Utilities.escapeJson(ce.v.getErrorClass().toString())+"\""); - } - if (ce.v.getDefinition() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"definition\" : \""+Utilities.escapeJson(ce.v.getDefinition()).trim()+"\""); - } - if (ce.v.getStatus() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"status\" : \""+Utilities.escapeJson(ce.v.getStatus()).trim()+"\""); - } - if (ce.v.getServer() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"server\" : \""+Utilities.escapeJson(ce.v.getServer()).trim()+"\""); - } - if (ce.v.isInactive()) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"inactive\" : true"); - } - if (ce.v.getUnknownSystems() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"unknown-systems\" : \""+Utilities.escapeJson(CommaSeparatedStringBuilder.join(",", ce.v.getUnknownSystems())).trim()+"\""); - } - if (ce.v.getParameters() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"parameters\" : "+json.composeString(ce.v.getParameters()).trim()+"\r\n"); - } - if (ce.v.getIssues() != null) { - if (first) first = false; else sw.write(",\r\n"); - OperationOutcome oo = new OperationOutcome(); - oo.setIssue(ce.v.getIssues()); - sw.write(" \"issues\" : "+json.composeString(oo).trim()+"\r\n"); - } - sw.write("\r\n}\r\n"); - } - sw.write(ENTRY_MARKER+"\r\n"); - } - sw.close(); - } catch (Exception e) { - log.error("error saving "+nc.name+": "+e.getMessage(), e); - } - } - - private boolean isCapabilityCache(String fn) { - log.trace("QLDBG isCapabilityCache {}", fn); - if (fn == null) { - return false; - } - return fn.startsWith(CAPABILITY_STATEMENT_TITLE) || fn.startsWith(TERMINOLOGY_CAPABILITIES_TITLE); - } - - private void loadCapabilityCache(String fn) throws IOException { - log.trace("QLDBG loadCapabilityCache {}", fn); - if (TerminologyCapabilitiesCache.cacheFileHasExpired(Utilities.path(folder, fn), capabilityCacheExpirationMilliseconds)) { - return; - } - try { - String src = FileUtilities.fileToString(Utilities.path(folder, fn)); - String serverId = Utilities.getFileNameForName(fn).replace(CACHE_FILE_EXTENSION, ""); - serverId = serverId.substring(serverId.indexOf(".")+1); - serverId = serverId.substring(serverId.indexOf(".")+1); - String address = getServerForId(serverId); - if (address != null) { - JsonObject o = (JsonObject) new com.google.gson.JsonParser().parse(src); - Resource resource = new JsonParser().parse(o); - - if (fn.startsWith(CAPABILITY_STATEMENT_TITLE)) { - this.capabilityStatementCache.put(address, (CapabilityStatement) resource); - } else if (fn.startsWith(TERMINOLOGY_CAPABILITIES_TITLE)) { - this.terminologyCapabilitiesCache.put(address, (TerminologyCapabilities) resource); - } - } - } catch (Exception e) { - e.printStackTrace(); - throw new FHIRException("Error loading " + fn + ": " + e.getMessage(), e); - } - } - - private String getServerForId(String serverId) { - for (String n : serverMap.keySet()) { - if (serverMap.get(n).equals(serverId)) { - return n; - } - } - return null; - } - - private CacheEntry getCacheEntry(String request, String resultString) throws IOException { - CacheEntry ce = new CacheEntry(); - ce.persistent = true; - ce.request = request; - char e = resultString.charAt(0); - resultString = resultString.substring(3); - JsonObject o = (JsonObject) new com.google.gson.JsonParser().parse(resultString); - String error = loadJS(o.get("error")); - if (e == 'e') { - if (o.has("valueSet")) { - ce.e = new ValueSetExpansionOutcome((ValueSet) new JsonParser().parse(o.getAsJsonObject("valueSet")), error, TerminologyServiceErrorClass.UNKNOWN, o.has("from-server")); - if (o.has("source")) { - ce.e.getValueset().setUserData(UserDataNames.VS_EXPANSION_SOURCE, o.get("source").getAsString()); - } - } else { - ce.e = new ValueSetExpansionOutcome(error, TerminologyServiceErrorClass.UNKNOWN, o.has("from-server")); - } - } else if (e == 's') { - ce.s = new SubsumesResult(o.get("result").getAsBoolean()); - } else { - String t = loadJS(o.get("severity")); - IssueSeverity severity = t == null ? null : IssueSeverity.fromCode(t); - String display = loadJS(o.get("display")); - String code = loadJS(o.get("code")); - String system = loadJS(o.get("system")); - String version = loadJS(o.get("version")); - String definition = loadJS(o.get("definition")); - String server = loadJS(o.get("server")); - String status = loadJS(o.get("status")); - boolean inactive = "true".equals(loadJS(o.get("inactive"))); - String unknownSystems = loadJS(o.get("unknown-systems")); - OperationOutcome oo = o.has("issues") ? (OperationOutcome) new JsonParser().parse(o.getAsJsonObject("issues")) : null; - Parameters p = o.has("parameters") ? (Parameters) new JsonParser().parse(o.getAsJsonObject("parameters")) : null; - t = loadJS(o.get("class")); - TerminologyServiceErrorClass errorClass = t == null ? null : TerminologyServiceErrorClass.valueOf(t) ; - ce.v = new ValidationResult(severity, error, system, version, new ConceptDefinitionComponent().setDisplay(display).setDefinition(definition).setCode(code), display, null).setErrorClass(errorClass); - ce.v.setUnknownSystems(CommaSeparatedStringBuilder.toSet(unknownSystems)); - ce.v.setServer(server); - ce.v.setStatus(inactive, status); - if (oo != null) { - ce.v.setIssues(oo.getIssue()); - } - if (p != null) { - ce.v.setParameters(p); - } - } - return ce; - } - - private void loadNamedCache(String fn) throws IOException { - log.trace("QLDBG loadNamedCache {}", fn); - int c = 0; - try { - String src = FileUtilities.fileToString(Utilities.path(folder, fn)); - String title = fn.substring(0, fn.lastIndexOf(".")); - - NamedCache nc = new NamedCache(); - nc.name = title; - - if (src.startsWith("?")) - src = src.substring(1); - int i = src.indexOf(ENTRY_MARKER); - while (i > -1) { - c++; - String s = src.substring(0, i); - src = src.substring(i + ENTRY_MARKER.length() + 1); - i = src.indexOf(ENTRY_MARKER); - if (!Utilities.noString(s)) { - int j = s.indexOf(BREAK); - String request = s.substring(0, j); - String p = s.substring(j + BREAK.length() + 1).trim(); - - CacheEntry cacheEntry = getCacheEntry(request, p); - - nc.map.put(String.valueOf(hashJson(cacheEntry.request)), cacheEntry); - nc.list.add(cacheEntry); - } - caches.put(nc.name, nc); - } - } catch (Exception e) { - log.error("Error loading "+fn+": "+e.getMessage()+" entry "+c+" - ignoring it", e); - } - } - - private void load() throws FHIRException, IOException { - IniFile ini = new IniFile(Utilities.path(folder, "servers.ini")); - if (ini.hasSection("servers")) { - for (String n : ini.getPropertyNames("servers")) { - serverMap.put(ini.getStringProperty("servers", n), n); - } - } - - for (String fn : ManagedFileAccess.file(folder).list()) { - if (fn.endsWith(CACHE_FILE_EXTENSION) && !fn.equals("validation" + CACHE_FILE_EXTENSION)) { - try { - if (isCapabilityCache(fn)) { - loadCapabilityCache(fn); - } else { - loadNamedCache(fn); - } - } catch (FHIRException e) { - throw e; - } - } - } - try { - File f = ManagedFileAccess.file(Utilities.path(folder, "vs-externals.json")); - if (f.exists()) { - org.hl7.fhir.utilities.json.model.JsonObject json = org.hl7.fhir.utilities.json.parser.JsonParser.parseObject(f); - for (JsonProperty p : json.getProperties()) { - if (p.getValue().isJsonNull()) { - vsCache.put(p.getName(), null); - } else { - org.hl7.fhir.utilities.json.model.JsonObject j = p.getValue().asJsonObject(); - vsCache.put(p.getName(), new SourcedValueSetEntry(j.asString("server"), j.asString("filename"))); - } - } - } - } catch (Exception e) { - log.error("Error loading vs external cache: "+e.getMessage(), e); - } - try { - File f = ManagedFileAccess.file(Utilities.path(folder, "cs-externals.json")); - if (f.exists()) { - org.hl7.fhir.utilities.json.model.JsonObject json = org.hl7.fhir.utilities.json.parser.JsonParser.parseObject(f); - for (JsonProperty p : json.getProperties()) { - if (p.getValue().isJsonNull()) { - csCache.put(p.getName(), null); - } else { - org.hl7.fhir.utilities.json.model.JsonObject j = p.getValue().asJsonObject(); - csCache.put(p.getName(), new SourcedCodeSystemEntry(j.asString("server"), j.asString("filename"))); - } - } - } - } catch (Exception e) { - log.error("Error loading vs external cache: "+e.getMessage(), e); - } - } - - private String loadJS(JsonElement e) { - if (e == null) - return null; - if (!(e instanceof JsonPrimitive)) - return null; - String s = e.getAsString(); - if ("".equals(s)) - return null; - return s; - } - - public String hashJson(String s) { - return String.valueOf(s - .trim() - .replaceAll("\\r\\n?", "\n") - .hashCode()); - } - - // management - - public String summary(ValueSet vs) { - if (vs == null) - return "null"; - - CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); - for (ConceptSetComponent cc : vs.getCompose().getInclude()) - b.append("Include "+getIncSummary(cc)); - for (ConceptSetComponent cc : vs.getCompose().getExclude()) - b.append("Exclude "+getIncSummary(cc)); - return b.toString(); - } - - private String getIncSummary(ConceptSetComponent cc) { - CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); - for (UriType vs : cc.getValueSet()) - b.append(vs.asStringValue()); - String vsd = b.length() > 0 ? " where the codes are in the value sets ("+b.toString()+")" : ""; - String system = cc.getSystem(); - if (cc.hasConcept()) - return Integer.toString(cc.getConcept().size())+" codes from "+system+vsd; - if (cc.hasFilter()) { - String s = ""; - for (ConceptSetFilterComponent f : cc.getFilter()) { - if (!Utilities.noString(s)) - s = s + " & "; - s = s + f.getProperty()+" "+(f.hasOp() ? f.getOp().toCode() : "?")+" "+f.getValue(); - } - return "from "+system+" where "+s+vsd; - } - return "All codes from "+system+vsd; - } - - public String summary(Coding code) { - return code.getSystem()+"#"+code.getCode()+(code.hasDisplay() ? ": \""+code.getDisplay()+"\"" : ""); - } - - public String summary(CodeableConcept code) { - StringBuilder b = new StringBuilder(); - b.append("{"); - boolean first = true; - for (Coding c : code.getCoding()) { - if (first) first = false; else b.append(","); - b.append(summary(c)); - } - b.append("}: \""); - b.append(code.getText()); - b.append("\""); - return b.toString(); - } - - public void removeCS(String url) { - synchronized (lock) { - String name = getSystemNameKeyGenerator().getNameForSystem(url); - if (caches.containsKey(name)) { - caches.remove(name); - } - } - } - - public String getFolder() { - return folder; - } - - public Map servers() { - Map servers = new HashMap<>(); + public static class SourcedCodeSystem { + private String server; + private CodeSystem cs; + + public SourcedCodeSystem(String server, CodeSystem cs) { + super(); + this.server = server; + this.cs = cs; + } + public String getServer() { + return server; + } + public CodeSystem getCs() { + return cs; + } + } + + + public static class SourcedCodeSystemEntry { + private String server; + private String filename; + + public SourcedCodeSystemEntry(String server, String filename) { + super(); + this.server = server; + this.filename = filename; + } + public String getServer() { + return server; + } + public String getFilename() { + return filename; + } + } + + + public static class SourcedValueSet { + private String server; + private ValueSet vs; + + public SourcedValueSet(String server, ValueSet vs) { + super(); + this.server = server; + this.vs = vs; + } + public String getServer() { + return server; + } + public ValueSet getVs() { + return vs; + } + } + + public static class SourcedValueSetEntry { + private String server; + private String filename; + + public SourcedValueSetEntry(String server, String filename) { + super(); + this.server = server; + this.filename = filename; + } + public String getServer() { + return server; + } + public String getFilename() { + return filename; + } + } + + public static final boolean TRANSIENT = false; + public static final boolean PERMANENT = true; + private static final String NAME_FOR_NO_SYSTEM = "all-systems"; + private static final String ENTRY_MARKER = "-------------------------------------------------------------------------------------"; + private static final String BREAK = "####"; + private static final String CACHE_FILE_EXTENSION = ".cache"; + private static final String CAPABILITY_STATEMENT_TITLE = ".capabilityStatement"; + private static final String TERMINOLOGY_CAPABILITIES_TITLE = ".terminologyCapabilities"; + private static final String FIXED_CACHE_VERSION = "4"; // last change: change the way tx.fhir.org handles expansions + + + private SystemNameKeyGenerator systemNameKeyGenerator = new SystemNameKeyGenerator(); + + public class CacheToken { + @Getter + private String name; + private String key; + @Getter + private String request; + @Accessors(fluent = true) + @Getter + private boolean hasVersion; + + public void setName(String n) { + String systemName = getSystemNameKeyGenerator().getNameForSystem(n); + if (name == null) + name = systemName; + else if (!systemName.equals(name)) + name = NAME_FOR_NO_SYSTEM; + } + } + + public static class SubsumesResult { + + private Boolean result; + + protected SubsumesResult(Boolean result) { + super(); + this.result = result; + } + + public Boolean getResult() { + return result; + } + + } + + protected SystemNameKeyGenerator getSystemNameKeyGenerator() { + return systemNameKeyGenerator; + } + public class SystemNameKeyGenerator { + public static final String SNOMED_SCT_CODESYSTEM_URL = "http://snomed.info/sct"; + public static final String RXNORM_CODESYSTEM_URL = "http://www.nlm.nih.gov/research/umls/rxnorm"; + public static final String LOINC_CODESYSTEM_URL = "http://loinc.org"; + public static final String UCUM_CODESYSTEM_URL = "http://unitsofmeasure.org"; + + public static final String HL7_TERMINOLOGY_CODESYSTEM_BASE_URL = "http://terminology.hl7.org/CodeSystem/"; + public static final String HL7_SID_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/sid/"; + public static final String HL7_FHIR_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/"; + + public static final String ISO_CODESYSTEM_URN = "urn:iso:std:iso:"; + public static final String LANG_CODESYSTEM_URN = "urn:ietf:bcp:47"; + public static final String MIMETYPES_CODESYSTEM_URN = "urn:ietf:bcp:13"; + + public static final String _11073_CODESYSTEM_URN = "urn:iso:std:iso:11073:10101"; + public static final String DICOM_CODESYSTEM_URL = "http://dicom.nema.org/resources/ontology/DCM"; + + public String getNameForSystem(String system) { + final int lastPipe = system.lastIndexOf('|'); + final String systemBaseName = lastPipe == -1 ? system : system.substring(0,lastPipe); + String systemVersion = lastPipe == -1 ? null : system.substring(lastPipe + 1); + + if (systemVersion != null) { + if (systemVersion.startsWith("http://snomed.info/sct/")) { + systemVersion = systemVersion.substring(23); + } + systemVersion = systemVersion.replace(":", "").replace("/", "").replace("\\", "").replace("?", "").replace("$", "").replace("*", "").replace("#", "").replace("%", ""); + } + if (systemBaseName.equals(SNOMED_SCT_CODESYSTEM_URL)) + return getVersionedSystem("snomed", systemVersion); + if (systemBaseName.equals(RXNORM_CODESYSTEM_URL)) + return getVersionedSystem("rxnorm", systemVersion); + if (systemBaseName.equals(LOINC_CODESYSTEM_URL)) + return getVersionedSystem("loinc", systemVersion); + if (systemBaseName.equals(UCUM_CODESYSTEM_URL)) + return getVersionedSystem("ucum", systemVersion); + if (systemBaseName.startsWith(HL7_SID_CODESYSTEM_BASE_URL)) + return getVersionedSystem(normalizeBaseURL(HL7_SID_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); + if (systemBaseName.equals(_11073_CODESYSTEM_URN)) + return getVersionedSystem("11073", systemVersion); + if (systemBaseName.startsWith(ISO_CODESYSTEM_URN)) + return getVersionedSystem("iso"+systemBaseName.substring(ISO_CODESYSTEM_URN.length()).replace(":", ""), systemVersion); + if (systemBaseName.startsWith(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL)) + return getVersionedSystem(normalizeBaseURL(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); + if (systemBaseName.startsWith(HL7_FHIR_CODESYSTEM_BASE_URL)) + return getVersionedSystem(normalizeBaseURL(HL7_FHIR_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); + if (systemBaseName.equals(LANG_CODESYSTEM_URN)) + return getVersionedSystem("lang", systemVersion); + if (systemBaseName.equals(MIMETYPES_CODESYSTEM_URN)) + return getVersionedSystem("mimetypes", systemVersion); + if (systemBaseName.equals(DICOM_CODESYSTEM_URL)) + return getVersionedSystem("dicom", systemVersion); + return getVersionedSystem(systemBaseName.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X"), systemVersion); + } + + public String normalizeBaseURL(String baseUrl, String fullUrl) { + return fullUrl.substring(baseUrl.length()).replace("/", ""); + } + + public String getVersionedSystem(String baseSystem, String version) { + if (version != null) { + return baseSystem + "_" + version; + } + return baseSystem; + } + } + + + private class CacheEntry { + private String request; + private boolean persistent; + private ValidationResult v; + private ValueSetExpansionOutcome e; + private SubsumesResult s; + } + + private class NamedCache { + private String name; + private List list = new ArrayList(); // persistent entries + private Map map = new HashMap(); + } + + + private Object lock; + private String folder; + @Getter private int requestCount; + @Getter private int hitCount; + @Getter private int networkCount; + + private final static long CAPABILITY_CACHE_EXPIRATION_HOURS = 24; + private final static long CAPABILITY_CACHE_EXPIRATION_MILLISECONDS = CAPABILITY_CACHE_EXPIRATION_HOURS * 60 * 60 * 1000; + private final long capabilityCacheExpirationMilliseconds; + private final TerminologyCapabilitiesCache capabilityStatementCache; + private final TerminologyCapabilitiesCache terminologyCapabilitiesCache; + private Map caches = new HashMap(); + private Map vsCache = new HashMap<>(); + private Map csCache = new HashMap<>(); + private Map serverMap = new HashMap<>(); + + @Getter @Setter private static boolean noCaching; + @Getter @Setter private static boolean cacheErrors; + + protected TerminologyCache(Object lock, String folder, Long capabilityCacheExpirationMilliseconds) throws FileNotFoundException, IOException, FHIRException { + super(); + this.lock = lock; + this.capabilityCacheExpirationMilliseconds = capabilityCacheExpirationMilliseconds; + capabilityStatementCache = new CommonsTerminologyCapabilitiesCache<>(capabilityCacheExpirationMilliseconds, TimeUnit.MILLISECONDS); + terminologyCapabilitiesCache = new CommonsTerminologyCapabilitiesCache<>(capabilityCacheExpirationMilliseconds, TimeUnit.MILLISECONDS); + if (folder == null) { + folder = Utilities.path("[tmp]", "default-tx-cache"); + } else if ("n/a".equals(folder)) { + // this is a weird way to do things but it maintains the legacy interface + folder = null; + } + this.folder = folder; + requestCount = 0; + hitCount = 0; + networkCount = 0; + + if (folder != null) { + File f = ManagedFileAccess.file(folder); + if (!f.exists()) { + FileUtilities.createDirectory(folder); + } + if (!f.exists()) { + throw new IOException("Unable to create terminology cache at "+folder); + } + checkVersion(); + load(); + } + } + + // use lock from the context + public TerminologyCache(Object lock, String folder) throws IOException, FHIRException { + this(lock, folder, CAPABILITY_CACHE_EXPIRATION_MILLISECONDS); + } + + private void checkVersion() throws IOException { + File verFile = ManagedFileAccess.file(Utilities.path(folder, "version.ctl")); + if (verFile.exists()) { + String ver = FileUtilities.fileToString(verFile); + if (!ver.equals(FIXED_CACHE_VERSION)) { + log.info("Terminology Cache Version has changed from 1 to "+FIXED_CACHE_VERSION+", so clearing txCache"); + clear(); + } + FileUtilities.stringToFile(FIXED_CACHE_VERSION, verFile); + } else { + FileUtilities.stringToFile(FIXED_CACHE_VERSION, verFile); + } + } + + public String getServerId(String address) throws IOException { + if (serverMap.containsKey(address)) { + return serverMap.get(address); + } + String id = address.replace("http://", "").replace("https://", "").replace("/", "."); + int i = 1; + while (serverMap.containsValue(id)) { + i++; + id = address.replace("https:", "").replace("https:", "").replace("/", ".")+i; + } + serverMap.put(address, id); + if (folder != null) { + IniFile ini = new IniFile(Utilities.path(folder, "servers.ini")); + ini.setStringProperty("servers", id, address, null); + ini.save(); + } + return id; + } + + public void unload() { + // not useable after this is called + caches.clear(); + vsCache.clear(); + csCache.clear(); + } + + public void clear() throws IOException { + if (folder != null) { + FileUtilities.clearDirectory(folder); + } + caches.clear(); + vsCache.clear(); + csCache.clear(); + } + + public boolean hasCapabilityStatement(String address) { + return capabilityStatementCache.containsKey(address); + } + + public CapabilityStatement getCapabilityStatement(String address) { + return capabilityStatementCache.get(address); + } + + public void cacheCapabilityStatement(String address, CapabilityStatement capabilityStatement) throws IOException { + if (noCaching) { + return; + } + this.capabilityStatementCache.put(address, capabilityStatement); + save(capabilityStatement, CAPABILITY_STATEMENT_TITLE+"."+getServerId(address)); + } + + + public boolean hasTerminologyCapabilities(String address) { + return terminologyCapabilitiesCache.containsKey(address); + } + + public TerminologyCapabilities getTerminologyCapabilities(String address) { + return terminologyCapabilitiesCache.get(address); + } + + public void cacheTerminologyCapabilities(String address, TerminologyCapabilities terminologyCapabilities) throws IOException { + if (noCaching) { + return; + } + this.terminologyCapabilitiesCache.put(address, terminologyCapabilities); + save(terminologyCapabilities, TERMINOLOGY_CAPABILITIES_TITLE+"."+getServerId(address)); + } + + + public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs, Parameters expParameters) { + try { + CacheToken ct = new CacheToken(); + if (code.hasSystem()) { + ct.setName(code.getSystem()); + ct.hasVersion = code.hasVersion(); + } + else + ct.name = NAME_FOR_NO_SYSTEM; + nameCacheToken(vs, ct); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + String expJS = expParameters == null ? "" : json.composeString(expParameters); + + if (vs != null && vs.hasUrl() && vs.hasVersion()) { + ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"url\": \""+Utilities.escapeJson(vs.getUrl()) + +"\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\""+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}\r\n"; + } else if (options.getVsAsUrl()) { + ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+extracted(json, vs)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + } else { + ValueSet vsc = getVSEssense(vs); + ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+(vsc == null ? "null" : extracted(json, vsc))+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + } + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } catch (IOException e) { + throw new Error(e); + } + } + + public CacheToken generateValidationToken(ValidationOptions options, Coding code, String vsUrl, Parameters expParameters) { + try { + CacheToken ct = new CacheToken(); + if (code.hasSystem()) { + ct.setName(code.getSystem()); + ct.hasVersion = code.hasVersion(); + } else { + ct.name = NAME_FOR_NO_SYSTEM; + } + ct.setName(vsUrl); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + String expJS = json.composeString(expParameters); + + ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+(vsUrl == null ? "null" : vsUrl)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } catch (IOException e) { + throw new Error(e); + } + } + + public String extracted(JsonParser json, ValueSet vsc) throws IOException { + String s = null; + if (vsc.getExpansion().getContains().size() > 1000 || vsc.getCompose().getIncludeFirstRep().getConcept().size() > 1000) { + s = vsc.getUrl(); + } else { + s = json.composeString(vsc); + } + return s; + } + + public CacheToken generateValidationToken(ValidationOptions options, CodeableConcept code, ValueSet vs, Parameters expParameters) { + try { + CacheToken ct = new CacheToken(); + for (Coding c : code.getCoding()) { + if (c.hasSystem()) { + ct.setName(c.getSystem()); + ct.hasVersion = c.hasVersion(); + } + } + nameCacheToken(vs, ct); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + String expJS = json.composeString(expParameters); + if (vs != null && vs.hasUrl() && vs.hasVersion()) { + ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"url\": \""+Utilities.escapeJson(vs.getUrl())+ + "\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\""+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}\r\n"; + } else if (vs == null) { + ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + } else { + ValueSet vsc = getVSEssense(vs); + ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"valueSet\" :"+extracted(json, vsc)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + } + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } catch (IOException e) { + throw new Error(e); + } + } + + public ValueSet getVSEssense(ValueSet vs) { + if (vs == null) + return null; + ValueSet vsc = new ValueSet(); + vsc.setCompose(vs.getCompose()); + if (vs.hasExpansion()) { + vsc.getExpansion().getParameter().addAll(vs.getExpansion().getParameter()); + vsc.getExpansion().getContains().addAll(vs.getExpansion().getContains()); + } + return vsc; + } + + public CacheToken generateExpandToken(ValueSet vs, ExpansionOptions options) { + CacheToken ct = new CacheToken(); + nameCacheToken(vs, ct); + if (vs.hasUrl() && vs.hasVersion()) { + ct.request = "{\"hierarchical\" : "+(options.isHierarchical() ? "true" : "false")+(options.hasLanguage() ? ", \"language\": \""+options.getLanguage()+"\"" : "")+", \"url\": \""+Utilities.escapeJson(vs.getUrl())+"\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\"}\r\n"; + } else { + ValueSet vsc = getVSEssense(vs); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + try { + ct.request = "{\"hierarchical\" : "+(options.isHierarchical() ? "true" : "false")+(options.hasLanguage() ? ", \"language\": \""+options.getLanguage()+"\"" : "")+", \"valueSet\" :"+extracted(json, vsc)+"}\r\n"; + } catch (IOException e) { + throw new Error(e); + } + } + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } + + public CacheToken generateExpandToken(String url, ExpansionOptions options) { + CacheToken ct = new CacheToken(); + ct.request = "{\"hierarchical\" : "+(options.isHierarchical() ? "true" : "false")+(options.hasLanguage() ? ", \"language\": \""+options.getLanguage()+"\"" : "")+", \"url\": \""+Utilities.escapeJson(url)+"\"}\r\n"; + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } + + public void nameCacheToken(ValueSet vs, CacheToken ct) { + if (vs != null) { + for (ConceptSetComponent inc : vs.getCompose().getInclude()) { + if (inc.hasSystem()) { + ct.setName(inc.getSystem()); + ct.hasVersion = inc.hasVersion(); + } + } + for (ConceptSetComponent inc : vs.getCompose().getExclude()) { + if (inc.hasSystem()) { + ct.setName(inc.getSystem()); + ct.hasVersion = inc.hasVersion(); + } + } + for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains()) { + if (inc.hasSystem()) { + ct.setName(inc.getSystem()); + ct.hasVersion = inc.hasVersion(); + } + } + } + } + + private String normalizeSystemPath(String path) { + return path.replace("/", "").replace('|','X'); + } + + + + public NamedCache getNamedCache(CacheToken cacheToken) { + + final String cacheName = cacheToken.name == null ? "null" : cacheToken.name; + + NamedCache nc = caches.get(cacheName); + + if (nc == null) { + nc = new NamedCache(); + nc.name = cacheName; + caches.put(nc.name, nc); + } + return nc; + } + + public ValueSetExpansionOutcome getExpansion(CacheToken cacheToken) { + synchronized (lock) { + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = nc.map.get(cacheToken.key); + if (e == null) + return null; + else + return e.e; + } + } + + public void cacheExpansion(CacheToken cacheToken, ValueSetExpansionOutcome res, boolean persistent) { + synchronized (lock) { + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = new CacheEntry(); + e.request = cacheToken.request; + e.persistent = persistent; + e.e = res; + store(cacheToken, persistent, nc, e); + } + } + + public void store(CacheToken cacheToken, boolean persistent, NamedCache nc, CacheEntry e) { + if (noCaching) { + return; + } + + if ( !cacheErrors && + ( e.v!= null + && e.v.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED + && !cacheToken.hasVersion)) { + return; + } + + boolean n = nc.map.containsKey(cacheToken.key); + nc.map.put(cacheToken.key, e); + if (persistent) { + if (n) { + for (int i = nc.list.size()- 1; i>= 0; i--) { + if (nc.list.get(i).request.equals(e.request)) { + nc.list.remove(i); + } + } + } + nc.list.add(e); + save(nc); + } + } + + public ValidationResult getValidation(CacheToken cacheToken) { + if (cacheToken.key == null) { + return null; + } + synchronized (lock) { + requestCount++; + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = nc.map.get(cacheToken.key); + if (e == null) { + networkCount++; + return null; + } else { + hitCount++; + return new ValidationResult(e.v); + } + } + } + + public void cacheValidation(CacheToken cacheToken, ValidationResult res, boolean persistent) { + if (cacheToken.key != null) { + synchronized (lock) { + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = new CacheEntry(); + e.request = cacheToken.request; + e.persistent = persistent; + e.v = new ValidationResult(res); + store(cacheToken, persistent, nc, e); + } + } + } + + + // persistence + + public void save() { + + } + + private void save(K resource, String title) { + if (folder == null) + return; + + try { + OutputStreamWriter sw = new OutputStreamWriter(ManagedFileAccess.outStream(Utilities.path(folder, title + CACHE_FILE_EXTENSION)), "UTF-8"); + + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + + sw.write(json.composeString(resource).trim()); + sw.close(); + } catch (Exception e) { + log.error("error saving capability statement "+e.getMessage(), e); + } + } + + private void save(NamedCache nc) { + if (folder == null) + return; + + try { + OutputStreamWriter sw = new OutputStreamWriter(ManagedFileAccess.outStream(Utilities.path(folder, nc.name+CACHE_FILE_EXTENSION)), "UTF-8"); + sw.write(ENTRY_MARKER+"\r\n"); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + for (CacheEntry ce : nc.list) { + sw.write(ce.request.trim()); + sw.write(BREAK+"\r\n"); + if (ce.e != null) { + sw.write("e: {\r\n"); + if (ce.e.isFromServer()) + sw.write(" \"from-server\" : true,\r\n"); + if (ce.e.getValueset() != null) { + if (ce.e.getValueset().hasUserData(UserDataNames.VS_EXPANSION_SOURCE)) { + sw.write(" \"source\" : "+Utilities.escapeJson(ce.e.getValueset().getUserString(UserDataNames.VS_EXPANSION_SOURCE)).trim()+",\r\n"); + } + sw.write(" \"valueSet\" : "+json.composeString(ce.e.getValueset()).trim()+",\r\n"); + } + sw.write(" \"error\" : \""+Utilities.escapeJson(ce.e.getError()).trim()+"\"\r\n}\r\n"); + } else if (ce.s != null) { + sw.write("s: {\r\n"); + sw.write(" \"result\" : "+ce.s.result+"\r\n}\r\n"); + } else { + sw.write("v: {\r\n"); + boolean first = true; + if (ce.v.getDisplay() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"display\" : \""+Utilities.escapeJson(ce.v.getDisplay()).trim()+"\""); + } + if (ce.v.getCode() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"code\" : \""+Utilities.escapeJson(ce.v.getCode()).trim()+"\""); + } + if (ce.v.getSystem() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"system\" : \""+Utilities.escapeJson(ce.v.getSystem()).trim()+"\""); + } + if (ce.v.getVersion() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"version\" : \""+Utilities.escapeJson(ce.v.getVersion()).trim()+"\""); + } + if (ce.v.getSeverity() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"severity\" : "+"\""+ce.v.getSeverity().toCode().trim()+"\""+""); + } + if (ce.v.getMessage() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"error\" : \""+Utilities.escapeJson(ce.v.getMessage()).trim()+"\""); + } + if (ce.v.getErrorClass() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"class\" : \""+Utilities.escapeJson(ce.v.getErrorClass().toString())+"\""); + } + if (ce.v.getDefinition() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"definition\" : \""+Utilities.escapeJson(ce.v.getDefinition()).trim()+"\""); + } + if (ce.v.getStatus() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"status\" : \""+Utilities.escapeJson(ce.v.getStatus()).trim()+"\""); + } + if (ce.v.getServer() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"server\" : \""+Utilities.escapeJson(ce.v.getServer()).trim()+"\""); + } + if (ce.v.isInactive()) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"inactive\" : true"); + } + if (ce.v.getDiagnostics() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"diagnostics\" : \""+Utilities.escapeJson(ce.v.getDiagnostics()).trim()+"\""); + } + if (ce.v.getUnknownSystems() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"unknown-systems\" : \""+Utilities.escapeJson(CommaSeparatedStringBuilder.join(",", ce.v.getUnknownSystems())).trim()+"\""); + } + if (ce.v.getParameters() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"parameters\" : "+json.composeString(ce.v.getParameters()).trim()+"\r\n"); + } + if (ce.v.getIssues() != null) { + if (first) first = false; else sw.write(",\r\n"); + OperationOutcome oo = new OperationOutcome(); + oo.setIssue(ce.v.getIssues()); + sw.write(" \"issues\" : "+json.composeString(oo).trim()+"\r\n"); + } + sw.write("\r\n}\r\n"); + } + sw.write(ENTRY_MARKER+"\r\n"); + } + sw.close(); + } catch (Exception e) { + log.error("error saving "+nc.name+": "+e.getMessage(), e); + } + } + + private boolean isCapabilityCache(String fn) { + if (fn == null) { + return false; + } + return fn.startsWith(CAPABILITY_STATEMENT_TITLE) || fn.startsWith(TERMINOLOGY_CAPABILITIES_TITLE); + } + + private void loadCapabilityCache(String fn) throws IOException { + if (TerminologyCapabilitiesCache.cacheFileHasExpired(Utilities.path(folder, fn), capabilityCacheExpirationMilliseconds)) { + return; + } + try { + String src = FileUtilities.fileToString(Utilities.path(folder, fn)); + String serverId = Utilities.getFileNameForName(fn).replace(CACHE_FILE_EXTENSION, ""); + serverId = serverId.substring(serverId.indexOf(".")+1); + serverId = serverId.substring(serverId.indexOf(".")+1); + String address = getServerForId(serverId); + if (address != null) { + JsonObject o = (JsonObject) new com.google.gson.JsonParser().parse(src); + Resource resource = new JsonParser().parse(o); + + if (fn.startsWith(CAPABILITY_STATEMENT_TITLE)) { + this.capabilityStatementCache.put(address, (CapabilityStatement) resource); + } else if (fn.startsWith(TERMINOLOGY_CAPABILITIES_TITLE)) { + this.terminologyCapabilitiesCache.put(address, (TerminologyCapabilities) resource); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw new FHIRException("Error loading " + fn + ": " + e.getMessage(), e); + } + } + + private String getServerForId(String serverId) { + for (String n : serverMap.keySet()) { + if (serverMap.get(n).equals(serverId)) { + return n; + } + } + return null; + } + + private CacheEntry getCacheEntry(String request, String resultString) throws IOException { + CacheEntry ce = new CacheEntry(); + ce.persistent = true; + ce.request = request; + char e = resultString.charAt(0); + resultString = resultString.substring(3); + JsonObject o = (JsonObject) new com.google.gson.JsonParser().parse(resultString); + String error = loadJS(o.get("error")); + if (e == 'e') { + if (o.has("valueSet")) { + ce.e = new ValueSetExpansionOutcome((ValueSet) new JsonParser().parse(o.getAsJsonObject("valueSet")), error, TerminologyServiceErrorClass.UNKNOWN, o.has("from-server")); + if (o.has("source")) { + ce.e.getValueset().setUserData(UserDataNames.VS_EXPANSION_SOURCE, o.get("source").getAsString()); + } + } else { + ce.e = new ValueSetExpansionOutcome(error, TerminologyServiceErrorClass.UNKNOWN, o.has("from-server")); + } + } else if (e == 's') { + ce.s = new SubsumesResult(o.get("result").getAsBoolean()); + } else { + String t = loadJS(o.get("severity")); + IssueSeverity severity = t == null ? null : IssueSeverity.fromCode(t); + String display = loadJS(o.get("display")); + String code = loadJS(o.get("code")); + String system = loadJS(o.get("system")); + String version = loadJS(o.get("version")); + String definition = loadJS(o.get("definition")); + String server = loadJS(o.get("server")); + String status = loadJS(o.get("status")); + boolean inactive = "true".equals(loadJS(o.get("inactive"))); + String unknownSystems = loadJS(o.get("unknown-systems")); + OperationOutcome oo = o.has("issues") ? (OperationOutcome) new JsonParser().parse(o.getAsJsonObject("issues")) : null; + Parameters p = o.has("parameters") ? (Parameters) new JsonParser().parse(o.getAsJsonObject("parameters")) : null; + t = loadJS(o.get("class")); + TerminologyServiceErrorClass errorClass = t == null ? null : TerminologyServiceErrorClass.valueOf(t) ; + ce.v = new ValidationResult(severity, error, system, version, new ConceptDefinitionComponent().setDisplay(display).setDefinition(definition).setCode(code), display, null).setErrorClass(errorClass); + ce.v.setUnknownSystems(CommaSeparatedStringBuilder.toSet(unknownSystems)); + ce.v.setServer(server); + ce.v.setStatus(inactive, status); + ce.v.setDiagnostics(loadJS(o.get("diagnostics"))); + if (oo != null) { + ce.v.setIssues(oo.getIssue()); + } + if (p != null) { + ce.v.setParameters(p); + } + } + return ce; + } + + private void loadNamedCache(String fn) throws IOException { + int c = 0; + try { + String src = FileUtilities.fileToString(Utilities.path(folder, fn)); + String title = fn.substring(0, fn.lastIndexOf(".")); + + NamedCache nc = new NamedCache(); + nc.name = title; + + if (src.startsWith("?")) + src = src.substring(1); + int i = src.indexOf(ENTRY_MARKER); + while (i > -1) { + c++; + String s = src.substring(0, i); + src = src.substring(i + ENTRY_MARKER.length() + 1); + i = src.indexOf(ENTRY_MARKER); + if (!Utilities.noString(s)) { + int j = s.indexOf(BREAK); + String request = s.substring(0, j); + String p = s.substring(j + BREAK.length() + 1).trim(); + + CacheEntry cacheEntry = getCacheEntry(request, p); + + nc.map.put(String.valueOf(hashJson(cacheEntry.request)), cacheEntry); + nc.list.add(cacheEntry); + } + caches.put(nc.name, nc); + } + } catch (Exception e) { + log.error("Error loading "+fn+": "+e.getMessage()+" entry "+c+" - ignoring it", e); + } + } + + private void load() throws FHIRException, IOException { + IniFile ini = new IniFile(Utilities.path(folder, "servers.ini")); + if (ini.hasSection("servers")) { + for (String n : ini.getPropertyNames("servers")) { + serverMap.put(ini.getStringProperty("servers", n), n); + } + } + + for (String fn : ManagedFileAccess.file(folder).list()) { + if (fn.endsWith(CACHE_FILE_EXTENSION) && !fn.equals("validation" + CACHE_FILE_EXTENSION)) { + try { + if (isCapabilityCache(fn)) { + loadCapabilityCache(fn); + } else { + loadNamedCache(fn); + } + } catch (FHIRException e) { + throw e; + } + } + } + try { + File f = ManagedFileAccess.file(Utilities.path(folder, "vs-externals.json")); + if (f.exists()) { + org.hl7.fhir.utilities.json.model.JsonObject json = org.hl7.fhir.utilities.json.parser.JsonParser.parseObject(f); + for (JsonProperty p : json.getProperties()) { + if (p.getValue().isJsonNull()) { + vsCache.put(p.getName(), null); + } else { + org.hl7.fhir.utilities.json.model.JsonObject j = p.getValue().asJsonObject(); + vsCache.put(p.getName(), new SourcedValueSetEntry(j.asString("server"), j.asString("filename"))); + } + } + } + } catch (Exception e) { + log.error("Error loading vs external cache: "+e.getMessage(), e); + } + try { + File f = ManagedFileAccess.file(Utilities.path(folder, "cs-externals.json")); + if (f.exists()) { + org.hl7.fhir.utilities.json.model.JsonObject json = org.hl7.fhir.utilities.json.parser.JsonParser.parseObject(f); + for (JsonProperty p : json.getProperties()) { + if (p.getValue().isJsonNull()) { + csCache.put(p.getName(), null); + } else { + org.hl7.fhir.utilities.json.model.JsonObject j = p.getValue().asJsonObject(); + csCache.put(p.getName(), new SourcedCodeSystemEntry(j.asString("server"), j.asString("filename"))); + } + } + } + } catch (Exception e) { + log.error("Error loading vs external cache: "+e.getMessage(), e); + } + } + + private String loadJS(JsonElement e) { + if (e == null) + return null; + if (!(e instanceof JsonPrimitive)) + return null; + String s = e.getAsString(); + if ("".equals(s)) + return null; + return s; + } + + public String hashJson(String s) { + return String.valueOf(s + .trim() + .replaceAll("\\r\\n?", "\n") + .hashCode()); + } + + // management + + public String summary(ValueSet vs) { + if (vs == null) + return "null"; + + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + for (ConceptSetComponent cc : vs.getCompose().getInclude()) + b.append("Include "+getIncSummary(cc)); + for (ConceptSetComponent cc : vs.getCompose().getExclude()) + b.append("Exclude "+getIncSummary(cc)); + return b.toString(); + } + + private String getIncSummary(ConceptSetComponent cc) { + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + for (UriType vs : cc.getValueSet()) + b.append(vs.asStringValue()); + String vsd = b.length() > 0 ? " where the codes are in the value sets ("+b.toString()+")" : ""; + String system = cc.getSystem(); + if (cc.hasConcept()) + return Integer.toString(cc.getConcept().size())+" codes from "+system+vsd; + if (cc.hasFilter()) { + String s = ""; + for (ConceptSetFilterComponent f : cc.getFilter()) { + if (!Utilities.noString(s)) + s = s + " & "; + s = s + f.getProperty()+" "+(f.hasOp() ? f.getOp().toCode() : "?")+" "+f.getValue(); + } + return "from "+system+" where "+s+vsd; + } + return "All codes from "+system+vsd; + } + + public String summary(Coding code) { + return code.getSystem()+"#"+code.getCode()+(code.hasDisplay() ? ": \""+code.getDisplay()+"\"" : ""); + } + + public String summary(CodeableConcept code) { + StringBuilder b = new StringBuilder(); + b.append("{"); + boolean first = true; + for (Coding c : code.getCoding()) { + if (first) first = false; else b.append(","); + b.append(summary(c)); + } + b.append("}: \""); + b.append(code.getText()); + b.append("\""); + return b.toString(); + } + + public void removeCS(String url) { + synchronized (lock) { + String name = getSystemNameKeyGenerator().getNameForSystem(url); + if (caches.containsKey(name)) { + caches.remove(name); + } + } + } + + public String getFolder() { + return folder; + } + + public Map servers() { + Map servers = new HashMap<>(); // servers.put("http://local.fhir.org/r2", "tx.fhir.org"); // servers.put("http://local.fhir.org/r3", "tx.fhir.org"); // servers.put("http://local.fhir.org/r4", "tx.fhir.org"); @@ -1049,188 +1072,182 @@ public Map servers() { // servers.put("http://tx-dev.fhir.org/r4", "tx.fhir.org"); // servers.put("http://tx-dev.fhir.org/r5", "tx.fhir.org"); - servers.put("http://tx.fhir.org/r2", "tx.fhir.org"); - servers.put("http://tx.fhir.org/r3", "tx.fhir.org"); - servers.put("http://tx.fhir.org/r4", "tx.fhir.org"); - servers.put("http://tx.fhir.org/r5", "tx.fhir.org"); - - return servers; - } - - public boolean hasValueSet(String canonical) { - return vsCache.containsKey(canonical); - } - - public boolean hasCodeSystem(String canonical) { - return csCache.containsKey(canonical); - } - - public SourcedValueSet getValueSet(String canonical) { - log.trace("QLDBG getValueSet {}", canonical); - SourcedValueSetEntry sp = vsCache.get(canonical); - if (sp == null || folder == null) { - return null; - } else { - try { - return new SourcedValueSet(sp.getServer(), sp.getFilename() == null ? null : (ValueSet) new JsonParser().parse(ManagedFileAccess.inStream(Utilities.path(folder, sp.getFilename())))); - } catch (Exception e) { - return null; - } - } - } - - public SourcedCodeSystem getCodeSystem(String canonical) { - log.trace("QLDBG getCodeSystem {}", canonical); - SourcedCodeSystemEntry sp = csCache.get(canonical); - if (sp == null || folder == null) { - return null; - } else { - try { - return new SourcedCodeSystem(sp.getServer(), sp.getFilename() == null ? null : (CodeSystem) new JsonParser().parse(ManagedFileAccess.inStream(Utilities.path(folder, sp.getFilename())))); - } catch (Exception e) { - return null; - } - } - } - - public void cacheValueSet(String canonical, SourcedValueSet svs) { - log.trace("QLDBG cacheValueSet {}", canonical); - if (canonical == null) { - return; - } - try { - if (svs == null) { - vsCache.put(canonical, null); - } else { - String uuid = UUIDUtilities.makeUuidLC(); - String fn = "vs-"+uuid+".json"; - if (folder != null) { - new JsonParser().compose(ManagedFileAccess.outStream(Utilities.path(folder, fn)), svs.getVs()); - } - vsCache.put(canonical, new SourcedValueSetEntry(svs.getServer(), fn)); - } - org.hl7.fhir.utilities.json.model.JsonObject j = new org.hl7.fhir.utilities.json.model.JsonObject(); - for (String k : vsCache.keySet()) { - SourcedValueSetEntry sve = vsCache.get(k); - if (sve == null) { - j.add(k, new JsonNull()); - } else { - org.hl7.fhir.utilities.json.model.JsonObject e = new org.hl7.fhir.utilities.json.model.JsonObject(); - e.set("server", sve.getServer()); - if (sve.getFilename() != null) { - e.set("filename", sve.getFilename()); - } - j.add(k, e); - } - } - if (folder != null) { - org.hl7.fhir.utilities.json.parser.JsonParser.compose(j, ManagedFileAccess.file(Utilities.path(folder, "vs-externals.json")), true); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void cacheCodeSystem(String canonical, SourcedCodeSystem scs) { - log.trace("QLDBG cacheCodeSystem {}", canonical); - if (canonical == null) { - return; - } - try { - if (scs == null) { - csCache.put(canonical, null); - } else { - String uuid = UUIDUtilities.makeUuidLC(); - String fn = "cs-"+uuid+".json"; - if (folder != null) { - new JsonParser().compose(ManagedFileAccess.outStream(Utilities.path(folder, fn)), scs.getCs()); - } - csCache.put(canonical, new SourcedCodeSystemEntry(scs.getServer(), fn)); - } - org.hl7.fhir.utilities.json.model.JsonObject j = new org.hl7.fhir.utilities.json.model.JsonObject(); - for (String k : csCache.keySet()) { - SourcedCodeSystemEntry sve = csCache.get(k); - if (sve == null) { - j.add(k, new JsonNull()); - } else { - org.hl7.fhir.utilities.json.model.JsonObject e = new org.hl7.fhir.utilities.json.model.JsonObject(); - e.set("server", sve.getServer()); - if (sve.getFilename() != null) { - e.set("filename", sve.getFilename()); - } - j.add(k, e); - } - } - if (folder != null) { - org.hl7.fhir.utilities.json.parser.JsonParser.compose(j, ManagedFileAccess.file(Utilities.path(folder, "cs-externals.json")), true); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - public CacheToken generateSubsumesToken(ValidationOptions options, Coding parent, Coding child, Parameters expParameters) { - try { - CacheToken ct = new CacheToken(); - if (parent.hasSystem()) { - ct.setName(parent.getSystem()); - } - if (child.hasSystem()) { - ct.setName(child.getSystem()); - } - ct.hasVersion = parent.hasVersion() || child.hasVersion(); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - // PATCH MATCHBOX: need to copy expParameters to avoid multithreading issues, see https://github.com/ahdis/matchbox/issues/425 - String expJS = expParameters == null ? "" : json.composeString(expParameters.copy()); - // END PATCH MATCHBOX - ct.request = "{\"op\": \"subsumes\", \"parent\" : "+json.composeString(parent, "code")+", \"child\" :"+json.composeString(child, "code")+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } catch (IOException e) { - throw new Error(e); - } - } - - public Boolean getSubsumes(CacheToken cacheToken) { - if (cacheToken.key == null) { - return null; - } - synchronized (lock) { - requestCount++; - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = nc.map.get(cacheToken.key); - if (e == null) { - networkCount++; - return null; - } else { - hitCount++; - return e.s.result; - } - } - - } - - public void cacheSubsumes(CacheToken cacheToken, Boolean b, boolean persistent) { - if (cacheToken.key != null) { - synchronized (lock) { - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = new CacheEntry(); - e.request = cacheToken.request; - e.persistent = persistent; - e.s = new SubsumesResult(b); - store(cacheToken, persistent, nc, e); - } - } - } - - - public String getReport() { - int c = 0; - for (NamedCache nc : caches.values()) { - c += nc.list.size(); - } - return "txCache report: "+ - c+" entries in "+caches.size()+" buckets + "+vsCache.size()+" VS, "+csCache.size()+" CS & "+serverMap.size()+" SM. Hitcount = "+hitCount+"/"+requestCount+", "+networkCount; - } + servers.put("http://tx.fhir.org/r2", "tx.fhir.org"); + servers.put("http://tx.fhir.org/r3", "tx.fhir.org"); + servers.put("http://tx.fhir.org/r4", "tx.fhir.org"); + servers.put("http://tx.fhir.org/r5", "tx.fhir.org"); + + return servers; + } + + public boolean hasValueSet(String canonical) { + return vsCache.containsKey(canonical); + } + + public boolean hasCodeSystem(String canonical) { + return csCache.containsKey(canonical); + } + + public SourcedValueSet getValueSet(String canonical) { + SourcedValueSetEntry sp = vsCache.get(canonical); + if (sp == null || folder == null) { + return null; + } else { + try { + return new SourcedValueSet(sp.getServer(), sp.getFilename() == null ? null : (ValueSet) new JsonParser().parse(ManagedFileAccess.inStream(Utilities.path(folder, sp.getFilename())))); + } catch (Exception e) { + return null; + } + } + } + + public SourcedCodeSystem getCodeSystem(String canonical) { + SourcedCodeSystemEntry sp = csCache.get(canonical); + if (sp == null || folder == null) { + return null; + } else { + try { + return new SourcedCodeSystem(sp.getServer(), sp.getFilename() == null ? null : (CodeSystem) new JsonParser().parse(ManagedFileAccess.inStream(Utilities.path(folder, sp.getFilename())))); + } catch (Exception e) { + return null; + } + } + } + + public void cacheValueSet(String canonical, SourcedValueSet svs) { + if (canonical == null) { + return; + } + try { + if (svs == null) { + vsCache.put(canonical, null); + } else { + String uuid = UUIDUtilities.makeUuidLC(); + String fn = "vs-"+uuid+".json"; + if (folder != null) { + new JsonParser().compose(ManagedFileAccess.outStream(Utilities.path(folder, fn)), svs.getVs()); + } + vsCache.put(canonical, new SourcedValueSetEntry(svs.getServer(), fn)); + } + org.hl7.fhir.utilities.json.model.JsonObject j = new org.hl7.fhir.utilities.json.model.JsonObject(); + for (String k : vsCache.keySet()) { + SourcedValueSetEntry sve = vsCache.get(k); + if (sve == null) { + j.add(k, new JsonNull()); + } else { + org.hl7.fhir.utilities.json.model.JsonObject e = new org.hl7.fhir.utilities.json.model.JsonObject(); + e.set("server", sve.getServer()); + if (sve.getFilename() != null) { + e.set("filename", sve.getFilename()); + } + j.add(k, e); + } + } + if (folder != null) { + org.hl7.fhir.utilities.json.parser.JsonParser.compose(j, ManagedFileAccess.file(Utilities.path(folder, "vs-externals.json")), true); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void cacheCodeSystem(String canonical, SourcedCodeSystem scs) { + if (canonical == null) { + return; + } + try { + if (scs == null) { + csCache.put(canonical, null); + } else { + String uuid = UUIDUtilities.makeUuidLC(); + String fn = "cs-"+uuid+".json"; + if (folder != null) { + new JsonParser().compose(ManagedFileAccess.outStream(Utilities.path(folder, fn)), scs.getCs()); + } + csCache.put(canonical, new SourcedCodeSystemEntry(scs.getServer(), fn)); + } + org.hl7.fhir.utilities.json.model.JsonObject j = new org.hl7.fhir.utilities.json.model.JsonObject(); + for (String k : csCache.keySet()) { + SourcedCodeSystemEntry sve = csCache.get(k); + if (sve == null) { + j.add(k, new JsonNull()); + } else { + org.hl7.fhir.utilities.json.model.JsonObject e = new org.hl7.fhir.utilities.json.model.JsonObject(); + e.set("server", sve.getServer()); + if (sve.getFilename() != null) { + e.set("filename", sve.getFilename()); + } + j.add(k, e); + } + } + if (folder != null) { + org.hl7.fhir.utilities.json.parser.JsonParser.compose(j, ManagedFileAccess.file(Utilities.path(folder, "cs-externals.json")), true); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public CacheToken generateSubsumesToken(ValidationOptions options, Coding parent, Coding child, Parameters expParameters) { + try { + CacheToken ct = new CacheToken(); + if (parent.hasSystem()) { + ct.setName(parent.getSystem()); + } + if (child.hasSystem()) { + ct.setName(child.getSystem()); + } + ct.hasVersion = parent.hasVersion() || child.hasVersion(); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + String expJS = json.composeString(expParameters); + ct.request = "{\"op\": \"subsumes\", \"parent\" : "+json.composeString(parent, "code")+", \"child\" :"+json.composeString(child, "code")+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } catch (IOException e) { + throw new Error(e); + } + } + + public Boolean getSubsumes(CacheToken cacheToken) { + if (cacheToken.key == null) { + return null; + } + synchronized (lock) { + requestCount++; + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = nc.map.get(cacheToken.key); + if (e == null) { + networkCount++; + return null; + } else { + hitCount++; + return e.s.result; + } + } + + } + + public void cacheSubsumes(CacheToken cacheToken, Boolean b, boolean persistent) { + if (cacheToken.key != null) { + synchronized (lock) { + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = new CacheEntry(); + e.request = cacheToken.request; + e.persistent = persistent; + e.s = new SubsumesResult(b); + store(cacheToken, persistent, nc, e); + } + } + } + + + public String getReport() { + int c = 0; + for (NamedCache nc : caches.values()) { + c += nc.list.size(); + } + return "txCache report: "+ + c+" entries in "+caches.size()+" buckets + "+vsCache.size()+" VS, "+csCache.size()+" CS & "+serverMap.size()+" SM. Hitcount = "+hitCount+"/"+requestCount+", "+networkCount; + } } \ No newline at end of file diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/utils/structuremap/FHIRPathHostServices.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/utils/structuremap/FHIRPathHostServices.java index 9a64381f30a..5fc17c2b40e 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/utils/structuremap/FHIRPathHostServices.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/utils/structuremap/FHIRPathHostServices.java @@ -149,4 +149,23 @@ public ValueSet resolveValueSet(FHIRPathEngine engine, Object appContext, String public boolean paramIsType(String name, int index) { return false; } + + @Override + public Base findContainingResource(Object appContext, Base item) { + if (item instanceof Element) { + Element element = (Element) item; + while (element != null && !(element.isResource() && element.getSpecial() != Element.SpecialElement.CONTAINED)) { + element = element.getParentForValidator(); + } + if (element != null) { + return element; + } + } + if (item instanceof Resource) { + return item; + } + // now it gets hard + return null; // for now + } + } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java index 879c322df2b..5fa33319e33 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java @@ -91,7 +91,7 @@ public interface IPackageProvider { public static final String PACKAGE_VERSION_REGEX = "^[A-Za-z][A-Za-z0-9\\_\\-]*(\\.[A-Za-z0-9\\_\\-]+)+\\#[A-Za-z0-9\\-\\_\\$]+(\\.[A-Za-z0-9\\-\\_\\$]+)*$"; public static final String PACKAGE_VERSION_REGEX_OPT = "^[A-Za-z][A-Za-z0-9\\_\\-]*(\\.[A-Za-z0-9\\_\\-]+)+(\\#[A-Za-z0-9\\-\\_]+(\\.[A-Za-z0-9\\-\\_]+)*)?$"; private static final Logger ourLog = LoggerFactory.getLogger(FilesystemPackageCacheManager.class); - private static final String CACHE_VERSION = "3"; // second version - see wiki page + private static final String CACHE_VERSION = "4"; // second version - see wiki page @Getter private final CIBuildClient ciBuildClient; @@ -247,7 +247,7 @@ protected void prepareCacheFolder() throws IOException { */ protected void cleanUpCorruptPackages() throws IOException { for (File file : Objects.requireNonNull(cacheFolder.listFiles())) { - if (file.getName().endsWith(".lock")) { + if (FilesystemPackageCacheManagerLocks.isLockFile(file.getName())) { if (locks.getCacheLock().canLockFileBeHeldByThisProcess(file)) { String packageDirectoryName = file.getName().substring(0, file.getName().length() - 5); log.info("Detected potential incomplete package installed in cache: " + packageDirectoryName + ". Attempting to delete"); @@ -298,9 +298,14 @@ private void clearCache() throws IOException { for (File f : Objects.requireNonNull(cacheFolder.listFiles())) { if (f.isDirectory()) { FileUtilities.atomicDeleteDirectory(f.getAbsolutePath()); - - } else if (!f.getName().equals("packages.ini")) { - FileUtils.forceDelete(f); + } else if (!f.getName().equals("packages.ini") + // These files are package locks. They could interfere with running processes. + ) { + if (FilesystemPackageCacheManagerLocks.isLockFile(f.getName())) { + log.warn("Encountered package lock while clearing cache: {} It is possible that another process is modifying this cache. Lock-file deletion was not attempted.", f.getAbsolutePath()); + } else { + FileUtils.forceDelete(f); + } } } @@ -410,6 +415,33 @@ public String getLatestVersion(String id, boolean milestonesOnly) throws IOExcep throw new FHIRException("Unable to find the last version for package " + id + ": no local copy, and no network access"); } + public String getLatestVersion(String id, String versionFilter) throws IOException { + id = stripAlias(id); + for (PackageServer nextPackageServer : getPackageServers()) { + // special case: + if (!(Utilities.existsInList(id, CommonPackages.ID_PUBPACK, "hl7.terminology.r5") && PackageServer.SECONDARY_SERVER.equals(nextPackageServer.getUrl()))) { + PackageClient pc = new PackageClient(nextPackageServer); + try { + return pc.getLatestVersion(id, versionFilter); + } catch (IOException e) { + ourLog.info("Failed to determine latest version of package {} from server: {}", id, nextPackageServer.toString()); + } + } + } + try { + return fetchVersionTheOldWay(id, versionFilter); + } catch (Exception e) { + ourLog.info("Failed to determine latest version of package {} from server: {}", id, "build.fhir.org"); + } + // still here? use the latest version we previously found or at least, is in the cache + + String version = getLatestVersionFromCache(id, versionFilter); + if (version != null) { + return version; + } + throw new FHIRException("Unable to find the last version for package " + id + ": no local copy, and no network access"); + } + public String getLatestVersionFromCache(String id) throws IOException { id = stripAlias(id); for (String f : Utilities.reverseSorted(cacheFolder.list())) { @@ -425,6 +457,23 @@ public String getLatestVersionFromCache(String id) throws IOException { return null; } + public String getLatestVersionFromCache(String id, String versionFilter) throws IOException { + id = stripAlias(id); + for (String f : Utilities.reverseSorted(cacheFolder.list())) { + File cf = ManagedFileAccess.file(Utilities.path(cacheFolder, f)); + if (cf.isDirectory()) { + if (f.startsWith(id + "#")) { + String ver = f.substring(f.indexOf("#") + 1); + if (VersionUtilities.versionMatches(versionFilter, ver)) { + ourLog.info("Latest version of package {} found locally is {} - using that", id, ver); + return ver; + } + } + } + } + return null; + } + private NpmPackage loadPackageFromFile(String id, String folder) throws IOException { File f = ManagedFileAccess.file(Utilities.path(folder, id)); if (!f.exists()) { @@ -621,9 +670,7 @@ public NpmPackage addPackageToCache(String id, final String version, final Input } final NpmPackage tempPackage = loadPackageInfo(tempDir); - if (tempPackage != null && !tempPackage.isIndexed()) { - tempPackage.checkIndexed(packageRoot); - } + tempPackage.buildIndexes(packageRoot); if (!ManagedFileAccess.file(packageRoot).exists() || Utilities.existsInList(version, "current", "dev")) { FileUtilities.createDirectory(packageRoot); @@ -906,6 +953,30 @@ private String fetchVersionTheOldWay(String id) throws IOException { return null; } + private String fetchVersionTheOldWay(String id, String versionSpec) throws IOException { + String url = getUrlForPackage(id); + if (url == null) { + try { + url = ciBuildClient.getPackageUrl(id); + } catch (Exception e) { + url = null; + } + } + if (url == null) { + throw new FHIRException("Unable to resolve package id " + id); + } + PackageList pl = PackageList.fromUrl(Utilities.pathURL(url, "package-list.json")); + if (!id.equals(pl.pid())) + throw new FHIRException("Package ids do not match in " + pl.source() + ": " + id + " vs " + pl.pid()); + for (PackageListEntry vo : pl.versions()) { + if (VersionUtilities.versionMatches(versionSpec, vo.version())) { + return vo.version(); + } + } + + return null; + } + private String getUrlForPackage(String id) { if (CommonPackages.ID_XVER.equals(id)) { return "https://fhir.org/packages/hl7.fhir.xver-extensions"; diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/NpmPackage.java b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/NpmPackage.java index 326f300f534..87e23083724 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/NpmPackage.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/NpmPackage.java @@ -61,6 +61,7 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import javax.annotation.Nonnull; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; @@ -177,24 +178,22 @@ public int compare(JsonObject o0, JsonObject o1) { } public static class PackagedResourceFile { + @Getter private final String folder; + @Getter private final String filename; + @Getter private final String resourceType; - protected PackagedResourceFile(String folder, String filename, String resourceType) { + @Getter + private final boolean example; + protected PackagedResourceFile(String folder, String filename, String resourceType, boolean example) { super(); this.folder = folder; this.filename = filename; this.resourceType = resourceType; + this.example = example; } - public String getFolder() { - return folder; - } - public String getFilename() { - return filename; - } - public String getResourceType() { - return resourceType; - } + public static class Sorter implements Comparator { @Override @@ -686,7 +685,7 @@ public void loadFile(String n, byte[] data) throws IOException { public boolean isIndexed() throws IOException { for (NpmPackageFolder folder : folders.values()) { JsonObject index = folder.index(); - if (folder.index() == null || index.forceArray("files").size() == 0) { + if (folder.index() == null) { return false; } } @@ -697,12 +696,17 @@ public boolean isIndexed() throws IOException { public void checkIndexed(String path) throws IOException { for (NpmPackageFolder folder : folders.values()) { JsonObject index = folder.index(); - if (index == null || index.forceArray("files").size() == 0) { + if (index == null) { indexFolder(path, folder); } } } + public void buildIndexes(String path) throws IOException { + for (NpmPackageFolder folder : folders.values()) { + indexFolder(path, folder); + } + } /** * Create a package .index.json file for a package folder. @@ -715,7 +719,7 @@ public void checkIndexed(String path) throws IOException { * @throws FileNotFoundException * @throws IOException */ - public void indexFolder(String path, NpmPackageFolder folder) throws FileNotFoundException, IOException { + public void indexFolder(String path, NpmPackageFolder folder) throws IOException { List remove = new ArrayList<>(); NpmPackageIndexBuilder indexer = new NpmPackageIndexBuilder(); indexer.start(folder.folder != null ? Utilities.path(folder.folder.getAbsolutePath(), ".index.db") : null); @@ -839,19 +843,38 @@ public List listResourcesInFolder(String folderName, Set types) public List listAllResources(Collection types) throws IOException { List res = new ArrayList(); for (NpmPackageFolder folder : folders.values()) { - if (types.size() == 0) { - for (String s : folder.types.keySet()) { - if (folder.types.containsKey(s)) { - for (String n : folder.types.get(s)) { - res.add(new PackagedResourceFile(folder.folderName, n, s)); + if (!folder.getFolderName().startsWith("tests")) { + if (types.size() == 0) { + for (String s : folder.types.keySet()) { + if (folder.types.containsKey(s)) { + for (String n : folder.types.get(s)) { + res.add(new PackagedResourceFile(folder.folderName, n, s, folder.getFolderName().equals("example"))); + } + } + } + } else { + for (String s : types) { + if (folder.types.containsKey(s)) { + for (String n : folder.types.get(s)) { + res.add(new PackagedResourceFile(folder.folderName, n, s, folder.getFolderName().equals("example"))); + } } } } - } else { - for (String s : types) { + } + } + Collections.sort(res, new PackagedResourceFile.Sorter()); + return res; + } + + public List listAllResources() throws IOException { + List res = new ArrayList(); + for (NpmPackageFolder folder : folders.values()) { + if (!folder.getFolderName().startsWith("tests") && !folder.getFolderName().startsWith("data")) { + for (String s : folder.types.keySet()) { if (folder.types.containsKey(s)) { for (String n : folder.types.get(s)) { - res.add(new PackagedResourceFile(folder.folderName, n, s)); + res.add(new PackagedResourceFile(folder.folderName, n, s, folder.getFolderName().equals("example"))); } } } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/validation/BaseValidator.java b/matchbox-engine/src/main/java/org/hl7/fhir/validation/BaseValidator.java index 00a4b07d59d..a4e7f701abe 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/validation/BaseValidator.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/validation/BaseValidator.java @@ -71,14 +71,15 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent; import org.hl7.fhir.r5.terminologies.ImplicitValueSets; import org.hl7.fhir.r5.utils.UserDataNames; -import org.hl7.fhir.r5.utils.XVerExtensionManager; -import org.hl7.fhir.r5.utils.XVerExtensionManager.XVerExtensionStatus; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager.XVerExtensionStatus; import org.hl7.fhir.r5.utils.validation.IMessagingServices; import org.hl7.fhir.r5.utils.validation.IValidationPolicyAdvisor; import org.hl7.fhir.r5.utils.validation.IValidatorResourceFetcher; import org.hl7.fhir.r5.utils.validation.ValidatorSession; import org.hl7.fhir.r5.utils.validation.ValidationContextCarrier.IValidationContextResourceLoader; import org.hl7.fhir.r5.utils.validation.constants.ReferenceValidationPolicy; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManagerFactory; import org.hl7.fhir.utilities.*; import org.hl7.fhir.utilities.i18n.I18nConstants; import org.hl7.fhir.utilities.validation.ValidationMessage; @@ -208,10 +209,10 @@ public BaseValidator(IWorkerContext context, @Nonnull ValidatorSettings settings } this.xverManager = xverManager; if (this.xverManager == null) { - this.xverManager = new XVerExtensionManager(context); + this.xverManager = XVerExtensionManagerFactory.createExtensionManager(context); } this.settings = settings; - policyAdvisor = new BasePolicyAdvisorForFullValidation(ReferenceValidationPolicy.CHECK_VALID); + policyAdvisor = new BasePolicyAdvisorForFullValidation(ReferenceValidationPolicy.CHECK_VALID, null); urlRegex = Constants.URI_REGEX_XVER.replace("$$", CommaSeparatedStringBuilder.join("|", context.getResourceNames())); } @@ -380,10 +381,10 @@ public ValidationMessage signpost(List errors, String ruleDat return addValidationMessage(errors, ruleDate, type, line, col, path, message, IssueSeverity.INFORMATION, theMessage).setSignpost(true); } - protected boolean txHint(List errors, String ruleDate, String txLink, IssueType type, int line, int col, String path, boolean thePass, String theMessage, Object... theMessageArguments) { + protected boolean txHint(List errors, String ruleDate, String txLink, String diagnostics, IssueType type, int line, int col, String path, boolean thePass, String theMessage, Object... theMessageArguments) { if (!thePass && doingHints() && !isSuppressedValidationMessage(path, theMessage)) { String message = context.formatMessage(theMessage, theMessageArguments); - addValidationMessage(errors, ruleDate, type, line, col, path, message, IssueSeverity.INFORMATION, Source.TerminologyEngine, theMessage).setTxLink(txLink); + addValidationMessage(errors, ruleDate, type, line, col, path, message, IssueSeverity.INFORMATION, Source.TerminologyEngine, theMessage).setTxLink(txLink).setDiagnostics(diagnostics); } return thePass; } @@ -463,13 +464,13 @@ protected boolean rulePlural(List errors, String ruleDate, Is return thePass; } - protected boolean txRule(List errors, String ruleDate, String txLink, IssueType type, int line, int col, String path, boolean thePass, String theMessage, Object... theMessageArguments) { + protected boolean txRule(List errors, String ruleDate, String txLink, String diagnostics, IssueType type, int line, int col, String path, boolean thePass, String theMessage, Object... theMessageArguments) { if (!thePass && doingErrors() && !isSuppressedValidationMessage(path, theMessage)) { String message = context.formatMessage(theMessage, theMessageArguments); ValidationMessage vm = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, message, IssueSeverity.ERROR).setMessageId(idForMessage(theMessage, message)); vm.setRuleDate(ruleDate); if (checkMsgId(theMessage, vm)) { - errors.add(vm.setTxLink(txLink)); + errors.add(vm.setTxLink(txLink).setDiagnostics(diagnostics)); } } return thePass; @@ -658,12 +659,21 @@ protected ValidationMessage addValidationMessage(List errors, protected ValidationMessage addValidationMessage(List errors, String ruleDate, IssueType type, int line, int col, String path, String msg, IssueSeverity theSeverity, Source theSource, String id) { ValidationMessage validationMessage = new ValidationMessage(theSource, type, line, col, path, msg, theSeverity).setMessageId(id); validationMessage.setRuleDate(ruleDate); - if (doingLevel(theSeverity) && checkMsgId(id, validationMessage)) { + if (doingLevel(theSeverity) && !hasMessage(errors, validationMessage) && checkMsgId(id, validationMessage)) { errors.add(validationMessage); } return validationMessage; } + protected boolean hasMessage(List errors, ValidationMessage newMsg) { + for (ValidationMessage m : errors) { + if (m.preciseMatch(newMsg)) { + return true; + } + } + return false; + } + public boolean checkMsgId(String id, ValidationMessage vm) { if (id != null && validationControl.containsKey(id)) { ValidationControl control = validationControl.get(id); @@ -682,10 +692,10 @@ public boolean checkMsgId(String id, ValidationMessage vm) { * Set this parameter to false if the validation does not pass * @return Returns thePass (in other words, returns true if the rule did not fail validation) */ - protected boolean txWarning(List errors, String ruleDate, String txLink, IssueType type, int line, int col, String path, boolean thePass, String msg, Object... theMessageArguments) { + protected boolean txWarning(List errors, String ruleDate, String txLink, String diagnostics, IssueType type, int line, int col, String path, boolean thePass, String msg, Object... theMessageArguments) { if (!thePass && doingWarnings() && !isSuppressedValidationMessage(path, msg)) { String nmsg = context.formatMessage(msg, theMessageArguments); - ValidationMessage vmsg = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, nmsg, IssueSeverity.WARNING).setTxLink(txLink).setMessageId(idForMessage(msg, nmsg)); + ValidationMessage vmsg = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, nmsg, IssueSeverity.WARNING).setTxLink(txLink).setMessageId(idForMessage(msg, nmsg)).setDiagnostics(diagnostics); vmsg.setRuleDate(ruleDate); if (checkMsgId(msg, vmsg)) { errors.add(vmsg); @@ -699,19 +709,22 @@ protected boolean txWarning(List errors, String ruleDate, Str * @param thePass Set this parameter to false if the validation does not pass * @return Returns thePass (in other words, returns true if the rule did not fail validation) */ - protected ValidationMessage buildValidationMessage(String txLink, int line, int col, String path, OperationOutcomeIssueComponent issue) { + protected ValidationMessage buildValidationMessage(String txLink, String diagnostics, int line, int col, String path, OperationOutcomeIssueComponent issue) { if (issue.hasLocation() && issue.getExpressionOrLocation().get(0).getValue().contains(".")) { path = path + dropHead(issue.getExpressionOrLocation().get(0).getValue()); } IssueType code = IssueType.fromCode(issue.getCode().toCode()); IssueSeverity severity = IssueSeverity.fromCode(issue.getSeverity().toCode()); - ValidationMessage validationMessage = new ValidationMessage(Source.TerminologyEngine, code, line, col, path, issue.getDetails().getText(), severity).setTxLink(txLink); + ValidationMessage validationMessage = new ValidationMessage(Source.TerminologyEngine, code, line, col, path, issue.getDetails().getText(), severity).setTxLink(txLink).setDiagnostics(diagnostics); if (issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_SERVER) != null) { - validationMessage.setServer(issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_SERVER).replace("local.fhir.org", "tx-dev.fhir.org")); + validationMessage.setServer(issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_SERVER).replace("http://local.fhir.org", "https://tx-dev.fhir.org")); } if (issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_MSG_ID) != null) { validationMessage.setMessageId(issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_MSG_ID)); } + if (issue.hasDiagnostics()) { + validationMessage.setDiagnostics(issue.getDiagnostics()); + } return validationMessage; } @@ -726,10 +739,10 @@ private String dropHead(String value) { * Set this parameter to false if the validation does not pass * @return Returns thePass (in other words, returns true if the rule did not fail validation) */ - protected boolean txWarningForLaterRemoval(Object location, List errors, String ruleDate, String txLink, IssueType type, int line, int col, String path, boolean thePass, String msg, Object... theMessageArguments) { + protected boolean txWarningForLaterRemoval(Object location, List errors, String ruleDate, String txLink, String diagnostics, IssueType type, int line, int col, String path, boolean thePass, String msg, Object... theMessageArguments) { if (!thePass && doingWarnings() && !isSuppressedValidationMessage(path, msg)) { String nmsg = context.formatMessage(msg, theMessageArguments); - ValidationMessage vmsg = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, nmsg, IssueSeverity.WARNING).setTxLink(txLink).setMessageId(msg); + ValidationMessage vmsg = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, nmsg, IssueSeverity.WARNING).setTxLink(txLink).setDiagnostics(diagnostics).setMessageId(msg); vmsg.setRuleDate(ruleDate); if (checkMsgId(msg, vmsg)) { errors.add(vmsg); @@ -971,11 +984,11 @@ protected ValueSet resolveBindingReference(DomainResource ctxt, String reference } else { reference = cu.pinValueSet(reference); long t = System.nanoTime(); - ValueSet fr = context.findTxResource(ValueSet.class, reference, src); + ValueSet fr = context.findTxResource(ValueSet.class, reference, null, src); if (fr == null) { if (!Utilities.isAbsoluteUrl(reference)) { reference = resolve(uri, reference); - fr = context.findTxResource(ValueSet.class, reference, src); + fr = context.findTxResource(ValueSet.class, reference, null, src); } } if (fr == null) { @@ -1484,7 +1497,7 @@ public boolean isXverUrl(String url) { } public StructureDefinition xverDefn(String url) { - return xverManager.makeDefinition(url); + return xverManager.getDefinition(url); } public String xverVersion(String url) { @@ -1507,10 +1520,13 @@ public StructureDefinition getXverExt(StructureDefinition profile, List errors, String path, Element element, String url) { + public StructureDefinition getXverExt(List errors, String path, Element element, String url, BooleanHolder errored) { if (isXverUrl(url)) { switch (xverStatus(url)) { case BadVersion: rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_INVALID, url, xverVersion(url)); + errored.set(true); break; case Unknown: rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_INVALIDID, url, xverElementId(url)); + errored.set(true); break; case Invalid: rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_NOCHANGE, url, xverElementId(url)); + errored.set(true); + break; + case NotAllowed: + rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_NOTALLOWED, url, xverElementId(url)); + errored.set(true); break; case Valid: StructureDefinition ex = xverDefn(url); new ContextUtilities(context).generateSnapshot(ex); - context.cacheResource(ex); + context.getManager().cacheResource(ex); return ex; default: rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_INTERNAL, url); + errored.set(true); break; } } @@ -1767,4 +1791,10 @@ public ValidatorSettings getSettings() { return settings; } + // testing only, and transient + public void setXverManager(XVerExtensionManager value) { + xverManager = value; + } + + } \ No newline at end of file diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param/Params.java b/matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param/Params.java index 7a7ec9953df..e755de22726 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param/Params.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param/Params.java @@ -1,156 +1,12 @@ package org.hl7.fhir.validation.cli.param; -import java.io.File; -import java.io.IOException; -import java.util.Arrays; -import java.util.Locale; +import java.util.*; import lombok.extern.slf4j.Slf4j; -import org.hl7.fhir.exceptions.FHIRException; -import org.hl7.fhir.r5.elementmodel.Manager.FhirFormat; -import org.hl7.fhir.r5.terminologies.JurisdictionUtilities; -import org.hl7.fhir.r5.utils.validation.BundleValidationRule; -import org.hl7.fhir.r5.utils.validation.constants.BestPracticeWarningLevel; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.utilities.VersionUtilities; -import org.hl7.fhir.utilities.filesystem.ManagedFileAccess; -import org.hl7.fhir.utilities.validation.ValidationOptions.R5BundleRelativeReferencePolicy; -import org.hl7.fhir.validation.service.model.ValidationContext; -import org.hl7.fhir.validation.service.model.HtmlInMarkdownCheck; -import org.hl7.fhir.validation.service.ValidatorWatchMode; -import org.hl7.fhir.validation.service.utils.EngineMode; -import org.hl7.fhir.validation.service.utils.QuestionnaireMode; -import org.hl7.fhir.validation.service.utils.ValidationLevel; @Slf4j public class Params { - public static final String VERSION = "-version"; - public static final String ALT_VERSION = "-alt-version"; - public static final String OUTPUT = "-output"; - - public static final String OUTPUT_SUFFIX = "-outputSuffix"; - public static final String LEVEL = "-level"; - public static final String HTML_OUTPUT = "-html-output"; - public static final String PROXY = "-proxy"; - - public static final String HTTPS_PROXY = "-https-proxy"; - public static final String PROXY_AUTH = "-auth"; - public static final String PROFILE = "-profile"; - public static final String PROFILES = "-profiles"; - public static final String CONFIG = "-config"; - public static final String OPTION = "-option"; - public static final String OPTIONS = "-options"; - public static final String BUNDLE = "-bundle"; - public static final String QUESTIONNAIRE = "-questionnaire"; - public static final String NATIVE = "-native"; - public static final String ASSUME_VALID_REST_REF = "-assumeValidRestReferences"; - public static final String CHECK_REFERENCES = "-check-references"; - public static final String RESOLUTION_CONTEXT = "-resolution-context"; - public static final String DEBUG = "-debug"; - public static final String DEBUG_LOG = "-debug-log"; - public static final String TRACE_LOG = "-trace-log"; - public static final String SCT = "-sct"; - public static final String RECURSE = "-recurse"; - public static final String SHOW_MESSAGES_FROM_REFERENCES = "-showReferenceMessages"; - public static final String LOCALE = "-locale"; - public static final String EXTENSION = "-extension"; - public static final String HINT_ABOUT_NON_MUST_SUPPORT = "-hintAboutNonMustSupport"; - public static final String TO_VERSION = "-to-version"; - public static final String TX_PACK = "-tx-pack"; - public static final String RE_PACK = "-re-package"; - public static final String PACKAGE_NAME = "-package-name"; - public static final String PIN = "-pin"; - public static final String EXPAND = "-expand"; - public static final String DO_NATIVE = "-do-native"; - public static final String NO_NATIVE = "-no-native"; - public static final String COMPILE = "-compile"; - public static final String CODEGEN = "-codegen"; - public static final String FACTORY = "-factory"; - public static final String TRANSFORM = "-transform"; - public static final String FORMAT = "-format"; - public static final String LANG_TRANSFORM = "-lang-transform"; - public static final String LANG_REGEN = "-lang-regen"; - public static final String EXP_PARAMS = "-expansion-parameters"; - public static final String NARRATIVE = "-narrative"; - public static final String SNAPSHOT = "-snapshot"; - public static final String INSTALL = "-install"; - public static final String SCAN = "-scan"; - public static final String TERMINOLOGY = "-tx"; - public static final String TERMINOLOGY_LOG = "-txLog"; - public static final String TERMINOLOGY_CACHE = "-txCache"; - public static final String TERMINOLOGY_ROUTING = "-tx-routing"; - public static final String TERMINOLOGY_CACHE_CLEAR = "-clear-tx-cache"; - public static final String LOG = "-log"; - public static final String LANGUAGE = "-language"; - public static final String IMPLEMENTATION_GUIDE = "-ig"; - public static final String DEFINITION = "-defn"; - public static final String MAP = "-map"; - public static final String X = "-x"; - public static final String CONVERT = "-convert"; - public static final String FHIRPATH = "-fhirpath"; - public static final String TEST = "-tests"; - public static final String TX_TESTS = "-txTests"; - public static final String AI_TESTS = "-aiTests"; - public static final String HELP = "help"; - public static final String COMPARE = "-compare"; - public static final String SERVER = "-server"; - public static final String SPREADSHEET = "-spreadsheet"; - public static final String DESTINATION = "-dest"; - public static final String LEFT = "-left"; - public static final String RIGHT = "-right"; - public static final String NO_INTERNAL_CACHING = "-no-internal-caching"; - - public static final String PRELOAD_CACHE = "-preload-cache"; - public static final String NO_EXTENSIBLE_BINDING_WARNINGS = "-no-extensible-binding-warnings"; - public static final String NO_UNICODE_BIDI_CONTROL_CHARS = "-no_unicode_bidi_control_chars"; - public static final String NO_INVARIANTS = "-no-invariants"; - public static final String DISPLAY_WARNINGS = "-display-issues-are-warnings"; - public static final String WANT_INVARIANTS_IN_MESSAGES = "-want-invariants-in-messages"; - public static final String SECURITY_CHECKS = "-security-checks"; - public static final String CRUMB_TRAIL = "-crumb-trails"; - public static final String SHOW_MESSAGE_IDS = "-show-message-ids"; - public static final String FOR_PUBLICATION = "-forPublication"; - public static final String AI_SERVICE = "-ai-service"; - public static final String VERBOSE = "-verbose"; - public static final String SHOW_TIMES = "-show-times"; - public static final String ALLOW_EXAMPLE_URLS = "-allow-example-urls"; - public static final String OUTPUT_STYLE = "-output-style"; - public static final String ADVSIOR_FILE = "-advisor-file"; - public static final String DO_IMPLICIT_FHIRPATH_STRING_CONVERSION = "-implicit-fhirpath-string-conversions"; - public static final String JURISDICTION = "-jurisdiction"; - public static final String HTML_IN_MARKDOWN = "-html-in-markdown"; - public static final String SRC_LANG = "-src-lang"; - public static final String TGT_LANG = "-tgt-lang"; - public static final String ALLOW_DOUBLE_QUOTES = "-allow-double-quotes-in-fhirpath"; - public static final String DISABLE_DEFAULT_RESOURCE_FETCHER = "-disable-default-resource-fetcher"; - public static final String CHECK_IPS_CODES = "-check-ips-codes"; - public static final String BEST_PRACTICE = "-best-practice"; - public static final String UNKNOWN_CODESYSTEMS_CAUSE_ERROR = "-unknown-codesystems-cause-errors"; - public static final String NO_EXPERIMENTAL_CONTENT = "-no-experimental-content"; - - public static final String RUN_TESTS = "-run-tests"; - - public static final String TEST_MODULES = "-test-modules"; - - public static final String TEST_NAME_FILTER = "-test-classname-filter"; - public static final String CERT = "-cert"; - public static final String SPECIAL = "-special"; - public static final String TARGET = "-target"; - public static final String SOURCE = "-source"; - public static final String INPUT = "-input"; - public static final String FILTER = "-filter"; - public static final String EXTERNALS = "-externals"; - public static final String MODE = "-mode"; - private static final String FHIR_SETTINGS_PARAM = "-fhir-settings"; - public static final String WATCH_MODE_PARAM = "-watch-mode"; - public static final String WATCH_SCAN_DELAY = "-watch-scan-delay"; - public static final String WATCH_SETTLE_TIME = "-watch-settle-time"; - public static final String NO_HTTP_ACCESS = "-no-http-access"; - public static final String AUTH_NONCONFORMANT_SERVERS = "-authorise-non-conformant-tx-servers"; - public static final String R5_REF_POLICY = "r5-bundle-relative-reference-policy"; - public static final String MATCHETYPE = "-matchetype"; - /** * Checks the list of passed in params to see if it contains the passed in param. * @@ -162,12 +18,30 @@ public static boolean hasParam(String[] args, String param) { return Arrays.asList(args).contains(param); } + public static boolean hasParamAndValue(String[] args, String param) { + int paramIndex = Arrays.asList(args).indexOf(param); + if (paramIndex == -1) { + return false; + } + checkIfParamValueInBounds(args, param, paramIndex); + return true; + } + + /** + * Check if the value for the param is in bounds in the args array. + */ + private static void checkIfParamValueInBounds(String[] args, String param, int paramIndex) { + if (paramIndex + 1 >= args.length) { + throw new Error("Used '"+ param +"' without providing a value"); + } + } + /** - * Fetches the value for the passed in param from the provided list of params. + * Fetches the value for the passed in param from the provided list of params. * * @param args Array of params to search. * @param param {@link String} param keyword to search for. - * @return {@link String} value for the provided param. + * @return {@link String} value for the provided param, or null if param is out of bounds */ public static String getParam(String[] args, String param) { for (int i = 0; i < args.length - 1; i++) { @@ -176,595 +50,15 @@ public static String getParam(String[] args, String param) { return null; } - /** - * TODO Don't do this all in one for loop. Use the above methods. - */ - public static ValidationContext loadValidationContext(String[] args) throws Exception { - ValidationContext validationContext = new ValidationContext(); - - // load the parameters - so order doesn't matter - for (int i = 0; i < args.length; i++) { - if (args[i].equals(VERSION)) { - validationContext.setSv(VersionUtilities.getCurrentPackageVersion(args[++i])); - } else if (args[i].equals(FHIR_SETTINGS_PARAM)) { - final String fhirSettingsFilePath = args[++i]; - if (! ManagedFileAccess.file(fhirSettingsFilePath).exists()) { - throw new Error("Cannot find fhir-settings file: " + fhirSettingsFilePath); - } - validationContext.setFhirSettingsFile(fhirSettingsFilePath); - } else if (args[i].equals(OUTPUT)) { - if (i + 1 == args.length) - throw new Error("Specified -output without indicating output file"); - else - validationContext.setOutput(args[++i]); - } else if (args[i].equals(OUTPUT_SUFFIX)) { - if (i + 1 == args.length) - throw new Error("Specified -outputSuffix without indicating output suffix"); - else - validationContext.setOutputSuffix(args[++i]); - } - else if (args[i].equals(HTML_OUTPUT)) { - if (i + 1 == args.length) - throw new Error("Specified -html-output without indicating output file"); - else - validationContext.setHtmlOutput(args[++i]); - } else if (args[i].equals(DEBUG_LOG)) { - i++; - } else if (args[i].equals(TRACE_LOG)) { - i++; - } else if (args[i].equals(PROXY)) { - i++; // ignore next parameter - } else if (args[i].equals(PROXY_AUTH)) { - i++; - } else if (args[i].equals(HTTPS_PROXY)) { - i++; - } else if (args[i].equals(PROFILE)) { - String p = null; - if (i + 1 == args.length) { - throw new Error("Specified -profile without indicating profile url"); - } else { - p = args[++i]; - validationContext.addProfile(p); - } - } else if (args[i].equals(PROFILES)) { - String p = null; - if (i + 1 == args.length) { - throw new Error("Specified -profiles without indicating profile urls"); - } else { - p = args[++i]; - for (String s : p.split("\\,")) { - validationContext.addProfile(s); - } - } - } else if (args[i].equals(OPTION)) { - String p = null; - if (i + 1 == args.length) { - throw new Error("Specified -option without indicating option value"); - } else { - p = args[++i]; - validationContext.addOption(p); - } - } else if (args[i].equals(OPTIONS)) { - String p = null; - if (i + 1 == args.length) { - throw new Error("Specified -options without indicating option values"); - } else { - p = args[++i]; - for (String s : p.split("\\,")) { - validationContext.addOption(s); - } - } - } else if (args[i].equals(BUNDLE)) { - String profile = null; - String rule = null; - if (i + 1 == args.length) { - throw new Error("Specified -profile without indicating bundle rule "); - } else { - rule = args[++i]; - } - if (i + 1 == args.length) { - throw new Error("Specified -profile without indicating profile source"); - } else { - profile = args[++i]; - } - validationContext.getBundleValidationRules().add(new BundleValidationRule().setRule(rule).setProfile(profile)); - } else if (args[i].equals(QUESTIONNAIRE)) { - if (i + 1 == args.length) - throw new Error("Specified -questionnaire without indicating questionnaire mode"); - else { - String questionnaireMode = args[++i]; - validationContext.setQuestionnaireMode(QuestionnaireMode.fromCode(questionnaireMode)); - } - } else if (args[i].equals(LEVEL)) { - if (i + 1 == args.length) - throw new Error("Specified -level without indicating level mode"); - else { - String q = args[++i]; - validationContext.setLevel(ValidationLevel.fromCode(q)); - } - } else if (args[i].equals(MODE)) { - if (i + 1 == args.length) - throw new Error("Specified -mode without indicating mode"); - else { - String q = args[++i]; - validationContext.getModeParams().add(q); - } - } else if (args[i].equals(INPUT)) { - if (i + 1 == args.length) - throw new Error("Specified -input without providing value"); - else { - String inp = args[++i]; - validationContext.getInputs().add(inp); - } - } else if (args[i].equals(NATIVE)) { - validationContext.setDoNative(true); - } else if (args[i].equals(ASSUME_VALID_REST_REF)) { - validationContext.setAssumeValidRestReferences(true); - } else if (args[i].equals(CHECK_REFERENCES)) { - validationContext.setCheckReferences(true); - } else if (args[i].equals(RESOLUTION_CONTEXT)) { - validationContext.setResolutionContext(args[++i]); - } else if (args[i].equals(DEBUG)) { - //FIXME warm that debug now outputs to the log file - //validationContext.setDoDebug(true); - } else if (args[i].equals(SCT)) { - validationContext.setSnomedCT(args[++i]); - } else if (args[i].equals(RECURSE)) { - validationContext.setRecursive(true); - } else if (args[i].equals(SHOW_MESSAGES_FROM_REFERENCES)) { - validationContext.setShowMessagesFromReferences(true); - } else if (args[i].equals(DO_IMPLICIT_FHIRPATH_STRING_CONVERSION)) { - validationContext.setDoImplicitFHIRPathStringConversion(true); - } else if (args[i].equals(HTML_IN_MARKDOWN)) { - if (i + 1 == args.length) - throw new Error("Specified "+HTML_IN_MARKDOWN+" without indicating mode"); - else { - String q = args[++i]; - if (!HtmlInMarkdownCheck.isValidCode(q)) { - throw new Error("Specified "+HTML_IN_MARKDOWN+" with na invalid code - must be ignore, warning, or error"); - } else { - validationContext.setHtmlInMarkdownCheck(HtmlInMarkdownCheck.fromCode(q)); - } - } - } else if (args[i].equals(BEST_PRACTICE)) { - if (i + 1 == args.length) - throw new Error("Specified "+BEST_PRACTICE+" without indicating mode"); - else { - String q = args[++i]; - validationContext.setBestPracticeLevel(readBestPractice(q)); - } - } else if (args[i].equals(LOCALE)) { - if (i + 1 == args.length) { - throw new Error("Specified -locale without indicating locale"); - } else { - validationContext.setLocale(Locale.forLanguageTag(args[++i])); - } - } else if (args[i].equals(EXTENSION)) { - validationContext.getExtensions().add(args[++i]); - } else if (args[i].equals(NO_INTERNAL_CACHING)) { - validationContext.setNoInternalCaching(true); - } else if (args[i].equals(NO_EXTENSIBLE_BINDING_WARNINGS)) { - validationContext.setNoExtensibleBindingMessages(true); - } else if (args[i].equals(ALLOW_DOUBLE_QUOTES)) { - validationContext.setAllowDoubleQuotesInFHIRPath(true); - } else if (args[i].equals(DISABLE_DEFAULT_RESOURCE_FETCHER)) { - validationContext.setDisableDefaultResourceFetcher(true); - } else if (args[i].equals(CHECK_IPS_CODES)) { - validationContext.setCheckIPSCodes(true); - } else if (args[i].equals(NO_UNICODE_BIDI_CONTROL_CHARS)) { - validationContext.setNoUnicodeBiDiControlChars(true); - } else if (args[i].equals(NO_INVARIANTS)) { - validationContext.setNoInvariants(true); - } else if (args[i].equals(DISPLAY_WARNINGS)) { - validationContext.setDisplayWarnings(true); - } else if (args[i].equals(WANT_INVARIANTS_IN_MESSAGES)) { - validationContext.setWantInvariantsInMessages(true); - } else if (args[i].equals(HINT_ABOUT_NON_MUST_SUPPORT)) { - validationContext.setHintAboutNonMustSupport(true); - } else if (args[i].equals(TO_VERSION)) { - validationContext.setTargetVer(args[++i]); - validationContext.setMode(EngineMode.VERSION); - } else if (args[i].equals(PACKAGE_NAME)) { - validationContext.setPackageName(args[++i]); - if (!hasParam(args, "-re-package")) { - validationContext.setMode(EngineMode.CODEGEN); - } - } else if (args[i].equals(TX_PACK)) { - validationContext.setMode(EngineMode.RE_PACKAGE); - String pn = args[++i]; - if (pn != null) { - if (pn.contains(",")) { - for (String s : pn.split("\\,")) { - validationContext.getIgs().add(s); - } - } else { - validationContext.getIgs().add(pn); - } - } - validationContext.getModeParams().add("tx"); - validationContext.getModeParams().add("expansions"); - } else if (args[i].equals(RE_PACK)) { - validationContext.setMode(EngineMode.RE_PACKAGE); - String pn = args[++i]; - if (pn != null) { - if (pn.contains(",")) { - for (String s : pn.split("\\,")) { - validationContext.getIgs().add(s); - } - } else { - validationContext.getIgs().add(pn); - } - } - validationContext.getModeParams().add("tx"); - validationContext.getModeParams().add("cnt"); - validationContext.getModeParams().add("api"); - } else if (args[i].equals(PIN)) { - validationContext.getModeParams().add("pin"); - } else if (args[i].equals(EXPAND)) { - validationContext.getModeParams().add("expand"); - } else if (args[i].equals(DO_NATIVE)) { - validationContext.setCanDoNative(true); - } else if (args[i].equals(NO_NATIVE)) { - validationContext.setCanDoNative(false); - } else if (args[i].equals(TRANSFORM)) { - validationContext.setMap(args[++i]); - validationContext.setMode(EngineMode.TRANSFORM); - } else if (args[i].equals(FORMAT)) { - validationContext.setFormat(FhirFormat.fromCode(args[++i])); - } else if (args[i].equals(LANG_TRANSFORM)) { - validationContext.setLangTransform(args[++i]); - validationContext.setMode(EngineMode.LANG_TRANSFORM); - } else if (args[i].equals(LANG_REGEN)) { - validationContext.addLangRegenParam(args[++i]); - validationContext.addLangRegenParam(args[++i]); - validationContext.addLangRegenParam(args[++i]); - validationContext.setMode(EngineMode.LANG_REGEN); - } else if (args[i].equals(EXP_PARAMS)) { - validationContext.setExpansionParameters(args[++i]); - } else if (args[i].equals(COMPILE)) { - validationContext.setMap(args[++i]); - validationContext.setMode(EngineMode.COMPILE); - } else if (args[i].equals(CODEGEN)) { - validationContext.setMode(EngineMode.CODEGEN); - } else if (args[i].equals(FACTORY)) { - validationContext.setMode(EngineMode.FACTORY); - validationContext.setSource(args[++i]); - } else if (args[i].equals(NARRATIVE)) { - validationContext.setMode(EngineMode.NARRATIVE); - } else if (args[i].equals(SPREADSHEET)) { - validationContext.setMode(EngineMode.SPREADSHEET); - } else if (args[i].equals(SNAPSHOT)) { - validationContext.setMode(EngineMode.SNAPSHOT); - } else if (args[i].equals(INSTALL)) { - validationContext.setMode(EngineMode.INSTALL); - } else if (args[i].equals(RUN_TESTS)) { - // TODO setBaseTestingUtils test directory - validationContext.setMode(EngineMode.RUN_TESTS); - } else if (args[i].equals(SECURITY_CHECKS)) { - validationContext.setSecurityChecks(true); - } else if (args[i].equals(CRUMB_TRAIL)) { - validationContext.setCrumbTrails(true); - } else if (args[i].equals(SHOW_MESSAGE_IDS)) { - validationContext.setShowMessageIds(true); - } else if (args[i].equals(FOR_PUBLICATION)) { - validationContext.setForPublication(true); - } else if (args[i].equals(AI_SERVICE)) { - validationContext.setAIService(args[++i]); - } else if (args[i].equals(R5_REF_POLICY)) { - validationContext.setR5BundleRelativeReferencePolicy(R5BundleRelativeReferencePolicy.fromCode(args[++i])); - } else if (args[i].equals(UNKNOWN_CODESYSTEMS_CAUSE_ERROR)) { - validationContext.setUnknownCodeSystemsCauseErrors(true); - } else if (args[i].equals(NO_EXPERIMENTAL_CONTENT)) { - validationContext.setNoExperimentalContent(true); - } else if (args[i].equals(VERBOSE)) { - validationContext.setCrumbTrails(true); - validationContext.setShowMessageIds(true); - } else if (args[i].equals(ALLOW_EXAMPLE_URLS)) { - String bl = args[++i]; - if ("true".equals(bl)) { - validationContext.setAllowExampleUrls(true); - } else if ("false".equals(bl)) { - validationContext.setAllowExampleUrls(false); - } else { - throw new Error("Value for "+ALLOW_EXAMPLE_URLS+" not understood: "+bl); - } - } else if (args[i].equals(TERMINOLOGY_ROUTING)) { - validationContext.setShowTerminologyRouting(true); - } else if (args[i].equals(TERMINOLOGY_CACHE_CLEAR)) { - validationContext.setClearTxCache(true); - } else if (args[i].equals(SHOW_TIMES)) { - validationContext.setShowTimes(true); - } else if (args[i].equals(OUTPUT_STYLE)) { - validationContext.setOutputStyle(args[++i]); - } else if (args[i].equals(ADVSIOR_FILE)) { - validationContext.setAdvisorFile(args[++i]); - File f = ManagedFileAccess.file(validationContext.getAdvisorFile()); - if (!f.exists()) { - throw new Error("Cannot find advisor file "+ validationContext.getAdvisorFile()); - } else if (!Utilities.existsInList(Utilities.getFileExtension(f.getName()), "json", "txt")) { - throw new Error("Advisor file "+ validationContext.getAdvisorFile()+" must be a .json or a .txt file"); - } - } else if (args[i].equals(SCAN)) { - validationContext.setMode(EngineMode.SCAN); - } else if (args[i].equals(TERMINOLOGY)) { - if (i + 1 == args.length) - throw new Error("Specified -tx without indicating terminology server"); - else { - validationContext.setTxServer("n/a".equals(args[++i]) ? null : args[i]); - validationContext.setNoEcosystem(true); - } - } else if (args[i].equals(TERMINOLOGY_LOG)) { - if (i + 1 == args.length) - throw new Error("Specified -txLog without indicating file"); - else - validationContext.setTxLog(args[++i]); - } else if (args[i].equals(TERMINOLOGY_CACHE)) { - if (i + 1 == args.length) - throw new Error("Specified -txCache without indicating file"); - else - validationContext.setTxCache(args[++i]); - } else if (args[i].equals(CERT)) { - if (i + 1 == args.length) - throw new Error("Specified -txCache without indicating file"); - else { - String s = args[++i]; - if (!(new File(s).exists())) { - throw new Error("Certificate source '"+s+"' not found"); - } else { - validationContext.getCertSources().add(s); - } - } - } else if (args[i].equals(MATCHETYPE)) { - if (i + 1 == args.length) - throw new Error("Specified -matchetype without indicating file"); - else { - String s = args[++i]; - if (!(new File(s).exists())) { - throw new Error("-matchetype source '"+s+"' not found"); - } else { - validationContext.getMatchetypes().add(s); - } - }} else if (args[i].equals(LOG)) { - if (i + 1 == args.length) - throw new Error("Specified -log without indicating file"); - else - validationContext.setMapLog(args[++i]); - } else if (args[i].equals(LANGUAGE)) { - if (i + 1 == args.length) - throw new Error("Specified -language without indicating language"); - else - validationContext.setLang(args[++i]); - } else if (args[i].equals(SRC_LANG)) { - if (i + 1 == args.length) - throw new Error("Specified -src-lang without indicating file"); - else - validationContext.setSrcLang(args[++i]); - } else if (args[i].equals(TGT_LANG)) { - if (i + 1 == args.length) - throw new Error("Specified -tgt-lang without indicating file"); - else - validationContext.setTgtLang(args[++i]); - } else if (args[i].equals(JURISDICTION)) { - if (i + 1 == args.length) - throw new Error("Specified -jurisdiction without indicating jurisdiction"); - else - validationContext.setJurisdiction(processJurisdiction(args[++i])); - } else if (args[i].equals(IMPLEMENTATION_GUIDE) || args[i].equals(DEFINITION)) { - if (i + 1 == args.length) - throw new Error("Specified " + args[i] + " without indicating ig file"); - else { - String s = args[++i]; - String version = getVersionFromIGName(null, s); - if (version == null) { - validationContext.addIg(s); - } else { - String v = getParam(args, VERSION); - if (v != null && !v.equals(version)) { - throw new Error("Parameters are inconsistent: specified version is "+v+" but -ig parameter "+s+" implies a different version"); - } else if (validationContext.getSv() != null && !version.equals(validationContext.getSv())) { - throw new Error("Parameters are inconsistent: multiple -ig parameters implying differetion versions ("+ validationContext.getSv()+","+version+")"); - } else { - validationContext.setSv(version); - } - } - } - } else if (args[i].equals(ALT_VERSION)) { - if (i + 1 == args.length) - throw new Error("Specified " + args[i] + " without indicating version"); - else { - String s = args[++i]; - String v = VersionUtilities.getMajMin(s); - if (v == null) { - throw new Error("Unsupported FHIR Version "+s); - } - String pid = VersionUtilities.packageForVersion(v); - pid = pid + "#"+VersionUtilities.getCurrentPackageVersion(v); - validationContext.addIg(pid); - } - } else if (args[i].equals(MAP)) { - if (validationContext.getMap() == null) { - if (i + 1 == args.length) - throw new Error("Specified -map without indicating map file"); - else - validationContext.setMap(args[++i]); - } else { - throw new Exception("Can only nominate a single -map parameter"); - } - } else if (args[i].equals(WATCH_MODE_PARAM)) { - if (i + 1 == args.length) { - throw new Error("Specified -watch-mode without indicating mode value"); - } else { - validationContext.setWatchMode(readWatchMode(args[++i])); - } - } else if (args[i].equals(WATCH_SCAN_DELAY)) { - if (i + 1 == args.length) { - throw new Error("Specified -watch-scan-delay without indicating mode value"); - } else { - validationContext.setWatchScanDelay(readInteger(WATCH_SCAN_DELAY, args[++i])); - } - } else if (args[i].equals(WATCH_SETTLE_TIME)) { - if (i + 1 == args.length) { - throw new Error("Specified -watch-mode without indicating mode value"); - } else { - validationContext.setWatchSettleTime(readInteger(WATCH_SETTLE_TIME, args[++i])); - } } else if (args[i].startsWith(X)) { - i++; - } else if (args[i].equals(CONVERT)) { - validationContext.setMode(EngineMode.CONVERT); - } else if (args[i].equals(SERVER)) { - i++; - } else if (args[i].equals(FHIRPATH)) { - validationContext.setMode(EngineMode.FHIRPATH); - if (validationContext.getFhirpath() == null) - if (i + 1 == args.length) - throw new Error("Specified -fhirpath without indicating a FHIRPath expression"); - else - validationContext.setFhirpath(args[++i]); - else - throw new Exception("Can only nominate a single -fhirpath parameter"); - } else if (!Utilities.existsInList(args[i], AUTH_NONCONFORMANT_SERVERS)) { - validationContext.addSource(args[i]); - } - } - - return validationContext; - } - - private static BestPracticeWarningLevel readBestPractice(String s) { - if (s == null) { - return BestPracticeWarningLevel.Warning; - } - switch (s.toLowerCase()) { - case "warning" : return BestPracticeWarningLevel.Warning; - case "error" : return BestPracticeWarningLevel.Error; - case "hint" : return BestPracticeWarningLevel.Hint; - case "ignore" : return BestPracticeWarningLevel.Ignore; - case "w" : return BestPracticeWarningLevel.Warning; - case "e" : return BestPracticeWarningLevel.Error; - case "h" : return BestPracticeWarningLevel.Hint; - case "i" : return BestPracticeWarningLevel.Ignore; - } - throw new Error("The best-practice level ''"+s+"'' is not valid"); - } - - private static int readInteger(String name, String value) { - if (!Utilities.isInteger(value)) { - throw new Error("Unable to read "+value+" provided for '"+name+"' - must be an integer"); - } - return Integer.parseInt(value); - } - - private static ValidatorWatchMode readWatchMode(String s) { - if (s == null) { - return ValidatorWatchMode.NONE; - } - switch (s.toLowerCase()) { - case "all" : return ValidatorWatchMode.ALL; - case "none" : return ValidatorWatchMode.NONE; - case "single" : return ValidatorWatchMode.SINGLE; - case "a" : return ValidatorWatchMode.ALL; - case "n" : return ValidatorWatchMode.NONE; - case "s" : return ValidatorWatchMode.SINGLE; - } - throw new Error("The watch mode ''"+s+"'' is not valid"); - } - - private static String processJurisdiction(String s) { - if (s.startsWith("urn:iso:std:iso:3166#") || s.startsWith("urn:iso:std:iso:3166:-2#") || s.startsWith("http://unstats.un.org/unsd/methods/m49/m49.htm#")) { - return s; - } else { - String v = JurisdictionUtilities.getJurisdictionFromLocale(s); - if (v != null) { - return v; - } else { - throw new FHIRException("Unable to understand Jurisdiction '"+s+"'"); - } - } - } - - public static String getTerminologyServerLog(String[] args) throws IOException { - String txLog = null; - if (hasParam(args, "-txLog")) { - txLog = getParam(args, "-txLog"); - ManagedFileAccess.file(txLog).delete(); - } - return txLog; - } - - public static void checkIGFileReferences(String[] args) { - for (int i = 0; i < args.length; i++) { - if (IMPLEMENTATION_GUIDE.equals(args[i])) { - if (i + 1 == args.length) - throw new Error("Specified -ig without indicating ig file"); - else { - String s = args[++i]; - if (!s.startsWith("hl7.fhir.core-")) { - log.info("Load Package: " + s); - } - } - } - } - } - - public static String getVersion(String[] args) { - String v = Params.getParam(args, "-version"); - if (v == null) { - v = "5.0"; - for (int i = 0; i < args.length; i++) { - if ("-ig".equals(args[i])) { - if (i + 1 == args.length) - throw new Error("Specified -ig without indicating ig file"); - else { - String n = args[i + 1]; - v = getVersionFromIGName(v, n); - } - } + public static Collection getMultiValueParam(String[] args, String param) { + final List output = new LinkedList<>(); + for (int i = 0; i < args.length - 1; i++) { + if (args[i].equals(param)) { + checkIfParamValueInBounds(args, param, i); + output.add(args[i + 1]); } - } else if (VersionUtilities.isR2Ver(v)) { - v = "1.0"; - } else if (VersionUtilities.isR2BVer(v)) { - v = "1.4"; - } else if (VersionUtilities.isR3Ver(v)) { - v = "3.0"; - } else if (VersionUtilities.isR4Ver(v)) { - v = "4.0"; - } else if (VersionUtilities.isR4BVer(v)) { - v = "4.3"; - } else if (VersionUtilities.isR5Ver(v)) { - v = "5.0"; - } else if (VersionUtilities.isR6Ver(v)) { - v = "6.0"; } - return v; + return Collections.unmodifiableList(output); } - /** - * Evaluates the current implementation guide file name and sets the current version accordingly. - *

- * If igFileName is not one of the known patterns, will return whatever value is passed in as default. - * - * @param defaultValue Version to return if no associated version can be determined from passed in igFileName - * @param igFileName Name of the implementation guide - * @return - */ - public static String getVersionFromIGName(String defaultValue, String igFileName) { - if (igFileName.equals("hl7.fhir.core")) { - defaultValue = "5.0"; - } else if (igFileName.startsWith("hl7.fhir.core#")) { - defaultValue = VersionUtilities.getCurrentPackageVersion(igFileName.substring(14)); - } else if (igFileName.startsWith("hl7.fhir.r2.core#") || igFileName.equals("hl7.fhir.r2.core")) { - defaultValue = "1.0"; - } else if (igFileName.startsWith("hl7.fhir.r2b.core#") || igFileName.equals("hl7.fhir.r2b.core")) { - defaultValue = "1.4"; - } else if (igFileName.startsWith("hl7.fhir.r3.core#") || igFileName.equals("hl7.fhir.r3.core")) { - defaultValue = "3.0"; - } else if (igFileName.startsWith("hl7.fhir.r4.core#") || igFileName.equals("hl7.fhir.r4.core")) { - defaultValue = "4.0"; - } else if (igFileName.startsWith("hl7.fhir.r5.core#") || igFileName.equals("hl7.fhir.r5.core")) { - defaultValue = "5.0"; - } else if (igFileName.startsWith("hl7.fhir.r6.core#") || igFileName.equals("hl7.fhir.r6.core")) { - defaultValue = "6.0"; - } - return defaultValue; - } } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java b/matchbox-engine/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java index 259a5dabd3e..d00627a865f 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java @@ -61,8 +61,8 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.r5.conformance.profile.ProfileUtilities; import org.hl7.fhir.r5.conformance.profile.ProfileUtilities.SourcedChildDefinitions; import org.hl7.fhir.r5.context.ContextUtilities; +import org.hl7.fhir.r5.context.IOIDServices; import org.hl7.fhir.r5.context.IWorkerContext; -import org.hl7.fhir.r5.context.IWorkerContext.OIDSummary; import org.hl7.fhir.r5.elementmodel.Element; import org.hl7.fhir.r5.elementmodel.Element.SpecialElement; import org.hl7.fhir.r5.elementmodel.JsonParser; @@ -115,13 +115,15 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionSnapshotComponent; import org.hl7.fhir.r5.model.StructureDefinition.TypeDerivationRule; import org.hl7.fhir.r5.model.ValueSet.ValueSetExpansionContainsComponent; +import org.hl7.fhir.r5.terminologies.CodeSystemUtilities; +import org.hl7.fhir.r5.terminologies.ValueSetUtilities; import org.hl7.fhir.r5.terminologies.utilities.TerminologyServiceErrorClass; import org.hl7.fhir.r5.terminologies.utilities.ValidationResult; import org.hl7.fhir.r5.utils.BuildExtensions; import org.hl7.fhir.r5.utils.ResourceUtilities; import org.hl7.fhir.r5.utils.UserDataNames; -import org.hl7.fhir.r5.utils.XVerExtensionManager; -import org.hl7.fhir.r5.utils.XVerExtensionManager.XVerExtensionStatus; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager.XVerExtensionStatus; import org.hl7.fhir.r5.utils.sql.Validator; import org.hl7.fhir.r5.utils.sql.Validator.TrueFalseOrUnknown; import org.hl7.fhir.r5.utils.validation.BundleValidationRule; @@ -145,7 +147,6 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode; import org.hl7.fhir.utilities.filesystem.ManagedFileAccess; import org.hl7.fhir.utilities.http.HTTPResultException; -import org.hl7.fhir.utilities.http.ManagedWebAccess; import org.hl7.fhir.utilities.i18n.I18nConstants; import org.hl7.fhir.utilities.json.model.JsonObject; import org.hl7.fhir.utilities.validation.IDigitalSignatureServices; @@ -162,6 +163,7 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.validation.ai.CodeAndTextValidationResult; import org.hl7.fhir.validation.ai.CodeAndTextValidator; import org.hl7.fhir.validation.service.model.HtmlInMarkdownCheck; +import org.hl7.fhir.validation.service.model.InstanceValidatorParameters; import org.hl7.fhir.validation.service.utils.QuestionnaireMode; import org.hl7.fhir.validation.codesystem.CodingsObserver; import org.hl7.fhir.validation.instance.type.BundleValidator; @@ -222,7 +224,7 @@ public enum BindingContext { private static final String EXECUTED_CONSTRAINT_LIST = "validator.executed.invariant.list"; private static final String EXECUTION_ID = "validator.execution.id"; private static final String HTML_FRAGMENT_REGEX = "[a-zA-Z]\\w*(((\\s+)(\\S)*)*)"; - private static final boolean STACK_TRACE = true; + private static final boolean STACK_TRACE = false; private static final boolean DEBUG_ELEMENT = false; private static final boolean SAVE_INTERMEDIARIES = false; // set this to true to get the intermediary formats while we are waiting for a UI around this z(SHC/SHL) @@ -374,7 +376,7 @@ private List executeSlice(FHIRPathEngine engine, Object appContext, List errors, String p StructureDefinition sd = profiles.get(i); if (sd.hasExtension(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { for (Extension ext : sd.getExtensionsByUrl(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { - StructureDefinition dep = context.fetchResource( StructureDefinition.class, ext.getValue().primitiveValue(), sd); + StructureDefinition dep = context.fetchResource( StructureDefinition.class, ext.getValue().primitiveValue(), null, sd); if (dep == null) { warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), false, I18nConstants.VALIDATION_VAL_PROFILE_DEPENDS_NOT_RESOLVED, ext.getValue().primitiveValue(), sd.getVersionedUrl()); } else if (!profiles.contains(dep)) { @@ -1134,35 +1192,36 @@ private boolean checkAttachment(List errors, String path, Ele private boolean checkCode(List errors, Element element, String path, String code, String system, String version, String display, boolean checkDisplay, NodeStack stack) throws TerminologyServiceException { boolean ok = true; long t = System.nanoTime(); - boolean ss = context.supportsSystem(system); - timeTracker.tx(t, "ss "+system); + IWorkerContext.SystemSupportInformation txSupportInfo = context.getTxSupportInfo(system, version); + boolean ss = txSupportInfo.isSupported(); + timeTracker.tx(t, "ss " + system); if (ss) { t = System.nanoTime(); ValidationResult s = checkCodeOnServer(stack, code, system, version, display, checkDisplay); - timeTracker.tx(t, "vc "+system+"#"+code+" '"+display+"'"); + timeTracker.tx(t, "vc " + system + "#" + code + " '" + display + "'"); if (s == null) return true; ok = calculateSeverityForTxIssuesAndUpdateErrors(errors, s, element, path, false, null, null) & ok; if (s.isOk()) { if (s.getMessage() != null && !s.messageIsInIssues()) { - txWarning(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, I18nConstants.TERMINOLOGY_PASSTHROUGH_TX_MESSAGE, s.getMessage(), system, code); + txWarning(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, I18nConstants.TERMINOLOGY_PASSTHROUGH_TX_MESSAGE, s.getMessage(), system, code); } return ok; } if (!s.messageIsInIssues()) { if (s.getErrorClass() != null && s.getErrorClass().isInfrastructure()) - txWarning(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); + txWarning(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); else if (s.getSeverity() == IssueSeverity.INFORMATION) - txHint(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); + txHint(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); else if (s.getSeverity() == IssueSeverity.WARNING) - txWarning(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); - else - return txRule(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, I18nConstants.TERMINOLOGY_PASSTHROUGH_TX_MESSAGE, s.getMessage(), system, code) && ok; + txWarning(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); + else + return txRule(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, I18nConstants.TERMINOLOGY_PASSTHROUGH_TX_MESSAGE, s.getMessage(), system, code) && ok; } return ok; } else if (system.startsWith("http://build.fhir.org") || system.startsWith("https://build.fhir.org")) { - rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_WRONG_BUILD, system, suggestSystemForBuild(system)); + rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_WRONG_BUILD, system, suggestSystemForBuild(system)); return false; } else if (system.startsWith("http://hl7.org/fhir") || system.startsWith("https://hl7.org/fhir") || system.startsWith("http://www.hl7.org/fhir") || system.startsWith("https://www.hl7.org/fhir")) { if (SIDUtilities.isknownCodeSystem(system)) { @@ -1170,45 +1229,48 @@ else if (s.getSeverity() == IssueSeverity.WARNING) } else if (system.startsWith("http://hl7.org/fhir/test")) { return ok; // we don't validate these } else if (system.endsWith(".html")) { - rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_WRONG_HTML, system, suggestSystemForPage(system)); + rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_WRONG_HTML, system, suggestSystemForPage(system)); return false; } else { CodeSystem cs = getCodeSystem(system); if (rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, cs != null, I18nConstants.TERMINOLOGY_TX_SYSTEM_UNKNOWN, system)) { ConceptDefinitionComponent def = getCodeDefinition(cs, code); - if (warning(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, def != null, I18nConstants.UNKNOWN_CODESYSTEM, system, code)) + if (warning(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path+".system", def != null, I18nConstants.UNKNOWN_CODESYSTEM, system, code)) return warning(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, display == null || display.equals(def.getDisplay()), I18nConstants.TERMINOLOGY_TX_DISPLAY_WRONG, def.getDisplay()) && ok; } return false; } } else if (context.isNoTerminologyServer() && NO_TX_SYSTEM_EXEMPT.contains(system)) { - txWarning(errors, NO_RULE_DATE, null, IssueType.BUSINESSRULE, element.line(), element.col(), path, false, I18nConstants.ERROR_VALIDATING_CODE_RUNNING_WITHOUT_TERMINOLOGY_SERVICES, code, system); + txWarning(errors, NO_RULE_DATE, null, null, IssueType.BUSINESSRULE, element.line(), element.col(), path, false, I18nConstants.ERROR_VALIDATING_CODE_RUNNING_WITHOUT_TERMINOLOGY_SERVICES, code, system); return ok; // no checks in this case } else if (startsWithButIsNot(system, "http://snomed.info/sct", "http://loinc.org", "http://unitsofmeasure.org", "http://www.nlm.nih.gov/research/umls/rxnorm")) { rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_INVALID, system); return false; + } else if (ValueSetUtilities.isServerSide(system)) { + warning(errors, "2025-11-28", IssueType.BUSINESSRULE, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_UNSUPPORTED, system, version, txSupportInfo.reason()); + return ok; } else { try { - if (context.fetchResourceWithException(ValueSet.class, system, element.getProperty().getStructure()) != null) { + if (context.fetchResourceWithException(ValueSet.class, system, null, element.getProperty().getStructure()) != null) { ok = rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_VALUESET, system) && ok; // Lloyd: This error used to prohibit checking for downstream issues, but there are some cases where that checking needs to occur. Please talk to me before changing the code back. } boolean done = false; if (system.startsWith("https:") && system.length() > 7) { - String ns = "http:"+system.substring(6); + String ns = "http:" + system.substring(6); CodeSystem cs = getCodeSystem(ns); if (cs != null || NO_HTTPS_LIST.contains(system)) { rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_HTTPS, system); done = true; - } - } + } + } if (!isAllowExamples() || !Utilities.startsWithInList(system, "http://example.org", "https://example.org")) { CodeSystem cs = context.fetchCodeSystem(system); if (cs == null) { - hint(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path, done, I18nConstants.UNKNOWN_CODESYSTEM, system); + hint(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path+".system", done, I18nConstants.UNKNOWN_CODESYSTEM, system); } else { if (hint(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path, cs.getContent() != CodeSystemContentMode.NOTPRESENT, I18nConstants.TERMINOLOGY_TX_SYSTEM_NOT_USABLE, system)) { - ok = rule(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path, false, "Error - this should not happen? (Consult GG)") && ok; + ok = rule(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path, false, "Unexpected internal condition - unsupported code system could be supported? (url = {0})", cs.getVersionedUrl()) && ok; } } } @@ -1380,7 +1442,7 @@ private boolean checkCodeableConcept(List errors, String path // } else if (binding.hasValueSet()) { // hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_CANTCHECK); } else if (!noBindingMsgSuppressed) { - hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path); + hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path, profile); } for (ElementDefinitionBindingAdditionalComponent ab : binding.getAdditional()) { StringBuilder b = new StringBuilder(); @@ -1653,7 +1715,7 @@ else if (!noExtensibleWarnings) { boolean atLeastOneSystemIsSupported = false; for (Coding nextCoding : cc.getCoding()) { String nextSystem = nextCoding.getSystem(); - if (isNotBlank(nextSystem) && context.supportsSystem(nextSystem)) { + if (isNotBlank(nextSystem) && context.getTxSupportInfo(nextSystem, nextCoding.getVersion()).isSupported()) { atLeastOneSystemIsSupported = true; break; } @@ -1669,46 +1731,46 @@ else if (!noExtensibleWarnings) { bindingsOk = false; if (vr.getErrorClass() != null && vr.getErrorClass() == TerminologyServiceErrorClass.NOSERVICE) { if (strength == BindingStrength.REQUIRED || (strength == BindingStrength.EXTENSIBLE && maxVS != null)) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOSVC_BOUND_REQ, describeReference(vsRef)); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOSVC_BOUND_REQ, describeReference(vsRef)); } else if (strength == BindingStrength.EXTENSIBLE) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOSVC_BOUND_EXT, describeReference(vsRef)); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOSVC_BOUND_EXT, describeReference(vsRef)); } } else if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) { if (strength == BindingStrength.REQUIRED) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_1_CC, describeReference(vsRef), vr.getErrorClass().toString()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_1_CC, describeReference(vsRef), vr.getErrorClass().toString()); else if (strength == BindingStrength.EXTENSIBLE) { if (maxVS != null) bh.see(checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(maxVS), cc, stack)); else if (!noExtensibleWarnings) - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_2_CC, describeReference(vsRef), vr.getErrorClass().toString()); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_2_CC, describeReference(vsRef), vr.getErrorClass().toString()); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_3_CC, describeReference(vsRef), vr.getErrorClass().toString()); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_3_CC, describeReference(vsRef), vr.getErrorClass().toString()); } } } else if (vr.getErrorClass() != null && vr.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED) { // we've already handled the warnings / errors about this, and set the status correctly. We don't need to do anything more? } else if (vr.getErrorClass() != TerminologyServiceErrorClass.SERVER_ERROR) { // (should have?) already handled server error if (strength == BindingStrength.REQUIRED) { - bh.see(txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_1_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc))); + bh.see(txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_1_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc))); } else if (strength == BindingStrength.EXTENSIBLE) { if (maxVS != null) bh.see(checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(maxVS), cc, stack)); if (!noExtensibleWarnings) - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_2_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc)); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_2_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc)); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_3_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc)); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_3_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc)); } } } } else if (vr.getMessage() != null) { if (vr.getTrimmedMessage() != null) { if (vr.getSeverity() == IssueSeverity.INFORMATION) { - txHint(errors, "2023-07-03", vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txHint(errors, "2023-07-03", vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } else { checkDisp = false; - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getTrimmedMessage()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getTrimmedMessage()); } } } else { @@ -1780,8 +1842,8 @@ private boolean calculateSeverityForTxIssuesAndUpdateErrors(List errors, String path, Element element, NodeStack stack, ValueSet valueset, Coding nextCoding) { boolean ok = true; - if (isNotBlank(nextCoding.getCode()) && isNotBlank(nextCoding.getSystem()) && context.supportsSystem(nextCoding.getSystem())) { + if (isNotBlank(nextCoding.getCode()) && isNotBlank(nextCoding.getSystem()) && context.getTxSupportInfo(nextCoding.getSystem(), nextCoding.getVersion()).isSupported()) { ValidationResult vr = checkCodeOnServer(stack, valueset, nextCoding); ok = calculateSeverityForTxIssuesAndUpdateErrors(errors, vr, element, path, false, null, null) && ok; if (vr.getSeverity() != null && !vr.messageIsInIssues()) { if (vr.getSeverity() == IssueSeverity.INFORMATION) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } else if (vr.getSeverity() == IssueSeverity.WARNING) { - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } else { - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()) && ok; } } } @@ -1925,7 +1987,7 @@ private boolean checkCDACodeableConcept(List errors, String p // } else if (binding.hasValueSet()) { // hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_CANTCHECK); } else if (!noBindingMsgSuppressed) { - hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path); + hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path, profile); } for (ElementDefinitionBindingAdditionalComponent ab : binding.getAdditional()) { StringBuilder b = new StringBuilder(); @@ -1971,7 +2033,7 @@ private boolean checkTerminologyCoding(List errors, String pa } else if (binding.hasValueSet()) { hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_CANTCHECK); } else if (!inCodeableConcept && !noBindingMsgSuppressed) { - hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path); + hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path, profile); } for (ElementDefinitionBindingAdditionalComponent ab : binding.getAdditional()) { StringBuilder b = new StringBuilder(); @@ -2021,37 +2083,37 @@ private boolean validateBindingTerminologyCoding(List errors, timeTracker.tx(t, "vc "+system+"#"+code+" '"+display+"'"); if (vr != null && !vr.isOk()) { if (vr.IsNoService()) - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSERVER, system+"#"+code); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSERVER, system+"#"+code); else if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) { if (strength == BindingStrength.REQUIRED) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_4a, describeReference(vsRef, valueset, bc, usageNote), vr.getMessage(), system+"#"+code); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_4a, describeReference(vsRef, valueset, bc, usageNote), vr.getMessage(), system+"#"+code); else if (strength == BindingStrength.EXTENSIBLE) { if (vsMax != null) checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(vsMax), c, stack); else if (!noExtensibleWarnings) - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_5, describeReference(vsRef, valueset, bc, usageNote)); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_5, describeReference(vsRef, valueset, bc, usageNote)); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_6, describeReference(vsRef, valueset, bc, usageNote)); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_6, describeReference(vsRef, valueset, bc, usageNote)); } } } else if (strength == BindingStrength.REQUIRED) - ok= txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_4, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code) && ok; + ok= txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_4, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code) && ok; else if (strength == BindingStrength.EXTENSIBLE) { if (vsMax != null) ok = checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(vsMax), c, stack) && ok; else - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_5, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_5, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_6, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_6, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code); } } } else if (vr != null && vr.getMessage() != null){ if (vr.getSeverity() == IssueSeverity.INFORMATION) { - txHint(errors, "2023-07-04", vr.getTxLink(), IssueType.INFORMATIONAL, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_HINT, code, vr.getMessage()); + txHint(errors, "2023-07-04", vr.getTxLink(), vr.getDiagnostics(), IssueType.INFORMATIONAL, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_HINT, code, vr.getMessage()); } else { - txWarning(errors, "2023-07-04", vr.getTxLink(), IssueType.INFORMATIONAL, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_WARNING, code, vr.getMessage()); + txWarning(errors, "2023-07-04", vr.getTxLink(), vr.getDiagnostics(), IssueType.INFORMATIONAL, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_WARNING, code, vr.getMessage()); } } } catch (Exception e) { @@ -2074,19 +2136,22 @@ private boolean convertCDACodeToCodeableConcept(List errors, String oid = element.getNamedChildValue("codeSystem", false); if (oid != null) { c.setSystem("urn:oid:"+oid); - OIDSummary urls = context.urlsForOid(oid, "CodeSystem"); - if (urls.urlCount() == 1) { - c.setSystem(urls.getUrl()); - } else if (urls.urlCount() == 0) { - warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid); - } else { - String prefUrl = urls.chooseBestUrl(); - if (prefUrl == null) { - rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, urls.describe()); - ok = false; + IOIDServices oidservices = context.oidServices(); + if (hint(errors, "2025-09-28", IssueType.CODEINVALID, element.line(), element.col(), path, context.oidServices() != null, I18nConstants.TERMINOLOGY_TX_NO_OID_SERVICES, oid)) { + IOIDServices.OIDSummary urls = context.oidServices().urlsForOid(oid, "CodeSystem"); + if (urls.urlCount() == 1) { + c.setSystem(urls.getUrl()); + } else if (urls.urlCount() == 0) { + warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid); } else { - c.setSystem(prefUrl); - warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES_CHOSEN, oid, prefUrl, urls.describe()); + String prefUrl = urls.chooseBestUrl(); + if (prefUrl == null) { + rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, urls.describe()); + ok = false; + } else { + c.setSystem(prefUrl); + warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES_CHOSEN, oid, prefUrl, urls.describe()); + } } } } else { @@ -2151,9 +2216,9 @@ private boolean checkMaxValueSet(List errors, String path, El timeTracker.tx(t, "vc "+cc.toString()); if (!vr.isOk()) { if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_7, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), vr.getMessage()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_7, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), vr.getMessage()); else - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_8, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), ccSummary(cc)) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_8, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), ccSummary(cc)) && ok; } } catch (CheckCodeOnServerException e) { if (STACK_TRACE) e.getCause().printStackTrace(); @@ -2191,9 +2256,9 @@ private boolean checkMaxValueSet(List errors, String path, El timeTracker.tx(t, "vc "+c.getSystem()+"#"+c.getCode()+" '"+c.getDisplay()+"'"); if (!vr.isOk()) { if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_9, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), vr.getMessage(), c.getSystem()+"#"+c.getCode()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_9, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), vr.getMessage(), c.getSystem()+"#"+c.getCode()); else - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_10, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), c.getSystem(), c.getCode()) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_10, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), c.getSystem(), c.getCode()) && ok; } } catch (Exception e) { if (STACK_TRACE) e.printStackTrace(); @@ -2221,9 +2286,9 @@ private boolean checkMaxValueSet(List errors, String path, El timeTracker.tx(t, "vc "+value); if (!vr.isOk()) { if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_9, describeReference(maxVSUrl, valueset, BindingContext.BASE, null), vr.getMessage(), value); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_9, describeReference(maxVSUrl, valueset, BindingContext.BASE, null), vr.getMessage(), value); else { - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_11, describeReference(maxVSUrl, valueset, BindingContext.BASE, null), vr.getMessage()) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_11, describeReference(maxVSUrl, valueset, BindingContext.BASE, null), vr.getMessage()) && ok; } } } catch (Exception e) { @@ -2289,7 +2354,7 @@ private boolean checkCodedElement(List errors, String path, E // hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_CANTCHECK); } else if (!inCodeableConcept && !noBindingMsgSuppressed) { - hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path); + hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path, profile); } for (ElementDefinitionBindingAdditionalComponent ab : binding.getAdditional()) { @@ -2361,38 +2426,38 @@ private boolean validateBindingCodedElement(List errors, Stri if (vr != null && !vr.isOk()) { if (vr.IsNoService()) - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSERVER, theSystem+"#"+theCode); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSERVER, theSystem+"#"+theCode); else if (vr.getErrorClass() != null && !vr.getErrorClass().isInfrastructure()) { if (strength == BindingStrength.REQUIRED) - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_4a, describeReference(vsRef, valueset, bc, usageNote), vr.getMessage(), theSystem+"#"+theCode) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_4a, describeReference(vsRef, valueset, bc, usageNote), vr.getMessage(), theSystem+"#"+theCode) && ok; else if (strength == BindingStrength.EXTENSIBLE) { if (vsMax != null) checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(vsMax), c, stack); else if (!noExtensibleWarnings) - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_5, describeReference(vsRef, valueset, bc, usageNote), theSystem+"#"+theCode); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_5, describeReference(vsRef, valueset, bc, usageNote), theSystem+"#"+theCode); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_6, describeReference(vsRef, valueset, bc, usageNote), theSystem+"#"+theCode); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_6, describeReference(vsRef, valueset, bc, usageNote), theSystem+"#"+theCode); } } } else if (strength == BindingStrength.REQUIRED) - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_12, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), theSystem+"#"+theCode) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_12, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), theSystem+"#"+theCode) && ok; else if (strength == BindingStrength.EXTENSIBLE) { if (vsMax != null) ok = checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(vsMax), c, stack) && ok; else if (!noExtensibleWarnings) { - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_13, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), c.getSystem()+"#"+c.getCode()); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_13, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), c.getSystem()+"#"+c.getCode()); } } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_14, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), theSystem+"#"+theCode); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_14, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), theSystem+"#"+theCode); } } } else if (vr != null && vr.getMessage() != null) { if (vr.getSeverity() == IssueSeverity.INFORMATION) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } else { - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } } } @@ -2420,23 +2485,26 @@ private boolean checkContactPoint(List errors, String path, E private boolean checkExtension(ValidationContext valContext, List errors, String path, Element resource, Element container, Element element, ElementDefinition def, StructureDefinition profile, NodeStack stack, NodeStack containerStack, String extensionUrl, ResourcePercentageLogger pct, ValidationMode mode) throws FHIRException { boolean ok = true; String url = element.getNamedChildValue("url", false); + String vurl = url; String u = url.contains("|") ? url.substring(0, url.indexOf("|")) : url; boolean isModifier = element.getName().equals("modifierExtension"); assert def.getIsModifier() == isModifier; - + BooleanHolder errored = new BooleanHolder(false); ok = rule(errors, "2025-01-28", IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", valContext.isMatchetype() || !Utilities.existsInList(url, "http://hl7.org/fhir/tools/StructureDefinition/matchetype-optional", "http://hl7.org/fhir/tools/StructureDefinition/matchetype-count", "http://hl7.org/fhir/tools/StructureDefinition/matchetype-value"), I18nConstants.RESOURCE_NOT_MATCHETYPE_EXTENSION, url) && ok; long t = System.nanoTime(); - StructureDefinition ex = Utilities.isAbsoluteUrl(u) ? context.fetchResource(StructureDefinition.class, u) : null; + StructureDefinition ex = Utilities.isAbsoluteUrl(u) ?profileUtilities.findProfile(u, profile) : null; if (ex == null) { - ex = getXverExt(errors, path, element, url); + ex = getXverExt(errors, path, element, url, errored); + } else { + vurl = ex.getVersionedUrl(); } if (url.contains("|")) { if (ex == null) { - ex = Utilities.isAbsoluteUrl(url) ? context.fetchResource(StructureDefinition.class, url) : null; + ex = Utilities.isAbsoluteUrl(url) ?profileUtilities.findProfile(url, profile) : null; if (ex == null) { warning(errors, "2022-12-17", IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXT_VER_URL_NO_MATCH); } else { @@ -2454,7 +2522,7 @@ private boolean checkExtension(ValidationContext valContext, List allowedTypes = listExtensionTypes(ex); + ElementDefinition ved = getExtensionValueDefinition(ex); + Set allowedTypes = listExtensionTypes(ex, ved); String actualType = getExtensionType(element); if (actualType != null) ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.contains(actualType), I18nConstants.EXTENSION_EXT_TYPE, url, allowedTypes.toString(), actualType) && ok; - else if (element.hasChildren("extension")) - ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.isEmpty(), I18nConstants.EXTENSION_EXT_SIMPLE_WRONG, url) && ok; - else + else if (element.hasChildren("extension")) { + // just because a value is allowed doesn't mean that it's required. + if (ved.getMin() > 0) { + ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.isEmpty(), I18nConstants.EXTENSION_EXT_SIMPLE_WRONG, url) && ok; + } else { + // nothing? +// ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.isEmpty(), I18nConstants.EXTENSION_EXT_SIMPLE_WRONG, url) && ok; + } + } else ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.isEmpty(), I18nConstants.EXTENSION_EXT_SIMPLE_ABSENT, url) && ok; // 3. is the content of the extension valid? @@ -2527,7 +2602,7 @@ private String getExtensionType(Element element) { return null; } - private Set listExtensionTypes(StructureDefinition ex) { + private ElementDefinition getExtensionValueDefinition(StructureDefinition ex) { ElementDefinition vd = null; for (ElementDefinition ed : ex.getSnapshot().getElement()) { if (ed.getPath().startsWith("Extension.value")) { @@ -2535,6 +2610,9 @@ private Set listExtensionTypes(StructureDefinition ex) { break; } } + return vd; + } + private Set listExtensionTypes(StructureDefinition ex, ElementDefinition vd) { Set res = new HashSet(); if (vd != null && !"0".equals(vd.getMax())) { for (TypeRefComponent tr : vd.getType()) { @@ -2623,7 +2701,7 @@ private boolean checkExtensionContext(Object appContext, List } if (!ok) { - if (checkConformsToProfile(appContext, errors, resource, container, stack, extUrl, ctxt.getExpression(), pu)) { + if (checkConformsToProfile(appContext, errors, resource, container, stack, extUrl, ctxt.getExpression(), pu, definition)) { for (String p : plist) { if (ok) { break; @@ -2644,7 +2722,7 @@ private boolean checkExtensionContext(Object appContext, List break; } if (sd.getBaseDefinition() != null) { - sd = context.fetchResource(StructureDefinition.class, sd.getBaseDefinition(), sd); + sd =profileUtilities.findProfile(sd.getBaseDefinition(), sd); } else { sd = null; } @@ -2765,14 +2843,14 @@ private boolean hasElementName(List plist, String en) { return false; } - private boolean checkConformsToProfile(Object appContext, List errors, Element resource, Element container, NodeStack stack, String extUrl, String expression, String pu) { + private boolean checkConformsToProfile(Object appContext, List errors, Element resource, Element container, NodeStack stack, String extUrl, String expression, String pu, StructureDefinition sdT) { if (pu == null) { return true; } if (pu.equals("http://hl7.org/fhir/StructureDefinition/"+resource.fhirType())) { return true; } - StructureDefinition sd = context.fetchResource(StructureDefinition.class, pu); + StructureDefinition sd =profileUtilities.findProfile(pu, sdT); if (!rule(errors, "2023-07-03", IssueType.UNKNOWN, container.line(), container.col(), stack.getLiteralPath(), sd != null,I18nConstants.EXTENSION_CONTEXT_UNABLE_TO_FIND_PROFILE, extUrl, expression)) { return false; } else if (sd.getType().equals(resource.fhirType())) { @@ -3187,7 +3265,7 @@ else if (Utilities.isAllWhitespace(e.primitiveValue())) ok = rule(errors, NO_RULE_DATE, IssueType.INVALID, e.line(), e.col(), path, Utilities.isAbsoluteUrl(url), node.isContained() ? I18nConstants.TYPE_SPECIFIC_CHECKS_CANONICAL_CONTAINED : I18nConstants.TYPE_SPECIFIC_CHECKS_CANONICAL_ABSOLUTE, url) && ok; } else if (!e.getProperty().getDefinition().getPath().equals("Bundle.entry.fullUrl")) { // we don't check fullUrl here; it's not a reference, it's a definition. It'll get checked as part of checking the bundle - ok = validateReference(valContext, errors, path, type, context, e, parentNode == null ? null : parentNode.getElement(), url) && ok; + ok = validateReference(valContext, errors, path, type, context, e, parentNode == null ? null : parentNode.getElement(), url, profile) && ok; } } if (type.equals(ID) && !"Resource.id".equals(context.getBase().getPath())) { @@ -3485,6 +3563,10 @@ private boolean checkTypeValue(List errors, String path, Elem for (StructureDefinition t : context.fetchResourcesByType(StructureDefinition.class)) { if (t.hasSourcePackage() && t.getSourcePackage().getId().startsWith("hl7.fhir.r") && v.equals(t.getType())) { tok = true; + } else if (v.equals(t.getType())) { + if (t.hasUserData(UserDataNames.loader_custom_resource)) { + tok = true; + } } } if (tok) { @@ -3510,7 +3592,7 @@ private Object prepWSPresentation(String s) { return Utilities.escapeJson(s); } - public boolean validateReference(ValidationContext valContext, List errors, String path, String type, ElementDefinition context, Element e, Element parent, String url) { + public boolean validateReference(ValidationContext valContext, List errors, String path, String type, ElementDefinition context, Element e, Element parent, String url, StructureDefinition sd) { boolean ok = true; boolean internal = false; String eurl = parent != null && parent.fhirType().equals("Extension") ? parent.getNamedChildValue("url") : null; @@ -3523,20 +3605,21 @@ public boolean validateReference(ValidationContext valContext, List refs = new ArrayList<>(); - int count = countTargetMatches(valContext.getRootResource(), url.substring(1), true, "$", refs); - found = count > 0; - } else { - found = isDefinitionURL(url) || (settings.isAllowExamples() && isExampleUrl(url)) /* || (url.startsWith("http://hl7.org/fhir/tools")) */ || isCommunicationsUrl(url) || - SpecialExtensions.isKnownExtension(url) || isXverUrl(url) || SIDUtilities.isKnownSID(url) || isKnownNamespaceUri(url) || isRfcRef(url) || isKnownMappingUri(url) || oids.isKnownOID(url); - if (!found) { - found = fetcher.resolveURL(this, valContext, context.getBase().getPath(), url, type, type.equals("canonical"), context.getByType(type) != null ? context.getByType(type).getTargetProfile() : null); - } + if (url.startsWith("#")) { + List refs = new ArrayList<>(); + int count = countTargetMatches(valContext.getRootResource(), url.substring(1), true, "$", refs); + found = count > 0; + } else { + found = resolveUrl(valContext, type, context, url); + if (found && SIDUtilities.isIncorrectSID(url)) { + warning(errors, "2025-08-29", IssueType.INFORMATIONAL, e.line(), e.col(), path, false, I18nConstants.TYPE_SPECIFIC_CHECKS_DT_SID_INCORRECT, url); + } + } + if (!found && url.startsWith("https:")) { // check to see whether + String insecureURL = url.replace("https://", "http://"); + if (resolveUrl(valContext, type, context, insecureURL)) { + hint(errors, NO_RULE_DATE, IssueType.INFORMATIONAL, e.line(), e.col(), path, false, I18nConstants.TYPE_SPECIFIC_CHECKS_DT_URL_WRONG_HTTPS, url, insecureURL); } - } catch (IOException e1) { - found = false; } if (!found) { if (internal) { @@ -3602,17 +3685,19 @@ public boolean validateReference(ValidationContext valContext, List possibleVersions = fetcher.fetchCanonicalResourceVersions(this, valContext.getAppContext(), url); + Set possibleVersions = fetcher.fetchCanonicalResourceVersions(this, valContext.getAppContext(), url); warning(errors, NO_RULE_DATE, IssueType.INVALID, e.line(), e.col(), path, possibleVersions.size() <= 1, I18nConstants.TYPE_SPECIFIC_CHECKS_DT_CANONICAL_MULTIPLE_POSSIBLE_VERSIONS, - url, ((CanonicalResource) r).getVersion(), CommaSeparatedStringBuilder.join(", ", Utilities.sorted(possibleVersions))); + url, ((CanonicalResource) r).getVersion(), CommaSeparatedStringBuilder.join(", ", Utilities.sorted(IValidatorResourceFetcher.ResourceVersionInformation.toStrings(possibleVersions)))); } } } else { @@ -3628,11 +3713,33 @@ public boolean validateReference(ValidationContext valContext, List listExpectedCanonicalTypes(ElementDefinition context) { + private Set listExpectedCanonicalTypes(ElementDefinition context, StructureDefinition source) { Set res = new HashSet<>(); TypeRefComponent tr = context.getType("canonical"); if (tr != null) { for (CanonicalType p : tr.getTargetProfile()) { String url = p.getValue(); - StructureDefinition sd = this.context.fetchResource(StructureDefinition.class, url); + StructureDefinition sd = this.profileUtilities.findProfile(url, source); if (sd != null) { res.add(sd.getType()); } else { @@ -3771,11 +3879,11 @@ private Set listExpectedCanonicalTypes(ElementDefinition context) { return res; } - private boolean isCorrectCanonicalType(Resource r, ElementDefinition context) { + private boolean isCorrectCanonicalType(Resource r, ElementDefinition context, StructureDefinition sd) { TypeRefComponent tr = context.getType("canonical"); if (tr != null) { for (CanonicalType p : tr.getTargetProfile()) { - if (isCorrectCanonicalType(r, p)) { + if (isCorrectCanonicalType(r, p, sd)) { return true; } } @@ -3786,10 +3894,10 @@ private boolean isCorrectCanonicalType(Resource r, ElementDefinition context) { return false; } - private boolean isCorrectCanonicalType(Resource r, CanonicalType p) { + private boolean isCorrectCanonicalType(Resource r, CanonicalType p, StructureDefinition sdT) { String url = p.getValue(); String t = null; - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); + StructureDefinition sd = profileUtilities.findProfile(url, sdT); if (sd != null) { t = sd.getType(); } else if (url.startsWith("http://hl7.org/fhir/StructureDefinition/")) { @@ -3828,7 +3936,9 @@ private boolean isCanonicalURLElement(Element e, NodeStack parent) { if (!"url".equals(p[1])) { return false; } - return VersionUtilities.getCanonicalResourceNames(context.getVersion()).contains((p[0])); + return + Utilities.existsInList(p[0], "CanonicalResource", "MetadataResource") || + VersionUtilities.getCanonicalResourceNames(context.getVersion()).contains((p[0])); } private boolean containsHtmlTags(String cnt) { @@ -4079,32 +4189,32 @@ private boolean checkPrimitiveBinding(ValidationContext valContext, List types = new HashSet<>(); - StructureDefinition sdFT = context.fetchResource(StructureDefinition.class, "http://hl7.org/fhir/StructureDefinition/"+ft); + StructureDefinition sdFT = profileUtilities.findProfile("http://hl7.org/fhir/StructureDefinition/"+ft, profile); boolean rok = false; for (CanonicalType tp : type.getTargetProfile()) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, tp.getValue(), profile); + StructureDefinition sd =profileUtilities.findProfile(tp.getValue(), profile); if (sd != null) { types.add(sd.getType()); StructureDefinition sdF = sdFT; @@ -4833,7 +4943,7 @@ else if (mode.getValue().equals(AggregationMode.REFERENCED) && (refType != Refer rok = true; break; } - sdF = sdF.hasBaseDefinition() ? context.fetchResource(StructureDefinition.class, sdF.getBaseDefinition(), sdF) : null; + sdF = sdF.hasBaseDefinition() ?profileUtilities.findProfile(sdF.getBaseDefinition(), sdF) : null; } } } @@ -5136,10 +5246,11 @@ private List getCriteriaForDiscriminator(String path, Element for (TypeRefComponent type : element.getType()) { for (CanonicalType p : type.getProfile()) { String id = p.hasExtension(ExtensionDefinitions.EXT_PROFILE_ELEMENT) ? p.getExtensionString(ExtensionDefinitions.EXT_PROFILE_ELEMENT) : null; - StructureDefinition sd = context.fetchResource(StructureDefinition.class, p.getValue(), profile); + StructureDefinition sd =profileUtilities.findProfile(p.getValue(), profile); // PATCH: https://github.com/ahdis/matchbox/issues/138 try to check if it is a cross version extension + BooleanHolder errored = new BooleanHolder(false); if (sd == null) { - sd = getXverExt(new ArrayList(), path, new Element("profile"), p.getValue()); + sd = getXverExt(new ArrayList(), path, new Element("profile"), p.getValue(), errored); } if (sd == null) throw new DefinitionException(context.formatMessage(I18nConstants.SD_ED_TYPE_PROFILE_UNKNOWN, p)); @@ -5183,13 +5294,13 @@ public List getImplementationGuides() { return igs; } - private StructureDefinition getProfileForType(String type, List list, Resource src) { + private StructureDefinition getProfileForType(String type, List list, StructureDefinition src) { for (TypeRefComponent tr : list) { String url = tr.getWorkingCode(); if (!Utilities.isAbsoluteUrl(url)) url = "http://hl7.org/fhir/StructureDefinition/" + url; long t = System.nanoTime(); - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url, src); + StructureDefinition sd =profileUtilities.findProfile(url, src); timeTracker.sd(t); if (sd != null && (sd.getTypeTail().equals(type) || sd.getUrl().equals(type)) && sd.hasSnapshot()) { return sd; @@ -5198,10 +5309,10 @@ private StructureDefinition getProfileForType(String type, List list) { + private ElementDefinition resolveType(String type, List list, StructureDefinition sdT) { for (TypeRefComponent tr : list) { String url = tr.getWorkingCode(); if (!Utilities.isAbsoluteUrl(url)) url = "http://hl7.org/fhir/StructureDefinition/" + url; long t = System.nanoTime(); - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); + StructureDefinition sd = profileUtilities.findProfile(url, sdT); timeTracker.sd(t); if (sd != null && (sd.getType().equals(type) || sd.getUrl().equals(type)) && sd.hasSnapshot()) return sd.getSnapshot().getElement().get(0); @@ -5630,7 +5741,7 @@ private boolean inheritsFrom(StructureDefinition sdt, StructureDefinition sd) { if (sdt == sd) { return true; } - sdt = context.fetchResource(StructureDefinition.class, sdt.getBaseDefinition()); + sdt =profileUtilities.findProfile(sdt.getBaseDefinition(), sd); } return false; } @@ -5803,27 +5914,18 @@ private boolean sliceMatches(ValidationContext valContext, Element element, Stri throw new FHIRException(context.formatMessage(I18nConstants.PROBLEM_PROCESSING_EXPRESSION__IN_PROFILE__PATH__, expression, profile.getVersionedUrl(), path, e.getMessage())); } timeTracker.fpe(t); + log.trace("slice "+ed.getSliceName()+" rules = "+n.toString()); ed.setUserData(UserDataNames.validator_slice_expression_cache, n); } else { } ValidationContext shc = valContext.forSlicing(); boolean pass = evaluateSlicingExpression(shc, element, path, profile, n); + log.trace(" element "+element.getPath()+(pass ? "matches" : "does not match")); if (!pass) { - String msg = null; - for(int i=0; msg!= null && i<10; ++i) { - try { - msg = context.formatMessage(I18nConstants.DOES_NOT_MATCH_SLICE_, ed.getSliceName(), n.toString().substring(8).trim()); - } catch(NullPointerException e) { - try { - Thread.sleep(500); - } catch (InterruptedException e1) { - } - } - } slicingHint(sliceInfo, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, false, isProfile(slicer), (context.formatMessage(I18nConstants.DOES_NOT_MATCH_SLICE_, ed.getSliceName(), n.toString().substring(8).trim())), "discriminator = " + Utilities.escapeXml(n.toString()), null); for (String url : shc.getSliceRecords().keySet()) { - StructureDefinition sdt = context.fetchResource(StructureDefinition.class, url); + StructureDefinition sdt =profileUtilities.findProfile(url, profile); slicingHint(sliceInfo, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, false, isProfile(slicer), context.formatMessage(I18nConstants.DETAILS_FOR__MATCHING_AGAINST_PROFILE_, stack.getLiteralPath(), sdt == null ? url : sdt.getVersionedUrl()), context.formatMessage(I18nConstants.PROFILE__DOES_NOT_MATCH_FOR__BECAUSE_OF_THE_FOLLOWING_PROFILE_ISSUES__, @@ -5866,8 +5968,8 @@ private boolean isBaseDefinition(String url) { return b; } - private String descSD(String url) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); + private String descSD(String url, StructureDefinition src) { + StructureDefinition sd =profileUtilities.findProfile(url, src); return sd == null ? url : sd.present(); } @@ -6180,7 +6282,23 @@ private void buildFixedExpression(ElementDefinition ed, StringBuilder expression // checkSpecials = we're only going to run these tests if we are actually validating this content (as opposed to we looked it up) private boolean start(ValidationContext valContext, List errors, Element resource, Element element, StructureDefinition defn, NodeStack stack, ResourcePercentageLogger pct, ValidationMode mode, boolean fromContained) throws FHIRException { boolean ok = !hasErrors(errors); - + + if (ExtensionUtilities.readBoolExtension(defn, ExtensionDefinitions.EXT_ADDITIONAL_RESOURCE) && defn.getDerivation() == TypeDerivationRule.SPECIALIZATION) { + if (Utilities.noString(element.getResourceDefinition())) { + rule(errors, "2025-09-30", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), false, I18nConstants.VALIDATION_ADDITIONAL_RESOURCE_ABSENT, defn.getVersionedUrl()); + ok = false; + } else if (!element.getResourceDefinition().equals(defn.getVersionedUrl())) { + rule(errors, "2025-09-30", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), element.getResourceDefinition() == null, I18nConstants.VALIDATION_ADDITIONAL_RESOURCE_WRONG, element.getResourceDefinition(), defn.getVersionedUrl()); + ok = false; + } + } else { + if (!Utilities.noString(element.getResourceDefinition()) && !element.getResourceDefinition().equals(defn.getVersionedUrl())) { + rule(errors, "2025-09-30", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), element.getResourceDefinition() == null, I18nConstants.VALIDATION_ADDITIONAL_RESOURCE_NO_WRONG, element.getResourceDefinition(), defn.getVersionedUrl()); + ok = false; + } else { + warning(errors, "2025-09-30", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), Utilities.noString(element.getResourceDefinition()), I18nConstants.VALIDATION_ADDITIONAL_RESOURCE_NO, element.getResourceDefinition()); + } + } checkLang(resource, stack); if (crumbTrails) { element.addMessage(signpost(errors, NO_RULE_DATE, IssueType.INFORMATIONAL, element.line(), element.col(), stack.getLiteralPath(), I18nConstants.VALIDATION_VAL_PROFILE_SIGNPOST, defn.getVersionedUrl())); @@ -6203,7 +6321,7 @@ private boolean start(ValidationContext valContext, List erro if (defn.hasExtension(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { for (Extension ext : defn.getExtensionsByUrl(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { - StructureDefinition sdi = context.fetchResource(StructureDefinition.class, ext.getValue().primitiveValue()); + StructureDefinition sdi =profileUtilities.findProfile(ext.getValue().primitiveValue(), defn); if (sdi == null) { warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), false, I18nConstants.VALIDATION_VAL_PROFILE_DEPENDS_NOT_RESOLVED, ext.getValue().primitiveValue(), defn.getVersionedUrl()); } else { @@ -6230,7 +6348,7 @@ private boolean start(ValidationContext valContext, List erro meta.getNamedChildren("profile", profiles); int i = 0; for (Element profile : profiles) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, profile.primitiveValue()); + StructureDefinition sd = profileUtilities.findProfile(profile.primitiveValue(), defn); if (!defn.getUrl().equals(profile.primitiveValue())) { // is this a version specific reference? VersionURLInfo vu = VersionUtilities.parseVersionUrl(profile.primitiveValue()); @@ -6240,7 +6358,7 @@ private boolean start(ValidationContext valContext, List erro } else if (vu.getUrl().equals(defn.getUrl())) { hint(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath() + ".meta.profile[" + i + "]", false, I18nConstants.VALIDATION_VAL_PROFILE_THIS_VERSION_OK); } else { - StructureDefinition sdt = context.fetchResource(StructureDefinition.class, vu.getUrl()); + StructureDefinition sdt = profileUtilities.findProfile(vu.getUrl(), defn); ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath() + ".meta.profile[" + i + "]", false, I18nConstants.VALIDATION_VAL_PROFILE_THIS_VERSION_OTHER, sdt == null ? "null" : sdt.getType()) && ok; } } else { @@ -6268,7 +6386,7 @@ private boolean start(ValidationContext valContext, List erro } if (sd.hasExtension(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { for (Extension ext : sd.getExtensionsByUrl(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { - StructureDefinition sdi = context.fetchResource(StructureDefinition.class, ext.getValue().primitiveValue()); + StructureDefinition sdi =profileUtilities.findProfile(ext.getValue().primitiveValue(), sd); if (sdi == null) { warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath() + ".meta.profile[" + i + "]", false, I18nConstants.VALIDATION_VAL_PROFILE_DEPENDS_NOT_RESOLVED, ext.getValue().primitiveValue(), sd.getVersionedUrl()); } else { @@ -6297,7 +6415,7 @@ private boolean start(ValidationContext valContext, List erro for (ImplementationGuide ig : igs) { for (ImplementationGuideGlobalComponent gl : ig.getGlobal()) { if (rt.equals(gl.getType())) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, gl.getProfile(), ig); + StructureDefinition sd = profileUtilities.findProfile(gl.getProfile(), ig); if (warning(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath(), sd != null, I18nConstants.VALIDATION_VAL_GLOBAL_PROFILE_UNKNOWN, gl.getProfile(), ig.getVersionedUrl())) { if (crumbTrails) { element.addMessage(signpost(errors, NO_RULE_DATE, IssueType.INFORMATIONAL, element.line(), element.col(), stack.getLiteralPath(), I18nConstants.VALIDATION_VAL_PROFILE_SIGNPOST_GLOBAL, sd.getVersionedUrl(), ig.getVersionedUrl())); @@ -6345,7 +6463,7 @@ private StructureDefinition lookupProfileReference(ValidationContext valContext, } } if (sd != null) { - context.cacheResource(sd); + context.getManager().cacheResource(sd); } } return sd; @@ -6416,7 +6534,7 @@ private static int indexOfMatchingMessageAndLocation(List mes for (int i = 0; i < messages.size(); i++) { ValidationMessage iMessage = messages.get(i); if (message.getMessage() != null && message.getMessage().equals(iMessage.getMessage()) - && message.getLocation() != null && message.getLocation().equals(iMessage.getLocation())) { + && message.getLocation() != null && message.getStrippedLocation().equals(iMessage.getStrippedLocation())) { return i; } } @@ -6424,8 +6542,6 @@ private static int indexOfMatchingMessageAndLocation(List mes } public boolean startInner(ValidationContext valContext, List errors, Element resource, Element element, StructureDefinition defn, NodeStack stack, boolean checkSpecials, ResourcePercentageLogger pct, ValidationMode mode, boolean fromContained) { - - // the first piece of business is to see if we've validated this resource against this profile before. // if we have (*or if we still are*), then we'll just return our existing errors boolean ok = true; @@ -6787,7 +6903,7 @@ private boolean validateContains(ValidationContext valContext, List types = new ArrayList<>(); for (UriType u : typeForResource.getProfile()) { - StructureDefinition sd = this.context.fetchResource(StructureDefinition.class, u.getValue(), parentProfile); + StructureDefinition sd = this.profileUtilities.findProfile(u.getValue(), parentProfile); if (sd != null && !types.contains(sd.getType())) { types.add(sd.getType()); } @@ -6936,7 +7051,7 @@ private String summariseErrors(List list) { return b.toString(); } - private boolean isValidResourceType(String type, TypeRefComponent def) { + private boolean isValidResourceType(String type, TypeRefComponent def, StructureDefinition sdSrc) { if (!def.hasProfile() && def.getCode().equals("Resource")) { return true; } @@ -6945,7 +7060,7 @@ private boolean isValidResourceType(String type, TypeRefComponent def) { } List list = new ArrayList<>(); for (UriType u : def.getProfile()) { - StructureDefinition sdt = context.fetchResource(StructureDefinition.class, u.getValue()); + StructureDefinition sdt = profileUtilities.findProfile(u.getValue(), sdSrc); if (sdt != null) { list.add(sdt); } @@ -6963,7 +7078,7 @@ private boolean isValidResourceType(String type, TypeRefComponent def) { } } } - sdt = context.fetchResource(StructureDefinition.class, sdt.getBaseDefinition(), sdt); + sdt = profileUtilities.findProfile(sdt.getBaseDefinition(), sdt); } return false; } @@ -7004,14 +7119,14 @@ private boolean validateElement(ValidationContext valContext, List 1) { // this only happens when the profile constrains the abstract children but leaves the choice open. if (actualType == null) { vi.setValid(false); return false; // there'll be an error elsewhere in this case, and we're going to stop. } - SourcedChildDefinitions typeChildDefinitions = getActualTypeChildren(valContext, element, actualType); + SourcedChildDefinitions typeChildDefinitions = getActualTypeChildren(valContext, element, actualType, profile); // what were going to do is merge them - the type is not allowed to constrain things that the child definitions already do (well, if it does, it'll be ignored) childDefinitions = mergeChildLists(childDefinitions, typeChildDefinitions, definition.getPath(), actualType); } @@ -7076,13 +7191,13 @@ private SourcedChildDefinitions mergeChildLists(SourcedChildDefinitions source, } // todo: the element definition in context might assign a constrained profile for the type? - public SourcedChildDefinitions getActualTypeChildren(ValidationContext valContext, Element element, String actualType) { + public SourcedChildDefinitions getActualTypeChildren(ValidationContext valContext, Element element, String actualType, StructureDefinition src) { SourcedChildDefinitions childDefinitions; StructureDefinition dt = null; if (isAbsolute(actualType)) - dt = this.context.fetchResource(StructureDefinition.class, actualType); + dt = this.profileUtilities.findProfile(actualType, src); else - dt = this.context.fetchResource(StructureDefinition.class, "http://hl7.org/fhir/StructureDefinition/" + actualType); + dt = this.profileUtilities.findProfile("http://hl7.org/fhir/StructureDefinition/" + actualType, src); if (dt == null) throw new DefinitionException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_ACTUAL_TYPE_, actualType)); trackUsage(dt, valContext, element); @@ -7130,6 +7245,8 @@ public boolean checkChildByDefinition(ValidationContext valContext, List 0; boolean isAbstract = hasType && Utilities.existsInList(checkDefn.getType().get(0).getWorkingCode(), "Element", "BackboneElement"); boolean isChoice = checkDefn.getType().size() > 1 || (hasType && "*".equals(checkDefn.getType().get(0).getWorkingCode())); @@ -7242,7 +7359,7 @@ public boolean checkChildByDefinition(ValidationContext valContext, List profileErrors = new ArrayList(); validateElement(valContext, profileErrors, p, getElementByTail(p, tail), profile, checkDefn, resource, ei.getElement(), type, localStack, thisIsCodeableConcept, checkDisplay, thisExtension, pct, mode); // we don't track ok here if (hasErrors(profileErrors)) @@ -7398,7 +7516,7 @@ public boolean checkChildByDefinition(ValidationContext valContext, List errors, String path, bool String code = element.getNamedChildValue(isPQ ? "unit" : "code", false); String oid = isPQ ? "2.16.840.1.113883.6.8" : element.getNamedChildValue("codeSystem", false); if (oid != null) { - OIDSummary urls = context.urlsForOid(oid, "CodeSystem"); - system = "urn:oid:"+oid; - if (urls.urlCount() == 1) { - system = urls.getUrl(); - } else if (urls.urlCount() == 0) { - warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid); - } else { - String prefUrl = urls.chooseBestUrl(); - if (prefUrl == null) { - rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, urls.describe()); - ok = false; + if (hint(errors, "2025-09-28", IssueType.CODEINVALID, element.line(), element.col(), path, context.oidServices() != null, I18nConstants.TERMINOLOGY_TX_NO_OID_SERVICES, oid)) { + IOIDServices.OIDSummary urls = context.oidServices().urlsForOid(oid, "CodeSystem"); + system = "urn:oid:" + oid; + if (urls.urlCount() == 1) { + system = urls.getUrl(); + } else if (urls.urlCount() == 0) { + warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid); } else { - system = prefUrl; - warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES_CHOSEN, oid, prefUrl, urls.describe()); + String prefUrl = urls.chooseBestUrl(); + if (prefUrl == null) { + rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, urls.describe()); + ok = false; + } else { + system = prefUrl; + warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES_CHOSEN, oid, prefUrl, urls.describe()); + } } } } else { @@ -7608,7 +7733,7 @@ public boolean checkCardinalities(List errors, StructureDefin ok = rulePlural(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath(), false, count, I18nConstants.VALIDATION_VAL_PROFILE_MINIMUM, profile.getVersionedUrl(), ed.getPath(), ed.getId(), ed.getSliceName(),ed.getLabel(), stack.getLiteralPath(), ed.getMin()) && ok; } else if (ed.isProfiledExtension()) { String url = ed.getTypeFirstRep().getProfile().get(0).getValue(); - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); + StructureDefinition sd =profileUtilities.findProfile(url, profile); if (sd != null) { url = sd.getSnapshot().getElementByPath("Extension.url").getFixed().primitiveValue(); } @@ -7846,7 +7971,7 @@ private boolean namedExtensionTypeIsOk(org.hl7.fhir.r5.elementmodel.Property pro return true; } } - sd = context.fetchResource(StructureDefinition.class, sd.getBaseDefinition()); + sd =profileUtilities.findProfile(sd.getBaseDefinition(), sd); } // special case: Base for (TypeRefComponent tr : ed.getType()) { @@ -7902,17 +8027,6 @@ public boolean matchSlice(ValidationContext valContext, List ei.setAdditionalSlice(true); } } catch (FHIRException e) { - log.error("FHIRException caught!", e); - log.error("Current thread: " + Thread.currentThread().getName()); - log.error("Active threads:"); - - // Print all active threads - Thread.getAllStackTraces().forEach((thread, stackTrace) -> { - log.error("Thread: " + thread.getName() + " (State: " + thread.getState() + ")"); - for (StackTraceElement element : stackTrace) { - log.error(" at " + element); - } - }); rule(errors, NO_RULE_DATE, IssueType.PROCESSING, ei.line(), ei.col(), ei.getPath(), false, I18nConstants.SLICING_CANNOT_BE_EVALUATED, e.getMessage()); bh.fail(); unsupportedSlicing = true; @@ -7971,7 +8085,7 @@ private String slicingSummary(ElementDefinitionSlicingComponent slicing) { } private ElementDefinition getElementByTail(StructureDefinition p, String tail) throws DefinitionException { - if (tail == null) + if (tail == null && !p.getSnapshot().getElement().isEmpty()) return p.getSnapshot().getElement().get(0); for (ElementDefinition t : p.getSnapshot().getElement()) { if (tail.equals(t.getId())) @@ -8052,7 +8166,7 @@ private boolean checkInvariants(ValidationContext valContext, List> invMap = executionId.equals(element.getUserString(EXECUTION_ID)) ? (Map>) element.getUserData(EXECUTED_CONSTRAINT_LIST) : null; if (invMap == null) { @@ -8078,10 +8192,10 @@ private boolean checkInvariants(ValidationContext valContext, List types, String source) { + private boolean isInheritedProfile(List types, String source, StructureDefinition sdT) { for (TypeRefComponent type : types) { for (CanonicalType c : type.getProfile()) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, c.asStringValue()); + StructureDefinition sd =profileUtilities.findProfile(c.asStringValue(), sdT); if (sd != null) { if (sd.getUrl().equals(source)) { return true; @@ -8100,7 +8214,7 @@ private boolean isInheritedProfile(StructureDefinition profile, String source) { return false; } while (profile != null) { - profile = context.fetchResource(StructureDefinition.class, profile.getBaseDefinition(), profile); + profile =profileUtilities.findProfile(profile.getBaseDefinition(), profile); if (profile != null) { if (source.equals(profile.getUrl())) { return true; @@ -8135,7 +8249,7 @@ public boolean checkInvariant(ValidationContext valContext, List errors, Element bundle d = new String(data); } JsonObject j = JsonParser.parseObject(d); - if (j.has("alg")) { + if (j.has(DigitalSignatureSupport.JWT_HEADER_ALG)) { sigFormat = "application/jose"; } hint(errors, "2025-06-13", IssueType.NOTSUPPORTED, stack, !signature.hasChild("data"), @@ -1104,13 +1103,13 @@ private boolean validateSignatureJose(List errors, Element bu // 1. Signature time Element when = signature.getNamedChild("when"); - String sigT = header.asString("sigT"); // JAdes signature time + String sigT = header.asString(DigitalSignatureSupport.JWT_HEADER_SIGT); // JAdes signature time if (sigT != null && Utilities.isInteger(sigT)) { warning(errors, "2025-06-13", IssueType.INVALID, stack, false, I18nConstants.BUNDLE_SIGNATURE_HEADER_SIG_TIME_WRONG_FORMAT, sigT); sigT = DateTimeFormatter.ISO_INSTANT.format(Instant.ofEpochSecond(Long.valueOf(sigT))); } - if (sigT == null && header.has("iat")) { - sigT = DateTimeFormatter.ISO_INSTANT.format(Instant.ofEpochSecond(Long.valueOf(header.asString("iat")))); + if (sigT == null && header.has(DigitalSignatureSupport.JWT_HEADER_IAT)) { + sigT = DateTimeFormatter.ISO_INSTANT.format(Instant.ofEpochSecond(Long.valueOf(header.asString(DigitalSignatureSupport.JWT_HEADER_IAT)))); } if (sigT == null) { warning(errors, "2025-06-13", IssueType.NOTFOUND, stack, false, I18nConstants.BUNDLE_SIGNATURE_HEADER_NO_SIG_TIME); @@ -1187,9 +1186,9 @@ private boolean validateSignatureJose(List errors, Element bu // first, we try to extract the certificate from the signature X509Certificate cert = null; JWK jwk = null; - if (header.has("x5c")) { + if (header.has(DigitalSignatureSupport.JWT_HEADER_X5C)) { try { - String c = header.getJsonArray("x5c").get(0).asString(); + String c = header.getJsonArray(DigitalSignatureSupport.JWT_HEADER_X5C).get(0).asString(); byte[] b = Base64.decodeBase64(c);// der format CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); cert = (X509Certificate) certificateFactory.generateCertificate(new ByteArrayInputStream(b)); @@ -1356,22 +1355,22 @@ public String certificateToPEMSingleLine(X509Certificate cert) throws Exception } private String getPurpose(JsonObject header) { - if (header.has("srCms")) { - JsonArray srCms = header.getJsonArray("srCms"); + if (header.has(DigitalSignatureSupport.JWT_HEADER_SRCMS)) { + JsonArray srCms = header.getJsonArray(DigitalSignatureSupport.JWT_HEADER_SRCMS); if (srCms.size() > 0 && srCms.get(0).isJsonObject()) { - JsonObject commId = srCms.get(0).asJsonObject().getJsonObject("commId"); - return commId.asString("id"); + JsonObject commId = srCms.get(0).asJsonObject().getJsonObject(DigitalSignatureSupport.JWT_HEADER_COMM_ID); + return commId.asString(DigitalSignatureSupport.JWT_HEADER_ID); } } return null; } private String getPurposeDesc(JsonObject header) { - if (header.has("srCms")) { - JsonArray srCms = header.getJsonArray("srCms"); + if (header.has(DigitalSignatureSupport.JWT_HEADER_SRCMS)) { + JsonArray srCms = header.getJsonArray(DigitalSignatureSupport.JWT_HEADER_SRCMS); if (srCms.size() > 0 && srCms.get(0).isJsonObject()) { - JsonObject commId = srCms.get(0).asJsonObject().getJsonObject("commId"); - return commId.asString("desc"); + JsonObject commId = srCms.get(0).asJsonObject().getJsonObject(DigitalSignatureSupport.JWT_HEADER_COMM_ID); + return commId.asString(DigitalSignatureSupport.JWT_HEADER_DESC); } } return null; @@ -1421,10 +1420,10 @@ public boolean verifyJWT(String jwtString, JWK key) throws ParseException, JOSEE switch (keyType) { case "RSA": - verifier = new RSASSAVerifier(key.toRSAKey()); + verifier = new RSASSAVerifier(key.toRSAKey().toRSAPublicKey(), settings.getJwtHeaderList()); break; case "EC": - verifier = new ECDSAVerifier(key.toECKey()); + verifier = new ECDSAVerifier(key.toECKey().toECPublicKey(), settings.getJwtHeaderList()); break; case "oct": verifier = new MACVerifier(key.toOctetSequenceKey()); diff --git a/matchbox-server/pom.xml b/matchbox-server/pom.xml index 8cb757cb9cc..5d18d593d8f 100644 --- a/matchbox-server/pom.xml +++ b/matchbox-server/pom.xml @@ -5,7 +5,7 @@ matchbox health.matchbox - 4.0.15 + 4.0.16 matchbox-server diff --git a/matchbox-server/src/main/java/ca/uhn/fhir/jpa/validation/ValidatorResourceFetcher.java b/matchbox-server/src/main/java/ca/uhn/fhir/jpa/validation/ValidatorResourceFetcher.java index 0251b086aed..b7120b01023 100644 --- a/matchbox-server/src/main/java/ca/uhn/fhir/jpa/validation/ValidatorResourceFetcher.java +++ b/matchbox-server/src/main/java/ca/uhn/fhir/jpa/validation/ValidatorResourceFetcher.java @@ -96,7 +96,7 @@ public boolean fetchesCanonicalResource(IResourceValidator iResourceValidator, S } @Override - public Set fetchCanonicalResourceVersions(IResourceValidator validator, Object appContext, String url) { + public Set fetchCanonicalResourceVersions(IResourceValidator validator, Object appContext, String url) { return Collections.emptySet(); } } \ No newline at end of file diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java index 12ba2e1fcd1..86c67c4c311 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java @@ -618,7 +618,8 @@ private void configureValidationEngine(final MatchboxEngine validator, validator.setPolicyAdvisor(fetcher); refpol = ReferenceValidationPolicy.CHECK_TYPE_IF_EXISTS; } - validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy())); + // TODO add referencesTo als parameter? + validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), null)); validator.setJurisdiction(CodeSystemUtilities.readCoding(cli.getJurisdiction())); // TerminologyCache.setNoCaching(cliContext.isNoInternalCaching()); diff --git a/pom.xml b/pom.xml index e74c9c0c091..0080585e40f 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ health.matchbox matchbox - 4.0.15 + 4.0.16 pom matchbox An open-source implementation to support testing and implementation of FHIR based solutions and map or @@ -40,7 +40,7 @@ UTF-8 21 - 6.6.5 + 6.7.10 8.0.0 diff --git a/udpatecoreversion.md b/udpatecoreversion.md new file mode 100644 index 00000000000..aa4b58f2900 --- /dev/null +++ b/udpatecoreversion.md @@ -0,0 +1,39 @@ +# org.hl7.fhir.core + +matchbox depends on org.hl7.fhir.core. the project is available on [github](https://github.com/hapifhir/org.hl7.fhir.core) and does frequent releases https://github.com/hapifhir/org.hl7.fhir.core/releases which have to be integrated in matchbox. + +matchbox has patched a few classes, that's why an update cannot be done just through referencing mvn. + +the following steps need to be perfomed: + +## sync the forked project to the latest release https://github.com/hapifhir/org.hl7.fhir.core/releases and checkout branch + +``` +cd ../org.hl7.fhir.core/ +git checkout master +git fetch upstream +git merge upstream/master +git push +``` +check out the latest release e.g + +``` +git checkout -b oe_$(git describe --tags --abbrev=0) +cd ../matchbox +``` + + +## upgrade matchbox to latest version + +1. in all the dependent pom.xml the core version needs to be updated to the latest core version + +2. there is a shell script ./updatehapi.sh which copies from the core directory the files which need to be modified + +``` +./updatehapi.sh +``` + +now all the patches are lost and need to be added again, they are marked with `matchbox patch' + + + From cf1e29e37e669e04a74a52b2cb42b7f3c1e1b118 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Sat, 27 Dec 2025 13:27:44 +0100 Subject: [PATCH 03/23] ahdis/matchbox#447 --- .../packages/IgLoaderFromJpaPackageCache.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java index bdab43ad100..421fd3514b6 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java @@ -36,10 +36,13 @@ import org.hl7.fhir.convertors.factory.VersionConvertorFactory_40_50; import org.hl7.fhir.convertors.factory.VersionConvertorFactory_43_50; import org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupComponent; +import org.hl7.fhir.r5.context.CanonicalResourceManager.CanonicalResourceProxy; import org.hl7.fhir.exceptions.FHIRException; +import org.hl7.fhir.r5.context.BaseWorkerContext.ResourceProxy; import org.hl7.fhir.r5.context.SimpleWorkerContext; import org.hl7.fhir.r5.model.CanonicalResource; import org.hl7.fhir.r5.model.ImplementationGuide; +import org.hl7.fhir.r5.model.PackageInformation; import org.hl7.fhir.r5.model.Resource; import org.hl7.fhir.utilities.ByteProvider; import org.hl7.fhir.utilities.FileUtilities; @@ -266,7 +269,9 @@ public void loadIg(List igs, Map bina // this way we have 0.5 seconds per 100 resources (eg hl7.fhir.r4.core has 15 seconds for 3128 resources) NpmPackage pi = this.loadPackage(npmPackage.get()); + PackageInformation packageInfo = new PackageInformation(pi); getContext().getLoadedPackages().add(pi.name() + "#" + pi.version()); + try { for (String s : pi.listResources("NamingSystem", "CapabilityStatement", "CodeSystem", "ValueSet", "StructureDefinition", "Measure", "Library", "ConceptMap", "SearchParameter", "StructureMap", "Questionnaire", "OperationDefinition","ActorDefinition","Requirements")) { @@ -282,13 +287,8 @@ public void loadIg(List igs, Map bina cleanModifierExtensions((org.hl7.fhir.r5.model.ConceptMap) r); } if (r instanceof CanonicalResource) { - CanonicalResource m = (CanonicalResource) r; - String url = m.getUrl(); - if (this.getContext().hasResource(r.getClass(), url)) { - log.debug("Duplicate canonical resource: " + r.getClass().getName() + " from package " +pi.name() + "#" + pi.version() + " with url " + url); - } else { - this.getContext().cacheResource(r); - } + // go through context to replace to newer version if needed (see ahdis/matchbox#447) + this.getContext().cacheResourceFromPackage(r, packageInfo); } else { log.error("Resource is not a CanonicalResource: " + r.getClass().getName() + " from package " +pi.name() + "#" + pi.version()); } From 3eaf22c5c07bd775892d81db317eb771727d5092 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Sat, 27 Dec 2025 13:28:31 +0100 Subject: [PATCH 04/23] #448 --- Claude.md | 560 ++++++++++++++++++ .../ahdis/matchbox/engine/MatchboxEngine.java | 4 - .../matchbox/engine/cli/MatchboxService.java | 4 +- .../java/ch/ahdis/matchbox/CliContext.java | 104 +--- .../matchbox/util/MatchboxEngineSupport.java | 4 +- matchbox-server/with-ch/application.yaml | 13 +- 6 files changed, 586 insertions(+), 103 deletions(-) create mode 100644 Claude.md diff --git a/Claude.md b/Claude.md new file mode 100644 index 00000000000..e3ae7c2e94d --- /dev/null +++ b/Claude.md @@ -0,0 +1,560 @@ +# Matchbox Project Overview + +## What is Matchbox? + +Matchbox validation and mapping platform that provides: +- **FHIR validation** against profiles and implementation guides +- **FHIR mapping language** transformations (StructureMap) +- **CDA to FHIR** transformation support +- **Questionnaire** form filling capabilities +- **Terminology services** integration +- **AI-powered validation** assistance + +## Project Structure + +The project consists of three main components: + +``` +matchbox/ +├── matchbox-engine/ # Core FHIR validation and transformation library +├── matchbox-server/ # Full FHIR server with REST API +├── matchbox-frontend/ # Angular web UI +└── docs/ # MkDocs documentation +``` + +## Component Details + +### 1. matchbox-engine (Core Library) + +**Purpose**: Reusable Java library for FHIR validation and transformation + +**Technology Stack**: +- Java 21 +- Spring Framework 6.1 +- HAPI FHIR 8.0.0 +- HL7 FHIR Core 6.7.10 (official FHIR validator) + +**Key Capabilities**: +- FHIR resource validation (R4, R5, R4B) +- StructureMap-based transformations +- CDA to FHIR conversion +- FHIR package loading and management + + +**Key Classes**: +``` +ch.ahdis.matchbox.engine/ +└── MatchboxEngine # Core engine class +``` + +**Testing**: +- JUnit 5 for unit tests +- XMLUnit for XML comparisons +- Comprehensive validation test suites for R4/R5 + +**Build**: +```bash +cd matchbox-engine +mvn clean install +``` + +### 2. matchbox-server (FHIR Server) + +**Purpose**: Production-ready FHIR API support + +**Technology Stack**: +- Java 21 +- Spring Boot 3.3.11 +- HAPI FHIR JPA Server 8.0.0 +- Embedded Tomcat 10.1.48 +- H2 (default) / PostgreSQL (production) + +**Key Features**: +- Full FHIR REST API (R4, R5, R4B) +- `$validate` operation with detailed outcomes +- `$transform` operation for StructureMap transformations +- `$convert` operation for CDA conversion +- `$snapshot` operation for profile expansion +- AI-powered validation (LangChain4j integration) +- Model Context Protocol (MCP) server support + +**Configuration**: +- Context path: `/matchbox` or `/matchboxv3` +- Default port: 8080 +- Config file: `application.yaml` +- Environment variables supported +- Static files: `/static/` (Angular frontend) + +**Main Entry Point**: +- `ca.uhn.fhir.jpa.starter.Application` + +**Key Packages**: +``` +ch.ahdis.matchbox/ +├── config/ # Spring Boot configuration +├── providers/ # FHIR operation providers +│ ├── ValidationProvider # $validate operation +│ ├── StructureMapProvider # $transform operation +│ └── ConvertProvider # $convert operation +├── interceptors/ # Request/response processing +│ ├── MatchboxValidationInterceptor +│ ├── MappingLanguageInterceptor +│ └── HttpReadOnlyInterceptor +├── terminology/ # Terminology services +├── packages/ # FHIR package management +├── mcp/ # Model Context Protocol +└── util/ # Utilities +``` + +**Database Configuration**: + +*H2 (Default - Development)*: +```yaml +spring: + datasource: + url: jdbc:h2:file:./database/h2 +``` + +*PostgreSQL (Production)*: +```yaml +spring: + datasource: + url: jdbc:postgresql://localhost:5432/matchbox + username: matchbox + password: matchbox + driverClassName: org.postgresql.Driver + jpa: + properties: + hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect +``` + +**Build & Run**: +```bash +# Build with frontend +cd matchbox-frontend +npm install +npm run build + +cd ../matchbox-server +mvn clean install + +# Run +java -jar target/matchbox.jar + +# Or with Maven +mvn spring-boot:run +``` + +**Docker Deployment**: +```bash +# Basic deployment +docker run -p 8080:8080 ghcr.io/ahdis/matchbox:latest + +# With PostgreSQL +cd matchbox-server/with-postgres +docker-compose up + +# With pre-loaded implementation guides +cd matchbox-server/with-preload +docker-compose up +``` + +**Available Docker Configurations**: +- `with-postgres/` - PostgreSQL database +- `with-preload/` - Pre-loaded Swiss IGs +- `with-ch/` - Swiss EPR configuration +- `with-ca/` - Canadian configuration +- `with-ips/` - International Patient Summary +- `with-cda/` - CDA transformation support +- `with-gazelle/` - IHE Gazelle integration + +### 3. matchbox-frontend (Angular Web UI) + +**Purpose**: Modern web interface for FHIR validation and transformation + +**Technology Stack**: +- Angular 19.0.0 +- TypeScript 5.6.3 +- Angular Material 19.0.0 +- fhir-kit-client 1.9.2 +- FHIRPath.js 3.15.2 +- Ace Editor 1.36.5 (code editing) +- NGX-Translate 16.0.3 (i18n) + +**Key Features**: +- Interactive FHIR validation with real-time feedback +- StructureMap editor and transformation testing +- Implementation guide browser +- Resource upload and management +- Questionnaire form filling +- FHIRPath expression evaluation +- Multi-language support (i18n) + +**Module Structure**: +``` +src/app/ +├── validate/ # Validation UI +├── transform/ # Transformation UI +├── mapping-language/ # StructureMap editor +├── igs/ # Implementation guides browser +├── upload/ # Resource upload +├── settings/ # Server settings +├── capability-statement/ # Capability statement viewer +├── shared/ # Shared components +└── util/ # Utility services +``` + +**Development Server**: +```bash +cd matchbox-frontend +npm install +npm start +# Opens on http://localhost:4200 +# Proxies API calls to http://localhost:8080 +``` + +**Build for Production**: +```bash +npm run build +# Output: ../matchbox-server/src/main/resources/static +``` + +**Testing**: +```bash +# Unit tests +npm test + +# E2E tests +npm run e2e + +# Linting +npm run lint +``` + +**Configuration**: +- `angular.json` - Angular CLI configuration +- `src/proxy.conf.json` - Dev server proxy +- `src/environments/` - Environment-specific settings +- `tsconfig.json` - TypeScript compiler options + +## Development Workflow + +### Initial Setup + +```bash +# Clone repository +git clone https://github.com/ahdis/matchbox.git +cd matchbox + +# Build engine +cd matchbox-engine +mvn clean install + +# Build and run server +cd ../matchbox-server +mvn spring-boot:run +``` + +### Frontend Development + +```bash +# Terminal 1: Run backend +cd matchbox-server +mvn spring-boot:run + +# Terminal 2: Run frontend dev server +cd matchbox-frontend +npm install +npm start +# Visit http://localhost:4200 +``` + +### Full Build (Backend + Frontend) + +```bash +# Build frontend and copy to server resources +cd matchbox-frontend +npm install +npm run build + +# Build server with embedded frontend +cd ../matchbox-server +mvn clean install + +# Run +java -jar target/matchbox.jar +# Visit http://localhost:8080/matchboxv3 +``` + +## Testing + +### Backend Tests + +```bash +# All tests +cd matchbox-server +mvn clean test + +# Specific test class +mvn -Dtest=MatchboxApiR4Test test + +# Integration tests +mvn verify +``` + +**Key Test Classes**: +- `MatchboxApiR4Test` - R4 API tests +- `MatchboxApiR5Test` - R5 API tests +- `ValidationClient` - Validation testing utilities +- `TransformTest` - StructureMap transformation tests +- `GazelleApiR4Test` - IHE Gazelle integration tests + +## Configuration + +### Key Application Properties + +**application.yaml** (located in `matchbox-server/src/main/resources/`): + +```yaml +server: + servlet: + context-path: /matchboxv3 + port: 8080 + +spring: + datasource: + url: jdbc:h2:file:./database/h2 + username: sa + password: null + driverClassName: org.h2.Driver + +hapi: + fhir: + fhir_version: R4 + server_address: http://localhost:8080/matchboxv3/fhir + allow_external_references: true + delete_expunge_enabled: true + openapi_enabled: true + +matchbox: + fhir: + context: + txServer: http://tx.fhir.org + igsPreloaded: + - hl7.fhir.r4.core#4.0.1 +``` + +### Environment Variables + +```bash +# Override server port +SERVER_PORT=8888 + +# PostgreSQL configuration +SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/matchbox +SPRING_DATASOURCE_USERNAME=matchbox +SPRING_DATASOURCE_PASSWORD=matchbox + +# Terminology server +MATCHBOX_FHIR_CONTEXT_TXSERVER=http://tx.fhir.org + +# AI/LLM configuration +MATCHBOX_FHIR_CONTEXT_LLM_PROVIDER=openai +MATCHBOX_FHIR_CONTEXT_LLM_MODELNAME=gpt-4 +MATCHBOX_FHIR_CONTEXT_LLM_APIKEY=sk-... +``` + +### Docker Volume Mounts + +```bash +docker run -d \ + -p 8080:8080 \ + -v $(pwd)/config:/config \ + -v $(pwd)/database:/database \ + ghcr.io/ahdis/matchbox:latest +``` + +## API Endpoints + +### FHIR Operations + +- `POST /matchboxv3/fhir/StructureDefinition/$validate` + - Validate FHIR resources against profiles + +- `POST /matchboxv3/fhir/StructureMap/$transform` + - Transform resources using StructureMap + +- `POST /matchboxv3/fhir/StructureDefinition/$convert` + - Convert CDA documents to FHIR + +- `GET /matchboxv3/fhir/StructureDefinition/{id}/$snapshot` + - Generate snapshot from differential + +- `GET /matchboxv3/fhir/metadata` + - Server capability statement + +### OpenAPI Documentation + +- Swagger UI: `http://localhost:8080/matchboxv3/swagger-ui.html` +- OpenAPI spec: `http://localhost:8080/matchboxv3/v3/api-docs` + +### Actuator Endpoints + +- Health: `/matchboxv3/actuator/health` +- Metrics: `/matchboxv3/actuator/metrics` +- Info: `/matchboxv3/actuator/info` + +## Important Files & Locations + +### Backend + +| File/Directory | Purpose | +|----------------|---------| +| `pom.xml` | Parent Maven configuration | +| `matchbox-engine/pom.xml` | Engine build configuration | +| `matchbox-server/pom.xml` | Server build configuration | +| `matchbox-server/src/main/resources/application.yaml` | Main configuration | +| `matchbox-server/src/main/resources/logback.xml` | Logging configuration | +| `matchbox-server/src/main/java/ca/uhn/fhir/jpa/starter/Application.java` | Main entry point | +| `matchbox-server/Dockerfile` | Docker image definition | +| `matchbox-server/with-*/` | Docker Compose examples | + +### Frontend + +| File/Directory | Purpose | +|----------------|---------| +| `matchbox-frontend/package.json` | npm dependencies | +| `matchbox-frontend/angular.json` | Angular CLI configuration | +| `matchbox-frontend/tsconfig.json` | TypeScript configuration | +| `matchbox-frontend/src/main.ts` | Frontend entry point | +| `matchbox-frontend/src/app/app.module.ts` | Root Angular module | +| `matchbox-frontend/src/proxy.conf.json` | Dev server proxy | +| `matchbox-frontend/src/assets/` | Static assets, i18n | + +### Documentation + +| File/Directory | Purpose | +|----------------|---------| +| `README.md` | Project overview | +| `docs/` | MkDocs documentation | +| `mkdocs.yml` | Documentation configuration | +| `docs/validation-tutorial.md` | Validation guide | +| `docs/api.md` | API documentation | + +## CI/CD Pipeline + +GitHub Actions workflows (`.github/workflows/`): + +- **maven.yml** - Maven build and test +- **integration_tests.yml** - Integration tests +- **angular_build.yml** - Frontend build +- **angular_test.yml** - Frontend tests +- **documentation.yml** - Docs deployment +- **googleregistry.yml** - Docker image publishing +- **central_repository.yml** - Maven Central publishing + +## Release Process + +1. Update versions in `pom.xml`, `package.json`, and documentation +2. Create PR and wait for tests to pass +3. Merge PR to main +4. Wait for Angular build workflow to complete +5. Create GitHub release with tag (e.g., `v4.0.16`) +6. Automated workflows publish: + - Docker image to Google Artifact Registry + - Maven artifacts to Maven Central + +## Dependencies Management + +### Major Dependencies + +**Backend**: +- HAPI FHIR 8.0.0 - FHIR server framework +- HL7 FHIR Core 6.7.10 - Official validator +- Spring Boot 3.3.11 - Application framework +- Jackson 2.17.1 - JSON processing +- Hibernate - JPA/ORM +- LangChain4j 1.0.0-beta1 - AI/LLM integration + +**Frontend**: +- Angular 19.0.0 - Web framework +- Angular Material 19.0.0 - UI components +- fhir-kit-client 1.9.2 - FHIR client +- FHIRPath.js 3.15.2 - FHIRPath evaluation +- Ace Editor 1.36.5 - Code editor + +### Update Dependencies + +```bash +# Backend +mvn versions:display-dependency-updates + +# Frontend +npm outdated +``` + +## Troubleshooting + +### Common Issues + +**Issue**: Port 8080 already in use +```bash +# Solution: Change port +SERVER_PORT=8888 java -jar matchbox.jar +``` + +**Issue**: Out of memory errors +```bash +# Solution: Increase heap size +java -Xmx4096M -jar matchbox.jar +``` + +**Issue**: Frontend build fails +```bash +# Solution: Clear node_modules and reinstall +cd matchbox-frontend +rm -rf node_modules package-lock.json +npm install +npm run build +``` + +**Issue**: Database connection errors +```bash +# Solution: Check database is running and config is correct +# For H2, ensure database directory exists and is writable +mkdir -p database +``` + +### Logging + +Enable debug logging: +```yaml +logging: + level: + ch.ahdis.matchbox: DEBUG + ca.uhn.fhir: DEBUG +``` + +Or via environment variable: +```bash +LOGGING_LEVEL_CH_AHDIS_MATCHBOX=DEBUG +``` + +## Resources + +- **GitHub Repository**: https://github.com/ahdis/matchbox +- **Documentation**: https://ahdis.github.io/matchbox/ +- **Docker Images**: https://github.com/ahdis/matchbox/pkgs/container/matchbox +- **Maven Central**: https://central.sonatype.com/artifact/ch.ahdis/matchbox-engine +- **FHIR Specification**: https://hl7.org/fhir/ +- **HAPI FHIR**: https://hapifhir.io/ + +## Support & Contributing + +- **Issues**: https://github.com/ahdis/matchbox/issues +- **Discussions**: https://github.com/ahdis/matchbox/discussions +- **Contributing Guide**: See `matchbox-frontend/CONTRIBUTING.md` + +## License + +Apache License 2.0 diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java index 5cccb1aeb81..de564c94b04 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java @@ -308,7 +308,6 @@ public MatchboxEngine getEngineR4() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - // TODO add referencesTo als parameter? engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); log.info("engine R4 initialized"); @@ -354,7 +353,6 @@ public MatchboxEngine getEngineR4B() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - // TODO add referencesTo als parameter? engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); log.info("engine R4B initialized"); @@ -398,7 +396,6 @@ public MatchboxEngine getEngineR5() throws MatchboxEngineCreationException { throw new TerminologyServerException(e); } } - // TODO add referencesTo als parameter? engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); @@ -436,7 +433,6 @@ public MatchboxEngine getEngine() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - // TODO add referencesTo als parameter? engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); return engine; diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java index f15f488c420..a1cb6a0438f 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java @@ -436,14 +436,14 @@ public String initializeValidator(ValidationContext validationContext, String de } else { fetcher.setReferencePolicy(ReferenceValidationPolicy.IGNORE); } + fetcher.getCheckReferencesTo().addAll(validationContext.getCheckReferencesTo()); fetcher.setResolutionContext(validationContext.getResolutionContext()); } else { DisabledValidationPolicyAdvisor fetcher = new DisabledValidationPolicyAdvisor(); validator.setPolicyAdvisor(fetcher); refpol = ReferenceValidationPolicy.CHECK_TYPE_IF_EXISTS; } - // TODO add referencesTo als parameter? - validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), null)); + validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), validationContext.getCheckReferencesTo())); validator.getBundleValidationRules().addAll(validationContext.getBundleValidationRules()); validator.setJurisdiction(CodeSystemUtilities.readCoding(validationContext.getJurisdiction())); diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java index e77e73bce94..0895fe0517c 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java @@ -9,6 +9,7 @@ import java.util.stream.Collectors; import org.apache.commons.beanutils.BeanUtils; +import org.checkerframework.checker.units.qual.A; import org.hl7.fhir.r5.model.*; import org.hl7.fhir.r5.terminologies.JurisdictionUtilities; import org.hl7.fhir.validation.service.model.HtmlInMarkdownCheck; @@ -41,45 +42,37 @@ public class CliContext { @JsonProperty("doNative") private boolean doNative = false; - @JsonProperty("extensions") public String[] getExtensions() { return extensions; } - @JsonProperty("extensions") public CliContext setExtensions(String[] extensions) { this.extensions = extensions; return this; } - @JsonProperty("suppressWarnInfos") public String[] getSuppressWarnInfos() { return this.suppressWarnInfos; } - @JsonProperty("suppressWarnInfos") public CliContext setSuppressWarnInfos(String[] suppressWarnInfos) { this.suppressWarnInfos = suppressWarnInfos; return this; } - @JsonProperty("suppressErrors") public String[] getSuppressErrors() { return this.suppressErrors; } - @JsonProperty("suppressErrors") public CliContext setSuppressErrors(String[] suppressErrors) { this.suppressErrors = suppressErrors; return this; } - @JsonProperty("igs") public String[] getIgs() { return this.igs; } - @JsonProperty("igs") public CliContext setIgs(String[] igs) { this.igs = igs; return this; @@ -246,12 +239,10 @@ public boolean getXVersion() { @JsonProperty("llmProvider") private String llmProvider; - @JsonProperty("llmProvider") public String getLlmProvider() { return llmProvider; } - @JsonProperty("llmProvider") public void setLlmProvider(String llmProvider) { this.llmProvider = llmProvider; } @@ -259,12 +250,10 @@ public void setLlmProvider(String llmProvider) { @JsonProperty("llmModelName") private String llmModelName; - @JsonProperty("llmModelName") public String getLlmModelName() { return llmModelName; } - @JsonProperty("llmModelName") public void setLlmModelName(String llmModelName) { this.llmModelName = llmModelName; } @@ -272,12 +261,10 @@ public void setLlmModelName(String llmModelName) { @JsonProperty("llmApiKey") private String llmApiKey; - @JsonProperty("llmApiKey") public void setLlmApiKey(String llmApiKey) { this.llmApiKey = llmApiKey; } - @JsonProperty("llmApiKey") public String getLlmApiKey() { return this.llmApiKey; } @@ -285,6 +272,18 @@ public String getLlmApiKey() { @JsonProperty("check-references") private boolean checkReferences = false; + @JsonProperty("check-references-to") + private String[] checkReferencesTo = null; + + public String[] getCheckReferencesTo() { + return this.checkReferencesTo; + } + + public CliContext setCheckReferencesTo(String[] checkReferencesTo) { + this.checkReferencesTo = checkReferencesTo; + return this; + } + @JsonProperty("r5-bundle-relative-reference-policy") private String r5BundleRelativeReferencePolicy = "default"; @@ -366,172 +365,138 @@ public CliContext(CliContext other) { this.igs = other.igs; } - @JsonProperty("ig") public String getIg() { return ig; } - @JsonProperty("ig") public void setIg(String ig) { this.ig = ig; } - @JsonProperty("questionnaire") public QuestionnaireMode getQuestionnaireMode() { return questionnaireMode; } - @JsonProperty("questionnaire") public void setQuestionnaireMode(QuestionnaireMode questionnaireMode) { this.questionnaireMode = questionnaireMode; } - @JsonProperty("level") public ValidationLevel getLevel() { return level; } - @JsonProperty("level") public void setLevel(ValidationLevel level) { this.level = level; } - @JsonProperty("txServer") public String getTxServer() { return txServer; } - @JsonProperty("txServer") public void setTxServer(String txServer) { this.txServer = txServer; } - @JsonProperty("txServerCache") public boolean getTxServerCache() { return txServerCache; } - @JsonProperty("txServerCache") public void setTxServerCache(boolean txServerCache) { this.txServerCache = txServerCache; } - @JsonProperty("txLog") public String getTxLog() { return txLog; } - @JsonProperty("txLog") public void setTxLog(String txLog) { this.txLog = txLog; } - @JsonProperty("txUseEcosystem") public void setTxUseEcosystem(boolean txUseEcosystem) { this.txUseEcosystem = txUseEcosystem; } - @JsonProperty("txUseEcosystem") public boolean isTxUseEcosystem() { return txUseEcosystem; } - @JsonProperty("doNative") public boolean isDoNative() { return doNative; } - @JsonProperty("doNative") public void setDoNative(boolean doNative) { this.doNative = doNative; } - @JsonProperty("hintAboutNonMustSupport") public boolean isHintAboutNonMustSupport() { return hintAboutNonMustSupport; } - @JsonProperty("hintAboutNonMustSupport") public void setHintAboutNonMustSupport(boolean hintAboutNonMustSupport) { this.hintAboutNonMustSupport = hintAboutNonMustSupport; } - @JsonProperty("recursive") public boolean isRecursive() { return recursive; } - @JsonProperty("recursive") public void setRecursive(boolean recursive) { this.recursive = recursive; } - @JsonProperty("showMessagesFromReferences") public boolean isShowMessagesFromReferences() { return showMessagesFromReferences; } - @JsonProperty("showMessagesFromReferences") public void setShowMessagesFromReferences(boolean showMessagesFromReferences) { this.showMessagesFromReferences = showMessagesFromReferences; } - @JsonProperty("doImplicitFHIRPathStringConversion") public boolean isDoImplicitFHIRPathStringConversion() { return doImplicitFHIRPathStringConversion; } - @JsonProperty("doImplicitFHIRPathStringConversion") public void setDoImplicitFHIRPathStringConversion(boolean doImplicitFHIRPathStringConversion) { this.doImplicitFHIRPathStringConversion = doImplicitFHIRPathStringConversion; } - @JsonProperty("htmlInMarkdownCheck") public HtmlInMarkdownCheck getHtmlInMarkdownCheck() { return htmlInMarkdownCheck; } - @JsonProperty("htmlInMarkdownCheck") public void setHtmlInMarkdownCheck(HtmlInMarkdownCheck htmlInMarkdownCheck) { this.htmlInMarkdownCheck = htmlInMarkdownCheck; } - @JsonProperty("locale") public String getLocale() { return locale; } - @JsonProperty("locale") public void setLocale(String locale) { this.locale = locale; } - @JsonProperty("mode") public EngineMode getMode() { return mode; } - @JsonProperty("mode") public void setMode(EngineMode mode) { this.mode = mode; } - @JsonProperty("canDoNative") public boolean getCanDoNative() { return canDoNative; } - @JsonProperty("canDoNative") public void setCanDoNative(boolean canDoNative) { this.canDoNative = canDoNative; } - @JsonProperty("locations") public Map getLocations() { return locations; } - @JsonProperty("locations") public void setLocations(Map locations) { this.locations = locations; } @@ -541,17 +506,14 @@ public CliContext addLocation(String profile, String location) { return this; } - @JsonProperty("lang") public String getLang() { return lang; } - @JsonProperty("lang") public void setLang(String lang) { this.lang = lang; } - @JsonProperty("snomedCT") public String getSnomedCT() { if ("intl".equals(snomedCT)) return "900000000000207008"; @@ -576,37 +538,30 @@ public String getSnomedCT() { return snomedCT; } - @JsonProperty("snomedCT") public void setSnomedCT(String snomedCT) { this.snomedCT = snomedCT; } - @JsonProperty("fhirVersion") public String getFhirVersion() { return fhirVersion; } - @JsonProperty("fhirVersion") public void setFhirVersion(String targetVer) { this.fhirVersion = targetVer; } - @JsonProperty("doDebug") public boolean isDoDebug() { return doDebug; } - @JsonProperty("doDebug") public void setDoDebug(boolean doDebug) { this.doDebug = doDebug; } - @JsonProperty("assumeValidRestReferences") public boolean isAssumeValidRestReferences() { return assumeValidRestReferences; } - @JsonProperty("assumeValidRestReferences") public void setAssumeValidRestReferences(boolean assumeValidRestReferences) { this.assumeValidRestReferences = assumeValidRestReferences; } @@ -621,52 +576,42 @@ public void setAssumeValidRestReferences(boolean assumeValidRestReferences) { // this.noInternalCaching = noInternalCaching; // } - @JsonProperty("noExtensibleBindingMessages") public boolean isNoExtensibleBindingMessages() { return noExtensibleBindingMessages; } - @JsonProperty("noExtensibleBindingMessages") public void setNoExtensibleBindingMessages(boolean noExtensibleBindingMessages) { this.noExtensibleBindingMessages = noExtensibleBindingMessages; } - @JsonProperty("noInvariants") public boolean isNoInvariants() { return noInvariants; } - @JsonProperty("noInvariants") public void setNoInvariants(boolean noInvariants) { this.noInvariants = noInvariants; } - @JsonProperty("displayIssuesAreWarnings") public boolean isDisplayIssuesAreWarnings() { return displayIssuesAreWarnings; } - @JsonProperty("displayIssuesAreWarnings") public void setDisplayIssuesAreWarnings(boolean displayIssuesAreWarnings) { this.displayIssuesAreWarnings = displayIssuesAreWarnings; } - @JsonProperty("wantInvariantsInMessages") public boolean isWantInvariantsInMessages() { return wantInvariantsInMessages; } - @JsonProperty("wantInvariantsInMessages") public void setWantInvariantsInMessages(boolean wantInvariantsInMessages) { this.wantInvariantsInMessages = wantInvariantsInMessages; } - @JsonProperty("securityChecks") public boolean isSecurityChecks() { return securityChecks; } - @JsonProperty("securityChecks") public void setSecurityChecks(boolean securityChecks) { this.securityChecks = securityChecks; } @@ -675,7 +620,6 @@ public boolean isCrumbTrails() { return crumbTrails; } - @JsonProperty("crumbTrails") public void setCrumbTrails(boolean crumbTrails) { this.crumbTrails = crumbTrails; } @@ -684,7 +628,6 @@ public boolean isForPublication() { return forPublication; } - @JsonProperty("forPublication") public void setForPublication(boolean forPublication) { this.forPublication = forPublication; } @@ -717,7 +660,6 @@ public boolean isAllowExampleUrls() { return allowExampleUrls; } - @JsonProperty("allowExampleUrls") public void setAllowExampleUrls(boolean allowExampleUrls) { this.allowExampleUrls = allowExampleUrls; } @@ -726,7 +668,6 @@ public boolean isNoUnicodeBiDiControlChars() { return noUnicodeBiDiControlChars; } - @JsonProperty("noUnicodeBiDiControlChars") public void setNoUnicodeBiDiControlChars(boolean noUnicodeBiDiControlChars) { this.noUnicodeBiDiControlChars = noUnicodeBiDiControlChars; } @@ -735,7 +676,6 @@ public String getJurisdiction() { return jurisdiction; } - @JsonProperty("jurisdiction") public void setJurisdiction(String jurisdiction) { this.jurisdiction = jurisdiction; } @@ -744,7 +684,6 @@ public boolean isCheckReferences() { return this.checkReferences; } - @JsonProperty("check-references") public void setCheckReferences(boolean checkReferences) { this.checkReferences = checkReferences; } @@ -753,7 +692,6 @@ public String getResolutionContext() { return this.resolutionContext; } - @JsonProperty("resolution-context") public void setResolutionContext(String resolutionContext) { this.resolutionContext = resolutionContext; } @@ -762,7 +700,6 @@ public boolean isDisableDefaultResourceFetcher() { return this.disableDefaultResourceFetcher; } - @JsonProperty("disableDefaultResourceFetcher") public void setDisableDefaultResourceFetcher(boolean disableDefaultResourceFetcher) { this.disableDefaultResourceFetcher = disableDefaultResourceFetcher; } @@ -771,7 +708,6 @@ public boolean isCheckIpsCodes() { return this.checkIpsCodes; } - @JsonProperty("check-ips-codes") public void setCheckIpsCodes(boolean checkIpsCodes) { this.checkIpsCodes = checkIpsCodes; } @@ -780,37 +716,30 @@ public String getBundle() { return this.bundle; } - @JsonProperty("bundle") public void setBundle(String bundle) { this.bundle = bundle; } - @JsonProperty("analyzeOutcomeWithAI") public Boolean getAnalyzeOutcomeWithAI() { return analyzeOutcomeWithAI; } - @JsonProperty("analyzeOutcomeWithAI") public void setAnalyzeOutcomeWithAI(Boolean analyzeOutcomeWithAI) { this.analyzeOutcomeWithAI = analyzeOutcomeWithAI; } - @JsonProperty("analyzeOutcomeWithAIOnError") public Boolean getAnalyzeOutcomeWithAIOnError() { return analyzeOutcomeWithAIOnError; } - @JsonProperty("analyzeOutcomeWithAIOnError") public void setAnalyzeOutcomeWithAIOnError(Boolean analyzeOutcomeWithAIOnError) { this.analyzeOutcomeWithAIOnError = analyzeOutcomeWithAIOnError; } - @JsonProperty("r5-bundle-relative-reference-policy") public String getR5BundleRelativeReferencePolicy() { return r5BundleRelativeReferencePolicy; } - @JsonProperty("r5-bundle-relative-reference-policy") public void setR5BundleRelativeReferencePolicy(String r5BundleRelativeReferencePolicy) { this.r5BundleRelativeReferencePolicy = r5BundleRelativeReferencePolicy; } @@ -864,6 +793,7 @@ public boolean equals(final Object o) { && Objects.equals(jurisdiction, that.jurisdiction) && Arrays.equals(igsPreloaded, that.igsPreloaded) && checkReferences == that.checkReferences + && Arrays.equals(checkReferencesTo, that.checkReferencesTo) && Objects.equals(resolutionContext, that.resolutionContext) && disableDefaultResourceFetcher == that.disableDefaultResourceFetcher && Objects.equals(llmProvider, that.llmProvider) @@ -918,6 +848,7 @@ public int hashCode() { onlyOneEngine, xVersion, checkReferences, + checkReferencesTo, resolutionContext, disableDefaultResourceFetcher, llmProvider, @@ -1043,6 +974,11 @@ public void addContextToExtension(final Extension ext) { // addExtension(ext, "locations", new StringType(this.locations)); addExtension(ext, "jurisdiction", new StringType(this.jurisdiction)); addExtension(ext, "check-references", new BooleanType(this.checkReferences)); + if (this.checkReferencesTo != null && this.checkReferencesTo.length > 0) { + for( var checkReferenceTo : this.checkReferencesTo) { + addExtension(ext, "check-references-to", new StringType(checkReferenceTo)); + } + } addExtension(ext, "resolution-context", new StringType(this.resolutionContext)); addExtension(ext, "r5-bundle-relative-reference-policy", new StringType(this.r5BundleRelativeReferencePolicy)); addExtension(ext, "disableDefaultResourceFetcher", new BooleanType(this.disableDefaultResourceFetcher)); diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java index 86c67c4c311..3997656181f 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java @@ -612,14 +612,14 @@ private void configureValidationEngine(final MatchboxEngine validator, } else { fetcher.setReferencePolicy(ReferenceValidationPolicy.IGNORE); } + fetcher.getCheckReferencesTo().addAll(cli.getCheckReferencesTo() != null ? new HashSet<>(Arrays.asList(cli.getCheckReferencesTo())) : Collections.emptySet()); fetcher.setResolutionContext(cli.getResolutionContext()); } else { DisabledValidationPolicyAdvisor fetcher = new DisabledValidationPolicyAdvisor(); validator.setPolicyAdvisor(fetcher); refpol = ReferenceValidationPolicy.CHECK_TYPE_IF_EXISTS; } - // TODO add referencesTo als parameter? - validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), null)); + validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), cli.getCheckReferencesTo() != null ? new HashSet<>(Arrays.asList(cli.getCheckReferencesTo())) : Collections.emptySet())); validator.setJurisdiction(CodeSystemUtilities.readCoding(cli.getJurisdiction())); // TerminologyCache.setNoCaching(cliContext.isNoInternalCaching()); diff --git a/matchbox-server/with-ch/application.yaml b/matchbox-server/with-ch/application.yaml index e6cb01894af..94a65d92d2c 100644 --- a/matchbox-server/with-ch/application.yaml +++ b/matchbox-server/with-ch/application.yaml @@ -10,24 +10,15 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz ch-core: name: ch.fhir.ig.ch-core - version: 6.0.0-ballot + version: 6.0.0 url: https://fhir.ch/ig/ch-core/package.tgz matchbox: fhir: context: -# txServer: http://tx.fhir.org + txServer: http://tx.fhir.org httpReadOnly: true - txServer: http://localhost:${server.port}/matchboxv3/tx suppressWarnInfo: hl7.fhir.r4.core#4.0.1: - "Constraint failed: dom-6:" From 65a905cf50f7c0730c8c3b090cde2e2f9f9f7609 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Sun, 28 Dec 2025 15:19:14 +0100 Subject: [PATCH 05/23] support validating CodeableConcept in internal tx #448 --- docs/changelog.md | 1 + .../ch/ahdis/matchbox/terminology/TerminologyUtils.java | 7 +++++++ .../terminology/providers/CodeSystemProvider.java | 8 +++++++- matchbox-server/with-ch/application.yaml | 3 ++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 79744238c53..650cecbac14 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -2,6 +2,7 @@ - adapt test and map for (440) - update to core (448) +- support validating CodeableConcept in internal tx (448) 2025/11/03 Release 4.0.15 diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/TerminologyUtils.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/TerminologyUtils.java index 30747a1e8ae..9e3aca90209 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/TerminologyUtils.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/TerminologyUtils.java @@ -47,6 +47,13 @@ public static Parameters createSuccessfulResponseParameters(final Coding coding) return parameters; } + public static Parameters createSuccessfulResponseParameters(final CodeableConcept codeableConcept) { + final var parameters = new Parameters(); + parameters.setParameter("result", true); + parameters.setParameter("codeableConcept", codeableConcept); + return parameters; + } + public static Parameters createErrorResponseParameters(final String message, @Nullable final Coding coding, @Nullable final CodeableConcept codeableConcept) { diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/providers/CodeSystemProvider.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/providers/CodeSystemProvider.java index e89497478ec..83bcba03da1 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/providers/CodeSystemProvider.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/providers/CodeSystemProvider.java @@ -14,8 +14,9 @@ import org.hl7.fhir.instance.model.api.IBaseParameters; import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.instance.model.api.IIdType; -import org.hl7.fhir.r4.model.CodeSystem; +import org.hl7.fhir.r5.model.CodeSystem; import org.hl7.fhir.r5.model.Coding; +import org.hl7.fhir.r5.model.CodeableConcept; import org.hl7.fhir.r5.model.Parameters; import org.hl7.fhir.r5.model.Resource; import org.slf4j.Logger; @@ -92,6 +93,11 @@ private Resource doValidateR5Code(final Parameters request, return TerminologyUtils.createSuccessfulResponseParameters(coding); } + if (request.hasParameter("codeableConcept") && request.getParameterValue("codeableConcept") instanceof final CodeableConcept codeableConcept) { + log.debug("Validating code in CS: {}|{}", codeableConcept.getCodingFirstRep().getCode(), codeableConcept.getCodingFirstRep().getSystem()); + return TerminologyUtils.createSuccessfulResponseParameters(codeableConcept); + } + servletResponse.setStatus(422); // The original error message is: // Unable to find code to validate (looked for coding | codeableConcept | code) diff --git a/matchbox-server/with-ch/application.yaml b/matchbox-server/with-ch/application.yaml index 94a65d92d2c..a93577bbed0 100644 --- a/matchbox-server/with-ch/application.yaml +++ b/matchbox-server/with-ch/application.yaml @@ -17,7 +17,8 @@ hapi: matchbox: fhir: context: - txServer: http://tx.fhir.org +# txServer: http://tx.fhir.org + txServer: http://localhost:${server.port}/matchboxv3/tx httpReadOnly: true suppressWarnInfo: hl7.fhir.r4.core#4.0.1: From 90a54234b5c71a7de3f2bc5506e7f78a99f71919 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Sun, 28 Dec 2025 16:14:00 +0100 Subject: [PATCH 06/23] fix np --- .../java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java index 3997656181f..296b25dabaa 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java @@ -621,7 +621,9 @@ private void configureValidationEngine(final MatchboxEngine validator, } validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), cli.getCheckReferencesTo() != null ? new HashSet<>(Arrays.asList(cli.getCheckReferencesTo())) : Collections.emptySet())); - validator.setJurisdiction(CodeSystemUtilities.readCoding(cli.getJurisdiction())); + if (cli.getJurisdiction() != null) { + validator.setJurisdiction(CodeSystemUtilities.readCoding(cli.getJurisdiction())); + } // TerminologyCache.setNoCaching(cliContext.isNoInternalCaching()); // Configure which warnings will be suppressed in the validation results From 561d245b8bb8d68d00fd3b0ff9344ac1ae6b3dd8 Mon Sep 17 00:00:00 2001 From: Oliver Egger Date: Mon, 29 Dec 2025 18:21:51 +0100 Subject: [PATCH 07/23] Update udpatecoreversion.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- udpatecoreversion.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/udpatecoreversion.md b/udpatecoreversion.md index aa4b58f2900..27c01448d47 100644 --- a/udpatecoreversion.md +++ b/udpatecoreversion.md @@ -4,7 +4,7 @@ matchbox depends on org.hl7.fhir.core. the project is available on [github](http matchbox has patched a few classes, that's why an update cannot be done just through referencing mvn. -the following steps need to be perfomed: +the following steps need to be performed: ## sync the forked project to the latest release https://github.com/hapifhir/org.hl7.fhir.core/releases and checkout branch From 8ed9ba724d4d1d3b093d87b85a9083a63595bc72 Mon Sep 17 00:00:00 2001 From: Oliver Egger Date: Mon, 29 Dec 2025 18:22:04 +0100 Subject: [PATCH 08/23] Update udpatecoreversion.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- udpatecoreversion.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/udpatecoreversion.md b/udpatecoreversion.md index 27c01448d47..b96a69d0d97 100644 --- a/udpatecoreversion.md +++ b/udpatecoreversion.md @@ -33,7 +33,7 @@ cd ../matchbox ./updatehapi.sh ``` -now all the patches are lost and need to be added again, they are marked with `matchbox patch' +now all the patches are lost and need to be added again, they are marked with `matchbox patch` From b7bad2bd7eec589f0e880421e8ac068e33312d9e Mon Sep 17 00:00:00 2001 From: Oliver Egger Date: Mon, 29 Dec 2025 18:23:39 +0100 Subject: [PATCH 09/23] Update matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java | 1 - 1 file changed, 1 deletion(-) diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java index 0895fe0517c..5537f8195ea 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java @@ -9,7 +9,6 @@ import java.util.stream.Collectors; import org.apache.commons.beanutils.BeanUtils; -import org.checkerframework.checker.units.qual.A; import org.hl7.fhir.r5.model.*; import org.hl7.fhir.r5.terminologies.JurisdictionUtilities; import org.hl7.fhir.validation.service.model.HtmlInMarkdownCheck; From 533c422750da14c33accca9d5ab9679cc2d69173 Mon Sep 17 00:00:00 2001 From: Oliver Egger Date: Mon, 29 Dec 2025 18:25:24 +0100 Subject: [PATCH 10/23] Update docs/changelog.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/changelog.md b/docs/changelog.md index 650cecbac14..f4f59c2d584 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,7 +1,7 @@ 2025 Release 4.0.16 - adapt test and map for (440) -- update to core (448) +- update org.hl7.fhir.core 6.7.10 (#448) - support validating CodeableConcept in internal tx (448) 2025/11/03 Release 4.0.15 From 4a042c21b457f944d19a78df027f35b7c55ddbf4 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Thu, 25 Dec 2025 07:51:15 +0100 Subject: [PATCH 11/23] #424 test file --- .vscode/launch.json | 9 +++++ .../r4-samples/encounter-withr5ext.json | 18 ++++++++++ matchbox-server/with-ans/application.yaml | 36 +++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 matchbox-engine/src/test/resources/r4-samples/encounter-withr5ext.json create mode 100644 matchbox-server/with-ans/application.yaml diff --git a/.vscode/launch.json b/.vscode/launch.json index 1f086d8564a..449c0d6f269 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -105,6 +105,15 @@ "vmArgs": "-Dspring.config.additional-location=file:with-ch/application.yaml", "cwd": "${workspaceFolder}/matchbox-server" }, + { + "type": "java", + "name": "Launch Matchbox-Server (ans)", + "request": "launch", + "mainClass": "ca.uhn.fhir.jpa.starter.Application", + "projectName": "matchbox-server", + "vmArgs": "-Dspring.config.additional-location=file:with-ans/application.yaml", + "cwd": "${workspaceFolder}/matchbox-server" + }, { "type": "java", "name": "Launch Matchbox-Server (gazelle)", diff --git a/matchbox-engine/src/test/resources/r4-samples/encounter-withr5ext.json b/matchbox-engine/src/test/resources/r4-samples/encounter-withr5ext.json new file mode 100644 index 00000000000..6ef1f468914 --- /dev/null +++ b/matchbox-engine/src/test/resources/r4-samples/encounter-withr5ext.json @@ -0,0 +1,18 @@ +{ + "resourceType": "Encounter", + "extension": [ + { + "url": "http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedStartDate", + "valueDateTime": "2023-04-11" + }, + { + "url": "http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedEndDate", + "valueDateTime": "2023-05-05" + } + ], + "status": "in-progress", + "class": { + "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", + "code": "HH" + } +} \ No newline at end of file diff --git a/matchbox-server/with-ans/application.yaml b/matchbox-server/with-ans/application.yaml new file mode 100644 index 00000000000..9be48fbef4c --- /dev/null +++ b/matchbox-server/with-ans/application.yaml @@ -0,0 +1,36 @@ +server: + port: 8080 + servlet: + context-path: /matchboxv3 +hapi: + fhir: + server_address: http://localhost:8080/matchboxv3/fhir + implementationguides: + fhir_r4_core: + name: hl7.fhir.r4.core + version: 4.0.1 + url: classpath:/hl7.fhir.r4.core.tgz + fhir_extensions: + name: hl7.fhir.uv.extensions.r4 + version: 5.2.0 + url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz + fhir_terminology: + name: hl7.terminology.r4 + version: 6.3.0 + url: classpath:/hl7.terminology.r4#6.3.0.tgz + ans_fr_tddui: + name: ans.fhir.fr.tddui + version: 2.1.0-ballot +matchbox: + fhir: + context: +# txServer: http://tx.fhir.org +# xVersion: true + httpReadOnly: true + txServer: http://localhost:${server.port}/matchboxv3/tx + suppressWarnInfo: + hl7.fhir.r4.core#4.0.1: + - "Constraint failed: dom-6:" + suppressError: + hl7.fhir.r4.core#4.0.1: + - "Extension_EXTP_Context_Wrong@^RelatedPerson" From 9fb967955e4aa84d0cec206015f392676a682ea3 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Mon, 5 Jan 2026 16:25:21 +0100 Subject: [PATCH 12/23] FHIR R4 validation error with R5 extension #424 --- docs/changelog.md | 1 + .../conformance/profile/ProfileUtilities.java | 5014 +++++++++++++++++ .../matchbox/test/MatchboxApiR4Test.java | 34 + .../matchbox.health.test.ig.r4-0.2.0.tgz | Bin 22576 -> 36817 bytes updatehapi.sh | 1 + 5 files changed, 5050 insertions(+) create mode 100644 matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java diff --git a/docs/changelog.md b/docs/changelog.md index f4f59c2d584..4025f63e08c 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -3,6 +3,7 @@ - adapt test and map for (440) - update org.hl7.fhir.core 6.7.10 (#448) - support validating CodeableConcept in internal tx (448) +- FHIR R4 validation error with R5 extension (#424) 2025/11/03 Release 4.0.15 diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java new file mode 100644 index 00000000000..28b71beb470 --- /dev/null +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java @@ -0,0 +1,5014 @@ +package org.hl7.fhir.r5.conformance.profile; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + */ + + +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.hl7.fhir.exceptions.DefinitionException; +import org.hl7.fhir.exceptions.FHIRException; +import org.hl7.fhir.exceptions.FHIRFormatError; +import org.hl7.fhir.r5.conformance.ElementRedirection; +import org.hl7.fhir.r5.conformance.profile.MappingAssistant.MappingMergeModeOption; +import org.hl7.fhir.r5.context.IWorkerContext; +import org.hl7.fhir.r5.elementmodel.ObjectConverter; +import org.hl7.fhir.r5.elementmodel.Property; +import org.hl7.fhir.r5.extensions.ExtensionDefinitions; +import org.hl7.fhir.r5.extensions.ExtensionUtilities; +import org.hl7.fhir.r5.fhirpath.ExpressionNode; +import org.hl7.fhir.r5.fhirpath.ExpressionNode.Kind; +import org.hl7.fhir.r5.fhirpath.ExpressionNode.Operation; +import org.hl7.fhir.r5.fhirpath.FHIRPathEngine; +import org.hl7.fhir.r5.model.*; +import org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingAdditionalComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionExampleComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent; +import org.hl7.fhir.r5.model.ElementDefinition.SlicingRules; +import org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent; +import org.hl7.fhir.r5.model.Enumerations.BindingStrength; +import org.hl7.fhir.r5.model.Enumerations.FHIRVersion; +import org.hl7.fhir.r5.model.Enumerations.PublicationStatus; +import org.hl7.fhir.r5.model.StructureDefinition.ExtensionContextType; +import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionContextComponent; +import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionDifferentialComponent; +import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionKind; +import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionSnapshotComponent; +import org.hl7.fhir.r5.model.StructureDefinition.TypeDerivationRule; +import org.hl7.fhir.r5.model.ValueSet.ValueSetExpansionComponent; +import org.hl7.fhir.r5.model.ValueSet.ValueSetExpansionContainsComponent; +import org.hl7.fhir.r5.terminologies.expansion.ValueSetExpansionOutcome; +import org.hl7.fhir.r5.terminologies.utilities.ValidationResult; + +import org.hl7.fhir.r5.utils.UserDataNames; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager.XVerExtensionStatus; +import org.hl7.fhir.r5.utils.formats.CSVWriter; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManagerFactory; +import org.hl7.fhir.utilities.*; +import org.hl7.fhir.utilities.i18n.I18nConstants; +import org.hl7.fhir.utilities.validation.ValidationMessage; +import org.hl7.fhir.utilities.validation.ValidationMessage.IssueSeverity; +import org.hl7.fhir.utilities.validation.ValidationMessage.IssueType; +import org.hl7.fhir.utilities.validation.ValidationMessage.Source; +import org.hl7.fhir.utilities.validation.ValidationOptions; +import org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator.Row; +import org.hl7.fhir.utilities.xml.SchematronWriter; +import org.hl7.fhir.utilities.xml.SchematronWriter.Rule; +import org.hl7.fhir.utilities.xml.SchematronWriter.SchematronType; +import org.hl7.fhir.utilities.xml.SchematronWriter.Section; + + +/** + * This class provides a set of utility operations for working with Profiles. + * Key functionality: + * * getChildMap --? + * * getChildList + * * generateSnapshot: Given a base (snapshot) profile structure, and a differential profile, generate a new snapshot profile + * * closeDifferential: fill out a differential by excluding anything not mentioned + * * generateExtensionsTable: generate the HTML for a hierarchical table presentation of the extensions + * * generateTable: generate the HTML for a hierarchical table presentation of a structure + * * generateSpanningTable: generate the HTML for a table presentation of a network of structures, starting at a nominated point + * * summarize: describe the contents of a profile + * + * note to maintainers: Do not make modifications to the snapshot generation without first changing the snapshot generation test cases to demonstrate the grounds for your change + * + * @author Grahame + * + */ +@MarkedToMoveToAdjunctPackage +@Slf4j +public class ProfileUtilities { + + private static boolean suppressIgnorableExceptions; + + + public class ElementDefinitionCounter { + int countMin = 0; + int countMax = 0; + int index = 0; + ElementDefinition focus; + Set names = new HashSet<>(); + + public ElementDefinitionCounter(ElementDefinition ed, int i) { + focus = ed; + index = i; + } + + public int checkMin() { + if (countMin > focus.getMin()) { + return countMin; + } else { + return -1; + } + } + + public int checkMax() { + if (countMax > max(focus.getMax())) { + return countMax; + } else { + return -1; + } + } + + private int max(String max) { + if ("*".equals(max)) { + return Integer.MAX_VALUE; + } else { + return Integer.parseInt(max); + } + } + + public boolean count(ElementDefinition ed, String name) { + countMin = countMin + ed.getMin(); + if (countMax < Integer.MAX_VALUE) { + int m = max(ed.getMax()); + if (m == Integer.MAX_VALUE) { + countMax = m; + } else { + countMax = countMax + m; + } + } + boolean ok = !names.contains(name); + names.add(name); + return ok; + } + + public ElementDefinition getFocus() { + return focus; + } + + public boolean checkMinMax() { + return countMin <= countMax; + } + + public int getIndex() { + return index; + } + + } + + public enum AllowUnknownProfile { + NONE, // exception if there's any unknown profiles (the default) + NON_EXTNEIONS, // don't raise an exception except on Extension (because more is going on there + ALL_TYPES // allow any unknow profile + } + + /** + * These extensions are stripped in inherited profiles (and may be replaced by + */ + + public static final List NON_INHERITED_ED_URLS = Arrays.asList( + "http://hl7.org/fhir/tools/StructureDefinition/binding-definition", + "http://hl7.org/fhir/tools/StructureDefinition/no-binding", + "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-category", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-implements", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-security-category", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "http://hl7.org/fhir/tools/StructureDefinition/obligation-profile", + "http://hl7.org/fhir/StructureDefinition/obligation-profile", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status-reason", + ExtensionDefinitions.EXT_SUMMARY/*, + ExtensionDefinitions.EXT_OBLIGATION_CORE, + ExtensionDefinitions.EXT_OBLIGATION_TOOLS*/); + + public static final List DEFAULT_INHERITED_ED_URLS = Arrays.asList( + "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction", + "http://hl7.org/fhir/StructureDefinition/questionnaire-referenceProfile", + "http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource", + "http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption", + + "http://hl7.org/fhir/StructureDefinition/mimeType"); + + /** + * These extensions are ignored when found in differentials + */ + public static final List NON_OVERRIDING_ED_URLS = Arrays.asList( + "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", + ExtensionDefinitions.EXT_JSON_NAME, ExtensionDefinitions.EXT_JSON_NAME_DEPRECATED, + "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix", + "http://hl7.org/fhir/tools/StructureDefinition/json-empty-behavior", + "http://hl7.org/fhir/tools/StructureDefinition/json-nullable", + "http://hl7.org/fhir/tools/StructureDefinition/json-primitive-choice", + "http://hl7.org/fhir/tools/StructureDefinition/json-property-key", + "http://hl7.org/fhir/tools/StructureDefinition/type-specifier", + "http://hl7.org/fhir/tools/StructureDefinition/xml-choice-group", + ExtensionDefinitions.EXT_XML_NAMESPACE, ExtensionDefinitions.EXT_XML_NAMESPACE_DEPRECATED, + ExtensionDefinitions.EXT_XML_NAME, ExtensionDefinitions.EXT_XML_NAME_DEPRECATED, + "http://hl7.org/fhir/StructureDefinition/elementdefinition-defaulttype" + ); + + /** + * When these extensions are found, they override whatever is set on the ancestor element + */ + public static final List OVERRIDING_ED_URLS = Arrays.asList( + "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-date-format", + ExtensionDefinitions.EXT_DATE_RULES, + "http://hl7.org/fhir/StructureDefinition/designNote", + "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits", + "http://hl7.org/fhir/StructureDefinition/elementdefinition-question", + "http://hl7.org/fhir/StructureDefinition/entryFormat", + "http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces", + "http://hl7.org/fhir/StructureDefinition/maxSize", + "http://hl7.org/fhir/StructureDefinition/minLength", + "http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation", + "http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory", + "http://hl7.org/fhir/StructureDefinition/questionnaire-hidden", + "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "http://hl7.org/fhir/StructureDefinition/questionnaire-signatureRequired", + "http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue", + "http://hl7.org/fhir/StructureDefinition/questionnaire-supportLink", + "http://hl7.org/fhir/StructureDefinition/questionnaire-unit", + "http://hl7.org/fhir/StructureDefinition/questionnaire-unitValueSet", + "http://hl7.org/fhir/StructureDefinition/questionnaire-usageMode", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name" + ); + + public IWorkerContext getContext() { + return this.context; + } + + public static class SourcedChildDefinitions { + private StructureDefinition source; + private List list; + private String path; + public SourcedChildDefinitions(StructureDefinition source, List list) { + super(); + this.source = source; + this.list = list; + } + public SourcedChildDefinitions(StructureDefinition source, List list, String path) { + super(); + this.source = source; + this.list = list; + this.path = path; + } + public StructureDefinition getSource() { + return source; + } + public List getList() { + return list; + } + public String getPath() { + return path; + } + + } + + public class ElementDefinitionResolution { + + private StructureDefinition source; + private ElementDefinition element; + + public ElementDefinitionResolution(StructureDefinition source, ElementDefinition element) { + this.source = source; + this.element = element; + } + + public StructureDefinition getSource() { + return source; + } + + public ElementDefinition getElement() { + return element; + } + + } + + public static class ElementChoiceGroup { + private Row row; + private String name; + private boolean mandatory; + private List elements = new ArrayList<>(); + + public ElementChoiceGroup(String name, boolean mandatory) { + super(); + this.name = name; + this.mandatory = mandatory; + } + public Row getRow() { + return row; + } + public List getElements() { + return elements; + } + public void setRow(Row row) { + this.row = row; + } + public String getName() { + return name; + } + public boolean isMandatory() { + return mandatory; + } + public void setMandatory(boolean mandatory) { + this.mandatory = mandatory; + } + + } + + private static final int MAX_RECURSION_LIMIT = 10; + + public static class ExtensionContext { + + private ElementDefinition element; + private StructureDefinition defn; + + public ExtensionContext(StructureDefinition ext, ElementDefinition ed) { + this.defn = ext; + this.element = ed; + } + + public ElementDefinition getElement() { + return element; + } + + public StructureDefinition getDefn() { + return defn; + } + + public String getUrl() { + if (element == defn.getSnapshot().getElement().get(0)) + return defn.getUrl(); + else + return element.getSliceName(); + } + + public ElementDefinition getExtensionValueDefinition() { + int i = defn.getSnapshot().getElement().indexOf(element)+1; + while (i < defn.getSnapshot().getElement().size()) { + ElementDefinition ed = defn.getSnapshot().getElement().get(i); + if (ed.getPath().equals(element.getPath())) + return null; + if (ed.getPath().startsWith(element.getPath()+".value") && !ed.hasSlicing()) + return ed; + i++; + } + return null; + } + } + + private static final boolean COPY_BINDING_EXTENSIONS = false; + private static final boolean DONT_DO_THIS = false; + + private boolean debug; + // note that ProfileUtilities are used re-entrantly internally, so nothing with process state can be here + private final IWorkerContext context; + private FHIRPathEngine fpe; + private List messages = new ArrayList(); + private List snapshotStack = new ArrayList(); + private ProfileKnowledgeProvider pkp; +// private boolean igmode; + private ValidationOptions terminologyServiceOptions = new ValidationOptions(FhirPublication.R5); + private boolean newSlicingProcessing; + private String defWebRoot; + private boolean autoFixSliceNames; + private XVerExtensionManager xver; + private boolean wantFixDifferentialFirstElementType; + private Set masterSourceFileNames; + private Set localFileNames; + private Map childMapCache = new HashMap<>(); + private AllowUnknownProfile allowUnknownProfile = AllowUnknownProfile.ALL_TYPES; + private MappingMergeModeOption mappingMergeMode = MappingMergeModeOption.APPEND; + private boolean forPublication; + private List obligationProfiles = new ArrayList<>(); + private boolean wantThrowExceptions; + private List suppressedMappings= new ArrayList<>(); + @Getter @Setter private Parameters parameters; + + public ProfileUtilities(IWorkerContext context, List messages, ProfileKnowledgeProvider pkp, FHIRPathEngine fpe) { + super(); + this.context = context; + if (messages != null) { + this.messages = messages; + } else { + wantThrowExceptions = true; + } + this.pkp = pkp; + + this.fpe = fpe; + if (context != null && this.fpe == null) { + this.fpe = new FHIRPathEngine(context, this); + } + if (context != null) { + parameters = context.getExpansionParameters(); + } + } + + public ProfileUtilities(IWorkerContext context, List messages, ProfileKnowledgeProvider pkp) { + super(); + this.context = context; + if (messages != null) { + this.messages = messages; + } else { + wantThrowExceptions = true; + } + this.pkp = pkp; + if (context != null) { + this.fpe = new FHIRPathEngine(context, this); + } + + if (context != null) { + parameters = context.getExpansionParameters(); + } + } + + public boolean isWantFixDifferentialFirstElementType() { + return wantFixDifferentialFirstElementType; + } + + public void setWantFixDifferentialFirstElementType(boolean wantFixDifferentialFirstElementType) { + this.wantFixDifferentialFirstElementType = wantFixDifferentialFirstElementType; + } + + public boolean isAutoFixSliceNames() { + return autoFixSliceNames; + } + + public ProfileUtilities setAutoFixSliceNames(boolean autoFixSliceNames) { + this.autoFixSliceNames = autoFixSliceNames; + return this; + } + + public SourcedChildDefinitions getChildMap(StructureDefinition profile, ElementDefinition element, boolean chaseTypes) throws DefinitionException { + return getChildMap(profile, element, chaseTypes, null); + } + public SourcedChildDefinitions getChildMap(StructureDefinition profile, ElementDefinition element, boolean chaseTypes, String type) throws DefinitionException { + String cacheKey = "cm."+profile.getVersionedUrl()+"#"+(element.hasId() ? element.getId() : element.getPath())+"."+chaseTypes; + if (childMapCache.containsKey(cacheKey)) { + return childMapCache.get(cacheKey); + } + StructureDefinition src = profile; + List res = new ArrayList(); + List elements = profile.getSnapshot().getElement(); + int iOffs = elements.indexOf(element) + 1; + boolean walksIntoElement = elements.size() > iOffs && elements.get(iOffs).getPath().startsWith(element.getPath()); + if (element.getContentReference() != null && !walksIntoElement) { + List list = null; + String id = null; + if (element.getContentReference().startsWith("#")) { + // internal reference + id = element.getContentReference().substring(1); + list = profile.getSnapshot().getElement(); + } else if (element.getContentReference().contains("#")) { + // external reference + String ref = element.getContentReference(); + StructureDefinition sd = findProfile(ref.substring(0, ref.indexOf("#")), profile); + if (sd == null) { + throw new DefinitionException("unable to process contentReference '"+element.getContentReference()+"' on element '"+element.getId()+"'"); + } + src = sd; + list = sd.getSnapshot().getElement(); + id = ref.substring(ref.indexOf("#")+1); + } else { + throw new DefinitionException("unable to process contentReference '"+element.getContentReference()+"' on element '"+element.getId()+"'"); + } + + for (ElementDefinition e : list) { + if (id.equals(e.getId())) + return getChildMap(src, e, true); + } + throw new DefinitionException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_NAME_REFERENCE__AT_PATH_, element.getContentReference(), element.getPath())); + + } else { + String path = element.getPath(); + for (int index = elements.indexOf(element) + 1; index < elements.size(); index++) { + ElementDefinition e = elements.get(index); + if (e.getPath().startsWith(path + ".")) { + // We only want direct children, not all descendants + if (!e.getPath().substring(path.length()+1).contains(".")) + res.add(e); + } else + break; + } + if (res.isEmpty() && chaseTypes) { + // we've got no in-line children. Some consumers of this routine will figure this out for themselves but most just want to walk into + // the type children. + src = null; + if (type != null) { + src = context.fetchTypeDefinition(type); + } else if (element.getType().isEmpty()) { + throw new DefinitionException("No defined children and no type information on element '"+element.getId()+"'"); + } else if (element.getType().size() > 1) { + // this is a problem. There's two separate but related issues + // the first is what's going on here - the profile has walked into an element without fixing the type + // this might be ok - maybe it's just going to constrain extensions for all types, though this is generally a bad idea + // but if that's all it's doing, we'll just pretend we have an element. Only, it's not really an element so that might + // blow up on us later in mystifying ways. We'll have to wear it though, because there's profiles out there that do this + // the second problem is whether this should be some common descendent of Element - I'm not clear about that + // left as a problem for the future. + // + // this is what the code was prior to 2025-08-27: + // throw new DefinitionException("No defined children and multiple possible types '"+element.typeSummary()+"' on element '"+element.getId()+"'"); + src = context.fetchTypeDefinition("Element"); + } else if (element.getType().get(0).getProfile().size() > 1) { + throw new DefinitionException("No defined children and multiple possible type profiles '"+element.typeSummary()+"' on element '"+element.getId()+"'"); + } else if (element.getType().get(0).hasProfile()) { + src = findProfile(element.getType().get(0).getProfile().get(0).getValue(), profile); + if (src == null) { + throw new DefinitionException("No defined children and unknown type profile '"+element.typeSummary()+"' on element '"+element.getId()+"'"); + } + } else { + src = context.fetchTypeDefinition(element.getType().get(0).getWorkingCode()); + if (src == null) { + throw new DefinitionException("No defined children and unknown type '"+element.typeSummary()+"' on element '"+element.getId()+"'"); + } + } + SourcedChildDefinitions scd = getChildMap(src, src.getSnapshot().getElementFirstRep(), false); + res = scd.list; + } + SourcedChildDefinitions result = new SourcedChildDefinitions(src, res); + childMapCache.put(cacheKey, result); + return result; + } + } + + + public List getSliceList(StructureDefinition profile, ElementDefinition element) throws DefinitionException { + if (!element.hasSlicing()) + throw new Error(context.formatMessage(I18nConstants.GETSLICELIST_SHOULD_ONLY_BE_CALLED_WHEN_THE_ELEMENT_HAS_SLICING)); + + List res = new ArrayList(); + List elements = profile.getSnapshot().getElement(); + String path = element.getPath(); + int start = findElementIndex(elements, element); + for (int index = start + 1; index < elements.size(); index++) { + ElementDefinition e = elements.get(index); + if (e.getPath().startsWith(path + ".") || e.getPath().equals(path)) { + // We want elements with the same path (until we hit an element that doesn't start with the same path) + if (e.getPath().equals(element.getPath())) + res.add(e); + } else + break; + } + return res; + } + + + private int findElementIndex(List elements, ElementDefinition element) { + int res = elements.indexOf(element); + if (res == -1) { + for (int i = 0; i < elements.size(); i++) { + Element t = elements.get(i); + if (t.getId().equals(element.getId())) { + res = i; + } + } + } + return res; + } + + /** + * Given a Structure, navigate to the element given by the path and return the direct children of that element + * + * @param profile The structure to navigate into + * @param path The path of the element within the structure to get the children for + * @return A List containing the element children (all of them are Elements) + */ + public List getChildList(StructureDefinition profile, String path, String id) { + return getChildList(profile, path, id, false); + } + + public List getChildList(StructureDefinition profile, String path, String id, boolean diff) { + return getChildList(profile, path, id, diff, false); + } + + public List getChildList(StructureDefinition profile, String path, String id, boolean diff, boolean refs) { + List res = new ArrayList(); + + boolean capturing = id==null; + if (id==null && !path.contains(".")) + capturing = true; + + List list = diff ? profile.getDifferential().getElement() : profile.getSnapshot().getElement(); + for (ElementDefinition e : list) { + if (e == null) + throw new Error(context.formatMessage(I18nConstants.ELEMENT__NULL_, profile.getUrl())); +// if (e.getId() == null) // this is sort of true, but in some corner cases it's not, and in those cases, we don't care +// throw new Error(context.formatMessage(I18nConstants.ELEMENT_ID__NULL__ON_, e.toString(), profile.getUrl())); + + if (!capturing && id!=null && e.getId().equals(id)) { + capturing = true; + } + + // If our element is a slice, stop capturing children as soon as we see the next slice + if (capturing && e.hasId() && id!= null && !e.getId().equals(id) && e.getPath().equals(path)) + break; + + if (capturing) { + String p = e.getPath(); + + if (refs && !Utilities.noString(e.getContentReference()) && path.startsWith(p)) { + if (path.length() > p.length()) { + return getChildList(profile, e.getContentReference()+"."+path.substring(p.length()+1), null, diff); + } else if (e.getContentReference().startsWith("#")) { + return getChildList(profile, e.getContentReference().substring(1), null, diff); + } else if (e.getContentReference().contains("#")) { + String url = e.getContentReference().substring(0, e.getContentReference().indexOf("#")); + StructureDefinition sd = findProfile(url, profile); + if (sd == null) { + throw new DefinitionException("Unable to find Structure "+url); + } + return getChildList(sd, e.getContentReference().substring(e.getContentReference().indexOf("#")+1), null, diff); + } else { + return getChildList(profile, e.getContentReference(), null, diff); + } + + } else if (p.startsWith(path+".") && !p.equals(path)) { + String tail = p.substring(path.length()+1); + if (!tail.contains(".")) { + res.add(e); + } + } + } + } + + return res; + } + + public List getChildList(StructureDefinition structure, ElementDefinition element, boolean diff, boolean refs) { + return getChildList(structure, element.getPath(), element.getId(), diff, refs); + } + + public List getChildList(StructureDefinition structure, ElementDefinition element, boolean diff) { + return getChildList(structure, element.getPath(), element.getId(), diff); + } + + public List getChildList(StructureDefinition structure, ElementDefinition element) { + if (element.hasContentReference()) { + ElementDefinition target = element; + for (ElementDefinition t : structure.getSnapshot().getElement()) { + if (t.getId().equals(element.getContentReference().substring(1))) { + target = t; + } + } + return getChildList(structure, target.getPath(), target.getId(), false); + } else { + return getChildList(structure, element.getPath(), element.getId(), false); + } + } + + /** + * Given a base (snapshot) profile structure, and a differential profile, generate a new snapshot profile + * + * @param base - the base structure on which the differential will be applied + * @param derived - the differential to apply to the base + * @param url - where the base has relative urls for profile references, these need to be converted to absolutes by prepending this URL (e.g. the canonical URL) + * @param webUrl - where the base has relative urls in markdown, these need to be converted to absolutes by prepending this URL (this is not the same as the canonical URL) + * @return + * @throws FHIRException + * @throws DefinitionException + * @throws Exception + */ + public void generateSnapshot(StructureDefinition base, StructureDefinition derived, String url, String webUrl, String profileName) throws DefinitionException, FHIRException { + if (base == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.NO_BASE_PROFILE_PROVIDED)); + } + if (derived == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.NO_DERIVED_STRUCTURE_PROVIDED)); + } + checkNotGenerating(base, "Base for generating a snapshot for the profile "+derived.getUrl()); + checkNotGenerating(derived, "Focus for generating a snapshot"); + + if (!base.hasType()) { + throw new DefinitionException(context.formatMessage(I18nConstants.BASE_PROFILE__HAS_NO_TYPE, base.getUrl())); + } + if (!derived.hasType()) { + throw new DefinitionException(context.formatMessage(I18nConstants.DERIVED_PROFILE__HAS_NO_TYPE, derived.getUrl())); + } + if (!derived.hasDerivation()) { + throw new DefinitionException(context.formatMessage(I18nConstants.DERIVED_PROFILE__HAS_NO_DERIVATION_VALUE_AND_SO_CANT_BE_PROCESSED, derived.getUrl())); + } + if (!base.getType().equals(derived.getType()) && derived.getDerivation() == TypeDerivationRule.CONSTRAINT) { + throw new DefinitionException(context.formatMessage(I18nConstants.BASE__DERIVED_PROFILES_HAVE_DIFFERENT_TYPES____VS___, base.getUrl(), base.getType(), derived.getUrl(), derived.getType())); + } + if (!base.hasSnapshot()) { + StructureDefinition sdb = findProfile(base.getBaseDefinition(), base); + if (sdb == null) + throw new DefinitionException(context.formatMessage(I18nConstants.UNABLE_TO_FIND_BASE__FOR_, base.getBaseDefinition(), base.getUrl())); + checkNotGenerating(sdb, "an extension base"); + generateSnapshot(sdb, base, base.getUrl(), (sdb.hasWebPath()) ? Utilities.extractBaseUrl(sdb.getWebPath()) : webUrl, base.getName()); + } + fixTypeOfResourceId(base); + if (base.hasExtension(ExtensionDefinitions.EXT_TYPE_PARAMETER)) { + checkTypeParameters(base, derived); + } + + if (snapshotStack.contains(derived.getUrl())) { + throw new DefinitionException(context.formatMessage(I18nConstants.CIRCULAR_SNAPSHOT_REFERENCES_DETECTED_CANNOT_GENERATE_SNAPSHOT_STACK__, snapshotStack.toString())); + } + derived.setGeneratingSnapshot(true); + snapshotStack.add(derived.getUrl()); + boolean oldCopyUserData = Base.isCopyUserData(); + Base.setCopyUserData(true); + try { + + if (!Utilities.noString(webUrl) && !webUrl.endsWith("/")) + webUrl = webUrl + '/'; + + if (defWebRoot == null) + defWebRoot = webUrl; + derived.setSnapshot(new StructureDefinitionSnapshotComponent()); + + try { + checkDifferential(derived.getDifferential().getElement(), derived.getTypeName(), derived.getUrl()); + checkDifferentialBaseType(derived); + + log.debug("Differential: "); + int debugPadding = 0; + for (ElementDefinition ed : derived.getDifferential().getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPadding), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + debugPadding++; + } + log.debug("Snapshot: "); + debugPadding = 0; + for (ElementDefinition ed : base.getSnapshot().getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPadding), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + debugPadding++; + } + + + copyInheritedExtensions(base, derived, webUrl); + + findInheritedObligationProfiles(derived); + // so we have two lists - the base list, and the differential list + // the differential list is only allowed to include things that are in the base list, but + // is allowed to include them multiple times - thereby slicing them + + // our approach is to walk through the base list, and see whether the differential + // says anything about them. + // we need a diff cursor because we can only look ahead, in the bound scoped by longer paths + + + for (ElementDefinition e : derived.getDifferential().getElement()) + e.clearUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT); + + // we actually delegate the work to a subroutine so we can re-enter it with a different cursors + StructureDefinitionDifferentialComponent diff = cloneDiff(derived.getDifferential()); // we make a copy here because we're sometimes going to hack the differential while processing it. Have to migrate user data back afterwards + new SnapshotGenerationPreProcessor(this).process(diff, derived); + + StructureDefinitionSnapshotComponent baseSnapshot = base.getSnapshot(); + if (derived.getDerivation() == TypeDerivationRule.SPECIALIZATION) { + String derivedType = derived.getTypeName(); + + baseSnapshot = cloneSnapshot(baseSnapshot, base.getTypeName(), derivedType); + } + // if (derived.getId().equals("2.16.840.1.113883.10.20.22.2.1.1")) { + // debug = true; + // } + + MappingAssistant mappingDetails = new MappingAssistant(mappingMergeMode, base, derived, context.getVersion(), suppressedMappings); + + ProfilePathProcessor.processPaths(this, base, derived, url, webUrl, diff, baseSnapshot, mappingDetails); + + checkGroupConstraints(derived); + if (derived.getDerivation() == TypeDerivationRule.SPECIALIZATION) { + int i = 0; + for (ElementDefinition e : diff.getElement()) { + if (!e.hasUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT) && e.getPath().contains(".")) { + ElementDefinition existing = getElementInCurrentContext(e.getPath(), derived.getSnapshot().getElement()); + if (existing != null) { + updateFromDefinition(existing, e, profileName, false, url, base, derived, "StructureDefinition.differential.element["+i+"]", mappingDetails, false); + } else { + ElementDefinition outcome = updateURLs(url, webUrl, e.copy(), true); + e.setUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT, outcome); + markExtensions(outcome, true, derived); + derived.getSnapshot().addElement(outcome); + if (walksInto(diff.getElement(), e)) { + if (e.getType().size() > 1) { + throw new DefinitionException("Unsupported scenario: specialization walks into multiple types at "+e.getId()); + } else { + addInheritedElementsForSpecialization(derived.getSnapshot(), outcome, outcome.getTypeFirstRep().getWorkingCode(), outcome.getPath(), url, webUrl); + } + } + } + } + i++; + } + } + + for (int i = 0; i < derived.getSnapshot().getElement().size(); i++) { + ElementDefinition ed = derived.getSnapshot().getElement().get(i); + if (ed.getType().size() > 1) { + List toRemove = new ArrayList(); + for (TypeRefComponent tr : ed.getType()) { + ElementDefinition typeSlice = findTypeSlice(derived.getSnapshot().getElement(), i, ed.getPath(), tr.getWorkingCode()); + if (typeSlice != null && typeSlice.prohibited()) { + toRemove.add(tr); + } + } + ed.getType().removeAll(toRemove); + } + } + if (derived.getKind() != StructureDefinitionKind.LOGICAL && !derived.getSnapshot().getElementFirstRep().getType().isEmpty()) + throw new Error(context.formatMessage(I18nConstants.TYPE_ON_FIRST_SNAPSHOT_ELEMENT_FOR__IN__FROM_, derived.getSnapshot().getElementFirstRep().getPath(), derived.getUrl(), base.getUrl())); + mappingDetails.update(); + + setIds(derived, false); + + log.debug("Differential: "); + int debugPad = 0; + for (ElementDefinition ed : derived.getDifferential().getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPad), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)); + debugPad++; + } + log.debug("Diff (processed): "); + debugPad = 0; + for (ElementDefinition ed : diff.getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPad), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+ + " -> "+(destInfo(ed, derived.getSnapshot().getElement()))); + debugPad++; + } + log.debug("Snapshot: "); + debugPad = 0; + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPad), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + debugPad++; + } + + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + //Check that all differential elements have a corresponding snapshot element + int ce = 0; + int i = 0; + for (ElementDefinition e : diff.getElement()) { + if (!e.hasUserData(UserDataNames.SNAPSHOT_diff_source)) { + // was injected during preprocessing - this is ok + } else { + if (e.hasUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS)) + ((Base) e.getUserData(UserDataNames.SNAPSHOT_diff_source)).setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, e.getUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS)); + if (e.hasUserData(UserDataNames.SNAPSHOT_DERIVATION_POINTER)) + ((Base) e.getUserData(UserDataNames.SNAPSHOT_diff_source)).setUserData(UserDataNames.SNAPSHOT_DERIVATION_POINTER, e.getUserData(UserDataNames.SNAPSHOT_DERIVATION_POINTER)); + } + if (!e.hasUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT)) { + b.append(e.hasId() ? "id: "+e.getId() : "path: "+e.getPath()); + ce++; + if (e.hasId()) { + String msg = "No match found for "+e.getId()+" in the generated snapshot: check that the path and definitions are legal in the differential (including order)"; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, "StructureDefinition.differential.element["+i+"]", msg, ValidationMessage.IssueSeverity.ERROR)); + } + } else { + ElementDefinition sed = (ElementDefinition) e.getUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT); + sed.setUserData(UserDataNames.SNAPSHOT_DERIVATION_DIFF, e); // note: this means diff/snapshot are cross-linked + } + i++; + } + if (!Utilities.noString(b.toString())) { + String msg = "The profile "+derived.getUrl()+" has "+ce+" "+Utilities.pluralize("element", ce)+" in the differential ("+b.toString()+") that don't have a matching element in the snapshot: check that the path and definitions are legal in the differential (including order)"; + + log.debug("Error in snapshot generation: "+msg); + + log.debug("Differential: "); + for (ElementDefinition ed : derived.getDifferential().getElement()) + log.debug(" "+ed.getId()+" = "+ed.getPath()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + log.debug("Snapshot: "); + for (ElementDefinition ed : derived.getSnapshot().getElement()) + log.debug(" "+ed.getId()+" = "+ed.getPath()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + + + handleError(url, msg); + } + // hack around a problem in R4 definitions (somewhere?) + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + for (ElementDefinitionMappingComponent mm : ed.getMapping()) { + if (mm.hasMap()) { + mm.setMap(mm.getMap().trim()); + } + } + for (ElementDefinitionConstraintComponent s : ed.getConstraint()) { + if (s.hasSource()) { + String ref = s.getSource(); + if (!Utilities.isAbsoluteUrl(ref)) { + if (ref.contains(".")) { + s.setSource("http://hl7.org/fhir/StructureDefinition/"+ref.substring(0, ref.indexOf("."))+"#"+ref); + } else { + s.setSource("http://hl7.org/fhir/StructureDefinition/"+ref); + } + } + } + } + } + if (derived.getDerivation() == TypeDerivationRule.SPECIALIZATION) { + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + if (!ed.hasBase()) { + ed.getBase().setPath(ed.getPath()).setMin(ed.getMin()).setMax(ed.getMax()); + } + } + } + // check slicing is ok while we're at it. and while we're doing this. update the minimum count if we need to + String tn = derived.getType(); + if (tn.contains("/")) { + tn = tn.substring(tn.lastIndexOf("/")+1); + } + Map slices = new HashMap<>(); + i = 0; + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + if (ed.hasSlicing()) { + slices.put(ed.getPath(), new ElementDefinitionCounter(ed, i)); + } else { + Set toRemove = new HashSet<>(); + for (String s : slices.keySet()) { + if (Utilities.charCount(s, '.') >= Utilities.charCount(ed.getPath(), '.') && !s.equals(ed.getPath())) { + toRemove.add(s); + } + } + for (String s : toRemove) { + ElementDefinitionCounter slice = slices.get(s); + int count = slice.checkMin(); + boolean repeats = !"1".equals(slice.getFocus().getBase().getMax()); // type slicing if repeats = 1 + if (count > -1 && repeats) { + if (slice.getFocus().hasUserData(UserDataNames.SNAPSHOT_auto_added_slicing)) { + slice.getFocus().setMin(count); + } else { + String msg = "The slice definition for "+slice.getFocus().getId()+" has a minimum of "+slice.getFocus().getMin()+" but the slices add up to a minimum of "+count; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+slice.getIndex()+"]", msg, forPublication ? ValidationMessage.IssueSeverity.ERROR : ValidationMessage.IssueSeverity.INFORMATION).setIgnorableError(true)); + } + } + count = slice.checkMax(); + if (count > -1 && repeats) { + String msg = "The slice definition for "+slice.getFocus().getId()+" has a maximum of "+slice.getFocus().getMax()+" but the slices add up to a maximum of "+count+". Check that this is what is intended"; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+slice.getIndex()+"]", msg, ValidationMessage.IssueSeverity.INFORMATION)); + } + if (!slice.checkMinMax()) { + String msg = "The slice definition for "+slice.getFocus().getId()+" has a maximum of "+slice.getFocus().getMax()+" which is less than the minimum of "+slice.getFocus().getMin(); + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+slice.getIndex()+"]", msg, ValidationMessage.IssueSeverity.WARNING)); + } + slices.remove(s); + } + } + if (ed.getPath().contains(".") && !ed.getPath().startsWith(tn+".")) { + throw new Error("The element "+ed.getId()+" in the profile '"+derived.getVersionedUrl()+" doesn't have the right path (should start with "+tn+"."); + } + if (ed.hasSliceName() && !slices.containsKey(ed.getPath())) { + String msg = "The element "+ed.getId()+" launches straight into slicing without the slicing being set up properly first"; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+i+"]", msg, ValidationMessage.IssueSeverity.ERROR).setIgnorableError(true)); + } + if (ed.hasSliceName() && slices.containsKey(ed.getPath())) { + if (!slices.get(ed.getPath()).count(ed, ed.getSliceName())) { + String msg = "Duplicate slice name "+ed.getSliceName()+" on "+ed.getId()+" (["+i+"])"; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+i+"]", msg, ValidationMessage.IssueSeverity.ERROR).setIgnorableError(true)); + } + } + i++; + } + + i = 0; + // last, check for wrong profiles or target profiles, or unlabeled extensions + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + for (TypeRefComponent t : ed.getType()) { + for (UriType u : t.getProfile()) { + StructureDefinition sd = findProfile(u.getValue(), derived); + if (sd == null) { + if (makeXVer().matchingUrl(u.getValue()) && xver.status(u.getValue()) == XVerExtensionStatus.Valid) { + sd = xver.getDefinition(u.getValue()); + } + } + if (sd == null) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+i+"]", "The type of profile "+u.getValue()+" cannot be checked as the profile is not known", IssueSeverity.WARNING)); + } else { + String wt = t.getWorkingCode(); + if (ed.getPath().equals("Bundle.entry.response.outcome")) { + wt = "OperationOutcome"; + } + String tt = sd.getType(); + boolean elementProfile = u.hasExtension(ExtensionDefinitions.EXT_PROFILE_ELEMENT); + if (elementProfile) { + ElementDefinition edt = sd.getSnapshot().getElementById(u.getExtensionString(ExtensionDefinitions.EXT_PROFILE_ELEMENT)); + if (edt == null) { + handleError(url, "The profile "+u.getValue()+" has type "+sd.getType()+" which is not consistent with the stated type "+wt); + } else { + tt = edt.typeSummary(); + } + } + if (!tt.equals(wt)) { + boolean ok = !elementProfile && isCompatibleType(wt, sd); + if (!ok) { + handleError(url, "The profile "+u.getValue()+" has type "+sd.getType()+" which is not consistent with the stated type "+wt); + } + } + } + } + } + i++; + } + } catch (Exception e) { + log.error("Exception generating snapshot for "+derived.getVersionedUrl()+": " +e.getMessage()); + log.debug(e.getMessage(), e); + // if we had an exception generating the snapshot, make sure we don't leave any half generated snapshot behind + derived.setSnapshot(null); + derived.setGeneratingSnapshot(false); + throw e; + } + } finally { + Base.setCopyUserData(oldCopyUserData); + derived.setGeneratingSnapshot(false); + snapshotStack.remove(derived.getUrl()); + } + if (base.getVersion() != null) { + derived.getSnapshot().addExtension(ExtensionDefinitions.EXT_VERSION_BASE, new StringType(base.getVersion())); + } + derived.setGeneratedSnapshot(true); + //derived.setUserData(UserDataNames.SNAPSHOT_GENERATED, true); // used by the publisher + derived.setUserData(UserDataNames.SNAPSHOT_GENERATED_MESSAGES, messages); // used by the publisher + } + + + private String destInfo(ElementDefinition ed, List snapshot) { + ElementDefinition sed = (ElementDefinition) ed.getUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT); + if (sed == null) { + return "(null)"; + } else { + int index = snapshot.indexOf(sed); + return ""+index+" "+sed.getId(); + } + } + + private ElementDefinition findTypeSlice(List list, int i, String path, String typeCode) { + for (int j = i+1; j < list.size(); j++) { + ElementDefinition ed = list.get(j); + if (pathMatches(path, ed) && typeMatches(ed, typeCode)) { + return ed; + } + } + return null; + } + + private boolean pathMatches(String path, ElementDefinition ed) { + String p = ed.getPath(); + if (path.equals(p)) { + return true; + } + if (path.endsWith("[x]")) { // it should + path = path.substring(0, path.length()-3); + if (p.startsWith(path) && p.length() > path.length() && !p.substring(path.length()).contains(".")) { + return true; + } + } + return false; + } + + private boolean typeMatches(ElementDefinition ed, String typeCode) { + return ed.getType().size() == 1 && typeCode.equals(ed.getTypeFirstRep().getWorkingCode()); + } + + private void checkTypeParameters(StructureDefinition base, StructureDefinition derived) { + String bt = ExtensionUtilities.readStringSubExtension(base, ExtensionDefinitions.EXT_TYPE_PARAMETER, "type"); + if (!derived.hasExtension(ExtensionDefinitions.EXT_TYPE_PARAMETER)) { + throw new DefinitionException(context.formatMessage(I18nConstants.SD_TYPE_PARAMETER_MISSING, base.getVersionedUrl(), bt, derived.getVersionedUrl())); + } + String dt = ExtensionUtilities.readStringSubExtension(derived, ExtensionDefinitions.EXT_TYPE_PARAMETER, "type"); + StructureDefinition bsd = context.fetchTypeDefinition(bt); + StructureDefinition dsd = context.fetchTypeDefinition(dt); + if (bsd == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.SD_TYPE_PARAMETER_UNKNOWN, base.getVersionedUrl(), bt)); + } + if (dsd == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.SD_TYPE_PARAMETER_UNKNOWN, derived.getVersionedUrl(), dt)); + } + StructureDefinition t = dsd; + while (t != bsd && t != null) { + t = findProfile(t.getBaseDefinition(), t); + } + if (t == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.SD_TYPE_PARAMETER_INVALID, base.getVersionedUrl(), bt, derived.getVersionedUrl(), dt)); + } + } + + private XVerExtensionManager makeXVer() { + if (xver == null) { + xver = XVerExtensionManagerFactory.createExtensionManager(context); + } + return xver; + } + + private ElementDefinition getElementInCurrentContext(String path, List list) { + for (int i = list.size() -1; i >= 0; i--) { + ElementDefinition t = list.get(i); + if (t.getPath().equals(path)) { + return t; + } else if (!path.startsWith(head(t.getPath()))) { + return null; + } + } + return null; + } + + private String head(String path) { + return path.contains(".") ? path.substring(0, path.lastIndexOf(".")+1) : path; + } + + private void findInheritedObligationProfiles(StructureDefinition derived) { + List list = derived.getExtensionsByUrl(ExtensionDefinitions.EXT_OBLIGATION_INHERITS_NEW, ExtensionDefinitions.EXT_OBLIGATION_INHERITS_OLD); + for (Extension ext : list) { + StructureDefinition op = findProfile(ext.getValueCanonicalType().primitiveValue(), derived); + if (op != null && ExtensionUtilities.readBoolExtension(op, ExtensionDefinitions.EXT_OBLIGATION_PROFILE_FLAG_NEW, ExtensionDefinitions.EXT_OBLIGATION_PROFILE_FLAG_OLD)) { + if (derived.getBaseDefinitionNoVersion().equals(op.getBaseDefinitionNoVersion())) { + obligationProfiles.add(op); + } + } + } + } + + private void handleError(String url, String msg) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, url, msg, ValidationMessage.IssueSeverity.ERROR)); + } + + private void addMessage(ValidationMessage msg) { + messages.add(msg); + if (msg.getLevel() == IssueSeverity.ERROR && wantThrowExceptions) { + throw new DefinitionException(msg.getMessage()); + } + } + + private void copyInheritedExtensions(StructureDefinition base, StructureDefinition derived, String webUrl) { + for (Extension ext : base.getExtension()) { + if (!Utilities.existsInList(ext.getUrl(), NON_INHERITED_ED_URLS)) { + String action = getExtensionAction(ext.getUrl()); + if (!"ignore".equals(action)) { + boolean exists = derived.hasExtension(ext.getUrl()); + if ("add".equals(action) || !exists) { + Extension next = ext.copy(); + if (next.hasValueMarkdownType()) { + MarkdownType md = next.getValueMarkdownType(); + md.setValue(processRelativeUrls(md.getValue(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, false)); + } + derived.getExtension().add(next); + } else if ("overwrite".equals(action)) { + Extension oext = derived.getExtensionByUrl(ext.getUrl()); + Extension next = ext.copy(); + if (next.hasValueMarkdownType()) { + MarkdownType md = next.getValueMarkdownType(); + md.setValue(processRelativeUrls(md.getValue(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, false)); + } + oext.setValue(next.getValue()); + } + } + } + } + } + + private String getExtensionAction(String url) { + StructureDefinition sd = context.fetchResourceRaw(StructureDefinition.class, url); + if (sd != null && sd.hasExtension(ExtensionDefinitions.EXT_SNAPSHOT_BEHAVIOR)) { + return ExtensionUtilities.readStringExtension(sd, ExtensionDefinitions.EXT_SNAPSHOT_BEHAVIOR); + } + return "defer"; + } + + private void addInheritedElementsForSpecialization(StructureDefinitionSnapshotComponent snapshot, ElementDefinition focus, String type, String path, String url, String weburl) { + StructureDefinition sd = context.fetchTypeDefinition(type); + if (sd != null) { + // don't do this. should already be in snapshot ... addInheritedElementsForSpecialization(snapshot, focus, sd.getBaseDefinition(), path, url, weburl); + for (ElementDefinition ed : sd.getSnapshot().getElement()) { + if (ed.getPath().contains(".")) { + ElementDefinition outcome = updateURLs(url, weburl, ed.copy(), true); + outcome.setPath(outcome.getPath().replace(sd.getTypeName(), path)); + markExtensions(outcome, false, sd); + snapshot.getElement().add(outcome); + } else { + focus.getConstraint().addAll(ed.getConstraint()); + for (Extension ext : ed.getExtension()) { + if (!Utilities.existsInList(ext.getUrl(), NON_INHERITED_ED_URLS) && !focus.hasExtension(ext.getUrl())) { + focus.getExtension().add(markExtensionSource(ext.copy(), false, sd)); + } + } + } + } + } + } + + private boolean walksInto(List list, ElementDefinition ed) { + int i = list.indexOf(ed); + return (i < list.size() - 1) && list.get(i + 1).getPath().startsWith(ed.getPath()+"."); + } + + private void fixTypeOfResourceId(StructureDefinition base) { + if (base.getKind() == StructureDefinitionKind.RESOURCE && (base.getFhirVersion() == null || VersionUtilities.isR4Plus(base.getFhirVersion().toCode()))) { + fixTypeOfResourceId(base.getSnapshot().getElement()); + fixTypeOfResourceId(base.getDifferential().getElement()); + } + } + + private void fixTypeOfResourceId(List list) { + for (ElementDefinition ed : list) { + if (ed.hasBase() && ed.getBase().getPath().equals("Resource.id")) { + for (TypeRefComponent tr : ed.getType()) { + tr.setCode("http://hl7.org/fhirpath/System.String"); + tr.removeExtension(ExtensionDefinitions.EXT_FHIR_TYPE); + ExtensionUtilities.addUrlExtension(tr, ExtensionDefinitions.EXT_FHIR_TYPE, "id"); + } + } + } + } + + /** + * Check if derived has the correct base type + * + * Clear first element of differential under certain conditions. + * + * @param derived + * @throws Error + */ + private void checkDifferentialBaseType(StructureDefinition derived) throws Error { + if (derived.hasDifferential() && !derived.getDifferential().getElementFirstRep().getPath().contains(".") && !derived.getDifferential().getElementFirstRep().getType().isEmpty()) { + if (wantFixDifferentialFirstElementType && typeMatchesAncestor(derived.getDifferential().getElementFirstRep().getType(), derived.getBaseDefinitionNoVersion(), derived)) { + derived.getDifferential().getElementFirstRep().getType().clear(); + } else if (derived.getKind() != StructureDefinitionKind.LOGICAL) { + throw new Error(context.formatMessage(I18nConstants.TYPE_ON_FIRST_DIFFERENTIAL_ELEMENT)); + } + } + } + + private boolean typeMatchesAncestor(List type, String baseDefinition, StructureDefinition src) { + StructureDefinition sd = findProfile(baseDefinition, src); + return sd != null && type.size() == 1 && sd.getType().equals(type.get(0).getCode()); + } + + + private void checkGroupConstraints(StructureDefinition derived) { + List toRemove = new ArrayList<>(); +// List processed = new ArrayList<>(); + for (ElementDefinition element : derived.getSnapshot().getElement()) { + if (!toRemove.contains(element) && !element.hasSlicing() && !"0".equals(element.getMax())) { + checkForChildrenInGroup(derived, toRemove, element); + } + } + derived.getSnapshot().getElement().removeAll(toRemove); + } + + private void checkForChildrenInGroup(StructureDefinition derived, List toRemove, ElementDefinition element) throws Error { + List children = getChildren(derived, element); + List groups = readChoices(element, children); + for (ElementChoiceGroup group : groups) { + String mandated = null; + Set names = new HashSet<>(); + for (ElementDefinition ed : children) { + String name = tail(ed.getPath()); + if (names.contains(name)) { + throw new Error("huh?"); + } else { + names.add(name); + } + if (group.getElements().contains(name)) { + if (ed.getMin() == 1) { + if (mandated == null) { + mandated = name; + } else { + throw new Error("Error: there are two mandatory elements in "+derived.getUrl()+" when there can only be one: "+mandated+" and "+name); + } + } + } + } + if (mandated != null) { + for (ElementDefinition ed : children) { + String name = tail(ed.getPath()); + if (group.getElements().contains(name) && !mandated.equals(name)) { + ed.setMax("0"); + addAllChildren(derived, ed, toRemove); + } + } + } + } + } + + private List getChildren(StructureDefinition derived, ElementDefinition element) { + List elements = derived.getSnapshot().getElement(); + int index = elements.indexOf(element) + 1; + String path = element.getPath()+"."; + List list = new ArrayList<>(); + while (index < elements.size()) { + ElementDefinition e = elements.get(index); + String p = e.getPath(); + if (p.startsWith(path) && !e.hasSliceName()) { + if (!p.substring(path.length()).contains(".")) { + list.add(e); + } + index++; + } else { + break; + } + } + return list; + } + + private void addAllChildren(StructureDefinition derived, ElementDefinition element, List toRemove) { + List children = getChildList(derived, element); + for (ElementDefinition child : children) { + toRemove.add(child); + addAllChildren(derived, child, toRemove); + } + } + + /** + * Check that a differential is valid. + * @param elements + * @param type + * @param url + */ + private void checkDifferential(List elements, String type, String url) { + boolean first = true; + String t = urlTail(type); + for (ElementDefinition ed : elements) { + if (!ed.hasPath()) { + throw new FHIRException(context.formatMessage(I18nConstants.NO_PATH_ON_ELEMENT_IN_DIFFERENTIAL_IN_, url)); + } + String p = ed.getPath(); + if (p == null) { + throw new FHIRException(context.formatMessage(I18nConstants.NO_PATH_VALUE_ON_ELEMENT_IN_DIFFERENTIAL_IN_, url)); + } + if (!((first && t.equals(p)) || p.startsWith(t+"."))) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__MUST_START_WITH_, p, url, t, (first ? " (or be '"+t+"')" : ""))); + } + if (p.contains(".")) { + // Element names (the parts of a path delineated by the '.' character) SHALL NOT contain whitespace (i.e. Unicode characters marked as whitespace) + // Element names SHALL NOT contain the characters ,:;'"/|?!@#$%^&*()[]{} + // Element names SHOULD not contain non-ASCII characters + // Element names SHALL NOT exceed 64 characters in length + String[] pl = p.split("\\."); + for (String pp : pl) { + if (pp.length() < 1) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__NAME_PORTION_MISING_, p, url)); + } + if (pp.length() > 64) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__NAME_PORTION_EXCEEDS_64_CHARS_IN_LENGTH, p, url)); + } + for (char ch : pp.toCharArray()) { + if (Utilities.isWhitespace(ch)) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__NO_UNICODE_WHITESPACE, p, url)); + } + if (Utilities.existsInList(ch, ',', ':', ';', '\'', '"', '/', '|', '?', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '{', '}')) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__ILLEGAL_CHARACTER_, p, url, ch)); + } + if (ch < ' ' || ch > 'z') { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__ILLEGAL_CHARACTER_, p, url, ch)); + } + } + if (pp.contains("[") || pp.contains("]")) { + if (!pp.endsWith("[x]") || (pp.substring(0, pp.length()-3).contains("[") || (pp.substring(0, pp.length()-3).contains("]")))) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__ILLEGAL_CHARACTERS_, p, url)); + } + } + } + } + } + } + + + private boolean isCompatibleType(String base, StructureDefinition sdt) { + StructureDefinition sdb = context.fetchTypeDefinition(base); + if (sdb.getType().equals(sdt.getType())) { + return true; + } + StructureDefinition sd = context.fetchTypeDefinition(sdt.getType()); + while (sd != null) { + if (sd.getType().equals(sdb.getType())) { + return true; + } + if (sd.getUrl().equals(sdb.getUrl())) { + return true; + } + sd = findProfile(sd.getBaseDefinition(), sd); + } + return false; + } + + + private StructureDefinitionDifferentialComponent cloneDiff(StructureDefinitionDifferentialComponent source) { + StructureDefinitionDifferentialComponent diff = new StructureDefinitionDifferentialComponent(); + for (ElementDefinition sed : source.getElement()) { + ElementDefinition ted = sed.copy(); + diff.getElement().add(ted); + ted.setUserData(UserDataNames.SNAPSHOT_diff_source, sed); + } + return diff; + } + + private StructureDefinitionSnapshotComponent cloneSnapshot(StructureDefinitionSnapshotComponent source, String baseType, String derivedType) { + StructureDefinitionSnapshotComponent diff = new StructureDefinitionSnapshotComponent(); + for (ElementDefinition sed : source.getElement()) { + ElementDefinition ted = sed.copy(); + ted.setId(ted.getId().replaceFirst(baseType,derivedType)); + ted.setPath(ted.getPath().replaceFirst(baseType,derivedType)); + diff.getElement().add(ted); + } + return diff; + } + + private String constraintSummary(ElementDefinition ed) { + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + if (ed.hasPattern()) + b.append("pattern="+ed.getPattern().fhirType()); + if (ed.hasFixed()) + b.append("fixed="+ed.getFixed().fhirType()); + if (ed.hasConstraint()) + b.append("constraints="+ed.getConstraint().size()); + return b.toString(); + } + + + private String sliceSummary(ElementDefinition ed) { + if (!ed.hasSlicing() && !ed.hasSliceName()) + return ""; + if (ed.hasSliceName()) + return " (slicename = "+ed.getSliceName()+")"; + + StringBuilder b = new StringBuilder(); + boolean first = true; + for (ElementDefinitionSlicingDiscriminatorComponent d : ed.getSlicing().getDiscriminator()) { + if (first) + first = false; + else + b.append("|"); + b.append(d.getPath()); + } + return " (slicing by "+b.toString()+")"; + } + + +// private String typeSummary(ElementDefinition ed) { +// StringBuilder b = new StringBuilder(); +// boolean first = true; +// for (TypeRefComponent tr : ed.getType()) { +// if (first) +// first = false; +// else +// b.append("|"); +// b.append(tr.getWorkingCode()); +// } +// return b.toString(); +// } + + private String typeSummaryWithProfile(ElementDefinition ed) { + StringBuilder b = new StringBuilder(); + boolean first = true; + for (TypeRefComponent tr : ed.getType()) { + if (first) + first = false; + else + b.append("|"); + b.append(tr.getWorkingCode()); + if (tr.hasProfile()) { + b.append("("); + b.append(tr.getProfile()); + b.append(")"); + + } + } + return b.toString(); + } + + +// private boolean findMatchingElement(String id, List list) { +// for (ElementDefinition ed : list) { +// if (ed.getId().equals(id)) +// return true; +// if (id.endsWith("[x]")) { +// if (ed.getId().startsWith(id.substring(0, id.length()-3)) && !ed.getId().substring(id.length()-3).contains(".")) +// return true; +// } +// } +// return false; +// } + + protected ElementDefinition getById(List list, String baseId) { + for (ElementDefinition t : list) { + if (baseId.equals(t.getId())) { + return t; + } + } + return null; + } + + protected void updateConstraintSources(ElementDefinition ed, String url) { + for (ElementDefinitionConstraintComponent c : ed.getConstraint()) { + if (!c.hasSource()) { + c.setSource(url); + } + } + + } + + protected Set getListOfTypes(ElementDefinition e) { + Set result = new HashSet<>(); + for (TypeRefComponent t : e.getType()) { + result.add(t.getCode()); + } + return result; + } + + StructureDefinition getTypeForElement(StructureDefinitionDifferentialComponent differential, int diffCursor, String profileName, + List diffMatches, ElementDefinition outcome, String webUrl, StructureDefinition srcSD) { + if (outcome.getType().size() == 0) { + if (outcome.hasContentReference()) { + throw new Error(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_CONTENT_REFERENCE_IN_THIS_CONTEXT, outcome.getContentReference(), outcome.getId(), outcome.getPath())); + } else { + throw new DefinitionException(context.formatMessage(I18nConstants._HAS_NO_CHILDREN__AND_NO_TYPES_IN_PROFILE_, diffMatches.get(0).getPath(), differential.getElement().get(diffCursor).getPath(), profileName)); + } + } + if (outcome.getType().size() > 1) { + for (TypeRefComponent t : outcome.getType()) { + if (!t.getWorkingCode().equals("Reference")) + throw new DefinitionException(context.formatMessage(I18nConstants._HAS_CHILDREN__AND_MULTIPLE_TYPES__IN_PROFILE_, diffMatches.get(0).getPath(), differential.getElement().get(diffCursor).getPath(), typeCode(outcome.getType()), profileName)); + } + } + StructureDefinition dt = getProfileForDataType(outcome.getType().get(0), webUrl, srcSD); + if (dt == null) + throw new DefinitionException(context.formatMessage(I18nConstants.UNKNOWN_TYPE__AT_, outcome.getType().get(0), diffMatches.get(0).getPath())); + return dt; + } + + protected String sliceNames(List diffMatches) { + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + for (ElementDefinition ed : diffMatches) { + if (ed.hasSliceName()) { + b.append(ed.getSliceName()); + } + } + return b.toString(); + } + + protected boolean isMatchingType(StructureDefinition sd, List types, String inner) { + StructureDefinition tsd = sd; + while (tsd != null) { + for (TypeRefComponent tr : types) { + if (tsd.getUrl().startsWith("http://hl7.org/fhir/StructureDefinition") && tsd.getType().equals(tr.getCode())) { + return true; + } + if (inner == null && tsd.getUrl().equals(tr.getCode())) { + return true; + } + if (inner != null) { + ElementDefinition ed = null; + for (ElementDefinition t : tsd.getSnapshot().getElement()) { + if (inner.equals(t.getId())) { + ed = t; + } + } + if (ed != null) { + return isMatchingType(ed.getType(), types); + } + } + } + tsd = findProfile(tsd.getBaseDefinition(), tsd); + } + return false; + } + + private boolean isMatchingType(List test, List desired) { + for (TypeRefComponent t : test) { + for (TypeRefComponent d : desired) { + if (t.getCode().equals(d.getCode())) { + return true; + } + } + } + return false; + } + + protected boolean isValidType(TypeRefComponent t, ElementDefinition base) { + for (TypeRefComponent tr : base.getType()) { + if (tr.getCode().equals(t.getCode())) { + return true; + } + if (tr.getWorkingCode().equals(t.getCode())) { + log.error("Type error: use of a simple type \""+t.getCode()+"\" wrongly constraining "+base.getPath()); + return true; + } + } + return false; + } + + protected void checkNotGenerating(StructureDefinition sd, String role) { + if (sd.isGeneratingSnapshot()) { + throw new FHIRException(context.formatMessage(I18nConstants.ATTEMPT_TO_USE_A_SNAPSHOT_ON_PROFILE__AS__BEFORE_IT_IS_GENERATED, sd.getUrl(), role)); + } + } + + protected boolean isBaseResource(List types) { + if (types.isEmpty()) + return false; + for (TypeRefComponent type : types) { + String t = type.getWorkingCode(); + if ("Resource".equals(t)) + return false; + } + return true; + + } + + String determineFixedType(List diffMatches, String fixedType, int i) { + if (diffMatches.get(i).getType().size() == 0 && diffMatches.get(i).hasSliceName()) { + String n = tail(diffMatches.get(i).getPath()).replace("[x]", ""); + String t = diffMatches.get(i).getSliceName().substring(n.length()); + if (isDataType(t)) { + fixedType = t; + } else if (isPrimitive(Utilities.uncapitalize(t))) { + fixedType = Utilities.uncapitalize(t); + } else { + throw new FHIRException(context.formatMessage(I18nConstants.UNEXPECTED_CONDITION_IN_DIFFERENTIAL_TYPESLICETYPELISTSIZE__10_AND_IMPLICIT_SLICE_NAME_DOES_NOT_CONTAIN_A_VALID_TYPE__AT_, t, diffMatches.get(i).getPath(), diffMatches.get(i).getSliceName())); + } + } else if (diffMatches.get(i).getType().size() == 1) { + fixedType = diffMatches.get(i).getType().get(0).getCode(); + } else { + throw new FHIRException(context.formatMessage(I18nConstants.UNEXPECTED_CONDITION_IN_DIFFERENTIAL_TYPESLICETYPELISTSIZE__1_AT_, diffMatches.get(i).getPath(), diffMatches.get(i).getSliceName())); + } + return fixedType; + } + + + protected BaseTypeSlice chooseMatchingBaseSlice(List baseSlices, String type) { + for (BaseTypeSlice bs : baseSlices) { + if (bs.getType().equals(type)) { + return bs; + } + } + return null; + } + + + protected List findBaseSlices(StructureDefinitionSnapshotComponent list, int start) { + List res = new ArrayList<>(); + ElementDefinition base = list.getElement().get(start); + int i = start + 1; + while (i < list.getElement().size() && list.getElement().get(i).getPath().startsWith(base.getPath()+".")) { + i++; + }; + while (i < list.getElement().size() && list.getElement().get(i).getPath().equals(base.getPath()) && list.getElement().get(i).hasSliceName()) { + int s = i; + i++; + while (i < list.getElement().size() && list.getElement().get(i).getPath().startsWith(base.getPath()+".")) { + i++; + }; + res.add(new BaseTypeSlice(list.getElement().get(s), list.getElement().get(s).getTypeFirstRep().getCode(), s, i-1)); + } + return res; + } + + + protected String getWebUrl(StructureDefinition dt, String webUrl) { + if (dt.hasWebPath()) { + // this is a hack, but it works for now, since we don't have deep folders + String url = dt.getWebPath(); + int i = url.lastIndexOf("/"); + if (i < 1) { + return defWebRoot; + } else { + return url.substring(0, i+1); + } + } else { + return webUrl; + } + } + + protected String descED(List list, int index) { + return index >=0 && index < list.size() ? list.get(index).present() : "X"; + } + + + + protected String rootName(String cpath) { + String t = tail(cpath); + return t.replace("[x]", ""); + } + + + protected String determineTypeSlicePath(String path, String cpath) { + String headP = path.substring(0, path.lastIndexOf(".")); +// String tailP = path.substring(path.lastIndexOf(".")+1); + String tailC = cpath.substring(cpath.lastIndexOf(".")+1); + return headP+"."+tailC; + } + + + protected boolean isImplicitSlicing(ElementDefinition ed, String path) { + if (ed == null || ed.getPath() == null || path == null) + return false; + if (path.equals(ed.getPath())) + return false; + boolean ok = path.endsWith("[x]") && ed.getPath().startsWith(path.substring(0, path.length()-3)); + return ok; + } + + + protected boolean diffsConstrainTypes(List diffMatches, String cPath, List typeList) { +// if (diffMatches.size() < 2) + // return false; + String p = diffMatches.get(0).getPath(); + if (!p.endsWith("[x]") && !cPath.endsWith("[x]")) + return false; + typeList.clear(); + String rn = tail(cPath); + rn = rn.substring(0, rn.length()-3); + for (int i = 0; i < diffMatches.size(); i++) { + ElementDefinition ed = diffMatches.get(i); + String n = tail(ed.getPath()); + if (!n.startsWith(rn)) + return false; + String s = n.substring(rn.length()); + if (!s.contains(".")) { + if (ed.hasSliceName() && ed.getType().size() == 1) { + typeList.add(new TypeSlice(ed, ed.getTypeFirstRep().getWorkingCode())); + } else if (ed.hasSliceName() && ed.getType().size() == 0) { + if (isDataType(s)) { + typeList.add(new TypeSlice(ed, s)); + } else if (isPrimitive(Utilities.uncapitalize(s))) { + typeList.add(new TypeSlice(ed, Utilities.uncapitalize(s))); + } else { + String tn = ed.getSliceName().substring(n.length()); + if (isDataType(tn)) { + typeList.add(new TypeSlice(ed, tn)); + } else if (isPrimitive(Utilities.uncapitalize(tn))) { + typeList.add(new TypeSlice(ed, Utilities.uncapitalize(tn))); + } + } + } else if (!ed.hasSliceName() && !s.equals("[x]")) { + if (isDataType(s)) + typeList.add(new TypeSlice(ed, s)); + else if (isConstrainedDataType(s)) + typeList.add(new TypeSlice(ed, baseType(s))); + else if (isPrimitive(Utilities.uncapitalize(s))) + typeList.add(new TypeSlice(ed, Utilities.uncapitalize(s))); + } else if (!ed.hasSliceName() && s.equals("[x]")) + typeList.add(new TypeSlice(ed, null)); + } + } + return true; + } + + + protected List redirectorStack(List redirector, ElementDefinition outcome, String path) { + List result = new ArrayList(); + result.addAll(redirector); + result.add(new ElementRedirection(outcome, path)); + return result; + } + + + protected List getByTypeName(List type, String t) { + List res = new ArrayList(); + for (TypeRefComponent tr : type) { + if (t.equals(tr.getWorkingCode())) + res.add(tr); + } + return res; + } + + + protected void replaceFromContentReference(ElementDefinition outcome, ElementDefinition tgt) { + outcome.setContentReference(null); + outcome.getType().clear(); // though it should be clear anyway + outcome.getType().addAll(tgt.getType()); + } + + + protected boolean baseWalksInto(List elements, int cursor) { + if (cursor >= elements.size()) + return false; + String path = elements.get(cursor).getPath(); + String prevPath = elements.get(cursor - 1).getPath(); + return path.startsWith(prevPath + "."); + } + + + protected ElementDefinition fillOutFromBase(ElementDefinition profile, ElementDefinition usage) throws FHIRFormatError { + ElementDefinition res = profile.copy(); + if (!res.hasSliceName()) + res.setSliceName(usage.getSliceName()); + if (!res.hasLabel()) + res.setLabel(usage.getLabel()); + for (Coding c : usage.getCode()) + if (!res.hasCode(c)) + res.addCode(c); + + if (!res.hasDefinition()) + res.setDefinition(usage.getDefinition()); + if (!res.hasShort() && usage.hasShort()) + res.setShort(usage.getShort()); + if (!res.hasComment() && usage.hasComment()) + res.setComment(usage.getComment()); + if (!res.hasRequirements() && usage.hasRequirements()) + res.setRequirements(usage.getRequirements()); + for (StringType c : usage.getAlias()) + if (!res.hasAlias(c.getValue())) + res.addAlias(c.getValue()); + if (!res.hasMin() && usage.hasMin()) + res.setMin(usage.getMin()); + if (!res.hasMax() && usage.hasMax()) + res.setMax(usage.getMax()); + + if (!res.hasFixed() && usage.hasFixed()) + res.setFixed(usage.getFixed()); + if (!res.hasPattern() && usage.hasPattern()) + res.setPattern(usage.getPattern()); + if (!res.hasExample() && usage.hasExample()) + res.setExample(usage.getExample()); + if (!res.hasMinValue() && usage.hasMinValue()) + res.setMinValue(usage.getMinValue()); + if (!res.hasMaxValue() && usage.hasMaxValue()) + res.setMaxValue(usage.getMaxValue()); + if (!res.hasMaxLength() && usage.hasMaxLength()) + res.setMaxLength(usage.getMaxLength()); + if (!res.hasMustSupport() && usage.hasMustSupport()) + res.setMustSupport(usage.getMustSupport()); + if (!res.hasIsSummary() && usage.hasIsSummary()) + res.setIsSummary(usage.getIsSummary()); + if (!res.hasIsModifier() && usage.hasIsModifier()) + res.setIsModifier(usage.getIsModifier()); + if (!res.hasIsModifierReason() && usage.hasIsModifierReason()) + res.setIsModifierReason(usage.getIsModifierReason()); + if (!res.hasMustHaveValue() && usage.hasMustHaveValue()) + res.setMustHaveValue(usage.getMustHaveValue()); + if (!res.hasBinding() && usage.hasBinding()) + res.setBinding(usage.getBinding().copy()); + for (ElementDefinitionConstraintComponent c : usage.getConstraint()) + if (!res.hasConstraint(c.getKey())) + res.addConstraint(c); + for (Extension e : usage.getExtension()) { + if (!res.hasExtension(e.getUrl())) + res.addExtension(e.copy()); + } + + return res; + } + + + protected boolean checkExtensionDoco(ElementDefinition base) { + // see task 3970. For an extension, there's no point copying across all the underlying definitional stuff + boolean isExtension = (base.getPath().equals("Extension") || base.getPath().endsWith(".extension") || base.getPath().endsWith(".modifierExtension")) && + (!base.hasBase() || !"II.extension".equals(base.getBase().getPath())); + if (isExtension) { + base.setDefinition("An Extension"); + base.setShort("Extension"); + base.setCommentElement(null); + base.setRequirementsElement(null); + base.getAlias().clear(); + base.getMapping().clear(); + } + return isExtension; + } + + + protected String pathTail(List diffMatches, int i) { + + ElementDefinition d = diffMatches.get(i); + String s = d.getPath().contains(".") ? d.getPath().substring(d.getPath().lastIndexOf(".")+1) : d.getPath(); + return "."+s + (d.hasType() && d.getType().get(0).hasProfile() ? "["+d.getType().get(0).getProfile()+"]" : ""); + } + + + protected void markDerived(ElementDefinition outcome) { + for (ElementDefinitionConstraintComponent inv : outcome.getConstraint()) + inv.setUserData(UserDataNames.SNAPSHOT_IS_DERIVED, true); + } + + + static String summarizeSlicing(ElementDefinitionSlicingComponent slice) { + StringBuilder b = new StringBuilder(); + boolean first = true; + for (ElementDefinitionSlicingDiscriminatorComponent d : slice.getDiscriminator()) { + if (first) + first = false; + else + b.append(", "); + b.append(d.getType().toCode()+":"+d.getPath()); + } + b.append(" ("); + if (slice.hasOrdered()) + b.append(slice.getOrdered() ? "ordered" : "unordered"); + b.append("/"); + if (slice.hasRules()) + b.append(slice.getRules().toCode()); + b.append(")"); + if (slice.hasDescription()) { + b.append(" \""); + b.append(slice.getDescription()); + b.append("\""); + } + return b.toString(); + } + + + protected void updateFromBase(ElementDefinition derived, ElementDefinition base, String baseProfileUrl) { + derived.setUserData(UserDataNames.SNAPSHOT_BASE_MODEL, baseProfileUrl); + derived.setUserData(UserDataNames.SNAPSHOT_BASE_PATH, base.getPath()); + if (base.hasBase()) { + if (!derived.hasBase()) + derived.setBase(new ElementDefinitionBaseComponent()); + derived.getBase().setPath(base.getBase().getPath()); + derived.getBase().setMin(base.getBase().getMin()); + derived.getBase().setMax(base.getBase().getMax()); + } else { + if (!derived.hasBase()) + derived.setBase(new ElementDefinitionBaseComponent()); + derived.getBase().setPath(base.getPath()); + derived.getBase().setMin(base.getMin()); + derived.getBase().setMax(base.getMax()); + } + } + + + protected boolean pathStartsWith(String p1, String p2) { + return p1.startsWith(p2) || (p2.endsWith("[x].") && p1.startsWith(p2.substring(0, p2.length()-4))); + } + + private boolean pathMatches(String p1, String p2) { + return p1.equals(p2) || (p2.endsWith("[x]") && p1.startsWith(p2.substring(0, p2.length()-3)) && !p1.substring(p2.length()-3).contains(".")); + } + + + protected String fixedPathSource(String contextPath, String pathSimple, List redirector) { + if (contextPath == null) + return pathSimple; +// String ptail = pathSimple.substring(contextPath.length() + 1); + if (redirector != null && redirector.size() > 0) { + String ptail = null; + if (contextPath.length() >= pathSimple.length()) { + ptail = pathSimple.substring(pathSimple.indexOf(".")+1); + } else { + ptail = pathSimple.substring(contextPath.length()+1); + } + return redirector.get(redirector.size()-1).getPath()+"."+ptail; +// return contextPath+"."+tail(redirector.getPath())+"."+ptail.substring(ptail.indexOf(".")+1); + } else { + String ptail = pathSimple.substring(pathSimple.indexOf(".")+1); + return contextPath+"."+ptail; + } + } + + protected String fixedPathDest(String contextPath, String pathSimple, List redirector, String redirectSource) { + String s; + if (contextPath == null) + s = pathSimple; + else { + if (redirector != null && redirector.size() > 0) { + String ptail = null; + if (redirectSource.length() >= pathSimple.length()) { + ptail = pathSimple.substring(pathSimple.indexOf(".")+1); + } else { + ptail = pathSimple.substring(redirectSource.length()+1); + } + // ptail = ptail.substring(ptail.indexOf(".")+1); + s = contextPath+"."+/*tail(redirector.getPath())+"."+*/ptail; + } else { + String ptail = pathSimple.substring(pathSimple.indexOf(".")+1); + s = contextPath+"."+ptail; + } + } + return s; + } + + protected StructureDefinition getProfileForDataType(TypeRefComponent type, String webUrl, StructureDefinition src) { + StructureDefinition sd = null; + if (type.hasProfile()) { + sd = findProfile(type.getProfile().get(0).getValue(), src); + if (sd == null) { + if (makeXVer().matchingUrl(type.getProfile().get(0).getValue()) && xver.status(type.getProfile().get(0).getValue()) == XVerExtensionStatus.Valid) { + sd = xver.getDefinition(type.getProfile().get(0).getValue()); + generateSnapshot(context.fetchTypeDefinition("Extension"), sd, sd.getUrl(), webUrl, sd.getName()); + } + } + if (sd == null) { + log.debug("Failed to find referenced profile: " + type.getProfile()); + } + + } + if (sd == null) + sd = context.fetchTypeDefinition(type.getWorkingCode()); + if (sd == null) + log.warn("XX: failed to find profle for type: " + type.getWorkingCode()); // debug GJM + return sd; + } + + protected StructureDefinition getProfileForDataType(String type) { + StructureDefinition sd = context.fetchTypeDefinition(type); + if (sd == null) + log.warn("XX: failed to find profle for type: " + type); // debug GJM + return sd; + } + + static String typeCode(List types) { + StringBuilder b = new StringBuilder(); + boolean first = true; + for (TypeRefComponent type : types) { + if (first) first = false; else b.append(", "); + b.append(type.getWorkingCode()); + if (type.hasTargetProfile()) + b.append("{"+type.getTargetProfile()+"}"); + else if (type.hasProfile()) + b.append("{"+type.getProfile()+"}"); + } + return b.toString(); + } + + + protected boolean isDataType(List types) { + if (types.isEmpty()) + return false; + for (TypeRefComponent type : types) { + String t = type.getWorkingCode(); + if (!isDataType(t) && !isPrimitive(t)) + return false; + } + return true; + } + + + /** + * Finds internal references in an Element's Binding and StructureDefinition references (in TypeRef) and bases them on the given url + * @param url - the base url to use to turn internal references into absolute references + * @param element - the Element to update + * @return - the updated Element + */ + public ElementDefinition updateURLs(String url, String webUrl, ElementDefinition element, boolean processRelatives) { + if (element != null) { + ElementDefinition defn = element; + if (defn.hasBinding() && defn.getBinding().hasValueSet() && defn.getBinding().getValueSet().startsWith("#")) + defn.getBinding().setValueSet(url+defn.getBinding().getValueSet()); + for (TypeRefComponent t : defn.getType()) { + for (UriType u : t.getProfile()) { + if (u.getValue().startsWith("#")) + u.setValue(url+t.getProfile()); + } + for (UriType u : t.getTargetProfile()) { + if (u.getValue().startsWith("#")) + u.setValue(url+t.getTargetProfile()); + } + } + if (webUrl != null) { + // also, must touch up the markdown + if (element.hasDefinition()) { + element.setDefinition(processRelativeUrls(element.getDefinition(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + if (element.hasComment()) { + element.setComment(processRelativeUrls(element.getComment(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + if (element.hasRequirements()) { + element.setRequirements(processRelativeUrls(element.getRequirements(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + if (element.hasMeaningWhenMissing()) { + element.setMeaningWhenMissing(processRelativeUrls(element.getMeaningWhenMissing(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + if (element.hasBinding() && element.getBinding().hasDescription()) { + element.getBinding().setDescription(processRelativeUrls(element.getBinding().getDescription(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + for (Extension ext : element.getExtension()) { + if (ext.hasValueMarkdownType()) { + MarkdownType md = ext.getValueMarkdownType(); + md.setValue(processRelativeUrls(md.getValue(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + } + } + } + return element; + } + + + public static String processRelativeUrls(String markdown, String webUrl, String basePath, List resourceNames, Set baseFilenames, Set localFilenames, boolean processRelatives) { + if (markdown == null) { + return ""; + } + Set anchorRefs = new HashSet<>(); + markdown = markdown+" "; + + StringBuilder b = new StringBuilder(); + int i = 0; + int left = -1; + boolean processingLink = false; + int linkLeft = -1; + while (i < markdown.length()) { + if (markdown.charAt(i) == '[') { + if (left == -1) { + left = i; + } else { + left = Integer.MAX_VALUE; + } + } + if (markdown.charAt(i) == ']') { + if (left != -1 && left != Integer.MAX_VALUE && markdown.length() > i && markdown.charAt(i+1) != '(') { + String n = markdown.substring(left+1, i); + if (anchorRefs.contains(n) && markdown.length() > i && markdown.charAt(i+1) == ':') { + processingLink = true; + } else { + anchorRefs.add(n); + } + } + left = -1; + } + if (processingLink) { + char ch = markdown.charAt(i); + if (linkLeft == -1) { + if (ch != ']' && ch != ':' && !Character.isWhitespace(ch)) { + linkLeft = i; + } else { + b.append(ch); + } + } else { + if (Character.isWhitespace(ch)) { + // found the end of the processible link: + String url = markdown.substring(linkLeft, i); + if (isLikelySourceURLReference(url, resourceNames, baseFilenames, localFilenames, webUrl)) { + b.append(basePath); + if (!Utilities.noString(basePath) && !basePath.endsWith("/")) { + b.append("/"); + } + } + b.append(url); + b.append(ch); + linkLeft = -1; + } + } + } else { + if (i < markdown.length()-3 && markdown.substring(i, i+2).equals("](")) { + + int j = i + 2; + while (j < markdown.length() && markdown.charAt(j) != ')') + j++; + if (j < markdown.length()) { + String url = markdown.substring(i+2, j); + if (!Utilities.isAbsoluteUrl(url) && !url.startsWith("..")) { + // + // In principle, relative URLs are supposed to be converted to absolute URLs in snapshots. + // that's what this code is doing. + // + // But that hasn't always happened and there's packages out there where the snapshots + // contain relative references that actually are references to the main specification + // + // This code is trying to guess which relative references are actually to the + // base specification. + // + if (isLikelySourceURLReference(url, resourceNames, baseFilenames, localFilenames, webUrl)) { + b.append("]("); + b.append(basePath); + if (!Utilities.noString(basePath) && !basePath.endsWith("/")) { + b.append("/"); + } + i = i + 1; + } else { + b.append("]("); + // disabled 7-Dec 2021 GDG - we don't want to fool with relative URLs at all? + // re-enabled 11-Feb 2022 GDG - we do want to do this. At least, $assemble in davinci-dtr, where the markdown comes from the SDC IG, and an SDC local reference must be changed to point to SDC. in this case, it's called when generating snapshots + // added processRelatives parameter to deal with this (well, to try) + if (processRelatives && webUrl != null && !issLocalFileName(url, localFilenames)) { + + b.append(webUrl); + if (!Utilities.noString(webUrl) && !webUrl.endsWith("/")) { + b.append("/"); + } + } else { + //DO NOTHING + } + i = i + 1; + } + } else + b.append(markdown.charAt(i)); + } else + b.append(markdown.charAt(i)); + } else { + b.append(markdown.charAt(i)); + } + } + i++; + } + String s = b.toString(); + return Utilities.rightTrim(s); + } + + private static boolean issLocalFileName(String url, Set localFilenames) { + if (localFilenames != null) { + for (String n : localFilenames) { + if (url.startsWith(n.toLowerCase())) { + return true; + } + } + } + return false; + } + + + private static boolean isLikelySourceURLReference(String url, List resourceNames, Set baseFilenames, Set localFilenames, String baseUrl) { + if (url == null) { + return false; + } + if (baseUrl != null && !baseUrl.startsWith("http://hl7.org/fhir/R")) { + if (resourceNames != null) { + for (String n : resourceNames) { + if (n != null && url.startsWith(n.toLowerCase()+".html")) { + return true; + } + if (n != null && url.startsWith(n.toLowerCase()+"-definitions.html")) { + return true; + } + } + } + if (localFilenames != null) { + for (String n : localFilenames) { + if (n != null && url.startsWith(n.toLowerCase())) { + return false; + } + } + } + if (baseFilenames != null) { + for (String n : baseFilenames) { + if (n != null && url.startsWith(n.toLowerCase())) { + return true; + } + } + } + } + return + url.startsWith("extensibility.html") || + url.startsWith("terminologies.html") || + url.startsWith("observation.html") || + url.startsWith("codesystem.html") || + url.startsWith("fhirpath.html") || + url.startsWith("datatypes.html") || + url.startsWith("operations.html") || + url.startsWith("resource.html") || + url.startsWith("elementdefinition.html") || + url.startsWith("element-definitions.html") || + url.startsWith("snomedct.html") || + url.startsWith("loinc.html") || + url.startsWith("http.html") || + url.startsWith("references") || + url.startsWith("license.html") || + url.startsWith("narrative.html") || + url.startsWith("search.html") || + url.startsWith("security.html") || + url.startsWith("versions.html") || + url.startsWith("patient-operation-match.html") || + (url.startsWith("extension-") && url.contains(".html")) || + url.startsWith("resource-definitions.html"); + } + + protected List getSiblings(List list, ElementDefinition current) { + List result = new ArrayList(); + String path = current.getPath(); + int cursor = list.indexOf(current)+1; + while (cursor < list.size() && list.get(cursor).getPath().length() >= path.length()) { + if (pathMatches(list.get(cursor).getPath(), path)) + result.add(list.get(cursor)); + cursor++; + } + return result; + } + + protected void updateFromSlicing(ElementDefinitionSlicingComponent dst, ElementDefinitionSlicingComponent src) { + if (src.hasOrderedElement()) + dst.setOrderedElement(src.getOrderedElement().copy()); + if (src.hasDiscriminator()) { + // dst.getDiscriminator().addAll(src.getDiscriminator()); Can't use addAll because it uses object equality, not string equality + for (ElementDefinitionSlicingDiscriminatorComponent s : src.getDiscriminator()) { + boolean found = false; + for (ElementDefinitionSlicingDiscriminatorComponent d : dst.getDiscriminator()) { + if (matches(d, s)) { + found = true; + break; + } + } + if (!found) + dst.getDiscriminator().add(s); + } + } + if (src.hasRulesElement()) + dst.setRulesElement(src.getRulesElement().copy()); + } + + protected boolean orderMatches(BooleanType diff, BooleanType base) { + return (diff == null) || (base == null) || (diff.getValue() == base.getValue()); + } + + protected boolean discriminatorMatches(List diff, List base) { + if (diff.isEmpty() || base.isEmpty()) + return true; + if (diff.size() < base.size()) + return false; + for (int i = 0; i < base.size(); i++) + if (!matches(diff.get(i), base.get(i))) + return false; + return true; + } + + private boolean matches(ElementDefinitionSlicingDiscriminatorComponent c1, ElementDefinitionSlicingDiscriminatorComponent c2) { + return c1.getType().equals(c2.getType()) && c1.getPath().equals(c2.getPath()); + } + + + protected boolean ruleMatches(SlicingRules diff, SlicingRules base) { + return (diff == null) || (base == null) || (diff == base) || (base == SlicingRules.OPEN) || + ((diff == SlicingRules.OPENATEND && base == SlicingRules.CLOSED)); + } + + protected boolean isSlicedToOneOnly(ElementDefinition e) { + return (e.hasSlicing() && e.hasMaxElement() && e.getMax().equals("1")); + } + + protected boolean isTypeSlicing(ElementDefinition e) { + return (e.hasSlicing() && e.getSlicing().getDiscriminator().size() == 1 && + e.getSlicing().getDiscriminatorFirstRep().getType() == DiscriminatorType.TYPE && + "$this".equals(e.getSlicing().getDiscriminatorFirstRep().getPath())); + } + + + protected ElementDefinitionSlicingComponent makeExtensionSlicing() { + ElementDefinitionSlicingComponent slice = new ElementDefinitionSlicingComponent(); + slice.addDiscriminator().setPath("url").setType(DiscriminatorType.VALUE); + slice.setOrdered(false); + slice.setRules(SlicingRules.OPEN); + return slice; + } + + protected boolean isExtension(ElementDefinition currentBase) { + return currentBase.getPath().endsWith(".extension") || currentBase.getPath().endsWith(".modifierExtension"); + } + + boolean hasInnerDiffMatches(StructureDefinitionDifferentialComponent context, String path, int start, int end, List base, boolean allowSlices) throws DefinitionException { + end = Math.min(context.getElement().size(), end); + start = Math.max(0, start); + + for (int i = start; i <= end; i++) { + ElementDefinition ed = context.getElement().get(i); + String statedPath = ed.getPath(); + if (!allowSlices && statedPath.equals(path) && ed.hasSliceName()) { + return false; + } else if (statedPath.startsWith(path+".")) { + return true; + } else if (path.endsWith("[x]") && statedPath.startsWith(path.substring(0, path.length() -3))) { + return true; + } else if (i != start && !allowSlices && !statedPath.startsWith(path+".")) { + return false; + } else if (i != start && allowSlices && !statedPath.startsWith(path)) { + return false; + } else { + // not sure why we get here, but returning false at this point makes a bunch of tests fail + } + } + return false; + } + + protected List getDiffMatches(StructureDefinitionDifferentialComponent context, String path, int start, int end, String profileName) throws DefinitionException { + List result = new ArrayList(); + String[] p = path.split("\\."); + for (int i = start; i <= end; i++) { + String statedPath = context.getElement().get(i).getPath(); + String[] sp = statedPath.split("\\."); + boolean ok = sp.length == p.length; + for (int j = 0; j < p.length; j++) { + ok = ok && sp.length > j && (p[j].equals(sp[j]) || isSameBase(p[j], sp[j])); + } +// don't need this debug check - everything is ok +// if (ok != (statedPath.equals(path) || (path.endsWith("[x]") && statedPath.length() > path.length() - 2 && +// statedPath.substring(0, path.length()-3).equals(path.substring(0, path.length()-3)) && +// (statedPath.length() < path.length() || !statedPath.substring(path.length()).contains("."))))) { +// +// } + if (ok) { + /* + * Commenting this out because it raises warnings when profiling inherited elements. For example, + * Error: unknown element 'Bundle.meta.profile' (or it is out of order) in profile ... (looking for 'Bundle.entry') + * Not sure we have enough information here to do the check properly. Might be better done when we're sorting the profile? + + if (i != start && result.isEmpty() && !path.startsWith(context.getElement().get(start).getPath())) + addMessage(new ValidationMessage(Source.ProfileValidator, IssueType.VALUE, "StructureDefinition.differential.element["+Integer.toString(start)+"]", "Error: unknown element '"+context.getElement().get(start).getPath()+"' (or it is out of order) in profile '"+url+"' (looking for '"+path+"')", IssueSeverity.WARNING)); + + */ + result.add(context.getElement().get(i)); + } + } + if (debug) { + Set ids = new HashSet<>(); + for (ElementDefinition ed : result) { + ids.add(ed.getIdOrPath()); + } + } + return result; + } + + + private boolean isSameBase(String p, String sp) { + return (p.endsWith("[x]") && sp.startsWith(p.substring(0, p.length()-3))) || (sp.endsWith("[x]") && p.startsWith(sp.substring(0, sp.length()-3))) ; + } + + protected int findEndOfElement(StructureDefinitionDifferentialComponent context, int cursor) { + int result = cursor; + if (cursor >= context.getElement().size()) + return result; + String path = context.getElement().get(cursor).getPath()+"."; + while (result < context.getElement().size()- 1 && context.getElement().get(result+1).getPath().startsWith(path)) + result++; + return result; + } + + protected int findEndOfElement(StructureDefinitionSnapshotComponent context, int cursor) { + int result = cursor; + String path = context.getElement().get(cursor).getPath()+"."; + while (result < context.getElement().size()- 1 && context.getElement().get(result+1).getPath().startsWith(path)) + result++; + return result; + } + + protected int findEndOfElementNoSlices(StructureDefinitionSnapshotComponent context, int cursor) { + int result = cursor; + String path = context.getElement().get(cursor).getPath()+"."; + while (result < context.getElement().size()- 1 && context.getElement().get(result+1).getPath().startsWith(path) && !context.getElement().get(result+1).hasSliceName()) + result++; + return result; + } + + protected boolean unbounded(ElementDefinition definition) { + StringType max = definition.getMaxElement(); + if (max == null) + return false; // this is not valid + if (max.getValue().equals("1")) + return false; + if (max.getValue().equals("0")) + return false; + return true; + } + + + public void updateFromObligationProfiles(ElementDefinition base) { + List obligationProfileElements = new ArrayList<>(); + for (StructureDefinition sd : obligationProfiles) { + ElementDefinition ed = sd.getSnapshot().getElementById(base.getId()); + if (ed != null) { + obligationProfileElements.add(ed); + } + } + for (ElementDefinition ed : obligationProfileElements) { + for (Extension ext : ed.getExtension()) { + if (Utilities.existsInList(ext.getUrl(), ExtensionDefinitions.EXT_OBLIGATION_CORE, ExtensionDefinitions.EXT_OBLIGATION_TOOLS)) { + base.getExtension().add(ext.copy()); + } + } + } + boolean hasMustSupport = false; + for (ElementDefinition ed : obligationProfileElements) { + hasMustSupport = hasMustSupport || ed.hasMustSupportElement(); + } + if (hasMustSupport) { + for (ElementDefinition ed : obligationProfileElements) { + mergeExtensions(base.getMustSupportElement(), ed.getMustSupportElement()); + if (ed.getMustSupport()) { + base.setMustSupport(true); + } + } + } + boolean hasBinding = false; + for (ElementDefinition ed : obligationProfileElements) { + hasBinding = hasBinding || ed.hasBinding(); + } + if (hasBinding) { + ElementDefinitionBindingComponent binding = base.getBinding(); + for (ElementDefinition ed : obligationProfileElements) { + for (Extension ext : ed.getBinding().getExtension()) { + if (ExtensionDefinitions.EXT_BINDING_ADDITIONAL.equals(ext.getUrl())) { + String p = ext.getExtensionString("purpose"); + if (!Utilities.existsInList(p, "maximum", "required", "extensible")) { + if (!binding.hasExtension(ext)) { + binding.getExtension().add(ext.copy()); + } + } + } + } + for (ElementDefinitionBindingAdditionalComponent ab : ed.getBinding().getAdditional()) { + if (!Utilities.existsInList(ab.getPurpose().toCode(), "maximum", "required", "extensible")) { + if (!binding.hasAdditional(ab)) { + binding.getAdditional().add(ab.copy()); + } + } + } + } + } + } + + + protected void updateFromDefinition(ElementDefinition dest, ElementDefinition source, String pn, boolean trimDifferential, String purl, StructureDefinition srcSD, StructureDefinition derivedSrc, String path, MappingAssistant mappings, boolean fromSlicer) throws DefinitionException, FHIRException { + source.setUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT, dest); + // we start with a clone of the base profile ('dest') and we copy from the profile ('source') + // over the top for anything the source has + ElementDefinition base = dest; + ElementDefinition derived = source; + derived.setUserData(UserDataNames.SNAPSHOT_DERIVATION_POINTER, base); + boolean isExtension = checkExtensionDoco(base); + List obligationProfileElements = new ArrayList<>(); + for (StructureDefinition sd : obligationProfiles) { + ElementDefinition ed = sd.getSnapshot().getElementById(base.getId()); + if (ed != null) { + obligationProfileElements.add(ed); + } + } + + // hack workaround for problem in R5 snapshots + List elist = dest.getExtensionsByUrl(ExtensionDefinitions.EXT_TRANSLATABLE); + if (elist.size() == 2) { + dest.getExtension().remove(elist.get(1)); + } + updateExtensionsFromDefinition(dest, source, derivedSrc, srcSD); + + for (ElementDefinition ed : obligationProfileElements) { + for (Extension ext : ed.getExtension()) { + if (Utilities.existsInList(ext.getUrl(), ExtensionDefinitions.EXT_OBLIGATION_CORE, ExtensionDefinitions.EXT_OBLIGATION_TOOLS)) { + dest.getExtension().add(new Extension(ExtensionDefinitions.EXT_OBLIGATION_CORE, ext.getValue().copy())); + } + } + } + + // Before applying changes, apply them to what's in the profile + // but only if it's an extension or a resource + + StructureDefinition profile = null; + boolean msg = true; + if (base.hasSliceName()) { + profile = base.getType().size() == 1 && base.getTypeFirstRep().hasProfile() ? findProfile(base.getTypeFirstRep().getProfile().get(0).getValue(), srcSD) : null; + } + if (profile == null && source.getTypeFirstRep().hasProfile()) { + String pu = source.getTypeFirstRep().getProfile().get(0).getValue(); + profile = findProfile(pu, derivedSrc); + if (profile == null) { + if (makeXVer().matchingUrl(pu)) { + switch (xver.status(pu)) { + case BadVersion: + throw new FHIRException("Reference to invalid version in extension url " + pu); + case Invalid: + throw new FHIRException("Reference to invalid extension " + pu); + case Unknown: + throw new FHIRException("Reference to unknown extension " + pu); + case Valid: + profile = xver.getDefinition(pu); + generateSnapshot(context.fetchTypeDefinition("Extension"), profile, profile.getUrl(), context.getSpecUrl(), profile.getName()); + } + } + + } + if (profile != null && !"Extension".equals(profile.getType()) && profile.getKind() != StructureDefinitionKind.RESOURCE && profile.getKind() != StructureDefinitionKind.LOGICAL) { + // this is a problem - we're kind of hacking things here. The problem is that we sometimes want the details from the profile to override the + // inherited attributes, and sometimes not + profile = null; + msg = false; + } + } + if (profile != null && (profile.getKind() == StructureDefinitionKind.RESOURCE || "Extension".equals(profile.getType()))) { + if (profile.getSnapshot().getElement().isEmpty()) { + throw new DefinitionException(context.formatMessage(I18nConstants.SNAPSHOT_IS_EMPTY, profile.getVersionedUrl())); + } + ElementDefinition e = profile.getSnapshot().getElement().get(0); + String webroot = profile.getUserString(UserDataNames.render_webroot); + + if (e.hasDefinition()) { + base.setDefinition(processRelativeUrls(e.getDefinition(), webroot, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, true)); + } + if (e.getBinding().hasDescription()) { + base.getBinding().setDescription(processRelativeUrls(e.getBinding().getDescription(), webroot, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, true)); + } + base.setShort(e.getShort()); + if (e.hasCommentElement()) + base.setCommentElement(e.getCommentElement()); + if (e.hasRequirementsElement()) + base.setRequirementsElement(e.getRequirementsElement()); + base.getAlias().clear(); + base.getAlias().addAll(e.getAlias()); + base.getMapping().clear(); + base.getMapping().addAll(e.getMapping()); + } else if (source.getType().size() == 1 && source.getTypeFirstRep().hasProfile() && !source.getTypeFirstRep().getProfile().get(0).hasExtension(ExtensionDefinitions.EXT_PROFILE_ELEMENT)) { + // todo: should we change down the profile_element if there's one? + String type = source.getTypeFirstRep().getWorkingCode(); + if (msg) { + if ("Extension".equals(type)) { + log.warn("Can't find Extension definition for "+source.getTypeFirstRep().getProfile().get(0).asStringValue()+" but trying to go on"); + if (allowUnknownProfile != AllowUnknownProfile.ALL_TYPES) { + throw new DefinitionException("Unable to find Extension definition for "+source.getTypeFirstRep().getProfile().get(0).asStringValue()); + } + } else { + log.warn("Can't find "+type+" profile "+source.getTypeFirstRep().getProfile().get(0).asStringValue()+" but trying to go on"); + if (allowUnknownProfile == AllowUnknownProfile.NONE) { + throw new DefinitionException("Unable to find "+type+" profile "+source.getTypeFirstRep().getProfile().get(0).asStringValue()); + } + } + } + } + if (derived != null) { + if (derived.hasSliceName()) { + base.setSliceName(derived.getSliceName()); + } + + if (derived.hasShortElement()) { + if (!Base.compareDeep(derived.getShortElement(), base.getShortElement(), false)) + base.setShortElement(derived.getShortElement().copy()); + else if (trimDifferential) + derived.setShortElement(null); + else if (derived.hasShortElement()) + derived.getShortElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasDefinitionElement()) { + if (!Base.compareDeep(derived.getDefinitionElement(), base.getDefinitionElement(), false)) { + base.setDefinitionElement(mergeMarkdown(derived.getDefinitionElement(), base.getDefinitionElement())); + } else if (trimDifferential) + derived.setDefinitionElement(null); + else if (derived.hasDefinitionElement()) + derived.getDefinitionElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasCommentElement()) { + if (!Base.compareDeep(derived.getCommentElement(), base.getCommentElement(), false)) + base.setCommentElement(mergeMarkdown(derived.getCommentElement(), base.getCommentElement())); + else if (trimDifferential) + base.setCommentElement(derived.getCommentElement().copy()); + else if (derived.hasCommentElement()) + derived.getCommentElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasLabelElement()) { + if (!base.hasLabelElement() || !Base.compareDeep(derived.getLabelElement(), base.getLabelElement(), false)) + base.setLabelElement(mergeStrings(derived.getLabelElement(), base.getLabelElement())); + else if (trimDifferential) + base.setLabelElement(derived.getLabelElement().copy()); + else if (derived.hasLabelElement()) + derived.getLabelElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasRequirementsElement()) { + if (!base.hasRequirementsElement() || !Base.compareDeep(derived.getRequirementsElement(), base.getRequirementsElement(), false)) + base.setRequirementsElement(mergeMarkdown(derived.getRequirementsElement(), base.getRequirementsElement())); + else if (trimDifferential) + base.setRequirementsElement(derived.getRequirementsElement().copy()); + else if (derived.hasRequirementsElement()) + derived.getRequirementsElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + // sdf-9 + if (derived.hasRequirements() && !base.getPath().contains(".")) + derived.setRequirements(null); + if (base.hasRequirements() && !base.getPath().contains(".")) + base.setRequirements(null); + + if (derived.hasAlias()) { + if (!Base.compareDeep(derived.getAlias(), base.getAlias(), false)) + for (StringType s : derived.getAlias()) { + if (!base.hasAlias(s.getValue())) + base.getAlias().add(s.copy()); + } + else if (trimDifferential) + derived.getAlias().clear(); + else + for (StringType t : derived.getAlias()) + t.setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMinElement()) { + if (!Base.compareDeep(derived.getMinElement(), base.getMinElement(), false)) { + if (derived.getMin() < base.getMin() && !derived.hasSliceName()) // in a slice, minimum cardinality rules do not apply + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+source.getPath(), "Element "+base.getPath()+": derived min ("+Integer.toString(derived.getMin())+") cannot be less than the base min ("+Integer.toString(base.getMin())+") in "+srcSD.getVersionedUrl(), ValidationMessage.IssueSeverity.ERROR)); + base.setMinElement(derived.getMinElement().copy()); + } else if (trimDifferential) + derived.setMinElement(null); + else + derived.getMinElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMaxElement()) { + if (!Base.compareDeep(derived.getMaxElement(), base.getMaxElement(), false)) { + if (isLargerMax(derived.getMax(), base.getMax())) + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+source.getPath(), "Element "+base.getPath()+": derived max ("+derived.getMax()+") cannot be greater than the base max ("+base.getMax()+")", ValidationMessage.IssueSeverity.ERROR)); + base.setMaxElement(derived.getMaxElement().copy()); + } else if (trimDifferential) + derived.setMaxElement(null); + else + derived.getMaxElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasFixed()) { + if (!Base.compareDeep(derived.getFixed(), base.getFixed(), true)) { + base.setFixed(derived.getFixed().copy()); + } else if (trimDifferential) + derived.setFixed(null); + else + derived.getFixed().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasPattern()) { + if (!Base.compareDeep(derived.getPattern(), base.getPattern(), false)) { + base.setPattern(derived.getPattern().copy()); + } else + if (trimDifferential) + derived.setPattern(null); + else + derived.getPattern().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + List toDelB = new ArrayList<>(); + List toDelD = new ArrayList<>(); + for (ElementDefinitionExampleComponent ex : derived.getExample()) { + boolean delete = ex.hasExtension(ExtensionDefinitions.EXT_ED_SUPPRESS); + if (delete && "$all".equals(ex.getLabel())) { + toDelB.addAll(base.getExample()); + } else { + boolean found = false; + for (ElementDefinitionExampleComponent exS : base.getExample()) { + if (Base.compareDeep(ex.getLabel(), exS.getLabel(), false) && Base.compareDeep(ex.getValue(), exS.getValue(), false)) { + if (delete) { + toDelB.add(exS); + } else { + found = true; + } + } + } + if (delete) { + toDelD.add(ex); + } else if (!found) { + base.addExample(ex.copy()); + } else if (trimDifferential) { + derived.getExample().remove(ex); + } else { + ex.setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + } + } + base.getExample().removeAll(toDelB); + derived.getExample().removeAll(toDelD); + + if (derived.hasMaxLengthElement()) { + if (!Base.compareDeep(derived.getMaxLengthElement(), base.getMaxLengthElement(), false)) + base.setMaxLengthElement(derived.getMaxLengthElement().copy()); + else if (trimDifferential) + derived.setMaxLengthElement(null); + else + derived.getMaxLengthElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMaxValue()) { + if (!Base.compareDeep(derived.getMaxValue(), base.getMaxValue(), false)) + base.setMaxValue(derived.getMaxValue().copy()); + else if (trimDifferential) + derived.setMaxValue(null); + else + derived.getMaxValue().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMinValue()) { + if (!Base.compareDeep(derived.getMinValue(), base.getMinValue(), false)) + base.setMinValue(derived.getMinValue().copy()); + else if (trimDifferential) + derived.setMinValue(null); + else + derived.getMinValue().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + // todo: what to do about conditions? + // condition : id 0..* + + boolean hasMustSupport = derived.hasMustSupportElement(); + for (ElementDefinition ed : obligationProfileElements) { + hasMustSupport = hasMustSupport || ed.hasMustSupportElement(); + } + if (hasMustSupport) { + BooleanType mse = derived.getMustSupportElement().copy(); + for (ElementDefinition ed : obligationProfileElements) { + mergeExtensions(mse, ed.getMustSupportElement()); + if (ed.getMustSupport()) { + mse.setValue(true); + } + } + if (!(base.hasMustSupportElement() && Base.compareDeep(base.getMustSupportElement(), mse, false))) { + if (base.hasMustSupport() && base.getMustSupport() && !derived.getMustSupport() && !fromSlicer) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Illegal constraint [must-support = false] when [must-support = true] in the base profile", ValidationMessage.IssueSeverity.ERROR)); + } + base.setMustSupportElement(mse); + } else if (trimDifferential) + derived.setMustSupportElement(null); + else + derived.getMustSupportElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMustHaveValueElement()) { + if (!(base.hasMustHaveValueElement() && Base.compareDeep(derived.getMustHaveValueElement(), base.getMustHaveValueElement(), false))) { + if (base.hasMustHaveValue() && base.getMustHaveValue() && !derived.getMustHaveValue() && !fromSlicer) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Illegal constraint [must-have-value = false] when [must-have-value = true] in the base profile", ValidationMessage.IssueSeverity.ERROR)); + } + base.setMustHaveValueElement(derived.getMustHaveValueElement().copy()); + } else if (trimDifferential) + derived.setMustHaveValueElement(null); + else + derived.getMustHaveValueElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + if (derived.hasValueAlternatives()) { + if (!Base.compareDeep(derived.getValueAlternatives(), base.getValueAlternatives(), false)) + for (CanonicalType s : derived.getValueAlternatives()) { + if (!base.hasValueAlternatives(s.getValue())) + base.getValueAlternatives().add(s.copy()); + } + else if (trimDifferential) + derived.getValueAlternatives().clear(); + else + for (CanonicalType t : derived.getValueAlternatives()) + t.setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + // profiles cannot change : isModifier, defaultValue, meaningWhenMissing + // but extensions can change isModifier + if (isExtension) { + if (derived.hasIsModifierElement() && !(base.hasIsModifierElement() && Base.compareDeep(derived.getIsModifierElement(), base.getIsModifierElement(), false))) { + base.setIsModifierElement(derived.getIsModifierElement().copy()); + } else if (trimDifferential) { + derived.setIsModifierElement(null); + } else if (derived.hasIsModifierElement()) { + derived.getIsModifierElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + if (derived.hasIsModifierReasonElement() && !(base.hasIsModifierReasonElement() && Base.compareDeep(derived.getIsModifierReasonElement(), base.getIsModifierReasonElement(), false))) { + base.setIsModifierReasonElement(derived.getIsModifierReasonElement().copy()); + } else if (trimDifferential) { + derived.setIsModifierReasonElement(null); + } else if (derived.hasIsModifierReasonElement()) { + derived.getIsModifierReasonElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + if (base.getIsModifier() && !base.hasIsModifierReason()) { + // we get here because modifier extensions don't get a modifier reason from the type + base.setIsModifierReason("Modifier extensions are labelled as such because they modify the meaning or interpretation of the resource or element that contains them"); + } + } + + boolean hasBinding = derived.hasBinding(); + for (ElementDefinition ed : obligationProfileElements) { + hasBinding = hasBinding || ed.hasBinding(); + } + if (hasBinding) { + updateExtensionsFromDefinition(dest.getBinding(), source.getBinding(), derivedSrc, srcSD); + ElementDefinitionBindingComponent binding = derived.getBinding(); + for (ElementDefinition ed : obligationProfileElements) { + for (Extension ext : ed.getBinding().getExtension()) { + if (ExtensionDefinitions.EXT_BINDING_ADDITIONAL.equals(ext.getUrl())) { + String p = ext.getExtensionString("purpose"); + if (!Utilities.existsInList(p, "maximum", "required", "extensible")) { + if (!binding.hasExtension(ext)) { + binding.getExtension().add(ext.copy()); + } + } + } + } + for (ElementDefinitionBindingAdditionalComponent ab : ed.getBinding().getAdditional()) { + if (!Utilities.existsInList(ab.getPurpose().toCode(), "maximum", "required", "extensible")) { + if (binding.hasAdditional(ab)) { + binding.getAdditional().add(ab.copy()); + } + } + } + } + + if (!base.hasBinding() || !Base.compareDeep(derived.getBinding(), base.getBinding(), false)) { + if (base.hasBinding() && base.getBinding().getStrength() == BindingStrength.REQUIRED && derived.getBinding().getStrength() != BindingStrength.REQUIRED) + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "illegal attempt to change the binding on "+derived.getPath()+" from "+base.getBinding().getStrength().toCode()+" to "+derived.getBinding().getStrength().toCode(), ValidationMessage.IssueSeverity.ERROR)); +// throw new DefinitionException("StructureDefinition "+pn+" at "+derived.getPath()+": illegal attempt to change a binding from "+base.getBinding().getStrength().toCode()+" to "+derived.getBinding().getStrength().toCode()); + else if (base.hasBinding() && derived.hasBinding() && base.getBinding().getStrength() == BindingStrength.REQUIRED && base.getBinding().hasValueSet() && derived.getBinding().hasValueSet()) { + ValueSet baseVs = context.findTxResource(ValueSet.class, base.getBinding().getValueSet(), null, srcSD); + ValueSet contextVs = context.findTxResource(ValueSet.class, derived.getBinding().getValueSet(), null, derivedSrc); + if (baseVs == null) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+base.getPath(), "Binding "+base.getBinding().getValueSet()+" could not be located", ValidationMessage.IssueSeverity.WARNING)); + } else if (contextVs == null) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Binding "+derived.getBinding().getValueSet()+" could not be located", ValidationMessage.IssueSeverity.WARNING)); + } else { + ValueSetExpansionOutcome expBase = context.expandVS(baseVs, true, false); + ValueSetExpansionOutcome expDerived = context.expandVS(contextVs, true, false); + if (expBase.getValueset() == null) + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+base.getPath(), "Binding "+base.getBinding().getValueSet()+" could not be expanded", ValidationMessage.IssueSeverity.WARNING)); + else if (expDerived.getValueset() == null) + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Binding "+derived.getBinding().getValueSet()+" could not be expanded", ValidationMessage.IssueSeverity.WARNING)); + else if (ExtensionUtilities.hasExtension(expBase.getValueset().getExpansion(), ExtensionDefinitions.EXT_EXP_TOOCOSTLY)) { + if (ExtensionUtilities.hasExtension(expDerived.getValueset().getExpansion(), ExtensionDefinitions.EXT_EXP_TOOCOSTLY) || expDerived.getValueset().getExpansion().getContains().size() > 100) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Unable to check if "+derived.getBinding().getValueSet()+" is a proper subset of " +base.getBinding().getValueSet()+" - base value set is too large to check", ValidationMessage.IssueSeverity.WARNING)); + } else { + boolean ok = true; + for (ValueSetExpansionContainsComponent cc : expDerived.getValueset().getExpansion().getContains()) { + ValidationResult vr = context.validateCode(new ValidationOptions(), cc.getSystem(), cc.getVersion(), cc.getCode(), null, baseVs); + if (!vr.isOk()) { + ok = false; + break; + } + } + if (!ok) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Binding "+derived.getBinding().getValueSet()+" is not a subset of binding "+base.getBinding().getValueSet(), ValidationMessage.IssueSeverity.ERROR)); + } + } + } else if (expBase.getValueset().getExpansion().getContains().size() == 1000 || + expDerived.getValueset().getExpansion().getContains().size() == 1000) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Unable to check if "+derived.getBinding().getValueSet()+" is a proper subset of " +base.getBinding().getValueSet()+" - value set is too large to check", ValidationMessage.IssueSeverity.WARNING)); + } else { + String msgs = checkSubset(expBase.getValueset(), expDerived.getValueset()); + if (msgs != null) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Binding "+derived.getBinding().getValueSet()+" is not a subset of binding "+base.getBinding().getValueSet()+" because "+msgs, ValidationMessage.IssueSeverity.ERROR)); + } + } + } + } + ElementDefinitionBindingComponent d = derived.getBinding(); + ElementDefinitionBindingComponent nb = base.getBinding().copy(); + if (!COPY_BINDING_EXTENSIONS) { + nb.getExtension().clear(); + } + nb.setDescription(null); + for (Extension dex : d.getExtension()) { + nb.getExtension().add(markExtensionSource(dex.copy(), false, srcSD)); + } + if (d.hasStrength()) { + nb.setStrength(d.getStrength()); + } + if (d.hasDescription()) { + nb.setDescription(d.getDescription()); + } + if (d.hasValueSet()) { + nb.setValueSet(d.getValueSet()); + } + for (ElementDefinitionBindingAdditionalComponent ab : d.getAdditional()) { + ElementDefinitionBindingAdditionalComponent eab = getMatchingAdditionalBinding(nb, ab); + if (eab != null) { + mergeAdditionalBinding(eab, ab); + } else { + nb.getAdditional().add(ab); + } + } + base.setBinding(nb); + } else if (trimDifferential) + derived.setBinding(null); + else + derived.getBinding().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } else if (base.hasBinding()) { + base.getBinding().getExtension().removeIf(ext -> Utilities.existsInList(ext.getUrl(), ProfileUtilities.NON_INHERITED_ED_URLS)); + for (Extension ex : base.getBinding().getExtension()) { + markExtensionSource(ex, false, srcSD); + } + } + + if (derived.hasIsSummaryElement()) { + if (!Base.compareDeep(derived.getIsSummaryElement(), base.getIsSummaryElement(), false)) { + if (base.hasIsSummary() && !context.getVersion().equals("1.4.0")) // work around a known issue with some 1.4.0 cosntraints + throw new Error(context.formatMessage(I18nConstants.ERROR_IN_PROFILE__AT__BASE_ISSUMMARY___DERIVED_ISSUMMARY__, purl, derived.getPath(), base.getIsSummaryElement().asStringValue(), derived.getIsSummaryElement().asStringValue())); + base.setIsSummaryElement(derived.getIsSummaryElement().copy()); + } else if (trimDifferential) + derived.setIsSummaryElement(null); + else + derived.getIsSummaryElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + // this would make sense but blows up the process later, so we let it happen anyway, and sort out the business rule elsewhere + //if (!derived.hasContentReference() && !base.hasContentReference()) { + + if (derived.hasType()) { + if (!Base.compareDeep(derived.getType(), base.getType(), false)) { + if (base.hasType()) { + for (TypeRefComponent ts : derived.getType()) { + checkTypeDerivation(purl, srcSD, base, derived, ts, path, derivedSrc.getDerivation() == TypeDerivationRule.SPECIALIZATION); + } + } + base.getType().clear(); + for (TypeRefComponent t : derived.getType()) { + TypeRefComponent tt = t.copy(); + // tt.setUserData(DERIVATION_EQUALS, true); + base.getType().add(tt); + for (Extension ex : tt.getExtension()) { + markExtensionSource(ex, false, srcSD); + } + } + } + else if (trimDifferential) + derived.getType().clear(); + else { + for (TypeRefComponent t : derived.getType()) { + t.setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + for (Extension ex : t.getExtension()) { + markExtensionSource(ex, true, derivedSrc); + } + } + } + } + + mappings.merge(derived, base); // note reversal of names to be correct in .merge() + + // todo: constraints are cumulative. there is no replacing + for (ElementDefinitionConstraintComponent s : base.getConstraint()) { + s.setUserData(UserDataNames.SNAPSHOT_IS_DERIVED, true); + if (!s.hasSource()) { + s.setSource(srcSD.getUrl()); + } + } + if (derived.hasConstraint()) { + for (ElementDefinitionConstraintComponent s : derived.getConstraint()) { + if (!base.hasConstraint(s.getKey())) { + ElementDefinitionConstraintComponent inv = s.copy(); + base.getConstraint().add(inv); + } + } + } + for (IdType id : derived.getCondition()) { + if (!base.hasCondition(id)) { + base.getCondition().add(id); + } + } + + // now, check that we still have a bindable type; if not, delete the binding - see task 8477 + if (dest.hasBinding() && !hasBindableType(dest)) { + dest.setBinding(null); + } + +// // finally, we copy any extensions from source to dest + //no, we already did. +// for (Extension ex : derived.getExtension()) { +// ! +// StructureDefinition sd = findProfile(ex.getUrl(), derivedSrc); +// if (sd == null || sd.getSnapshot() == null || sd.getSnapshot().getElementFirstRep().getMax().equals("1")) { +// ToolingExtensions.removeExtension(dest, ex.getUrl()); +// } +// dest.addExtension(ex.copy()); +// } + } + if (dest.hasFixed()) { + checkTypeOk(dest, dest.getFixed().fhirType(), srcSD, "fixed"); + } + if (dest.hasPattern()) { + checkTypeOk(dest, dest.getPattern().fhirType(), srcSD, "pattern"); + } + //updateURLs(url, webUrl, dest); + } + + private MarkdownType mergeMarkdown(MarkdownType dest, MarkdownType source) { + MarkdownType mergedMarkdown = dest.copy(); + if (!mergedMarkdown.hasValue() && source.hasValue()) { + mergedMarkdown.setValue(source.getValue()); + } else if (mergedMarkdown.hasValue() && source.hasValue() && mergedMarkdown.getValue().startsWith("...")) { + mergedMarkdown.setValue(Utilities.appendDerivedTextToBase(source.getValue(), mergedMarkdown.getValue())); + } + for (Extension sourceExtension : source.getExtension()) { + Extension matchingExtension = findMatchingExtension(mergedMarkdown, sourceExtension); + if (matchingExtension == null) { + mergedMarkdown.addExtension(sourceExtension.copy()); + } else { + matchingExtension.setValue(sourceExtension.getValue()); + } + } + return mergedMarkdown; + } + + private StringType mergeStrings(StringType dest, StringType source) { + StringType res = dest.copy(); + if (!res.hasValue() && source.hasValue()) { + res.setValue(source.getValue()); + } else if (res.hasValue() && source.hasValue() && res.getValue().startsWith("...")) { + res.setValue(Utilities.appendDerivedTextToBase(res.getValue(), source.getValue())); + } + for (Extension sourceExtension : source.getExtension()) { + Extension matchingExtension = findMatchingExtension(res, sourceExtension); + if (matchingExtension == null) { + res.addExtension(sourceExtension.copy()); + } else { + matchingExtension.setValue(sourceExtension.getValue()); + } + } + return res; + } + + private Extension findMatchingExtension(Element res, Extension extensionToMatch) { + for (Extension elementExtension : res.getExtensionsByUrl(extensionToMatch.getUrl())) { + if (ExtensionDefinitions.EXT_TRANSLATION.equals(elementExtension.getUrl())) { + String slang = extensionToMatch.getExtensionString("lang"); + String dlang = elementExtension.getExtensionString("lang"); + if (Utilities.stringsEqual(slang, dlang)) { + return elementExtension; + } + } else { + return elementExtension; + } + + } + return null; + } + + private static Extension markExtensionSource(Extension extension, boolean overrideSource, StructureDefinition srcSD) { + if (overrideSource || !extension.hasUserData(UserDataNames.SNAPSHOT_EXTENSION_SOURCE)) { + extension.setUserData(UserDataNames.SNAPSHOT_EXTENSION_SOURCE, srcSD); + } + if (Utilities.existsInList(extension.getUrl(), ExtensionDefinitions.EXT_OBLIGATION_CORE, ExtensionDefinitions.EXT_OBLIGATION_TOOLS)) { + Extension sub = extension.getExtensionByUrl(ExtensionDefinitions.EXT_OBLIGATION_SOURCE, ExtensionDefinitions.EXT_OBLIGATION_SOURCE_SHORT); + if (sub == null || overrideSource) { + ExtensionUtilities.setCanonicalExtension(extension, ExtensionDefinitions.EXT_OBLIGATION_SOURCE, srcSD.getVersionedUrl()); + } + } + return extension; + } + + private void updateExtensionsFromDefinition(Element dest, Element source, StructureDefinition destSD, StructureDefinition srcSD) { + dest.getExtension().removeIf(ext -> Utilities.existsInList(ext.getUrl(), NON_INHERITED_ED_URLS) || (Utilities.existsInList(ext.getUrl(), DEFAULT_INHERITED_ED_URLS) && source.hasExtension(ext.getUrl()))); + + for (Extension ext : source.getExtension()) { + if (!dest.hasExtension(ext.getUrl())) { + dest.getExtension().add(markExtensionSource(ext.copy(), false, srcSD)); + } else if (Utilities.existsInList(ext.getUrl(), NON_OVERRIDING_ED_URLS)) { + // do nothing + for (Extension ex2 : dest.getExtensionsByUrl(ext.getUrl())) { + markExtensionSource(ex2, true, destSD); + } + } else if (Utilities.existsInList(ext.getUrl(), OVERRIDING_ED_URLS)) { + dest.getExtensionByUrl(ext.getUrl()).setValue(ext.getValue()); + markExtensionSource(dest.getExtensionByUrl(ext.getUrl()), false, srcSD); + } else { + dest.getExtension().add(markExtensionSource(ext.copy(), false, srcSD)); + } + } + } + + private void mergeAdditionalBinding(ElementDefinitionBindingAdditionalComponent dest, ElementDefinitionBindingAdditionalComponent source) { + for (UsageContext t : source.getUsage()) { + if (!hasUsage(dest, t)) { + dest.addUsage(t); + } + } + if (source.getAny()) { + source.setAny(true); + } + if (source.hasShortDoco()) { + dest.setShortDoco(source.getShortDoco()); + } + if (source.hasDocumentation()) { + dest.setDocumentation(source.getDocumentation()); + } + + } + + private boolean hasUsage(ElementDefinitionBindingAdditionalComponent dest, UsageContext tgt) { + for (UsageContext t : dest.getUsage()) { + if (t.getCode() != null && t.getCode().matches(tgt.getCode()) && t.getValue() != null && t.getValue().equals(tgt.getValue())) { + return true; + } + } + return false; + } + + private ElementDefinitionBindingAdditionalComponent getMatchingAdditionalBinding(ElementDefinitionBindingComponent nb,ElementDefinitionBindingAdditionalComponent ab) { + for (ElementDefinitionBindingAdditionalComponent t : nb.getAdditional()) { + if (t.getValueSet() != null && t.getValueSet().equals(ab.getValueSet()) && t.getPurpose() == ab.getPurpose() && !ab.hasUsage()) { + return t; + } + } + return null; + } + + private void mergeExtensions(Element tgt, Element src) { + tgt.getExtension().addAll(src.getExtension()); + } + + private void checkTypeDerivation(String purl, StructureDefinition srcSD, ElementDefinition base, ElementDefinition derived, TypeRefComponent ts, String path, boolean specialising) { + boolean ok = false; + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + String t = ts.getWorkingCode(); + String tDesc = ts.toString(); + for (TypeRefComponent td : base.getType()) {; + boolean matchType = false; + String tt = td.getWorkingCode(); + b.append(td.toString()); + if (td.hasCode() && (tt.equals(t))) { + matchType = true; + } + if (!matchType) { + StructureDefinition sdt = context.fetchTypeDefinition(tt); + if (sdt != null && (sdt.getAbstract() || sdt.getKind() == StructureDefinitionKind.LOGICAL)) { + StructureDefinition sdb = context.fetchTypeDefinition(t); + while (sdb != null && !matchType) { + matchType = sdb.getType().equals(sdt.getType()); + sdb = findProfile(sdb.getBaseDefinition(), sdb); + } + } + } + // work around for old badly generated SDs +// if (DONT_DO_THIS && Utilities.existsInList(tt, "Extension", "uri", "string", "Element")) { +// matchType = true; +// } +// if (DONT_DO_THIS && Utilities.existsInList(tt, "Resource","DomainResource") && pkp.isResource(t)) { +// matchType = true; +// } + if (matchType) { + ts.copyNewExtensions(td, "http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support"); + ts.copyExtensions(td, "http://hl7.org/fhir/StructureDefinition/elementdefinition-pattern", "http://hl7.org/fhir/StructureDefinition/obligation", "http://hl7.org/fhir/tools/StructureDefinition/obligation"); + if (ts.hasTargetProfile()) { + // check that any derived target has a reference chain back to one of the base target profiles + for (UriType u : ts.getTargetProfile()) { + String url = u.getValue(); + boolean tgtOk = !td.hasTargetProfile() || sdConformsToTargets(path, derived.getPath(), url, td); + if (tgtOk) { + ok = true; + } else if (specialising) { + ok = true; + } else { + addMessage(new ValidationMessage(Source.InstanceValidator, IssueType.BUSINESSRULE, derived.getPath(), context.formatMessage(I18nConstants.ERROR_AT__THE_TARGET_PROFILE__IS_NOT__VALID_CONSTRAINT_ON_THE_BASE_, purl, derived.getPath(), url, td.getTargetProfile()), IssueSeverity.ERROR)); + } + } + } else { + ok = true; + } + } + } + if (!ok && !isSuppressIgnorableExceptions()) { + throw new DefinitionException(context.formatMessage(I18nConstants.STRUCTUREDEFINITION__AT__ILLEGAL_CONSTRAINED_TYPE__FROM__IN_, purl, derived.getPath(), tDesc, b.toString(), srcSD.getUrl())); + } + } + + + private boolean sdConformsToTargets(String path, String dPath, String url, TypeRefComponent td) { + if (td.hasTargetProfile(url)) { + return true; + } + if (url != null && url.contains("|") && td.hasTargetProfile(url.substring(0, url.indexOf("|")))) { + return true; + } + StructureDefinition sd = context.fetchResourceRaw(StructureDefinition.class, url); + if (sd == null) { + addMessage(new ValidationMessage(Source.InstanceValidator, IssueType.BUSINESSRULE, path, "Cannot check whether the target profile " + url + " on "+dPath+" is valid constraint on the base because it is not known", IssueSeverity.WARNING)); + return true; + } else { + if (sd.hasBaseDefinition() && sdConformsToTargets(path, dPath, sd.getBaseDefinition(), td)) { + return true; + } + for (Extension ext : sd.getExtensionsByUrl(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { + if (sdConformsToTargets(path, dPath, ext.getValueCanonicalType().asStringValue(), td)) { + return true; + } + } + } + return false; + } + + private void checkTypeOk(ElementDefinition dest, String ft, StructureDefinition sd, String fieldName) { + boolean ok = false; + Set types = new HashSet<>(); + if (dest.getPath().contains(".")) { + for (TypeRefComponent t : dest.getType()) { + if (t.hasCode()) { + types.add(t.getWorkingCode()); + } + ok = ok || ft.equals(t.getWorkingCode()); + } + } else { + types.add(sd.getType()); + ok = ok || ft.equals(sd.getType()); + + } + if (!ok) { + addMessage(new ValidationMessage(Source.InstanceValidator, IssueType.CONFLICT, dest.getId(), "The "+fieldName+" value has type '"+ft+"' which is not valid (valid "+Utilities.pluralize("type", dest.getType().size())+": "+types.toString()+")", IssueSeverity.ERROR)); + } + } + + private boolean hasBindableType(ElementDefinition ed) { + for (TypeRefComponent tr : ed.getType()) { + if (Utilities.existsInList(tr.getWorkingCode(), "Coding", "CodeableConcept", "Quantity", "uri", "string", "code", "CodeableReference")) { + return true; + } + StructureDefinition sd = context.fetchTypeDefinition(tr.getCode()); + if (sd != null && sd.hasExtension(ExtensionDefinitions.EXT_BINDING_STYLE)) { + return true; + } + if (sd != null && sd.hasExtension(ExtensionDefinitions.EXT_TYPE_CHARACTERISTICS) && + "can-bind".equals(ExtensionUtilities.readStringExtension(sd, ExtensionDefinitions.EXT_TYPE_CHARACTERISTICS))) { + return true; + } + } + return false; + } + + + private boolean isLargerMax(String derived, String base) { + if ("*".equals(base)) { + return false; + } + if ("*".equals(derived)) { + return true; + } + return Integer.parseInt(derived) > Integer.parseInt(base); + } + + + private String checkSubset(ValueSet expBase, ValueSet expDerived) { + Set codes = new HashSet<>(); + checkCodesInExpansion(codes, expDerived.getExpansion().getContains(), expBase.getExpansion()); + if (codes.isEmpty()) { + return null; + } else { + return "The codes '"+CommaSeparatedStringBuilder.join(",", codes)+"' are not in the base valueset"; + } + } + + + private void checkCodesInExpansion(Set codes, List contains, ValueSetExpansionComponent expansion) { + for (ValueSetExpansionContainsComponent cc : contains) { + if (!inExpansion(cc, expansion.getContains())) { + codes.add(cc.getCode()); + } + checkCodesInExpansion(codes, cc.getContains(), expansion); + } + } + + + private boolean inExpansion(ValueSetExpansionContainsComponent cc, List contains) { + for (ValueSetExpansionContainsComponent cc1 : contains) { + if (cc.getSystem().equals(cc1.getSystem()) && cc.getCode().equals(cc1.getCode())) { + return true; + } + if (inExpansion(cc, cc1.getContains())) { + return true; + } + } + return false; + } + + public void closeDifferential(StructureDefinition base, StructureDefinition derived) throws FHIRException { + for (ElementDefinition edb : base.getSnapshot().getElement()) { + if (isImmediateChild(edb) && !edb.getPath().endsWith(".id")) { + ElementDefinition edm = getMatchInDerived(edb, derived.getDifferential().getElement()); + if (edm == null) { + ElementDefinition edd = derived.getDifferential().addElement(); + edd.setPath(edb.getPath()); + edd.setMax("0"); + } else if (edb.hasSlicing()) { + closeChildren(base, edb, derived, edm); + } + } + } + sortDifferential(base, derived, derived.getName(), new ArrayList(), false); + } + + private void closeChildren(StructureDefinition base, ElementDefinition edb, StructureDefinition derived, ElementDefinition edm) { +// String path = edb.getPath()+"."; + int baseStart = base.getSnapshot().getElement().indexOf(edb); + int baseEnd = findEnd(base.getSnapshot().getElement(), edb, baseStart+1); + int diffStart = derived.getDifferential().getElement().indexOf(edm); + int diffEnd = findEnd(derived.getDifferential().getElement(), edm, diffStart+1); + + for (int cBase = baseStart; cBase < baseEnd; cBase++) { + ElementDefinition edBase = base.getSnapshot().getElement().get(cBase); + if (isImmediateChild(edBase, edb)) { + ElementDefinition edMatch = getMatchInDerived(edBase, derived.getDifferential().getElement(), diffStart, diffEnd); + if (edMatch == null) { + ElementDefinition edd = derived.getDifferential().addElement(); + edd.setPath(edBase.getPath()); + edd.setMax("0"); + } else { + closeChildren(base, edBase, derived, edMatch); + } + } + } + } + + private int findEnd(List list, ElementDefinition ed, int cursor) { + String path = ed.getPath()+"."; + while (cursor < list.size() && list.get(cursor).getPath().startsWith(path)) { + cursor++; + } + return cursor; + } + + + private ElementDefinition getMatchInDerived(ElementDefinition ed, List list) { + for (ElementDefinition t : list) { + if (t.getPath().equals(ed.getPath())) { + return t; + } + } + return null; + } + + private ElementDefinition getMatchInDerived(ElementDefinition ed, List list, int start, int end) { + for (int i = start; i < end; i++) { + ElementDefinition t = list.get(i); + if (t.getPath().equals(ed.getPath())) { + return t; + } + } + return null; + } + + + private boolean isImmediateChild(ElementDefinition ed) { + String p = ed.getPath(); + if (!p.contains(".")) { + return false; + } + p = p.substring(p.indexOf(".")+1); + return !p.contains("."); + } + + private boolean isImmediateChild(ElementDefinition candidate, ElementDefinition base) { + String p = candidate.getPath(); + if (!p.contains(".")) + return false; + if (!p.startsWith(base.getPath()+".")) + return false; + p = p.substring(base.getPath().length()+1); + return !p.contains("."); + } + + + + private ElementDefinition getUrlFor(StructureDefinition ed, ElementDefinition c) { + int i = ed.getSnapshot().getElement().indexOf(c) + 1; + while (i < ed.getSnapshot().getElement().size() && ed.getSnapshot().getElement().get(i).getPath().startsWith(c.getPath()+".")) { + if (ed.getSnapshot().getElement().get(i).getPath().equals(c.getPath()+".url")) + return ed.getSnapshot().getElement().get(i); + i++; + } + return null; + } + + + + protected ElementDefinitionResolution getElementById(StructureDefinition source, List elements, String contentReference) { + if (!contentReference.startsWith("#") && contentReference.contains("#")) { + String url = contentReference.substring(0, contentReference.indexOf("#")); + contentReference = contentReference.substring(contentReference.indexOf("#")); + if (!url.equals(source.getUrl())){ + source = findProfile(url, source); + if (source == null) { + return null; + } + elements = source.getSnapshot().getElement(); + } + } + for (ElementDefinition ed : elements) + if (ed.hasId() && ("#"+ed.getId()).equals(contentReference)) + return new ElementDefinitionResolution(source, ed); + return null; + } + + + public static String describeExtensionContext(StructureDefinition ext) { + StringBuilder b = new StringBuilder(); + b.append("Use on "); + for (int i = 0; i < ext.getContext().size(); i++) { + StructureDefinitionContextComponent ec = ext.getContext().get(i); + if (i > 0) + b.append(i < ext.getContext().size() - 1 ? ", " : " or "); + b.append(ec.getType().getDisplay()); + b.append(" "); + b.append(ec.getExpression()); + } + if (ext.hasContextInvariant()) { + b.append(", with Context Invariant = "); + boolean first = true; + for (StringType s : ext.getContextInvariant()) { + if (first) + first = false; + else + b.append(", "); + b.append(""+s.getValue()+""); + } + } + return b.toString(); + } + + + + +// public XhtmlNode generateTable(String defFile, StructureDefinition profile, boolean diff, String imageFolder, boolean inlineGraphics, String profileBaseFileName, boolean snapshot, String corePath, String imagePath, +// boolean logicalModel, boolean allInvariants, Set outputTracker, boolean mustSupport, RenderingContext rc) throws IOException, FHIRException { +// return generateTable(defFile, profile, diff, imageFolder, inlineGraphics, profileBaseFileName, snapshot, corePath, imagePath, logicalModel, allInvariants, outputTracker, mustSupport, rc, ""); +// } + + + + + + protected String tail(String path) { + if (path == null) { + return ""; + } else if (path.contains(".")) + return path.substring(path.lastIndexOf('.')+1); + else + return path; + } + + private boolean isDataType(String value) { + StructureDefinition sd = context.fetchTypeDefinition(value); + if (sd == null) // might be running before all SDs are available + return Utilities.existsInList(value, "Address", "Age", "Annotation", "Attachment", "CodeableConcept", "Coding", "ContactPoint", "Count", "Distance", "Duration", "HumanName", "Identifier", "Money", "Period", "Quantity", "Range", "Ratio", "Reference", "SampledData", "Signature", "Timing", + "ContactDetail", "Contributor", "DataRequirement", "Expression", "ParameterDefinition", "RelatedArtifact", "TriggerDefinition", "UsageContext"); + else + return sd.getKind() == StructureDefinitionKind.COMPLEXTYPE && sd.getDerivation() == TypeDerivationRule.SPECIALIZATION; + } + + private boolean isConstrainedDataType(String value) { + StructureDefinition sd = context.fetchTypeDefinition(value); + if (sd == null) // might be running before all SDs are available + return Utilities.existsInList(value, "SimpleQuantity", "MoneyQuantity"); + else + return sd.getKind() == StructureDefinitionKind.COMPLEXTYPE && sd.getDerivation() == TypeDerivationRule.CONSTRAINT; + } + + private String baseType(String value) { + StructureDefinition sd = context.fetchTypeDefinition(value); + if (sd != null) // might be running before all SDs are available + return sd.getTypeName(); + if (Utilities.existsInList(value, "SimpleQuantity", "MoneyQuantity")) + return "Quantity"; + throw new Error(context.formatMessage(I18nConstants.INTERNAL_ERROR___TYPE_NOT_KNOWN_, value)); + } + + + protected boolean isPrimitive(String value) { + StructureDefinition sd = context.fetchTypeDefinition(value); + if (sd == null) // might be running before all SDs are available + return Utilities.existsInList(value, "base64Binary", "boolean", "canonical", "code", "date", "dateTime", "decimal", "id", "instant", "integer", "integer64", "markdown", "oid", "positiveInt", "string", "time", "unsignedInt", "uri", "url", "uuid"); + else + return sd.getKind() == StructureDefinitionKind.PRIMITIVETYPE; + } + +// private static String listStructures(StructureDefinition p) { +// StringBuilder b = new StringBuilder(); +// boolean first = true; +// for (ProfileStructureComponent s : p.getStructure()) { +// if (first) +// first = false; +// else +// b.append(", "); +// if (pkp != null && pkp.hasLinkFor(s.getType())) +// b.append(""+s.getType()+""); +// else +// b.append(s.getType()); +// } +// return b.toString(); +// } + + + public StructureDefinition getProfile(StructureDefinition source, String url) { + StructureDefinition profile = null; + String code = null; + if (url.startsWith("#")) { + profile = source; + code = url.substring(1); + } else if (context != null) { + String[] parts = url.split("\\#"); + profile = findProfile(parts[0], source); + code = parts.length == 1 ? null : parts[1]; + } + if (profile == null) + return null; + if (code == null) + return profile; + for (Resource r : profile.getContained()) { + if (r instanceof StructureDefinition && r.getId().equals(code)) + return (StructureDefinition) r; + } + return null; + } + + + + private static class ElementDefinitionHolder { + private String name; + private ElementDefinition self; + private int baseIndex = 0; + private List children; + private boolean placeHolder = false; + + public ElementDefinitionHolder(ElementDefinition self, boolean isPlaceholder) { + super(); + this.self = self; + this.name = self.getPath(); + this.placeHolder = isPlaceholder; + children = new ArrayList(); + } + + public ElementDefinitionHolder(ElementDefinition self) { + this(self, false); + } + + public ElementDefinition getSelf() { + return self; + } + + public List getChildren() { + return children; + } + + public int getBaseIndex() { + return baseIndex; + } + + public void setBaseIndex(int baseIndex) { + this.baseIndex = baseIndex; + } + + public boolean isPlaceHolder() { + return this.placeHolder; + } + + @Override + public String toString() { + if (self.hasSliceName()) + return self.getPath()+"("+self.getSliceName()+")"; + else + return self.getPath(); + } + } + + private static class ElementDefinitionComparer implements Comparator { + + private boolean inExtension; + private StructureDefinition src; + private List snapshot; + private int prefixLength; + private String base; + private String name; + private String baseName; + private Set errors = new HashSet(); + + public ElementDefinitionComparer(boolean inExtension, StructureDefinition src, List snapshot, String base, int prefixLength, String name, String baseName) { + this.inExtension = inExtension; + this.src = src; + this.snapshot = snapshot; + this.prefixLength = prefixLength; + this.base = base; + if (Utilities.isAbsoluteUrl(base)) { + this.base = urlTail(base); + } + this.name = name; + this.baseName = baseName; + } + + @Override + public int compare(ElementDefinitionHolder o1, ElementDefinitionHolder o2) { + if (o1.getBaseIndex() == 0) { + o1.setBaseIndex(find(o1.getSelf().getPath(), true)); + } + if (o2.getBaseIndex() == 0) { + o2.setBaseIndex(find(o2.getSelf().getPath(), true)); + } + return o1.getBaseIndex() - o2.getBaseIndex(); + } + + private int find(String path, boolean mandatory) { + String op = path; + int lc = 0; + String actual = base+path.substring(prefixLength); + for (int i = 0; i < snapshot.size(); i++) { + String p = snapshot.get(i).getPath(); + if (p.equals(actual)) { + return i; + } + if (p.endsWith("[x]") && actual.startsWith(p.substring(0, p.length()-3)) && !(actual.endsWith("[x]")) && !actual.substring(p.length()-3).contains(".")) { + return i; + } + if (actual.endsWith("[x]") && p.startsWith(actual.substring(0, actual.length()-3)) && !p.substring(actual.length()-3).contains(".")) { + return i; + } + if (path.startsWith(p+".") && snapshot.get(i).hasContentReference()) { + String ref = snapshot.get(i).getContentReference(); + if (ref.substring(1, 2).toUpperCase().equals(ref.substring(1,2))) { + actual = base+(ref.substring(1)+"."+path.substring(p.length()+1)).substring(prefixLength); + path = actual; + } else if (ref.startsWith("http:")) { + actual = base+(ref.substring(ref.indexOf("#")+1)+"."+path.substring(p.length()+1)).substring(prefixLength); + path = actual; + } else { + // Older versions of FHIR (e.g. 2016May) had reference of the style #parameter instead of #Parameters.parameter, so we have to handle that + actual = base+(path.substring(0, path.indexOf(".")+1) + ref.substring(1)+"."+path.substring(p.length()+1)).substring(prefixLength); + path = actual; + } + + i = 0; + lc++; + if (lc > MAX_RECURSION_LIMIT) + throw new Error("Internal recursion detection: find() loop path recursion > "+MAX_RECURSION_LIMIT+" - check paths are valid (for path "+path+"/"+op+")"); + } + } + if (mandatory) { + if (prefixLength == 0) + errors.add("Differential contains path "+path+" which is not found in the base "+baseName); + else + errors.add("Differential contains path "+path+" which is actually "+actual+", which is not found in the in base "+ baseName); + } + return 0; + } + + public void checkForErrors(List errorList) { + if (errors.size() > 0) { +// CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); +// for (String s : errors) +// b.append("StructureDefinition "+name+": "+s); +// throw new DefinitionException(b.toString()); + for (String s : errors) + if (s.startsWith("!")) + errorList.add("!StructureDefinition "+name+": "+s.substring(1)); + else + errorList.add("StructureDefinition "+name+": "+s); + } + } + } + + + public void sortDifferential(StructureDefinition base, StructureDefinition diff, String name, List errors, boolean errorIfChanges) throws FHIRException { + int index = 0; + for (ElementDefinition ed : diff.getDifferential().getElement()) { + ed.setUserData(UserDataNames.SNAPSHOT_SORT_ed_index, Integer.toString(index)); + index++; + } + List original = new ArrayList<>(); + original.addAll(diff.getDifferential().getElement()); + final List diffList = diff.getDifferential().getElement(); + int lastCount = diffList.size(); + // first, we move the differential elements into a tree + if (diffList.isEmpty()) + return; + + ElementDefinitionHolder edh = null; + int i = 0; + if (diffList.get(0).getPath().contains(".")) { + String newPath = diffList.get(0).getPath().split("\\.")[0]; + ElementDefinition e = new ElementDefinition(newPath); + edh = new ElementDefinitionHolder(e, true); + } else { + edh = new ElementDefinitionHolder(diffList.get(0)); + i = 1; + } + + boolean hasSlicing = false; + List paths = new ArrayList(); // in a differential, slicing may not be stated explicitly + for(ElementDefinition elt : diffList) { + if (elt.hasSlicing() || paths.contains(elt.getPath())) { + hasSlicing = true; + break; + } + paths.add(elt.getPath()); + } + + processElementsIntoTree(edh, i, diff.getDifferential().getElement()); + + // now, we sort the siblings throughout the tree + ElementDefinitionComparer cmp = new ElementDefinitionComparer(true, base, base.getSnapshot().getElement(), "", 0, name, base.getType()); + sortElements(edh, cmp, errors); + + // now, we serialise them back to a list + List newDiff = new ArrayList<>(); + writeElements(edh, newDiff); + if (errorIfChanges) { + compareDiffs(original, newDiff, errors); + } + diffList.clear(); + diffList.addAll(newDiff); + + if (lastCount != diffList.size()) + errors.add("Sort failed: counts differ; at least one of the paths in the differential is illegal"); + } + + private void compareDiffs(List diffList, List newDiff, List errors) { + if (diffList.size() != newDiff.size()) { + errors.add("The diff list size changed when sorting - was "+diffList.size()+" is now "+newDiff.size()+ + " ["+CommaSeparatedStringBuilder.buildObjects(diffList)+"]/["+CommaSeparatedStringBuilder.buildObjects(newDiff)+"]"); + } else { + for (int i = 0; i < Integer.min(diffList.size(), newDiff.size()); i++) { + ElementDefinition e = diffList.get(i); + ElementDefinition n = newDiff.get(i); + if (!n.getPath().equals(e.getPath())) { + errors.add("The element "+(e.hasId() ? e.getId() : e.getPath())+" @diff["+e.getUserString(UserDataNames.SNAPSHOT_SORT_ed_index)+"] is out of order (and maybe others after it)"); + return; + } + } + } + } + + + private int processElementsIntoTree(ElementDefinitionHolder edh, int i, List list) { + String path = edh.getSelf().getPath(); + final String prefix = path + "."; + while (i < list.size() && list.get(i).getPath().startsWith(prefix)) { + if (list.get(i).getPath().substring(prefix.length()+1).contains(".")) { + String newPath = prefix + list.get(i).getPath().substring(prefix.length()).split("\\.")[0]; + ElementDefinition e = new ElementDefinition(newPath); + ElementDefinitionHolder child = new ElementDefinitionHolder(e, true); + edh.getChildren().add(child); + i = processElementsIntoTree(child, i, list); + + } else { + ElementDefinitionHolder child = new ElementDefinitionHolder(list.get(i)); + edh.getChildren().add(child); + i = processElementsIntoTree(child, i+1, list); + } + } + return i; + } + + private void sortElements(ElementDefinitionHolder edh, ElementDefinitionComparer cmp, List errors) throws FHIRException { + if (edh.getChildren().size() == 1) + // special case - sort needsto allocate base numbers, but there'll be no sort if there's only 1 child. So in that case, we just go ahead and allocated base number directly + edh.getChildren().get(0).baseIndex = cmp.find(edh.getChildren().get(0).getSelf().getPath(), false); + else + Collections.sort(edh.getChildren(), cmp); + if (debug) { + cmp.checkForErrors(errors); + } + + for (ElementDefinitionHolder child : edh.getChildren()) { + if (child.getChildren().size() > 0) { + ElementDefinitionComparer ccmp = getComparer(cmp, child); + if (ccmp != null) { + sortElements(child, ccmp, errors); + } + } + } + } + + public ElementDefinitionComparer getComparer(ElementDefinitionComparer cmp, ElementDefinitionHolder child) throws FHIRException, Error { + // what we have to check for here is running off the base profile into a data type profile + ElementDefinition ed = cmp.snapshot.get(child.getBaseIndex()); + ElementDefinitionComparer ccmp; + if (ed.getType().isEmpty() || isAbstract(ed.getType().get(0).getWorkingCode()) || ed.getType().get(0).getWorkingCode().equals(ed.getPath())) { + if (ed.hasType() && "Resource".equals(ed.getType().get(0).getWorkingCode()) && (child.getSelf().hasType() && child.getSelf().getType().get(0).hasProfile())) { + if (child.getSelf().getType().get(0).getProfile().size() > 1) { + throw new FHIRException(context.formatMessage(I18nConstants.UNHANDLED_SITUATION_RESOURCE_IS_PROFILED_TO_MORE_THAN_ONE_OPTION__CANNOT_SORT_PROFILE)); + } + StructureDefinition profile = findProfile(child.getSelf().getType().get(0).getProfile().get(0).getValue(), cmp.src); + while (profile != null && profile.getDerivation() == TypeDerivationRule.CONSTRAINT) { + profile = findProfile(profile.getBaseDefinition(), profile); + } + if (profile==null) { + ccmp = null; // this might happen before everything is loaded. And we don't so much care about sot order in this case + } else { + ccmp = new ElementDefinitionComparer(true, profile, profile.getSnapshot().getElement(), profile.getType(), child.getSelf().getPath().length(), cmp.name, profile.present()); + } + } else { + ccmp = new ElementDefinitionComparer(true, cmp.src, cmp.snapshot, cmp.base, cmp.prefixLength, cmp.name, cmp.name); + } + } else if (ed.getType().get(0).getWorkingCode().equals("Extension") && child.getSelf().getType().size() == 1 && child.getSelf().getType().get(0).hasProfile()) { + StructureDefinition profile = findProfile(child.getSelf().getType().get(0).getProfile().get(0).getValue(), cmp.src); + if (profile==null) + ccmp = null; // this might happen before everything is loaded. And we don't so much care about sot order in this case + else + ccmp = new ElementDefinitionComparer(true, profile, profile.getSnapshot().getElement(), resolveType(ed.getType().get(0).getWorkingCode(), cmp.src), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else if (ed.getType().size() == 1 && !ed.getType().get(0).getWorkingCode().equals("*")) { + StructureDefinition profile = findProfile(sdNs(ed.getType().get(0).getWorkingCode()), cmp.src); + if (profile==null) + throw new FHIRException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_PROFILE__IN_ELEMENT_, sdNs(ed.getType().get(0).getWorkingCode()), ed.getPath())); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), resolveType(ed.getType().get(0).getWorkingCode(), cmp.src), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else if (child.getSelf().getType().size() == 1) { + StructureDefinition profile = findProfile(sdNs(child.getSelf().getType().get(0).getWorkingCode()), cmp.src); + if (profile==null) + throw new FHIRException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_PROFILE__IN_ELEMENT_, sdNs(ed.getType().get(0).getWorkingCode()), ed.getPath())); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), child.getSelf().getType().get(0).getWorkingCode(), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else if (ed.getPath().endsWith("[x]") && !child.getSelf().getPath().endsWith("[x]")) { + String edLastNode = ed.getPath().replaceAll("(.*\\.)*(.*)", "$2"); + String childLastNode = child.getSelf().getPath().replaceAll("(.*\\.)*(.*)", "$2"); + String p = childLastNode.substring(edLastNode.length()-3); + if (isPrimitive(Utilities.uncapitalize(p))) + p = Utilities.uncapitalize(p); + StructureDefinition sd = findProfile(sdNs(p), cmp.src); + if (sd == null) + throw new Error(context.formatMessage(I18nConstants.UNABLE_TO_FIND_PROFILE__AT_, p, ed.getId())); + ccmp = new ElementDefinitionComparer(false, sd, sd.getSnapshot().getElement(), p, child.getSelf().getPath().length(), cmp.name, sd.present()); + } else if (child.getSelf().hasType() && child.getSelf().getType().get(0).getWorkingCode().equals("Reference")) { + for (TypeRefComponent t: child.getSelf().getType()) { + if (!t.getWorkingCode().equals("Reference")) { + throw new Error(context.formatMessage(I18nConstants.CANT_HAVE_CHILDREN_ON_AN_ELEMENT_WITH_A_POLYMORPHIC_TYPE__YOU_MUST_SLICE_AND_CONSTRAIN_THE_TYPES_FIRST_SORTELEMENTS_, ed.getPath(), typeCode(ed.getType()))); + } + } + StructureDefinition profile = findProfile(sdNs(ed.getType().get(0).getWorkingCode()), cmp.src); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), ed.getType().get(0).getWorkingCode(), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else if (!child.getSelf().hasType() && ed.getType().get(0).getWorkingCode().equals("Reference")) { + for (TypeRefComponent t: ed.getType()) { + if (!t.getWorkingCode().equals("Reference")) { + throw new Error(context.formatMessage(I18nConstants.NOT_HANDLED_YET_SORTELEMENTS_, ed.getPath(), typeCode(ed.getType()))); + } + } + StructureDefinition profile = findProfile(sdNs(ed.getType().get(0).getWorkingCode()), cmp.src); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), ed.getType().get(0).getWorkingCode(), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else { + // this is allowed if we only profile the extensions + StructureDefinition profile = findProfile(sdNs("Element"), cmp.src); + if (profile==null) + throw new FHIRException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_PROFILE__IN_ELEMENT_, sdNs(ed.getType().get(0).getWorkingCode()), ed.getPath())); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), "Element", child.getSelf().getPath().length(), cmp.name, profile.present()); +// throw new Error("Not handled yet (sortElements: "+ed.getPath()+":"+typeCode(ed.getType())+")"); + } + return ccmp; + } + + private String resolveType(String code, StructureDefinition src) { + if (Utilities.isAbsoluteUrl(code)) { + StructureDefinition sd = findProfile(code, src); + if (sd != null) { + return sd.getType(); + } + } + return code; + } + + private static String sdNs(String type) { + return sdNs(type, null); + } + + public static String sdNs(String type, String overrideVersionNs) { + if (Utilities.isAbsoluteUrl(type)) + return type; + else if (overrideVersionNs != null) + return Utilities.pathURL(overrideVersionNs, type); + else + return "http://hl7.org/fhir/StructureDefinition/"+type; + } + + + private boolean isAbstract(String code) { + return code.equals("Element") || code.equals("BackboneElement") || code.equals("Resource") || code.equals("DomainResource"); + } + + + private void writeElements(ElementDefinitionHolder edh, List list) { + if (!edh.isPlaceHolder()) + list.add(edh.getSelf()); + for (ElementDefinitionHolder child : edh.getChildren()) { + writeElements(child, list); + } + } + + /** + * First compare element by path then by name if same + */ + private static class ElementNameCompare implements Comparator { + + @Override + public int compare(ElementDefinition o1, ElementDefinition o2) { + String path1 = normalizePath(o1); + String path2 = normalizePath(o2); + int cmp = path1.compareTo(path2); + if (cmp == 0) { + String name1 = o1.hasSliceName() ? o1.getSliceName() : ""; + String name2 = o2.hasSliceName() ? o2.getSliceName() : ""; + cmp = name1.compareTo(name2); + } + return cmp; + } + + private static String normalizePath(ElementDefinition e) { + if (!e.hasPath()) return ""; + String path = e.getPath(); + // if sorting element names make sure onset[x] appears before onsetAge, onsetDate, etc. + // so strip off the [x] suffix when comparing the path names. + if (path.endsWith("[x]")) { + path = path.substring(0, path.length()-3); + } + return path; + } + + } + + + // generate schematrons for the rules in a structure definition + public void generateSchematrons(OutputStream dest, StructureDefinition structure) throws IOException, DefinitionException { + if (structure.getDerivation() != TypeDerivationRule.CONSTRAINT) + throw new DefinitionException(context.formatMessage(I18nConstants.NOT_THE_RIGHT_KIND_OF_STRUCTURE_TO_GENERATE_SCHEMATRONS_FOR)); + if (!structure.hasSnapshot()) + throw new DefinitionException(context.formatMessage(I18nConstants.NEEDS_A_SNAPSHOT)); + + StructureDefinition base = findProfile(structure.getBaseDefinition(), structure); + + if (base != null) { + SchematronWriter sch = new SchematronWriter(dest, SchematronType.PROFILE, base.getName()); + + ElementDefinition ed = structure.getSnapshot().getElement().get(0); + generateForChildren(sch, "f:"+ed.getPath(), ed, structure, base); + sch.dump(); + } + } + + public StructureDefinition findProfile(String url, Resource source) { + if (url == null) { + return null; + } + String u = url; + String v = null; + if (url.contains("|")) { + v = url.substring(u.indexOf("|")+1); + u = u.substring(0, u.indexOf("|")); + } + if (parameters != null) { + if (v == null) { + for (Parameters.ParametersParameterComponent p : parameters.getParameter()) { + if ("default-profile-version".equals(p.getName())) { + String s = p.getValue().primitiveValue(); + if (s.startsWith(u + "|")) { + v = s.substring(s.indexOf("|") + 1); + } + } + } + } + for (Parameters.ParametersParameterComponent p : parameters.getParameter()) { + if ("force-profile-version".equals(p.getName())) { + String s = p.getValue().primitiveValue(); + if (s.startsWith(u + "|")) { + v = s.substring(s.indexOf("|") + 1); + } + } + } + for (Parameters.ParametersParameterComponent p : parameters.getParameter()) { + if ("check-profile-version".equals(p.getName())) { + String s = p.getValue().primitiveValue(); + if (s.startsWith(u + "|")) { + String vc = s.substring(s.indexOf("|") + 1); + if (!vc.equals(v)) { + throw new FHIRException("Profile resolves to " + v + " which does not match required profile version v" + vc); + } + } + } + } + } + // switch the extension pack in + if (source != null && source.getSourcePackage() != null && source.getSourcePackage().isCore()) { + source = null; + } + // matchbox patch #424 findProfile gets called by FHIRPathEngine + StructureDefinition sd = context.fetchResource(StructureDefinition.class, u, v, source); + if (sd == null) { + if (makeXVer().matchingUrl(u) && xver.status(u) == XVerExtensionStatus.Valid) { + sd = xver.getDefinition(u); + if (sd!=null) { + generateSnapshot(context.fetchTypeDefinition("Extension"), sd, sd.getUrl(), context.getSpecUrl(), sd.getName()); + } + } + } + return sd; + } + + // generate a CSV representation of the structure definition + public void generateCsv(OutputStream dest, StructureDefinition structure, boolean asXml) throws IOException, DefinitionException, Exception { + if (!structure.hasSnapshot()) + throw new DefinitionException(context.formatMessage(I18nConstants.NEEDS_A_SNAPSHOT)); + + CSVWriter csv = new CSVWriter(dest, structure, asXml); + + for (ElementDefinition child : structure.getSnapshot().getElement()) { + csv.processElement(null, child); + } + csv.dump(); + } + + // generate a CSV representation of the structure definition + public void addToCSV(CSVWriter csv, StructureDefinition structure) throws IOException, DefinitionException, Exception { + if (!structure.hasSnapshot()) + throw new DefinitionException(context.formatMessage(I18nConstants.NEEDS_A_SNAPSHOT)); + + for (ElementDefinition child : structure.getSnapshot().getElement()) { + csv.processElement(structure, child); + } + } + + + private class Slicer extends ElementDefinitionSlicingComponent { + String criteria = ""; + String name = ""; + boolean check; + public Slicer(boolean cantCheck) { + super(); + this.check = cantCheck; + } + } + + private Slicer generateSlicer(ElementDefinition child, ElementDefinitionSlicingComponent slicing, StructureDefinition structure) { + // given a child in a structure, it's sliced. figure out the slicing xpath + if (child.getPath().endsWith(".extension")) { + ElementDefinition ued = getUrlFor(structure, child); + if ((ued == null || !ued.hasFixed()) && !(child.hasType() && (child.getType().get(0).hasProfile()))) + return new Slicer(false); + else { + Slicer s = new Slicer(true); + String url = (ued == null || !ued.hasFixed()) ? child.getType().get(0).getProfile().get(0).getValue() : ((UriType) ued.getFixed()).asStringValue(); + s.name = " with URL = '"+url+"'"; + s.criteria = "[@url = '"+url+"']"; + return s; + } + } else + return new Slicer(false); + } + + private void generateForChildren(SchematronWriter sch, String xpath, ElementDefinition ed, StructureDefinition structure, StructureDefinition base) throws IOException { + // generateForChild(txt, structure, child); + List children = getChildList(structure, ed); + String sliceName = null; + ElementDefinitionSlicingComponent slicing = null; + for (ElementDefinition child : children) { + String name = tail(child.getPath()); + if (child.hasSlicing()) { + sliceName = name; + slicing = child.getSlicing(); + } else if (!name.equals(sliceName)) + slicing = null; + + ElementDefinition based = getByPath(base, child.getPath()); + boolean doMin = (child.getMin() > 0) && (based == null || (child.getMin() != based.getMin())); + boolean doMax = child.hasMax() && !child.getMax().equals("*") && (based == null || (!child.getMax().equals(based.getMax()))); + Slicer slicer = slicing == null ? new Slicer(true) : generateSlicer(child, slicing, structure); + if (slicer.check) { + if (doMin || doMax) { + Section s = sch.section(xpath); + Rule r = s.rule(xpath); + if (doMin) + r.assrt("count(f:"+name+slicer.criteria+") >= "+Integer.toString(child.getMin()), name+slicer.name+": minimum cardinality of '"+name+"' is "+Integer.toString(child.getMin())); + if (doMax) + r.assrt("count(f:"+name+slicer.criteria+") <= "+child.getMax(), name+slicer.name+": maximum cardinality of '"+name+"' is "+child.getMax()); + } + } + } +/// xpath has been removed +// for (ElementDefinitionConstraintComponent inv : ed.getConstraint()) { +// if (inv.hasXpath()) { +// Section s = sch.section(ed.getPath()); +// Rule r = s.rule(xpath); +// r.assrt(inv.getXpath(), (inv.hasId() ? inv.getId()+": " : "")+inv.getHuman()+(inv.hasUserData(IS_DERIVED) ? " (inherited)" : "")); +// } +// } + if (!ed.hasContentReference()) { + for (ElementDefinition child : children) { + String name = tail(child.getPath()); + generateForChildren(sch, xpath+"/f:"+name, child, structure, base); + } + } + } + + + + + private ElementDefinition getByPath(StructureDefinition base, String path) { + for (ElementDefinition ed : base.getSnapshot().getElement()) { + if (ed.getPath().equals(path)) + return ed; + if (ed.getPath().endsWith("[x]") && ed.getPath().length() <= path.length()-3 && ed.getPath().substring(0, ed.getPath().length()-3).equals(path.substring(0, ed.getPath().length()-3))) + return ed; + } + return null; + } + + + public void setIds(StructureDefinition sd, boolean checkFirst) throws DefinitionException { + if (!checkFirst || !sd.hasDifferential() || hasMissingIds(sd.getDifferential().getElement())) { + if (!sd.hasDifferential()) + sd.setDifferential(new StructureDefinitionDifferentialComponent()); + generateIds(sd.getDifferential().getElement(), sd.getUrl(), sd.getType(), sd); + } + if (!checkFirst || !sd.hasSnapshot() || hasMissingIds(sd.getSnapshot().getElement())) { + if (!sd.hasSnapshot()) + sd.setSnapshot(new StructureDefinitionSnapshotComponent()); + generateIds(sd.getSnapshot().getElement(), sd.getUrl(), sd.getType(), sd); + } + } + + + private boolean hasMissingIds(List list) { + for (ElementDefinition ed : list) { + if (!ed.hasId()) + return true; + } + return false; + } + + private class SliceList { + + private Map slices = new HashMap<>(); + + public void seeElement(ElementDefinition ed) { + Iterator> iter = slices.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + if (entry.getKey().length() > ed.getPath().length() || entry.getKey().equals(ed.getPath())) + iter.remove(); + } + + if (ed.hasSliceName()) + slices.put(ed.getPath(), ed.getSliceName()); + } + + public String[] analyse(List paths) { + String s = paths.get(0); + String[] res = new String[paths.size()]; + res[0] = null; + for (int i = 1; i < paths.size(); i++) { + s = s + "."+paths.get(i); + if (slices.containsKey(s)) + res[i] = slices.get(s); + else + res[i] = null; + } + return res; + } + + } + + protected void generateIds(List list, String name, String type, StructureDefinition srcSD) throws DefinitionException { + if (list.isEmpty()) + return; + + Map idList = new HashMap(); + Map replacedIds = new HashMap(); + + SliceList sliceInfo = new SliceList(); + // first pass, update the element ids + for (ElementDefinition ed : list) { + generateIdForElement(list, name, type, srcSD, ed, sliceInfo, replacedIds, idList); + } + // second path - fix up any broken path based id references + + } + + private void generateIdForElement(List list, String name, String type, StructureDefinition srcSD, ElementDefinition ed, SliceList sliceInfo, Map replacedIds, Map idList) { + List paths = new ArrayList(); + if (!ed.hasPath()) + throw new DefinitionException(context.formatMessage(I18nConstants.NO_PATH_ON_ELEMENT_DEFINITION__IN_, Integer.toString(list.indexOf(ed)), name)); + sliceInfo.seeElement(ed); + String[] pl = ed.getPath().split("\\."); + for (int i = paths.size(); i < pl.length; i++) // -1 because the last path is in focus + paths.add(pl[i]); + String slices[] = sliceInfo.analyse(paths); + + StringBuilder b = new StringBuilder(); + b.append(paths.get(0)); + for (int i = 1; i < paths.size(); i++) { + b.append("."); + String s = paths.get(i); + String p = slices[i]; + b.append(fixChars(s)); + if (p != null) { + b.append(":"); + b.append(p); + } + } + String bs = b.toString(); + if (ed.hasId()) { + replacedIds.put(ed.getId(), ed.getPath()); + } + ed.setId(bs); + if (idList.containsKey(bs)) { + addMessage(new ValidationMessage(Source.ProfileValidator, IssueType.BUSINESSRULE, name +"."+bs, context.formatMessage(I18nConstants.SAME_ID_ON_MULTIPLE_ELEMENTS__IN_, bs, idList.get(bs), ed.getPath(), name), IssueSeverity.ERROR)); + } + idList.put(bs, ed.getPath()); + if (ed.hasContentReference() && ed.getContentReference().startsWith("#")) { + String s = ed.getContentReference(); + String typeURL = getUrlForSource(type, srcSD); + if (replacedIds.containsKey(s.substring(1))) { + ed.setContentReference(typeURL+"#"+ replacedIds.get(s.substring(1))); + } else { + ed.setContentReference(typeURL+s); + } + } + } + + + private String getUrlForSource(String type, StructureDefinition srcSD) { + if (srcSD.getKind() == StructureDefinitionKind.LOGICAL) { + return srcSD.getUrl(); + } else { + return "http://hl7.org/fhir/StructureDefinition/"+type; + } + } + + private Object fixChars(String s) { + return s.replace("_", "-"); + } + + +// private String describeExtension(ElementDefinition ed) { +// if (!ed.hasType() || !ed.getTypeFirstRep().hasProfile()) +// return ""; +// return "$"+urlTail(ed.getTypeFirstRep().getProfile()); +// } +// + + private static String urlTail(String profile) { + return profile.contains("/") ? profile.substring(profile.lastIndexOf("/")+1) : profile; + } +// +// +// private String checkName(String name) { +//// if (name.contains(".")) +////// throw new Exception("Illegal name "+name+": no '.'"); +//// if (name.contains(" ")) +//// throw new Exception("Illegal name "+name+": no spaces"); +// StringBuilder b = new StringBuilder(); +// for (char c : name.toCharArray()) { +// if (!Utilities.existsInList(c, '.', ' ', ':', '"', '\'', '(', ')', '&', '[', ']')) +// b.append(c); +// } +// return b.toString().toLowerCase(); +// } +// +// +// private int charCount(String path, char t) { +// int res = 0; +// for (char ch : path.toCharArray()) { +// if (ch == t) +// res++; +// } +// return res; +// } + +// +//private void generateForChild(TextStreamWriter txt, +// StructureDefinition structure, ElementDefinition child) { +// // TODO Auto-generated method stub +// +//} + + private interface ExampleValueAccessor { + DataType getExampleValue(ElementDefinition ed); + String getId(); + } + + private class BaseExampleValueAccessor implements ExampleValueAccessor { + @Override + public DataType getExampleValue(ElementDefinition ed) { + if (ed.hasFixed()) + return ed.getFixed(); + if (ed.hasExample()) + return ed.getExample().get(0).getValue(); + else + return null; + } + + @Override + public String getId() { + return "-genexample"; + } + } + + private class ExtendedExampleValueAccessor implements ExampleValueAccessor { + private String index; + + public ExtendedExampleValueAccessor(String index) { + this.index = index; + } + @Override + public DataType getExampleValue(ElementDefinition ed) { + if (ed.hasFixed()) + return ed.getFixed(); + for (Extension ex : ed.getExtension()) { + String ndx = ExtensionUtilities.readStringExtension(ex, "index"); + DataType value = ExtensionUtilities.getExtension(ex, "exValue").getValue(); + if (index.equals(ndx) && value != null) + return value; + } + return null; + } + @Override + public String getId() { + return "-genexample-"+index; + } + } + + public List generateExamples(StructureDefinition sd, boolean evenWhenNoExamples) throws FHIRException { + List examples = new ArrayList(); + if (sd.hasSnapshot()) { + if (evenWhenNoExamples || hasAnyExampleValues(sd)) + examples.add(generateExample(sd, new BaseExampleValueAccessor())); + for (int i = 1; i <= 50; i++) { + if (hasAnyExampleValues(sd, Integer.toString(i))) + examples.add(generateExample(sd, new ExtendedExampleValueAccessor(Integer.toString(i)))); + } + } + return examples; + } + + private org.hl7.fhir.r5.elementmodel.Element generateExample(StructureDefinition profile, ExampleValueAccessor accessor) throws FHIRException { + ElementDefinition ed = profile.getSnapshot().getElementFirstRep(); + org.hl7.fhir.r5.elementmodel.Element r = new org.hl7.fhir.r5.elementmodel.Element(ed.getPath(), new Property(context, ed, profile)); + SourcedChildDefinitions children = getChildMap(profile, ed, true); + for (ElementDefinition child : children.getList()) { + if (child.getPath().endsWith(".id")) { + org.hl7.fhir.r5.elementmodel.Element id = new org.hl7.fhir.r5.elementmodel.Element("id", new Property(context, child, profile)); + id.setValue(profile.getId()+accessor.getId()); + r.getChildren().add(id); + } else { + org.hl7.fhir.r5.elementmodel.Element e = createExampleElement(profile, child, accessor); + if (e != null) + r.getChildren().add(e); + } + } + return r; + } + + private org.hl7.fhir.r5.elementmodel.Element createExampleElement(StructureDefinition profile, ElementDefinition ed, ExampleValueAccessor accessor) throws FHIRException { + DataType v = accessor.getExampleValue(ed); + if (v != null) { + return new ObjectConverter(context).convert(new Property(context, ed, profile), v); + } else { + org.hl7.fhir.r5.elementmodel.Element res = new org.hl7.fhir.r5.elementmodel.Element(tail(ed.getPath()), new Property(context, ed, profile)); + boolean hasValue = false; + SourcedChildDefinitions children = getChildMap(profile, ed, true); + for (ElementDefinition child : children.getList()) { + if (!child.hasContentReference()) { + org.hl7.fhir.r5.elementmodel.Element e = createExampleElement(profile, child, accessor); + if (e != null) { + hasValue = true; + res.getChildren().add(e); + } + } + } + if (hasValue) + return res; + else + return null; + } + } + + private boolean hasAnyExampleValues(StructureDefinition sd, String index) { + for (ElementDefinition ed : sd.getSnapshot().getElement()) + for (Extension ex : ed.getExtension()) { + String ndx = ExtensionUtilities.readStringExtension(ex, "index"); + Extension exv = ExtensionUtilities.getExtension(ex, "exValue"); + if (exv != null) { + DataType value = exv.getValue(); + if (index.equals(ndx) && value != null) + return true; + } + } + return false; + } + + + private boolean hasAnyExampleValues(StructureDefinition sd) { + for (ElementDefinition ed : sd.getSnapshot().getElement()) + if (ed.hasExample()) + return true; + return false; + } + + + public void populateLogicalSnapshot(StructureDefinition sd) throws FHIRException { + sd.getSnapshot().getElement().add(sd.getDifferential().getElementFirstRep().copy()); + + if (sd.hasBaseDefinition()) { + StructureDefinition base = findProfile(sd.getBaseDefinition(), sd); + if (base == null) + throw new FHIRException(context.formatMessage(I18nConstants.UNABLE_TO_FIND_BASE_DEFINITION_FOR_LOGICAL_MODEL__FROM_, sd.getBaseDefinition(), sd.getUrl())); + copyElements(sd, base.getSnapshot().getElement()); + } + copyElements(sd, sd.getDifferential().getElement()); + } + + + private void copyElements(StructureDefinition sd, List list) { + for (ElementDefinition ed : list) { + if (ed.getPath().contains(".")) { + ElementDefinition n = ed.copy(); + n.setPath(sd.getSnapshot().getElementFirstRep().getPath()+"."+ed.getPath().substring(ed.getPath().indexOf(".")+1)); + sd.getSnapshot().addElement(n); + } + } + } + + + public void cleanUpDifferential(StructureDefinition sd) { + if (sd.getDifferential().getElement().size() > 1) + cleanUpDifferential(sd, 1); + } + + private void cleanUpDifferential(StructureDefinition sd, int start) { + int level = Utilities.charCount(sd.getDifferential().getElement().get(start).getPath(), '.'); + int c = start; + int len = sd.getDifferential().getElement().size(); + HashSet paths = new HashSet(); + while (c < len && Utilities.charCount(sd.getDifferential().getElement().get(c).getPath(), '.') == level) { + ElementDefinition ed = sd.getDifferential().getElement().get(c); + if (!paths.contains(ed.getPath())) { + paths.add(ed.getPath()); + int ic = c+1; + while (ic < len && Utilities.charCount(sd.getDifferential().getElement().get(ic).getPath(), '.') > level) + ic++; + ElementDefinition slicer = null; + List slices = new ArrayList(); + slices.add(ed); + while (ic < len && Utilities.charCount(sd.getDifferential().getElement().get(ic).getPath(), '.') == level) { + ElementDefinition edi = sd.getDifferential().getElement().get(ic); + if (ed.getPath().equals(edi.getPath())) { + if (slicer == null) { + slicer = new ElementDefinition(); + slicer.setPath(edi.getPath()); + slicer.getSlicing().setRules(SlicingRules.OPEN); + sd.getDifferential().getElement().add(c, slicer); + c++; + ic++; + } + slices.add(edi); + } + ic++; + while (ic < len && Utilities.charCount(sd.getDifferential().getElement().get(ic).getPath(), '.') > level) + ic++; + } + // now we're at the end, we're going to figure out the slicing discriminator + if (slicer != null) + determineSlicing(slicer, slices); + } + c++; + if (c < len && Utilities.charCount(sd.getDifferential().getElement().get(c).getPath(), '.') > level) { + cleanUpDifferential(sd, c); + c++; + while (c < len && Utilities.charCount(sd.getDifferential().getElement().get(c).getPath(), '.') > level) + c++; + } + } + } + + + private void determineSlicing(ElementDefinition slicer, List slices) { + // first, name them + int i = 0; + for (ElementDefinition ed : slices) { + if (ed.hasUserData(UserDataNames.SNAPSHOT_slice_name)) { + ed.setSliceName(ed.getUserString(UserDataNames.SNAPSHOT_slice_name)); + } else { + i++; + ed.setSliceName("slice-"+Integer.toString(i)); + } + } + // now, the hard bit, how are they differentiated? + // right now, we hard code this... + if (slicer.getPath().endsWith(".extension") || slicer.getPath().endsWith(".modifierExtension")) + slicer.getSlicing().addDiscriminator().setType(DiscriminatorType.VALUE).setPath("url"); + else if (slicer.getPath().equals("DiagnosticReport.result")) + slicer.getSlicing().addDiscriminator().setType(DiscriminatorType.VALUE).setPath("reference.code"); + else if (slicer.getPath().equals("Observation.related")) + slicer.getSlicing().addDiscriminator().setType(DiscriminatorType.VALUE).setPath("target.reference.code"); + else if (slicer.getPath().equals("Bundle.entry")) + slicer.getSlicing().addDiscriminator().setType(DiscriminatorType.VALUE).setPath("resource.@profile"); + else + throw new Error("No slicing for "+slicer.getPath()); + } + + + public static ElementDefinitionSlicingDiscriminatorComponent interpretR2Discriminator(String discriminator, boolean isExists) { + if (discriminator.endsWith("@pattern")) + return makeDiscriminator(DiscriminatorType.PATTERN, discriminator.length() == 8 ? "" : discriminator.substring(0,discriminator.length()-9)); + if (discriminator.endsWith("@profile")) + return makeDiscriminator(DiscriminatorType.PROFILE, discriminator.length() == 8 ? "" : discriminator.substring(0,discriminator.length()-9)); + if (discriminator.endsWith("@type")) + return makeDiscriminator(DiscriminatorType.TYPE, discriminator.length() == 5 ? "" : discriminator.substring(0,discriminator.length()-6)); + if (discriminator.endsWith("@exists")) + return makeDiscriminator(DiscriminatorType.EXISTS, discriminator.length() == 7 ? "" : discriminator.substring(0,discriminator.length()-8)); + if (isExists) + return makeDiscriminator(DiscriminatorType.EXISTS, discriminator); + return new ElementDefinitionSlicingDiscriminatorComponent().setType(DiscriminatorType.VALUE).setPath(discriminator); + } + + + private static ElementDefinitionSlicingDiscriminatorComponent makeDiscriminator(DiscriminatorType dType, String str) { + return new ElementDefinitionSlicingDiscriminatorComponent().setType(dType).setPath(Utilities.noString(str)? "$this" : str); + } + + + public static String buildR2Discriminator(ElementDefinitionSlicingDiscriminatorComponent t) throws FHIRException { + switch (t.getType()) { + case PROFILE: return t.getPath()+"/@profile"; + case PATTERN: return t.getPath()+"/@pattern"; + case TYPE: return t.getPath()+"/@type"; + case VALUE: return t.getPath(); + case EXISTS: return t.getPath(); // determination of value vs. exists is based on whether there's only 2 slices - one with minOccurs=1 and other with maxOccur=0 + default: throw new FHIRException("Unable to represent "+t.getType().toCode()+":"+t.getPath()+" in R2"); + } + } + + + public static StructureDefinition makeExtensionForVersionedURL(IWorkerContext context, String url) { + String epath = url.substring(54); + if (!epath.contains(".")) + return null; + String type = epath.substring(0, epath.indexOf(".")); + StructureDefinition sd = context.fetchTypeDefinition(type); + if (sd == null) + return null; + ElementDefinition ed = null; + for (ElementDefinition t : sd.getSnapshot().getElement()) { + if (t.getPath().equals(epath)) { + ed = t; + break; + } + } + if (ed == null) + return null; + if ("Element".equals(ed.typeSummary()) || "BackboneElement".equals(ed.typeSummary())) { + return null; + } else { + StructureDefinition template = context.fetchResource(StructureDefinition.class, "http://fhir-registry.smarthealthit.org/StructureDefinition/capabilities"); + StructureDefinition ext = template.copy(); + ext.setUrl(url); + ext.setId("extension-"+epath); + ext.setName("Extension-"+epath); + ext.setTitle("Extension for r4 "+epath); + ext.setStatus(sd.getStatus()); + ext.setDate(sd.getDate()); + ext.getContact().clear(); + ext.getContact().addAll(sd.getContact()); + ext.setFhirVersion(sd.getFhirVersion()); + ext.setDescription(ed.getDefinition()); + ext.getContext().clear(); + ext.addContext().setType(ExtensionContextType.ELEMENT).setExpression(epath.substring(0, epath.lastIndexOf("."))); + ext.getDifferential().getElement().clear(); + ext.getSnapshot().getElement().get(3).setFixed(new UriType(url)); + ext.getSnapshot().getElement().set(4, ed.copy()); + ext.getSnapshot().getElement().get(4).setPath("Extension.value"+Utilities.capitalize(ed.typeSummary())); + return ext; + } + + } + + + public boolean isThrowException() { + return wantThrowExceptions; + } + + + public void setThrowException(boolean exception) { + this.wantThrowExceptions = exception; + } + + + public ValidationOptions getTerminologyServiceOptions() { + return terminologyServiceOptions; + } + + + public void setTerminologyServiceOptions(ValidationOptions terminologyServiceOptions) { + this.terminologyServiceOptions = terminologyServiceOptions; + } + + + public boolean isNewSlicingProcessing() { + return newSlicingProcessing; + } + + + public ProfileUtilities setNewSlicingProcessing(boolean newSlicingProcessing) { + this.newSlicingProcessing = newSlicingProcessing; + return this; + } + + + public boolean isDebug() { + return debug; + } + + + public void setDebug(boolean debug) { + this.debug = debug; + } + + + public String getDefWebRoot() { + return defWebRoot; + } + + + public void setDefWebRoot(String defWebRoot) { + this.defWebRoot = defWebRoot; + if (!this.defWebRoot.endsWith("/")) + this.defWebRoot = this.defWebRoot + '/'; + } + + + public static StructureDefinition makeBaseDefinition(FHIRVersion fhirVersion) { + return makeBaseDefinition(fhirVersion.toCode()); + } + public static StructureDefinition makeBaseDefinition(String fhirVersion) { + StructureDefinition base = new StructureDefinition(); + base.setId("Base"); + base.setUrl("http://hl7.org/fhir/StructureDefinition/Base"); + base.setVersion(fhirVersion); + base.setName("Base"); + base.setStatus(PublicationStatus.ACTIVE); + base.setDate(new Date()); + base.setFhirVersion(FHIRVersion.fromCode(fhirVersion)); + base.setKind(StructureDefinitionKind.COMPLEXTYPE); + base.setAbstract(true); + base.setType("Base"); + base.setWebPath("http://build.fhir.org/types.html#Base"); + ElementDefinition e = base.getSnapshot().getElementFirstRep(); + e.setId("Base"); + e.setPath("Base"); + e.setMin(0); + e.setMax("*"); + e.getBase().setPath("Base"); + e.getBase().setMin(0); + e.getBase().setMax("*"); + e.setIsModifier(false); + e = base.getDifferential().getElementFirstRep(); + e.setId("Base"); + e.setPath("Base"); + e.setMin(0); + e.setMax("*"); + return base; + } + + public XVerExtensionManager getXver() { + return xver; + } + + public ProfileUtilities setXver(XVerExtensionManager xver) { + this.xver = xver; + return this; + } + + + private List readChoices(ElementDefinition ed, List children) { + List result = new ArrayList<>(); + for (ElementDefinitionConstraintComponent c : ed.getConstraint()) { + ElementChoiceGroup grp = processConstraint(children, c); + if (grp != null) { + result.add(grp); + } + } + return result; + } + + public ElementChoiceGroup processConstraint(List children, ElementDefinitionConstraintComponent c) { + if (!c.hasExpression()) { + return null; + } + ExpressionNode expr = null; + try { + expr = fpe.parse(c.getExpression()); + } catch (Exception e) { + return null; + } + if (expr.getKind() != Kind.Group || expr.getOpNext() == null || !(expr.getOperation() == Operation.Equals || expr.getOperation() == Operation.LessOrEqual)) { + return null; + } + ExpressionNode n1 = expr.getGroup(); + ExpressionNode n2 = expr.getOpNext(); + if (n2.getKind() != Kind.Constant || n2.getInner() != null || n2.getOpNext() != null || !"1".equals(n2.getConstant().primitiveValue())) { + return null; + } + ElementChoiceGroup grp = new ElementChoiceGroup(c.getKey(), expr.getOperation() == Operation.Equals); + while (n1 != null) { + if (n1.getKind() != Kind.Name || n1.getInner() != null) { + return null; + } + grp.elements.add(n1.getName()); + if (n1.getOperation() == null || n1.getOperation() == Operation.Union) { + n1 = n1.getOpNext(); + } else { + return null; + } + } + int total = 0; + for (String n : grp.elements) { + boolean found = false; + for (ElementDefinition child : children) { + String name = tail(child.getPath()); + if (n.equals(name)) { + found = true; + if (!"0".equals(child.getMax())) { + total++; + } + } + } + if (!found) { + return null; + } + } + if (total <= 1) { + return null; + } + return grp; + } + + public Set getMasterSourceFileNames() { + return masterSourceFileNames; + } + + public void setMasterSourceFileNames(Set masterSourceFileNames) { + this.masterSourceFileNames = masterSourceFileNames; + } + + + public Set getLocalFileNames() { + return localFileNames; + } + + public void setLocalFileNames(Set localFileNames) { + this.localFileNames = localFileNames; + } + + public ProfileKnowledgeProvider getPkp() { + return pkp; + } + + + public static final String UD_ERROR_STATUS = "error-status"; + public static final int STATUS_OK = 0; + public static final int STATUS_HINT = 1; + public static final int STATUS_WARNING = 2; + public static final int STATUS_ERROR = 3; + public static final int STATUS_FATAL = 4; + private static final String ROW_COLOR_ERROR = "#ffcccc"; + private static final String ROW_COLOR_FATAL = "#ff9999"; + private static final String ROW_COLOR_WARNING = "#ffebcc"; + private static final String ROW_COLOR_HINT = "#ebf5ff"; + private static final String ROW_COLOR_NOT_MUST_SUPPORT = "#d6eaf8"; + + public String getRowColor(ElementDefinition element, boolean isConstraintMode) { + switch (element.getUserInt(UD_ERROR_STATUS)) { + case STATUS_HINT: return ROW_COLOR_HINT; + case STATUS_WARNING: return ROW_COLOR_WARNING; + case STATUS_ERROR: return ROW_COLOR_ERROR; + case STATUS_FATAL: return ROW_COLOR_FATAL; + } + if (isConstraintMode && !element.getMustSupport() && !element.getIsModifier() && element.getPath().contains(".")) + return null; // ROW_COLOR_NOT_MUST_SUPPORT; + else + return null; + } + + public static boolean isExtensionDefinition(StructureDefinition sd) { + return sd.getDerivation() == TypeDerivationRule.CONSTRAINT && sd.getType().equals("Extension"); + } + + public AllowUnknownProfile getAllowUnknownProfile() { + return allowUnknownProfile; + } + + public void setAllowUnknownProfile(AllowUnknownProfile allowUnknownProfile) { + this.allowUnknownProfile = allowUnknownProfile; + } + + public static boolean isSimpleExtension(StructureDefinition sd) { + if (!isExtensionDefinition(sd)) { + return false; + } + ElementDefinition value = sd.getSnapshot().getElementByPath("Extension.value"); + return value != null && !value.isProhibited(); + } + + public static boolean isComplexExtension(StructureDefinition sd) { + if (!isExtensionDefinition(sd)) { + return false; + } + ElementDefinition value = sd.getSnapshot().getElementByPath("Extension.value"); + return value == null || value.isProhibited(); + } + + public static boolean isModifierExtension(StructureDefinition sd) { + ElementDefinition defn = sd.getSnapshot().hasElement() ? sd.getSnapshot().getElementByPath("Extension") : sd.getDifferential().getElementByPath("Extension"); + return defn != null && defn.getIsModifier(); + } + + public boolean isForPublication() { + return forPublication; + } + + public void setForPublication(boolean forPublication) { + this.forPublication = forPublication; + } + + public List getMessages() { + return messages; + } + + public static boolean isResourceBoundary(ElementDefinition ed) { + return ed.getType().size() == 1 && "Resource".equals(ed.getTypeFirstRep().getCode()); + } + + public static boolean isSuppressIgnorableExceptions() { + return suppressIgnorableExceptions; + } + + public static void setSuppressIgnorableExceptions(boolean suppressIgnorableExceptions) { + ProfileUtilities.suppressIgnorableExceptions = suppressIgnorableExceptions; + } + + public void setMessages(List messages) { + if (messages != null) { + this.messages = messages; + wantThrowExceptions = false; + } + } + + private Map> propertyCache = new HashMap<>(); + + public Map> getCachedPropertyList() { + return propertyCache; + } + + public void checkExtensions(ElementDefinition outcome) { + outcome.getExtension().removeIf(ext -> Utilities.existsInList(ext.getUrl(), ProfileUtilities.NON_INHERITED_ED_URLS)); + if (outcome.hasBinding()) { + outcome.getBinding().getExtension().removeIf(ext -> Utilities.existsInList(ext.getUrl(), ProfileUtilities.NON_INHERITED_ED_URLS)); + } + + } + + public static void markExtensions(ElementDefinition ed, boolean overrideSource, StructureDefinition src) { + for (Extension ex : ed.getExtension()) { + markExtensionSource(ex, overrideSource, src); + } + for (Extension ex : ed.getBinding().getExtension()) { + markExtensionSource(ex, overrideSource, src); + } + for (TypeRefComponent t : ed.getType()) { + for (Extension ex : t.getExtension()) { + markExtensionSource(ex, overrideSource, src); + } + } + } + + public static boolean hasObligations(StructureDefinition sd) { + if (sd.hasExtension(ExtensionDefinitions.EXT_OBLIGATION_CORE)) { + return true; + } + for (ElementDefinition ed : sd.getSnapshot().getElement()) { + if (ed.hasExtension(ExtensionDefinitions.EXT_OBLIGATION_CORE)) { + return true; + } + for (TypeRefComponent tr : ed.getType()) { + if (tr.hasExtension(ExtensionDefinitions.EXT_OBLIGATION_CORE)) { + return true; + } + } + } + return false; + } + + public List getSuppressedMappings() { + return suppressedMappings; + } + + public void setSuppressedMappings(List suppressedMappings) { + this.suppressedMappings = suppressedMappings; + } + + public static String getCSUrl(StructureDefinition profile) { + if (profile.hasExtension(ExtensionDefinitions.EXT_SD_CS_URL)) { + return ExtensionUtilities.readStringExtension(profile, ExtensionDefinitions.EXT_SD_CS_URL); + } else { + return profile.getUrl()+"?codesystem"; + } + } + + public static String getUrlFromCSUrl(String url) { + if (url == null) { + return null; + } + if (url.endsWith("?codesystem")) { + return url.replace("?codesystem", ""); + } else { + return null; + } + } + + public FHIRPathEngine getFpe() { + return fpe; + } + +} diff --git a/matchbox-server/src/test/java/ch/ahdis/matchbox/test/MatchboxApiR4Test.java b/matchbox-server/src/test/java/ch/ahdis/matchbox/test/MatchboxApiR4Test.java index fe91fccab69..ba58f9a1a0e 100644 --- a/matchbox-server/src/test/java/ch/ahdis/matchbox/test/MatchboxApiR4Test.java +++ b/matchbox-server/src/test/java/ch/ahdis/matchbox/test/MatchboxApiR4Test.java @@ -318,6 +318,40 @@ void validateEhs419Gazelle() throws Exception { assertEquals(0, getValidationFailures(report)); } + @Test + void validateXVersionSlicingExtensions() throws Exception { + + String encounter = "\n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + "

Generated Narrative: Encounter EncounterExtR5

Profile: Encounter

Extension Definition for Encounter.plannedStartDate for Version 5.0: 2023-04-11

Extension Definition for Encounter.plannedEndDate for Version 5.0: 2023-05-05

status: In Progress

class: ActCode: HH (home health)

\n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + ""; + + IBaseOperationOutcome operationOutcome = this.validationClient.validate(encounter, + "http://matchbox.health/ig/test/r4/StructureDefinition/encounter-ext-r5"); + assertEquals(0, getValidationFailures((OperationOutcome) operationOutcome)); + } + + private String getContent(String resourceName) throws IOException { Resource resource = new ClassPathResource(resourceName); File file = resource.getFile(); diff --git a/matchbox-server/src/test/resources/matchbox.health.test.ig.r4-0.2.0.tgz b/matchbox-server/src/test/resources/matchbox.health.test.ig.r4-0.2.0.tgz index 60d7491211285949902169d9edaf7d262ec199c4..442bb6d612e80901fb4e7454575cf992aa4b8b3f 100644 GIT binary patch literal 36817 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 Zpn-VZLtZ`AQ$4Tm`F}RW9yS0#1OQh$QV;+D literal 22576 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 H08jz|SCLcl diff --git a/updatehapi.sh b/updatehapi.sh index 8cb88996d60..dab45cf521f 100755 --- a/updatehapi.sh +++ b/updatehapi.sh @@ -12,6 +12,7 @@ cp ../org.hl7.fhir.core/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/valid cp ../org.hl7.fhir.core/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/testfactory/TestDataFactory.java matchbox-engine/src/main/java/org/hl7/fhir/r5/testfactory/ cp ../org.hl7.fhir.core/org.hl7.fhir.validation.cli/src/main/java/org/hl7/fhir/validation/cli/param/Params.java matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param cp ../org.hl7.fhir.core/org.hl7.fhir.validation.cli/src/main/java/org/hl7/fhir/validation/cli/Display.java matchbox-engine/src/main/java/org/hl7/fhir/validation/cli +cp ../org.hl7.fhir.core/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile # cp ../hapi-fhir/hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/server/method/ResourceParameter.java matchbox-server/src/main/java/ca/uhn/fhir/rest/server/method # cp ../hapi-fhir/hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/server/RestfulServerUtils.java matchbox-server/src/main/java/ca/uhn/fhir/rest/server # cp ../hapi-fhir/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/packages/loader/PackageLoaderSvc.java matchbox-server/src/main/java/ca/uhn/fhir/jpa/packages/loader/ From d73dfa131c0c6ee052eec8eca352c5473d268c97 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Mon, 5 Jan 2026 17:00:59 +0100 Subject: [PATCH 13/23] update dependencies --- matchbox-frontend/package-lock.json | 10206 +++++++++++++------------- 1 file changed, 5144 insertions(+), 5062 deletions(-) diff --git a/matchbox-frontend/package-lock.json b/matchbox-frontend/package-lock.json index 405da6c5760..5d1db18c806 100644 --- a/matchbox-frontend/package-lock.json +++ b/matchbox-frontend/package-lock.json @@ -73,20 +73,12 @@ "typescript": "^5.6.3" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -96,13 +88,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1900.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1900.1.tgz", - "integrity": "sha512-4SONLz5lzuNINz5DAaZlQLhBasLqEiDKMH+YHYgYE2N3ImfuYj9urgfdRnfarPInQslCE9OzahOQslVzoQxJhg==", + "version": "0.1902.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1902.19.tgz", + "integrity": "sha512-iexYDIYpGAeAU7T60bGcfrGwtq1bxpZixYxWuHYiaD1b5baQgNSfd1isGEOh37GgDNsf4In9i2LOLPm0wBdtgQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.1", + "@angular-devkit/core": "19.2.19", "rxjs": "7.8.1" }, "engines": { @@ -111,123 +103,53 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/architect/node_modules/@angular-devkit/core": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.1.tgz", - "integrity": "sha512-oXIAV3hXqUW3Pmm95pvEmb+24n1cKQG62FzhQSjOIrMeHiCbGLNuc8zHosIi2oMrcCJJxR6KzWjThvbuzDwWlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^4.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/architect/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/architect/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, + "license": "Apache-2.0", "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@angular-devkit/architect/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "tslib": "^2.1.0" } }, "node_modules/@angular-devkit/build-angular": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.0.1.tgz", - "integrity": "sha512-XF/jkBFchpwQzSS0efVk1MNvcTYI4FCBsRmneLkprfftoi9e9A2IqUk8GJncNj3MIa/wZ1bNnzp+Z0uGGqrb6A==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.2.19.tgz", + "integrity": "sha512-uIxi6Vzss6+ycljVhkyPUPWa20w8qxJL9lEn0h6+sX/fhM8Djt0FHIuTQjoX58EoMaQ/1jrXaRaGimkbaFcG9A==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1900.1", - "@angular-devkit/build-webpack": "0.1900.1", - "@angular-devkit/core": "19.0.1", - "@angular/build": "19.0.1", - "@babel/core": "7.26.0", - "@babel/generator": "7.26.2", + "@angular-devkit/architect": "0.1902.19", + "@angular-devkit/build-webpack": "0.1902.19", + "@angular-devkit/core": "19.2.19", + "@angular/build": "19.2.19", + "@babel/core": "7.26.10", + "@babel/generator": "7.26.10", "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.25.9", + "@babel/plugin-transform-async-generator-functions": "7.26.8", "@babel/plugin-transform-async-to-generator": "7.25.9", - "@babel/plugin-transform-runtime": "7.25.9", - "@babel/preset-env": "7.26.0", - "@babel/runtime": "7.26.0", + "@babel/plugin-transform-runtime": "7.26.10", + "@babel/preset-env": "7.26.9", + "@babel/runtime": "7.26.10", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "19.0.1", - "@vitejs/plugin-basic-ssl": "1.1.0", + "@ngtools/webpack": "19.2.19", + "@vitejs/plugin-basic-ssl": "1.2.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", "babel-loader": "9.2.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "12.0.2", "css-loader": "7.1.2", - "esbuild-wasm": "0.24.0", - "fast-glob": "3.3.2", - "http-proxy-middleware": "3.0.3", + "esbuild-wasm": "0.25.4", + "fast-glob": "3.3.3", + "http-proxy-middleware": "3.0.5", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", - "less": "4.2.0", + "less": "4.2.2", "less-loader": "12.2.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", @@ -235,22 +157,22 @@ "open": "10.1.0", "ora": "5.4.1", "picomatch": "4.0.2", - "piscina": "4.7.0", - "postcss": "8.4.49", + "piscina": "4.8.0", + "postcss": "8.5.2", "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.80.7", - "sass-loader": "16.0.3", - "semver": "7.6.3", + "sass": "1.85.0", + "sass-loader": "16.0.5", + "semver": "7.7.1", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.36.0", + "terser": "5.39.0", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.96.1", + "webpack": "5.98.0", "webpack-dev-middleware": "7.4.2", - "webpack-dev-server": "5.1.0", + "webpack-dev-server": "5.2.2", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, @@ -260,23 +182,23 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.24.0" + "esbuild": "0.25.4" }, "peerDependencies": { - "@angular/compiler-cli": "^19.0.0", - "@angular/localize": "^19.0.0", - "@angular/platform-server": "^19.0.0", - "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.0.1", - "@web/test-runner": "^0.19.0", + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "@angular/localize": "^19.0.0 || ^19.2.0-next.0", + "@angular/platform-server": "^19.0.0 || ^19.2.0-next.0", + "@angular/service-worker": "^19.0.0 || ^19.2.0-next.0", + "@angular/ssr": "^19.2.19", + "@web/test-runner": "^0.20.0", "browser-sync": "^3.0.2", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^19.0.0", + "ng-packagr": "^19.0.0 || ^19.2.0-next.0", "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.5 <5.7" + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "typescript": ">=5.5 <5.9" }, "peerDependenciesMeta": { "@angular/localize": { @@ -317,10 +239,50 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.1.tgz", - "integrity": "sha512-oXIAV3hXqUW3Pmm95pvEmb+24n1cKQG62FzhQSjOIrMeHiCbGLNuc8zHosIi2oMrcCJJxR6KzWjThvbuzDwWlw==", + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1902.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1902.19.tgz", + "integrity": "sha512-x2tlGg5CsUveFzuRuqeHknSbGirSAoRynEh+KqPRGK0G3WpMViW/M8SuVurecasegfIrDWtYZ4FnVxKqNbKwXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1902.19", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.19.tgz", + "integrity": "sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ==", "dev": true, "license": "MIT", "dependencies": { @@ -345,84 +307,41 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, + "license": "Apache-2.0", "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "tslib": "^2.1.0" } }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1900.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1900.1.tgz", - "integrity": "sha512-WTlSE5tWJCTD22GQO8LFPYFL4eEFStHubo7zJpjFnf5gJPwcKMcV323LeEviHyudQz5eQ2SiVpDOqsC13IP6rQ==", + "node_modules/@angular-devkit/schematics": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.21.tgz", + "integrity": "sha512-yuC2vN4VL48JhnsaOa9J/o0Jl+cxOklRNQp5J2/ypMuRROaVCrZAPiX+ChSHh++kHYMpj8+ggNrrUwRNfMKACQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1900.1", + "@angular-devkit/core": "18.2.21", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", + "ora": "5.4.1", "rxjs": "7.8.1" }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^5.0.2" } }, - "node_modules/@angular-devkit/core": { - "version": "18.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.11.tgz", - "integrity": "sha512-H9P1shRGigORWJHUY2BRa2YurT+DVminrhuaYHsbhXBRsPmgB2Dx/30YLTnC1s5XmR9QIRUCsg/d3kyT1wd5Zg==", + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.21.tgz", + "integrity": "sha512-Lno6GNbJME85wpc/uqn+wamBxvfZJZFYSH8+oAkkyjU/hk8r5+X8DuyqsKAa0m8t46zSTUsonHsQhVe5vgrZeQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "ajv": "8.17.1", "ajv-formats": "3.0.1", @@ -445,35 +364,39 @@ } } }, - "node_modules/@angular-devkit/core/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "peer": true, + "license": "Apache-2.0", "dependencies": { - "ajv": "^8.0.0" + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-eslint/builder": { + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.4.3.tgz", + "integrity": "sha512-NzmrXlr7GFE+cjwipY/CxBscZXNqnuK0us1mO6Z2T6MeH6m+rRcdlY/rZyKoRniyNNvuzl6vpEsfMIMmnfebrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": ">= 0.1800.0 < 0.1900.0", + "@angular-devkit/core": ">= 18.0.0 < 19.0.0" }, "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" } }, - "node_modules/@angular-devkit/schematics": { - "version": "18.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.11.tgz", - "integrity": "sha512-efRK3FotTFp4KD5u42jWfXpHUALXB9kJNsWiB4wEImKFH6CN+vjBspJQuLqk2oeBFh/7D2qRMc5P+2tZHM5hdw==", + "node_modules/@angular-eslint/builder/node_modules/@angular-devkit/architect": { + "version": "0.1802.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.21.tgz", + "integrity": "sha512-+Ll+xtpKwZ3iLWN/YypvnCZV/F0MVbP+/7ZpMR+Xv/uB0OmribhBVj9WGaCd9I/bGgoYBw8wBV/NFNCKkf0k3Q==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.11", - "jsonc-parser": "3.3.1", - "magic-string": "0.30.11", - "ora": "5.4.1", + "@angular-devkit/core": "18.2.21", "rxjs": "7.8.1" }, "engines": { @@ -482,33 +405,60 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-eslint/builder": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.4.1.tgz", - "integrity": "sha512-Ofkwd9Rg52K+AgvnV1RXYXVBGJvl5jD7+4dqwoprqXG7YKNTdHy5vqNZ5XDSMb26qjoZF7JC+IKruKFaON/ZaA==", + "node_modules/@angular-eslint/builder/node_modules/@angular-devkit/core": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.21.tgz", + "integrity": "sha512-Lno6GNbJME85wpc/uqn+wamBxvfZJZFYSH8+oAkkyjU/hk8r5+X8DuyqsKAa0m8t46zSTUsonHsQhVe5vgrZeQ==", "dev": true, "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-eslint/builder/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.1.tgz", - "integrity": "sha512-gCQC0mgBO1bwHDXL9CUgHW+Rf1XGZCLAopoXnggwxGkBCx+oww507t+jrSOxdh+4OTKU4ZfmbtWd7Y8AeXns8w==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.3.tgz", + "integrity": "sha512-zdrA8mR98X+U4YgHzUKmivRU+PxzwOL/j8G7eTOvBuq8GPzsP+hvak+tyxlgeGm9HsvpFj9ERHLtJ0xDUPs8fg==", "dev": true, "license": "MIT" }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.1.tgz", - "integrity": "sha512-FoHwj+AFo8ONKb8wEK5qpo6uefuyklZlDqErJxeC3fpNIJzDe8PWBcJsuZt7Wwm/HeggWgt0Au6h+3IEa0V3BQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.3.tgz", + "integrity": "sha512-AyJbupiwTBR81P6T59v+aULEnPpZBCBxL2S5QFWfAhNCwWhcof4GihvdK2Z87yhvzDGeAzUFSWl/beJfeFa+PA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.1", - "@angular-eslint/utils": "18.4.1" + "@angular-eslint/bundled-angular-compiler": "18.4.3", + "@angular-eslint/utils": "18.4.3" }, "peerDependencies": { "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", @@ -517,14 +467,14 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.1.tgz", - "integrity": "sha512-sofnKpi6wOZ6avVfYYqB7sCgGgWF2HgCZfW+IAp1MtVD2FBa1zTSbbfIZ1I8Akpd22UXa4LKJd0TLwm5XHHkiQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.3.tgz", + "integrity": "sha512-ijGlX2N01ayMXTpeQivOA31AszO8OEbu9ZQUCxnu9AyMMhxyi2q50bujRChAvN9YXQfdQtbxuajxV6+aiWb5BQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.1", - "@angular-eslint/utils": "18.4.1", + "@angular-eslint/bundled-angular-compiler": "18.4.3", + "@angular-eslint/utils": "18.4.3", "aria-query": "5.3.2", "axobject-query": "4.1.0" }, @@ -536,41 +486,80 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.4.1.tgz", - "integrity": "sha512-1+gGodwh+UevtEx9mzZbzP1uY/9NAGEbsn8jisG1TEPDby2wKScQj6U6JwGxoW/Dd/4SIeSdilruZPALkqha7g==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.4.3.tgz", + "integrity": "sha512-D5maKn5e6n58+8n7jLFLD4g+RGPOPeDSsvPc1sqial5tEKLxAJQJS9WZ28oef3bhkob6C60D+1H0mMmEEVvyVA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/eslint-plugin": "18.4.1", - "@angular-eslint/eslint-plugin-template": "18.4.1", + "@angular-devkit/core": ">= 18.0.0 < 19.0.0", + "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0", + "@angular-eslint/eslint-plugin": "18.4.3", + "@angular-eslint/eslint-plugin-template": "18.4.3", "ignore": "6.0.2", "semver": "7.6.3", "strip-json-comments": "3.1.1" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/@angular-devkit/core": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.21.tgz", + "integrity": "sha512-Lno6GNbJME85wpc/uqn+wamBxvfZJZFYSH8+oAkkyjU/hk8r5+X8DuyqsKAa0m8t46zSTUsonHsQhVe5vgrZeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular-devkit/core": ">= 18.0.0 < 19.0.0", - "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } } }, - "node_modules/@angular-eslint/schematics/node_modules/ignore": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", - "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "node_modules/@angular-eslint/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 4" + "node": ">=10" } }, "node_modules/@angular-eslint/template-parser": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.4.1.tgz", - "integrity": "sha512-LsStXVyso/89gQU5eiJebB/b1j+wrRtTLjk+ODVUTa7NGCCT7B7xI6ToTchkBEpSTHLT9pEQXHsHer3FymsQRQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.4.3.tgz", + "integrity": "sha512-JZMPtEB8yNip3kg4WDEWQyObSo2Hwf+opq2ElYuwe85GQkGhfJSJ2CQYo4FSwd+c5MUQAqESNRg9QqGYauDsiw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.1", + "@angular-eslint/bundled-angular-compiler": "18.4.3", "eslint-scope": "^8.0.2" }, "peerDependencies": { @@ -579,13 +568,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.1.tgz", - "integrity": "sha512-F5UGE1J/CRmTbl8vjexQRwRglNqnJwdXCUejaG+qlGssSHoWcRB+ubbR/na3PdnzeJdBE6DkLYElXnOQZ6YKfg==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.3.tgz", + "integrity": "sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.1" + "@angular-eslint/bundled-angular-compiler": "18.4.3" }, "peerDependencies": { "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", @@ -594,9 +583,10 @@ } }, "node_modules/@angular/animations": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.0.0.tgz", - "integrity": "sha512-+uZTvEXjYh8PZKB4ijk8uuH1K+Tz/A67mUlltFv9pYKtnmbZAeS/PI66g/7pigRYDvEgid1fvlAANeBShAiPZQ==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.2.17.tgz", + "integrity": "sha512-6VTet2fzTpSHEjxcVVzL8ZIyNGo/qsUs4XF/3wh9Iwu6qfWx711qXKlqGD/IHWzMTumzvQXbTV4hzvnO7fJvIQ==", + "devOptional": true, "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -605,40 +595,42 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.0" + "@angular/common": "19.2.17", + "@angular/core": "19.2.17" } }, "node_modules/@angular/build": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.0.1.tgz", - "integrity": "sha512-Aodt+EsGQyM8LVG/GjeMAC7BQ4z14SmtUbu6S54mAjGn9uiiYixszAi3fM4SsaQZRK9m0Lwv3a151rw2yZUJow==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.2.19.tgz", + "integrity": "sha512-SFzQ1bRkNFiOVu+aaz+9INmts7tDUrsHLEr9HmARXr9qk5UmR8prlw39p2u+Bvi6/lCiJ18TZMQQl9mGyr63lg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1900.1", - "@babel/core": "7.26.0", + "@angular-devkit/architect": "0.1902.19", + "@babel/core": "7.26.10", "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", "@babel/plugin-syntax-import-attributes": "7.26.0", - "@inquirer/confirm": "5.0.2", - "@vitejs/plugin-basic-ssl": "1.1.0", - "beasties": "0.1.0", + "@inquirer/confirm": "5.1.6", + "@vitejs/plugin-basic-ssl": "1.2.0", + "beasties": "0.3.2", "browserslist": "^4.23.0", - "esbuild": "0.24.0", - "fast-glob": "3.3.2", - "https-proxy-agent": "7.0.5", + "esbuild": "0.25.4", + "fast-glob": "3.3.3", + "https-proxy-agent": "7.0.6", "istanbul-lib-instrument": "6.0.3", "listr2": "8.2.5", - "magic-string": "0.30.12", - "mrmime": "2.0.0", + "magic-string": "0.30.17", + "mrmime": "2.0.1", "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", - "piscina": "4.7.0", - "rollup": "4.26.0", - "sass": "1.80.7", - "semver": "7.6.3", - "vite": "5.4.12", + "piscina": "4.8.0", + "rollup": "4.34.8", + "sass": "1.85.0", + "semver": "7.7.1", + "source-map-support": "0.5.21", + "vite": "6.4.1", "watchpack": "2.4.2" }, "engines": { @@ -647,19 +639,21 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "lmdb": "3.1.5" + "lmdb": "3.2.6" }, "peerDependencies": { - "@angular/compiler": "^19.0.0", - "@angular/compiler-cli": "^19.0.0", - "@angular/localize": "^19.0.0", - "@angular/platform-server": "^19.0.0", - "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.0.1", + "@angular/compiler": "^19.0.0 || ^19.2.0-next.0", + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "@angular/localize": "^19.0.0 || ^19.2.0-next.0", + "@angular/platform-server": "^19.0.0 || ^19.2.0-next.0", + "@angular/service-worker": "^19.0.0 || ^19.2.0-next.0", + "@angular/ssr": "^19.2.19", + "karma": "^6.4.0", "less": "^4.2.0", + "ng-packagr": "^19.0.0 || ^19.2.0-next.0", "postcss": "^8.4.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.5 <5.7" + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "typescript": ">=5.5 <5.9" }, "peerDependenciesMeta": { "@angular/localize": { @@ -674,9 +668,15 @@ "@angular/ssr": { "optional": true }, + "karma": { + "optional": true + }, "less": { "optional": true }, + "ng-packagr": { + "optional": true + }, "postcss": { "optional": true }, @@ -686,9 +686,9 @@ } }, "node_modules/@angular/build/node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -696,16 +696,14 @@ } }, "node_modules/@angular/cdk": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.0.0.tgz", - "integrity": "sha512-KcOYhCwN4Bw3L4+W4ymTfPGqRjrkwD8M5jX8GM7YsZ5DsX9OEd/gNrwRvjn+8JItzimXLXdGrcqXrMTxkq7QPA==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.2.19.tgz", + "integrity": "sha512-PCpJagurPBqciqcq4Z8+3OtKLb7rSl4w/qBJoIMua8CgnrjvA1i+SWawhdtfI1zlY8FSwhzLwXV0CmWWfFzQPg==", "license": "MIT", "dependencies": { + "parse5": "^7.1.2", "tslib": "^2.3.0" }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, "peerDependencies": { "@angular/common": "^19.0.0 || ^20.0.0", "@angular/core": "^19.0.0 || ^20.0.0", @@ -713,77 +711,49 @@ } }, "node_modules/@angular/cli": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.0.1.tgz", - "integrity": "sha512-vn+assDJoTQyHKSiWorduJ4JDlPyLSJ8M4EHod9Kdn8XT26dEwubTh6o70GkFNEiZ7TSSqQbrAEYuGVJwMRQjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1900.1", - "@angular-devkit/core": "19.0.1", - "@angular-devkit/schematics": "19.0.1", - "@inquirer/prompts": "7.1.0", - "@listr2/prompt-adapter-inquirer": "2.0.18", - "@schematics/angular": "19.0.1", - "@yarnpkg/lockfile": "1.1.0", - "ini": "5.0.0", - "jsonc-parser": "3.3.1", - "listr2": "8.2.5", - "npm-package-arg": "12.0.0", - "npm-pick-manifest": "10.0.0", - "pacote": "20.0.0", - "resolve": "1.22.8", - "semver": "7.6.3", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.1.tgz", - "integrity": "sha512-oXIAV3hXqUW3Pmm95pvEmb+24n1cKQG62FzhQSjOIrMeHiCbGLNuc8zHosIi2oMrcCJJxR6KzWjThvbuzDwWlw==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.2.19.tgz", + "integrity": "sha512-e9tAzFNOL4mMWfMnpC9Up83OCTOp2siIj8W41FCp8jfoEnw79AXDDLh3d70kOayiObchksTJVShslTogLUyhMw==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", + "@angular-devkit/architect": "0.1902.19", + "@angular-devkit/core": "19.2.19", + "@angular-devkit/schematics": "19.2.19", + "@inquirer/prompts": "7.3.2", + "@listr2/prompt-adapter-inquirer": "2.0.18", + "@schematics/angular": "19.2.19", + "@yarnpkg/lockfile": "1.1.0", + "ini": "5.0.0", "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "listr2": "8.2.5", + "npm-package-arg": "12.0.2", + "npm-pick-manifest": "10.0.0", + "pacote": "20.0.0", + "resolve": "1.22.10", + "semver": "7.7.1", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^4.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.1.tgz", - "integrity": "sha512-N9dV8WpNRULykNj8fSxQrta85gPKxb315J3xugLS2uwiFWhz7wo5EY1YeYhoVKoVcNB2ng9imJgC5aO52AHZwg==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.19.tgz", + "integrity": "sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.1", + "@angular-devkit/core": "19.2.19", "jsonc-parser": "3.3.1", - "magic-string": "0.30.12", + "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -793,72 +763,30 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@angular/cli/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@angular/cli/node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/@angular/cli/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "node_modules/@angular/cli/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, "node_modules/@angular/common": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.0.0.tgz", - "integrity": "sha512-kb2iS26GZS0vyR3emAQbIiQifnK5M5vnbclEHni+pApDEU5V9FufbdRP3vCxs28UHZvAZKB0LrxkTrnT6T+z5g==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.2.17.tgz", + "integrity": "sha512-yFUXAdpvOFirGD/EGDwp1WHravHzI4sdyRE2iH7i8im9l8IE2VZ6D1KDJp8VVpMJt38LNlRAWYek3s+z6OcAkg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -867,14 +795,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.0", + "@angular/core": "19.2.17", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.0.0.tgz", - "integrity": "sha512-Uw2Yy25pdqfzKsS9WofnIq1zvknlVYyy03LYO7NMKHlFWiy8q8SIXN7WKPFhiHlOfyACXipp4eZb9m3+IbOfSA==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.2.17.tgz", + "integrity": "sha512-qo8psYASAlDiQ8fAL8i/E2JfWH2nPTpZDKKZxSWvgBVA8o+zUEjYAJu6/k6btnu+4Qcb425T0rmM/zao6EU9Aw==", "dev": true, "license": "MIT", "dependencies": { @@ -882,24 +810,16 @@ }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "19.0.0" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } } }, "node_modules/@angular/compiler-cli": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.0.0.tgz", - "integrity": "sha512-2PxpsIeppoDLAx7A6i0GE10WjC+Fkz8tTQioa7r4y/+eYnniEjJFIQM/8lbkOnRVcuYoeXoNyYWr3fEQAyO4LA==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.2.17.tgz", + "integrity": "sha512-KG82fh2A0odttc6+FxlQmFfHY/Giq8rYeV1qtdafafJ8hdWIiMr4r37xwhZOl8uk2/XSLM66bxUMFHYm+zt87Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "7.26.0", + "@babel/core": "7.26.9", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", @@ -917,44 +837,62 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "19.0.0", - "typescript": ">=5.5 <5.7" + "@angular/compiler": "19.2.17", + "typescript": ">=5.5 <5.9" } }, - "node_modules/@angular/compiler-cli/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">= 14.16.0" + "node": ">=6.9.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@angular/compiler-cli/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "license": "MIT" + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@angular/core": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.0.0.tgz", - "integrity": "sha512-aNG2kd30BOM/zf0jC+aEVG8OA27IwqCki9EkmyRNYnaP2O5Mj1n7JpCyZGI+0LrWTJ2UUCfRNZiZdZwmNThr1Q==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.2.17.tgz", + "integrity": "sha512-nVu0ryxfiXUZ9M+NV21TY+rJZkPXTYo9U0aJb19hvByPpG+EvuujXUOgpulz6vxIzGy7pz/znRa+K9kxuuC+yQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -968,9 +906,9 @@ } }, "node_modules/@angular/forms": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.0.0.tgz", - "integrity": "sha512-gM4bUdlIJ0uRYNwoVMbXiZt4+bZzPXzyQ7ByNIOVKEAI0PN9Jz1dR1pSeQgIoUvKQbhwsVKVUoa7Tn1hoqwvTg==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.2.17.tgz", + "integrity": "sha512-INgGGmMbwXuT+niAjMiCsJrZVEGWKZOep1vCRHoKlVnGUQSRKc3UW8ztmKDKMua/io/Opi03pRMpwbYQcTBr5A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -979,16 +917,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.0", - "@angular/core": "19.0.0", - "@angular/platform-browser": "19.0.0", + "@angular/common": "19.2.17", + "@angular/core": "19.2.17", + "@angular/platform-browser": "19.2.17", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.0.0.tgz", - "integrity": "sha512-oXDZ+gOTVFhpGg+Cp/3Mo0aa214eCF13dEboRYTIM/m1jnsTHcIlfhRpkw+FLUSEN9MTVK5xVfx5gUudI7T0rg==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.2.17.tgz", + "integrity": "sha512-Jv9D3WUIVRj+PW3HdUFcyPySR1y7TbHdaWBXabe53XTChq+t38BDTEt6tcyBJs/6GgjlrFhP1D7O/9LmCSelJA==", "dev": true, "license": "MIT", "engines": { @@ -996,16 +934,15 @@ } }, "node_modules/@angular/material": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.0.0.tgz", - "integrity": "sha512-j7dDFUh8dqiysuWu32biukDTHScajUYHFR9Srhn98kBwnXMob5y1paMoOx5RQO5DU4KCxKaKx8HcHJBJeTKHjw==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.2.19.tgz", + "integrity": "sha512-auIE6JUzTIA3LyYklh9J/T7u64crmphxUBgAa0zcOMDog6SYfwbNe9YeLQqua5ek4OUAOdK/BHHfVl5W5iaUoQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^19.0.0 || ^20.0.0", - "@angular/cdk": "19.0.0", + "@angular/cdk": "19.2.19", "@angular/common": "^19.0.0 || ^20.0.0", "@angular/core": "^19.0.0 || ^20.0.0", "@angular/forms": "^19.0.0 || ^20.0.0", @@ -1014,9 +951,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.0.0.tgz", - "integrity": "sha512-g9Qkv+KgEmXLVeg+dw1edmWsRBspUGeJMOBf2UX1kUCw6txeco+pzCMimouB5LQYHfs6cD6oC+FwINm0HNwrhg==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.2.17.tgz", + "integrity": "sha512-Rn23nIQwYMSeGXWFHI/X8bGHAkdahRxH9UIGUlJKxW61MSkK6AW4kCHG/Ev1TvDq9HjijsMjcqcsd6/Sb8aBXg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1025,9 +962,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "19.0.0", - "@angular/common": "19.0.0", - "@angular/core": "19.0.0" + "@angular/animations": "19.2.17", + "@angular/common": "19.2.17", + "@angular/core": "19.2.17" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1036,9 +973,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.0.tgz", - "integrity": "sha512-ljvycDe0etmTBDzbCFakpsItywddpKEyCZGMKRvz5TdND1N1qqXydxAF1kLzP5H7F/QOMdP4/T/T1HS+6AUpkw==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.2.17.tgz", + "integrity": "sha512-jrps9QKhuPrHBZwLv+43z+WldT4aVKZu8v7LPpRHb7/pVLvqccXtIxt3Ttm7sa4tc2SwlKazdE8/ezaNWIRnAg==", "dev": true, "license": "MIT", "dependencies": { @@ -1048,16 +985,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.0", - "@angular/compiler": "19.0.0", - "@angular/core": "19.0.0", - "@angular/platform-browser": "19.0.0" + "@angular/common": "19.2.17", + "@angular/compiler": "19.2.17", + "@angular/core": "19.2.17", + "@angular/platform-browser": "19.2.17" } }, "node_modules/@angular/router": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.0.0.tgz", - "integrity": "sha512-uFyT8DWVLGY8k0AZjpK7iyMO/WwT4/+b09Ax0uUEbdcRxTXSOg8/U/AVzQWtxzxI80/vJE2WZMmhIJFUTYwhKA==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.2.17.tgz", + "integrity": "sha512-B3Vk+E8UHQwg06WEjGuvYaKNiIXxjHN9pN8S+hDE8xwRgIS5ojEwS94blEvsGQ4QsIja6WjZMOfDUBUPlgUSuA==", "dev": true, "license": "MIT", "dependencies": { @@ -1067,55 +1004,45 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.0", - "@angular/core": "19.0.0", - "@angular/platform-browser": "19.0.0", + "@angular/common": "19.2.17", + "@angular/core": "19.2.17", + "@angular/platform-browser": "19.2.17", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@antfu/install-pkg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", - "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", "license": "MIT", "optional": true, "dependencies": { - "package-manager-detector": "^0.2.8", - "tinyexec": "^0.3.2" + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, - "node_modules/@antfu/utils": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", - "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", - "license": "MIT", - "optional": true, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, "license": "MIT", "engines": { @@ -1123,22 +1050,22 @@ } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1157,26 +1084,28 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", + "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.10", + "@babel/types": "^7.26.10", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -1198,29 +1127,15 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -1240,18 +1155,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "engines": { @@ -1261,6 +1176,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1272,14 +1200,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.1.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "engines": { @@ -1289,6 +1217,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1300,60 +1241,70 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -1363,22 +1314,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -1386,15 +1337,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1403,47 +1354,46 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1463,9 +1413,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -1473,9 +1423,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -1483,9 +1433,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -1493,42 +1443,42 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", - "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.0" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -1538,14 +1488,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1555,13 +1505,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1571,13 +1521,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1587,15 +1537,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1605,14 +1555,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -1635,13 +1585,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1684,13 +1634,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1700,15 +1650,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.8" }, "engines": { "node": ">=6.9.0" @@ -1736,13 +1686,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1752,13 +1702,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1768,14 +1718,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1785,14 +1735,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1802,18 +1752,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -1822,15 +1772,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1840,13 +1803,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1856,14 +1820,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1873,13 +1837,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1889,14 +1853,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1906,13 +1870,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1922,14 +1886,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1939,13 +1902,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1955,14 +1918,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1972,15 +1935,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1990,13 +1953,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2006,13 +1969,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2022,13 +1985,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2038,13 +2001,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2054,14 +2017,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2071,15 +2034,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2089,16 +2051,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2108,14 +2070,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2125,14 +2087,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2142,13 +2104,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2158,13 +2120,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2174,13 +2136,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2190,15 +2152,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -2208,14 +2172,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2225,13 +2189,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2241,14 +2205,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2258,13 +2222,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2274,14 +2238,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2291,15 +2255,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2308,14 +2272,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2325,14 +2302,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2342,14 +2318,14 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2359,13 +2335,13 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2375,16 +2351,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz", + "integrity": "sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -2406,13 +2382,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2422,14 +2398,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2439,13 +2415,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2455,13 +2431,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2471,13 +2447,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2487,13 +2463,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2503,14 +2479,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2520,14 +2496,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2537,14 +2513,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2554,15 +2530,15 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", + "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/compat-data": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", @@ -2574,9 +2550,9 @@ "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.26.8", "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", "@babel/plugin-transform-block-scoping": "^7.25.9", "@babel/plugin-transform-class-properties": "^7.25.9", "@babel/plugin-transform-class-static-block": "^7.26.0", @@ -2587,21 +2563,21 @@ "@babel/plugin-transform-duplicate-keys": "^7.25.9", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.26.9", "@babel/plugin-transform-function-name": "^7.25.9", "@babel/plugin-transform-json-strings": "^7.25.9", "@babel/plugin-transform-literals": "^7.25.9", "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", "@babel/plugin-transform-member-expression-literals": "^7.25.9", "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", "@babel/plugin-transform-modules-systemjs": "^7.25.9", "@babel/plugin-transform-modules-umd": "^7.25.9", "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", "@babel/plugin-transform-numeric-separator": "^7.25.9", "@babel/plugin-transform-object-rest-spread": "^7.25.9", "@babel/plugin-transform-object-super": "^7.25.9", @@ -2617,17 +2593,17 @@ "@babel/plugin-transform-shorthand-properties": "^7.25.9", "@babel/plugin-transform-spread": "^7.25.9", "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.26.8", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", "@babel/plugin-transform-unicode-escapes": "^7.25.9", "@babel/plugin-transform-unicode-property-regex": "^7.25.9", "@babel/plugin-transform-unicode-regex": "^7.25.9", "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", + "core-js-compat": "^3.40.0", "semver": "^6.3.1" }, "engines": { @@ -2663,9 +2639,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", "dev": true, "license": "MIT", "dependencies": { @@ -2676,48 +2652,65 @@ } }, "node_modules/@babel/template": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", - "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2742,6 +2735,13 @@ "lodash-es": "4.17.21" } }, + "node_modules/@chevrotain/cst-dts-gen/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "optional": true + }, "node_modules/@chevrotain/gast": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", @@ -2753,6 +2753,13 @@ "lodash-es": "4.17.21" } }, + "node_modules/@chevrotain/gast/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "optional": true + }, "node_modules/@chevrotain/regexp-to-ast": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", @@ -2779,6 +2786,7 @@ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -2788,6 +2796,7 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -2800,6 +2809,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2816,9 +2826,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", - "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", "cpu": [ "ppc64" ], @@ -2833,9 +2843,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", - "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", "cpu": [ "arm" ], @@ -2850,9 +2860,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", - "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", "cpu": [ "arm64" ], @@ -2867,9 +2877,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", - "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", "cpu": [ "x64" ], @@ -2884,9 +2894,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", - "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", "cpu": [ "arm64" ], @@ -2901,9 +2911,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", - "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", "cpu": [ "x64" ], @@ -2918,9 +2928,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", - "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", "cpu": [ "arm64" ], @@ -2935,9 +2945,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", - "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", "cpu": [ "x64" ], @@ -2952,9 +2962,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", - "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", "cpu": [ "arm" ], @@ -2969,9 +2979,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", - "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", "cpu": [ "arm64" ], @@ -2986,9 +2996,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", - "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", "cpu": [ "ia32" ], @@ -3003,9 +3013,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", - "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", "cpu": [ "loong64" ], @@ -3020,9 +3030,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", - "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", "cpu": [ "mips64el" ], @@ -3037,9 +3047,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", - "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", "cpu": [ "ppc64" ], @@ -3054,9 +3064,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", - "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", "cpu": [ "riscv64" ], @@ -3071,9 +3081,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", - "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", "cpu": [ "s390x" ], @@ -3088,9 +3098,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", - "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", "cpu": [ "x64" ], @@ -3104,10 +3114,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", - "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", "cpu": [ "x64" ], @@ -3122,9 +3149,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", - "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", "cpu": [ "arm64" ], @@ -3139,9 +3166,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", - "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", "cpu": [ "x64" ], @@ -3156,9 +3183,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", - "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", "cpu": [ "x64" ], @@ -3173,9 +3200,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", - "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", "cpu": [ "arm64" ], @@ -3190,9 +3217,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", - "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", "cpu": [ "ia32" ], @@ -3207,9 +3234,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", - "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", "cpu": [ "x64" ], @@ -3224,37 +3251,42 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", - "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.4", + "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -3263,9 +3295,9 @@ } }, "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -3286,20 +3318,36 @@ "node": "*" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", - "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3309,7 +3357,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -3337,17 +3385,10 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -3355,30 +3396,14 @@ "concat-map": "0.0.1" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "node": ">= 4" } }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { @@ -3402,19 +3427,22 @@ } }, "node_modules/@eslint/js": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", - "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3422,11 +3450,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", - "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, + "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -3438,41 +3468,31 @@ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } }, "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" + "@humanwhocodes/retry": "^0.4.0" }, "engines": { "node": ">=18.18.0" } }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -3482,10 +3502,11 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -3502,151 +3523,174 @@ "optional": true }, "node_modules/@iconify/utils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", - "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", + "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", "license": "MIT", "optional": true, "dependencies": { - "@antfu/install-pkg": "^1.0.0", - "@antfu/utils": "^8.1.0", + "@antfu/install-pkg": "^1.1.0", "@iconify/types": "^2.0.0", - "debug": "^4.4.0", - "globals": "^15.14.0", - "kolorist": "^1.8.0", - "local-pkg": "^1.0.0", - "mlly": "^1.7.4" - } - }, - "node_modules/@iconify/utils/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "mlly": "^1.8.0" } }, - "node_modules/@iconify/utils/node_modules/globals": { - "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "dev": true, "license": "MIT", - "optional": true, "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@inquirer/checkbox": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.2.tgz", - "integrity": "sha512-+gznPl8ip8P8HYHYecDtUtdsh1t2jvb+sWCD72GAiZ9m45RqwrLmReDaqdC0umQfamtFXVRoMVJ2/qINKGm9Tg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/confirm": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", - "integrity": "sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.6.tgz", + "integrity": "sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.1.7", + "@inquirer/type": "^3.0.4" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/core": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.0.tgz", - "integrity": "sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==", + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", - "ansi-escapes": "^4.3.2", + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/editor": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.1.0.tgz", - "integrity": "sha512-K1gGWsxEqO23tVdp5MT3H799OZ4ER1za7Dlc8F4um0W7lwSv0KGR/YyrUEyimj0g7dXZd8XknM/5QA2/Uy+TbA==", + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1", - "external-editor": "^3.1.0" + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/expand": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.2.tgz", - "integrity": "sha512-WdgCX1cUtinz+syKyZdJomovULYlKUWZbVYZzhf+ZeeYf4htAQ3jLymoNs3koIAKfZZl3HUBb819ClCBfyznaw==", + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1", - "yoctocolors-cjs": "^2.1.2" + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/figures": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.8.tgz", - "integrity": "sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", "dev": true, "license": "MIT", "engines": { @@ -3654,143 +3698,178 @@ } }, "node_modules/@inquirer/input": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.0.2.tgz", - "integrity": "sha512-yCLCraigU085EcdpIVEDgyfGv4vBiE4I+k1qRkc9C5dMjWF42ADMGy1RFU94+eZlz4YlkmFsiyHZy0W1wdhaNg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/number": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.2.tgz", - "integrity": "sha512-MKQhYofdUNk7eqJtz52KvM1dH6R93OMrqHduXCvuefKrsiMjHiMwjc3NZw5Imm2nqY7gWd9xdhYrtcHMJQZUxA==", + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/password": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.2.tgz", - "integrity": "sha512-tQXGSu7IO07gsYlGy3VgXRVsbOWqFBMbqAUrJSc1PDTQQ5Qdm+QVwkP0OC0jnUZ62D19iPgXOMO+tnWG+HhjNQ==", + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1", - "ansi-escapes": "^4.3.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/prompts": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.1.0.tgz", - "integrity": "sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.3.2.tgz", + "integrity": "sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^4.0.2", - "@inquirer/confirm": "^5.0.2", - "@inquirer/editor": "^4.1.0", - "@inquirer/expand": "^4.0.2", - "@inquirer/input": "^4.0.2", - "@inquirer/number": "^3.0.2", - "@inquirer/password": "^4.0.2", - "@inquirer/rawlist": "^4.0.2", - "@inquirer/search": "^3.0.2", - "@inquirer/select": "^4.0.2" + "@inquirer/checkbox": "^4.1.2", + "@inquirer/confirm": "^5.1.6", + "@inquirer/editor": "^4.2.7", + "@inquirer/expand": "^4.0.9", + "@inquirer/input": "^4.1.6", + "@inquirer/number": "^3.0.9", + "@inquirer/password": "^4.0.9", + "@inquirer/rawlist": "^4.0.9", + "@inquirer/search": "^3.0.9", + "@inquirer/select": "^4.0.9" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/rawlist": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.2.tgz", - "integrity": "sha512-3XGcskMoVF8H0Dl1S5TSZ3rMPPBWXRcM0VeNVsS4ByWeWjSeb0lPqfnBg6N7T0608I1B2bSVnbi2cwCrmOD1Yw==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/search": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.2.tgz", - "integrity": "sha512-Zv4FC7w4dJ13BOJfKRQCICQfShinGjb1bCEIHxTSnjj2telu3+3RHwHubPG9HyD4aix5s+lyAMEK/wSFD75HLA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/select": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.2.tgz", - "integrity": "sha512-uSWUzaSYAEj0hlzxa1mUB6VqrKaYx0QxGBLZzU4xWFxaSyGaXxsSE4OSOwdU24j0xl8OajgayqFXW0l2bkl2kg==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/type": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.1.tgz", - "integrity": "sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", "dev": true, "license": "MIT", "engines": { @@ -3798,6 +3877,11 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@isaacs/cliui": { @@ -3805,6 +3889,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -3817,23 +3902,12 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3841,49 +3915,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3914,22 +3951,20 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -3937,40 +3972,35 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3993,17 +4023,76 @@ "tslib": "2" } }, + "node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" }, "engines": { "node": ">=10.0" @@ -4017,11 +4106,15 @@ } }, "node_modules/@jsonjoy.com/util": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", - "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, "engines": { "node": ">=10.0" }, @@ -4041,9 +4134,10 @@ "license": "MIT" }, "node_modules/@lhncbc/ucum-lhc": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@lhncbc/ucum-lhc/-/ucum-lhc-5.0.3.tgz", - "integrity": "sha512-FlWyCOE6+Oc73zwRiFaiNSYQD8xpMYe9f4Qzy/tvnM3j5tXUwM3U5W/aXh/znJmHZr+lu3Hx697Sefp/3efOog==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@lhncbc/ucum-lhc/-/ucum-lhc-5.0.4.tgz", + "integrity": "sha512-khuV9GV51DF80b0wJmhZTR5Bf23fhS6SSIWnyGT9X+Uvn0FsHFl2LKViQ2TTOuvwagUOUSq8/0SyoE2ZDGwrAA==", + "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "coffeescript": "^2.7.0", "csv-parse": "^4.4.6", @@ -4097,9 +4191,9 @@ } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.1.5.tgz", - "integrity": "sha512-ue5PSOzHMCIYrfvPP/MRS6hsKKLzqqhcdAvJCO8uFlDdj598EhgnacuOTuqA6uBK5rgiZXfDWyb7DVZSiBKxBA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.2.6.tgz", + "integrity": "sha512-yF/ih9EJJZc72psFQbwnn8mExIWfTnzWJg+N02hnpXtDPETYLmQswIMBn7+V88lfCaFrMozJsUvcEQIkEPU0Gg==", "cpu": [ "arm64" ], @@ -4111,9 +4205,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.1.5.tgz", - "integrity": "sha512-CGhsb0R5vE6mMNCoSfxHFD8QTvBHM51gs4DBeigTYHWnYv2V5YpJkC4rMo5qAAFifuUcc0+a8a3SIU0c9NrfNw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.2.6.tgz", + "integrity": "sha512-5BbCumsFLbCi586Bb1lTWQFkekdQUw8/t8cy++Uq251cl3hbDIGEwD9HAwh8H6IS2F6QA9KdKmO136LmipRNkg==", "cpu": [ "x64" ], @@ -4125,9 +4219,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.1.5.tgz", - "integrity": "sha512-3WeW328DN+xB5PZdhSWmqE+t3+44xWXEbqQ+caWJEZfOFdLp9yklBZEbVqVdqzznkoaXJYxTCp996KD6HmANeg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.2.6.tgz", + "integrity": "sha512-+6XgLpMb7HBoWxXj+bLbiiB4s0mRRcDPElnRS3LpWRzdYSe+gFk5MT/4RrVNqd2MESUDmb53NUXw1+BP69bjiQ==", "cpu": [ "arm" ], @@ -4139,9 +4233,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.1.5.tgz", - "integrity": "sha512-LAjaoOcBHGj6fiYB8ureiqPoph4eygbXu4vcOF+hsxiY74n8ilA7rJMmGUT0K0JOB5lmRQHSmor3mytRjS4qeQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.2.6.tgz", + "integrity": "sha512-l5VmJamJ3nyMmeD1ANBQCQqy7do1ESaJQfKPSm2IG9/ADZryptTyCj8N6QaYgIWewqNUrcbdMkJajRQAt5Qjfg==", "cpu": [ "arm64" ], @@ -4153,9 +4247,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.1.5.tgz", - "integrity": "sha512-k/IklElP70qdCXOQixclSl2GPLFiopynGoKX1FqDd1/H0E3Fo1oPwjY2rEVu+0nS3AOw1sryStdXk8CW3cVIsw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.2.6.tgz", + "integrity": "sha512-nDYT8qN9si5+onHYYaI4DiauDMx24OAiuZAUsEqrDy+ja/3EbpXPX/VAkMV8AEaQhy3xc4dRC+KcYIvOFefJ4Q==", "cpu": [ "x64" ], @@ -4167,9 +4261,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.1.5.tgz", - "integrity": "sha512-KYar6W8nraZfSJspcK7Kp7hdj238X/FNauYbZyrqPBrtsXI1hvI4/KcRcRGP50aQoV7fkKDyJERlrQGMGTZUsA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.2.6.tgz", + "integrity": "sha512-XlqVtILonQnG+9fH2N3Aytria7P/1fwDgDhl29rde96uH2sLB8CHORIf2PfuLVzFQJ7Uqp8py9AYwr3ZUCFfWg==", "cpu": [ "x64" ], @@ -4181,13 +4275,13 @@ ] }, "node_modules/@mermaid-js/parser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.3.0.tgz", - "integrity": "sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.3.tgz", + "integrity": "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==", "license": "MIT", "optional": true, "dependencies": { - "langium": "3.0.0" + "langium": "3.3.1" } }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { @@ -4275,9 +4369,9 @@ ] }, "node_modules/@napi-rs/nice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", - "integrity": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.1.1.tgz", + "integrity": "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==", "dev": true, "license": "MIT", "optional": true, @@ -4289,28 +4383,29 @@ "url": "https://github.com/sponsors/Brooooooklyn" }, "optionalDependencies": { - "@napi-rs/nice-android-arm-eabi": "1.0.1", - "@napi-rs/nice-android-arm64": "1.0.1", - "@napi-rs/nice-darwin-arm64": "1.0.1", - "@napi-rs/nice-darwin-x64": "1.0.1", - "@napi-rs/nice-freebsd-x64": "1.0.1", - "@napi-rs/nice-linux-arm-gnueabihf": "1.0.1", - "@napi-rs/nice-linux-arm64-gnu": "1.0.1", - "@napi-rs/nice-linux-arm64-musl": "1.0.1", - "@napi-rs/nice-linux-ppc64-gnu": "1.0.1", - "@napi-rs/nice-linux-riscv64-gnu": "1.0.1", - "@napi-rs/nice-linux-s390x-gnu": "1.0.1", - "@napi-rs/nice-linux-x64-gnu": "1.0.1", - "@napi-rs/nice-linux-x64-musl": "1.0.1", - "@napi-rs/nice-win32-arm64-msvc": "1.0.1", - "@napi-rs/nice-win32-ia32-msvc": "1.0.1", - "@napi-rs/nice-win32-x64-msvc": "1.0.1" + "@napi-rs/nice-android-arm-eabi": "1.1.1", + "@napi-rs/nice-android-arm64": "1.1.1", + "@napi-rs/nice-darwin-arm64": "1.1.1", + "@napi-rs/nice-darwin-x64": "1.1.1", + "@napi-rs/nice-freebsd-x64": "1.1.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", + "@napi-rs/nice-linux-arm64-gnu": "1.1.1", + "@napi-rs/nice-linux-arm64-musl": "1.1.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", + "@napi-rs/nice-linux-s390x-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-musl": "1.1.1", + "@napi-rs/nice-openharmony-arm64": "1.1.1", + "@napi-rs/nice-win32-arm64-msvc": "1.1.1", + "@napi-rs/nice-win32-ia32-msvc": "1.1.1", + "@napi-rs/nice-win32-x64-msvc": "1.1.1" } }, "node_modules/@napi-rs/nice-android-arm-eabi": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz", - "integrity": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", + "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", "cpu": [ "arm" ], @@ -4325,9 +4420,9 @@ } }, "node_modules/@napi-rs/nice-android-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz", - "integrity": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", + "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", "cpu": [ "arm64" ], @@ -4342,9 +4437,9 @@ } }, "node_modules/@napi-rs/nice-darwin-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", - "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==", "cpu": [ "arm64" ], @@ -4359,9 +4454,9 @@ } }, "node_modules/@napi-rs/nice-darwin-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz", - "integrity": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", + "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", "cpu": [ "x64" ], @@ -4376,9 +4471,9 @@ } }, "node_modules/@napi-rs/nice-freebsd-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz", - "integrity": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", "cpu": [ "x64" ], @@ -4393,9 +4488,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz", - "integrity": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", "cpu": [ "arm" ], @@ -4410,9 +4505,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz", - "integrity": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", "cpu": [ "arm64" ], @@ -4427,9 +4522,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz", - "integrity": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", "cpu": [ "arm64" ], @@ -4444,9 +4539,9 @@ } }, "node_modules/@napi-rs/nice-linux-ppc64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz", - "integrity": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", + "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", "cpu": [ "ppc64" ], @@ -4461,9 +4556,9 @@ } }, "node_modules/@napi-rs/nice-linux-riscv64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz", - "integrity": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", + "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", "cpu": [ "riscv64" ], @@ -4478,9 +4573,9 @@ } }, "node_modules/@napi-rs/nice-linux-s390x-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz", - "integrity": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", + "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", "cpu": [ "s390x" ], @@ -4495,9 +4590,9 @@ } }, "node_modules/@napi-rs/nice-linux-x64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz", - "integrity": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", "cpu": [ "x64" ], @@ -4512,9 +4607,9 @@ } }, "node_modules/@napi-rs/nice-linux-x64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz", - "integrity": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", "cpu": [ "x64" ], @@ -4528,10 +4623,27 @@ "node": ">= 10" } }, + "node_modules/@napi-rs/nice-openharmony-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", + "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@napi-rs/nice-win32-arm64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz", - "integrity": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", + "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", "cpu": [ "arm64" ], @@ -4546,9 +4658,9 @@ } }, "node_modules/@napi-rs/nice-win32-ia32-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz", - "integrity": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", "cpu": [ "ia32" ], @@ -4563,9 +4675,9 @@ } }, "node_modules/@napi-rs/nice-win32-x64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz", - "integrity": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", "cpu": [ "x64" ], @@ -4580,9 +4692,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.0.1.tgz", - "integrity": "sha512-qi274Ge8TS//IUyhaUiqcu/GCIL4uybFgm+uCCzu0Bvmww1X+vFZvd6bPaMNNMY1wf0IWbG6aZyt04noYH8Xzw==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.2.19.tgz", + "integrity": "sha512-R9aeTrOBiRVl8I698JWPniUAAEpSvzc8SUGWSM5UXWMcHnWqd92cOnJJ1aXDGJZKXrbhMhCBx9Dglmcks5IDpg==", "dev": true, "license": "MIT", "engines": { @@ -4591,15 +4703,15 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^19.0.0", - "typescript": ">=5.5 <5.7", + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "typescript": ">=5.5 <5.9", "webpack": "^5.54.0" } }, "node_modules/@ngx-translate/core": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-16.0.3.tgz", - "integrity": "sha512-UPse66z9tRUmIpeorYodXBQY6O4foUmj9jy9cCuuja7lqdOwRBWPzCWqc+qYIXv5L2QoqZdxgHtqoUz+Q9weSA==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-16.0.4.tgz", + "integrity": "sha512-s8llTL2SJvROhqttxvEs7Cg+6qSf4kvZPFYO+cTOY1d8DWTjlutRkWAleZcPPoeX927Dm7ALfL07G7oYDJ7z6w==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -4610,9 +4722,9 @@ } }, "node_modules/@ngx-translate/http-loader": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-16.0.0.tgz", - "integrity": "sha512-l3okOHGVxZ1Bm55OpakSfXvI2yYmVmhYqgwGU4aIQIRUqpkBCrSDZnmrHTcZfsGJzXKB5E2D2rko9i28gBijmA==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-16.0.1.tgz", + "integrity": "sha512-xJEOUpvs6Zfc8G4cmQmegFOEpfYSoplTHHoisPNrATXjRBjpaKsBaPOXlZsuFUW2XV00s16gIyI4+9z1XkO5bw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -4627,6 +4739,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -4640,6 +4753,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -4649,6 +4763,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -4658,9 +4773,9 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", "dev": true, "license": "ISC", "dependencies": { @@ -4671,7 +4786,7 @@ "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { @@ -4695,9 +4810,9 @@ } }, "node_modules/@npmcli/git": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", - "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.3.tgz", + "integrity": "sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==", "dev": true, "license": "ISC", "dependencies": { @@ -4706,7 +4821,6 @@ "lru-cache": "^10.0.1", "npm-pick-manifest": "^10.0.0", "proc-log": "^5.0.0", - "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^5.0.0" @@ -4776,9 +4890,9 @@ } }, "node_modules/@npmcli/package-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.0.1.tgz", - "integrity": "sha512-YW6PZ99sc1Q4DINEY2td5z9Z3rwbbsx7CyCnOc7UXUUdePXh5gPi1UeaoQVmKQMVbIU7aOwX2l1OG5ZfjgGi5g==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.2.0.tgz", + "integrity": "sha512-rCNLSB/JzNvot0SEyXqWZ7tX2B5dD2a1br2Dp0vSYVo5jh8Z0EZ7lS9TsZ1UtziddB1UfNUaMCc538/HztnJGA==", "dev": true, "license": "ISC", "dependencies": { @@ -4786,18 +4900,18 @@ "glob": "^10.2.2", "hosted-git-info": "^8.0.0", "json-parse-even-better-errors": "^4.0.0", - "normalize-package-data": "^7.0.0", "proc-log": "^5.0.0", - "semver": "^7.5.3" + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/promise-spawn": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", - "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.3.tgz", + "integrity": "sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==", "dev": true, "license": "ISC", "dependencies": { @@ -4834,9 +4948,9 @@ } }, "node_modules/@npmcli/redact": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", - "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.2.2.tgz", + "integrity": "sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==", "dev": true, "license": "ISC", "engines": { @@ -4844,16 +4958,16 @@ } }, "node_modules/@npmcli/run-script": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.1.tgz", - "integrity": "sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.1.0.tgz", + "integrity": "sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==", "dev": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^4.0.0", "@npmcli/package-json": "^6.0.0", "@npmcli/promise-spawn": "^8.0.0", - "node-gyp": "^10.0.0", + "node-gyp": "^11.0.0", "proc-log": "^5.0.0", "which": "^5.0.0" }, @@ -4888,9 +5002,9 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4909,25 +5023,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.0", - "@parcel/watcher-darwin-arm64": "2.5.0", - "@parcel/watcher-darwin-x64": "2.5.0", - "@parcel/watcher-freebsd-x64": "2.5.0", - "@parcel/watcher-linux-arm-glibc": "2.5.0", - "@parcel/watcher-linux-arm-musl": "2.5.0", - "@parcel/watcher-linux-arm64-glibc": "2.5.0", - "@parcel/watcher-linux-arm64-musl": "2.5.0", - "@parcel/watcher-linux-x64-glibc": "2.5.0", - "@parcel/watcher-linux-x64-musl": "2.5.0", - "@parcel/watcher-win32-arm64": "2.5.0", - "@parcel/watcher-win32-ia32": "2.5.0", - "@parcel/watcher-win32-x64": "2.5.0" + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", "cpu": [ "arm64" ], @@ -4946,9 +5060,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", "cpu": [ "arm64" ], @@ -4967,9 +5081,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", "cpu": [ "x64" ], @@ -4988,9 +5102,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", "cpu": [ "x64" ], @@ -5009,9 +5123,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", "cpu": [ "arm" ], @@ -5030,9 +5144,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", "cpu": [ "arm" ], @@ -5051,9 +5165,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", "cpu": [ "arm64" ], @@ -5072,9 +5186,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", "cpu": [ "arm64" ], @@ -5093,9 +5207,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", "cpu": [ "x64" ], @@ -5114,9 +5228,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", "cpu": [ "x64" ], @@ -5135,9 +5249,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", "cpu": [ "arm64" ], @@ -5156,9 +5270,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", "cpu": [ "ia32" ], @@ -5177,9 +5291,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", "cpu": [ "x64" ], @@ -5224,15 +5338,29 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { - "node": ">=14" + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.26.0.tgz", - "integrity": "sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", + "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", "cpu": [ "arm" ], @@ -5244,9 +5372,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.26.0.tgz", - "integrity": "sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", + "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", "cpu": [ "arm64" ], @@ -5258,9 +5386,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.26.0.tgz", - "integrity": "sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", + "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", "cpu": [ "arm64" ], @@ -5272,9 +5400,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.26.0.tgz", - "integrity": "sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", + "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", "cpu": [ "x64" ], @@ -5286,9 +5414,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.26.0.tgz", - "integrity": "sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", + "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", "cpu": [ "arm64" ], @@ -5300,9 +5428,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.26.0.tgz", - "integrity": "sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", + "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", "cpu": [ "x64" ], @@ -5314,9 +5442,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.26.0.tgz", - "integrity": "sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", + "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", "cpu": [ "arm" ], @@ -5328,9 +5456,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.26.0.tgz", - "integrity": "sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", + "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", "cpu": [ "arm" ], @@ -5342,9 +5470,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.26.0.tgz", - "integrity": "sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", + "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", "cpu": [ "arm64" ], @@ -5356,9 +5484,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.26.0.tgz", - "integrity": "sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", + "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", "cpu": [ "arm64" ], @@ -5369,10 +5497,80 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", + "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.26.0.tgz", - "integrity": "sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", + "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", "cpu": [ "ppc64" ], @@ -5384,9 +5582,23 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.26.0.tgz", - "integrity": "sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", + "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", "cpu": [ "riscv64" ], @@ -5398,9 +5610,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.26.0.tgz", - "integrity": "sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", + "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", "cpu": [ "s390x" ], @@ -5412,9 +5624,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.26.0.tgz", - "integrity": "sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", + "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", "cpu": [ "x64" ], @@ -5426,9 +5638,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.26.0.tgz", - "integrity": "sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", + "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", "cpu": [ "x64" ], @@ -5439,10 +5651,38 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.26.0.tgz", - "integrity": "sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", + "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", "cpu": [ "arm64" ], @@ -5454,9 +5694,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.26.0.tgz", - "integrity": "sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", + "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", "cpu": [ "ia32" ], @@ -5467,10 +5707,10 @@ "win32" ] }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.26.0.tgz", - "integrity": "sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==", + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", "cpu": [ "x64" ], @@ -5481,61 +5721,47 @@ "win32" ] }, - "node_modules/@schematics/angular": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.0.1.tgz", - "integrity": "sha512-zjUv+D8j21dmWgJrNCgav3njb06509Mwy7/ZIC5TMyzWfRsrNlrHLEam/tasi4dt171d5mj9A+IlXeEPnWoNCA==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", + "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@angular-devkit/core": "19.0.1", - "@angular-devkit/schematics": "19.0.1", - "jsonc-parser": "3.3.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.1.tgz", - "integrity": "sha512-oXIAV3hXqUW3Pmm95pvEmb+24n1cKQG62FzhQSjOIrMeHiCbGLNuc8zHosIi2oMrcCJJxR6KzWjThvbuzDwWlw==", + "node_modules/@schematics/angular": { + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.2.19.tgz", + "integrity": "sha512-6/0pvbPCY4UHeB4lnM/5r250QX5gcLgOYbR5FdhFu+22mOPHfWpRc5tNuY9kCephDHzAHjo6fTW1vefOOmA4jw==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "@angular-devkit/core": "19.2.19", + "@angular-devkit/schematics": "19.2.19", + "jsonc-parser": "3.3.1" }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^4.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.1.tgz", - "integrity": "sha512-N9dV8WpNRULykNj8fSxQrta85gPKxb315J3xugLS2uwiFWhz7wo5EY1YeYhoVKoVcNB2ng9imJgC5aO52AHZwg==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.19.tgz", + "integrity": "sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.1", + "@angular-devkit/core": "19.2.19", "jsonc-parser": "3.3.1", - "magic-string": "0.30.12", + "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -5545,76 +5771,34 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@schematics/angular/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@schematics/angular/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@schematics/angular/node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/@schematics/angular/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, "node_modules/@sigstore/bundle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.0.0.tgz", - "integrity": "sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.1.0.tgz", + "integrity": "sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" + "@sigstore/protobuf-specs": "^0.4.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -5630,147 +5814,42 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", - "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.0.0.tgz", - "integrity": "sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^3.0.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^14.0.1", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign/node_modules/@npmcli/agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", - "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", - "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/@sigstore/sign/node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@sigstore/sign/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.4.3.tgz", + "integrity": "sha512-fk2zjD9117RL9BjqEwF7fwv7Q/P9yGsMV4MUJZ/DocaQJ6+3pKr+syBq1owU5Q5qGw5CUbXzm+4yJ2JVRDQeSA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">= 0.6" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@sigstore/sign/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "node_modules/@sigstore/sign": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.1.0.tgz", + "integrity": "sha512-knzjmaOHOov1Ur7N/z4B1oPqZ0QX5geUfhrVaqVlu+hl0EAoL4o+l0MSULINcD5GCWe3Z0+YJO8ues6vFlW0Yw==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "make-fetch-happen": "^14.0.2", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/tuf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.0.0.tgz", - "integrity": "sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.1.1.tgz", + "integrity": "sha512-eFFvlcBIoGwVkkwmTi/vEQFSva3xs5Ot3WmBcjgjVdiaoelBLQaQ/ZBfhlG0MnG0cmTYScPpk7eDdGDWUcFUmg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/protobuf-specs": "^0.4.1", "tuf-js": "^3.0.1" }, "engines": { @@ -5778,15 +5857,15 @@ } }, "node_modules/@sigstore/verify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.0.0.tgz", - "integrity": "sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.1.1.tgz", + "integrity": "sha512-hVJD77oT67aowHxwT4+M6PGOp+E2LtLdTK3+FC0lBO9T7sYwItDMXZ7Z07IDCvR1M717a4axbIWckrW67KMP/w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2" + "@sigstore/protobuf-specs": "^0.4.1" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -5797,6 +5876,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -5805,34 +5885,39 @@ } }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", + "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", @@ -5866,9 +5951,9 @@ "license": "MIT" }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dev": true, "license": "MIT", "dependencies": { @@ -5907,17 +5992,10 @@ "@types/node": "*" } }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", "dev": true, "license": "MIT", "dependencies": { @@ -5964,9 +6042,9 @@ } }, "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", "license": "MIT", "optional": true }, @@ -6023,9 +6101,9 @@ "optional": true }, "node_modules/@types/d3-dispatch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", - "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", "license": "MIT", "optional": true }, @@ -6213,6 +6291,7 @@ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/ms": "*" } @@ -6240,42 +6319,29 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz", - "integrity": "sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "4.19.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", + "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", "dev": true, "license": "MIT", "dependencies": { @@ -6293,32 +6359,35 @@ "optional": true }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "dev": true, "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/jasmine": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", - "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", - "dev": true + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.13.tgz", + "integrity": "sha512-MYCcDkruFc92LeYZux5BC0dmqo2jk+M5UIZ4/oFnAPCXN9mCcQhLyj7F3/Za7rocVyt5YRr1MmqJqFlvQ9LVcg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.5", @@ -6328,25 +6397,26 @@ "license": "MIT" }, "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz", - "integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==", + "version": "22.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz", + "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.21.0" } }, "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", "dev": true, "license": "MIT", "dependencies": { @@ -6354,15 +6424,16 @@ } }, "node_modules/@types/pako": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.3.tgz", - "integrity": "sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==", - "dev": true + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", "dev": true, "license": "MIT" }, @@ -6381,13 +6452,12 @@ "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -6402,15 +6472,26 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", "dev": true, "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/@types/sockjs": { @@ -6431,9 +6512,9 @@ "optional": true }, "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dev": true, "license": "MIT", "dependencies": { @@ -6441,21 +6522,20 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.15.0.tgz", - "integrity": "sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.51.0.tgz", + "integrity": "sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/type-utils": "8.15.0", - "@typescript-eslint/utils": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/type-utils": "8.51.0", + "@typescript-eslint/utils": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6465,26 +6545,32 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.51.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.15.0.tgz", - "integrity": "sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.51.0.tgz", + "integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/typescript-estree": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4" }, "engines": { @@ -6495,43 +6581,79 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.51.0.tgz", + "integrity": "sha512-Luv/GafO07Z7HpiI7qeEW5NW8HUtZI/fo/kE0YbtQEFpJRUuR0ajcWfCE5bnMvL7QQFrmT/odMe8QZww8X2nfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.51.0", + "@typescript-eslint/types": "^8.51.0", + "debug": "^4.3.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.15.0.tgz", - "integrity": "sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.51.0.tgz", + "integrity": "sha512-JhhJDVwsSx4hiOEQPeajGhCWgBMBwVkxC/Pet53EpBVs7zHHtayKefw1jtPaNRXpI9RA2uocdmpdfE7T+NrizA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0" + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.51.0.tgz", + "integrity": "sha512-Qi5bSy/vuHeWyir2C8u/uqGMIlIDu8fuiYWv48ZGlZ/k+PRPHtaAu7erpc7p5bzw2WNNSniuxoMSO4Ar6V9OXw==", + "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.15.0.tgz", - "integrity": "sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.51.0.tgz", + "integrity": "sha512-0XVtYzxnobc9K0VU7wRWg1yiUrw4oQzexCG2V2IDxxCxhqBMSMbjB+6o91A+Uc0GWtgjCa3Y8bi7hwI0Tu4n5Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.15.0", - "@typescript-eslint/utils": "8.15.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6541,18 +6663,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.15.0.tgz", - "integrity": "sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.51.0.tgz", + "integrity": "sha512-TizAvWYFM6sSscmEakjY3sPqGwxZRSywSsPEiuZF6d5GmGD9Gvlsv0f6N8FvAAA0CD06l3rIcWNbsN1e5F/9Ag==", "dev": true, "license": "MIT", "engines": { @@ -6564,20 +6682,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.15.0.tgz", - "integrity": "sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.51.0.tgz", + "integrity": "sha512-1qNjGqFRmlq0VW5iVlcyHBbCjPB7y6SxpBkrbhNWMy/65ZoncXCEPJxkRZL8McrseNH6lFhaxCIaX+vBuFnRng==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", + "@typescript-eslint/project-service": "8.51.0", + "@typescript-eslint/tsconfig-utils": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6586,23 +6705,21 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.15.0.tgz", - "integrity": "sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.51.0.tgz", + "integrity": "sha512-11rZYxSe0zabiKaCP2QAwRf/dnmgFgvTmeDTtZvUvXG3UuAdg/GU02NExmmIXzz3vLGgMdtrIosI84jITQOxUA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/typescript-estree": "8.15.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6612,23 +6729,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz", - "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.51.0.tgz", + "integrity": "sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.51.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6639,9 +6752,9 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6652,161 +6765,176 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", - "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", + "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.6.0" + "node": ">=14.21.3" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -6814,28 +6942,31 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/accepts": { @@ -6843,6 +6974,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -6851,17 +6983,28 @@ "node": ">= 0.6" } }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/ace-builds": { - "version": "1.36.5", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.36.5.tgz", - "integrity": "sha512-mZ5KVanRT6nLRDLqtG/1YQQLX/gZVC/v526cm1Ru/MTSlrbweSmqv2ZT0d2GaHpJq035MwCMIrj+LgDAUnDXrg==", + "version": "1.43.5", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.5.tgz", + "integrity": "sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==", "license": "BSD-3-Clause" }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "devOptional": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -6880,10 +7023,14 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -6893,6 +7040,7 @@ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" @@ -6906,6 +7054,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -6916,22 +7065,20 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", "dependencies": { "humanize-ms": "^1.2.1" }, @@ -6939,25 +7086,12 @@ "node": ">= 8.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -6970,10 +7104,11 @@ } }, "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -6991,6 +7126,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -7002,6 +7138,7 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-17.0.2.tgz", "integrity": "sha512-zYgeLmAnu1g8XAYZK+csAsCQBDhgp9ffBv/eArEnujGxNPTeK00bREHWObtehflpQdSn+k9rY2D15ChCSydyVw==", + "license": "MIT", "dependencies": { "tslib": "^2.5.2" }, @@ -7015,21 +7152,22 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "environment": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7049,18 +7187,39 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/antlr4": { "version": "4.9.3", "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.9.3.tgz", "integrity": "sha512-qNy2odgsa0skmNMCuxzXhM4M8J1YDaPv3TI+vCdnOAanu0N982wBrSqziDKRDctEZLZy9VffqIZXc0UGjjSP/g==", + "license": "BSD-3-Clause", "engines": { "node": ">=14" } @@ -7070,6 +7229,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7083,6 +7243,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -7094,21 +7255,22 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -7139,6 +7301,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "browserslist": "^4.23.3", "caniuse-lite": "^1.0.30001646", @@ -7162,6 +7325,7 @@ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -7185,14 +7349,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { @@ -7210,27 +7374,27 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -7240,7 +7404,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -7260,7 +7425,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/base64id": { "version": "2.0.0", @@ -7272,6 +7438,16 @@ "node": "^4.5.0 || >= 5.9" } }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz", + "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -7280,9 +7456,9 @@ "license": "MIT" }, "node_modules/beasties": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.1.0.tgz", - "integrity": "sha512-+Ssscd2gVG24qRNC+E2g88D+xsQW4xwakWtKAiGEQ3Pw54/FGdyo9RrfxhGhEv6ilFVbB7r3Lgx+QnAxnSpECw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.3.2.tgz", + "integrity": "sha512-p4AF8uYzm9Fwu8m/hSVTCPXrRBPmB34hQpHsec2KOaR9CZmgoU8IOv4Cvwq4hgz2p4hLMNbsdNl5XeA6XbAQwA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -7290,10 +7466,13 @@ "css-what": "^6.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "htmlparser2": "^9.0.0", + "htmlparser2": "^10.0.0", "picocolors": "^1.1.1", - "postcss": "^8.4.47", + "postcss": "^8.4.49", "postcss-media-query-parser": "^0.2.3" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/big.js": { @@ -7301,6 +7480,7 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -7310,6 +7490,7 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7322,6 +7503,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -7329,23 +7511,24 @@ } }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -7357,15 +7540,30 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bonjour-service": { "version": "1.3.0", @@ -7386,10 +7584,11 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -7399,6 +7598,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -7410,6 +7610,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "license": "MIT", "dependencies": { "pako": "~1.0.5" } @@ -7417,12 +7618,13 @@ "node_modules/browserify-zlib/node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -7440,10 +7642,11 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -7471,6 +7674,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -7480,7 +7684,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bundle-name": { "version": "4.1.0", @@ -7503,6 +7708,7 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7548,64 +7754,17 @@ "dev": true, "license": "ISC" }, - "node_modules/cacache/node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/cacache/node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", + "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", + "minizlib": "^3.1.0", "yallist": "^5.0.0" }, "engines": { @@ -7622,17 +7781,29 @@ "node": ">=18" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -7646,14 +7817,15 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001683", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", - "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", + "version": "1.0.30001762", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz", + "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==", "dev": true, "funding": [ { @@ -7671,10 +7843,27 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "dev": true, "license": "MIT" }, @@ -7706,28 +7895,27 @@ "chevrotain": "^11.0.0" } }, + "node_modules/chevrotain/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "optional": true + }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" } }, "node_modules/chownr": { @@ -7741,34 +7929,29 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=6.0" } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-spinners": { @@ -7776,6 +7959,7 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -7800,23 +7984,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, @@ -7838,22 +8009,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/cli-width": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", @@ -7881,6 +8036,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -7890,44 +8046,67 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7945,6 +8124,7 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -7954,6 +8134,7 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -7963,10 +8144,24 @@ "node": ">=6" } }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/coffeescript": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.7.0.tgz", "integrity": "sha512-hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==", + "license": "MIT", "bin": { "cake": "bin/cake", "coffee": "bin/coffee" @@ -7975,6 +8170,26 @@ "node": ">=6" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -7987,6 +8202,7 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -7994,7 +8210,8 @@ "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/common-path-prefix": { "version": "3.0.0", @@ -8017,9 +8234,9 @@ } }, "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", "dev": true, "license": "MIT", "dependencies": { @@ -8027,7 +8244,7 @@ "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", - "on-headers": "~1.0.2", + "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" }, @@ -8066,7 +8283,8 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/confbox": { "version": "0.1.8", @@ -8080,6 +8298,7 @@ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -8105,6 +8324,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -8113,7 +8333,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/content-disposition": { "version": "0.5.4", @@ -8133,6 +8354,7 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8141,7 +8363,8 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { "version": "0.7.2", @@ -8154,9 +8377,9 @@ } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", "dev": true, "license": "MIT" }, @@ -8165,6 +8388,7 @@ "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, + "license": "MIT", "dependencies": { "is-what": "^3.14.1" }, @@ -8177,6 +8401,7 @@ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", @@ -8196,70 +8421,14 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", - "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.28.0" }, "funding": { "type": "opencollective", @@ -8269,7 +8438,8 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/cors": { "version": "2.8.5", @@ -8300,6 +8470,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -8321,36 +8492,20 @@ } } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "node-fetch": "^2.7.0" } }, "node_modules/cross-spawn": { @@ -8358,6 +8513,7 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8372,6 +8528,7 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", @@ -8403,9 +8560,9 @@ } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8420,9 +8577,9 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -8437,6 +8594,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -8447,12 +8605,14 @@ "node_modules/csv-parse": { "version": "4.16.3", "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", - "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==" + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", + "license": "MIT" }, "node_modules/csv-stringify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.1.2.tgz", "integrity": "sha512-3NmNhhd+AkYs5YtM1GEh01VR6PKj6qch2ayfQaltx5xpcAdThjnbbI5eT8CzRVpXfGKAxnmrSYLsNl/4f3eWiw==", + "license": "BSD-3-Clause", "dependencies": { "lodash.get": "~4.4.2" } @@ -8461,12 +8621,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cytoscape": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.0.tgz", - "integrity": "sha512-zDGn1K/tfZwEnoGOcHc0H4XazqAAXAuDpcYw9mUnUjATjqljyCNGJv8uEvbvxGaGHaVshxMecyl6oc6uKzRfbw==", + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", + "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", "license": "MIT", "optional": true, "engines": { @@ -9017,9 +9178,9 @@ } }, "node_modules/dagre-d3-es": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz", - "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==", + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.13.tgz", + "integrity": "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==", "license": "MIT", "optional": true, "dependencies": { @@ -9030,28 +9191,31 @@ "node_modules/date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==" + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "license": "MIT" }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0" } }, "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", "license": "MIT", "optional": true }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -9068,6 +9232,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -9076,12 +9241,13 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", + "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", "dev": true, "license": "MIT", "dependencies": { @@ -9096,9 +9262,9 @@ } }, "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", "dev": true, "license": "MIT", "engines": { @@ -9113,6 +9279,7 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -9120,23 +9287,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-lazy-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", @@ -9172,6 +9322,7 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -9181,15 +9332,16 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -9208,13 +9360,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -9237,6 +9391,7 @@ "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, + "license": "MIT", "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", @@ -9289,9 +9444,9 @@ } }, "node_modules/dompurify": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", - "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", "license": "(MPL-2.0 OR Apache-2.0)", "optional": true, "optionalDependencies": { @@ -9299,9 +9454,9 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -9313,22 +9468,39 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.64", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.64.tgz", - "integrity": "sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==", + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", "dev": true, "license": "ISC" }, @@ -9341,10 +9513,11 @@ } }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" }, "node_modules/emoji-toolkit": { "version": "9.0.1", @@ -9358,6 +9531,7 @@ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -9367,6 +9541,7 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -9375,6 +9550,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -9384,6 +9560,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -9393,22 +9570,21 @@ } }, "node_modules/engine.io": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", - "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", + "version": "6.6.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.5.tgz", + "integrity": "sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==", "dev": true, "license": "MIT", "dependencies": { - "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.7.2", "cors": "~2.8.5", - "debug": "~4.3.1", + "debug": "~4.4.1", "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" + "ws": "~8.18.3" }, "engines": { "node": ">=10.2.0" @@ -9425,10 +9601,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -9438,16 +9615,27 @@ } }, "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", + "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "punycode": "^1.4.1", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "devOptional": true, + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -9460,6 +9648,7 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -9489,6 +9678,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "prr": "~1.0.1" @@ -9498,22 +9688,21 @@ } }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9523,25 +9712,41 @@ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" }, "node_modules/esbuild": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", - "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -9552,36 +9757,37 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.0", - "@esbuild/android-arm": "0.24.0", - "@esbuild/android-arm64": "0.24.0", - "@esbuild/android-x64": "0.24.0", - "@esbuild/darwin-arm64": "0.24.0", - "@esbuild/darwin-x64": "0.24.0", - "@esbuild/freebsd-arm64": "0.24.0", - "@esbuild/freebsd-x64": "0.24.0", - "@esbuild/linux-arm": "0.24.0", - "@esbuild/linux-arm64": "0.24.0", - "@esbuild/linux-ia32": "0.24.0", - "@esbuild/linux-loong64": "0.24.0", - "@esbuild/linux-mips64el": "0.24.0", - "@esbuild/linux-ppc64": "0.24.0", - "@esbuild/linux-riscv64": "0.24.0", - "@esbuild/linux-s390x": "0.24.0", - "@esbuild/linux-x64": "0.24.0", - "@esbuild/netbsd-x64": "0.24.0", - "@esbuild/openbsd-arm64": "0.24.0", - "@esbuild/openbsd-x64": "0.24.0", - "@esbuild/sunos-x64": "0.24.0", - "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" } }, "node_modules/esbuild-wasm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.0.tgz", - "integrity": "sha512-xhNn5tL1AhkPg4ft59yXT6FkwKXiPSYyz1IeinJHUJpjvOHOIPvdmFQc0pGdjxlKSbzZc2mNmtVOWAR1EF/JAg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.25.4.tgz", + "integrity": "sha512-2HlCS6rNvKWaSKhWaG/YIyRsTsL3gUrMP2ToZMBIjw9LM7vVcIs+rz8kE2vExvTJgvM8OKPqNpcHawY/BQc/qQ==", "dev": true, "license": "MIT", "bin": { @@ -9601,38 +9807,52 @@ "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", - "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.15.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.5", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -9667,10 +9887,11 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -9687,6 +9908,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -9699,6 +9921,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9710,82 +9933,23 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -9793,69 +9957,29 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 4" } }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9863,58 +9987,16 @@ "node": "*" } }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9924,9 +10006,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -9940,6 +10022,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -9949,10 +10032,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -9965,6 +10049,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -9977,6 +10062,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -9986,6 +10072,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -10004,88 +10091,61 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", "dev": true, "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", + "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.13.0", + "qs": "~6.14.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -10098,16 +10158,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -10129,18 +10179,18 @@ } }, "node_modules/express/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" }, "engines": { @@ -10155,9 +10205,9 @@ "license": "MIT" }, "node_modules/express/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { @@ -10168,81 +10218,83 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -10260,10 +10312,29 @@ "node": ">=0.8.0" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fhir-kit-client": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/fhir-kit-client/-/fhir-kit-client-1.9.2.tgz", "integrity": "sha512-JInH86BcHR9kUxqmdhhmvEMu7HvUP4ECjolyX1XGhfULnWACrvWA7yX6aB8dI3gODHgqWdshpMY+CT2GTWxzVg==", + "license": "MIT", "dependencies": { "agentkeepalive": "^4.2.1", "cross-fetch": "^3.1.5", @@ -10278,10 +10349,11 @@ } }, "node_modules/fhirpath": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/fhirpath/-/fhirpath-3.15.2.tgz", - "integrity": "sha512-X02E5p+1onWpw/pDjr22pptpWw5sP4/Se526O7WotYqqPA5/I0fhi7eDhUrrRaUDNx0SnLPzLkZ1njq60YlETw==", + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/fhirpath/-/fhirpath-3.18.0.tgz", + "integrity": "sha512-iZ876rFWhozQLO/hTgFoEH9t9r1WHJqd4tRH6Gg/FiB6zliyK+bL7xKO5CzgkWBpvvBWe4sqe60tC+8opR0d0Q==", "hasInstallScript": true, + "license": "SEE LICENSE in LICENSE.md", "dependencies": { "@lhncbc/ucum-lhc": "^5.0.0", "antlr4": "~4.9.3", @@ -10296,11 +10368,34 @@ "node": ">=8.9.0" } }, + "node_modules/fhirpath/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/fhirpath/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -10313,6 +10408,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -10324,6 +10420,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10333,6 +10430,7 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -10351,6 +10449,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -10359,13 +10458,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/finalhandler/node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -10391,37 +10492,28 @@ } }, "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-up/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -10431,6 +10523,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -10440,15 +10533,16 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "dev": true, "funding": [ { @@ -10456,6 +10550,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -10466,12 +10561,13 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -10496,6 +10592,7 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, + "license": "MIT", "engines": { "node": "*" }, @@ -10514,6 +10611,31 @@ "node": ">= 0.6" } }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/fs-minipass": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", @@ -10531,7 +10653,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -10539,6 +10662,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -10552,6 +10676,7 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -10561,6 +10686,7 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -10570,14 +10696,15 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", "dev": true, "license": "MIT", "engines": { @@ -10588,16 +10715,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -10606,66 +10739,120 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.4" } }, "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/good-listener": { @@ -10679,12 +10866,13 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10694,13 +10882,8 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "devOptional": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "devOptional": true, + "license": "ISC" }, "node_modules/hachure-fill": { "version": "0.5.2", @@ -10716,23 +10899,22 @@ "dev": true, "license": "MIT" }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10740,11 +10922,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -10757,6 +10943,7 @@ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -10765,17 +10952,18 @@ } }, "node_modules/highlight.js": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", - "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "license": "BSD-3-Clause", "engines": { "node": ">=12.0.0" } }, "node_modules/hosted-git-info": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", - "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", + "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==", "dev": true, "license": "ISC", "dependencies": { @@ -10838,33 +11026,17 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -10877,14 +11049,27 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "dev": true, "license": "BSD-2-Clause" }, @@ -10896,34 +11081,40 @@ "license": "MIT" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, + "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "dev": true, "license": "MIT" }, @@ -10932,6 +11123,7 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -10956,58 +11148,42 @@ } }, "node_modules/http-proxy-middleware": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", - "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.5.tgz", + "integrity": "sha512-GLZZm1X38BPY4lkXA01jhwxvDoOkkXqjgVyUzVxiEK4iuRu03PZoYHhHRwxnfhQMDuaxi3vVri0YgSro/1oWqg==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.15", "debug": "^4.3.6", "http-proxy": "^1.18.1", "is-glob": "^4.0.3", - "is-plain-object": "^5.0.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { "node": ">= 14" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { "ms": "^2.0.0" } @@ -11023,15 +11199,20 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", + "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/icss-utils": { @@ -11039,6 +11220,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -11064,13 +11246,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -11093,6 +11277,7 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, + "license": "MIT", "optional": true, "bin": { "image-size": "bin/image-size.js" @@ -11102,17 +11287,18 @@ } }, "node_modules/immutable": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", - "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", + "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", "dev": true, "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -11124,39 +11310,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -11165,7 +11335,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "5.0.0", @@ -11188,30 +11359,19 @@ } }, "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", "dev": true, "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, "engines": { "node": ">= 12" } }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", "dev": true, "license": "MIT", "engines": { @@ -11222,13 +11382,15 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -11237,12 +11399,16 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11269,6 +11435,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11277,6 +11444,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "license": "MIT", "engines": { "node": ">=0.10.0" }, @@ -11285,12 +11453,16 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-glob": { @@ -11298,6 +11470,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -11328,6 +11501,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.7.tgz", "integrity": "sha512-RPQc/s9yBHSvpi+hs9dYiJ2cuFeU6x3TyyIp8O2H6SKEltIvJOzRj9ToyvcStDvPR/pS4rxgr1oBFajQjZ2Szg==", + "license": "WTFPL OR ISC", "dependencies": { "is-finite": "^1.0.0" } @@ -11337,21 +11511,15 @@ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", + "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", "dev": true, "license": "MIT", "engines": { @@ -11366,6 +11534,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -11384,27 +11553,32 @@ } }, "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-unicode-supported": { @@ -11412,6 +11586,7 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11423,7 +11598,8 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-wsl": { "version": "3.1.0", @@ -11444,13 +11620,15 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/isbinaryfile": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8.0.0" }, @@ -11462,13 +11640,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11478,6 +11658,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -11487,6 +11668,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -11503,6 +11685,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -11512,32 +11695,12 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^2.0.5", @@ -11550,10 +11713,11 @@ } }, "node_modules/istanbul-lib-source-maps/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11563,7 +11727,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11584,6 +11750,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=6" } @@ -11593,6 +11760,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -11606,6 +11774,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11617,7 +11786,9 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -11630,6 +11801,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -11639,15 +11811,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -11657,16 +11831,14 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -11675,29 +11847,32 @@ } }, "node_modules/jasmine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.4.0.tgz", - "integrity": "sha512-E2u4ylX5tgGYvbynImU6EUBKKrSVB1L72FEPjGh4M55ov1VsxR26RA2JU91L9YSPFgcjo4mCLyKn/QXvEYGBkA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.13.0.tgz", + "integrity": "sha512-oLCXIhEb5e0zzjn9GyuvcuisvLBwUjmgz7a0RNGWKwQtJCDld4m+vwKUpAIJVLB5vbmQFdtKhT86/tIZlJ5gYw==", "dev": true, + "license": "MIT", "dependencies": { "glob": "^10.2.2", - "jasmine-core": "~5.4.0" + "jasmine-core": "~5.13.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.4.0.tgz", - "integrity": "sha512-T4fio3W++llLd7LGSGsioriDHgWyhoL6YTu4k37uwJLF7DzOzspz7mNxRoM3cQdLWtL/ebazQpIf/yZGJx/gzg==", - "dev": true + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.13.0.tgz", + "integrity": "sha512-vsYjfh7lyqvZX5QgqKc4YH8phs7g96Z8bsdIFNEU3VqXhlHaq+vov/Fgn/sr6MiUczdZkyXRC3TX369Ll4Nzbw==", + "dev": true, + "license": "MIT" }, "node_modules/jasmine-spec-reporter": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "colors": "1.4.0" } @@ -11707,6 +11882,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -11716,20 +11892,12 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11741,18 +11909,19 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/js-base64": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", - "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==", + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz", + "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", "license": "BSD-3-Clause" }, "node_modules/js-tokens": { @@ -11765,31 +11934,26 @@ "node_modules/js-untar": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/js-untar/-/js-untar-2.0.0.tgz", - "integrity": "sha512-7CsDLrYQMbLxDt2zl9uKaPZSdmJMvGGQ7wo9hoB3J+z/VcO2w63bXFgHVnjF1+S9wD3zAu8FBVj7EYWjTQ3Z7g==" + "integrity": "sha512-7CsDLrYQMbLxDt2zl9uKaPZSdmJMvGGQ7wo9hoB3J+z/VcO2w63bXFgHVnjF1+S9wD3zAu8FBVj7EYWjTQ3Z7g==", + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "bin": { @@ -11803,7 +11967,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "4.0.0", @@ -11819,30 +11984,35 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/json-patch/-/json-patch-0.7.0.tgz", "integrity": "sha512-9zaGTzsV6Hal5HVMC8kb4niXYQOOcq3tUp0P/GTw6HHZFPVwtCU2+mXE9q59MelL9uknALWnoKrUxnDpUX728g==", - "dev": true + "dev": true, + "license": "BSD" }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -11854,12 +12024,14 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -11879,6 +12051,7 @@ "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -11917,6 +12090,7 @@ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, + "license": "MIT", "dependencies": { "which": "^1.2.1" } @@ -11926,6 +12100,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -11938,6 +12113,7 @@ "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-2.0.0.tgz", "integrity": "sha512-1Kb28UILg1ZsfqQmeELbPzuEb5C6GZJfVIk0qOr8LNYQuYWmAaqP16WpbpKEjhejDrDYyYOwwJXSZO6u7q5Pvw==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.3.3" }, @@ -11953,6 +12129,7 @@ "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, + "license": "MIT", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.0", @@ -11965,10 +12142,11 @@ } }, "node_modules/karma-coverage-istanbul-reporter/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11979,6 +12157,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11991,6 +12170,7 @@ "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, + "license": "MIT", "dependencies": { "jasmine-core": "^4.1.0" }, @@ -12006,6 +12186,7 @@ "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", "dev": true, + "license": "MIT", "peerDependencies": { "jasmine-core": "^4.0.0 || ^5.0.0", "karma": "^6.0.0", @@ -12013,79 +12194,94 @@ } }, "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.1.tgz", + "integrity": "sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==", + "dev": true, + "license": "MIT" }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, + "license": "MIT", "dependencies": { "source-map-support": "^0.5.5" } }, - "node_modules/karma/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/karma/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/karma/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/karma/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, - "node_modules/karma/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/karma/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/karma/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "license": "MIT" }, "node_modules/karma/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12101,11 +12297,35 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/karma/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/karma/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/karma/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -12113,20 +12333,76 @@ "node": "*" } }, + "node_modules/karma/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/karma/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/karma/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/karma/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12144,6 +12420,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -12162,14 +12439,15 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/katex": { - "version": "0.16.21", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", - "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", + "version": "0.16.27", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", + "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -12198,6 +12476,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -12213,21 +12492,15 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/kolorist": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", - "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", - "license": "MIT", - "optional": true - }, "node_modules/langium": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz", - "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", + "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", "license": "MIT", "optional": true, "dependencies": { @@ -12242,14 +12515,14 @@ } }, "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", + "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", "dev": true, "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" } }, "node_modules/layout-base": { @@ -12260,10 +12533,11 @@ "optional": true }, "node_modules/less": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", - "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.2.tgz", + "integrity": "sha512-tkuLHQlvWUTeQ3doAqnHbNn8T6WX1KA8yvbKG9x4VtKtIjHsVKQZCH11zRgAfbDAXC2UNIg/K9BYAAcEzUIrNg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -12290,6 +12564,7 @@ "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18.12.0" }, @@ -12316,6 +12591,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "pify": "^4.0.1", @@ -12330,6 +12606,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "optional": true, "bin": { "mime": "cli.js" @@ -12343,6 +12620,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "optional": true, "bin": { "semver": "bin/semver" @@ -12353,6 +12631,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" @@ -12363,6 +12642,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -12376,6 +12656,7 @@ "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", "dev": true, + "license": "ISC", "dependencies": { "webpack-sources": "^3.0.0" }, @@ -12388,6 +12669,13 @@ } } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/listr2": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", @@ -12406,23 +12694,10 @@ "node": ">=18.0.0" } }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -12433,9 +12708,9 @@ } }, "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, @@ -12464,26 +12739,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { @@ -12499,9 +12758,9 @@ } }, "node_modules/lmdb": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.1.5.tgz", - "integrity": "sha512-46Mch5Drq+A93Ss3gtbg+Xuvf5BOgIuvhKDWoGa3HcPHI6BL2NCOkRdSx1D4VfzwrxhnsjbyIVsLRlQHu6URvw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.2.6.tgz", + "integrity": "sha512-SuHqzPl7mYStna8WRotY8XX/EUZBjjv3QyKIByeCLFfC9uXT/OIHByEcA07PzbMfQAM0KYJtLgtpMRlIe5dErQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -12517,21 +12776,26 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.1.5", - "@lmdb/lmdb-darwin-x64": "3.1.5", - "@lmdb/lmdb-linux-arm": "3.1.5", - "@lmdb/lmdb-linux-arm64": "3.1.5", - "@lmdb/lmdb-linux-x64": "3.1.5", - "@lmdb/lmdb-win32-x64": "3.1.5" + "@lmdb/lmdb-darwin-arm64": "3.2.6", + "@lmdb/lmdb-darwin-x64": "3.2.6", + "@lmdb/lmdb-linux-arm": "3.2.6", + "@lmdb/lmdb-linux-arm64": "3.2.6", + "@lmdb/lmdb-linux-x64": "3.2.6", + "@lmdb/lmdb-win32-x64": "3.2.6" } }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/loader-utils": { @@ -12539,38 +12803,22 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/local-pkg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.0.0.tgz", - "integrity": "sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==", "license": "MIT", - "optional": true, - "dependencies": { - "mlly": "^1.7.3", - "pkg-types": "^1.3.0" - }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" + "node": ">= 12.13.0" } }, "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^6.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12580,12 +12828,13 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", + "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", "license": "MIT", "optional": true }, @@ -12599,98 +12848,32 @@ "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update": { @@ -12713,39 +12896,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -12755,70 +12909,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" + "get-east-asian-width": "^1.3.1" }, "engines": { "node": ">=18" @@ -12828,9 +12933,9 @@ } }, "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, "license": "MIT", "dependencies": { @@ -12862,26 +12967,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { @@ -12901,6 +12990,7 @@ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -12927,7 +13017,7 @@ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -12937,6 +13027,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -12951,151 +13042,52 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", + "minipass-fetch": "^4.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "ssri": "^12.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/make-fetch-happen/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, + "node_modules/marked": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" + "bin": { + "marked": "bin/marked.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 18" } }, - "node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/marked": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.0.tgz", - "integrity": "sha512-0mouKmBROJv/WSHJBPZZyYofUgawMChnD5je/g+aOBXsHDjb/IsnTQj7mnhQZu+qPJmRQ0ecX3mLGEUm3BgwYA==", "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, "engines": { - "node": ">= 18" + "node": ">= 0.4" } }, "node_modules/media-typer": { @@ -13103,25 +13095,25 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", - "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "version": "4.51.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.51.1.tgz", + "integrity": "sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", "tslib": "^2.0.0" }, - "engines": { - "node": ">= 4.0.0" - }, "funding": { "type": "github", "url": "https://github.com/sponsors/streamich" @@ -13141,71 +13133,59 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/mermaid": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.4.1.tgz", - "integrity": "sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A==", + "version": "11.12.2", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.2.tgz", + "integrity": "sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==", "license": "MIT", "optional": true, "dependencies": { - "@braintree/sanitize-url": "^7.0.1", - "@iconify/utils": "^2.1.32", - "@mermaid-js/parser": "^0.3.0", + "@braintree/sanitize-url": "^7.1.1", + "@iconify/utils": "^3.0.1", + "@mermaid-js/parser": "^0.6.3", "@types/d3": "^7.4.3", - "cytoscape": "^3.29.2", + "cytoscape": "^3.29.3", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", - "dagre-d3-es": "7.0.11", - "dayjs": "^1.11.10", - "dompurify": "^3.2.1", - "katex": "^0.16.9", + "dagre-d3-es": "7.0.13", + "dayjs": "^1.11.18", + "dompurify": "^3.2.5", + "katex": "^0.16.22", "khroma": "^2.1.0", "lodash-es": "^4.17.21", - "marked": "^13.0.2", + "marked": "^16.2.1", "roughjs": "^4.6.6", - "stylis": "^4.3.1", + "stylis": "^4.3.6", "ts-dedent": "^2.2.0", - "uuid": "^9.0.1" + "uuid": "^11.1.0" } }, "node_modules/mermaid/node_modules/marked": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz", - "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==", + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", + "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", "license": "MIT", "optional": true, "bin": { "marked": "bin/marked.js" }, "engines": { - "node": ">= 18" - } - }, - "node_modules/mermaid/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" + "node": ">= 20" } }, "node_modules/methods": { @@ -13223,6 +13203,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -13236,6 +13217,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -13248,6 +13230,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13260,6 +13243,7 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13269,6 +13253,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -13281,6 +13266,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -13347,6 +13333,7 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -13375,18 +13362,18 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz", + "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==", "dev": true, "license": "MIT", "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "minizlib": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" }, "optionalDependencies": { "encoding": "^0.1.13" @@ -13492,44 +13479,24 @@ "license": "ISC" }, "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.1.2" }, "engines": { - "node": ">=8" + "node": ">= 18" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -13538,16 +13505,16 @@ } }, "node_modules/mlly": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", - "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", "license": "MIT", "optional": true, "dependencies": { - "acorn": "^8.14.0", - "pathe": "^2.0.1", - "pkg-types": "^1.3.0", - "ufo": "^1.5.4" + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" } }, "node_modules/mri": { @@ -13555,14 +13522,15 @@ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", "engines": { @@ -13572,12 +13540,13 @@ "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/msgpackr": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", - "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.8.tgz", + "integrity": "sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==", "dev": true, "license": "MIT", "optional": true, @@ -13633,9 +13602,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -13655,13 +13624,15 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/needle": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.3", @@ -13679,6 +13650,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -13688,10 +13660,11 @@ } }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13700,12 +13673,14 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ngx-highlightjs": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/ngx-highlightjs/-/ngx-highlightjs-12.0.0.tgz", "integrity": "sha512-1lSUv3hNpriHewwe8zz8eMX6q/Tcq1ZCsJ1GitBsr86y39e+q4U/s8LKE7rvK6SVAbQlUuopdbbKWR0zjihjLg==", + "license": "MIT", "dependencies": { "highlight.js": "^11.9.0", "tslib": "^2.3.0" @@ -13716,9 +13691,9 @@ } }, "node_modules/ngx-markdown": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-19.1.0.tgz", - "integrity": "sha512-Zl9M6DzM1DOX54Nj8+okx9v6GVsQVE/D7jtkjlYYWLqMaW78ZThwQ9XlCbn3OpK0UOOpJnminRRlZERAeWXcCA==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-19.1.1.tgz", + "integrity": "sha512-R0SGsSa8QMLS4mXMWjB7EoK7Vab30QeGA+Y4zeeb4yb+YdAqg0hU/XFkBiQefJx/JxrtxTWJAu1b97LEGscluQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -13728,7 +13703,7 @@ "emoji-toolkit": ">= 8.0.0 < 10.0.0", "katex": "^0.16.0", "mermaid": ">= 10.6.0 < 12.0.0", - "prismjs": "^1.28.0" + "prismjs": "^1.30.0" }, "peerDependencies": { "@angular/common": "^19.0.0", @@ -13740,9 +13715,10 @@ } }, "node_modules/ngx-mat-select-search": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-7.0.8.tgz", - "integrity": "sha512-WyVA98Q2v03pPsH81C/yQaYa57sp7psBblZr4TFC+K6/zc9ZOkIvzab3PTjwiI1FwyeI1pQpvHRag6YeoAyjDg==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-7.0.10.tgz", + "integrity": "sha512-aygVGuOVJKfY8cQuOinz36sROEMaj2KU0IXB1f8VvKjbRAet5y5RAojo3ElnHR2FPaMQ6IMbp563kNyv2I4XrQ==", + "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, @@ -13751,9 +13727,10 @@ } }, "node_modules/ngx-toastr": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-19.0.0.tgz", - "integrity": "sha512-6pTnktwwWD+kx342wuMOWB4+bkyX9221pAgGz3SHOJH0/MI9erLucS8PeeJDFwbUYyh75nQ6AzVtolgHxi52dQ==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-19.1.0.tgz", + "integrity": "sha512-Qa7Kg7QzGKNtp1v04hu3poPKKx8BGBD/Onkhm6CdH5F0vSMdq+BdR/f8DTpZnGFksW891tAFufpiWb9UZX+3vg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -13766,7 +13743,8 @@ "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "license": "MIT" }, "node_modules/node-addon-api": { "version": "6.1.0", @@ -13780,6 +13758,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -13796,9 +13775,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", + "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", "dev": true, "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { @@ -13806,28 +13785,28 @@ } }, "node_modules/node-gyp": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", - "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.5.0.tgz", + "integrity": "sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==", "dev": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" + "tar": "^7.4.3", + "tinyglobby": "^0.2.12", + "which": "^5.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/node-gyp-build-optional-packages": { @@ -13846,6 +13825,16 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, + "node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/node-gyp/node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", @@ -13856,20 +13845,27 @@ "node": ">=16" } }, - "node_modules/node-gyp/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/node-gyp/node_modules/tar": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", + "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" } }, "node_modules/node-gyp/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, "license": "ISC", "dependencies": { @@ -13879,42 +13875,38 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" }, "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", "dev": true, "license": "ISC", "dependencies": { - "abbrev": "^2.0.0" + "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.0.tgz", - "integrity": "sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^8.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, "engines": { "node": "^18.17.0 || >=20.5.0" } @@ -13924,6 +13916,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13933,6 +13926,7 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13951,9 +13945,9 @@ } }, "node_modules/npm-install-checks": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.1.tgz", - "integrity": "sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.2.tgz", + "integrity": "sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -13974,9 +13968,9 @@ } }, "node_modules/npm-package-arg": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.0.tgz", - "integrity": "sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz", + "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==", "dev": true, "license": "ISC", "dependencies": { @@ -14038,123 +14032,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", - "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", - "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm-registry-fetch/node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/npm-registry-fetch/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm-registry-fetch/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -14179,10 +14056,14 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -14199,6 +14080,7 @@ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -14207,9 +14089,9 @@ } }, "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", "dev": true, "license": "MIT", "engines": { @@ -14221,20 +14103,22 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14260,17 +14144,18 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -14281,6 +14166,7 @@ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -14299,143 +14185,123 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/ora/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, "engines": { "node": ">=8" } }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, + "license": "ISC" + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/ordered-binary": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", - "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.1.tgz", + "integrity": "sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==", "dev": true, "license": "MIT", "optional": true }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "yocto-queue": "^0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit/node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=12.20" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^4.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", - "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", "dev": true, "license": "MIT", "engines": { @@ -14473,10 +14339,17 @@ "node": ">= 4" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/package-manager-detector": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz", - "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", "license": "MIT", "optional": true }, @@ -14515,13 +14388,15 @@ "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -14534,6 +14409,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14551,30 +14427,26 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/parse-json/node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "devOptional": true, + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -14608,11 +14480,24 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -14629,6 +14514,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14638,6 +14524,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14647,6 +14534,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14655,32 +14543,32 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/path-to-regexp": { "version": "0.1.12", @@ -14689,6 +14577,19 @@ "dev": true, "license": "MIT" }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -14700,13 +14601,15 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -14719,14 +14622,15 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/piscina": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.7.0.tgz", - "integrity": "sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", + "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", "dev": true, "license": "MIT", "optionalDependencies": { @@ -14749,6 +14653,94 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pkg-types": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", @@ -14780,9 +14772,9 @@ } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "dev": true, "funding": [ { @@ -14800,7 +14792,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -14813,6 +14805,7 @@ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", "dev": true, + "license": "MIT", "dependencies": { "cosmiconfig": "^9.0.0", "jiti": "^1.20.0", @@ -14851,6 +14844,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -14859,13 +14853,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -14876,12 +14871,13 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, + "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -14895,6 +14891,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -14906,10 +14903,11 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14921,130 +14919,81 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-quick": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.0.0.tgz", - "integrity": "sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==", - "dev": true, - "dependencies": { - "execa": "^5.1.1", - "find-up": "^5.0.0", - "ignore": "^5.3.0", - "mri": "^1.2.0", - "picocolors": "^1.0.0", - "picomatch": "^3.0.1", - "tslib": "^2.6.2" - }, - "bin": { - "pretty-quick": "lib/cli.mjs" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "prettier": "^3.0.0" - } - }, - "node_modules/pretty-quick/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" }, - "node_modules/pretty-quick/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8.0" } }, - "node_modules/pretty-quick/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/prettier": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/pretty-quick/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/pretty-quick": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.2.2.tgz", + "integrity": "sha512-uAh96tBW1SsD34VhhDmWuEmqbpfYc/B3j++5MC/6b3Cb8Ow7NJsvKFhg0eoGu2xXX+o9RkahkTK6sUdd8E7g5w==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "@pkgr/core": "^0.2.7", + "ignore": "^7.0.5", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.2", + "tinyexec": "^0.3.2", + "tslib": "^2.8.1" + }, + "bin": { + "pretty-quick": "lib/cli.mjs" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/pretty-quick" + }, + "peerDependencies": { + "prettier": "^3.0.0" } }, - "node_modules/pretty-quick/node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "node_modules/pretty-quick/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">= 4" } }, + "node_modules/pretty-quick/node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -15068,14 +15017,8 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true, - "license": "ISC" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/promise-retry": { "version": "2.0.1", @@ -15120,33 +15063,34 @@ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "MIT" }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.9" } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -15159,6 +15103,7 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", @@ -15190,13 +15135,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -15206,30 +15153,46 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -15240,27 +15203,17 @@ } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">= 14.18.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/reflect-metadata": { @@ -15278,9 +15231,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "dev": true, "license": "MIT", "dependencies": { @@ -15297,35 +15250,26 @@ "dev": true, "license": "MIT" }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", - "dev": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", + "dev": true, + "license": "MIT" }, "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "dev": true, "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", + "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" @@ -15339,13 +15283,13 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" @@ -15356,6 +15300,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15365,6 +15310,7 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15373,30 +15319,46 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-url-loader": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, + "license": "MIT", "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", @@ -15413,6 +15375,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -15427,29 +15390,28 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -15461,10 +15423,11 @@ } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -15474,13 +15437,16 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -15492,10 +15458,11 @@ } }, "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -15505,7 +15472,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -15526,6 +15495,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -15541,9 +15511,9 @@ "optional": true }, "node_modules/rollup": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.26.0.tgz", - "integrity": "sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15557,27 +15527,35 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.26.0", - "@rollup/rollup-android-arm64": "4.26.0", - "@rollup/rollup-darwin-arm64": "4.26.0", - "@rollup/rollup-darwin-x64": "4.26.0", - "@rollup/rollup-freebsd-arm64": "4.26.0", - "@rollup/rollup-freebsd-x64": "4.26.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.26.0", - "@rollup/rollup-linux-arm-musleabihf": "4.26.0", - "@rollup/rollup-linux-arm64-gnu": "4.26.0", - "@rollup/rollup-linux-arm64-musl": "4.26.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.26.0", - "@rollup/rollup-linux-riscv64-gnu": "4.26.0", - "@rollup/rollup-linux-s390x-gnu": "4.26.0", - "@rollup/rollup-linux-x64-gnu": "4.26.0", - "@rollup/rollup-linux-x64-musl": "4.26.0", - "@rollup/rollup-win32-arm64-msvc": "4.26.0", - "@rollup/rollup-win32-ia32-msvc": "4.26.0", - "@rollup/rollup-win32-x64-msvc": "4.26.0", + "@rollup/rollup-android-arm-eabi": "4.34.8", + "@rollup/rollup-android-arm64": "4.34.8", + "@rollup/rollup-darwin-arm64": "4.34.8", + "@rollup/rollup-darwin-x64": "4.34.8", + "@rollup/rollup-freebsd-arm64": "4.34.8", + "@rollup/rollup-freebsd-x64": "4.34.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", + "@rollup/rollup-linux-arm64-gnu": "4.34.8", + "@rollup/rollup-linux-arm64-musl": "4.34.8", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", + "@rollup/rollup-linux-s390x-gnu": "4.34.8", + "@rollup/rollup-linux-x64-gnu": "4.34.8", + "@rollup/rollup-linux-x64-musl": "4.34.8", + "@rollup/rollup-win32-arm64-msvc": "4.34.8", + "@rollup/rollup-win32-ia32-msvc": "4.34.8", + "@rollup/rollup-win32-x64-msvc": "4.34.8", "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, "node_modules/roughjs": { "version": "4.6.6", "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", @@ -15592,9 +15570,9 @@ } }, "node_modules/run-applescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", "dev": true, "license": "MIT", "engines": { @@ -15623,6 +15601,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -15635,9 +15614,10 @@ "optional": true }, "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } @@ -15660,18 +15640,38 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/sass": { - "version": "1.80.7", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.7.tgz", - "integrity": "sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ==", + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.0.tgz", + "integrity": "sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==", "dev": true, "license": "MIT", "dependencies": { @@ -15690,9 +15690,9 @@ } }, "node_modules/sass-loader": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.3.tgz", - "integrity": "sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA==", + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", "dev": true, "license": "MIT", "dependencies": { @@ -15730,48 +15730,20 @@ } } }, - "node_modules/sass/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", "dev": true, + "license": "BlueOak-1.0.0", "optional": true }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -15779,11 +15751,29 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, "node_modules/select": { @@ -15815,9 +15805,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "license": "ISC", "bin": { @@ -15828,25 +15818,25 @@ } }, "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" @@ -15869,6 +15859,16 @@ "dev": true, "license": "MIT" }, + "node_modules/send/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -15883,9 +15883,9 @@ } }, "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { @@ -15897,6 +15897,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -15978,16 +15979,16 @@ "license": "ISC" }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "dev": true, "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.19.0" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" @@ -16003,34 +16004,19 @@ "node": ">= 0.8" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -16043,6 +16029,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -16055,30 +16042,92 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -16092,6 +16141,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -16100,23 +16150,36 @@ } }, "node_modules/sigstore": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz", - "integrity": "sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.1.0.tgz", + "integrity": "sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^3.0.0", - "@sigstore/tuf": "^3.0.0", - "@sigstore/verify": "^2.0.0" + "@sigstore/protobuf-specs": "^0.4.0", + "@sigstore/sign": "^3.1.0", + "@sigstore/tuf": "^3.1.0", + "@sigstore/verify": "^2.1.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -16135,9 +16198,9 @@ } }, "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -16147,19 +16210,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -16172,16 +16222,16 @@ } }, "node_modules/socket.io": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", - "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.3.tgz", + "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", - "debug": "~4.3.2", + "debug": "~4.4.1", "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" @@ -16191,23 +16241,25 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.6.tgz", + "integrity": "sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "~4.3.4", - "ws": "~8.17.1" + "debug": "~4.4.1", + "ws": "~8.18.3" } }, "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz", + "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", "dev": true, + "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "debug": "~4.4.1" }, "engines": { "node": ">=10.0.0" @@ -16225,14 +16277,24 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "dev": true, "license": "MIT", "dependencies": { - "ip-address": "^9.0.5", + "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" }, "engines": { @@ -16241,13 +16303,13 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" }, @@ -16260,6 +16322,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -16279,6 +16342,7 @@ "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", "dev": true, + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.3", "source-map-js": "^1.0.2" @@ -16299,6 +16363,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -16311,6 +16376,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -16321,6 +16387,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -16355,9 +16422,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", "dev": true, "license": "CC0-1.0" }, @@ -16397,6 +16464,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16404,7 +16472,8 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/ssri": { "version": "12.0.0", @@ -16424,6 +16493,7 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16432,6 +16502,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", + "license": "MIT", "dependencies": { "emitter-component": "^1.1.1" } @@ -16439,13 +16510,15 @@ "node_modules/stream-transform": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.2.tgz", - "integrity": "sha512-3HXId/0W8sktQnQM6rOZf2LuDDMbakMgAjpViLk758/h0br+iGqZFFfUxxJSqEvGvT742PyFr4v/TBXUtowdCg==" + "integrity": "sha512-3HXId/0W8sktQnQM6rOZf2LuDDMbakMgAjpViLk758/h0br+iGqZFFfUxxJSqEvGvT742PyFr4v/TBXUtowdCg==", + "license": "BSD-3-Clause" }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, + "license": "MIT", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -16455,42 +16528,11 @@ "node": ">=8.0" } }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/streamroller/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -16500,6 +16542,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -16508,6 +16551,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz", "integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.1.0" @@ -16517,6 +16561,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -16530,28 +16575,34 @@ "node_modules/string-to-stream/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/string-to-stream/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -16560,6 +16611,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16569,11 +16621,39 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16581,12 +16661,29 @@ "node": ">=8" } }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16594,13 +16691,14 @@ "node": ">=8" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/strip-json-comments": { @@ -16608,6 +16706,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -16622,11 +16721,25 @@ "license": "MIT", "optional": true }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16639,17 +16752,23 @@ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/tar": { @@ -16706,6 +16825,33 @@ "node": ">=8" } }, + "node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -16727,9 +16873,9 @@ "license": "ISC" }, "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -16746,16 +16892,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -16779,64 +16926,19 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", + "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", "dev": true, - "license": "Unlicense", + "license": "MIT", "engines": { "node": ">=10.18" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, "peerDependencies": { "tslib": "^2" } @@ -16856,17 +16958,51 @@ "optional": true }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "license": "MIT", - "optional": true + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.14" } @@ -16876,6 +17012,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -16888,6 +17025,7 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } @@ -16895,12 +17033,13 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -16919,20 +17058,22 @@ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-dedent": { @@ -16950,6 +17091,7 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -16991,126 +17133,22 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tuf-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", - "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.1.0.tgz", + "integrity": "sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==", "dev": true, "license": "MIT", "dependencies": { "@tufjs/models": "3.0.1", - "debug": "^4.3.6", - "make-fetch-happen": "^14.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/tuf-js/node_modules/@npmcli/agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", - "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", - "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" + "debug": "^4.4.1", + "make-fetch-happen": "^14.0.3" }, "engines": { "node": "^18.17.0 || >=20.5.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/tuf-js/node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/tuf-js/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/tuf-js/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/type-check": { @@ -17118,6 +17156,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -17125,24 +17164,12 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -17155,12 +17182,13 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -17172,9 +17200,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", - "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "version": "0.7.41", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.41.tgz", + "integrity": "sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==", "dev": true, "funding": [ { @@ -17190,22 +17218,27 @@ "url": "https://github.com/sponsors/faisalman" } ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, "engines": { "node": "*" } }, "node_modules/ufo": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", - "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", "license": "MIT", "optional": true }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", @@ -17232,9 +17265,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "dev": true, "license": "MIT", "engines": { @@ -17242,9 +17275,9 @@ } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "dev": true, "license": "MIT", "engines": { @@ -17252,10 +17285,11 @@ } }, "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -17289,19 +17323,30 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -17320,7 +17365,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -17334,39 +17379,57 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", + "optional": true, "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/validate-npm-package-license": { "version": "3.0.4", @@ -17380,9 +17443,9 @@ } }, "node_modules/validate-npm-package-name": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", - "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.2.tgz", + "integrity": "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==", "dev": true, "license": "ISC", "engines": { @@ -17394,26 +17457,30 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vite": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.12.tgz", - "integrity": "sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -17422,19 +17489,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -17455,30 +17528,19 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "node_modules/vite/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", "cpu": [ "arm" ], @@ -17487,15 +17549,12 @@ "optional": true, "os": [ "android" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "node_modules/vite/node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", "cpu": [ "arm64" ], @@ -17504,32 +17563,12 @@ "optional": true, "os": [ "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "node_modules/vite/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", "cpu": [ "arm64" ], @@ -17538,15 +17577,12 @@ "optional": true, "os": [ "darwin" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "node_modules/vite/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", "cpu": [ "x64" ], @@ -17555,15 +17591,12 @@ "optional": true, "os": [ "darwin" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "node_modules/vite/node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", "cpu": [ "arm64" ], @@ -17572,15 +17605,12 @@ "optional": true, "os": [ "freebsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "node_modules/vite/node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", "cpu": [ "x64" ], @@ -17589,15 +17619,12 @@ "optional": true, "os": [ "freebsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", "cpu": [ "arm" ], @@ -17606,100 +17633,54 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", "cpu": [ - "loong64" + "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", "cpu": [ - "mips64el" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "node_modules/vite/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", "cpu": [ "riscv64" ], @@ -17708,15 +17689,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "node_modules/vite/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", "cpu": [ "s390x" ], @@ -17725,15 +17703,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "node_modules/vite/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", "cpu": [ "x64" ], @@ -17742,49 +17717,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", "cpu": [ "x64" ], @@ -17792,16 +17730,13 @@ "license": "MIT", "optional": true, "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } + "linux" + ] }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "node_modules/vite/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", "cpu": [ "arm64" ], @@ -17810,15 +17745,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "node_modules/vite/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", "cpu": [ "ia32" ], @@ -17827,15 +17759,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "node_modules/vite/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", "cpu": [ "x64" ], @@ -17844,48 +17773,80 @@ "optional": true, "os": [ "win32" + ] + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, "engines": { - "node": ">=12" + "node": "^10 || ^12 || >=14" } }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "node_modules/vite/node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", "dev": true, - "hasInstallScript": true, "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, "bin": { - "esbuild": "bin/esbuild" + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=12" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" } }, "node_modules/void-elements": { @@ -17893,6 +17854,7 @@ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17981,6 +17943,7 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } @@ -17996,20 +17959,21 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.96.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", - "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "version": "5.98.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", + "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", "dev": true, "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.14.0", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", @@ -18023,9 +17987,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^4.3.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", + "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, @@ -18076,15 +18040,16 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz", - "integrity": "sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", "dev": true, "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", "@types/serve-index": "^1.9.4", "@types/serve-static": "^1.15.5", "@types/sockjs": "^0.3.36", @@ -18095,10 +18060,9 @@ "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "express": "^4.19.2", + "express": "^4.21.2", "graceful-fs": "^4.2.6", - "html-entities": "^2.4.0", - "http-proxy-middleware": "^2.0.3", + "http-proxy-middleware": "^2.0.9", "ipaddr.js": "^2.1.0", "launch-editor": "^2.6.1", "open": "^10.0.3", @@ -18133,10 +18097,48 @@ } } }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -18158,26 +18160,30 @@ } } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=8.6" }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": ">=8.10.0" } }, "node_modules/webpack-merge": { @@ -18185,6 +18191,7 @@ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", @@ -18195,10 +18202,11 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -18208,6 +18216,7 @@ "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", "dev": true, + "license": "MIT", "dependencies": { "typed-assert": "^1.0.8" }, @@ -18224,36 +18233,12 @@ } } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -18267,6 +18252,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -18275,31 +18261,8 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } + "license": "MIT" }, "node_modules/websocket-driver": { "version": "0.7.4", @@ -18330,6 +18293,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -18340,6 +18304,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -18354,7 +18319,18 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/wrap-ansi": { "version": "6.2.0", @@ -18377,6 +18353,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -18389,86 +18366,129 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -18489,6 +18509,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-0.4.0.tgz", "integrity": "sha512-rJ/+/UzYCSlFNuAzGuRyYgkH2G5agdX1UQn4+5siYw9pkNC3Hu/grYNDx/dqYLreeSjnY5oKg74CMBKxJHSg6Q==", + "license": "MIT", "dependencies": { "sax": "~1.1.1" } @@ -18496,13 +18517,15 @@ "node_modules/xmldoc/node_modules/sax": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz", - "integrity": "sha512-8zci48uUQyfqynGDSkUMD7FCJB96hwLnlZOXlgs1l3TX+LW27t3psSWKUxC0fxVgA86i8tL4NwGcY1h/6t3ESg==" + "integrity": "sha512-8zci48uUQyfqynGDSkUMD7FCJB96hwLnlZOXlgs1l3TX+LW27t3psSWKUxC0fxVgA86i8tL4NwGcY1h/6t3ESg==", + "license": "ISC" }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -18519,6 +18542,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -18537,15 +18561,72 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -18555,6 +18636,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -18563,9 +18645,9 @@ } }, "node_modules/yoctocolors-cjs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", - "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "dev": true, "license": "MIT", "engines": { @@ -18576,9 +18658,9 @@ } }, "node_modules/zone.js": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", - "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.1.tgz", + "integrity": "sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==", "license": "MIT" } } From 7671dde2ec7be2e24ce1c51f0425d25ac5c1e09d Mon Sep 17 00:00:00 2001 From: oliveregger Date: Mon, 5 Jan 2026 17:02:06 +0100 Subject: [PATCH 14/23] update gui for security --- matchbox-frontend/package-lock.json | 4 ++-- matchbox-frontend/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/matchbox-frontend/package-lock.json b/matchbox-frontend/package-lock.json index 5d1db18c806..5710b47c073 100644 --- a/matchbox-frontend/package-lock.json +++ b/matchbox-frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "matchbox", - "version": "3.9.14", + "version": "4.0.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "matchbox", - "version": "3.9.14", + "version": "4.0.16", "license": "MIT", "dependencies": { "@ngx-translate/core": "^16.0.3", diff --git a/matchbox-frontend/package.json b/matchbox-frontend/package.json index 44ca854cd4d..ef3d3e07e24 100644 --- a/matchbox-frontend/package.json +++ b/matchbox-frontend/package.json @@ -1,6 +1,6 @@ { "name": "matchbox", - "version": "3.9.14", + "version": "4.0.16", "license": "MIT", "scripts": { "ng": "ng", From b9c9110185a4806f473fbf232446cdb3e5a74c7d Mon Sep 17 00:00:00 2001 From: oliveregger Date: Mon, 5 Jan 2026 17:17:23 +0100 Subject: [PATCH 15/23] fix: update CI to use Node.js 24 to match local development MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The CI was using Node.js 20 while local development uses Node.js 24. This version mismatch caused package-lock.json sync issues with npm ci. Updated angular_build.yml to use Node.js 24 to match the lock file generated by npm on Node.js 24. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- .github/workflows/angular_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/angular_build.yml b/.github/workflows/angular_build.yml index 5d86ccedd97..3c618189ea8 100644 --- a/.github/workflows/angular_build.yml +++ b/.github/workflows/angular_build.yml @@ -26,7 +26,7 @@ jobs: uses: actions/setup-node@v5 with: # https://github.com/actions/setup-node - node-version: 20 + node-version: 24 cache: npm cache-dependency-path: matchbox-frontend/package-lock.json From 704b3ec0fd087aa4ee54191e228c2744eab9bb50 Mon Sep 17 00:00:00 2001 From: Quentin Ligier Date: Mon, 5 Jan 2026 17:29:33 +0100 Subject: [PATCH 16/23] Regenerate package-lock.json --- matchbox-frontend/package-lock.json | 192 ++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) diff --git a/matchbox-frontend/package-lock.json b/matchbox-frontend/package-lock.json index 5710b47c073..abb166e1bbe 100644 --- a/matchbox-frontend/package-lock.json +++ b/matchbox-frontend/package-lock.json @@ -364,6 +364,70 @@ } } }, + "node_modules/@angular-devkit/schematics/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "extraneous": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "extraneous": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -433,6 +497,70 @@ } } }, + "node_modules/@angular-eslint/builder/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular-eslint/builder/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "extraneous": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@angular-eslint/builder/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@angular-eslint/builder/node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "extraneous": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@angular-eslint/builder/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -529,6 +657,70 @@ } } }, + "node_modules/@angular-eslint/schematics/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "extraneous": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "extraneous": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@angular-eslint/schematics/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", From 7188182685594c22a6e84adef5c2114e5d759512 Mon Sep 17 00:00:00 2001 From: oliveregger <2414516+oliveregger@users.noreply.github.com> Date: Mon, 5 Jan 2026 16:51:50 +0000 Subject: [PATCH 17/23] server: rebuild the Angular GUI resources --- .../{chunk-JS5THRTJ.js => chunk-DEDHGZJT.js} | 2 +- .../static/browser/chunk-DOW4KWQY.js | 3 + .../static/browser/chunk-I6QVUCPC.js | 2 - .../static/browser/chunk-JL4BMBRH.js | 11 + .../static/browser/chunk-L46DWUZA.js | 1 - .../static/browser/chunk-OHNOGIP5.js | 11 - .../static/browser/chunk-SQRREDYF.js | 1 + .../main/resources/static/browser/index.html | 6 +- .../resources/static/browser/main-JTOSGX4K.js | 1127 ---------------- .../resources/static/browser/main-M5IISGXR.js | 1175 +++++++++++++++++ .../static/browser/polyfills-B6TNHZQ6.js | 2 + .../static/browser/polyfills-FFHMD2TL.js | 2 - ...tyles-FHS5QDYM.css => styles-NO4TFXL4.css} | 2 +- 13 files changed, 1197 insertions(+), 1148 deletions(-) rename matchbox-server/src/main/resources/static/browser/{chunk-JS5THRTJ.js => chunk-DEDHGZJT.js} (53%) create mode 100644 matchbox-server/src/main/resources/static/browser/chunk-DOW4KWQY.js delete mode 100644 matchbox-server/src/main/resources/static/browser/chunk-I6QVUCPC.js create mode 100644 matchbox-server/src/main/resources/static/browser/chunk-JL4BMBRH.js delete mode 100644 matchbox-server/src/main/resources/static/browser/chunk-L46DWUZA.js delete mode 100644 matchbox-server/src/main/resources/static/browser/chunk-OHNOGIP5.js create mode 100644 matchbox-server/src/main/resources/static/browser/chunk-SQRREDYF.js delete mode 100644 matchbox-server/src/main/resources/static/browser/main-JTOSGX4K.js create mode 100644 matchbox-server/src/main/resources/static/browser/main-M5IISGXR.js create mode 100644 matchbox-server/src/main/resources/static/browser/polyfills-B6TNHZQ6.js delete mode 100644 matchbox-server/src/main/resources/static/browser/polyfills-FFHMD2TL.js rename matchbox-server/src/main/resources/static/browser/{styles-FHS5QDYM.css => styles-NO4TFXL4.css} (99%) diff --git a/matchbox-server/src/main/resources/static/browser/chunk-JS5THRTJ.js b/matchbox-server/src/main/resources/static/browser/chunk-DEDHGZJT.js similarity index 53% rename from matchbox-server/src/main/resources/static/browser/chunk-JS5THRTJ.js rename to matchbox-server/src/main/resources/static/browser/chunk-DEDHGZJT.js index 9ea495f01cc..3a8ce4edf22 100644 --- a/matchbox-server/src/main/resources/static/browser/chunk-JS5THRTJ.js +++ b/matchbox-server/src/main/resources/static/browser/chunk-DEDHGZJT.js @@ -1 +1 @@ -import{Sc as a,Tc as b}from"./chunk-OHNOGIP5.js";import"./chunk-TSRGIXR5.js";export{b as HighlightLineNumbers,a as activateLineNumbers}; +import{Tc as a,Uc as b}from"./chunk-JL4BMBRH.js";import"./chunk-TSRGIXR5.js";export{b as HighlightLineNumbers,a as activateLineNumbers}; diff --git a/matchbox-server/src/main/resources/static/browser/chunk-DOW4KWQY.js b/matchbox-server/src/main/resources/static/browser/chunk-DOW4KWQY.js new file mode 100644 index 00000000000..2b300efaa94 --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/chunk-DOW4KWQY.js @@ -0,0 +1,3 @@ +import{e as et}from"./chunk-TSRGIXR5.js";var zt=et((Ft,Le)=>{function ye(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let i=e[t],u=typeof i;(u==="object"||u==="function")&&!Object.isFrozen(i)&&ye(i)}),e}var X=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Re(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function B(e,...t){let i=Object.create(null);for(let u in e)i[u]=e[u];return t.forEach(function(u){for(let b in u)i[b]=u[b]}),i}var tt="",be=e=>!!e.scope,nt=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let i=e.split(".");return[`${t}${i.shift()}`,...i.map((u,b)=>`${u}${"_".repeat(b+1)}`)].join(" ")}return`${t}${e}`},ne=class{constructor(t,i){this.buffer="",this.classPrefix=i.classPrefix,t.walk(this)}addText(t){this.buffer+=Re(t)}openNode(t){if(!be(t))return;let i=nt(t.scope,{prefix:this.classPrefix});this.span(i)}closeNode(t){be(t)&&(this.buffer+=tt)}value(){return this.buffer}span(t){this.buffer+=``}},_e=(e={})=>{let t={children:[]};return Object.assign(t,e),t},ie=class e{constructor(){this.rootNode=_e(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){let i=_e({scope:t});this.add(i),this.stack.push(i)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,i){return typeof i=="string"?t.addText(i):i.children&&(t.openNode(i),i.children.forEach(u=>this._walk(t,u)),t.closeNode(i)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(i=>typeof i=="string")?t.children=[t.children.join("")]:t.children.forEach(i=>{e._collapse(i)}))}},se=class extends ie{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,i){let u=t.root;i&&(u.scope=`language:${i}`),this.add(u)}toHTML(){return new ne(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function H(e){return e?typeof e=="string"?e:e.source:null}function Se(e){return C("(?=",e,")")}function it(e){return C("(?:",e,")*")}function st(e){return C("(?:",e,")?")}function C(...e){return e.map(i=>H(i)).join("")}function rt(e){let t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function ce(...e){return"("+(rt(e).capture?"":"?:")+e.map(u=>H(u)).join("|")+")"}function Ne(e){return new RegExp(e.toString()+"|").exec("").length-1}function ct(e,t){let i=e&&e.exec(t);return i&&i.index===0}var ot=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function oe(e,{joinWith:t}){let i=0;return e.map(u=>{i+=1;let b=i,_=H(u),c="";for(;_.length>0;){let r=ot.exec(_);if(!r){c+=_;break}c+=_.substring(0,r.index),_=_.substring(r.index+r[0].length),r[0][0]==="\\"&&r[1]?c+="\\"+String(Number(r[1])+b):(c+=r[0],r[0]==="("&&i++)}return c}).map(u=>`(${u})`).join(t)}var at=/\b\B/,Ae="[a-zA-Z]\\w*",ae="[a-zA-Z_]\\w*",ke="\\b\\d+(\\.\\d+)?",Ie="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Te="\\b(0b[01]+)",lt="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ut=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=C(t,/.*\b/,e.binary,/\b.*/)),B({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(i,u)=>{i.index!==0&&u.ignoreMatch()}},e)},U={begin:"\\\\[\\s\\S]",relevance:0},ft={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[U]},gt={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[U]},ht={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Z=function(e,t,i={}){let u=B({scope:"comment",begin:e,end:t,contains:[]},i);u.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let b=ce("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return u.contains.push({begin:C(/[ ]+/,"(",b,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),u},pt=Z("//","$"),dt=Z("/\\*","\\*/"),Et=Z("#","$"),bt={scope:"number",begin:ke,relevance:0},_t={scope:"number",begin:Ie,relevance:0},Mt={scope:"number",begin:Te,relevance:0},wt={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[U,{begin:/\[/,end:/\]/,relevance:0,contains:[U]}]},xt={scope:"title",begin:Ae,relevance:0},Ot={scope:"title",begin:ae,relevance:0},yt={begin:"\\.\\s*"+ae,relevance:0},Rt=function(e){return Object.assign(e,{"on:begin":(t,i)=>{i.data._beginMatch=t[1]},"on:end":(t,i)=>{i.data._beginMatch!==t[1]&&i.ignoreMatch()}})},F=Object.freeze({__proto__:null,APOS_STRING_MODE:ft,BACKSLASH_ESCAPE:U,BINARY_NUMBER_MODE:Mt,BINARY_NUMBER_RE:Te,COMMENT:Z,C_BLOCK_COMMENT_MODE:dt,C_LINE_COMMENT_MODE:pt,C_NUMBER_MODE:_t,C_NUMBER_RE:Ie,END_SAME_AS_BEGIN:Rt,HASH_COMMENT_MODE:Et,IDENT_RE:Ae,MATCH_NOTHING_RE:at,METHOD_GUARD:yt,NUMBER_MODE:bt,NUMBER_RE:ke,PHRASAL_WORDS_MODE:ht,QUOTE_STRING_MODE:gt,REGEXP_MODE:wt,RE_STARTERS_RE:lt,SHEBANG:ut,TITLE_MODE:xt,UNDERSCORE_IDENT_RE:ae,UNDERSCORE_TITLE_MODE:Ot});function St(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function Nt(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function At(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=St,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function kt(e,t){Array.isArray(e.illegal)&&(e.illegal=ce(...e.illegal))}function It(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Tt(e,t){e.relevance===void 0&&(e.relevance=1)}var Bt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let i=Object.assign({},e);Object.keys(e).forEach(u=>{delete e[u]}),e.keywords=i.keywords,e.begin=C(i.beforeMatch,Se(i.begin)),e.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},e.relevance=0,delete i.beforeMatch},Dt=["of","and","for","in","not","or","if","then","parent","list","value"],vt="keyword";function Be(e,t,i=vt){let u=Object.create(null);return typeof e=="string"?b(i,e.split(" ")):Array.isArray(e)?b(i,e):Object.keys(e).forEach(function(_){Object.assign(u,Be(e[_],t,_))}),u;function b(_,c){t&&(c=c.map(r=>r.toLowerCase())),c.forEach(function(r){let l=r.split("|");u[l[0]]=[_,Ct(l[0],l[1])]})}}function Ct(e,t){return t?Number(t):Lt(e)?0:1}function Lt(e){return Dt.includes(e.toLowerCase())}var Me={},v=e=>{console.error(e)},we=(e,...t)=>{console.log(`WARN: ${e}`,...t)},L=(e,t)=>{Me[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Me[`${e}/${t}`]=!0)},Y=new Error;function De(e,t,{key:i}){let u=0,b=e[i],_={},c={};for(let r=1;r<=t.length;r++)c[r+u]=b[r],_[r+u]=!0,u+=Ne(t[r-1]);e[i]=c,e[i]._emit=_,e[i]._multi=!0}function Pt(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw v("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Y;if(typeof e.beginScope!="object"||e.beginScope===null)throw v("beginScope must be object"),Y;De(e,e.begin,{key:"beginScope"}),e.begin=oe(e.begin,{joinWith:""})}}function jt(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw v("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Y;if(typeof e.endScope!="object"||e.endScope===null)throw v("endScope must be object"),Y;De(e,e.end,{key:"endScope"}),e.end=oe(e.end,{joinWith:""})}}function Ht(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Ut(e){Ht(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Pt(e),jt(e)}function $t(e){function t(c,r){return new RegExp(H(c),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(r?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(r,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,r]),this.matchAt+=Ne(r)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let r=this.regexes.map(l=>l[1]);this.matcherRe=t(oe(r,{joinWith:"|"}),!0),this.lastIndex=0}exec(r){this.matcherRe.lastIndex=this.lastIndex;let l=this.matcherRe.exec(r);if(!l)return null;let x=l.findIndex((j,J)=>J>0&&j!==void 0),M=this.matchIndexes[x];return l.splice(0,x),Object.assign(l,M)}}class u{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(r){if(this.multiRegexes[r])return this.multiRegexes[r];let l=new i;return this.rules.slice(r).forEach(([x,M])=>l.addRule(x,M)),l.compile(),this.multiRegexes[r]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(r,l){this.rules.push([r,l]),l.type==="begin"&&this.count++}exec(r){let l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let x=l.exec(r);if(this.resumingScanAtSamePosition()&&!(x&&x.index===this.lastIndex)){let M=this.getMatcher(0);M.lastIndex=this.lastIndex+1,x=M.exec(r)}return x&&(this.regexIndex+=x.position+1,this.regexIndex===this.count&&this.considerAll()),x}}function b(c){let r=new u;return c.contains.forEach(l=>r.addRule(l.begin,{rule:l,type:"begin"})),c.terminatorEnd&&r.addRule(c.terminatorEnd,{type:"end"}),c.illegal&&r.addRule(c.illegal,{type:"illegal"}),r}function _(c,r){let l=c;if(c.isCompiled)return l;[Nt,It,Ut,Bt].forEach(M=>M(c,r)),e.compilerExtensions.forEach(M=>M(c,r)),c.__beforeBegin=null,[At,kt,Tt].forEach(M=>M(c,r)),c.isCompiled=!0;let x=null;return typeof c.keywords=="object"&&c.keywords.$pattern&&(c.keywords=Object.assign({},c.keywords),x=c.keywords.$pattern,delete c.keywords.$pattern),x=x||/\w+/,c.keywords&&(c.keywords=Be(c.keywords,e.case_insensitive)),l.keywordPatternRe=t(x,!0),r&&(c.begin||(c.begin=/\B|\b/),l.beginRe=t(l.begin),!c.end&&!c.endsWithParent&&(c.end=/\B|\b/),c.end&&(l.endRe=t(l.end)),l.terminatorEnd=H(l.end)||"",c.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(c.end?"|":"")+r.terminatorEnd)),c.illegal&&(l.illegalRe=t(c.illegal)),c.contains||(c.contains=[]),c.contains=[].concat(...c.contains.map(function(M){return Gt(M==="self"?c:M)})),c.contains.forEach(function(M){_(M,l)}),c.starts&&_(c.starts,r),l.matcher=b(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=B(e.classNameAliases||{}),_(e)}function ve(e){return e?e.endsWithParent||ve(e.starts):!1}function Gt(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return B(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:ve(e)?B(e,{starts:e.starts?B(e.starts):null}):Object.isFrozen(e)?B(e):e}var Wt="11.11.1",re=class extends Error{constructor(t,i){super(t),this.name="HTMLInjectionError",this.html=i}},te=Re,xe=B,Oe=Symbol("nomatch"),Kt=7,Ce=function(e){let t=Object.create(null),i=Object.create(null),u=[],b=!0,_="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]},r={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:se};function l(n){return r.noHighlightRe.test(n)}function x(n){let a=n.className+" ";a+=n.parentNode?n.parentNode.className:"";let h=r.languageDetectRe.exec(a);if(h){let d=I(h[1]);return d||(we(_.replace("{}",h[1])),we("Falling back to no-highlight mode for this block.",n)),d?h[1]:"no-highlight"}return a.split(/\s+/).find(d=>l(d)||I(d))}function M(n,a,h){let d="",w="";typeof a=="object"?(d=n,h=a.ignoreIllegals,w=a.language):(L("10.7.0","highlight(lang, code, ...args) has been deprecated."),L("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),w=n,d=a),h===void 0&&(h=!0);let S={code:d,language:w};G("before:highlight",S);let T=S.result?S.result:j(S.language,S.code,h);return T.code=S.code,G("after:highlight",T),T}function j(n,a,h,d){let w=Object.create(null);function S(s,o){return s.keywords[o]}function T(){if(!f.keywords){O.addText(E);return}let s=0;f.keywordPatternRe.lastIndex=0;let o=f.keywordPatternRe.exec(E),g="";for(;o;){g+=E.substring(s,o.index);let p=A.case_insensitive?o[0].toLowerCase():o[0],y=S(f,p);if(y){let[k,Qe]=y;if(O.addText(g),g="",w[p]=(w[p]||0)+1,w[p]<=Kt&&(z+=Qe),k.startsWith("_"))g+=o[0];else{let me=A.classNameAliases[k]||k;N(o[0],me)}}else g+=o[0];s=f.keywordPatternRe.lastIndex,o=f.keywordPatternRe.exec(E)}g+=E.substring(s),O.addText(g)}function W(){if(E==="")return;let s=null;if(typeof f.subLanguage=="string"){if(!t[f.subLanguage]){O.addText(E);return}s=j(f.subLanguage,E,!0,Ee[f.subLanguage]),Ee[f.subLanguage]=s._top}else s=V(E,f.subLanguage.length?f.subLanguage:null);f.relevance>0&&(z+=s.relevance),O.__addSublanguage(s._emitter,s.language)}function R(){f.subLanguage!=null?W():T(),E=""}function N(s,o){s!==""&&(O.startScope(o),O.addText(s),O.endScope())}function ge(s,o){let g=1,p=o.length-1;for(;g<=p;){if(!s._emit[g]){g++;continue}let y=A.classNameAliases[s[g]]||s[g],k=o[g];y?N(k,y):(E=k,T(),E=""),g++}}function he(s,o){return s.scope&&typeof s.scope=="string"&&O.openNode(A.classNameAliases[s.scope]||s.scope),s.beginScope&&(s.beginScope._wrap?(N(E,A.classNameAliases[s.beginScope._wrap]||s.beginScope._wrap),E=""):s.beginScope._multi&&(ge(s.beginScope,o),E="")),f=Object.create(s,{parent:{value:f}}),f}function pe(s,o,g){let p=ct(s.endRe,g);if(p){if(s["on:end"]){let y=new X(s);s["on:end"](o,y),y.isMatchIgnored&&(p=!1)}if(p){for(;s.endsParent&&s.parent;)s=s.parent;return s}}if(s.endsWithParent)return pe(s.parent,o,g)}function Ye(s){return f.matcher.regexIndex===0?(E+=s[0],1):(ee=!0,0)}function Ze(s){let o=s[0],g=s.rule,p=new X(g),y=[g.__beforeBegin,g["on:begin"]];for(let k of y)if(k&&(k(s,p),p.isMatchIgnored))return Ye(o);return g.skip?E+=o:(g.excludeBegin&&(E+=o),R(),!g.returnBegin&&!g.excludeBegin&&(E=o)),he(g,s),g.returnBegin?0:o.length}function Je(s){let o=s[0],g=a.substring(s.index),p=pe(f,s,g);if(!p)return Oe;let y=f;f.endScope&&f.endScope._wrap?(R(),N(o,f.endScope._wrap)):f.endScope&&f.endScope._multi?(R(),ge(f.endScope,s)):y.skip?E+=o:(y.returnEnd||y.excludeEnd||(E+=o),R(),y.excludeEnd&&(E=o));do f.scope&&O.closeNode(),!f.skip&&!f.subLanguage&&(z+=f.relevance),f=f.parent;while(f!==p.parent);return p.starts&&he(p.starts,s),y.returnEnd?0:o.length}function Ve(){let s=[];for(let o=f;o!==A;o=o.parent)o.scope&&s.unshift(o.scope);s.forEach(o=>O.openNode(o))}let K={};function de(s,o){let g=o&&o[0];if(E+=s,g==null)return R(),0;if(K.type==="begin"&&o.type==="end"&&K.index===o.index&&g===""){if(E+=a.slice(o.index,o.index+1),!b){let p=new Error(`0 width match regex (${n})`);throw p.languageName=n,p.badRule=K.rule,p}return 1}if(K=o,o.type==="begin")return Ze(o);if(o.type==="illegal"&&!h){let p=new Error('Illegal lexeme "'+g+'" for mode "'+(f.scope||"")+'"');throw p.mode=f,p}else if(o.type==="end"){let p=Je(o);if(p!==Oe)return p}if(o.type==="illegal"&&g==="")return E+=` +`,1;if(m>1e5&&m>o.index*3)throw new Error("potential infinite loop, way more iterations than matches");return E+=g,g.length}let A=I(n);if(!A)throw v(_.replace("{}",n)),new Error('Unknown language: "'+n+'"');let qe=$t(A),Q="",f=d||qe,Ee={},O=new r.__emitter(r);Ve();let E="",z=0,D=0,m=0,ee=!1;try{if(A.__emitTokens)A.__emitTokens(a,O);else{for(f.matcher.considerAll();;){m++,ee?ee=!1:f.matcher.considerAll(),f.matcher.lastIndex=D;let s=f.matcher.exec(a);if(!s)break;let o=a.substring(D,s.index),g=de(o,s);D=s.index+g}de(a.substring(D))}return O.finalize(),Q=O.toHTML(),{language:n,value:Q,relevance:z,illegal:!1,_emitter:O,_top:f}}catch(s){if(s.message&&s.message.includes("Illegal"))return{language:n,value:te(a),illegal:!0,relevance:0,_illegalBy:{message:s.message,index:D,context:a.slice(D-100,D+100),mode:s.mode,resultSoFar:Q},_emitter:O};if(b)return{language:n,value:te(a),illegal:!1,relevance:0,errorRaised:s,_emitter:O,_top:f};throw s}}function J(n){let a={value:te(n),illegal:!1,relevance:0,_top:c,_emitter:new r.__emitter(r)};return a._emitter.addText(n),a}function V(n,a){a=a||r.languages||Object.keys(t);let h=J(n),d=a.filter(I).filter(fe).map(R=>j(R,n,!1));d.unshift(h);let w=d.sort((R,N)=>{if(R.relevance!==N.relevance)return N.relevance-R.relevance;if(R.language&&N.language){if(I(R.language).supersetOf===N.language)return 1;if(I(N.language).supersetOf===R.language)return-1}return 0}),[S,T]=w,W=S;return W.secondBest=T,W}function Pe(n,a,h){let d=a&&i[a]||h;n.classList.add("hljs"),n.classList.add(`language-${d}`)}function q(n){let a=null,h=x(n);if(l(h))return;if(G("before:highlightElement",{el:n,language:h}),n.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",n);return}if(n.children.length>0&&(r.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(n)),r.throwUnescapedHTML))throw new re("One of your code blocks includes unescaped HTML.",n.innerHTML);a=n;let d=a.textContent,w=h?M(d,{language:h,ignoreIllegals:!0}):V(d);n.innerHTML=w.value,n.dataset.highlighted="yes",Pe(n,h,w.language),n.result={language:w.language,re:w.relevance,relevance:w.relevance},w.secondBest&&(n.secondBest={language:w.secondBest.language,relevance:w.secondBest.relevance}),G("after:highlightElement",{el:n,result:w,text:d})}function je(n){r=xe(r,n)}let He=()=>{$(),L("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Ue(){$(),L("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let le=!1;function $(){function n(){$()}if(document.readyState==="loading"){le||window.addEventListener("DOMContentLoaded",n,!1),le=!0;return}document.querySelectorAll(r.cssSelector).forEach(q)}function $e(n,a){let h=null;try{h=a(e)}catch(d){if(v("Language definition for '{}' could not be registered.".replace("{}",n)),b)v(d);else throw d;h=c}h.name||(h.name=n),t[n]=h,h.rawDefinition=a.bind(null,e),h.aliases&&ue(h.aliases,{languageName:n})}function Ge(n){delete t[n];for(let a of Object.keys(i))i[a]===n&&delete i[a]}function We(){return Object.keys(t)}function I(n){return n=(n||"").toLowerCase(),t[n]||t[i[n]]}function ue(n,{languageName:a}){typeof n=="string"&&(n=[n]),n.forEach(h=>{i[h.toLowerCase()]=a})}function fe(n){let a=I(n);return a&&!a.disableAutodetect}function Ke(n){n["before:highlightBlock"]&&!n["before:highlightElement"]&&(n["before:highlightElement"]=a=>{n["before:highlightBlock"](Object.assign({block:a.el},a))}),n["after:highlightBlock"]&&!n["after:highlightElement"]&&(n["after:highlightElement"]=a=>{n["after:highlightBlock"](Object.assign({block:a.el},a))})}function ze(n){Ke(n),u.push(n)}function Fe(n){let a=u.indexOf(n);a!==-1&&u.splice(a,1)}function G(n,a){let h=n;u.forEach(function(d){d[h]&&d[h](a)})}function Xe(n){return L("10.7.0","highlightBlock will be removed entirely in v12.0"),L("10.7.0","Please use highlightElement now."),q(n)}Object.assign(e,{highlight:M,highlightAuto:V,highlightAll:$,highlightElement:q,highlightBlock:Xe,configure:je,initHighlighting:He,initHighlightingOnLoad:Ue,registerLanguage:$e,unregisterLanguage:Ge,listLanguages:We,getLanguage:I,registerAliases:ue,autoDetection:fe,inherit:xe,addPlugin:ze,removePlugin:Fe}),e.debugMode=function(){b=!1},e.safeMode=function(){b=!0},e.versionString=Wt,e.regex={concat:C,lookahead:Se,either:ce,optional:st,anyNumberOfTimes:it};for(let n in F)typeof F[n]=="object"&&ye(F[n]);return Object.assign(e,F),e},P=Ce({});P.newInstance=()=>Ce({});Le.exports=P;P.HighlightJS=P;P.default=P});export default zt(); diff --git a/matchbox-server/src/main/resources/static/browser/chunk-I6QVUCPC.js b/matchbox-server/src/main/resources/static/browser/chunk-I6QVUCPC.js deleted file mode 100644 index 7ab455f2f7c..00000000000 --- a/matchbox-server/src/main/resources/static/browser/chunk-I6QVUCPC.js +++ /dev/null @@ -1,2 +0,0 @@ -import{e as tt}from"./chunk-TSRGIXR5.js";var Ft=tt((Xt,Le)=>{function ye(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let i=e[t],u=typeof i;(u==="object"||u==="function")&&!Object.isFrozen(i)&&ye(i)}),e}var X=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Re(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function B(e,...t){let i=Object.create(null);for(let u in e)i[u]=e[u];return t.forEach(function(u){for(let b in u)i[b]=u[b]}),i}var nt="",be=e=>!!e.scope,it=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let i=e.split(".");return[`${t}${i.shift()}`,...i.map((u,b)=>`${u}${"_".repeat(b+1)}`)].join(" ")}return`${t}${e}`},ne=class{constructor(t,i){this.buffer="",this.classPrefix=i.classPrefix,t.walk(this)}addText(t){this.buffer+=Re(t)}openNode(t){if(!be(t))return;let i=it(t.scope,{prefix:this.classPrefix});this.span(i)}closeNode(t){be(t)&&(this.buffer+=nt)}value(){return this.buffer}span(t){this.buffer+=``}},_e=(e={})=>{let t={children:[]};return Object.assign(t,e),t},ie=class e{constructor(){this.rootNode=_e(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){let i=_e({scope:t});this.add(i),this.stack.push(i)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,i){return typeof i=="string"?t.addText(i):i.children&&(t.openNode(i),i.children.forEach(u=>this._walk(t,u)),t.closeNode(i)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(i=>typeof i=="string")?t.children=[t.children.join("")]:t.children.forEach(i=>{e._collapse(i)}))}},se=class extends ie{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,i){let u=t.root;i&&(u.scope=`language:${i}`),this.add(u)}toHTML(){return new ne(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function H(e){return e?typeof e=="string"?e:e.source:null}function Se(e){return C("(?=",e,")")}function st(e){return C("(?:",e,")*")}function rt(e){return C("(?:",e,")?")}function C(...e){return e.map(i=>H(i)).join("")}function ct(e){let t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function ce(...e){return"("+(ct(e).capture?"":"?:")+e.map(u=>H(u)).join("|")+")"}function Ne(e){return new RegExp(e.toString()+"|").exec("").length-1}function ot(e,t){let i=e&&e.exec(t);return i&&i.index===0}var at=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function oe(e,{joinWith:t}){let i=0;return e.map(u=>{i+=1;let b=i,_=H(u),c="";for(;_.length>0;){let r=at.exec(_);if(!r){c+=_;break}c+=_.substring(0,r.index),_=_.substring(r.index+r[0].length),r[0][0]==="\\"&&r[1]?c+="\\"+String(Number(r[1])+b):(c+=r[0],r[0]==="("&&i++)}return c}).map(u=>`(${u})`).join(t)}var lt=/\b\B/,Ae="[a-zA-Z]\\w*",ae="[a-zA-Z_]\\w*",ke="\\b\\d+(\\.\\d+)?",Ie="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Te="\\b(0b[01]+)",ut="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ft=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=C(t,/.*\b/,e.binary,/\b.*/)),B({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(i,u)=>{i.index!==0&&u.ignoreMatch()}},e)},U={begin:"\\\\[\\s\\S]",relevance:0},gt={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[U]},ht={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[U]},dt={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Z=function(e,t,i={}){let u=B({scope:"comment",begin:e,end:t,contains:[]},i);u.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let b=ce("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return u.contains.push({begin:C(/[ ]+/,"(",b,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),u},pt=Z("//","$"),Et=Z("/\\*","\\*/"),bt=Z("#","$"),_t={scope:"number",begin:ke,relevance:0},wt={scope:"number",begin:Ie,relevance:0},Mt={scope:"number",begin:Te,relevance:0},xt={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[U,{begin:/\[/,end:/\]/,relevance:0,contains:[U]}]},Ot={scope:"title",begin:Ae,relevance:0},yt={scope:"title",begin:ae,relevance:0},Rt={begin:"\\.\\s*"+ae,relevance:0},St=function(e){return Object.assign(e,{"on:begin":(t,i)=>{i.data._beginMatch=t[1]},"on:end":(t,i)=>{i.data._beginMatch!==t[1]&&i.ignoreMatch()}})},F=Object.freeze({__proto__:null,APOS_STRING_MODE:gt,BACKSLASH_ESCAPE:U,BINARY_NUMBER_MODE:Mt,BINARY_NUMBER_RE:Te,COMMENT:Z,C_BLOCK_COMMENT_MODE:Et,C_LINE_COMMENT_MODE:pt,C_NUMBER_MODE:wt,C_NUMBER_RE:Ie,END_SAME_AS_BEGIN:St,HASH_COMMENT_MODE:bt,IDENT_RE:Ae,MATCH_NOTHING_RE:lt,METHOD_GUARD:Rt,NUMBER_MODE:_t,NUMBER_RE:ke,PHRASAL_WORDS_MODE:dt,QUOTE_STRING_MODE:ht,REGEXP_MODE:xt,RE_STARTERS_RE:ut,SHEBANG:ft,TITLE_MODE:Ot,UNDERSCORE_IDENT_RE:ae,UNDERSCORE_TITLE_MODE:yt});function Nt(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function At(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function kt(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Nt,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function It(e,t){Array.isArray(e.illegal)&&(e.illegal=ce(...e.illegal))}function Tt(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Bt(e,t){e.relevance===void 0&&(e.relevance=1)}var Dt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let i=Object.assign({},e);Object.keys(e).forEach(u=>{delete e[u]}),e.keywords=i.keywords,e.begin=C(i.beforeMatch,Se(i.begin)),e.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},e.relevance=0,delete i.beforeMatch},vt=["of","and","for","in","not","or","if","then","parent","list","value"],Ct="keyword";function Be(e,t,i=Ct){let u=Object.create(null);return typeof e=="string"?b(i,e.split(" ")):Array.isArray(e)?b(i,e):Object.keys(e).forEach(function(_){Object.assign(u,Be(e[_],t,_))}),u;function b(_,c){t&&(c=c.map(r=>r.toLowerCase())),c.forEach(function(r){let l=r.split("|");u[l[0]]=[_,Lt(l[0],l[1])]})}}function Lt(e,t){return t?Number(t):Pt(e)?0:1}function Pt(e){return vt.includes(e.toLowerCase())}var we={},v=e=>{console.error(e)},Me=(e,...t)=>{console.log(`WARN: ${e}`,...t)},L=(e,t)=>{we[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),we[`${e}/${t}`]=!0)},Y=new Error;function De(e,t,{key:i}){let u=0,b=e[i],_={},c={};for(let r=1;r<=t.length;r++)c[r+u]=b[r],_[r+u]=!0,u+=Ne(t[r-1]);e[i]=c,e[i]._emit=_,e[i]._multi=!0}function jt(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw v("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Y;if(typeof e.beginScope!="object"||e.beginScope===null)throw v("beginScope must be object"),Y;De(e,e.begin,{key:"beginScope"}),e.begin=oe(e.begin,{joinWith:""})}}function Ht(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw v("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Y;if(typeof e.endScope!="object"||e.endScope===null)throw v("endScope must be object"),Y;De(e,e.end,{key:"endScope"}),e.end=oe(e.end,{joinWith:""})}}function Ut(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function $t(e){Ut(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),jt(e),Ht(e)}function Gt(e){function t(c,r){return new RegExp(H(c),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(r?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(r,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,r]),this.matchAt+=Ne(r)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let r=this.regexes.map(l=>l[1]);this.matcherRe=t(oe(r,{joinWith:"|"}),!0),this.lastIndex=0}exec(r){this.matcherRe.lastIndex=this.lastIndex;let l=this.matcherRe.exec(r);if(!l)return null;let x=l.findIndex((j,J)=>J>0&&j!==void 0),w=this.matchIndexes[x];return l.splice(0,x),Object.assign(l,w)}}class u{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(r){if(this.multiRegexes[r])return this.multiRegexes[r];let l=new i;return this.rules.slice(r).forEach(([x,w])=>l.addRule(x,w)),l.compile(),this.multiRegexes[r]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(r,l){this.rules.push([r,l]),l.type==="begin"&&this.count++}exec(r){let l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let x=l.exec(r);if(this.resumingScanAtSamePosition()&&!(x&&x.index===this.lastIndex)){let w=this.getMatcher(0);w.lastIndex=this.lastIndex+1,x=w.exec(r)}return x&&(this.regexIndex+=x.position+1,this.regexIndex===this.count&&this.considerAll()),x}}function b(c){let r=new u;return c.contains.forEach(l=>r.addRule(l.begin,{rule:l,type:"begin"})),c.terminatorEnd&&r.addRule(c.terminatorEnd,{type:"end"}),c.illegal&&r.addRule(c.illegal,{type:"illegal"}),r}function _(c,r){let l=c;if(c.isCompiled)return l;[At,Tt,$t,Dt].forEach(w=>w(c,r)),e.compilerExtensions.forEach(w=>w(c,r)),c.__beforeBegin=null,[kt,It,Bt].forEach(w=>w(c,r)),c.isCompiled=!0;let x=null;return typeof c.keywords=="object"&&c.keywords.$pattern&&(c.keywords=Object.assign({},c.keywords),x=c.keywords.$pattern,delete c.keywords.$pattern),x=x||/\w+/,c.keywords&&(c.keywords=Be(c.keywords,e.case_insensitive)),l.keywordPatternRe=t(x,!0),r&&(c.begin||(c.begin=/\B|\b/),l.beginRe=t(l.begin),!c.end&&!c.endsWithParent&&(c.end=/\B|\b/),c.end&&(l.endRe=t(l.end)),l.terminatorEnd=H(l.end)||"",c.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(c.end?"|":"")+r.terminatorEnd)),c.illegal&&(l.illegalRe=t(c.illegal)),c.contains||(c.contains=[]),c.contains=[].concat(...c.contains.map(function(w){return Wt(w==="self"?c:w)})),c.contains.forEach(function(w){_(w,l)}),c.starts&&_(c.starts,r),l.matcher=b(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=B(e.classNameAliases||{}),_(e)}function ve(e){return e?e.endsWithParent||ve(e.starts):!1}function Wt(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return B(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:ve(e)?B(e,{starts:e.starts?B(e.starts):null}):Object.isFrozen(e)?B(e):e}var Kt="11.9.0",re=class extends Error{constructor(t,i){super(t),this.name="HTMLInjectionError",this.html=i}},te=Re,xe=B,Oe=Symbol("nomatch"),zt=7,Ce=function(e){let t=Object.create(null),i=Object.create(null),u=[],b=!0,_="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]},r={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:se};function l(n){return r.noHighlightRe.test(n)}function x(n){let a=n.className+" ";a+=n.parentNode?n.parentNode.className:"";let h=r.languageDetectRe.exec(a);if(h){let p=I(h[1]);return p||(Me(_.replace("{}",h[1])),Me("Falling back to no-highlight mode for this block.",n)),p?h[1]:"no-highlight"}return a.split(/\s+/).find(p=>l(p)||I(p))}function w(n,a,h){let p="",M="";typeof a=="object"?(p=n,h=a.ignoreIllegals,M=a.language):(L("10.7.0","highlight(lang, code, ...args) has been deprecated."),L("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),M=n,p=a),h===void 0&&(h=!0);let S={code:p,language:M};G("before:highlight",S);let T=S.result?S.result:j(S.language,S.code,h);return T.code=S.code,G("after:highlight",T),T}function j(n,a,h,p){let M=Object.create(null);function S(s,o){return s.keywords[o]}function T(){if(!f.keywords){O.addText(E);return}let s=0;f.keywordPatternRe.lastIndex=0;let o=f.keywordPatternRe.exec(E),g="";for(;o;){g+=E.substring(s,o.index);let d=A.case_insensitive?o[0].toLowerCase():o[0],y=S(f,d);if(y){let[k,me]=y;if(O.addText(g),g="",M[d]=(M[d]||0)+1,M[d]<=zt&&(z+=me),k.startsWith("_"))g+=o[0];else{let et=A.classNameAliases[k]||k;N(o[0],et)}}else g+=o[0];s=f.keywordPatternRe.lastIndex,o=f.keywordPatternRe.exec(E)}g+=E.substring(s),O.addText(g)}function W(){if(E==="")return;let s=null;if(typeof f.subLanguage=="string"){if(!t[f.subLanguage]){O.addText(E);return}s=j(f.subLanguage,E,!0,Ee[f.subLanguage]),Ee[f.subLanguage]=s._top}else s=V(E,f.subLanguage.length?f.subLanguage:null);f.relevance>0&&(z+=s.relevance),O.__addSublanguage(s._emitter,s.language)}function R(){f.subLanguage!=null?W():T(),E=""}function N(s,o){s!==""&&(O.startScope(o),O.addText(s),O.endScope())}function ge(s,o){let g=1,d=o.length-1;for(;g<=d;){if(!s._emit[g]){g++;continue}let y=A.classNameAliases[s[g]]||s[g],k=o[g];y?N(k,y):(E=k,T(),E=""),g++}}function he(s,o){return s.scope&&typeof s.scope=="string"&&O.openNode(A.classNameAliases[s.scope]||s.scope),s.beginScope&&(s.beginScope._wrap?(N(E,A.classNameAliases[s.beginScope._wrap]||s.beginScope._wrap),E=""):s.beginScope._multi&&(ge(s.beginScope,o),E="")),f=Object.create(s,{parent:{value:f}}),f}function de(s,o,g){let d=ot(s.endRe,g);if(d){if(s["on:end"]){let y=new X(s);s["on:end"](o,y),y.isMatchIgnored&&(d=!1)}if(d){for(;s.endsParent&&s.parent;)s=s.parent;return s}}if(s.endsWithParent)return de(s.parent,o,g)}function Ze(s){return f.matcher.regexIndex===0?(E+=s[0],1):(ee=!0,0)}function Je(s){let o=s[0],g=s.rule,d=new X(g),y=[g.__beforeBegin,g["on:begin"]];for(let k of y)if(k&&(k(s,d),d.isMatchIgnored))return Ze(o);return g.skip?E+=o:(g.excludeBegin&&(E+=o),R(),!g.returnBegin&&!g.excludeBegin&&(E=o)),he(g,s),g.returnBegin?0:o.length}function Ve(s){let o=s[0],g=a.substring(s.index),d=de(f,s,g);if(!d)return Oe;let y=f;f.endScope&&f.endScope._wrap?(R(),N(o,f.endScope._wrap)):f.endScope&&f.endScope._multi?(R(),ge(f.endScope,s)):y.skip?E+=o:(y.returnEnd||y.excludeEnd||(E+=o),R(),y.excludeEnd&&(E=o));do f.scope&&O.closeNode(),!f.skip&&!f.subLanguage&&(z+=f.relevance),f=f.parent;while(f!==d.parent);return d.starts&&he(d.starts,s),y.returnEnd?0:o.length}function qe(){let s=[];for(let o=f;o!==A;o=o.parent)o.scope&&s.unshift(o.scope);s.forEach(o=>O.openNode(o))}let K={};function pe(s,o){let g=o&&o[0];if(E+=s,g==null)return R(),0;if(K.type==="begin"&&o.type==="end"&&K.index===o.index&&g===""){if(E+=a.slice(o.index,o.index+1),!b){let d=new Error(`0 width match regex (${n})`);throw d.languageName=n,d.badRule=K.rule,d}return 1}if(K=o,o.type==="begin")return Je(o);if(o.type==="illegal"&&!h){let d=new Error('Illegal lexeme "'+g+'" for mode "'+(f.scope||"")+'"');throw d.mode=f,d}else if(o.type==="end"){let d=Ve(o);if(d!==Oe)return d}if(o.type==="illegal"&&g==="")return 1;if(m>1e5&&m>o.index*3)throw new Error("potential infinite loop, way more iterations than matches");return E+=g,g.length}let A=I(n);if(!A)throw v(_.replace("{}",n)),new Error('Unknown language: "'+n+'"');let Qe=Gt(A),Q="",f=p||Qe,Ee={},O=new r.__emitter(r);qe();let E="",z=0,D=0,m=0,ee=!1;try{if(A.__emitTokens)A.__emitTokens(a,O);else{for(f.matcher.considerAll();;){m++,ee?ee=!1:f.matcher.considerAll(),f.matcher.lastIndex=D;let s=f.matcher.exec(a);if(!s)break;let o=a.substring(D,s.index),g=pe(o,s);D=s.index+g}pe(a.substring(D))}return O.finalize(),Q=O.toHTML(),{language:n,value:Q,relevance:z,illegal:!1,_emitter:O,_top:f}}catch(s){if(s.message&&s.message.includes("Illegal"))return{language:n,value:te(a),illegal:!0,relevance:0,_illegalBy:{message:s.message,index:D,context:a.slice(D-100,D+100),mode:s.mode,resultSoFar:Q},_emitter:O};if(b)return{language:n,value:te(a),illegal:!1,relevance:0,errorRaised:s,_emitter:O,_top:f};throw s}}function J(n){let a={value:te(n),illegal:!1,relevance:0,_top:c,_emitter:new r.__emitter(r)};return a._emitter.addText(n),a}function V(n,a){a=a||r.languages||Object.keys(t);let h=J(n),p=a.filter(I).filter(fe).map(R=>j(R,n,!1));p.unshift(h);let M=p.sort((R,N)=>{if(R.relevance!==N.relevance)return N.relevance-R.relevance;if(R.language&&N.language){if(I(R.language).supersetOf===N.language)return 1;if(I(N.language).supersetOf===R.language)return-1}return 0}),[S,T]=M,W=S;return W.secondBest=T,W}function Pe(n,a,h){let p=a&&i[a]||h;n.classList.add("hljs"),n.classList.add(`language-${p}`)}function q(n){let a=null,h=x(n);if(l(h))return;if(G("before:highlightElement",{el:n,language:h}),n.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",n);return}if(n.children.length>0&&(r.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(n)),r.throwUnescapedHTML))throw new re("One of your code blocks includes unescaped HTML.",n.innerHTML);a=n;let p=a.textContent,M=h?w(p,{language:h,ignoreIllegals:!0}):V(p);n.innerHTML=M.value,n.dataset.highlighted="yes",Pe(n,h,M.language),n.result={language:M.language,re:M.relevance,relevance:M.relevance},M.secondBest&&(n.secondBest={language:M.secondBest.language,relevance:M.secondBest.relevance}),G("after:highlightElement",{el:n,result:M,text:p})}function je(n){r=xe(r,n)}let He=()=>{$(),L("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Ue(){$(),L("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let le=!1;function $(){if(document.readyState==="loading"){le=!0;return}document.querySelectorAll(r.cssSelector).forEach(q)}function $e(){le&&$()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",$e,!1);function Ge(n,a){let h=null;try{h=a(e)}catch(p){if(v("Language definition for '{}' could not be registered.".replace("{}",n)),b)v(p);else throw p;h=c}h.name||(h.name=n),t[n]=h,h.rawDefinition=a.bind(null,e),h.aliases&&ue(h.aliases,{languageName:n})}function We(n){delete t[n];for(let a of Object.keys(i))i[a]===n&&delete i[a]}function Ke(){return Object.keys(t)}function I(n){return n=(n||"").toLowerCase(),t[n]||t[i[n]]}function ue(n,{languageName:a}){typeof n=="string"&&(n=[n]),n.forEach(h=>{i[h.toLowerCase()]=a})}function fe(n){let a=I(n);return a&&!a.disableAutodetect}function ze(n){n["before:highlightBlock"]&&!n["before:highlightElement"]&&(n["before:highlightElement"]=a=>{n["before:highlightBlock"](Object.assign({block:a.el},a))}),n["after:highlightBlock"]&&!n["after:highlightElement"]&&(n["after:highlightElement"]=a=>{n["after:highlightBlock"](Object.assign({block:a.el},a))})}function Fe(n){ze(n),u.push(n)}function Xe(n){let a=u.indexOf(n);a!==-1&&u.splice(a,1)}function G(n,a){let h=n;u.forEach(function(p){p[h]&&p[h](a)})}function Ye(n){return L("10.7.0","highlightBlock will be removed entirely in v12.0"),L("10.7.0","Please use highlightElement now."),q(n)}Object.assign(e,{highlight:w,highlightAuto:V,highlightAll:$,highlightElement:q,highlightBlock:Ye,configure:je,initHighlighting:He,initHighlightingOnLoad:Ue,registerLanguage:Ge,unregisterLanguage:We,listLanguages:Ke,getLanguage:I,registerAliases:ue,autoDetection:fe,inherit:xe,addPlugin:Fe,removePlugin:Xe}),e.debugMode=function(){b=!1},e.safeMode=function(){b=!0},e.versionString=Kt,e.regex={concat:C,lookahead:Se,either:ce,optional:rt,anyNumberOfTimes:st};for(let n in F)typeof F[n]=="object"&&ye(F[n]);return Object.assign(e,F),e},P=Ce({});P.newInstance=()=>Ce({});Le.exports=P;P.HighlightJS=P;P.default=P});export default Ft(); diff --git a/matchbox-server/src/main/resources/static/browser/chunk-JL4BMBRH.js b/matchbox-server/src/main/resources/static/browser/chunk-JL4BMBRH.js new file mode 100644 index 00000000000..6e6ac9d8229 --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/chunk-JL4BMBRH.js @@ -0,0 +1,11 @@ +import{a as G,b as oe,g as Z}from"./chunk-TSRGIXR5.js";function Cs(e,t){return Object.is(e,t)}var ee=null,qr=!1,_s=1,me=Symbol("SIGNAL");function O(e){let t=ee;return ee=e,t}function Ms(){return ee}var an={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Kn(e){if(qr)throw new Error("");if(ee===null)return;ee.consumerOnSignalRead(e);let t=ee.nextProducerIndex++;if(Jr(ee),te.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function Qr(e){Jr(e);for(let t=0;t0}function Jr(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function dl(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function fl(e){return e.producerNode!==void 0}function Xr(e,t){let n=Object.create(zg);n.computation=e,t!==void 0&&(n.equal=t);let r=()=>{if(Ts(n),Kn(n),n.value===Zr)throw n.error;return n.value};return r[me]=n,r}var ws=Symbol("UNSET"),Is=Symbol("COMPUTING"),Zr=Symbol("ERRORED"),zg=oe(G({},an),{value:ws,dirty:!0,error:null,equal:Cs,kind:"computed",producerMustRecompute(e){return e.value===ws||e.value===Is},producerRecomputeValue(e){if(e.value===Is)throw new Error("Detected cycle in computations.");let t=e.value;e.value=Is;let n=Jn(e),r,o=!1;try{r=e.computation(),O(null),o=t!==ws&&t!==Zr&&r!==Zr&&e.equal(t,r)}catch(i){r=Zr,e.error=i}finally{Yr(e,n)}if(o){e.value=t;return}e.value=r,e.version++}});function Gg(){throw new Error}var pl=Gg;function hl(e){pl(e)}function xs(e){pl=e}var Wg=null;function As(e,t){let n=Object.create(eo);n.value=e,t!==void 0&&(n.equal=t);let r=()=>(Kn(n),n.value);return r[me]=n,r}function er(e,t){Ns()||hl(e),e.equal(e.value,t)||(e.value=t,qg(e))}function Rs(e,t){Ns()||hl(e),er(e,t(e.value))}var eo=oe(G({},an),{equal:Cs,value:void 0,kind:"signal"});function qg(e){e.version++,ul(),Ss(e),Wg?.()}function Os(e){let t=O(null);try{return e()}finally{O(t)}}var ks;function tr(){return ks}function rt(e){let t=ks;return ks=e,t}var to=Symbol("NotFound");function S(e){return typeof e=="function"}function Dt(e){let n=e(r=>{Error.call(r),r.stack=new Error().stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var no=Dt(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription: +${n.map((r,o)=>`${o+1}) ${r.toString()}`).join(` + `)}`:"",this.name="UnsubscriptionError",this.errors=n});function Nt(e,t){if(e){let n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Y=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(let i of n)i.remove(this);else n.remove(this);let{initialTeardown:r}=this;if(S(r))try{r()}catch(i){t=i instanceof no?i.errors:[i]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let i of o)try{gl(i)}catch(s){t=t??[],s instanceof no?t=[...t,...s.errors]:t.push(s)}}if(t)throw new no(t)}}add(t){var n;if(t&&t!==this)if(this.closed)gl(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}}_hasParent(t){let{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){let{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){let{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&Nt(n,t)}remove(t){let{_finalizers:n}=this;n&&Nt(n,t),t instanceof e&&t._removeParent(this)}};Y.EMPTY=(()=>{let e=new Y;return e.closed=!0,e})();var Fs=Y.EMPTY;function ro(e){return e instanceof Y||e&&"closed"in e&&S(e.remove)&&S(e.add)&&S(e.unsubscribe)}function gl(e){S(e)?e():e.unsubscribe()}var Oe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var cn={setTimeout(e,t,...n){let{delegate:r}=cn;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){let{delegate:t}=cn;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function oo(e){cn.setTimeout(()=>{let{onUnhandledError:t}=Oe;if(t)t(e);else throw e})}function xt(){}var ml=Ps("C",void 0,void 0);function yl(e){return Ps("E",void 0,e)}function vl(e){return Ps("N",e,void 0)}function Ps(e,t,n){return{kind:e,value:t,error:n}}var At=null;function un(e){if(Oe.useDeprecatedSynchronousErrorHandling){let t=!At;if(t&&(At={errorThrown:!1,error:null}),e(),t){let{errorThrown:n,error:r}=At;if(At=null,n)throw r}}else e()}function Dl(e){Oe.useDeprecatedSynchronousErrorHandling&&At&&(At.errorThrown=!0,At.error=e)}var Rt=class extends Y{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,ro(t)&&t.add(this)):this.destination=Xg}static create(t,n,r){return new ke(t,n,r)}next(t){this.isStopped?js(vl(t),this):this._next(t)}error(t){this.isStopped?js(yl(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?js(ml,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},Kg=Function.prototype.bind;function Ls(e,t){return Kg.call(e,t)}var Vs=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){io(r)}}error(t){let{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){io(r)}else io(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){io(n)}}},ke=class extends Rt{constructor(t,n,r){super();let o;if(S(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&Oe.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&Ls(t.next,i),error:t.error&&Ls(t.error,i),complete:t.complete&&Ls(t.complete,i)}):o=t}this.destination=new Vs(o)}};function io(e){Oe.useDeprecatedSynchronousErrorHandling?Dl(e):oo(e)}function Jg(e){throw e}function js(e,t){let{onStoppedNotification:n}=Oe;n&&cn.setTimeout(()=>n(e,t))}var Xg={closed:!0,next:xt,error:Jg,complete:xt};var ln=typeof Symbol=="function"&&Symbol.observable||"@@observable";function fe(e){return e}function em(...e){return Bs(e)}function Bs(e){return e.length===0?fe:e.length===1?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}var F=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){let r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){let i=nm(n)?n:new ke(n,r,o);return un(()=>{let{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return r=El(r),new r((o,i)=>{let s=new ke({next:a=>{try{n(a)}catch(c){i(c),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(n)}[ln](){return this}pipe(...n){return Bs(n)(this)}toPromise(n){return n=El(n),new n((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function El(e){var t;return(t=e??Oe.Promise)!==null&&t!==void 0?t:Promise}function tm(e){return e&&S(e.next)&&S(e.error)&&S(e.complete)}function nm(e){return e&&e instanceof Rt||tm(e)&&ro(e)}function Hs(e){return S(e?.lift)}function C(e){return t=>{if(Hs(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function I(e,t,n,r,o){return new Us(e,t,n,r,o)}var Us=class extends Rt{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(c){t.error(c)}}:super._next,this._error=o?function(a){try{o(a)}catch(c){t.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:n}=this;super.unsubscribe(),!n&&((t=this.onFinalize)===null||t===void 0||t.call(this))}}};function $s(){return C((e,t)=>{let n=null;e._refCount++;let r=I(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount){n=null;return}let o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}var zs=class extends F{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,Hs(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){let t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new Y;let n=this.getSubject();t.add(this.source.subscribe(I(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=Y.EMPTY)}return t}refCount(){return $s()(this)}};var wl=Dt(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var ye=(()=>{class e extends F{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){let r=new so(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new wl}next(n){un(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(n)}})}error(n){un(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;let{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){un(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return((n=this.observers)===null||n===void 0?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){let{hasError:r,isStopped:o,observers:i}=this;return r||o?Fs:(this.currentObservers=null,i.push(n),new Y(()=>{this.currentObservers=null,Nt(i,n)}))}_checkFinalizedStatuses(n){let{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){let n=new F;return n.source=this,n}}return e.create=(t,n)=>new so(t,n),e})(),so=class extends ye{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.next)===null||r===void 0||r.call(n,t)}error(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.error)===null||r===void 0||r.call(n,t)}complete(){var t,n;(n=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||n===void 0||n.call(t)}_subscribe(t){var n,r;return(r=(n=this.source)===null||n===void 0?void 0:n.subscribe(t))!==null&&r!==void 0?r:Fs}};var Ot=class extends ye{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){let n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){let{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}};var nr={now(){return(nr.delegate||Date).now()},delegate:void 0};var rr=class extends ye{constructor(t=1/0,n=1/0,r=nr){super(),this._bufferSize=t,this._windowTime=n,this._timestampProvider=r,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=n===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,n)}next(t){let{isStopped:n,_buffer:r,_infiniteTimeWindow:o,_timestampProvider:i,_windowTime:s}=this;n||(r.push(t),!o&&r.push(i.now()+s)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();let n=this._innerSubscribe(t),{_infiniteTimeWindow:r,_buffer:o}=this,i=o.slice();for(let s=0;se.complete());function lo(e){return e&&S(e.schedule)}function Gs(e){return e[e.length-1]}function fo(e){return S(Gs(e))?e.pop():void 0}function ze(e){return lo(Gs(e))?e.pop():void 0}function bl(e,t){return typeof Gs(e)=="number"?e.pop():t}function _l(e,t,n,r){function o(i){return i instanceof n?i:new n(function(s){s(i)})}return new(n||(n=Promise))(function(i,s){function a(l){try{u(r.next(l))}catch(f){s(f)}}function c(l){try{u(r.throw(l))}catch(f){s(f)}}function u(l){l.done?i(l.value):o(l.value).then(a,c)}u((r=r.apply(e,t||[])).next())})}function Cl(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function kt(e){return this instanceof kt?(this.v=e,this):new kt(e)}function Ml(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(d){return function(h){return Promise.resolve(h).then(d,f)}}function a(d,h){r[d]&&(o[d]=function(g){return new Promise(function(w,x){i.push([d,g,w,x])>1||c(d,g)})},h&&(o[d]=h(o[d])))}function c(d,h){try{u(r[d](h))}catch(g){p(i[0][3],g)}}function u(d){d.value instanceof kt?Promise.resolve(d.value.v).then(l,f):p(i[0][2],d)}function l(d){c("next",d)}function f(d){c("throw",d)}function p(d,h){d(h),i.shift(),i.length&&c(i[0][0],i[0][1])}}function Tl(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Cl=="function"?Cl(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),o(a,c,s.done,s.value)})}}function o(i,s,a,c){Promise.resolve(c).then(function(u){i({value:u,done:a})},s)}}var po=e=>e&&typeof e.length=="number"&&typeof e!="function";function ho(e){return S(e?.then)}function go(e){return S(e[ln])}function mo(e){return Symbol.asyncIterator&&S(e?.[Symbol.asyncIterator])}function yo(e){return new TypeError(`You provided ${e!==null&&typeof e=="object"?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function rm(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var vo=rm();function Do(e){return S(e?.[vo])}function Eo(e){return Ml(this,arguments,function*(){let n=e.getReader();try{for(;;){let{value:r,done:o}=yield kt(n.read());if(o)return yield kt(void 0);yield yield kt(r)}}finally{n.releaseLock()}})}function wo(e){return S(e?.getReader)}function P(e){if(e instanceof F)return e;if(e!=null){if(go(e))return om(e);if(po(e))return im(e);if(ho(e))return sm(e);if(mo(e))return Sl(e);if(Do(e))return am(e);if(wo(e))return cm(e)}throw yo(e)}function om(e){return new F(t=>{let n=e[ln]();if(S(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function im(e){return new F(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,oo)})}function am(e){return new F(t=>{for(let n of e)if(t.next(n),t.closed)return;t.complete()})}function Sl(e){return new F(t=>{um(e,t).catch(n=>t.error(n))})}function cm(e){return Sl(Eo(e))}function um(e,t){var n,r,o,i;return _l(this,void 0,void 0,function*(){try{for(n=Tl(e);r=yield n.next(),!r.done;){let s=r.value;if(t.next(s),t.closed)return}}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})}function ae(e,t,n,r=0,o=!1){let i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function Io(e,t=0){return C((n,r)=>{n.subscribe(I(r,o=>ae(r,e,()=>r.next(o),t),()=>ae(r,e,()=>r.complete(),t),o=>ae(r,e,()=>r.error(o),t)))})}function bo(e,t=0){return C((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function Nl(e,t){return P(e).pipe(bo(t),Io(t))}function xl(e,t){return P(e).pipe(bo(t),Io(t))}function Al(e,t){return new F(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function Rl(e,t){return new F(n=>{let r;return ae(n,t,()=>{r=e[vo](),ae(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){n.error(s);return}i?n.complete():n.next(o)},0,!0)}),()=>S(r?.return)&&r.return()})}function Co(e,t){if(!e)throw new Error("Iterable cannot be null");return new F(n=>{ae(n,t,()=>{let r=e[Symbol.asyncIterator]();ae(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function Ol(e,t){return Co(Eo(e),t)}function kl(e,t){if(e!=null){if(go(e))return Nl(e,t);if(po(e))return Al(e,t);if(ho(e))return xl(e,t);if(mo(e))return Co(e,t);if(Do(e))return Rl(e,t);if(wo(e))return Ol(e,t)}throw yo(e)}function pe(e,t){return t?kl(e,t):P(e)}function _o(...e){let t=ze(e);return pe(e,t)}function Ft(e,t){let n=S(e)?e:()=>e,r=o=>o.error(n());return new F(t?o=>t.schedule(r,0,o):r)}function lm(e){return!!e&&(e instanceof F||S(e.lift)&&S(e.subscribe))}var it=Dt(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Ws(e,t){let n=typeof t=="object";return new Promise((r,o)=>{let i=new ke({next:s=>{r(s),i.unsubscribe()},error:o,complete:()=>{n?r(t.defaultValue):o(new it)}});e.subscribe(i)})}function Mo(e){return e instanceof Date&&!isNaN(e)}var dm=Dt(e=>function(n=null){e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=n});function fm(e,t){let{first:n,each:r,with:o=pm,scheduler:i=t??ot,meta:s=null}=Mo(e)?{first:e}:typeof e=="number"?{each:e}:e;if(n==null&&r==null)throw new TypeError("No timeout provided.");return C((a,c)=>{let u,l,f=null,p=0,d=h=>{l=ae(c,i,()=>{try{u.unsubscribe(),P(o({meta:s,lastValue:f,seen:p})).subscribe(c)}catch(g){c.error(g)}},h)};u=a.subscribe(I(c,h=>{l?.unsubscribe(),p++,c.next(f=h),r>0&&d(r)},void 0,void 0,()=>{l?.closed||l?.unsubscribe(),f=null})),!p&&d(n!=null?typeof n=="number"?n:+n-i.now():r)})}function pm(e){throw new dm(e)}function ne(e,t){return C((n,r)=>{let o=0;n.subscribe(I(r,i=>{r.next(e.call(t,i,o++))}))})}var{isArray:hm}=Array;function gm(e,t){return hm(t)?e(...t):e(t)}function To(e){return ne(t=>gm(e,t))}var{isArray:mm}=Array,{getPrototypeOf:ym,prototype:vm,keys:Dm}=Object;function So(e){if(e.length===1){let t=e[0];if(mm(t))return{args:t,keys:null};if(Em(t)){let n=Dm(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}function Em(e){return e&&typeof e=="object"&&ym(e)===vm}function No(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}function wm(...e){let t=ze(e),n=fo(e),{args:r,keys:o}=So(e);if(r.length===0)return pe([],t);let i=new F(Im(r,t,o?s=>No(o,s):fe));return n?i.pipe(To(n)):i}function Im(e,t,n=fe){return r=>{Fl(t,()=>{let{length:o}=e,i=new Array(o),s=o,a=o;for(let c=0;c{let u=pe(e[c],t),l=!1;u.subscribe(I(r,f=>{i[c]=f,l||(l=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}function Fl(e,t,n){e?ae(n,e,t):t()}function Pl(e,t,n,r,o,i,s,a){let c=[],u=0,l=0,f=!1,p=()=>{f&&!c.length&&!u&&t.complete()},d=g=>u{i&&t.next(g),u++;let w=!1;P(n(g,l++)).subscribe(I(t,x=>{o?.(x),i?d(x):t.next(x)},()=>{w=!0},void 0,()=>{if(w)try{for(u--;c.length&&uh(x)):h(x)}p()}catch(x){t.error(x)}}))};return e.subscribe(I(t,d,()=>{f=!0,p()})),()=>{a?.()}}function st(e,t,n=1/0){return S(t)?st((r,o)=>ne((i,s)=>t(r,i,o,s))(P(e(r,o))),n):(typeof t=="number"&&(n=t),C((r,o)=>Pl(r,o,e,n)))}function ir(e=1/0){return st(fe,e)}function Ll(){return ir(1)}function fn(...e){return Ll()(pe(e,ze(e)))}function bm(e){return new F(t=>{P(e()).subscribe(t)})}function qs(...e){let t=fo(e),{args:n,keys:r}=So(e),o=new F(i=>{let{length:s}=n;if(!s){i.complete();return}let a=new Array(s),c=s,u=s;for(let l=0;l{f||(f=!0,u--),a[l]=p},()=>c--,void 0,()=>{(!c||!f)&&(u||i.next(r?No(r,a):a),i.complete())}))}});return t?o.pipe(To(t)):o}function sr(e=0,t,n=Il){let r=-1;return t!=null&&(lo(t)?n=t:r=t),new F(o=>{let i=Mo(e)?+e-n.now():e;i<0&&(i=0);let s=0;return n.schedule(function(){o.closed||(o.next(s++),0<=r?this.schedule(void 0,r):o.complete())},i)})}function Cm(...e){let t=ze(e),n=bl(e,1/0),r=e;return r.length?r.length===1?P(r[0]):ir(n)(pe(r,t)):$e}var{isArray:_m}=Array;function jl(e){return e.length===1&&_m(e[0])?e[0]:e}function be(e,t){return C((n,r)=>{let o=0;n.subscribe(I(r,i=>e.call(t,i,o++)&&r.next(i)))})}function Mm(...e){return e=jl(e),e.length===1?P(e[0]):new F(Tm(e))}function Tm(e){return t=>{let n=[];for(let r=0;n&&!t.closed&&r{if(n){for(let i=0;i{let r=!1,o=null,i=null,s=!1,a=()=>{if(i?.unsubscribe(),i=null,r){r=!1;let u=o;o=null,n.next(u)}s&&n.complete()},c=()=>{i=null,s&&n.complete()};t.subscribe(I(n,u=>{r=!0,o=u,i||P(e(u)).subscribe(i=I(n,a,c))},()=>{s=!0,(!r||!i||i.closed)&&n.complete()}))})}function Sm(e,t=ot){return Vl(()=>sr(e,t))}function ar(e){return C((t,n)=>{let r=null,o=!1,i;r=t.subscribe(I(n,void 0,void 0,s=>{i=P(e(s,ar(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function Bl(e,t,n,r,o){return(i,s)=>{let a=n,c=t,u=0;i.subscribe(I(s,l=>{let f=u++;c=a?e(c,l,f):(a=!0,l),r&&s.next(c)},o&&(()=>{a&&s.next(c),s.complete()})))}}function Zs(e,t){return S(t)?st(e,t,1):st(e,1)}function Nm(e,t=ot){return C((n,r)=>{let o=null,i=null,s=null,a=()=>{if(o){o.unsubscribe(),o=null;let u=i;i=null,r.next(u)}};function c(){let u=s+e,l=t.now();if(l{i=u,s=t.now(),o||(o=t.schedule(c,e),r.add(o))},()=>{a(),r.complete()},void 0,()=>{i=o=null}))})}function cr(e){return C((t,n)=>{let r=!1;t.subscribe(I(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function pn(e){return e<=0?()=>$e:C((t,n)=>{let r=0;t.subscribe(I(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Hl(){return C((e,t)=>{e.subscribe(I(t,xt))})}function Ys(e){return ne(()=>e)}function Qs(e,t){return t?n=>fn(t.pipe(pn(1),Hl()),n.pipe(Qs(e))):st((n,r)=>P(e(n,r)).pipe(pn(1),Ys(n)))}function xm(e,t=ot){let n=sr(e,t);return Qs(()=>n)}function Am(e,t=fe){return e=e??Rm,C((n,r)=>{let o,i=!0;n.subscribe(I(r,s=>{let a=t(s);(i||!e(o,a))&&(i=!1,o=a,r.next(s))}))})}function Rm(e,t){return e===t}function xo(e=Om){return C((t,n)=>{let r=!1;t.subscribe(I(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function Om(){return new it}function Ao(e){return C((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}function km(e,t){let n=arguments.length>=2;return r=>r.pipe(e?be((o,i)=>e(o,i,r)):fe,pn(1),n?cr(t):xo(()=>new it))}function Ks(e){return e<=0?()=>$e:C((t,n)=>{let r=[];t.subscribe(I(n,o=>{r.push(o),e{for(let o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function Fm(e,t){let n=arguments.length>=2;return r=>r.pipe(e?be((o,i)=>e(o,i,r)):fe,Ks(1),n?cr(t):xo(()=>new it))}function Pm(){return C((e,t)=>{let n,r=!1;e.subscribe(I(t,o=>{let i=n;n=o,r&&t.next([i,o]),r=!0}))})}function Lm(e,t){return C(Bl(e,t,arguments.length>=2,!0))}function Xs(e={}){let{connector:t=()=>new ye,resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s,a,c,u=0,l=!1,f=!1,p=()=>{a?.unsubscribe(),a=void 0},d=()=>{p(),s=c=void 0,l=f=!1},h=()=>{let g=s;d(),g?.unsubscribe()};return C((g,w)=>{u++,!f&&!l&&p();let x=c=c??t();w.add(()=>{u--,u===0&&!f&&!l&&(a=Js(h,o))}),x.subscribe(w),!s&&u>0&&(s=new ke({next:ie=>x.next(ie),error:ie=>{f=!0,p(),a=Js(d,n,ie),x.error(ie)},complete:()=>{l=!0,p(),a=Js(d,r),x.complete()}}),P(g).subscribe(s))})(i)}}function Js(e,t,...n){if(t===!0){e();return}if(t===!1)return;let r=new ke({next:()=>{r.unsubscribe(),e()}});return P(t(...n)).subscribe(r)}function jm(e,t,n){let r,o=!1;return e&&typeof e=="object"?{bufferSize:r=1/0,windowTime:t=1/0,refCount:o=!1,scheduler:n}=e:r=e??1/0,Xs({connector:()=>new rr(r,t,n),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}function Vm(e){return be((t,n)=>e<=n)}function Bm(...e){let t=ze(e);return C((n,r)=>{(t?fn(e,n,t):fn(e,n)).subscribe(r)})}function Pt(e,t){return C((n,r)=>{let o=null,i=0,s=!1,a=()=>s&&!o&&r.complete();n.subscribe(I(r,c=>{o?.unsubscribe();let u=0,l=i++;P(e(c,l)).subscribe(o=I(r,f=>r.next(t?t(c,f,l,u++):f),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function Hm(e){return C((t,n)=>{P(e).subscribe(I(n,()=>n.complete(),xt)),!n.closed&&t.subscribe(n)})}function Um(e,t=!1){return C((n,r)=>{let o=0;n.subscribe(I(r,i=>{let s=e(i,o++);(s||t)&&r.next(i),!s&&r.complete()}))})}function ur(e,t,n){let r=S(e)||t||n?{next:e,error:t,complete:n}:e;return r?C((o,i)=>{var s;(s=r.subscribe)===null||s===void 0||s.call(r);let a=!0;o.subscribe(I(i,c=>{var u;(u=r.next)===null||u===void 0||u.call(r,c),i.next(c)},()=>{var c;a=!1,(c=r.complete)===null||c===void 0||c.call(r),i.complete()},c=>{var u;a=!1,(u=r.error)===null||u===void 0||u.call(r,c),i.error(c)},()=>{var c,u;a&&((c=r.unsubscribe)===null||c===void 0||c.call(r)),(u=r.finalize)===null||u===void 0||u.call(r)}))}):fe}var Fd="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",v=class extends Error{code;constructor(t,n){super(Cc(t,n)),this.code=t}};function $m(e){return`NG0${Math.abs(e)}`}function Cc(e,t){return`${$m(e)}${t?": "+t:""}`}var Pd=Symbol("InputSignalNode#UNSET"),zm=oe(G({},eo),{transformFn:void 0,applyValueToInputSignal(e,t){er(e,t)}});function Ld(e,t){let n=Object.create(zm);n.value=e,n.transformFn=t?.transform;function r(){if(Kn(n),n.value===Pd){let o=null;throw new v(-950,o)}return n.value}return r[me]=n,r}function br(e){return{toString:e}.toString()}var Ro="__parameters__";function Gm(e){return function(...n){if(e){let r=e(...n);for(let o in r)this[o]=r[o]}}}function jd(e,t,n){return br(()=>{let r=Gm(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;let s=new o(...i);return a.annotation=s,a;function a(c,u,l){let f=c.hasOwnProperty(Ro)?c[Ro]:Object.defineProperty(c,Ro,{value:[]})[Ro];for(;f.length<=l;)f.push(null);return(f[l]=f[l]||[]).push(s),c}}return o.prototype.ngMetadataName=e,o.annotationCls=o,o})}var re=globalThis;function j(e){for(let t in e)if(e[t]===j)return t;throw Error("Could not find renamed property on target object.")}function Wm(e,t){for(let n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function De(e){if(typeof e=="string")return e;if(Array.isArray(e))return`[${e.map(De).join(", ")}]`;if(e==null)return""+e;let t=e.overriddenName||e.name;if(t)return`${t}`;let n=e.toString();if(n==null)return""+n;let r=n.indexOf(` +`);return r>=0?n.slice(0,r):n}function ga(e,t){return e?t?`${e} ${t}`:e:t||""}var qm=j({__forward_ref__:j});function Vd(e){return e.__forward_ref__=Vd,e.toString=function(){return De(this())},e}function he(e){return Bd(e)?e():e}function Bd(e){return typeof e=="function"&&e.hasOwnProperty(qm)&&e.__forward_ref__===Vd}function M(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function lt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Di(e){return Ul(e,Hd)||Ul(e,Ud)}function KA(e){return Di(e)!==null}function Ul(e,t){return e.hasOwnProperty(t)?e[t]:null}function Zm(e){let t=e&&(e[Hd]||e[Ud]);return t||null}function $l(e){return e&&(e.hasOwnProperty(zl)||e.hasOwnProperty(Ym))?e[zl]:null}var Hd=j({\u0275prov:j}),zl=j({\u0275inj:j}),Ud=j({ngInjectableDef:j}),Ym=j({ngInjectorDef:j}),E=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,n){this._desc=t,this.\u0275prov=void 0,typeof n=="number"?this.__NG_ELEMENT_ID__=n:n!==void 0&&(this.\u0275prov=M({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function $d(e){return e&&!!e.\u0275providers}var Qm=j({\u0275cmp:j}),Km=j({\u0275dir:j}),Jm=j({\u0275pipe:j}),Xm=j({\u0275mod:j}),$o=j({\u0275fac:j}),pr=j({__NG_ELEMENT_ID__:j}),Gl=j({__NG_ENV_ID__:j});function Bt(e){return typeof e=="string"?e:e==null?"":String(e)}function ey(e){return typeof e=="function"?e.name||e.toString():typeof e=="object"&&e!=null&&typeof e.type=="function"?e.type.name||e.type.toString():Bt(e)}function zd(e,t){throw new v(-200,e)}function _c(e,t){throw new v(-201,!1)}var k=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(k||{}),ma;function Gd(){return ma}function ve(e){let t=ma;return ma=e,t}function Wd(e,t,n){let r=Di(e);if(r&&r.providedIn=="root")return r.value===void 0?r.value=r.factory():r.value;if(n&k.Optional)return null;if(t!==void 0)return t;_c(e,"Injector")}var ty={},jt=ty,ya="__NG_DI_FLAG__",zo=class{injector;constructor(t){this.injector=t}retrieve(t,n){let r=n;return this.injector.get(t,r.optional?to:jt,r)}},Go="ngTempTokenPath",ny="ngTokenPath",ry=/\n/gm,oy="\u0275",Wl="__source";function iy(e,t=k.Default){if(tr()===void 0)throw new v(-203,!1);if(tr()===null)return Wd(e,void 0,t);{let n=tr(),r;return n instanceof zo?r=n.injector:r=n,r.get(e,t&k.Optional?null:void 0,t)}}function b(e,t=k.Default){return(Gd()||iy)(he(e),t)}function m(e,t=k.Default){return b(e,Ei(t))}function Ei(e){return typeof e>"u"||typeof e=="number"?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function va(e){let t=[];for(let n=0;n ");else if(typeof t=="object"){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+(typeof a=="string"?JSON.stringify(a):De(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(ry,` + `)}`}var Mc=qd(jd("Optional"),8);var Zd=qd(jd("SkipSelf"),4);function Ht(e,t){let n=e.hasOwnProperty($o);return n?e[$o]:null}function uy(e,t,n){if(e.length!==t.length)return!1;for(let r=0;rArray.isArray(n)?Tc(n,t):t(n))}function Yd(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Wo(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function dy(e,t){let n=[];for(let r=0;rt;){let i=o-2;e[o]=e[i],o--}e[t]=n,e[t+1]=r}}function wi(e,t,n){let r=Cr(e,t);return r>=0?e[r|1]=n:(r=~r,fy(e,r,t,n)),r}function ea(e,t){let n=Cr(e,t);if(n>=0)return e[n|1]}function Cr(e,t){return py(e,t,1)}function py(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){let i=r+(o-r>>1),s=e[i<t?o=i:r=i+1}return~(o<{n.push(s)};return Tc(t,s=>{let a=s;Da(a,i,[],r)&&(o||=[],o.push(a))}),o!==void 0&&ef(o,i),n}function ef(e,t){for(let n=0;n{t(i,r)})}}function Da(e,t,n,r){if(e=he(e),!e)return!1;let o=null,i=$l(e),s=!i&&It(e);if(!i&&!s){let c=e.ngModule;if(i=$l(c),i)o=c;else return!1}else{if(s&&!s.standalone)return!1;o=e}let a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){let c=typeof s.dependencies=="function"?s.dependencies():s.dependencies;for(let u of c)Da(u,t,n,r)}}else if(i){if(i.imports!=null&&!a){r.add(o);let u;try{Tc(i.imports,l=>{Da(l,t,n,r)&&(u||=[],u.push(l))})}finally{}u!==void 0&&ef(u,t)}if(!a){let u=Ht(o)||(()=>new o);t({provide:o,useFactory:u,deps:ge},o),t({provide:Kd,useValue:o,multi:!0},o),t({provide:hr,useValue:()=>b(o),multi:!0},o)}let c=i.providers;if(c!=null&&!a){let u=e;Sc(c,l=>{t(l,u)})}}else return!1;return o!==e&&e.providers!==void 0}function Sc(e,t){for(let n of e)$d(n)&&(n=n.\u0275providers),Array.isArray(n)?Sc(n,t):t(n)}var yy=j({provide:String,useValue:j});function tf(e){return e!==null&&typeof e=="object"&&yy in e}function vy(e){return!!(e&&e.useExisting)}function Dy(e){return!!(e&&e.useFactory)}function En(e){return typeof e=="function"}function Ey(e){return!!e.useClass}var bi=new E(""),jo={},ql={},ta;function Ci(){return ta===void 0&&(ta=new qo),ta}var qe=class{},gr=class extends qe{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,wa(t,s=>this.processProvider(s)),this.records.set(Qd,hn(void 0,this)),o.has("environment")&&this.records.set(qe,hn(void 0,this));let i=this.records.get(bi);i!=null&&typeof i.value=="string"&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Kd,ge,k.Self))}retrieve(t,n){let r=n;return this.get(t,r.optional?to:jt,r)}destroy(){dr(this),this._destroyed=!0;let t=O(null);try{for(let r of this._ngOnDestroyHooks)r.ngOnDestroy();let n=this._onDestroyHooks;this._onDestroyHooks=[];for(let r of n)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),O(t)}}onDestroy(t){return dr(this),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){dr(this);let n=rt(this),r=ve(void 0),o;try{return t()}finally{rt(n),ve(r)}}get(t,n=jt,r=k.Default){if(dr(this),t.hasOwnProperty(Gl))return t[Gl](this);r=Ei(r);let o,i=rt(this),s=ve(void 0);try{if(!(r&k.SkipSelf)){let c=this.records.get(t);if(c===void 0){let u=_y(t)&&Di(t);u&&this.injectableDefInScope(u)?c=hn(Ea(t),jo):c=null,this.records.set(t,c)}if(c!=null)return this.hydrate(t,c,r)}let a=r&k.Self?Ci():this.parent;return n=r&k.Optional&&n===jt?null:n,a.get(t,n)}catch(a){if(a.name==="NullInjectorError"){if((a[Go]=a[Go]||[]).unshift(De(t)),i)throw a;return ay(a,t,"R3InjectorError",this.source)}else throw a}finally{ve(s),rt(i)}}resolveInjectorInitializers(){let t=O(null),n=rt(this),r=ve(void 0),o;try{let i=this.get(hr,ge,k.Self);for(let s of i)s()}finally{rt(n),ve(r),O(t)}}toString(){let t=[],n=this.records;for(let r of n.keys())t.push(De(r));return`R3Injector[${t.join(", ")}]`}processProvider(t){t=he(t);let n=En(t)?t:he(t&&t.provide),r=Iy(t);if(!En(t)&&t.multi===!0){let o=this.records.get(n);o||(o=hn(void 0,jo,!0),o.factory=()=>va(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n,r){let o=O(null);try{return n.value===ql?zd(De(t)):n.value===jo&&(n.value=ql,n.value=n.factory(void 0,r)),typeof n.value=="object"&&n.value&&Cy(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}finally{O(o)}}injectableDefInScope(t){if(!t.providedIn)return!1;let n=he(t.providedIn);return typeof n=="string"?n==="any"||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){let n=this._onDestroyHooks.indexOf(t);n!==-1&&this._onDestroyHooks.splice(n,1)}};function Ea(e){let t=Di(e),n=t!==null?t.factory:Ht(e);if(n!==null)return n;if(e instanceof E)throw new v(204,!1);if(e instanceof Function)return wy(e);throw new v(204,!1)}function wy(e){if(e.length>0)throw new v(204,!1);let n=Zm(e);return n!==null?()=>n.factory(e):()=>new e}function Iy(e){if(tf(e))return hn(void 0,e.useValue);{let t=nf(e);return hn(t,jo)}}function nf(e,t,n){let r;if(En(e)){let o=he(e);return Ht(o)||Ea(o)}else if(tf(e))r=()=>he(e.useValue);else if(Dy(e))r=()=>e.useFactory(...va(e.deps||[]));else if(vy(e))r=(o,i)=>b(he(e.useExisting),i!==void 0&&i&k.Optional?k.Optional:void 0);else{let o=he(e&&(e.useClass||e.provide));if(by(e))r=()=>new o(...va(e.deps));else return Ht(o)||Ea(o)}return r}function dr(e){if(e.destroyed)throw new v(205,!1)}function hn(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function by(e){return!!e.deps}function Cy(e){return e!==null&&typeof e=="object"&&typeof e.ngOnDestroy=="function"}function _y(e){return typeof e=="function"||typeof e=="object"&&e instanceof E}function wa(e,t){for(let n of e)Array.isArray(n)?wa(n,t):n&&$d(n)?wa(n.\u0275providers,t):t(n)}function _i(e,t){let n;e instanceof gr?(dr(e),n=e):n=new zo(e);let r,o=rt(n),i=ve(void 0);try{return t()}finally{rt(o),ve(i)}}function Nc(){return Gd()!==void 0||tr()!=null}function xc(e){if(!Nc())throw new v(-203,!1)}function My(e){let t=re.ng;if(t&&t.\u0275compilerFacade)return t.\u0275compilerFacade;throw new Error("JIT compiler unavailable")}function Ty(e){return typeof e=="function"}var Xe=0,N=1,T=2,ue=3,Le=4,Ee=5,wn=6,Zo=7,te=8,In=9,at=10,U=11,mr=12,Zl=13,xn=14,Ce=15,$t=16,gn=17,ct=18,Mi=19,rf=20,Et=21,na=22,zt=23,Se=24,vn=25,Q=26,Ac=1;var Gt=7,Yo=8,bn=9,ce=10;function wt(e){return Array.isArray(e)&&typeof e[Ac]=="object"}function dt(e){return Array.isArray(e)&&e[Ac]===!0}function Rc(e){return(e.flags&4)!==0}function An(e){return e.componentOffset>-1}function Ti(e){return(e.flags&1)===1}function je(e){return!!e.template}function Qo(e){return(e[T]&512)!==0}function Rn(e){return(e[T]&256)===256}var Ia=class{previousValue;currentValue;firstChange;constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}};function of(e,t,n,r){t!==null?t.applyValueToInputSignal(t,r):e[n]=r}var sf=(()=>{let e=()=>af;return e.ngInherit=!0,e})();function af(e){return e.type.prototype.ngOnChanges&&(e.setInput=Ny),Sy}function Sy(){let e=uf(this),t=e?.current;if(t){let n=e.previous;if(n===Ut)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Ny(e,t,n,r,o){let i=this.declaredInputs[r],s=uf(e)||xy(e,{previous:Ut,current:null}),a=s.current||(s.current={}),c=s.previous,u=c[i];a[i]=new Ia(u&&u.currentValue,n,c===Ut),of(e,t,o,n)}var cf="__ngSimpleChanges__";function uf(e){return e[cf]||null}function xy(e,t){return e[cf]=t}var Yl=null;var V=function(e,t=null,n){Yl?.(e,t,n)},lf="svg",Ay="math";function Ze(e){for(;Array.isArray(e);)e=e[Xe];return e}function Ry(e){for(;Array.isArray(e);){if(typeof e[Ac]=="object")return e;e=e[Xe]}return null}function df(e,t){return Ze(t[e])}function et(e,t){return Ze(t[e.index])}function Oc(e,t){return e.data[t]}function kc(e,t){return e[t]}function ff(e,t,n,r){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}function Ye(e,t){let n=t[e];return wt(n)?n:n[Xe]}function Oy(e){return(e[T]&4)===4}function Fc(e){return(e[T]&128)===128}function ky(e){return dt(e[ue])}function bt(e,t){return t==null?null:e[t]}function pf(e){e[gn]=0}function hf(e){e[T]&1024||(e[T]|=1024,Fc(e)&&On(e))}function Fy(e,t){for(;e>0;)t=t[xn],e--;return t}function Si(e){return!!(e[T]&9216||e[Se]?.dirty)}function ba(e){e[at].changeDetectionScheduler?.notify(8),e[T]&64&&(e[T]|=1024),Si(e)&&On(e)}function On(e){e[at].changeDetectionScheduler?.notify(0);let t=Wt(e);for(;t!==null&&!(t[T]&8192||(t[T]|=8192,!Fc(t)));)t=Wt(t)}function gf(e,t){if(Rn(e))throw new v(911,!1);e[Et]===null&&(e[Et]=[]),e[Et].push(t)}function Py(e,t){if(e[Et]===null)return;let n=e[Et].indexOf(t);n!==-1&&e[Et].splice(n,1)}function Wt(e){let t=e[ue];return dt(t)?t[ue]:t}function Pc(e){return e[Zo]??=[]}function Lc(e){return e.cleanup??=[]}function Ly(e,t,n,r){let o=Pc(t);o.push(n),e.firstCreatePass&&Lc(e).push(r,o.length-1)}var A={lFrame:If(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var Ca=!1;function jy(){return A.lFrame.elementDepthCount}function Vy(){A.lFrame.elementDepthCount++}function By(){A.lFrame.elementDepthCount--}function jc(){return A.bindingsEnabled}function mf(){return A.skipHydrationRootTNode!==null}function Hy(e){return A.skipHydrationRootTNode===e}function Uy(){A.skipHydrationRootTNode=null}function _(){return A.lFrame.lView}function B(){return A.lFrame.tView}function JA(e){return A.lFrame.contextLView=e,e[te]}function XA(e){return A.lFrame.contextLView=null,e}function le(){let e=yf();for(;e!==null&&e.type===64;)e=e.parent;return e}function yf(){return A.lFrame.currentTNode}function $y(){let e=A.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}function Ct(e,t){let n=A.lFrame;n.currentTNode=e,n.isParent=t}function Vc(){return A.lFrame.isParent}function Bc(){A.lFrame.isParent=!1}function zy(){return A.lFrame.contextLView}function vf(){return Ca}function Ko(e){let t=Ca;return Ca=e,t}function _r(){let e=A.lFrame,t=e.bindingRootIndex;return t===-1&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Gy(){return A.lFrame.bindingIndex}function Wy(e){return A.lFrame.bindingIndex=e}function _t(){return A.lFrame.bindingIndex++}function Hc(e){let t=A.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function qy(){return A.lFrame.inI18n}function Zy(e,t){let n=A.lFrame;n.bindingIndex=n.bindingRootIndex=e,_a(t)}function Yy(){return A.lFrame.currentDirectiveIndex}function _a(e){A.lFrame.currentDirectiveIndex=e}function Df(e){let t=A.lFrame.currentDirectiveIndex;return t===-1?null:e[t]}function Uc(){return A.lFrame.currentQueryIndex}function Ni(e){A.lFrame.currentQueryIndex=e}function Qy(e){let t=e[N];return t.type===2?t.declTNode:t.type===1?e[Ee]:null}function Ef(e,t,n){if(n&k.SkipSelf){let o=t,i=e;for(;o=o.parent,o===null&&!(n&k.Host);)if(o=Qy(i),o===null||(i=i[xn],o.type&10))break;if(o===null)return!1;t=o,e=i}let r=A.lFrame=wf();return r.currentTNode=t,r.lView=e,!0}function $c(e){let t=wf(),n=e[N];A.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function wf(){let e=A.lFrame,t=e===null?null:e.child;return t===null?If(e):t}function If(e){let t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=t),t}function bf(){let e=A.lFrame;return A.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var Cf=bf;function zc(){let e=bf();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ky(e){return(A.lFrame.contextLView=Fy(e,A.lFrame.contextLView))[te]}function ft(){return A.lFrame.selectedIndex}function qt(e){A.lFrame.selectedIndex=e}function kn(){let e=A.lFrame;return Oc(e.tView,e.selectedIndex)}function eR(){A.lFrame.currentNamespace=lf}function tR(){Jy()}function Jy(){A.lFrame.currentNamespace=null}function Xy(){return A.lFrame.currentNamespace}var _f=!0;function xi(){return _f}function Ai(e){_f=e}function ev(e,t,n){let{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){let s=af(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}function Gc(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[c]<0&&(e[gn]+=65536),(a>14>16&&(e[T]&3)===t&&(e[T]+=16384,Ql(a,i)):Ql(a,i)}var Dn=-1,Zt=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(t,n,r){this.factory=t,this.canSeeViewProviders=n,this.injectImpl=r}};function nv(e){return(e.flags&8)!==0}function rv(e){return(e.flags&16)!==0}function ov(e,t,n){let r=0;for(;rt){s=i-1;break}}}for(;i>16}function Xo(e,t){let n=sv(e),r=t;for(;n>0;)r=r[xn],n--;return r}var Ma=!0;function ei(e){let t=Ma;return Ma=e,t}var av=256,Nf=av-1,xf=5,cv=0,Ge={};function uv(e,t,n){let r;typeof n=="string"?r=n.charCodeAt(0)||0:n.hasOwnProperty(pr)&&(r=n[pr]),r==null&&(r=n[pr]=cv++);let o=r&Nf,i=1<>xf)]|=i}function ti(e,t){let n=Af(e,t);if(n!==-1)return n;let r=t[N];r.firstCreatePass&&(e.injectorIndex=t.length,oa(r.data,e),oa(t,null),oa(r.blueprint,null));let o=Wc(e,t),i=e.injectorIndex;if(Sf(o)){let s=Jo(o),a=Xo(o,t),c=a[N].data;for(let u=0;u<8;u++)t[i+u]=a[s+u]|c[s+u]}return t[i+8]=o,i}function oa(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Af(e,t){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||t[e.injectorIndex+8]===null?-1:e.injectorIndex}function Wc(e,t){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;o!==null;){if(r=Lf(o),r===null)return Dn;if(n++,o=o[xn],r.injectorIndex!==-1)return r.injectorIndex|n<<16}return Dn}function Ta(e,t,n){uv(e,t,n)}function lv(e,t){if(t==="class")return e.classes;if(t==="style")return e.styles;let n=e.attrs;if(n){let r=n.length,o=0;for(;o>20,f=r?a:a+l,p=o?a+l:u;for(let d=f;d=c&&h.type===n)return d}if(o){let d=s[c];if(d&&je(d)&&d.type===n)return c}return null}function yr(e,t,n,r,o){let i=e[n],s=t.data;if(i instanceof Zt){let a=i;a.resolving&&zd(ey(s[n]));let c=ei(a.canSeeViewProviders);a.resolving=!0;let u,l=a.injectImpl?ve(a.injectImpl):null,f=Ef(e,r,k.Default);try{i=e[n]=a.factory(void 0,o,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&ev(n,s[n],t)}finally{l!==null&&ve(l),ei(c),a.resolving=!1,Cf()}}return i}function fv(e){if(typeof e=="string")return e.charCodeAt(0)||0;let t=e.hasOwnProperty(pr)?e[pr]:void 0;return typeof t=="number"?t>=0?t&Nf:pv:t}function Jl(e,t,n){let r=1<>xf)]&r)}function Xl(e,t){return!(e&k.Self)&&!(e&k.Host&&t)}var Vt=class{_tNode;_lView;constructor(t,n){this._tNode=t,this._lView=n}get(t,n,r){return kf(this._tNode,this._lView,t,Ei(r),n)}};function pv(){return new Vt(le(),_())}function Pf(e){return br(()=>{let t=e.prototype.constructor,n=t[$o]||Sa(t),r=Object.prototype,o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){let i=o[$o]||Sa(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function Sa(e){return Bd(e)?()=>{let t=Sa(he(e));return t&&t()}:Ht(e)}function hv(e,t,n,r,o){let i=e,s=t;for(;i!==null&&s!==null&&s[T]&2048&&!Qo(s);){let a=Ff(i,s,n,r|k.Self,Ge);if(a!==Ge)return a;let c=i.parent;if(!c){let u=s[rf];if(u){let l=u.get(n,Ge,r);if(l!==Ge)return l}c=Lf(s),s=s[xn]}i=c}return o}function Lf(e){let t=e[N],n=t.type;return n===2?t.declTNode:n===1?e[Ee]:null}function jf(e){return lv(le(),e)}function ed(e,t=null,n=null,r){let o=Vf(e,t,n,r);return o.resolveInjectorInitializers(),o}function Vf(e,t=null,n=null,r,o=new Set){let i=[n||ge,my(e)];return r=r||(typeof e=="object"?void 0:De(e)),new gr(i,t||Ci(),r||null,o)}var _e=class e{static THROW_IF_NOT_FOUND=jt;static NULL=new qo;static create(t,n){if(Array.isArray(t))return ed({name:""},n,t,"");{let r=t.name??"";return ed({name:r},t.parent,t.providers,r)}}static \u0275prov=M({token:e,providedIn:"any",factory:()=>b(Qd)});static __NG_ELEMENT_ID__=-1};var td=class{attributeName;constructor(t){this.attributeName=t}__NG_ELEMENT_ID__=()=>jf(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},gv=new E("");gv.__NG_ELEMENT_ID__=e=>{let t=le();if(t===null)throw new v(204,!1);if(t.type&2)return t.value;if(e&k.Optional)return null;throw new v(204,!1)};var Bf=!1,Fn=(()=>{class e{static __NG_ELEMENT_ID__=mv;static __NG_ENV_ID__=n=>n}return e})(),ni=class extends Fn{_lView;constructor(t){super(),this._lView=t}onDestroy(t){let n=this._lView;return Rn(n)?(t(),()=>{}):(gf(n,t),()=>Py(n,t))}};function mv(){return new ni(_())}var Yt=class{},qc=new E("",{providedIn:"root",factory:()=>!1});var Hf=new E(""),Uf=new E(""),en=(()=>{class e{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Ot(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let n=this.taskId++;return this.pendingTasks.add(n),n}has(n){return this.pendingTasks.has(n)}remove(n){this.pendingTasks.delete(n),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=M({token:e,providedIn:"root",factory:()=>new e})}return e})();var Na=class extends ye{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(t=!1){super(),this.__isAsync=t,Nc()&&(this.destroyRef=m(Fn,{optional:!0})??void 0,this.pendingTasks=m(en,{optional:!0})??void 0)}emit(t){let n=O(null);try{super.next(t)}finally{O(n)}}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&typeof t=="object"){let c=t;o=c.next?.bind(c),i=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(i=this.wrapInTimeout(i),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:o,error:i,complete:s});return t instanceof Y&&t.add(a),a}wrapInTimeout(t){return n=>{let r=this.pendingTasks?.add();setTimeout(()=>{try{t(n)}finally{r!==void 0&&this.pendingTasks?.remove(r)}})}}},We=Na;function vr(...e){}function $f(e){let t,n;function r(){e=vr;try{n!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(n),t!==void 0&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame=="function"&&(n=requestAnimationFrame(()=>{e(),r()})),()=>r()}function nd(e){return queueMicrotask(()=>e()),()=>{e=vr}}var Zc="isAngularZone",ri=Zc+"_ID",yv=0,z=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new We(!1);onMicrotaskEmpty=new We(!1);onStable=new We(!1);onError=new We(!1);constructor(t){let{enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:i=Bf}=t;if(typeof Zone>"u")throw new v(908,!1);Zone.assertZonePatched();let s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&r,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=i,Ev(s)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(Zc)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new v(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new v(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){let i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,vv,vr,vr);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}},vv={};function Yc(e){if(e._nesting==0&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function Dv(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function t(){$f(()=>{e.callbackScheduled=!1,xa(e),e.isCheckStableRunning=!0,Yc(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),xa(e)}function Ev(e){let t=()=>{Dv(e)},n=yv++;e._inner=e._inner.fork({name:"angular",properties:{[Zc]:!0,[ri]:n,[ri+n]:!0},onInvokeTask:(r,o,i,s,a,c)=>{if(wv(c))return r.invokeTask(i,s,a,c);try{return rd(e),r.invokeTask(i,s,a,c)}finally{(e.shouldCoalesceEventChangeDetection&&s.type==="eventTask"||e.shouldCoalesceRunChangeDetection)&&t(),od(e)}},onInvoke:(r,o,i,s,a,c,u)=>{try{return rd(e),r.invoke(i,s,a,c,u)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!Iv(c)&&t(),od(e)}},onHasTask:(r,o,i,s)=>{r.hasTask(i,s),o===i&&(s.change=="microTask"?(e._hasPendingMicrotasks=s.microTask,xa(e),Yc(e)):s.change=="macroTask"&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,o,i,s)=>(r.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function xa(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function rd(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function od(e){e._nesting--,Yc(e)}var oi=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new We;onMicrotaskEmpty=new We;onStable=new We;onError=new We;run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}};function wv(e){return zf(e,"__ignore_ng_zone__")}function Iv(e){return zf(e,"__scheduler_tick__")}function zf(e,t){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[t]===!0}function bv(e="zone.js",t){return e==="noop"?new oi:e==="zone.js"?new z(t):e}var Qe=class{_console=console;handleError(t){this._console.error("ERROR",t)}},Cv=new E("",{providedIn:"root",factory:()=>{let e=m(z),t=m(Qe);return n=>e.runOutsideAngular(()=>t.handleError(n))}});function id(e,t){return Ld(e,t)}function _v(e){return Ld(Pd,e)}var Gf=(id.required=_v,id);function Mv(){return Pn(le(),_())}function Pn(e,t){return new Ne(et(e,t))}var Ne=(()=>{class e{nativeElement;constructor(n){this.nativeElement=n}static __NG_ELEMENT_ID__=Mv}return e})();function Wf(e){return e instanceof Ne?e.nativeElement:e}function Tv(e){return typeof e=="function"&&e[me]!==void 0}function Ri(e,t){let n=As(e,t?.equal),r=n[me];return n.set=o=>er(r,o),n.update=o=>Rs(r,o),n.asReadonly=Sv.bind(n),n}function Sv(){let e=this[me];if(e.readonlyFn===void 0){let t=()=>this();t[me]=e,e.readonlyFn=t}return e.readonlyFn}function qf(e){return Tv(e)&&typeof e.set=="function"}function Nv(){return this._results[Symbol.iterator]()}var Aa=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new ye}constructor(t=!1){this._emitDistinctChangesOnly=t}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,n){return this._results.reduce(t,n)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,n){this.dirty=!1;let r=ly(t);(this._changesDetected=!uy(this._results,r,n))&&(this._results=r,this.length=r.length,this.last=r[this.length-1],this.first=r[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(t){this._onDirty=t}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=Nv};function Zf(e){return(e.flags&128)===128}var Yf=function(e){return e[e.OnPush=0]="OnPush",e[e.Default=1]="Default",e}(Yf||{}),Qf=new Map,xv=0;function Av(){return xv++}function Rv(e){Qf.set(e[Mi],e)}function Ra(e){Qf.delete(e[Mi])}var sd="__ngContext__";function Ln(e,t){wt(t)?(e[sd]=t[Mi],Rv(t)):e[sd]=t}function Kf(e){return Xf(e[mr])}function Jf(e){return Xf(e[Le])}function Xf(e){for(;e!==null&&!dt(e);)e=e[Le];return e}var Oa;function ep(e){Oa=e}function tp(){if(Oa!==void 0)return Oa;if(typeof document<"u")return document;throw new v(210,!1)}var Qc=new E("",{providedIn:"root",factory:()=>Ov}),Ov="ng",Kc=new E(""),Ve=new E("",{providedIn:"platform",factory:()=>"unknown"});var nR=new E(""),Jc=new E("",{providedIn:"root",factory:()=>tp().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var kv="h",Fv="b";var np=!1,Pv=new E("",{providedIn:"root",factory:()=>np});var Xc=function(e){return e[e.CHANGE_DETECTION=0]="CHANGE_DETECTION",e[e.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",e}(Xc||{}),jn=new E(""),ad=new Set;function Vn(e){ad.has(e)||(ad.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}var eu=(()=>{class e{view;node;constructor(n,r){this.view=n,this.node=r}static __NG_ELEMENT_ID__=Lv}return e})();function Lv(){return new eu(_(),le())}var mn=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(mn||{}),rp=(()=>{class e{impl=null;execute(){this.impl?.execute()}static \u0275prov=M({token:e,providedIn:"root",factory:()=>new e})}return e})(),jv=[mn.EarlyRead,mn.Write,mn.MixedReadWrite,mn.Read],Vv=(()=>{class e{ngZone=m(z);scheduler=m(Yt);errorHandler=m(Qe,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){m(jn,{optional:!0})}execute(){let n=this.sequences.size>0;n&&V(16),this.executing=!0;for(let r of jv)for(let o of this.sequences)if(!(o.erroredOrDestroyed||!o.hooks[r]))try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let i=o.hooks[r];return i(o.pipelinedValue)},o.snapshot))}catch(i){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(i)}this.executing=!1;for(let r of this.sequences)r.afterRun(),r.once&&(this.sequences.delete(r),r.destroy());for(let r of this.deferredRegistrations)this.sequences.add(r);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),n&&V(17)}register(n){let{view:r}=n;r!==void 0?((r[vn]??=[]).push(n),On(r),r[T]|=8192):this.executing?this.deferredRegistrations.add(n):this.addSequence(n)}addSequence(n){this.sequences.add(n),this.scheduler.notify(7)}unregister(n){this.executing&&this.sequences.has(n)?(n.erroredOrDestroyed=!0,n.pipelinedValue=void 0,n.once=!0):(this.sequences.delete(n),this.deferredRegistrations.delete(n))}maybeTrace(n,r){return r?r.run(Xc.AFTER_NEXT_RENDER,n):n()}static \u0275prov=M({token:e,providedIn:"root",factory:()=>new e})}return e})(),ka=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(t,n,r,o,i,s=null){this.impl=t,this.hooks=n,this.view=r,this.once=o,this.snapshot=s,this.unregisterOnDestroy=i?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let t=this.view?.[vn];t&&(this.view[vn]=t.filter(n=>n!==this))}};function Bv(e,t){!t?.injector&&xc(Bv);let n=t?.injector??m(_e);return Vn("NgAfterRender"),op(e,n,t,!1)}function Hv(e,t){!t?.injector&&xc(Hv);let n=t?.injector??m(_e);return Vn("NgAfterNextRender"),op(e,n,t,!0)}function Uv(e,t){if(e instanceof Function){let n=[void 0,void 0,void 0,void 0];return n[t]=e,n}else return[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function op(e,t,n,r){let o=t.get(rp);o.impl??=t.get(Vv);let i=t.get(jn,null,{optional:!0}),s=n?.phase??mn.MixedReadWrite,a=n?.manualCleanup!==!0?t.get(Fn):null,c=t.get(eu,null,{optional:!0}),u=new ka(o.impl,Uv(e,s),c?.view,r,a,i?.snapshot(null));return o.impl.register(u),u}var $v=(e,t,n,r)=>{};function zv(e,t,n,r){$v(e,t,n,r)}var Gv=()=>null;function ip(e,t,n=!1){return Gv(e,t,n)}function sp(e,t){let n=e.contentQueries;if(n!==null){let r=O(null);try{for(let o=0;oe,createScript:e=>e,createScriptURL:e=>e})}catch{}return Oo}function Oi(e){return Wv()?.createHTML(e)||e}var ko;function ap(){if(ko===void 0&&(ko=null,re.trustedTypes))try{ko=re.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return ko}function cd(e){return ap()?.createHTML(e)||e}function ud(e){return ap()?.createScriptURL(e)||e}var ut=class{changingThisBreaksApplicationSecurity;constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Fd})`}},Pa=class extends ut{getTypeName(){return"HTML"}},La=class extends ut{getTypeName(){return"Style"}},ja=class extends ut{getTypeName(){return"Script"}},Va=class extends ut{getTypeName(){return"URL"}},Ba=class extends ut{getTypeName(){return"ResourceURL"}};function xe(e){return e instanceof ut?e.changingThisBreaksApplicationSecurity:e}function pt(e,t){let n=qv(e);if(n!=null&&n!==t){if(n==="ResourceURL"&&t==="URL")return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${Fd})`)}return n===t}function qv(e){return e instanceof ut&&e.getTypeName()||null}function cp(e){return new Pa(e)}function up(e){return new La(e)}function lp(e){return new ja(e)}function dp(e){return new Va(e)}function fp(e){return new Ba(e)}function Zv(e){let t=new Ua(e);return Yv()?new Ha(t):t}var Ha=class{inertDocumentHelper;constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{let n=new window.DOMParser().parseFromString(Oi(t),"text/html").body;return n===null?this.inertDocumentHelper.getInertBodyElement(t):(n.firstChild?.remove(),n)}catch{return null}}},Ua=class{defaultDoc;inertDocument;constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){let n=this.inertDocument.createElement("template");return n.innerHTML=Oi(t),n}};function Yv(){try{return!!new window.DOMParser().parseFromString(Oi(""),"text/html")}catch{return!1}}var Qv=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function ki(e){return e=String(e),e.match(Qv)?e:"unsafe:"+e}function ht(e){let t={};for(let n of e.split(","))t[n]=!0;return t}function Mr(...e){let t={};for(let n of e)for(let r in n)n.hasOwnProperty(r)&&(t[r]=!0);return t}var pp=ht("area,br,col,hr,img,wbr"),hp=ht("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),gp=ht("rp,rt"),Kv=Mr(gp,hp),Jv=Mr(hp,ht("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Xv=Mr(gp,ht("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),ld=Mr(pp,Jv,Xv,Kv),mp=ht("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),eD=ht("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),tD=ht("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),nD=Mr(mp,eD,tD),rD=ht("script,style,template"),$a=class{sanitizedSomething=!1;buf=[];sanitizeChildren(t){let n=t.firstChild,r=!0,o=[];for(;n;){if(n.nodeType===Node.ELEMENT_NODE?r=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,r&&n.firstChild){o.push(n),n=sD(n);continue}for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let i=iD(n);if(i){n=i;break}n=o.pop()}}return this.buf.join("")}startElement(t){let n=dd(t).toLowerCase();if(!ld.hasOwnProperty(n))return this.sanitizedSomething=!0,!rD.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);let r=t.attributes;for(let o=0;o"),!0}endElement(t){let n=dd(t).toLowerCase();ld.hasOwnProperty(n)&&!pp.hasOwnProperty(n)&&(this.buf.push(""))}chars(t){this.buf.push(fd(t))}};function oD(e,t){return(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function iD(e){let t=e.nextSibling;if(t&&e!==t.previousSibling)throw yp(t);return t}function sD(e){let t=e.firstChild;if(t&&oD(e,t))throw yp(t);return t}function dd(e){let t=e.nodeName;return typeof t=="string"?t:"FORM"}function yp(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}var aD=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,cD=/([^\#-~ |!])/g;function fd(e){return e.replace(/&/g,"&").replace(aD,function(t){let n=t.charCodeAt(0),r=t.charCodeAt(1);return"&#"+((n-55296)*1024+(r-56320)+65536)+";"}).replace(cD,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}var Fo;function nu(e,t){let n=null;try{Fo=Fo||Zv(e);let r=t?String(t):"";n=Fo.getInertBodyElement(r);let o=5,i=r;do{if(o===0)throw new Error("Failed to sanitize html because the input is unstable");o--,r=i,i=n.innerHTML,n=Fo.getInertBodyElement(r)}while(r!==i);let a=new $a().sanitizeChildren(pd(n)||n);return Oi(a)}finally{if(n){let r=pd(n)||n;for(;r.firstChild;)r.firstChild.remove()}}}function pd(e){return"content"in e&&uD(e)?e.content:null}function uD(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName==="TEMPLATE"}var lD=/^>|^->||--!>|)/g,fD="\u200B$1\u200B";function pD(e){return e.replace(lD,t=>t.replace(dD,fD))}function hD(e,t){return e.createText(t)}function gD(e,t,n){e.setValue(t,n)}function mD(e,t){return e.createComment(pD(t))}function vp(e,t,n){return e.createElement(t,n)}function ii(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Dp(e,t,n){e.appendChild(t,n)}function hd(e,t,n,r,o){r!==null?ii(e,t,n,r,o):Dp(e,t,n)}function yD(e,t,n){e.removeChild(null,t,n)}function vD(e,t,n){e.setAttribute(t,"style",n)}function DD(e,t,n){n===""?e.removeAttribute(t,"class"):e.setAttribute(t,"class",n)}function Ep(e,t,n){let{mergedAttrs:r,classes:o,styles:i}=n;r!==null&&ov(e,t,r),o!==null&&DD(e,t,o),i!==null&&vD(e,t,i)}var Te=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(Te||{});function rR(e){let t=ru();return t?cd(t.sanitize(Te.HTML,e)||""):pt(e,"HTML")?cd(xe(e)):nu(tp(),Bt(e))}function ED(e){let t=ru();return t?t.sanitize(Te.URL,e)||"":pt(e,"URL")?xe(e):ki(Bt(e))}function wD(e){let t=ru();if(t)return ud(t.sanitize(Te.RESOURCE_URL,e)||"");if(pt(e,"ResourceURL"))return ud(xe(e));throw new v(904,!1)}function ID(e,t){return t==="src"&&(e==="embed"||e==="frame"||e==="iframe"||e==="media"||e==="script")||t==="href"&&(e==="base"||e==="link")?wD:ED}function oR(e,t,n){return ID(t,n)(e)}function ru(){let e=_();return e&&e[at].sanitizer}function wp(e){return e instanceof Function?e():e}function bD(e,t,n){let r=e.length;for(;;){let o=e.indexOf(t,n);if(o===-1)return o;if(o===0||e.charCodeAt(o-1)<=32){let i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}var Ip="ng-template";function CD(e,t,n,r){let o=0;if(r){for(;o-1){let i;for(;++oi?f="":f=o[l+1].toLowerCase(),r&2&&u!==f){if(Fe(r))return!1;s=!0}}}}return Fe(r)||s}function Fe(e){return(e&1)===0}function TD(e,t,n,r){if(t===null)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else r&8?o+="."+s:r&4&&(o+=" "+s);else o!==""&&!Fe(s)&&(t+=gd(i,o),o=""),r=s,i=i||!Fe(r);n++}return o!==""&&(t+=gd(i,o)),t}function OD(e){return e.map(RD).join(",")}function kD(e){let t=[],n=[],r=1,o=2;for(;rQ&&Mp(e,t,Q,!1),V(s?2:0,o),n(r,o)}finally{qt(i),V(s?3:1,o)}}function Pi(e,t,n){$D(e,t,n),(n.flags&64)===64&&zD(e,t,n)}function cu(e,t,n=et){let r=t.localNames;if(r!==null){let o=t.index+1;for(let i=0;inull;function HD(e){return e==="class"?"className":e==="for"?"htmlFor":e==="formaction"?"formAction":e==="innerHtml"?"innerHTML":e==="readonly"?"readOnly":e==="tabindex"?"tabIndex":e}function Tr(e,t,n,r,o,i,s,a){if(!a&&lu(t,e,n,r,o)){An(t)&&UD(n,t.index);return}if(t.type&3){let c=et(t,n);r=HD(r),o=s!=null?s(o,t.value||"",r):o,i.setProperty(c,r,o)}else t.type&12}function UD(e,t){let n=Ye(t,e);n[T]&16||(n[T]|=64)}function $D(e,t,n){let r=n.directiveStart,o=n.directiveEnd;An(n)&&LD(t,n,e.data[r+n.componentOffset]),e.firstCreatePass||ti(n,t);let i=n.initialInputs;for(let s=r;s=0?r[a]():r[-a].unsubscribe(),s+=2}else{let a=r[n[s+1]];n[s].call(a)}r!==null&&(t[Zo]=null);let o=t[Et];if(o!==null){t[Et]=null;for(let s=0;s{On(e.lView)},consumerOnSignalRead(){this.lView[Se]=this}});function yE(e){let t=e[Se]??Object.create(vE);return t.lView=e,t}var vE=oe(G({},an),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:e=>{let t=Wt(e.lView);for(;t&&!Fp(t[N]);)t=Wt(t);t&&hf(t)},consumerOnSignalRead(){this.lView[Se]=this}});function Fp(e){return e.type!==2}function Pp(e){if(e[zt]===null)return;let t=!0;for(;t;){let n=!1;for(let r of e[zt])r.dirty&&(n=!0,r.zone===null||Zone.current===r.zone?r.run():r.zone.run(()=>r.run()));t=n&&!!(e[T]&8192)}}var DE=100;function Lp(e,t=!0,n=0){let o=e[at].rendererFactory,i=!1;i||o.begin?.();try{EE(e,n)}catch(s){throw t&&QD(e,s),s}finally{i||o.end?.()}}function EE(e,t){let n=vf();try{Ko(!0),Wa(e,t);let r=0;for(;Si(e);){if(r===DE)throw new v(103,!1);r++,Wa(e,1)}}finally{Ko(n)}}function wE(e,t,n,r){if(Rn(t))return;let o=t[T],i=!1,s=!1;$c(t);let a=!0,c=null,u=null;i||(Fp(e)?(u=pE(t),c=Jn(u)):Ms()===null?(a=!1,u=yE(t),c=Jn(u)):t[Se]&&(Xn(t[Se]),t[Se]=null));try{pf(t),Wy(e.bindingStartIndex),n!==null&&Tp(e,t,n,2,r);let l=(o&3)===3;if(!i)if(l){let d=e.preOrderCheckHooks;d!==null&&Vo(t,d,null)}else{let d=e.preOrderHooks;d!==null&&Bo(t,d,0,null),ra(t,0)}if(s||IE(t),Pp(t),jp(t,0),e.contentQueries!==null&&sp(e,t),!i)if(l){let d=e.contentCheckHooks;d!==null&&Vo(t,d)}else{let d=e.contentHooks;d!==null&&Bo(t,d,1),ra(t,1)}CE(e,t);let f=e.components;f!==null&&Bp(t,f,0);let p=e.viewQuery;if(p!==null&&Fa(2,p,r),!i)if(l){let d=e.viewCheckHooks;d!==null&&Vo(t,d)}else{let d=e.viewHooks;d!==null&&Bo(t,d,2),ra(t,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),t[na]){for(let d of t[na])d();t[na]=null}i||(Op(t),t[T]&=-73)}catch(l){throw i||On(t),l}finally{u!==null&&(Yr(u,c),a&&gE(u)),zc()}}function jp(e,t){for(let n=Kf(e);n!==null;n=Jf(n))for(let r=ce;r0&&(e[n-1][Le]=r[Le]);let i=Wo(e,ce+t);tE(r[N],r);let s=i[ct];s!==null&&s.detachView(i[N]),r[ue]=null,r[Le]=null,r[T]&=-129}return r}function _E(e,t,n,r){let o=ce+r,i=n.length;r>0&&(n[o-1][Le]=t),r-1&&(Dr(t,r),Wo(n,r))}this._attachedToViewContainer=!1}Li(this._lView[N],this._lView)}onDestroy(t){gf(this._lView,t)}markForCheck(){mu(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[T]&=-129}reattach(){ba(this._lView),this._lView[T]|=128}detectChanges(){this._lView[T]|=1024,Lp(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new v(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let t=Qo(this._lView),n=this._lView[$t];n!==null&&!t&&hu(n,this._lView),Sp(this._lView[N],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new v(902,!1);this._appRef=t;let n=Qo(this._lView),r=this._lView[$t];r!==null&&!n&&zp(r,this._lView),ba(this._lView)}};var Qt=(()=>{class e{static __NG_ELEMENT_ID__=SE}return e})(),ME=Qt,TE=class extends ME{_declarationLView;_declarationTContainer;elementRef;constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,n){return this.createEmbeddedViewImpl(t,n)}createEmbeddedViewImpl(t,n,r){let o=Sr(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:n,dehydratedView:r});return new Er(o)}};function SE(){return Bi(le(),_())}function Bi(e,t){return e.type&4?new TE(t,e,Pn(e,t)):null}function Bn(e,t,n,r,o){let i=e.data[t];if(i===null)i=NE(e,t,n,r,o),qy()&&(i.flags|=32);else if(i.type&64){i.type=n,i.value=r,i.attrs=o;let s=$y();i.injectorIndex=s===null?-1:s.injectorIndex}return Ct(i,!0),i}function NE(e,t,n,r,o){let i=yf(),s=Vc(),a=s?i:i&&i.parent,c=e.data[t]=AE(e,a,n,t,r,o);return xE(e,c,i,s),c}function xE(e,t,n,r){e.firstChild===null&&(e.firstChild=t),n!==null&&(r?n.child==null&&t.parent!==null&&(n.child=t):n.next===null&&(n.next=t,t.prev=n))}function AE(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return mf()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var cR=new RegExp(`^(\\d+)*(${Fv}|${kv})*(.*)`);var RE=()=>null;function Mn(e,t){return RE(e,t)}var OE=class{},Gp=class{},qa=class{resolveComponentFactory(t){throw Error(`No component factory found for ${De(t)}.`)}},Hi=class{static NULL=new qa},Tn=class{},Ui=(()=>{class e{destroyNode=null;static __NG_ELEMENT_ID__=()=>kE()}return e})();function kE(){let e=_(),t=le(),n=Ye(t.index,e);return(wt(n)?n:e)[U]}var FE=(()=>{class e{static \u0275prov=M({token:e,providedIn:"root",factory:()=>null})}return e})();var sa={},Za=class{injector;parentInjector;constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=Ei(r);let o=this.injector.get(t,sa,r);return o!==sa||n===sa?o:this.parentInjector.get(t,n,r)}};function Ya(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(t!==null)for(let s=0;s0&&(n.directiveToIndex=new Map);for(let p=0;p0;){let n=e[--t];if(typeof n=="number"&&n<0)return n}return 0}function GE(e,t,n){if(n){if(t.exportAs)for(let r=0;r{let[n,r,o]=e[t],i={propName:n,templateName:t,isSignal:(r&Fi.SignalBased)!==0};return o&&(i.transform=o),i})}function ZE(e){return Object.keys(e).map(t=>({propName:e[t],templateName:t}))}function YE(e,t,n){let r=t instanceof qe?t:t?.injector;return r&&e.getStandaloneInjector!==null&&(r=e.getStandaloneInjector(r)||r),r?new Za(n,r):n}function QE(e){let t=e.get(Tn,null);if(t===null)throw new v(407,!1);let n=e.get(FE,null),r=e.get(Yt,null);return{rendererFactory:t,sanitizer:n,changeDetectionScheduler:r}}function KE(e,t){let n=(e.selectors[0][0]||"div").toLowerCase();return vp(t,n,n==="svg"?lf:n==="math"?Ay:null)}var Kt=class extends Gp{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=qE(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=ZE(this.componentDef.outputs),this.cachedOutputs}constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=OD(t.selectors),this.ngContentSelectors=t.ngContentSelectors??[],this.isBoundToModule=!!n}create(t,n,r,o){V(22);let i=O(null);try{let s=this.componentDef,a=r?["ng-version","19.2.17"]:kD(this.componentDef.selectors[0]),c=iu(0,null,null,1,0,null,null,null,null,[a],null),u=YE(s,o||this.ngModule,t),l=QE(u),f=l.rendererFactory.createRenderer(null,s),p=r?jD(f,r,s.encapsulation,u):KE(s,f),d=su(null,c,null,512|Cp(s),null,null,l,f,u,null,ip(p,u,!0));d[Q]=p,$c(d);let h=null;try{let g=qp(Q,c,d,"#host",()=>[this.componentDef],!0,0);p&&(Ep(f,p,g),Ln(p,d)),Pi(c,d,g),tu(c,g,d),Zp(c,g),n!==void 0&&JE(g,this.ngContentSelectors,n),h=Ye(g.index,d),d[te]=h[te],du(c,d,null)}catch(g){throw h!==null&&Ra(h),Ra(d),g}finally{V(23),zc()}return new Qa(this.componentType,d)}finally{O(i)}}},Qa=class extends OE{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(t,n){super(),this._rootLView=n,this._tNode=Oc(n[N],Q),this.location=Pn(this._tNode,n),this.instance=Ye(this._tNode.index,n)[te],this.hostView=this.changeDetectorRef=new Er(n,void 0,!1),this.componentType=t}setInput(t,n){let r=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(t)&&Object.is(this.previousInputValues.get(t),n))return;let o=this._rootLView,i=lu(r,o[N],o,t,n);this.previousInputValues.set(t,n);let s=Ye(r.index,o);mu(s,1)}get injector(){return new Vt(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}};function JE(e,t,n){let r=e.projection=[];for(let o=0;o{class e{static __NG_ELEMENT_ID__=XE}return e})();function XE(){let e=le();return Qp(e,_())}var ew=tn,Yp=class extends ew{_lContainer;_hostTNode;_hostLView;constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return Pn(this._hostTNode,this._hostLView)}get injector(){return new Vt(this._hostTNode,this._hostLView)}get parentInjector(){let t=Wc(this._hostTNode,this._hostLView);if(Sf(t)){let n=Xo(t,this._hostLView),r=Jo(t),o=n[N].data[r+8];return new Vt(o,n)}else return new Vt(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){let n=Ed(this._lContainer);return n!==null&&n[t]||null}get length(){return this._lContainer.length-ce}createEmbeddedView(t,n,r){let o,i;typeof r=="number"?o=r:r!=null&&(o=r.index,i=r.injector);let s=Mn(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(n||{},i,s);return this.insertImpl(a,o,_n(this._hostTNode,s)),a}createComponent(t,n,r,o,i){let s=t&&!Ty(t),a;if(s)a=n;else{let h=n||{};a=h.index,r=h.injector,o=h.projectableNodes,i=h.environmentInjector||h.ngModuleRef}let c=s?t:new Kt(It(t)),u=r||this.parentInjector;if(!i&&c.ngModule==null){let g=(s?u:this.parentInjector).get(qe,null);g&&(i=g)}let l=It(c.componentType??{}),f=Mn(this._lContainer,l?.id??null),p=f?.firstChild??null,d=c.create(u,o,p,i);return this.insertImpl(d.hostView,a,_n(this._hostTNode,f)),d}insert(t,n){return this.insertImpl(t,n,!0)}insertImpl(t,n,r){let o=t._lView;if(ky(o)){let a=this.indexOf(t);if(a!==-1)this.detach(a);else{let c=o[ue],u=new Yp(c,c[Ee],c[ue]);u.detach(u.indexOf(t))}}let i=this._adjustIndex(n),s=this._lContainer;return Nr(s,o,i,r),t.attachToViewContainerRef(),Yd(aa(s),i,t),t}move(t,n){return this.insert(t,n)}indexOf(t){let n=Ed(this._lContainer);return n!==null?n.indexOf(t):-1}remove(t){let n=this._adjustIndex(t,-1),r=Dr(this._lContainer,n);r&&(Wo(aa(this._lContainer),n),Li(r[N],r))}detach(t){let n=this._adjustIndex(t,-1),r=Dr(this._lContainer,n);return r&&Wo(aa(this._lContainer),n)!=null?new Er(r):null}_adjustIndex(t,n=0){return t??this.length+n}};function Ed(e){return e[Yo]}function aa(e){return e[Yo]||(e[Yo]=[])}function Qp(e,t){let n,r=t[e.index];return dt(r)?n=r:(n=Hp(r,t,null,e),t[e.index]=n,au(t,n)),nw(n,t,e,r),new Yp(n,e,t)}function tw(e,t){let n=e[U],r=n.createComment(""),o=et(t,e),i=n.parentNode(o);return ii(n,i,r,n.nextSibling(o),!1),r}var nw=iw,rw=()=>!1;function ow(e,t,n){return rw(e,t,n)}function iw(e,t,n,r){if(e[Gt])return;let o;n.type&8?o=Ze(r):o=tw(t,n),e[Gt]=o}var Ka=class e{queryList;matches=null;constructor(t){this.queryList=t}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},Ja=class e{queries;constructor(t=[]){this.queries=t}createEmbeddedView(t){let n=t.queries;if(n!==null){let r=t.contentQueries!==null?t.contentQueries[0]:n.length,o=[];for(let i=0;i0)r.push(s[a/2]);else{let u=i[a+1],l=t[-c];for(let f=ce;ft.trim())}function eh(e,t,n){e.queries===null&&(e.queries=new Xa),e.queries.track(new ec(t,n))}function fw(e,t){let n=e.contentQueries||(e.contentQueries=[]),r=n.length?n[n.length-1]:-1;t!==r&&n.push(e.queries.length-1,t)}function Du(e,t){return e.queries.getByIndex(t)}function th(e,t){let n=e[N],r=Du(n,t);return r.crossesNgTemplate?tc(n,e,t,[]):Kp(n,e,r,t)}function nh(e,t,n){let r,o=Xr(()=>{r._dirtyCounter();let i=mw(r,e);if(t&&i===void 0)throw new v(-951,!1);return i});return r=o[me],r._dirtyCounter=Ri(0),r._flatValue=void 0,o}function pw(e){return nh(!0,!1,e)}function hw(e){return nh(!0,!0,e)}function gw(e,t){let n=e[me];n._lView=_(),n._queryIndex=t,n._queryList=vu(n._lView,t),n._queryList.onDirty(()=>n._dirtyCounter.update(r=>r+1))}function mw(e,t){let n=e._lView,r=e._queryIndex;if(n===void 0||r===void 0||n[T]&4)return t?void 0:ge;let o=vu(n,r),i=th(n,r);return o.reset(i,Wf),t?o.first:o._changesDetected||e._flatValue===void 0?e._flatValue=o.toArray():e._flatValue}function wd(e,t){return pw(t)}function yw(e,t){return hw(t)}var hR=(wd.required=yw,wd);function vw(e){let t=[],n=new Map;function r(o){let i=n.get(o);if(!i){let s=e(o);n.set(o,i=s.then(Iw))}return i}return ui.forEach((o,i)=>{let s=[];o.templateUrl&&s.push(r(o.templateUrl).then(u=>{o.template=u}));let a=typeof o.styles=="string"?[o.styles]:o.styles||[];if(o.styles=a,o.styleUrl&&o.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(o.styleUrls?.length){let u=o.styles.length,l=o.styleUrls;o.styleUrls.forEach((f,p)=>{a.push(""),s.push(r(f).then(d=>{a[u+p]=d,l.splice(l.indexOf(f),1),l.length==0&&(o.styleUrls=void 0)}))})}else o.styleUrl&&s.push(r(o.styleUrl).then(u=>{a.push(u),o.styleUrl=void 0}));let c=Promise.all(s).then(()=>bw(i));t.push(c)}),Ew(),Promise.all(t).then(()=>{})}var ui=new Map,Dw=new Set;function Ew(){let e=ui;return ui=new Map,e}function ww(){return ui.size===0}function Iw(e){return typeof e=="string"?e:e.text()}function bw(e){Dw.delete(e)}var Sn=class{},Cw=class{};var li=class extends Sn{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new ai(this);constructor(t,n,r,o=!0){super(),this.ngModuleType=t,this._parent=n;let i=Jd(t);this._bootstrapComponents=wp(i.bootstrap),this._r3Injector=Vf(t,n,[{provide:Sn,useValue:this},{provide:Hi,useValue:this.componentFactoryResolver},...r],De(t),new Set(["environment"])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}},di=class extends Cw{moduleType;constructor(t){super(),this.moduleType=t}create(t){return new li(this.moduleType,t,[])}};function _w(e,t,n){return new li(e,t,n,!1)}var nc=class extends Sn{injector;componentFactoryResolver=new ai(this);instance=null;constructor(t){super();let n=new gr([...t.providers,{provide:Sn,useValue:this},{provide:Hi,useValue:this.componentFactoryResolver}],t.parent||Ci(),t.debugName,new Set(["environment"]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}};function Mw(e,t,n=null){return new nc({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}var Tw=(()=>{class e{_injector;cachedInjectors=new Map;constructor(n){this._injector=n}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){let r=Xd(!1,n.type),o=r.length>0?Mw([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,o)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(let n of this.cachedInjectors.values())n!==null&&n.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=M({token:e,providedIn:"environment",factory:()=>new e(b(qe))})}return e})();function yR(e){return br(()=>{let t=rh(e),n=oe(G({},t),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Yf.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?o=>o.get(Tw).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Ke.Emulated,styles:e.styles||ge,_:null,schemas:e.schemas||null,tView:null,id:""});t.standalone&&Vn("NgStandalone"),oh(n);let r=e.dependencies;return n.directiveDefs=Id(r,!1),n.pipeDefs=Id(r,!0),n.id=Rw(n),n})}function Sw(e){return It(e)||hy(e)}function Nw(e){return e!==null}function gt(e){return br(()=>({type:e.type,bootstrap:e.bootstrap||ge,declarations:e.declarations||ge,imports:e.imports||ge,exports:e.exports||ge,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function xw(e,t){if(e==null)return Ut;let n={};for(let r in e)if(e.hasOwnProperty(r)){let o=e[r],i,s,a,c;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i,c=o[3]||null):(i=o,s=o,a=Fi.None,c=null),n[i]=[r,a,c],t[i]=s}return n}function Aw(e){if(e==null)return Ut;let t={};for(let n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function Be(e){return br(()=>{let t=rh(e);return oh(t),t})}function $i(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function rh(e){let t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputConfig:e.inputs||Ut,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||ge,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:xw(e.inputs,t),outputs:Aw(e.outputs),debugInfo:null}}function oh(e){e.features?.forEach(t=>t(e))}function Id(e,t){if(!e)return null;let n=t?gy:Sw;return()=>(typeof e=="function"?e():e).map(r=>n(r)).filter(Nw)}function Rw(e){let t=0,n=typeof e.consts=="function"?"":e.consts,r=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,n,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery];for(let i of r.join("|"))t=Math.imul(31,t)+i.charCodeAt(0)<<0;return t+=2147483648,"c"+t}function Ow(e){return Object.getPrototypeOf(e.prototype).constructor}function Eu(e){let t=Ow(e.type),n=!0,r=[e];for(;t;){let o;if(je(e))o=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new v(903,!1);o=t.\u0275dir}if(o){if(n){r.push(o);let s=e;s.inputs=ca(e.inputs),s.declaredInputs=ca(e.declaredInputs),s.outputs=ca(e.outputs);let a=o.hostBindings;a&&jw(e,a);let c=o.viewQuery,u=o.contentQueries;if(c&&Pw(e,c),u&&Lw(e,u),kw(e,o),Wm(e.outputs,o.outputs),je(o)&&o.data.animation){let l=e.data;l.animation=(l.animation||[]).concat(o.data.animation)}}let i=o.features;if(i)for(let s=0;s=0;r--){let o=e[r];o.hostVars=t+=o.hostVars,o.hostAttrs=Cn(o.hostAttrs,n=Cn(n,o.hostAttrs))}}function ca(e){return e===Ut?{}:e===ge?[]:e}function Pw(e,t){let n=e.viewQuery;n?e.viewQuery=(r,o)=>{t(r,o),n(r,o)}:e.viewQuery=t}function Lw(e,t){let n=e.contentQueries;n?e.contentQueries=(r,o,i)=>{t(r,o,i),n(r,o,i)}:e.contentQueries=t}function jw(e,t){let n=e.hostBindings;n?e.hostBindings=(r,o)=>{t(r,o),n(r,o)}:e.hostBindings=t}function ih(e){return wu(e)?Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e:!1}function Vw(e,t){if(Array.isArray(e))for(let n=0;n{class e{log(n){console.log(n)}warn(n){console.warn(n)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();var bu=new E(""),xr=new E(""),zi=(()=>{class e{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(n,r,o){this._ngZone=n,this.registry=r,Nc()&&(this._destroyRef=m(Fn,{optional:!0})??void 0),Cu||(Ww(o),o.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let n=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),r=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{z.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{n.unsubscribe(),r.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb()}});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>r.updateCb&&r.updateCb(n)?(clearTimeout(r.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n()},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}static \u0275fac=function(r){return new(r||e)(b(z),b(Gi),b(xr))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),Gi=(()=>{class e{_applications=new Map;registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return Cu?.findTestabilityInTree(this,n,r)??null}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function Ww(e){Cu=e}var Cu,ah=(()=>{class e{static \u0275prov=M({token:e,providedIn:"root",factory:()=>new rc})}return e})(),rc=class{queuedEffectCount=0;queues=new Map;schedule(t){this.enqueue(t)}remove(t){let n=t.zone,r=this.queues.get(n);r.has(t)&&(r.delete(t),this.queuedEffectCount--)}enqueue(t){let n=t.zone;this.queues.has(n)||this.queues.set(n,new Set);let r=this.queues.get(n);r.has(t)||(this.queuedEffectCount++,r.add(t))}flush(){for(;this.queuedEffectCount>0;)for(let[t,n]of this.queues)t===null?this.flushQueue(n):t.run(()=>this.flushQueue(n))}flushQueue(t){for(let n of t)t.delete(n),this.queuedEffectCount--,n.run()}};function Wi(e){return!!e&&typeof e.then=="function"}function _u(e){return!!e&&typeof e.subscribe=="function"}var ch=new E("");function vR(e){return Ii([{provide:ch,multi:!0,useValue:e}])}var uh=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r});appInits=m(ch,{optional:!0})??[];injector=m(_e);constructor(){}runInitializers(){if(this.initialized)return;let n=[];for(let o of this.appInits){let i=_i(this.injector,o);if(Wi(i))n.push(i);else if(_u(i)){let s=new Promise((a,c)=>{i.subscribe({complete:a,error:c})});n.push(s)}}let r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),n.length===0&&r(),this.initialized=!0}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),qw=new E("");function Zw(){xs(()=>{throw new v(600,!1)})}function Yw(e){return e.isBoundToModule}var Qw=10;function lh(e,t){return Array.isArray(t)?t.reduce(lh,e):G(G({},e),t)}var Jt=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=m(Cv);afterRenderManager=m(rp);zonelessEnabled=m(qc);rootEffectScheduler=m(ah);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new ye;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=m(en).hasPendingTasks.pipe(ne(n=>!n));constructor(){m(jn,{optional:!0})}whenStable(){let n;return new Promise(r=>{n=this.isStable.subscribe({next:o=>{o&&r()}})}).finally(()=>{n.unsubscribe()})}_injector=m(qe);_rendererFactory=null;get injector(){return this._injector}bootstrap(n,r){return this.bootstrapImpl(n,r)}bootstrapImpl(n,r,o=_e.NULL){V(10);let i=n instanceof Gp;if(!this._injector.get(uh).done){let d="";throw new v(405,d)}let a;i?a=n:a=this._injector.get(Hi).resolveComponentFactory(n),this.componentTypes.push(a.componentType);let c=Yw(a)?void 0:this._injector.get(Sn),u=r||a.selector,l=a.create(o,[],u,c),f=l.location.nativeElement,p=l.injector.get(bu,null);return p?.registerApplication(f),l.onDestroy(()=>{this.detachView(l.hostView),Uo(this.components,l),p?.unregisterApplication(f)}),this._loadComponent(l),V(11,l),l}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){V(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(Xc.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new v(101,!1);let n=O(null);try{this._runningTick=!0,this.synchronize()}catch(r){this.internalErrorHandler(r)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,O(n),this.afterTick.next(),V(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Tn,null,{optional:!0}));let n=0;for(;this.dirtyFlags!==0&&n++Si(n))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(n){let r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){let r=n;Uo(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(qw,[]).forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Uo(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new v(406,!1);let n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Uo(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function Kw(e,t,n,r){if(!n&&!Si(e))return;Lp(e,t,n&&!r?0:1)}function Jw(e,t,n,r){let o=_(),i=_t();if(Me(o,i,t)){let s=B(),a=kn();WD(a,o,e,t,n,r)}return Jw}function Mu(e,t,n,r){return Me(e,_t(),n)?t+Bt(n)+r:we}function Xw(e,t,n,r,o,i){let s=Gy(),a=sh(e,s,n,o);return Hc(2),a?t+Bt(n)+r+Bt(o)+i:we}function Po(e,t){return e<<17|t<<2}function Xt(e){return e>>17&32767}function eI(e){return(e&2)==2}function tI(e,t){return e&131071|t<<17}function oc(e){return e|2}function Nn(e){return(e&131068)>>2}function ua(e,t){return e&-131069|t<<2}function nI(e){return(e&1)===1}function ic(e){return e|1}function rI(e,t,n,r,o,i){let s=i?t.classBindings:t.styleBindings,a=Xt(s),c=Nn(s);e[r]=n;let u=!1,l;if(Array.isArray(n)){let f=n;l=f[1],(l===null||Cr(f,l)>0)&&(u=!0)}else l=n;if(o)if(c!==0){let p=Xt(e[a+1]);e[r+1]=Po(p,a),p!==0&&(e[p+1]=ua(e[p+1],r)),e[a+1]=tI(e[a+1],r)}else e[r+1]=Po(a,0),a!==0&&(e[a+1]=ua(e[a+1],r)),a=r;else e[r+1]=Po(c,0),a===0?a=r:e[c+1]=ua(e[c+1],r),c=r;u&&(e[r+1]=oc(e[r+1])),bd(e,l,r,!0),bd(e,l,r,!1),oI(t,l,e,r,i),s=Po(a,c),i?t.classBindings=s:t.styleBindings=s}function oI(e,t,n,r,o){let i=o?e.residualClasses:e.residualStyles;i!=null&&typeof t=="string"&&Cr(i,t)>=0&&(n[r+1]=ic(n[r+1]))}function bd(e,t,n,r){let o=e[n+1],i=t===null,s=r?Xt(o):Nn(o),a=!1;for(;s!==0&&(a===!1||i);){let c=e[s],u=e[s+1];iI(c,t)&&(a=!0,e[s+1]=r?ic(u):oc(u)),s=r?Xt(u):Nn(u)}a&&(e[n+1]=r?oc(o):ic(o))}function iI(e,t){return e===null||t==null||(Array.isArray(e)?e[1]:e)===t?!0:Array.isArray(e)&&typeof t=="string"?Cr(e,t)>=0:!1}var Pe={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function sI(e){return e.substring(Pe.key,Pe.keyEnd)}function aI(e){return cI(e),dh(e,fh(e,0,Pe.textEnd))}function dh(e,t){let n=Pe.textEnd;return n===t?-1:(t=Pe.keyEnd=uI(e,Pe.key=t,n),fh(e,t,n))}function cI(e){Pe.key=0,Pe.keyEnd=0,Pe.value=0,Pe.valueEnd=0,Pe.textEnd=e.length}function fh(e,t,n){for(;t32;)t++;return t}function lI(e,t,n){let r=_(),o=_t();if(Me(r,o,t)){let i=B(),s=kn();Tr(i,s,r,e,t,r[U],n,!1)}return lI}function sc(e,t,n,r,o){lu(t,e,n,o?"class":"style",r)}function dI(e,t,n){return hh(e,t,n,!1),dI}function Tu(e,t){return hh(e,t,null,!0),Tu}function DR(e){gh(yI,ph,e,!0)}function ph(e,t){for(let n=aI(t);n>=0;n=dh(t,n))wi(e,sI(t),!0)}function hh(e,t,n,r){let o=_(),i=B(),s=Hc(2);if(i.firstUpdatePass&&yh(i,e,s,r),t!==we&&Me(o,s,t)){let a=i.data[ft()];vh(i,a,o,o[U],e,o[s+1]=DI(t,n),r,s)}}function gh(e,t,n,r){let o=B(),i=Hc(2);o.firstUpdatePass&&yh(o,null,i,r);let s=_();if(n!==we&&Me(s,i,n)){let a=o.data[ft()];if(Dh(a,r)&&!mh(o,i)){let c=r?a.classesWithoutHost:a.stylesWithoutHost;c!==null&&(n=ga(c,n||"")),sc(o,a,s,n,r)}else vI(o,a,s,s[U],s[i+1],s[i+1]=mI(e,t,n),r,i)}}function mh(e,t){return t>=e.expandoStartIndex}function yh(e,t,n,r){let o=e.data;if(o[n+1]===null){let i=o[ft()],s=mh(e,n);Dh(i,r)&&t===null&&!s&&(t=!1),t=fI(o,i,t,r),rI(o,i,t,n,s,r)}}function fI(e,t,n,r){let o=Df(e),i=r?t.residualClasses:t.residualStyles;if(o===null)(r?t.classBindings:t.styleBindings)===0&&(n=la(null,e,t,n,r),n=wr(n,t.attrs,r),i=null);else{let s=t.directiveStylingLast;if(s===-1||e[s]!==o)if(n=la(o,e,t,n,r),i===null){let c=pI(e,t,r);c!==void 0&&Array.isArray(c)&&(c=la(null,e,t,c[1],r),c=wr(c,t.attrs,r),hI(e,t,r,c))}else i=gI(e,t,r)}return i!==void 0&&(r?t.residualClasses=i:t.residualStyles=i),n}function pI(e,t,n){let r=n?t.classBindings:t.styleBindings;if(Nn(r)!==0)return e[Xt(r)]}function hI(e,t,n,r){let o=n?t.classBindings:t.styleBindings;e[Xt(o)]=r}function gI(e,t,n){let r,o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0;){let c=e[o],u=Array.isArray(c),l=u?c[1]:c,f=l===null,p=n[o+1];p===we&&(p=f?ge:void 0);let d=f?ea(p,r):l===r?p:void 0;if(u&&!pi(d)&&(d=ea(c,r)),pi(d)&&(a=d,s))return a;let h=e[o+1];o=s?Xt(h):Nn(h)}if(t!==null){let c=i?t.residualClasses:t.residualStyles;c!=null&&(a=ea(c,r))}return a}function pi(e){return e!==void 0}function DI(e,t){return e==null||e===""||(typeof t=="string"?e=e+t:typeof e=="object"&&(e=De(xe(e)))),e}function Dh(e,t){return(e.flags&(t?8:16))!==0}function ER(e,t,n){let r=_(),o=Mu(r,e,t,n);gh(wi,ph,o,!0)}var ac=class{destroy(t){}updateValue(t,n){}swap(t,n){let r=Math.min(t,n),o=Math.max(t,n),i=this.detach(o);if(o-r>1){let s=this.detach(r);this.attach(r,i),this.attach(o,s)}else this.attach(r,i)}move(t,n){this.attach(n,this.detach(t))}};function da(e,t,n,r,o){return e===n&&Object.is(t,r)?1:Object.is(o(e,t),o(n,r))?-1:0}function EI(e,t,n){let r,o,i=0,s=e.length-1,a=void 0;if(Array.isArray(t)){let c=t.length-1;for(;i<=s&&i<=c;){let u=e.at(i),l=t[i],f=da(i,u,i,l,n);if(f!==0){f<0&&e.updateValue(i,l),i++;continue}let p=e.at(s),d=t[c],h=da(s,p,c,d,n);if(h!==0){h<0&&e.updateValue(s,d),s--,c--;continue}let g=n(i,u),w=n(s,p),x=n(i,l);if(Object.is(x,w)){let ie=n(c,d);Object.is(ie,g)?(e.swap(i,s),e.updateValue(s,d),c--,s--):e.move(s,i),e.updateValue(i,l),i++;continue}if(r??=new hi,o??=Md(e,i,s,n),cc(e,r,i,x))e.updateValue(i,l),i++,s++;else if(o.has(x))r.set(g,e.detach(i)),s--;else{let ie=e.create(i,t[i]);e.attach(i,ie),i++,s++}}for(;i<=c;)_d(e,r,n,i,t[i]),i++}else if(t!=null){let c=t[Symbol.iterator](),u=c.next();for(;!u.done&&i<=s;){let l=e.at(i),f=u.value,p=da(i,l,i,f,n);if(p!==0)p<0&&e.updateValue(i,f),i++,u=c.next();else{r??=new hi,o??=Md(e,i,s,n);let d=n(i,f);if(cc(e,r,i,d))e.updateValue(i,f),i++,s++,u=c.next();else if(!o.has(d))e.attach(i,e.create(i,f)),i++,s++,u=c.next();else{let h=n(i,l);r.set(h,e.detach(i)),s--}}}for(;!u.done;)_d(e,r,n,e.length,u.value),u=c.next()}for(;i<=s;)e.destroy(e.detach(s--));r?.forEach(c=>{e.destroy(c)})}function cc(e,t,n,r){return t!==void 0&&t.has(r)?(e.attach(n,t.get(r)),t.delete(r),!0):!1}function _d(e,t,n,r,o){if(cc(e,t,r,n(r,o)))e.updateValue(r,o);else{let i=e.create(r,o);e.attach(r,i)}}function Md(e,t,n,r){let o=new Set;for(let i=t;i<=n;i++)o.add(r(i,e.at(i)));return o}var hi=class{kvMap=new Map;_vMap=void 0;has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;let n=this.kvMap.get(t);return this._vMap!==void 0&&this._vMap.has(n)?(this.kvMap.set(t,this._vMap.get(n)),this._vMap.delete(n)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,n){if(this.kvMap.has(t)){let r=this.kvMap.get(t);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(r);)r=o.get(r);o.set(r,n)}else this.kvMap.set(t,n)}forEach(t){for(let[n,r]of this.kvMap)if(t(r,n),this._vMap!==void 0){let o=this._vMap;for(;o.has(r);)r=o.get(r),t(r,n)}}};function wR(e,t){Vn("NgControlFlow");let n=_(),r=_t(),o=n[r]!==we?n[r]:-1,i=o!==-1?gi(n,Q+o):void 0,s=0;if(Me(n,r,e)){let a=O(null);try{if(i!==void 0&&$p(i,s),e!==-1){let c=Q+e,u=gi(n,c),l=fc(n[N],c),f=Mn(u,l.tView.ssrId),p=Sr(n,l,t,{dehydratedView:f});Nr(u,p,s,_n(l,f))}}finally{O(a)}}else if(i!==void 0){let a=Up(i,s);a!==void 0&&(a[te]=t)}}var uc=class{lContainer;$implicit;$index;constructor(t,n,r){this.lContainer=t,this.$implicit=n,this.$index=r}get $count(){return this.lContainer.length-ce}};function IR(e,t){return t}var lc=class{hasEmptyBlock;trackByFn;liveCollection;constructor(t,n,r){this.hasEmptyBlock=t,this.trackByFn=n,this.liveCollection=r}};function bR(e,t,n,r,o,i,s,a,c,u,l,f,p){Vn("NgControlFlow");let d=_(),h=B(),g=c!==void 0,w=_(),x=a?s.bind(w[Ce][te]):s,ie=new lc(g,x);w[Q+e]=ie,fi(d,h,e+1,t,n,r,o,bt(h.consts,i)),g&&fi(d,h,e+2,c,u,l,f,bt(h.consts,p))}var dc=class extends ac{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(t,n,r){super(),this.lContainer=t,this.hostLView=n,this.templateTNode=r}get length(){return this.lContainer.length-ce}at(t){return this.getLView(t)[te].$implicit}attach(t,n){let r=n[wn];this.needsIndexUpdate||=t!==this.length,Nr(this.lContainer,n,t,_n(this.templateTNode,r))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,wI(this.lContainer,t)}create(t,n){let r=Mn(this.lContainer,this.templateTNode.tView.ssrId),o=Sr(this.hostLView,this.templateTNode,new uc(this.lContainer,n,t),{dehydratedView:r});return this.operationsCounter?.recordCreate(),o}destroy(t){Li(t[N],t),this.operationsCounter?.recordDestroy()}updateValue(t,n){this.getLView(t)[te].$implicit=n}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t(Ai(!0),vp(r,o,Xy()));function _I(e,t,n,r,o){let i=t.consts,s=bt(i,r),a=Bn(t,e,8,"ng-container",s);s!==null&&Ya(a,s,!0);let c=bt(i,o);return jc()&&yu(t,n,a,c,uu),a.mergedAttrs=Cn(a.mergedAttrs,a.attrs),t.queries!==null&&t.queries.elementStart(t,a),a}function Ih(e,t,n){let r=_(),o=B(),i=e+Q,s=o.firstCreatePass?_I(i,o,r,t,n):o.data[i];Ct(s,!0);let a=TI(o,r,s,e);return r[i]=a,xi()&&ji(o,r,a,s),Ln(a,r),Ti(s)&&(Pi(o,r,s),tu(o,s,r)),n!=null&&cu(r,s),Ih}function bh(){let e=le(),t=B();return Vc()?Bc():(e=e.parent,Ct(e,!1)),t.firstCreatePass&&(Gc(t,e),Rc(e)&&t.queries.elementEnd(e)),bh}function MI(e,t,n){return Ih(e,t,n),bh(),MI}var TI=(e,t,n,r)=>(Ai(!0),mD(t[U],""));function _R(){return _()}function SI(e,t,n){let r=_(),o=_t();if(Me(r,o,t)){let i=B(),s=kn();Tr(i,s,r,e,t,r[U],n,!0)}return SI}function NI(e,t,n){let r=_(),o=_t();if(Me(r,o,t)){let i=B(),s=kn(),a=Df(i.data),c=YD(a,s,r);Tr(i,s,r,e,t,c,n,!0)}return NI}var Lt=void 0;function xI(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\.?/,"").length;return t===1&&n===0?1:5}var AI=["en",[["a","p"],["AM","PM"],Lt],[["AM","PM"],Lt,Lt],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Lt,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Lt,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Lt,"{1} 'at' {0}",Lt],[".",",",";","%","+","-","E","\xD7","\u2030","\u221E","NaN",":"],["#,##0.###","#,##0%","\xA4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",xI],fa={};function Ae(e){let t=RI(e),n=Td(t);if(n)return n;let r=t.split("-")[0];if(n=Td(r),n)return n;if(r==="en")return AI;throw new v(701,!1)}function Td(e){return e in fa||(fa[e]=re.ng&&re.ng.common&&re.ng.common.locales&&re.ng.common.locales[e]),fa[e]}var W=function(e){return e[e.LocaleId=0]="LocaleId",e[e.DayPeriodsFormat=1]="DayPeriodsFormat",e[e.DayPeriodsStandalone=2]="DayPeriodsStandalone",e[e.DaysFormat=3]="DaysFormat",e[e.DaysStandalone=4]="DaysStandalone",e[e.MonthsFormat=5]="MonthsFormat",e[e.MonthsStandalone=6]="MonthsStandalone",e[e.Eras=7]="Eras",e[e.FirstDayOfWeek=8]="FirstDayOfWeek",e[e.WeekendRange=9]="WeekendRange",e[e.DateFormat=10]="DateFormat",e[e.TimeFormat=11]="TimeFormat",e[e.DateTimeFormat=12]="DateTimeFormat",e[e.NumberSymbols=13]="NumberSymbols",e[e.NumberFormats=14]="NumberFormats",e[e.CurrencyCode=15]="CurrencyCode",e[e.CurrencySymbol=16]="CurrencySymbol",e[e.CurrencyName=17]="CurrencyName",e[e.Currencies=18]="Currencies",e[e.Directionality=19]="Directionality",e[e.PluralCase=20]="PluralCase",e[e.ExtraData=21]="ExtraData",e}(W||{});function RI(e){return e.toLowerCase().replace(/_/g,"-")}var mi="en-US";var OI=mi;function kI(e){typeof e=="string"&&(OI=e.toLowerCase().replace(/_/g,"-"))}function Sd(e,t,n){return function r(o){if(o===Function)return n;let i=An(e)?Ye(e.index,t):t;mu(i,5);let s=t[te],a=Nd(t,s,n,o),c=r.__ngNextListenerFn__;for(;c;)a=Nd(t,s,c,o)&&a,c=c.__ngNextListenerFn__;return a}}function Nd(e,t,n,r){let o=O(null);try{return V(6,t,n),n(r)!==!1}catch(i){return FI(e,i),!1}finally{V(7,t,n),O(o)}}function FI(e,t){let n=e[In],r=n?n.get(Qe,null):null;r&&r.handleError(t)}function xd(e,t,n,r,o,i){let s=t[n],a=t[N],u=a.data[n].outputs[r],l=s[u],f=a.firstCreatePass?Lc(a):null,p=Pc(t),d=l.subscribe(i),h=p.length;p.push(i,d),f&&f.push(o,e.index,h,-(h+1))}function PI(e,t,n,r){let o=_(),i=B(),s=le();return Ch(i,o,o[U],s,e,t,r),PI}function LI(e,t,n,r){let o=e.cleanup;if(o!=null)for(let i=0;ic?a[c]:null}typeof s=="string"&&(i+=2)}return null}function Ch(e,t,n,r,o,i,s){let a=Ti(r),u=e.firstCreatePass?Lc(e):null,l=Pc(t),f=!0;if(r.type&3||s){let p=et(r,t),d=s?s(p):p,h=l.length,g=s?x=>s(Ze(x[r.index])):r.index,w=null;if(!s&&a&&(w=LI(e,t,o,r.index)),w!==null){let x=w.__ngLastListenerFn__||w;x.__ngNextListenerFn__=i,w.__ngLastListenerFn__=i,f=!1}else{i=Sd(r,t,i),zv(t,d,o,i);let x=n.listen(d,o,i);l.push(i,x),u&&u.push(o,g,h,h+1)}}else i=Sd(r,t,i);if(f){let p=r.outputs?.[o],d=r.hostDirectiveOutputs?.[o];if(d&&d.length)for(let h=0;h(Ai(!0),hD(t[U],r));function UI(e){return Mh("",e,""),UI}function Mh(e,t,n){let r=_(),o=Mu(r,e,t,n);return o!==we&&Th(r,ft(),o),Mh}function $I(e,t,n,r,o){let i=_(),s=Xw(i,e,t,n,r,o);return s!==we&&Th(i,ft(),s),$I}function Th(e,t,n){let r=df(t,e);gD(e[U],r,n)}function zI(e,t,n){qf(t)&&(t=t());let r=_(),o=_t();if(Me(r,o,t)){let i=B(),s=kn();Tr(i,s,r,e,t,r[U],n,!1)}return zI}function LR(e,t){let n=qf(e);return n&&e.set(t),n}function GI(e,t){let n=_(),r=B(),o=le();return Ch(r,n,n[U],o,e,t),GI}var WI={};function qI(e){let t=B(),n=_(),r=e+Q,o=Bn(t,r,128,null,null);return Ct(o,!1),ff(t,n,r,WI),qI}function ZI(e,t,n){let r=B();if(r.firstCreatePass){let o=je(e);pc(n,r.data,r.blueprint,o,!0),pc(t,r.data,r.blueprint,o,!1)}}function pc(e,t,n,r,o){if(e=he(e),Array.isArray(e))for(let i=0;i>20;if(En(e)||!e.multi){let d=new Zt(u,o,K),h=ha(c,t,o?l:l+p,f);h===-1?(Ta(ti(a,s),i,c),pa(i,e,t.length),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(d),s.push(d)):(n[h]=d,s[h]=d)}else{let d=ha(c,t,l+p,f),h=ha(c,t,l,l+p),g=d>=0&&n[d],w=h>=0&&n[h];if(o&&!w||!o&&!g){Ta(ti(a,s),i,c);let x=KI(o?QI:YI,n.length,o,r,u);!o&&w&&(n[h].providerFactory=x),pa(i,e,t.length,0),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(x),s.push(x)}else{let x=Sh(n[o?h:d],u,!o&&r);pa(i,e,d>-1?d:h,x)}!o&&r&&w&&n[h].componentProviders++}}}function pa(e,t,n,r){let o=En(t),i=Ey(t);if(o||i){let c=(i?he(t.useClass):t).prototype.ngOnDestroy;if(c){let u=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){let l=u.indexOf(n);l===-1?u.push(n,[r,c]):u[l+1].push(r,c)}else u.push(n,c)}}}function Sh(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function ha(e,t,n,r){for(let o=n;o{n.providersResolver=(r,o)=>ZI(r,o?o(e):e,t)}}function jR(e,t,n){let r=_r()+e,o=_();return o[r]===we?Iu(o,r,n?t.call(n):t()):Bw(o,r)}function VR(e,t,n,r){return Ah(_(),_r(),e,t,n,r)}function BR(e,t,n,r,o){return Rh(_(),_r(),e,t,n,r,o)}function xh(e,t){let n=e[t];return n===we?void 0:n}function Ah(e,t,n,r,o,i){let s=t+n;return Me(e,s,o)?Iu(e,s+1,i?r.call(i,o):r(o)):xh(e,s+1)}function Rh(e,t,n,r,o,i,s){let a=t+n;return sh(e,a,o,i)?Iu(e,a+2,s?r.call(s,o,i):r(o,i)):xh(e,a+2)}function HR(e,t){let n=B(),r,o=e+Q;n.firstCreatePass?(r=JI(t,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks??=[]).push(o,r.onDestroy)):r=n.data[o];let i=r.factory||(r.factory=Ht(r.type,!0)),s,a=ve(K);try{let c=ei(!1),u=i();return ei(c),ff(n,_(),o,u),u}finally{ve(a)}}function JI(e,t){if(t)for(let n=t.length-1;n>=0;n--){let r=t[n];if(e===r.name)return r}}function UR(e,t,n){let r=e+Q,o=_(),i=kc(o,r);return Oh(o,r)?Ah(o,_r(),t,i.transform,n,i):i.transform(n)}function $R(e,t,n,r){let o=e+Q,i=_(),s=kc(i,o);return Oh(i,o)?Rh(i,_r(),t,s.transform,n,r,s):s.transform(n,r)}function Oh(e,t){return e[N].data[t].pure}function zR(e,t){return Bi(e,t)}var Lo=null;function XI(e){Lo!==null&&(e.defaultEncapsulation!==Lo.defaultEncapsulation||e.preserveWhitespaces!==Lo.preserveWhitespaces)||(Lo=e)}var Ir=class{full;major;minor;patch;constructor(t){this.full=t;let n=t.split(".");this.major=n[0],this.minor=n[1],this.patch=n.slice(2).join(".")}},GR=new Ir("19.2.17"),gc=class{ngModuleFactory;componentFactories;constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}},WR=(()=>{class e{compileModuleSync(n){return new di(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){let r=this.compileModuleSync(n),o=Jd(n),i=wp(o.declarations).reduce((s,a)=>{let c=It(a);return c&&s.push(new Kt(c)),s},[]);return new gc(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),eb=new E("");function tb(e,t,n){let r=new di(n);return Promise.resolve(r)}function Ad(e){for(let t=e.length-1;t>=0;t--)if(e[t]!==void 0)return e[t]}var nb=(()=>{class e{zone=m(z);changeDetectionScheduler=m(Yt);applicationRef=m(Jt);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function rb({ngZoneFactory:e,ignoreChangesOutsideZone:t,scheduleInRootZone:n}){return e??=()=>new z(oe(G({},kh()),{scheduleInRootZone:n})),[{provide:z,useFactory:e},{provide:hr,multi:!0,useFactory:()=>{let r=m(nb,{optional:!0});return()=>r.initialize()}},{provide:hr,multi:!0,useFactory:()=>{let r=m(ob);return()=>{r.initialize()}}},t===!0?{provide:Hf,useValue:!0}:[],{provide:Uf,useValue:n??Bf}]}function kh(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}var ob=(()=>{class e{subscription=new Y;initialized=!1;zone=m(z);pendingTasks=m(en);initialize(){if(this.initialized)return;this.initialized=!0;let n=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(n=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{z.assertNotInAngularZone(),queueMicrotask(()=>{n!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(n),n=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{z.assertInAngularZone(),n??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ib=(()=>{class e{appRef=m(Jt);taskService=m(en);ngZone=m(z);zonelessEnabled=m(qc);tracing=m(jn,{optional:!0});disableScheduling=m(Hf,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Y;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(ri):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(m(Uf,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof oi||!this.zoneIsDefined)}notify(n){if(!this.zonelessEnabled&&n===5)return;let r=!1;switch(n){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,r=!0;break}case 12:{this.appRef.dirtyFlags|=16,r=!0;break}case 13:{this.appRef.dirtyFlags|=2,r=!0;break}case 11:{r=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(r))return;let o=this.useMicrotaskScheduler?nd:$f;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>o(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>o(()=>this.tick()))}shouldScheduleTick(n){return!(this.disableScheduling&&!n||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(ri+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let n=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){throw this.taskService.remove(n),r}finally{this.cleanup()}this.useMicrotaskScheduler=!0,nd(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(n)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let n=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(n)}}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function sb(){return typeof $localize<"u"&&$localize.locale||mi}var qi=new E("",{providedIn:"root",factory:()=>m(qi,k.Optional|k.SkipSelf)||sb()});var yi=new E(""),ab=new E("");function lr(e){return!e.moduleRef}function cb(e){let t=lr(e)?e.r3Injector:e.moduleRef.injector,n=t.get(z);return n.run(()=>{lr(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=t.get(Qe,null),o;if(n.runOutsideAngular(()=>{o=n.onError.subscribe({next:i=>{r.handleError(i)}})}),lr(e)){let i=()=>t.destroy(),s=e.platformInjector.get(yi);s.add(i),t.onDestroy(()=>{o.unsubscribe(),s.delete(i)})}else{let i=()=>e.moduleRef.destroy(),s=e.platformInjector.get(yi);s.add(i),e.moduleRef.onDestroy(()=>{Uo(e.allPlatformModules,e.moduleRef),o.unsubscribe(),s.delete(i)})}return lb(r,n,()=>{let i=t.get(uh);return i.runInitializers(),i.donePromise.then(()=>{let s=t.get(qi,mi);if(kI(s||mi),!t.get(ab,!0))return lr(e)?t.get(Jt):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(lr(e)){let c=t.get(Jt);return e.rootComponent!==void 0&&c.bootstrap(e.rootComponent),c}else return ub(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}function ub(e,t){let n=e.injector.get(Jt);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>n.bootstrap(r));else if(e.instance.ngDoBootstrap)e.instance.ngDoBootstrap(n);else throw new v(-403,!1);t.push(e)}function lb(e,t,n){try{let r=n();return Wi(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}var Fh=(()=>{class e{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(n){this._injector=n}bootstrapModuleFactory(n,r){let o=r?.scheduleInRootZone,i=()=>bv(r?.ngZone,oe(G({},kh({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing})),{scheduleInRootZone:o})),s=r?.ignoreChangesOutsideZone,a=[rb({ngZoneFactory:i,ignoreChangesOutsideZone:s}),{provide:Yt,useExisting:ib}],c=_w(n.moduleType,this.injector,a);return cb({moduleRef:c,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(n,r=[]){let o=lh({},r);return tb(this.injector,o,n).then(i=>this.bootstrapModuleFactory(i,o))}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new v(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());let n=this._injector.get(yi,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(r){return new(r||e)(b(_e))};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})(),Su=null;function db(e){if(xu())throw new v(400,!1);Zw(),Su=e;let t=e.get(Fh);return hb(e),t}function Nu(e,t,n=[]){let r=`Platform: ${t}`,o=new E(r);return(i=[])=>{let s=xu();if(!s){let a=[...n,...i,{provide:o,useValue:!0}];s=e?.(a)??db(fb(a,r))}return pb(o)}}function fb(e=[],t){return _e.create({name:t,providers:[{provide:bi,useValue:"platform"},{provide:yi,useValue:new Set([()=>Su=null])},...e]})}function pb(e){let t=xu();if(!t)throw new v(401,!1);return t}function xu(){return Su?.get(Fh)??null}function hb(e){let t=e.get(Kc,null);_i(e,()=>{t?.forEach(n=>n())})}var Au=(()=>{class e{static __NG_ELEMENT_ID__=gb}return e})();function gb(e){return mb(le(),_(),(e&16)===16)}function mb(e,t,n){if(An(e)&&!n){let r=Ye(e.index,t);return new Er(r,r)}else if(e.type&175){let r=t[Ce];return new Er(r,t)}return null}var mc=class{constructor(){}supports(t){return ih(t)}create(t){return new yc(t)}},yb=(e,t)=>t,yc=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(t){this._trackByFn=t||yb}forEachItem(t){let n;for(n=this._itHead;n!==null;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){let s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),n===null||!Object.is(n.trackById,s)?(n=this._mismatch(n,a,s,o),r=!0):(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)),n=n._next,o++}),this.length=o;return this._truncate(n),this.collection=t,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;t!==null;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;t!==null;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,n,r,o){let i;return t===null?i=this._itTail:(i=t._prev,this._remove(t)),t=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):(t=this._linkedRecords===null?null:this._linkedRecords.get(r,o),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new vc(n,r),i,o)),t}_verifyReinsertion(t,n,r,o){let i=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null);return i!==null?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;t!==null;){let n=t._next;this._addToRemovals(this._unlink(t)),t=n}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,n,r){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(t);let o=t._prevRemoved,i=t._nextRemoved;return o===null?this._removalsHead=i:o._nextRemoved=i,i===null?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail===null?this._additionsTail=this._additionsHead=t:this._additionsTail=this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){let o=n===null?this._itHead:n._next;return t._next=o,t._prev=n,o===null?this._itTail=t:o._prev=t,n===null?this._itHead=t:n._next=t,this._linkedRecords===null&&(this._linkedRecords=new vi),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){this._linkedRecords!==null&&this._linkedRecords.remove(t);let n=t._prev,r=t._next;return n===null?this._itHead=r:n._next=r,r===null?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail===null?this._movesTail=this._movesHead=t:this._movesTail=this._movesTail._nextMoved=t),t}_addToRemovals(t){return this._unlinkedRecords===null&&(this._unlinkedRecords=new vi),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,n){return t.item=n,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=t:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=t,t}},vc=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(t,n){this.item=t,this.trackById=n}},Dc=class{_head=null;_tail=null;add(t){this._head===null?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,n){let r;for(r=this._head;r!==null;r=r._nextDup)if((n===null||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){let n=t._prevDup,r=t._nextDup;return n===null?this._head=r:n._nextDup=r,r===null?this._tail=n:r._prevDup=n,this._head===null}},vi=class{map=new Map;put(t){let n=t.trackById,r=this.map.get(n);r||(r=new Dc,this.map.set(n,r)),r.add(t)}get(t,n){let r=t,o=this.map.get(r);return o?o.get(t,n):null}remove(t){let n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function Rd(e,t,n){let r=e.previousIndex;if(r===null)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{let i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;r!==null;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){let r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){let o=this._records.get(t);this._maybeAddToChanges(o,n);let i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}let r=new Ic(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;t!==null;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;t!=null;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,this._addToChanges(t))}_addToAdditions(t){this._additionsHead===null?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){this._changesHead===null?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}},Ic=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(t){this.key=t}};function Od(){return new Ru([new mc])}var Ru=(()=>{class e{factories;static \u0275prov=M({token:e,providedIn:"root",factory:Od});constructor(n){this.factories=n}static create(n,r){if(r!=null){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Od()),deps:[[e,new Zd,new Mc]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r!=null)return r;throw new v(901,!1)}}return e})();function kd(){return new Ou([new Ec])}var Ou=(()=>{class e{static \u0275prov=M({token:e,providedIn:"root",factory:kd});factories;constructor(n){this.factories=n}static create(n,r){if(r){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||kd()),deps:[[e,new Zd,new Mc]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r)return r;throw new v(901,!1)}}return e})();var Ph=Nu(null,"core",[]),Lh=(()=>{class e{constructor(n){}static \u0275fac=function(r){return new(r||e)(b(Jt))};static \u0275mod=gt({type:e});static \u0275inj=lt({})}return e})();function Ar(e){return typeof e=="boolean"?e:e!=null&&e!=="false"}function ku(e,t=NaN){return!isNaN(parseFloat(e))&&!isNaN(Number(e))?Number(e):t}function Fu(e){return Os(e)}function jh(e,t){return Xr(e,t?.equal)}var bc=class{[me];constructor(t){this[me]=t}destroy(){this[me].destroy()}};function Hn(e,t){!t?.injector&&xc(Hn);let n=t?.injector??m(_e),r=t?.manualCleanup!==!0?n.get(Fn):null,o,i=n.get(eu,null,{optional:!0}),s=n.get(Yt);return i!==null&&!t?.forceRoot?(o=Eb(i.view,s,e),r instanceof ni&&r._lView===i.view&&(r=null)):o=wb(e,n.get(ah),s),o.injector=n,r!==null&&(o.onDestroyFn=r.onDestroy(()=>o.destroy())),new bc(o)}var Vh=oe(G({},an),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:vr,run(){if(this.dirty=!1,this.hasRun&&!Qr(this))return;this.hasRun=!0;let e=r=>(this.cleanupFns??=[]).push(r),t=Jn(this),n=Ko(!1);try{this.maybeCleanup(),this.fn(e)}finally{Ko(n),Yr(this,t)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),vb=oe(G({},Vh),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){Xn(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),Db=oe(G({},Vh),{consumerMarkedDirty(){this.view[T]|=8192,On(this.view),this.notifier.notify(13)},destroy(){Xn(this),this.onDestroyFn(),this.maybeCleanup(),this.view[zt]?.delete(this)}});function Eb(e,t,n){let r=Object.create(Db);return r.view=e,r.zone=typeof Zone<"u"?Zone.current:null,r.notifier=t,r.fn=n,e[zt]??=new Set,e[zt].add(r),r.consumerMarkedDirty(r),r}function wb(e,t,n){let r=Object.create(vb);return r.fn=e,r.scheduler=t,r.notifier=n,r.zone=typeof Zone<"u"?Zone.current:null,r.scheduler.schedule(r),r.notifier.notify(12),r}function qR(e,t){let n=It(e),r=t.elementInjector||Ci();return new Kt(n).create(r,t.projectableNodes,t.hostElement,t.environmentInjector)}function ZR(e){let t=It(e);if(!t)return null;let n=new Kt(t);return{get selector(){return n.selector},get type(){return n.componentType},get inputs(){return n.inputs},get outputs(){return n.outputs},get ngContentSelectors(){return n.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}var q=new E("");var Uh=null;function tt(){return Uh}function Pu(e){Uh??=e}var Rr=class{},Or=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:()=>m($h),providedIn:"platform"})}return e})(),Ib=new E(""),$h=(()=>{class e extends Or{_location;_history;_doc=m(q);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return tt().getBaseHref(this._doc)}onPopState(n){let r=tt().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){let r=tt().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(n){this._location.pathname=n}pushState(n,r,o){this._history.pushState(n,r,o)}replaceState(n,r,o){this._history.replaceState(n,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function Zi(e,t){return e?t?e.endsWith("/")?t.startsWith("/")?e+t.slice(1):e+t:t.startsWith("/")?e+t:`${e}/${t}`:e:t}function Bh(e){let t=e.search(/#|\?|$/);return e[t-1]==="/"?e.slice(0,t-1)+e.slice(t):e}function He(e){return e&&e[0]!=="?"?`?${e}`:e}var Un=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:()=>m(zh),providedIn:"root"})}return e})(),Yi=new E(""),zh=(()=>{class e extends Un{_platformLocation;_baseHref;_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??m(q).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return Zi(this._baseHref,n)}path(n=!1){let r=this._platformLocation.pathname+He(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+He(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+He(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(b(Or),b(Yi,8))};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Gh=(()=>{class e{_subject=new ye;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(n){this._locationStrategy=n;let r=this._locationStrategy.getBaseHref();this._basePath=_b(Bh(Hh(r))),this._locationStrategy.onPopState(o=>{this._subject.next({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+He(r))}normalize(n){return e.stripTrailingSlash(Cb(this._basePath,Hh(n)))}prepareExternalUrl(n){return n&&n[0]!=="/"&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+He(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+He(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription??=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{let r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r??void 0,complete:o??void 0})}static normalizeQueryParams=He;static joinWithSlash=Zi;static stripTrailingSlash=Bh;static \u0275fac=function(r){return new(r||e)(b(Un))};static \u0275prov=M({token:e,factory:()=>bb(),providedIn:"root"})}return e})();function bb(){return new Gh(b(Un))}function Cb(e,t){if(!e||!t.startsWith(e))return t;let n=t.substring(e.length);return n===""||["/",";","?","#"].includes(n[0])?n:t}function Hh(e){return e.replace(/\/index.html$/,"")}function _b(e){if(new RegExp("^(https?:)?//").test(e)){let[,n]=e.split(/\/\/[^\/]+/);return n}return e}var Mb=(()=>{class e extends Un{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,r!=null&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let r=this._platformLocation.hash??"#";return r.length>0?r.substring(1):r}prepareExternalUrl(n){let r=Zi(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+He(i))||this._platformLocation.pathname;this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+He(i))||this._platformLocation.pathname;this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(b(Or),b(Yi,8))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})();var de=function(e){return e[e.Format=0]="Format",e[e.Standalone=1]="Standalone",e}(de||{}),L=function(e){return e[e.Narrow=0]="Narrow",e[e.Abbreviated=1]="Abbreviated",e[e.Wide=2]="Wide",e[e.Short=3]="Short",e}(L||{}),Ie=function(e){return e[e.Short=0]="Short",e[e.Medium=1]="Medium",e[e.Long=2]="Long",e[e.Full=3]="Full",e}(Ie||{}),yt={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function Qh(e){return Ae(e)[W.LocaleId]}function Kh(e,t,n){let r=Ae(e),o=[r[W.DayPeriodsFormat],r[W.DayPeriodsStandalone]],i=Re(o,t);return Re(i,n)}function Jh(e,t,n){let r=Ae(e),o=[r[W.DaysFormat],r[W.DaysStandalone]],i=Re(o,t);return Re(i,n)}function Xh(e,t,n){let r=Ae(e),o=[r[W.MonthsFormat],r[W.MonthsStandalone]],i=Re(o,t);return Re(i,n)}function eg(e,t){let r=Ae(e)[W.Eras];return Re(r,t)}function kr(e,t){let n=Ae(e);return Re(n[W.DateFormat],t)}function Fr(e,t){let n=Ae(e);return Re(n[W.TimeFormat],t)}function Pr(e,t){let r=Ae(e)[W.DateTimeFormat];return Re(r,t)}function Lr(e,t){let n=Ae(e),r=n[W.NumberSymbols][t];if(typeof r>"u"){if(t===yt.CurrencyDecimal)return n[W.NumberSymbols][yt.Decimal];if(t===yt.CurrencyGroup)return n[W.NumberSymbols][yt.Group]}return r}function tg(e){if(!e[W.ExtraData])throw new Error(`Missing extra locale data for the locale "${e[W.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function ng(e){let t=Ae(e);return tg(t),(t[W.ExtraData][2]||[]).map(r=>typeof r=="string"?Lu(r):[Lu(r[0]),Lu(r[1])])}function rg(e,t,n){let r=Ae(e);tg(r);let o=[r[W.ExtraData][0],r[W.ExtraData][1]],i=Re(o,t)||[];return Re(i,n)||[]}function Re(e,t){for(let n=t;n>-1;n--)if(typeof e[n]<"u")return e[n];throw new Error("Locale data API: locale data undefined")}function Lu(e){let[t,n]=e.split(":");return{hours:+t,minutes:+n}}var Tb=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Qi={},Sb=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function og(e,t,n,r){let o=Lb(e);t=mt(n,t)||t;let s=[],a;for(;t;)if(a=Sb.exec(t),a){s=s.concat(a.slice(1));let l=s.pop();if(!l)break;t=l}else{s.push(t);break}let c=o.getTimezoneOffset();r&&(c=sg(r,c),o=Pb(o,r));let u="";return s.forEach(l=>{let f=kb(l);u+=f?f(o,n,c):l==="''"?"'":l.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}function ts(e,t,n){let r=new Date(0);return r.setFullYear(e,t,n),r.setHours(0,0,0),r}function mt(e,t){let n=Qh(e);if(Qi[n]??={},Qi[n][t])return Qi[n][t];let r="";switch(t){case"shortDate":r=kr(e,Ie.Short);break;case"mediumDate":r=kr(e,Ie.Medium);break;case"longDate":r=kr(e,Ie.Long);break;case"fullDate":r=kr(e,Ie.Full);break;case"shortTime":r=Fr(e,Ie.Short);break;case"mediumTime":r=Fr(e,Ie.Medium);break;case"longTime":r=Fr(e,Ie.Long);break;case"fullTime":r=Fr(e,Ie.Full);break;case"short":let o=mt(e,"shortTime"),i=mt(e,"shortDate");r=Ki(Pr(e,Ie.Short),[o,i]);break;case"medium":let s=mt(e,"mediumTime"),a=mt(e,"mediumDate");r=Ki(Pr(e,Ie.Medium),[s,a]);break;case"long":let c=mt(e,"longTime"),u=mt(e,"longDate");r=Ki(Pr(e,Ie.Long),[c,u]);break;case"full":let l=mt(e,"fullTime"),f=mt(e,"fullDate");r=Ki(Pr(e,Ie.Full),[l,f]);break}return r&&(Qi[n][t]=r),r}function Ki(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,function(n,r){return t!=null&&r in t?t[r]:n})),e}function Ue(e,t,n="-",r,o){let i="";(e<0||o&&e<=0)&&(o?e=-e+1:(e=-e,i=n));let s=String(e);for(;s.length0||a>-n)&&(a+=n),e===3)a===0&&n===-12&&(a=12);else if(e===6)return Nb(a,t);let c=Lr(s,yt.MinusSign);return Ue(a,t,c,r,o)}}function xb(e,t){switch(e){case 0:return t.getFullYear();case 1:return t.getMonth();case 2:return t.getDate();case 3:return t.getHours();case 4:return t.getMinutes();case 5:return t.getSeconds();case 6:return t.getMilliseconds();case 7:return t.getDay();default:throw new Error(`Unknown DateType value "${e}".`)}}function H(e,t,n=de.Format,r=!1){return function(o,i){return Ab(o,i,e,t,n,r)}}function Ab(e,t,n,r,o,i){switch(n){case 2:return Xh(t,o,r)[e.getMonth()];case 1:return Jh(t,o,r)[e.getDay()];case 0:let s=e.getHours(),a=e.getMinutes();if(i){let u=ng(t),l=rg(t,o,r),f=u.findIndex(p=>{if(Array.isArray(p)){let[d,h]=p,g=s>=d.hours&&a>=d.minutes,w=s0?Math.floor(o/60):Math.ceil(o/60);switch(e){case 0:return(o>=0?"+":"")+Ue(s,2,i)+Ue(Math.abs(o%60),2,i);case 1:return"GMT"+(o>=0?"+":"")+Ue(s,1,i);case 2:return"GMT"+(o>=0?"+":"")+Ue(s,2,i)+":"+Ue(Math.abs(o%60),2,i);case 3:return r===0?"Z":(o>=0?"+":"")+Ue(s,2,i)+":"+Ue(Math.abs(o%60),2,i);default:throw new Error(`Unknown zone width "${e}"`)}}}var Rb=0,es=4;function Ob(e){let t=ts(e,Rb,1).getDay();return ts(e,0,1+(t<=es?es:es+7)-t)}function ig(e){let t=e.getDay(),n=t===0?-3:es-t;return ts(e.getFullYear(),e.getMonth(),e.getDate()+n)}function ju(e,t=!1){return function(n,r){let o;if(t){let i=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,s=n.getDate();o=1+Math.floor((s+i)/7)}else{let i=ig(n),s=Ob(i.getFullYear()),a=i.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return Ue(o,e,Lr(r,yt.MinusSign))}}function Xi(e,t=!1){return function(n,r){let i=ig(n).getFullYear();return Ue(i,e,Lr(r,yt.MinusSign),t)}}var Vu={};function kb(e){if(Vu[e])return Vu[e];let t;switch(e){case"G":case"GG":case"GGG":t=H(3,L.Abbreviated);break;case"GGGG":t=H(3,L.Wide);break;case"GGGGG":t=H(3,L.Narrow);break;case"y":t=J(0,1,0,!1,!0);break;case"yy":t=J(0,2,0,!0,!0);break;case"yyy":t=J(0,3,0,!1,!0);break;case"yyyy":t=J(0,4,0,!1,!0);break;case"Y":t=Xi(1);break;case"YY":t=Xi(2,!0);break;case"YYY":t=Xi(3);break;case"YYYY":t=Xi(4);break;case"M":case"L":t=J(1,1,1);break;case"MM":case"LL":t=J(1,2,1);break;case"MMM":t=H(2,L.Abbreviated);break;case"MMMM":t=H(2,L.Wide);break;case"MMMMM":t=H(2,L.Narrow);break;case"LLL":t=H(2,L.Abbreviated,de.Standalone);break;case"LLLL":t=H(2,L.Wide,de.Standalone);break;case"LLLLL":t=H(2,L.Narrow,de.Standalone);break;case"w":t=ju(1);break;case"ww":t=ju(2);break;case"W":t=ju(1,!0);break;case"d":t=J(2,1);break;case"dd":t=J(2,2);break;case"c":case"cc":t=J(7,1);break;case"ccc":t=H(1,L.Abbreviated,de.Standalone);break;case"cccc":t=H(1,L.Wide,de.Standalone);break;case"ccccc":t=H(1,L.Narrow,de.Standalone);break;case"cccccc":t=H(1,L.Short,de.Standalone);break;case"E":case"EE":case"EEE":t=H(1,L.Abbreviated);break;case"EEEE":t=H(1,L.Wide);break;case"EEEEE":t=H(1,L.Narrow);break;case"EEEEEE":t=H(1,L.Short);break;case"a":case"aa":case"aaa":t=H(0,L.Abbreviated);break;case"aaaa":t=H(0,L.Wide);break;case"aaaaa":t=H(0,L.Narrow);break;case"b":case"bb":case"bbb":t=H(0,L.Abbreviated,de.Standalone,!0);break;case"bbbb":t=H(0,L.Wide,de.Standalone,!0);break;case"bbbbb":t=H(0,L.Narrow,de.Standalone,!0);break;case"B":case"BB":case"BBB":t=H(0,L.Abbreviated,de.Format,!0);break;case"BBBB":t=H(0,L.Wide,de.Format,!0);break;case"BBBBB":t=H(0,L.Narrow,de.Format,!0);break;case"h":t=J(3,1,-12);break;case"hh":t=J(3,2,-12);break;case"H":t=J(3,1);break;case"HH":t=J(3,2);break;case"m":t=J(4,1);break;case"mm":t=J(4,2);break;case"s":t=J(5,1);break;case"ss":t=J(5,2);break;case"S":t=J(6,1);break;case"SS":t=J(6,2);break;case"SSS":t=J(6,3);break;case"Z":case"ZZ":case"ZZZ":t=Ji(0);break;case"ZZZZZ":t=Ji(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Ji(1);break;case"OOOO":case"ZZZZ":case"zzzz":t=Ji(2);break;default:return null}return Vu[e]=t,t}function sg(e,t){e=e.replace(/:/g,"");let n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function Fb(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Pb(e,t,n){let o=e.getTimezoneOffset(),i=sg(t,o);return Fb(e,-1*(i-o))}function Lb(e){if(Wh(e))return e;if(typeof e=="number"&&!isNaN(e))return new Date(e);if(typeof e=="string"){if(e=e.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(e)){let[o,i=1,s=1]=e.split("-").map(a=>+a);return ts(o,i-1,s)}let n=parseFloat(e);if(!isNaN(e-n))return new Date(n);let r;if(r=e.match(Tb))return jb(r)}let t=new Date(e);if(!Wh(t))throw new Error(`Unable to convert "${e}" into a date`);return t}function jb(e){let t=new Date(0),n=0,r=0,o=e[8]?t.setUTCFullYear:t.setFullYear,i=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),r=Number(e[9]+e[11])),o.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));let s=Number(e[4]||0)-n,a=Number(e[5]||0)-r,c=Number(e[6]||0),u=Math.floor(parseFloat("0."+(e[7]||0))*1e3);return i.call(t,s,a,c,u),t}function Wh(e){return e instanceof Date&&!isNaN(e.valueOf())}var Bu=/\s+/,qh=[],Vb=(()=>{class e{_ngEl;_renderer;initialClasses=qh;rawClass;stateMap=new Map;constructor(n,r){this._ngEl=n,this._renderer=r}set klass(n){this.initialClasses=n!=null?n.trim().split(Bu):qh}set ngClass(n){this.rawClass=typeof n=="string"?n.trim().split(Bu):n}ngDoCheck(){for(let r of this.initialClasses)this._updateState(r,!0);let n=this.rawClass;if(Array.isArray(n)||n instanceof Set)for(let r of n)this._updateState(r,!0);else if(n!=null)for(let r of Object.keys(n))this._updateState(r,!!n[r]);this._applyStateDiff()}_updateState(n,r){let o=this.stateMap.get(n);o!==void 0?(o.enabled!==r&&(o.changed=!0,o.enabled=r),o.touched=!0):this.stateMap.set(n,{enabled:r,changed:!0,touched:!0})}_applyStateDiff(){for(let n of this.stateMap){let r=n[0],o=n[1];o.changed?(this._toggleClass(r,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(r,!1),this.stateMap.delete(r)),o.touched=!1}}_toggleClass(n,r){n=n.trim(),n.length>0&&n.split(Bu).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(r){return new(r||e)(K(Ne),K(Ui))};static \u0275dir=Be({type:e,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return e})();var ns=class{$implicit;ngForOf;index;count;constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},ag=(()=>{class e{_viewContainer;_template;_differs;set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){let n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){let r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(o.previousIndex==null)r.createEmbeddedView(this._template,new ns(o.item,this._ngForOf,-1,-1),s===null?void 0:s);else if(s==null)r.remove(i===null?void 0:i);else if(i!==null){let a=r.get(i);r.move(a,s),Zh(a,o)}});for(let o=0,i=r.length;o{let i=r.get(o.currentIndex);Zh(i,o)})}static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(K(tn),K(Qt),K(Ru))};static \u0275dir=Be({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return e})();function Zh(e,t){e.context.$implicit=t.item}var Bb=(()=>{class e{_viewContainer;_context=new rs;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(n,r){this._viewContainer=n,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){Yh(n,!1),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){Yh(n,!1),this._elseTemplateRef=n,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(K(tn),K(Qt))};static \u0275dir=Be({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return e})(),rs=class{$implicit=null;ngIf=null};function Yh(e,t){if(e&&!e.createEmbeddedView)throw new v(2020,!1)}var Hb=(()=>{class e{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(n,r,o){this._ngEl=n,this._differs=r,this._renderer=o}set ngStyle(n){this._ngStyle=n,!this._differ&&n&&(this._differ=this._differs.find(n).create())}ngDoCheck(){if(this._differ){let n=this._differ.diff(this._ngStyle);n&&this._applyChanges(n)}}_setStyle(n,r){let[o,i]=n.split("."),s=o.indexOf("-")===-1?void 0:Je.DashCase;r!=null?this._renderer.setStyle(this._ngEl.nativeElement,o,i?`${r}${i}`:r,s):this._renderer.removeStyle(this._ngEl.nativeElement,o,s)}_applyChanges(n){n.forEachRemovedItem(r=>this._setStyle(r.key,null)),n.forEachAddedItem(r=>this._setStyle(r.key,r.currentValue)),n.forEachChangedItem(r=>this._setStyle(r.key,r.currentValue))}static \u0275fac=function(r){return new(r||e)(K(Ne),K(Ou),K(Ui))};static \u0275dir=Be({type:e,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return e})(),Ub=(()=>{class e{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(n){this._viewContainerRef=n}ngOnChanges(n){if(this._shouldRecreateView(n)){let r=this._viewContainerRef;if(this._viewRef&&r.remove(r.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let o=this._createContextForwardProxy();this._viewRef=r.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(n){return!!n.ngTemplateOutlet||!!n.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(n,r,o)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,r,o):!1,get:(n,r,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,r,o)}})}static \u0275fac=function(r){return new(r||e)(K(tn))};static \u0275dir=Be({type:e,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[sf]})}return e})();function cg(e,t){return new v(2100,!1)}var Hu=class{createSubscription(t,n){return Fu(()=>t.subscribe({next:n,error:r=>{throw r}}))}dispose(t){Fu(()=>t.unsubscribe())}},Uu=class{createSubscription(t,n){return t.then(r=>n?.(r),r=>{throw r}),{unsubscribe:()=>{n=null}}}dispose(t){t.unsubscribe()}},$b=new Uu,zb=new Hu,Gb=(()=>{class e{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(n){this._ref=n}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(n){if(!this._obj){if(n)try{this.markForCheckOnValueUpdate=!1,this._subscribe(n)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return n!==this._obj?(this._dispose(),this.transform(n)):this._latestValue}_subscribe(n){this._obj=n,this._strategy=this._selectStrategy(n),this._subscription=this._strategy.createSubscription(n,r=>this._updateLatestValue(n,r))}_selectStrategy(n){if(Wi(n))return $b;if(_u(n))return zb;throw cg(e,n)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(n,r){n===this._obj&&(this._latestValue=r,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(r){return new(r||e)(K(Au,16))};static \u0275pipe=$i({name:"async",type:e,pure:!1})}return e})();var Wb="mediumDate",ug=new E(""),lg=new E(""),qb=(()=>{class e{locale;defaultTimezone;defaultOptions;constructor(n,r,o){this.locale=n,this.defaultTimezone=r,this.defaultOptions=o}transform(n,r,o,i){if(n==null||n===""||n!==n)return null;try{let s=r??this.defaultOptions?.dateFormat??Wb,a=o??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return og(n,s,i||this.locale,a)}catch(s){throw cg(e,s.message)}}static \u0275fac=function(r){return new(r||e)(K(qi,16),K(ug,24),K(lg,24))};static \u0275pipe=$i({name:"date",type:e,pure:!0})}return e})();var Zb=(()=>{class e{transform(n){return JSON.stringify(n,null,2)}static \u0275fac=function(r){return new(r||e)};static \u0275pipe=$i({name:"json",type:e,pure:!1})}return e})();var $u=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=gt({type:e});static \u0275inj=lt({})}return e})();function jr(e,t){t=encodeURIComponent(t);for(let n of e.split(";")){let r=n.indexOf("="),[o,i]=r==-1?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}var os="browser",dg="server";function $n(e){return e===os}function is(e){return e===dg}var nn=class{};var gk=(()=>{class e{static \u0275prov=M({token:e,providedIn:"root",factory:()=>new zu(m(q),window)})}return e})(),zu=class{document;window;offset=()=>[0,0];constructor(t,n){this.document=t,this.window=n}setOffset(t){Array.isArray(t)?this.offset=()=>t:this.offset=t}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(t){this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){let n=Yb(this.document,t);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(t){this.window.history.scrollRestoration=t}scrollToElement(t){let n=t.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}};function Yb(e,t){let n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if(typeof e.createTreeWalker=="function"&&e.body&&typeof e.body.attachShadow=="function"){let r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT),o=r.currentNode;for(;o;){let i=o.shadowRoot;if(i){let s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=r.nextNode()}}return null}var cs=new E(""),Zu=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;constructor(n,r){this._zone=r,n.forEach(o=>{o.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,o,i){return this._findPluginFor(r).addEventListener(n,r,o,i)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new v(5101,!1);return this._eventNameToPlugin.set(n,r),r}static \u0275fac=function(r){return new(r||e)(b(cs),b(z))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),Vr=class{_doc;constructor(t){this._doc=t}manager},ss="ng-app-id";function fg(e){for(let t of e)t.remove()}function pg(e,t){let n=t.createElement("style");return n.textContent=e,n}function Qb(e,t,n,r){let o=e.head?.querySelectorAll(`style[${ss}="${t}"],link[${ss}="${t}"]`);if(o)for(let i of o)i.removeAttribute(ss),i instanceof HTMLLinkElement?r.set(i.href.slice(i.href.lastIndexOf("/")+1),{usage:0,elements:[i]}):i.textContent&&n.set(i.textContent,{usage:0,elements:[i]})}function Wu(e,t){let n=t.createElement("link");return n.setAttribute("rel","stylesheet"),n.setAttribute("href",e),n}var Yu=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,this.isServer=is(i),Qb(n,r,this.inline,this.external),this.hosts.add(n.head)}addStyles(n,r){for(let o of n)this.addUsage(o,this.inline,pg);r?.forEach(o=>this.addUsage(o,this.external,Wu))}removeStyles(n,r){for(let o of n)this.removeUsage(o,this.inline);r?.forEach(o=>this.removeUsage(o,this.external))}addUsage(n,r,o){let i=r.get(n);i?i.usage++:r.set(n,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(n,this.doc)))})}removeUsage(n,r){let o=r.get(n);o&&(o.usage--,o.usage<=0&&(fg(o.elements),r.delete(n)))}ngOnDestroy(){for(let[,{elements:n}]of[...this.inline,...this.external])fg(n);this.hosts.clear()}addHost(n){this.hosts.add(n);for(let[r,{elements:o}]of this.inline)o.push(this.addElement(n,pg(r,this.doc)));for(let[r,{elements:o}]of this.external)o.push(this.addElement(n,Wu(r,this.doc)))}removeHost(n){this.hosts.delete(n)}addElement(n,r){return this.nonce&&r.setAttribute("nonce",this.nonce),this.isServer&&r.setAttribute(ss,this.appId),n.appendChild(r)}static \u0275fac=function(r){return new(r||e)(b(q),b(Qc),b(Jc,8),b(Ve))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),Gu={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Qu=/%COMP%/g;var gg="%COMP%",Kb=`_nghost-${gg}`,Jb=`_ngcontent-${gg}`,Xb=!0,eC=new E("",{providedIn:"root",factory:()=>Xb});function tC(e){return Jb.replace(Qu,e)}function nC(e){return Kb.replace(Qu,e)}function mg(e,t){return t.map(n=>n.replace(Qu,e))}var Ku=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(n,r,o,i,s,a,c,u=null,l=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=u,this.tracingService=l,this.platformIsServer=is(a),this.defaultRenderer=new Br(n,s,c,this.platformIsServer,this.tracingService)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===Ke.ShadowDom&&(r=oe(G({},r),{encapsulation:Ke.Emulated}));let o=this.getOrCreateRenderer(n,r);return o instanceof as?o.applyToHost(n):o instanceof Hr&&o.applyStyles(),o}getOrCreateRenderer(n,r){let o=this.rendererByCompId,i=o.get(r.id);if(!i){let s=this.doc,a=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,f=this.platformIsServer,p=this.tracingService;switch(r.encapsulation){case Ke.Emulated:i=new as(c,u,r,this.appId,l,s,a,f,p);break;case Ke.ShadowDom:return new qu(c,u,n,r,s,a,this.nonce,f,p);default:i=new Hr(c,u,r,l,s,a,f,p);break}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(n){this.rendererByCompId.delete(n)}static \u0275fac=function(r){return new(r||e)(b(Zu),b(Yu),b(Qc),b(eC),b(q),b(Ve),b(z),b(Jc),b(jn,8))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),Br=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,n,r,o,i){this.eventManager=t,this.doc=n,this.ngZone=r,this.platformIsServer=o,this.tracingService=i}destroy(){}destroyNode=null;createElement(t,n){return n?this.doc.createElementNS(Gu[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(hg(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(hg(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){n.remove()}selectRootElement(t,n){let r=typeof t=="string"?this.doc.querySelector(t):t;if(!r)throw new v(-5104,!1);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;let i=Gu[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){let o=Gu[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(Je.DashCase|Je.Important)?t.style.setProperty(n,r,o&Je.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&Je.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t!=null&&(t[n]=r)}setValue(t,n){t.nodeValue=n}listen(t,n,r,o){if(typeof t=="string"&&(t=tt().getGlobalEventTarget(this.doc,t),!t))throw new v(5102,!1);let i=this.decoratePreventDefault(r);return this.tracingService?.wrapEventListener&&(i=this.tracingService.wrapEventListener(t,n,i)),this.eventManager.addEventListener(t,n,i,o)}decoratePreventDefault(t){return n=>{if(n==="__ngUnwrap__")return t;(this.platformIsServer?this.ngZone.runGuarded(()=>t(n)):t(n))===!1&&n.preventDefault()}}};function hg(e){return e.tagName==="TEMPLATE"&&e.content!==void 0}var qu=class extends Br{sharedStylesHost;hostEl;shadowRoot;constructor(t,n,r,o,i,s,a,c,u){super(t,i,s,c,u),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let l=o.styles;l=mg(o.id,l);for(let p of l){let d=document.createElement("style");a&&d.setAttribute("nonce",a),d.textContent=p,this.shadowRoot.appendChild(d)}let f=o.getExternalStyles?.();if(f)for(let p of f){let d=Wu(p,i);a&&d.setAttribute("nonce",a),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(null,n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},Hr=class extends Br{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,n,r,o,i,s,a,c,u){super(t,i,s,a,c),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o;let l=r.styles;this.styles=u?mg(u,l):l,this.styleUrls=r.getExternalStyles?.(u)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},as=class extends Hr{contentAttr;hostAttr;constructor(t,n,r,o,i,s,a,c,u){let l=o+"-"+r.id;super(t,n,r,i,s,a,c,u,l),this.contentAttr=tC(l),this.hostAttr=nC(l)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,n){let r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}};var us=class e extends Rr{supportsDOMEvents=!0;static makeCurrent(){Pu(new e)}onAndCancel(t,n,r,o){return t.addEventListener(n,r,o),()=>{t.removeEventListener(n,r,o)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.remove()}createElement(t,n){return n=n||this.getDefaultDocument(),n.createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,n){return n==="window"?window:n==="document"?t:n==="body"?t.body:null}getBaseHref(t){let n=rC();return n==null?null:oC(n)}resetBaseElement(){Ur=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return jr(document.cookie,t)}},Ur=null;function rC(){return Ur=Ur||document.head.querySelector("base"),Ur?Ur.getAttribute("href"):null}function oC(e){return new URL(e,document.baseURI).pathname}var ls=class{addToWindow(t){re.getAngularTestability=(r,o=!0)=>{let i=t.findTestabilityInTree(r,o);if(i==null)throw new v(5103,!1);return i},re.getAllAngularTestabilities=()=>t.getAllTestabilities(),re.getAllAngularRootElements=()=>t.getAllRootElements();let n=r=>{let o=re.getAllAngularTestabilities(),i=o.length,s=function(){i--,i==0&&r()};o.forEach(a=>{a.whenStable(s)})};re.frameworkStabilizers||(re.frameworkStabilizers=[]),re.frameworkStabilizers.push(n)}findTestabilityInTree(t,n,r){if(n==null)return null;let o=t.getTestability(n);return o??(r?tt().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},iC=(()=>{class e{build(){return new XMLHttpRequest}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),vg=(()=>{class e extends Vr{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o,i){return n.addEventListener(r,o,i),()=>this.removeEventListener(n,r,o,i)}removeEventListener(n,r,o,i){return n.removeEventListener(r,o,i)}static \u0275fac=function(r){return new(r||e)(b(q))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),yg=["alt","control","meta","shift"],sC={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},aC={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey},Dg=(()=>{class e extends Vr{constructor(n){super(n)}supports(n){return e.parseEventName(n)!=null}addEventListener(n,r,o,i){let s=e.parseEventName(r),a=e.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>tt().onAndCancel(n,s.domEventName,a,i))}static parseEventName(n){let r=n.toLowerCase().split("."),o=r.shift();if(r.length===0||!(o==="keydown"||o==="keyup"))return null;let i=e._normalizeKey(r.pop()),s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),yg.forEach(u=>{let l=r.indexOf(u);l>-1&&(r.splice(l,1),s+=u+".")}),s+=i,r.length!=0||i.length===0)return null;let c={};return c.domEventName=o,c.fullKey=s,c}static matchEventFullKeyCode(n,r){let o=sC[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),yg.forEach(s=>{if(s!==o){let a=aC[s];a(n)&&(i+=s+".")}}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return n==="esc"?"escape":n}static \u0275fac=function(r){return new(r||e)(b(q))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})();function cC(){us.makeCurrent()}function uC(){return new Qe}function lC(){return ep(document),document}var dC=[{provide:Ve,useValue:os},{provide:Kc,useValue:cC,multi:!0},{provide:q,useFactory:lC}],fC=Nu(Ph,"browser",dC);var pC=[{provide:xr,useClass:ls},{provide:bu,useClass:zi,deps:[z,Gi,xr]},{provide:zi,useClass:zi,deps:[z,Gi,xr]}],hC=[{provide:bi,useValue:"root"},{provide:Qe,useFactory:uC},{provide:cs,useClass:vg,multi:!0,deps:[q]},{provide:cs,useClass:Dg,multi:!0,deps:[q]},Ku,Yu,Zu,{provide:Tn,useExisting:Ku},{provide:nn,useClass:iC},[]],gC=(()=>{class e{constructor(){}static \u0275fac=function(r){return new(r||e)};static \u0275mod=gt({type:e});static \u0275inj=lt({providers:[...hC,...pC],imports:[$u,Lh]})}return e})();var Gn=class{},$r=class{},Tt=class e{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t=="string"?this.lazyInit=()=>{this.headers=new Map,t.split(` +`).forEach(n=>{let r=n.indexOf(":");if(r>0){let o=n.slice(0,r),i=n.slice(r+1).trim();this.addHeaderEntry(o,i)}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((n,r)=>{this.addHeaderEntry(r,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([n,r])=>{this.setHeaderEntries(n,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){let n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){let n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if(typeof r=="string"&&(r=[r]),r.length===0)return;this.maybeSetNormalizedName(t.name,n);let o=(t.op==="a"?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":let i=t.value;if(!i)this.headers.delete(n),this.normalizedNames.delete(n);else{let s=this.headers.get(n);if(!s)return;s=s.filter(a=>i.indexOf(a)===-1),s.length===0?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}break}}addHeaderEntry(t,n){let r=t.toLowerCase();this.maybeSetNormalizedName(t,r),this.headers.has(r)?this.headers.get(r).push(n):this.headers.set(r,[n])}setHeaderEntries(t,n){let r=(Array.isArray(n)?n:[n]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}};var fs=class{encodeKey(t){return Eg(t)}encodeValue(t){return Eg(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}};function mC(e,t){let n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{let i=o.indexOf("="),[s,a]=i==-1?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],c=n.get(s)||[];c.push(a),n.set(s,c)}),n}var yC=/%(\d[a-f0-9])/gi,vC={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Eg(e){return encodeURIComponent(e).replace(yC,(t,n)=>vC[n]??t)}function ds(e){return`${e}`}var vt=class e{map;encoder;updates=null;cloneFrom=null;constructor(t={}){if(this.encoder=t.encoder||new fs,t.fromString){if(t.fromObject)throw new v(2805,!1);this.map=mC(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{let r=t.fromObject[n],o=Array.isArray(r)?r.map(ds):[ds(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();let n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){let n=[];return Object.keys(t).forEach(r=>{let o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{let n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>t!=="").join("&")}clone(t){let n=new e({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":let n=(t.op==="a"?this.map.get(t.param):void 0)||[];n.push(ds(t.value)),this.map.set(t.param,n);break;case"d":if(t.value!==void 0){let r=this.map.get(t.param)||[],o=r.indexOf(ds(t.value));o!==-1&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}else{this.map.delete(t.param);break}}}),this.cloneFrom=this.updates=null)}};var ps=class{map=new Map;set(t,n){return this.map.set(t,n),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}};function DC(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function wg(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function Ig(e){return typeof Blob<"u"&&e instanceof Blob}function bg(e){return typeof FormData<"u"&&e instanceof FormData}function EC(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}var Cg="Content-Type",_g="Accept",Tg="X-Request-URL",Sg="text/plain",Ng="application/json",wC=`${Ng}, ${Sg}, */*`,zn=class e{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(t,n,r,o){this.url=n,this.method=t.toUpperCase();let i;if(DC(this.method)||o?(this.body=r!==void 0?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params),this.transferCache=i.transferCache),this.headers??=new Tt,this.context??=new ps,!this.params)this.params=new vt,this.urlWithParams=n;else{let s=this.params.toString();if(s.length===0)this.urlWithParams=n;else{let a=n.indexOf("?"),c=a===-1?"?":ap.set(d,t.setHeaders[d]),u)),t.setParams&&(l=Object.keys(t.setParams).reduce((p,d)=>p.set(d,t.setParams[d]),l)),new e(n,r,s,{params:l,headers:u,context:f,reportProgress:c,responseType:o,withCredentials:a,transferCache:i})}},rn=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(rn||{}),Wn=class{headers;status;statusText;url;ok;type;constructor(t,n=200,r="OK"){this.headers=t.headers||new Tt,this.status=t.status!==void 0?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}},hs=class e extends Wn{constructor(t={}){super(t)}type=rn.ResponseHeader;clone(t={}){return new e({headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},zr=class e extends Wn{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=rn.Response;clone(t={}){return new e({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},Gr=class extends Wn{name="HttpErrorResponse";message;error;ok=!1;constructor(t){super(t,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${t.url||"(unknown url)"}`:this.message=`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}},IC=200,bC=204;function Ju(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}var xg=(()=>{class e{handler;constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof zn)i=n;else{let c;o.headers instanceof Tt?c=o.headers:c=new Tt(o.headers);let u;o.params&&(o.params instanceof vt?u=o.params:u=new vt({fromObject:o.params})),i=new zn(n,r,o.body!==void 0?o.body:null,{headers:c,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}let s=_o(i).pipe(Zs(c=>this.handler.handle(c)));if(n instanceof zn||o.observe==="events")return s;let a=s.pipe(be(c=>c instanceof zr));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(ne(c=>{if(c.body!==null&&!(c.body instanceof ArrayBuffer))throw new v(2806,!1);return c.body}));case"blob":return a.pipe(ne(c=>{if(c.body!==null&&!(c.body instanceof Blob))throw new v(2807,!1);return c.body}));case"text":return a.pipe(ne(c=>{if(c.body!==null&&typeof c.body!="string")throw new v(2808,!1);return c.body}));case"json":default:return a.pipe(ne(c=>c.body))}case"response":return a;default:throw new v(2809,!1)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:new vt().append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,Ju(o,r))}post(n,r,o={}){return this.request("POST",n,Ju(o,r))}put(n,r,o={}){return this.request("PUT",n,Ju(o,r))}static \u0275fac=function(r){return new(r||e)(b(Gn))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})();var CC=new E("");function Ag(e,t){return t(e)}function _C(e,t){return(n,r)=>t.intercept(n,{handle:o=>e(o,r)})}function MC(e,t,n){return(r,o)=>_i(n,()=>t(r,i=>e(i,o)))}var Rg=new E(""),el=new E(""),Og=new E(""),tl=new E("",{providedIn:"root",factory:()=>!0});function TC(){let e=null;return(t,n)=>{e===null&&(e=(m(Rg,{optional:!0})??[]).reduceRight(_C,Ag));let r=m(en);if(m(tl)){let i=r.add();return e(t,n).pipe(Ao(()=>r.remove(i)))}else return e(t,n)}}var gs=(()=>{class e extends Gn{backend;injector;chain=null;pendingTasks=m(en);contributeToStability=m(tl);constructor(n,r){super(),this.backend=n,this.injector=r}handle(n){if(this.chain===null){let r=Array.from(new Set([...this.injector.get(el),...this.injector.get(Og,[])]));this.chain=r.reduceRight((o,i)=>MC(o,i,this.injector),Ag)}if(this.contributeToStability){let r=this.pendingTasks.add();return this.chain(n,o=>this.backend.handle(o)).pipe(Ao(()=>this.pendingTasks.remove(r)))}else return this.chain(n,r=>this.backend.handle(r))}static \u0275fac=function(r){return new(r||e)(b($r),b(qe))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})();var SC=/^\)\]\}',?\n/,NC=RegExp(`^${Tg}:`,"m");function xC(e){return"responseURL"in e&&e.responseURL?e.responseURL:NC.test(e.getAllResponseHeaders())?e.getResponseHeader(Tg):null}var Xu=(()=>{class e{xhrFactory;constructor(n){this.xhrFactory=n}handle(n){if(n.method==="JSONP")throw new v(-2800,!1);let r=this.xhrFactory;return(r.\u0275loadImpl?pe(r.\u0275loadImpl()):_o(null)).pipe(Pt(()=>new F(i=>{let s=r.build();if(s.open(n.method,n.urlWithParams),n.withCredentials&&(s.withCredentials=!0),n.headers.forEach((g,w)=>s.setRequestHeader(g,w.join(","))),n.headers.has(_g)||s.setRequestHeader(_g,wC),!n.headers.has(Cg)){let g=n.detectContentTypeHeader();g!==null&&s.setRequestHeader(Cg,g)}if(n.responseType){let g=n.responseType.toLowerCase();s.responseType=g!=="json"?g:"text"}let a=n.serializeBody(),c=null,u=()=>{if(c!==null)return c;let g=s.statusText||"OK",w=new Tt(s.getAllResponseHeaders()),x=xC(s)||n.url;return c=new hs({headers:w,status:s.status,statusText:g,url:x}),c},l=()=>{let{headers:g,status:w,statusText:x,url:ie}=u(),se=null;w!==bC&&(se=typeof s.response>"u"?s.responseText:s.response),w===0&&(w=se?IC:0);let Zn=w>=200&&w<300;if(n.responseType==="json"&&typeof se=="string"){let vs=se;se=se.replace(SC,"");try{se=se!==""?JSON.parse(se):null}catch(Ds){se=vs,Zn&&(Zn=!1,se={error:Ds,text:se})}}Zn?(i.next(new zr({body:se,headers:g,status:w,statusText:x,url:ie||void 0})),i.complete()):i.error(new Gr({error:se,headers:g,status:w,statusText:x,url:ie||void 0}))},f=g=>{let{url:w}=u(),x=new Gr({error:g,status:s.status||0,statusText:s.statusText||"Unknown Error",url:w||void 0});i.error(x)},p=!1,d=g=>{p||(i.next(u()),p=!0);let w={type:rn.DownloadProgress,loaded:g.loaded};g.lengthComputable&&(w.total=g.total),n.responseType==="text"&&s.responseText&&(w.partialText=s.responseText),i.next(w)},h=g=>{let w={type:rn.UploadProgress,loaded:g.loaded};g.lengthComputable&&(w.total=g.total),i.next(w)};return s.addEventListener("load",l),s.addEventListener("error",f),s.addEventListener("timeout",f),s.addEventListener("abort",f),n.reportProgress&&(s.addEventListener("progress",d),a!==null&&s.upload&&s.upload.addEventListener("progress",h)),s.send(a),i.next({type:rn.Sent}),()=>{s.removeEventListener("error",f),s.removeEventListener("abort",f),s.removeEventListener("load",l),s.removeEventListener("timeout",f),n.reportProgress&&(s.removeEventListener("progress",d),a!==null&&s.upload&&s.upload.removeEventListener("progress",h)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(r){return new(r||e)(b(nn))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),kg=new E(""),AC="XSRF-TOKEN",RC=new E("",{providedIn:"root",factory:()=>AC}),OC="X-XSRF-TOKEN",kC=new E("",{providedIn:"root",factory:()=>OC}),Wr=class{},FC=(()=>{class e{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(n,r){this.doc=n,this.cookieName=r}getToken(){let n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=jr(n,this.cookieName),this.lastCookieString=n),this.lastToken}static \u0275fac=function(r){return new(r||e)(b(q),b(RC))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),PC=/^(?:https?:)?\/\//i;function LC(e,t){if(!m(kg)||e.method==="GET"||e.method==="HEAD"||PC.test(e.url))return t(e);let n=m(Wr).getToken(),r=m(kC);return n!=null&&!e.headers.has(r)&&(e=e.clone({headers:e.headers.set(r,n)})),t(e)}var nl=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(nl||{});function jC(e,t){return{\u0275kind:e,\u0275providers:t}}function VC(...e){let t=[xg,Xu,gs,{provide:Gn,useExisting:gs},{provide:$r,useFactory:()=>m(CC,{optional:!0})??m(Xu)},{provide:el,useValue:LC,multi:!0},{provide:kg,useValue:!0},{provide:Wr,useClass:FC}];for(let n of e)t.push(...n.\u0275providers);return Ii(t)}var Mg=new E("");function BC(){return jC(nl.LegacyInterceptors,[{provide:Mg,useFactory:TC},{provide:el,useExisting:Mg,multi:!0}])}var AF=(()=>{class e{_doc;constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}static \u0275fac=function(r){return new(r||e)(b(q))};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var rl=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:function(r){let o=null;return r?o=new(r||e):o=b(HC),o},providedIn:"root"})}return e})(),HC=(()=>{class e extends rl{_doc;constructor(n){super(),this._doc=n}sanitize(n,r){if(r==null)return null;switch(n){case Te.NONE:return r;case Te.HTML:return pt(r,"HTML")?xe(r):nu(this._doc,String(r)).toString();case Te.STYLE:return pt(r,"Style")?xe(r):r;case Te.SCRIPT:if(pt(r,"Script"))return xe(r);throw new v(5200,!1);case Te.URL:return pt(r,"URL")?xe(r):ki(String(r));case Te.RESOURCE_URL:if(pt(r,"ResourceURL"))return xe(r);throw new v(5201,!1);default:throw new v(5202,!1)}}bypassSecurityTrustHtml(n){return cp(n)}bypassSecurityTrustStyle(n){return up(n)}bypassSecurityTrustScript(n){return lp(n)}bypassSecurityTrustUrl(n){return dp(n)}bypassSecurityTrustResourceUrl(n){return fp(n)}static \u0275fac=function(r){return new(r||e)(b(q))};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ys=new E("HIGHLIGHT_OPTIONS");var qn=function(e){return e.FULL_WITH_CORE_LIBRARY_IMPORTS="The full library and the core library were imported, only one of them should be imported!",e.FULL_WITH_LANGUAGE_IMPORTS="The highlighting languages were imported they are not needed!",e.CORE_WITHOUT_LANGUAGE_IMPORTS="The highlighting languages were not imported!",e.LANGUAGE_WITHOUT_CORE_IMPORTS="The core library was not imported!",e.NO_FULL_AND_NO_CORE_IMPORTS="Highlight.js library was not imported!",e}(qn||{}),UC=(()=>{class e{constructor(){this.document=m(q),this.isPlatformBrowser=$n(m(Ve)),this.options=m(ys,{optional:!0}),this._ready=new Ot(null),this.ready=Ws(this._ready.asObservable().pipe(be(n=>!!n))),this.isPlatformBrowser&&(this.document.defaultView.hljs?this._ready.next(this.document.defaultView.hljs):this._loadLibrary().pipe(Pt(n=>this.options?.lineNumbersLoader?(this.document.defaultView.hljs=n,this.loadLineNumbers().pipe(ur(r=>{r.activateLineNumbers(),this._ready.next(n)}))):(this._ready.next(n),$e)),ar(n=>(console.error("[HLJS] ",n),this._ready.error(n),$e))).subscribe(),this.options?.themePath&&this.loadTheme(this.options.themePath))}_loadLibrary(){if(this.options){if(this.options.fullLibraryLoader&&this.options.coreLibraryLoader)return Ft(()=>qn.FULL_WITH_CORE_LIBRARY_IMPORTS);if(this.options.fullLibraryLoader&&this.options.languages)return Ft(()=>qn.FULL_WITH_LANGUAGE_IMPORTS);if(this.options.coreLibraryLoader&&!this.options.languages)return Ft(()=>qn.CORE_WITHOUT_LANGUAGE_IMPORTS);if(!this.options.coreLibraryLoader&&this.options.languages)return Ft(()=>qn.LANGUAGE_WITHOUT_CORE_IMPORTS);if(this.options.fullLibraryLoader)return this.loadFullLibrary();if(this.options.coreLibraryLoader&&this.options.languages&&Object.keys(this.options.languages).length)return this.loadCoreLibrary().pipe(Pt(n=>this._loadLanguages(n)))}return Ft(()=>qn.NO_FULL_AND_NO_CORE_IMPORTS)}_loadLanguages(n){let r=Object.entries(this.options.languages).map(([o,i])=>ol(i()).pipe(ur(s=>n.registerLanguage(o,s))));return qs(r).pipe(ne(()=>n))}loadCoreLibrary(){return ol(this.options.coreLibraryLoader())}loadFullLibrary(){return ol(this.options.fullLibraryLoader())}loadLineNumbers(){return pe(this.options.lineNumbersLoader())}setTheme(n){this.isPlatformBrowser&&(this._themeLinkElement?this._themeLinkElement.href=n:this.loadTheme(n))}loadTheme(n){this._themeLinkElement=this.document.createElement("link"),this._themeLinkElement.href=n,this._themeLinkElement.type="text/css",this._themeLinkElement.rel="stylesheet",this._themeLinkElement.media="screen,print",this.document.head.appendChild(this._themeLinkElement)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),ol=e=>pe(e).pipe(be(t=>!!t?.default),ne(t=>t.default)),sl=(()=>{class e{constructor(){this.loader=m(UC),this.options=m(ys,{optional:!0}),this.hljsSignal=Ri(null),this.hljs=jh(()=>this.hljsSignal()),this.loader.ready.then(n=>{this.hljsSignal.set(n),this.options?.highlightOptions&&n.configure(this.options.highlightOptions)})}highlight(n,r){return Z(this,null,function*(){return(yield this.loader.ready).highlight(n,r)})}highlightAuto(n,r){return Z(this,null,function*(){return(yield this.loader.ready).highlightAuto(n,r)})}highlightElement(n){return Z(this,null,function*(){(yield this.loader.ready).highlightElement(n)})}highlightAll(){return Z(this,null,function*(){(yield this.loader.ready).highlightAll()})}configure(n){return Z(this,null,function*(){(yield this.loader.ready).configure(n)})}registerLanguage(n,r){return Z(this,null,function*(){(yield this.loader.ready).registerLanguage(n,r)})}unregisterLanguage(n){return Z(this,null,function*(){(yield this.loader.ready).unregisterLanguage(n)})}registerAliases(o,i){return Z(this,arguments,function*(n,{languageName:r}){(yield this.loader.ready).registerAliases(n,{languageName:r})})}listLanguages(){return Z(this,null,function*(){return(yield this.loader.ready).listLanguages()})}getLanguage(n){return Z(this,null,function*(){return(yield this.loader.ready).getLanguage(n)})}safeMode(){return Z(this,null,function*(){(yield this.loader.ready).safeMode()})}debugMode(){return Z(this,null,function*(){(yield this.loader.ready).debugMode()})}lineNumbersBlock(n,r){return Z(this,null,function*(){let o=yield this.loader.ready;o.lineNumbersBlock&&o.lineNumbersBlock(n,r)})}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),il;function $C(){if(!il)try{il=window?.trustedTypes?.createPolicy("ngx-highlightjs",{createHTML:e=>e})}catch{}return il}function zC(e){return $C()?.createHTML(e)||e}var ms=(()=>{class e{constructor(){this._hljs=m(sl),this._nativeElement=m(Ne).nativeElement,this._sanitizer=m(rl),this._platform=m(Ve),$n(this._platform)&&(Hn(()=>{let n=this.code();this.setTextContent(n||""),n&&this.highlightElement(n)}),Hn(()=>{let n=this.highlightResult();this.setInnerHTML(n?.value),this.highlighted.emit(n)}))}setTextContent(n){requestAnimationFrame(()=>this._nativeElement.textContent=n)}setInnerHTML(n){requestAnimationFrame(()=>this._nativeElement.innerHTML=zC(this._sanitizer.sanitize(Te.HTML,n)||""))}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=Be({type:e,standalone:!1})}}return e})(),$F=(()=>{class e extends ms{constructor(){super(...arguments),this.code=Gf(null,{alias:"highlight"}),this.highlightResult=Ri(null),this.highlighted=new We}highlightElement(n){return Z(this,null,function*(){let r=yield this._hljs.highlight(n,{language:this.language,ignoreIllegals:this.ignoreIllegals});this.highlightResult.set(r)})}static{this.\u0275fac=(()=>{let n;return function(o){return(n||(n=Pf(e)))(o||e)}})()}static{this.\u0275dir=Be({type:e,selectors:[["","highlight",""]],hostVars:2,hostBindings:function(r,o){r&2&&Tu("hljs",!0)},inputs:{code:[1,"highlight","code"],language:"language",ignoreIllegals:[2,"ignoreIllegals","ignoreIllegals",Ar]},outputs:{highlighted:"highlighted"},features:[Nh([{provide:ms,useExisting:e}]),Eu]})}}return e})();var zF=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=gt({type:e})}static{this.\u0275inj=lt({})}}return e})();function JF(){let e=window,t=document,n="hljs-ln",r="hljs-ln-line",o="hljs-ln-code",i="hljs-ln-numbers",s="hljs-ln-n",a="data-line-number",c=/\r\n|\r|\n/g;e.hljs?(e.hljs.initLineNumbersOnLoad=d,e.hljs.lineNumbersBlock=w,e.hljs.lineNumbersValue=x,p()):e.console.error("highlight.js not detected!");function u(y){let D=y;for(;D;){if(D.className&&D.className.indexOf("hljs-ln-code")!==-1)return!0;D=D.parentNode}return!1}function l(y){let D=y;for(;D.nodeName!=="TABLE";)D=D.parentNode;return D}function f(y){let D=y.toString(),R=y.anchorNode;for(;R.nodeName!=="TD";)R=R.parentNode;let $=y.focusNode;for(;$.nodeName!=="TD";)$=$.parentNode;let X=parseInt(R.dataset.lineNumber),nt=parseInt($.dataset.lineNumber);if(X!=nt){let on=R.textContent,sn=$.textContent;if(X>nt){let St=X;X=nt,nt=St,St=on,on=sn,sn=St}for(;D.indexOf(on)!==0;)on=on.slice(1);for(;D.lastIndexOf(sn)===-1;)sn=sn.slice(0,-1);let Es=on,Bg=l(R);for(let St=X+1;St1||D.singleLine){let $="";for(let X=0,nt=R.length;X
{6}',[r,i,s,a,o,X+D.startFrom,R[X].length>0?R[X]:" "]);return Yn('{1}
',[n,$])}return y}function Zn(y,D){return D=D||{},{singleLine:vs(D),startFrom:Ds(y,D)}}function vs(y){return y.singleLine?y.singleLine:!1}function Ds(y,D){let $=1;isFinite(D.startFrom)&&($=D.startFrom);let X=jg(y,"data-ln-start-from");return X!==null&&($=Vg(X,1)),$}function al(y){let D=y.childNodes;for(let R in D)if(D.hasOwnProperty(R)){let $=D[R];Pg($.textContent)>0&&($.childNodes.length>0?al($):Fg($.parentNode))}}function Fg(y){let D=y.className;if(!/hljs-/.test(D))return;let R=cl(y.innerHTML),$="";for(let X=0;X0?R[X]:" ";$+=Yn(`{1} +`,[D,nt])}y.innerHTML=$.trim()}function cl(y){return y.length===0?[]:y.split(c)}function Pg(y){return(y.trim().match(c)||[]).length}function Lg(y){e.setTimeout(y,0)}function Yn(y,D){return y.replace(/\{(\d+)\}/g,function(R,$){return D[$]!==void 0?D[$]:R})}function jg(y,D){return y.hasAttribute(D)?y.getAttribute(D):null}function Vg(y,D){if(!y)return D;let R=Number(y);return isFinite(R)?R:D}}var XF=(()=>{class e{constructor(){this._platform=m(Ve),this.options=m(ys)?.lineNumbersOptions,this._hljs=m(sl),this._highlight=m(ms),this._nativeElement=m(Ne).nativeElement,this.startFrom=this.options?.startFrom,this.singleLine=this.options?.singleLine,$n(this._platform)&&Hn(()=>{this._highlight.highlightResult()&&this.addLineNumbers()})}addLineNumbers(){this.destroyLineNumbersObserver(),requestAnimationFrame(()=>Z(this,null,function*(){yield this._hljs.lineNumbersBlock(this._nativeElement,{startFrom:this.startFrom,singleLine:this.singleLine}),this._lineNumbersObs=new MutationObserver(()=>{this._nativeElement.firstElementChild?.tagName.toUpperCase()==="TABLE"&&this._nativeElement.classList.add("hljs-line-numbers"),this.destroyLineNumbersObserver()}),this._lineNumbersObs.observe(this._nativeElement,{childList:!0})}))}destroyLineNumbersObserver(){this._lineNumbersObs&&(this._lineNumbersObs.disconnect(),this._lineNumbersObs=null)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=Be({type:e,selectors:[["","highlight","","lineNumbers",""],["","highlightAuto","","lineNumbers",""]],inputs:{startFrom:[2,"startFrom","startFrom",ku],singleLine:[2,"singleLine","singleLine",Ar]}})}}return e})();export{Y as a,em as b,F as c,$s as d,zs as e,ye as f,Ot as g,rr as h,$e as i,pe as j,_o as k,Ft as l,lm as m,it as n,fm as o,ne as p,wm as q,st as r,ir as s,fn as t,bm as u,qs as v,sr as w,Cm as x,be as y,Mm as z,Sm as A,ar as B,Zs as C,Nm as D,cr as E,pn as F,Ys as G,xm as H,Am as I,Ao as J,km as K,Ks as L,Fm as M,Pm as N,Lm as O,Xs as P,jm as Q,Vm as R,Bm as S,Pt as T,Hm as U,Um as V,ur as W,v as X,Vd as Y,M as Z,lt as _,KA as $,E as aa,k as ba,b as ca,m as da,Mc as ea,Zd as fa,Ii as ga,qe as ha,_i as ia,sf as ja,JA as ka,XA as la,eR as ma,tR as na,Pf as oa,jf as pa,_e as qa,td as ra,Fn as sa,en as ta,We as ua,z as va,Qe as wa,Gf as xa,Ne as ya,Tv as za,Ri as Aa,Aa as Ba,Qc as Ca,Ve as Da,nR as Ea,Jc as Fa,Vn as Ga,Bv as Ha,Hv as Ia,Te as Ja,rR as Ka,ED as La,oR as Ma,iR as Na,Qt as Oa,Hi as Pa,Tn as Qa,Ui as Ra,K as Sa,fR as Ta,tn as Ua,hR as Va,Sn as Wa,Cw as Xa,Mw as Ya,yR as Za,gt as _a,Be as $a,$i as ab,Eu as bb,Uw as cb,Gw as db,Wi as eb,vR as fb,qw as gb,Jt as hb,Jw as ib,lI as jb,dI as kb,Tu as lb,DR as mb,ER as nb,wR as ob,IR as pb,bR as qb,CR as rb,Eh as sb,wh as tb,bI as ub,Ih as vb,bh as wb,MI as xb,_R as yb,SI as zb,NI as Ab,PI as Bb,MR as Cb,TR as Db,SR as Eb,BI as Fb,NR as Gb,xR as Hb,AR as Ib,RR as Jb,OR as Kb,kR as Lb,FR as Mb,PR as Nb,UI as Ob,Mh as Pb,$I as Qb,zI as Rb,LR as Sb,GI as Tb,qI as Ub,Nh as Vb,jR as Wb,VR as Xb,BR as Yb,HR as Zb,UR as _b,$R as $b,zR as ac,GR as bc,WR as cc,qi as dc,Au as ec,Ar as fc,ku as gc,Fu as hc,jh as ic,Hn as jc,qR as kc,ZR as lc,q as mc,tt as nc,Ib as oc,Un as pc,Yi as qc,zh as rc,Gh as sc,Mb as tc,Vb as uc,ag as vc,Bb as wc,Hb as xc,Ub as yc,Gb as zc,qb as Ac,Zb as Bc,$u as Cc,$n as Dc,gk as Ec,Ku as Fc,fC as Gc,gC as Hc,Tt as Ic,vt as Jc,xg as Kc,Rg as Lc,VC as Mc,BC as Nc,AF as Oc,rl as Pc,ys as Qc,$F as Rc,zF as Sc,JF as Tc,XF as Uc}; diff --git a/matchbox-server/src/main/resources/static/browser/chunk-L46DWUZA.js b/matchbox-server/src/main/resources/static/browser/chunk-L46DWUZA.js deleted file mode 100644 index 502429951f4..00000000000 --- a/matchbox-server/src/main/resources/static/browser/chunk-L46DWUZA.js +++ /dev/null @@ -1 +0,0 @@ -import{e as s}from"./chunk-TSRGIXR5.js";var r=s((l,t)=>{function E(e){let a={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},c={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],o={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[a,c,e.QUOTE_STRING_MODE,o,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}t.exports=E});export default r(); diff --git a/matchbox-server/src/main/resources/static/browser/chunk-OHNOGIP5.js b/matchbox-server/src/main/resources/static/browser/chunk-OHNOGIP5.js deleted file mode 100644 index 5e5e5cdcd7b..00000000000 --- a/matchbox-server/src/main/resources/static/browser/chunk-OHNOGIP5.js +++ /dev/null @@ -1,11 +0,0 @@ -import{a as Q,b as ae,g as Z}from"./chunk-TSRGIXR5.js";function ws(e,t){return Object.is(e,t)}var re=null,tr=!1,Is=1,de=Symbol("SIGNAL");function F(e){let t=re;return re=e,t}function Ku(){return re}function Og(){return tr}var Bt={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Wr(e){if(tr)throw new Error("");if(re===null)return;re.consumerOnSignalRead(e);let t=re.nextProducerIndex++;if(Zr(re),te.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function or(e){Zr(e);for(let t=0;t0}function Zr(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function nl(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function rl(e){return e.producerNode!==void 0}function Cs(e){let t=Object.create(Pg);t.computation=e;let n=()=>{if(bs(t),Wr(t),t.value===Gr)throw t.error;return t.value};return n[de]=t,n}var ys=Symbol("UNSET"),vs=Symbol("COMPUTING"),Gr=Symbol("ERRORED"),Pg=ae(Q({},Bt),{value:ys,dirty:!0,error:null,equal:ws,producerMustRecompute(e){return e.value===ys||e.value===vs},producerRecomputeValue(e){if(e.value===vs)throw new Error("Detected cycle in computations.");let t=e.value;e.value=vs;let n=vn(e),r;try{r=e.computation()}catch(o){r=Gr,e.error=o}finally{rr(e,n)}if(t!==ys&&t!==Gr&&r!==Gr&&e.equal(t,r)){e.value=t;return}e.value=r,e.version++}});function kg(){throw new Error}var ol=kg;function il(){ol()}function sl(e){ol=e}var Lg=null;function al(e){let t=Object.create(Ms);t.value=e;let n=()=>(Wr(t),t.value);return n[de]=t,n}function Yr(e,t){Xu()||il(),e.equal(e.value,t)||(e.value=t,jg(e))}function cl(e,t){Xu()||il(),Yr(e,t(e.value))}var Ms=ae(Q({},Bt),{equal:ws,value:void 0});function jg(e){e.version++,Fg(),Ju(e),Lg?.()}function ul(e,t,n){let r=Object.create(Vg);n&&(r.consumerAllowSignalWrites=!0),r.fn=e,r.schedule=t;let o=c=>{r.cleanupFn=c};function i(c){return c.fn===null&&c.schedule===null}function s(c){i(c)||(Dn(c),c.cleanupFn(),c.fn=null,c.schedule=null,c.cleanupFn=Es)}let a=()=>{if(r.fn===null)return;if(Og())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(r.dirty=!1,r.hasRun&&!or(r))return;r.hasRun=!0;let c=vn(r);try{r.cleanupFn(),r.cleanupFn=Es,r.fn(o)}finally{rr(r,c)}};return r.ref={notify:()=>el(r),run:a,cleanup:()=>r.cleanupFn(),destroy:()=>s(r),[de]:r},r.ref}var Es=()=>{},Vg=ae(Q({},Bt),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:e=>{e.schedule!==null&&e.schedule(e.ref)},hasRun:!1,cleanupFn:Es});function w(e){return typeof e=="function"}function It(e){let n=e(r=>{Error.call(r),r.stack=new Error().stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Qr=It(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription: -${n.map((r,o)=>`${o+1}) ${r.toString()}`).join(` - `)}`:"",this.name="UnsubscriptionError",this.errors=n});function Ht(e,t){if(e){let n=e.indexOf(t);0<=n&&e.splice(n,1)}}var J=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(let i of n)i.remove(this);else n.remove(this);let{initialTeardown:r}=this;if(w(r))try{r()}catch(i){t=i instanceof Qr?i.errors:[i]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let i of o)try{ll(i)}catch(s){t=t??[],s instanceof Qr?t=[...t,...s.errors]:t.push(s)}}if(t)throw new Qr(t)}}add(t){var n;if(t&&t!==this)if(this.closed)ll(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}}_hasParent(t){let{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){let{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){let{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&Ht(n,t)}remove(t){let{_finalizers:n}=this;n&&Ht(n,t),t instanceof e&&t._removeParent(this)}};J.EMPTY=(()=>{let e=new J;return e.closed=!0,e})();var _s=J.EMPTY;function Kr(e){return e instanceof J||e&&"closed"in e&&w(e.remove)&&w(e.add)&&w(e.unsubscribe)}function ll(e){w(e)?e():e.unsubscribe()}var Be={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var En={setTimeout(e,t,...n){let{delegate:r}=En;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){let{delegate:t}=En;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Jr(e){En.setTimeout(()=>{let{onUnhandledError:t}=Be;if(t)t(e);else throw e})}function Ut(){}var dl=Ts("C",void 0,void 0);function fl(e){return Ts("E",void 0,e)}function hl(e){return Ts("N",e,void 0)}function Ts(e,t,n){return{kind:e,value:t,error:n}}var $t=null;function wn(e){if(Be.useDeprecatedSynchronousErrorHandling){let t=!$t;if(t&&($t={errorThrown:!1,error:null}),e(),t){let{errorThrown:n,error:r}=$t;if($t=null,n)throw r}}else e()}function pl(e){Be.useDeprecatedSynchronousErrorHandling&&$t&&($t.errorThrown=!0,$t.error=e)}var zt=class extends J{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Kr(t)&&t.add(this)):this.destination=Ug}static create(t,n,r){return new He(t,n,r)}next(t){this.isStopped?Ns(hl(t),this):this._next(t)}error(t){this.isStopped?Ns(fl(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Ns(dl,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},Bg=Function.prototype.bind;function Ss(e,t){return Bg.call(e,t)}var xs=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){Xr(r)}}error(t){let{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){Xr(r)}else Xr(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){Xr(n)}}},He=class extends zt{constructor(t,n,r){super();let o;if(w(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&Be.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&Ss(t.next,i),error:t.error&&Ss(t.error,i),complete:t.complete&&Ss(t.complete,i)}):o=t}this.destination=new xs(o)}};function Xr(e){Be.useDeprecatedSynchronousErrorHandling?pl(e):Jr(e)}function Hg(e){throw e}function Ns(e,t){let{onStoppedNotification:n}=Be;n&&En.setTimeout(()=>n(e,t))}var Ug={closed:!0,next:Ut,error:Hg,complete:Ut};var In=typeof Symbol=="function"&&Symbol.observable||"@@observable";function me(e){return e}function $g(...e){return As(e)}function As(e){return e.length===0?me:e.length===1?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}var O=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){let r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){let i=Gg(n)?n:new He(n,r,o);return wn(()=>{let{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return r=gl(r),new r((o,i)=>{let s=new He({next:a=>{try{n(a)}catch(c){i(c),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(n)}[In](){return this}pipe(...n){return As(n)(this)}toPromise(n){return n=gl(n),new n((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function gl(e){var t;return(t=e??Be.Promise)!==null&&t!==void 0?t:Promise}function zg(e){return e&&w(e.next)&&w(e.error)&&w(e.complete)}function Gg(e){return e&&e instanceof zt||zg(e)&&Kr(e)}function Rs(e){return w(e?.lift)}function M(e){return t=>{if(Rs(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function E(e,t,n,r,o){return new Os(e,t,n,r,o)}var Os=class extends zt{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(c){t.error(c)}}:super._next,this._error=o?function(a){try{o(a)}catch(c){t.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:n}=this;super.unsubscribe(),!n&&((t=this.onFinalize)===null||t===void 0||t.call(this))}}};function Fs(){return M((e,t)=>{let n=null;e._refCount++;let r=E(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount){n=null;return}let o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}var Ps=class extends O{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,Rs(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){let t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new J;let n=this.getSubject();t.add(this.source.subscribe(E(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=J.EMPTY)}return t}refCount(){return Fs()(this)}};var ml=It(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Ie=(()=>{class e extends O{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){let r=new eo(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new ml}next(n){wn(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(n)}})}error(n){wn(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;let{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){wn(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return((n=this.observers)===null||n===void 0?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){let{hasError:r,isStopped:o,observers:i}=this;return r||o?_s:(this.currentObservers=null,i.push(n),new J(()=>{this.currentObservers=null,Ht(i,n)}))}_checkFinalizedStatuses(n){let{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){let n=new O;return n.source=this,n}}return e.create=(t,n)=>new eo(t,n),e})(),eo=class extends Ie{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.next)===null||r===void 0||r.call(n,t)}error(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.error)===null||r===void 0||r.call(n,t)}complete(){var t,n;(n=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||n===void 0||n.call(t)}_subscribe(t){var n,r;return(r=(n=this.source)===null||n===void 0?void 0:n.subscribe(t))!==null&&r!==void 0?r:_s}};var Gt=class extends Ie{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){let n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){let{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}};var ir={now(){return(ir.delegate||Date).now()},delegate:void 0};var sr=class extends Ie{constructor(t=1/0,n=1/0,r=ir){super(),this._bufferSize=t,this._windowTime=n,this._timestampProvider=r,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=n===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,n)}next(t){let{isStopped:n,_buffer:r,_infiniteTimeWindow:o,_timestampProvider:i,_windowTime:s}=this;n||(r.push(t),!o&&r.push(i.now()+s)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();let n=this._innerSubscribe(t),{_infiniteTimeWindow:r,_buffer:o}=this,i=o.slice();for(let s=0;se.complete());function oo(e){return e&&w(e.schedule)}function ks(e){return e[e.length-1]}function io(e){return w(ks(e))?e.pop():void 0}function Qe(e){return oo(ks(e))?e.pop():void 0}function vl(e,t){return typeof ks(e)=="number"?e.pop():t}function El(e,t,n,r){function o(i){return i instanceof n?i:new n(function(s){s(i)})}return new(n||(n=Promise))(function(i,s){function a(l){try{u(r.next(l))}catch(d){s(d)}}function c(l){try{u(r.throw(l))}catch(d){s(d)}}function u(l){l.done?i(l.value):o(l.value).then(a,c)}u((r=r.apply(e,t||[])).next())})}function Dl(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Wt(e){return this instanceof Wt?(this.v=e,this):new Wt(e)}function wl(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(f){return function(p){return Promise.resolve(p).then(f,d)}}function a(f,p){r[f]&&(o[f]=function(g){return new Promise(function(D,N){i.push([f,g,D,N])>1||c(f,g)})},p&&(o[f]=p(o[f])))}function c(f,p){try{u(r[f](p))}catch(g){h(i[0][3],g)}}function u(f){f.value instanceof Wt?Promise.resolve(f.value.v).then(l,d):h(i[0][2],f)}function l(f){c("next",f)}function d(f){c("throw",f)}function h(f,p){f(p),i.shift(),i.length&&c(i[0][0],i[0][1])}}function Il(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Dl=="function"?Dl(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),o(a,c,s.done,s.value)})}}function o(i,s,a,c){Promise.resolve(c).then(function(u){i({value:u,done:a})},s)}}var Cn=e=>e&&typeof e.length=="number"&&typeof e!="function";function so(e){return w(e?.then)}function ao(e){return w(e[In])}function co(e){return Symbol.asyncIterator&&w(e?.[Symbol.asyncIterator])}function uo(e){return new TypeError(`You provided ${e!==null&&typeof e=="object"?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function Wg(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var lo=Wg();function fo(e){return w(e?.[lo])}function ho(e){return wl(this,arguments,function*(){let n=e.getReader();try{for(;;){let{value:r,done:o}=yield Wt(n.read());if(o)return yield Wt(void 0);yield yield Wt(r)}}finally{n.releaseLock()}})}function po(e){return w(e?.getReader)}function P(e){if(e instanceof O)return e;if(e!=null){if(ao(e))return qg(e);if(Cn(e))return Zg(e);if(so(e))return Yg(e);if(co(e))return bl(e);if(fo(e))return Qg(e);if(po(e))return Kg(e)}throw uo(e)}function qg(e){return new O(t=>{let n=e[In]();if(w(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Zg(e){return new O(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,Jr)})}function Qg(e){return new O(t=>{for(let n of e)if(t.next(n),t.closed)return;t.complete()})}function bl(e){return new O(t=>{Jg(e,t).catch(n=>t.error(n))})}function Kg(e){return bl(ho(e))}function Jg(e,t){var n,r,o,i;return El(this,void 0,void 0,function*(){try{for(n=Il(e);r=yield n.next(),!r.done;){let s=r.value;if(t.next(s),t.closed)return}}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})}function fe(e,t,n,r=0,o=!1){let i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function go(e,t=0){return M((n,r)=>{n.subscribe(E(r,o=>fe(r,e,()=>r.next(o),t),()=>fe(r,e,()=>r.complete(),t),o=>fe(r,e,()=>r.error(o),t)))})}function mo(e,t=0){return M((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function Cl(e,t){return P(e).pipe(mo(t),go(t))}function Ml(e,t){return P(e).pipe(mo(t),go(t))}function _l(e,t){return new O(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function Tl(e,t){return new O(n=>{let r;return fe(n,t,()=>{r=e[lo](),fe(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){n.error(s);return}i?n.complete():n.next(o)},0,!0)}),()=>w(r?.return)&&r.return()})}function yo(e,t){if(!e)throw new Error("Iterable cannot be null");return new O(n=>{fe(n,t,()=>{let r=e[Symbol.asyncIterator]();fe(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function Sl(e,t){return yo(ho(e),t)}function Nl(e,t){if(e!=null){if(ao(e))return Cl(e,t);if(Cn(e))return _l(e,t);if(so(e))return Ml(e,t);if(co(e))return yo(e,t);if(fo(e))return Tl(e,t);if(po(e))return Sl(e,t)}throw uo(e)}function ye(e,t){return t?Nl(e,t):P(e)}function vo(...e){let t=Qe(e);return ye(e,t)}function qt(e,t){let n=w(e)?e:()=>e,r=o=>o.error(n());return new O(t?o=>t.schedule(r,0,o):r)}function Xg(e){return!!e&&(e instanceof O||w(e.lift)&&w(e.subscribe))}var ct=It(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Ls(e,t){let n=typeof t=="object";return new Promise((r,o)=>{let i=new He({next:s=>{r(s),i.unsubscribe()},error:o,complete:()=>{n?r(t.defaultValue):o(new ct)}});e.subscribe(i)})}function Do(e){return e instanceof Date&&!isNaN(e)}var em=It(e=>function(n=null){e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=n});function tm(e,t){let{first:n,each:r,with:o=nm,scheduler:i=t??at,meta:s=null}=Do(e)?{first:e}:typeof e=="number"?{each:e}:e;if(n==null&&r==null)throw new TypeError("No timeout provided.");return M((a,c)=>{let u,l,d=null,h=0,f=p=>{l=fe(c,i,()=>{try{u.unsubscribe(),P(o({meta:s,lastValue:d,seen:h})).subscribe(c)}catch(g){c.error(g)}},p)};u=a.subscribe(E(c,p=>{l?.unsubscribe(),h++,c.next(d=p),r>0&&f(r)},void 0,void 0,()=>{l?.closed||l?.unsubscribe(),d=null})),!h&&f(n!=null?typeof n=="number"?n:+n-i.now():r)})}function nm(e){throw new em(e)}function ie(e,t){return M((n,r)=>{let o=0;n.subscribe(E(r,i=>{r.next(e.call(t,i,o++))}))})}var{isArray:rm}=Array;function om(e,t){return rm(t)?e(...t):e(t)}function Mn(e){return ie(t=>om(e,t))}var{isArray:im}=Array,{getPrototypeOf:sm,prototype:am,keys:cm}=Object;function Eo(e){if(e.length===1){let t=e[0];if(im(t))return{args:t,keys:null};if(um(t)){let n=cm(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}function um(e){return e&&typeof e=="object"&&sm(e)===am}function wo(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}function lm(...e){let t=Qe(e),n=io(e),{args:r,keys:o}=Eo(e);if(r.length===0)return ye([],t);let i=new O(dm(r,t,o?s=>wo(o,s):me));return n?i.pipe(Mn(n)):i}function dm(e,t,n=me){return r=>{xl(t,()=>{let{length:o}=e,i=new Array(o),s=o,a=o;for(let c=0;c{let u=ye(e[c],t),l=!1;u.subscribe(E(r,d=>{i[c]=d,l||(l=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}function xl(e,t,n){e?fe(n,e,t):t()}function Al(e,t,n,r,o,i,s,a){let c=[],u=0,l=0,d=!1,h=()=>{d&&!c.length&&!u&&t.complete()},f=g=>u{i&&t.next(g),u++;let D=!1;P(n(g,l++)).subscribe(E(t,N=>{o?.(N),i?f(N):t.next(N)},()=>{D=!0},void 0,()=>{if(D)try{for(u--;c.length&&up(N)):p(N)}h()}catch(N){t.error(N)}}))};return e.subscribe(E(t,f,()=>{d=!0,h()})),()=>{a?.()}}function Ue(e,t,n=1/0){return w(t)?Ue((r,o)=>ie((i,s)=>t(r,i,o,s))(P(e(r,o))),n):(typeof t=="number"&&(n=t),M((r,o)=>Al(r,o,e,n)))}function cr(e=1/0){return Ue(me,e)}function Rl(){return cr(1)}function _n(...e){return Rl()(ye(e,Qe(e)))}function fm(e){return new O(t=>{P(e()).subscribe(t)})}function js(...e){let t=io(e),{args:n,keys:r}=Eo(e),o=new O(i=>{let{length:s}=n;if(!s){i.complete();return}let a=new Array(s),c=s,u=s;for(let l=0;l{d||(d=!0,u--),a[l]=h},()=>c--,void 0,()=>{(!c||!d)&&(u||i.next(r?wo(r,a):a),i.complete())}))}});return t?o.pipe(Mn(t)):o}var hm=["addListener","removeListener"],pm=["addEventListener","removeEventListener"],gm=["on","off"];function Vs(e,t,n,r){if(w(n)&&(r=n,n=void 0),r)return Vs(e,t,n).pipe(Mn(r));let[o,i]=vm(e)?pm.map(s=>a=>e[s](t,a,n)):mm(e)?hm.map(Ol(e,t)):ym(e)?gm.map(Ol(e,t)):[];if(!o&&Cn(e))return Ue(s=>Vs(s,t,n))(P(e));if(!o)throw new TypeError("Invalid event target");return new O(s=>{let a=(...c)=>s.next(1i(a)})}function Ol(e,t){return n=>r=>e[n](t,r)}function mm(e){return w(e.addListener)&&w(e.removeListener)}function ym(e){return w(e.on)&&w(e.off)}function vm(e){return w(e.addEventListener)&&w(e.removeEventListener)}function ur(e=0,t,n=yl){let r=-1;return t!=null&&(oo(t)?n=t:r=t),new O(o=>{let i=Do(e)?+e-n.now():e;i<0&&(i=0);let s=0;return n.schedule(function(){o.closed||(o.next(s++),0<=r?this.schedule(void 0,r):o.complete())},i)})}function Dm(...e){let t=Qe(e),n=vl(e,1/0),r=e;return r.length?r.length===1?P(r[0]):cr(n)(ye(r,t)):Ye}var{isArray:Em}=Array;function Fl(e){return e.length===1&&Em(e[0])?e[0]:e}function Te(e,t){return M((n,r)=>{let o=0;n.subscribe(E(r,i=>e.call(t,i,o++)&&r.next(i)))})}function wm(...e){return e=Fl(e),e.length===1?P(e[0]):new O(Im(e))}function Im(e){return t=>{let n=[];for(let r=0;n&&!t.closed&&r{if(n){for(let i=0;i{let r=!1,o=null,i=null,s=!1,a=()=>{if(i?.unsubscribe(),i=null,r){r=!1;let u=o;o=null,n.next(u)}s&&n.complete()},c=()=>{i=null,s&&n.complete()};t.subscribe(E(n,u=>{r=!0,o=u,i||P(e(u)).subscribe(i=E(n,a,c))},()=>{s=!0,(!r||!i||i.closed)&&n.complete()}))})}function bm(e,t=at){return Pl(()=>ur(e,t))}function lr(e){return M((t,n)=>{let r=null,o=!1,i;r=t.subscribe(E(n,void 0,void 0,s=>{i=P(e(s,lr(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function kl(e,t,n,r,o){return(i,s)=>{let a=n,c=t,u=0;i.subscribe(E(s,l=>{let d=u++;c=a?e(c,l,d):(a=!0,l),r&&s.next(c)},o&&(()=>{a&&s.next(c),s.complete()})))}}function Bs(e,t){return w(t)?Ue(e,t,1):Ue(e,1)}function Cm(e,t=at){return M((n,r)=>{let o=null,i=null,s=null,a=()=>{if(o){o.unsubscribe(),o=null;let u=i;i=null,r.next(u)}};function c(){let u=s+e,l=t.now();if(l{i=u,s=t.now(),o||(o=t.schedule(c,e),r.add(o))},()=>{a(),r.complete()},void 0,()=>{i=o=null}))})}function dr(e){return M((t,n)=>{let r=!1;t.subscribe(E(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function Tn(e){return e<=0?()=>Ye:M((t,n)=>{let r=0;t.subscribe(E(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Ll(){return M((e,t)=>{e.subscribe(E(t,Ut))})}function Hs(e){return ie(()=>e)}function Us(e,t){return t?n=>_n(t.pipe(Tn(1),Ll()),n.pipe(Us(e))):Ue((n,r)=>P(e(n,r)).pipe(Tn(1),Hs(n)))}function Mm(e,t=at){let n=ur(e,t);return Us(()=>n)}function _m(e,t=me){return e=e??Tm,M((n,r)=>{let o,i=!0;n.subscribe(E(r,s=>{let a=t(s);(i||!e(o,a))&&(i=!1,o=a,r.next(s))}))})}function Tm(e,t){return e===t}function Io(e=Sm){return M((t,n)=>{let r=!1;t.subscribe(E(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function Sm(){return new ct}function bo(e){return M((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}function jl(e,t){let n=arguments.length>=2;return r=>r.pipe(e?Te((o,i)=>e(o,i,r)):me,Tn(1),n?dr(t):Io(()=>new ct))}function $s(e){return e<=0?()=>Ye:M((t,n)=>{let r=[];t.subscribe(E(n,o=>{r.push(o),e{for(let o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function Nm(e,t){let n=arguments.length>=2;return r=>r.pipe(e?Te((o,i)=>e(o,i,r)):me,$s(1),n?dr(t):Io(()=>new ct))}function xm(){return M((e,t)=>{let n,r=!1;e.subscribe(E(t,o=>{let i=n;n=o,r&&t.next([i,o]),r=!0}))})}function Am(e,t){return M(kl(e,t,arguments.length>=2,!0))}function Gs(e={}){let{connector:t=()=>new Ie,resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s,a,c,u=0,l=!1,d=!1,h=()=>{a?.unsubscribe(),a=void 0},f=()=>{h(),s=c=void 0,l=d=!1},p=()=>{let g=s;f(),g?.unsubscribe()};return M((g,D)=>{u++,!d&&!l&&h();let N=c=c??t();D.add(()=>{u--,u===0&&!d&&!l&&(a=zs(p,o))}),N.subscribe(D),!s&&u>0&&(s=new He({next:L=>N.next(L),error:L=>{d=!0,h(),a=zs(f,n,L),N.error(L)},complete:()=>{l=!0,h(),a=zs(f,r),N.complete()}}),P(g).subscribe(s))})(i)}}function zs(e,t,...n){if(t===!0){e();return}if(t===!1)return;let r=new He({next:()=>{r.unsubscribe(),e()}});return P(t(...n)).subscribe(r)}function Rm(e,t,n){let r,o=!1;return e&&typeof e=="object"?{bufferSize:r=1/0,windowTime:t=1/0,refCount:o=!1,scheduler:n}=e:r=e??1/0,Gs({connector:()=>new sr(r,t,n),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}function Om(e){return Te((t,n)=>e<=n)}function Fm(...e){let t=Qe(e);return M((n,r)=>{(t?_n(e,n,t):_n(e,n)).subscribe(r)})}function Zt(e,t){return M((n,r)=>{let o=null,i=0,s=!1,a=()=>s&&!o&&r.complete();n.subscribe(E(r,c=>{o?.unsubscribe();let u=0,l=i++;P(e(c,l)).subscribe(o=E(r,d=>r.next(t?t(c,d,l,u++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function Pm(e){return M((t,n)=>{P(e).subscribe(E(n,()=>n.complete(),Ut)),!n.closed&&t.subscribe(n)})}function km(e,t=!1){return M((n,r)=>{let o=0;n.subscribe(E(r,i=>{let s=e(i,o++);(s||t)&&r.next(i),!s&&r.complete()}))})}function Sn(e,t,n){let r=w(e)||t||n?{next:e,error:t,complete:n}:e;return r?M((o,i)=>{var s;(s=r.subscribe)===null||s===void 0||s.call(r);let a=!0;o.subscribe(E(i,c=>{var u;(u=r.next)===null||u===void 0||u.call(r,c),i.next(c)},()=>{var c;a=!1,(c=r.complete)===null||c===void 0||c.call(r),i.complete()},c=>{var u;a=!1,(u=r.error)===null||u===void 0||u.call(r,c),i.error(c)},()=>{var c,u;a&&((c=r.unsubscribe)===null||c===void 0||c.call(r)),(u=r.finalize)===null||u===void 0||u.call(r)}))}):me}var Ad="https://g.co/ng/security#xss",b=class extends Error{code;constructor(t,n){super(mi(t,n)),this.code=t}};function mi(e,t){return`${`NG0${Math.abs(e)}`}${t?": "+t:""}`}var Rd=Symbol("InputSignalNode#UNSET"),Lm=ae(Q({},Ms),{transformFn:void 0,applyValueToInputSignal(e,t){Yr(e,t)}});function Od(e,t){let n=Object.create(Lm);n.value=e,n.transformFn=t?.transform;function r(){if(Wr(n),n.value===Rd)throw new b(-950,!1);return n.value}return r[de]=n,r}function Cr(e){return{toString:e}.toString()}var Co="__parameters__";function jm(e){return function(...n){if(e){let r=e(...n);for(let o in r)this[o]=r[o]}}}function Fd(e,t,n){return Cr(()=>{let r=jm(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;let s=new o(...i);return a.annotation=s,a;function a(c,u,l){let d=c.hasOwnProperty(Co)?c[Co]:Object.defineProperty(c,Co,{value:[]})[Co];for(;d.length<=l;)d.push(null);return(d[l]=d[l]||[]).push(s),c}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}var ce=globalThis;function H(e){for(let t in e)if(e[t]===H)return t;throw Error("Could not find renamed property on target object.")}function Vm(e,t){for(let n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function Ee(e){if(typeof e=="string")return e;if(Array.isArray(e))return"["+e.map(Ee).join(", ")+"]";if(e==null)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;let t=e.toString();if(t==null)return""+t;let n=t.indexOf(` -`);return n===-1?t:t.substring(0,n)}function ia(e,t){return e==null||e===""?t===null?"":t:t==null||t===""?e:e+" "+t}var Bm=H({__forward_ref__:H});function Pd(e){return e.__forward_ref__=Pd,e.toString=function(){return Ee(this())},e}function ve(e){return kd(e)?e():e}function kd(e){return typeof e=="function"&&e.hasOwnProperty(Bm)&&e.__forward_ref__===Pd}function S(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function xt(e){return{providers:e.providers||[],imports:e.imports||[]}}function yi(e){return Vl(e,Ld)||Vl(e,jd)}function zA(e){return yi(e)!==null}function Vl(e,t){return e.hasOwnProperty(t)?e[t]:null}function Hm(e){let t=e&&(e[Ld]||e[jd]);return t||null}function Bl(e){return e&&(e.hasOwnProperty(Hl)||e.hasOwnProperty(Um))?e[Hl]:null}var Ld=H({\u0275prov:H}),Hl=H({\u0275inj:H}),jd=H({ngInjectableDef:H}),Um=H({ngInjectorDef:H}),T=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,n){this._desc=t,this.\u0275prov=void 0,typeof n=="number"?this.__NG_ELEMENT_ID__=n:n!==void 0&&(this.\u0275prov=S({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function Vd(e){return e&&!!e.\u0275providers}var $m=H({\u0275cmp:H}),zm=H({\u0275dir:H}),Gm=H({\u0275pipe:H}),Wm=H({\u0275mod:H}),jo=H({\u0275fac:H}),pr=H({__NG_ELEMENT_ID__:H}),Ul=H({__NG_ENV_ID__:H});function Kt(e){return typeof e=="string"?e:e==null?"":String(e)}function qm(e){return typeof e=="function"?e.name||e.toString():typeof e=="object"&&e!=null&&typeof e.type=="function"?e.type.name||e.type.toString():Kt(e)}function Zm(e,t){let n=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new b(-200,e)}function yc(e,t){throw new b(-201,!1)}var k=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(k||{}),sa;function Bd(){return sa}function be(e){let t=sa;return sa=e,t}function Hd(e,t,n){let r=yi(e);if(r&&r.providedIn=="root")return r.value===void 0?r.value=r.factory():r.value;if(n&k.Optional)return null;if(t!==void 0)return t;yc(e,"Injector")}var Ym={},mr=Ym,aa="__NG_DI_FLAG__",Vo="ngTempTokenPath",Qm="ngTokenPath",Km=/\n/gm,Jm="\u0275",$l="__source",On;function Xm(){return On}function bt(e){let t=On;return On=e,t}function ey(e,t=k.Default){if(On===void 0)throw new b(-203,!1);return On===null?Hd(e,void 0,t):On.get(e,t&k.Optional?null:void 0,t)}function _(e,t=k.Default){return(Bd()||ey)(ve(e),t)}function m(e,t=k.Default){return _(e,vi(t))}function vi(e){return typeof e>"u"||typeof e=="number"?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function ca(e){let t=[];for(let n=0;n ");else if(typeof t=="object"){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+(typeof a=="string"?JSON.stringify(a):Ee(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(Km,` - `)}`}var vc=Ud(Fd("Optional"),8);var $d=Ud(Fd("SkipSelf"),4);function Jt(e,t){let n=e.hasOwnProperty(jo);return n?e[jo]:null}function oy(e,t,n){if(e.length!==t.length)return!1;for(let r=0;rArray.isArray(n)?Dc(n,t):t(n))}function zd(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Bo(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function sy(e,t){let n=[];for(let r=0;rt;){let i=o-2;e[o]=e[i],o--}e[t]=n,e[t+1]=r}}function Di(e,t,n){let r=Mr(e,t);return r>=0?e[r|1]=n:(r=~r,ay(e,r,t,n)),r}function Ws(e,t){let n=Mr(e,t);if(n>=0)return e[n|1]}function Mr(e,t){return cy(e,t,1)}function cy(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){let i=r+(o-r>>1),s=e[i<t?o=i:r=i+1}return~(o<{n.push(s)};return Dc(t,s=>{let a=s;ua(a,i,[],r)&&(o||=[],o.push(a))}),o!==void 0&&Kd(o,i),n}function Kd(e,t){for(let n=0;n{t(i,r)})}}function ua(e,t,n,r){if(e=ve(e),!e)return!1;let o=null,i=Bl(e),s=!i&&ut(e);if(!i&&!s){let c=e.ngModule;if(i=Bl(c),i)o=c;else return!1}else{if(s&&!s.standalone)return!1;o=e}let a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){let c=typeof s.dependencies=="function"?s.dependencies():s.dependencies;for(let u of c)ua(u,t,n,r)}}else if(i){if(i.imports!=null&&!a){r.add(o);let u;try{Dc(i.imports,l=>{ua(l,t,n,r)&&(u||=[],u.push(l))})}finally{}u!==void 0&&Kd(u,t)}if(!a){let u=Jt(o)||(()=>new o);t({provide:o,useFactory:u,deps:De},o),t({provide:Wd,useValue:o,multi:!0},o),t({provide:yr,useValue:()=>_(o),multi:!0},o)}let c=i.providers;if(c!=null&&!a){let u=e;wc(c,l=>{t(l,u)})}}else return!1;return o!==e&&e.providers!==void 0}function wc(e,t){for(let n of e)Vd(n)&&(n=n.\u0275providers),Array.isArray(n)?wc(n,t):t(n)}var dy=H({provide:String,useValue:H});function Jd(e){return e!==null&&typeof e=="object"&&dy in e}function fy(e){return!!(e&&e.useExisting)}function hy(e){return!!(e&&e.useFactory)}function kn(e){return typeof e=="function"}function py(e){return!!e.useClass}var Ei=new T(""),Ro={},gy={},qs;function wi(){return qs===void 0&&(qs=new Ho),qs}var et=class{},vr=class extends et{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,da(t,s=>this.processProvider(s)),this.records.set(Gd,Nn(void 0,this)),o.has("environment")&&this.records.set(et,Nn(void 0,this));let i=this.records.get(Ei);i!=null&&typeof i.value=="string"&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Wd,De,k.Self))}destroy(){fr(this),this._destroyed=!0;let t=F(null);try{for(let r of this._ngOnDestroyHooks)r.ngOnDestroy();let n=this._onDestroyHooks;this._onDestroyHooks=[];for(let r of n)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),F(t)}}onDestroy(t){return fr(this),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){fr(this);let n=bt(this),r=be(void 0),o;try{return t()}finally{bt(n),be(r)}}get(t,n=mr,r=k.Default){if(fr(this),t.hasOwnProperty(Ul))return t[Ul](this);r=vi(r);let o,i=bt(this),s=be(void 0);try{if(!(r&k.SkipSelf)){let c=this.records.get(t);if(c===void 0){let u=Ey(t)&&yi(t);u&&this.injectableDefInScope(u)?c=Nn(la(t),Ro):c=null,this.records.set(t,c)}if(c!=null)return this.hydrate(t,c)}let a=r&k.Self?wi():this.parent;return n=r&k.Optional&&n===mr?null:n,a.get(t,n)}catch(a){if(a.name==="NullInjectorError"){if((a[Vo]=a[Vo]||[]).unshift(Ee(t)),i)throw a;return ny(a,t,"R3InjectorError",this.source)}else throw a}finally{be(s),bt(i)}}resolveInjectorInitializers(){let t=F(null),n=bt(this),r=be(void 0),o;try{let i=this.get(yr,De,k.Self);for(let s of i)s()}finally{bt(n),be(r),F(t)}}toString(){let t=[],n=this.records;for(let r of n.keys())t.push(Ee(r));return`R3Injector[${t.join(", ")}]`}processProvider(t){t=ve(t);let n=kn(t)?t:ve(t&&t.provide),r=yy(t);if(!kn(t)&&t.multi===!0){let o=this.records.get(n);o||(o=Nn(void 0,Ro,!0),o.factory=()=>ca(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n){let r=F(null);try{return n.value===Ro&&(n.value=gy,n.value=n.factory()),typeof n.value=="object"&&n.value&&Dy(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}finally{F(r)}}injectableDefInScope(t){if(!t.providedIn)return!1;let n=ve(t.providedIn);return typeof n=="string"?n==="any"||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){let n=this._onDestroyHooks.indexOf(t);n!==-1&&this._onDestroyHooks.splice(n,1)}};function la(e){let t=yi(e),n=t!==null?t.factory:Jt(e);if(n!==null)return n;if(e instanceof T)throw new b(204,!1);if(e instanceof Function)return my(e);throw new b(204,!1)}function my(e){if(e.length>0)throw new b(204,!1);let n=Hm(e);return n!==null?()=>n.factory(e):()=>new e}function yy(e){if(Jd(e))return Nn(void 0,e.useValue);{let t=Xd(e);return Nn(t,Ro)}}function Xd(e,t,n){let r;if(kn(e)){let o=ve(e);return Jt(o)||la(o)}else if(Jd(e))r=()=>ve(e.useValue);else if(hy(e))r=()=>e.useFactory(...ca(e.deps||[]));else if(fy(e))r=()=>_(ve(e.useExisting));else{let o=ve(e&&(e.useClass||e.provide));if(vy(e))r=()=>new o(...ca(e.deps));else return Jt(o)||la(o)}return r}function fr(e){if(e.destroyed)throw new b(205,!1)}function Nn(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function vy(e){return!!e.deps}function Dy(e){return e!==null&&typeof e=="object"&&typeof e.ngOnDestroy=="function"}function Ey(e){return typeof e=="function"||typeof e=="object"&&e instanceof T}function da(e,t){for(let n of e)Array.isArray(n)?da(n,t):n&&Vd(n)?da(n.\u0275providers,t):t(n)}function Ii(e,t){e instanceof vr&&fr(e);let n,r=bt(e),o=be(void 0);try{return t()}finally{bt(r),be(o)}}function ef(){return Bd()!==void 0||Xm()!=null}function bi(e){if(!ef())throw new b(-203,!1)}function wy(e){let t=ce.ng;if(t&&t.\u0275compilerFacade)return t.\u0275compilerFacade;throw new Error("JIT compiler unavailable")}function Iy(e){return typeof e=="function"}var it=0,x=1,I=2,ge=3,Ge=4,Ce=5,Ln=6,Uo=7,he=8,jn=9,lt=10,W=11,Dr=12,zl=13,Gn=14,Ne=15,Xt=16,xn=17,dt=18,Ci=19,tf=20,Ct=21,Oo=22,en=23,Se=24,se=25,Ic=1;var tn=7,$o=8,Vn=9,pe=10,zo=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}(zo||{});function Mt(e){return Array.isArray(e)&&typeof e[Ic]=="object"}function pt(e){return Array.isArray(e)&&e[Ic]===!0}function bc(e){return(e.flags&4)!==0}function Mi(e){return e.componentOffset>-1}function _i(e){return(e.flags&1)===1}function ft(e){return!!e.template}function fa(e){return(e[I]&512)!==0}var ha=class{previousValue;currentValue;firstChange;constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}};function nf(e,t,n,r){t!==null?t.applyValueToInputSignal(t,r):e[n]=r}var rf=(()=>{let e=()=>of;return e.ngInherit=!0,e})();function of(e){return e.type.prototype.ngOnChanges&&(e.setInput=Cy),by}function by(){let e=af(this),t=e?.current;if(t){let n=e.previous;if(n===Pn)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Cy(e,t,n,r,o){let i=this.declaredInputs[r],s=af(e)||My(e,{previous:Pn,current:null}),a=s.current||(s.current={}),c=s.previous,u=c[i];a[i]=new ha(u&&u.currentValue,n,c===Pn),nf(e,t,o,n)}var sf="__ngSimpleChanges__";function af(e){return e[sf]||null}function My(e,t){return e[sf]=t}var Gl=null;var Ke=function(e,t,n){Gl?.(e,t,n)},cf="svg",_y="math";function tt(e){for(;Array.isArray(e);)e=e[it];return e}function Ty(e){for(;Array.isArray(e);){if(typeof e[Ic]=="object")return e;e=e[it]}return null}function uf(e,t){return tt(t[e])}function Pe(e,t){return tt(t[e.index])}function Cc(e,t){return e.data[t]}function Mc(e,t){return e[t]}function At(e,t){let n=t[e];return Mt(n)?n:n[it]}function Sy(e){return(e[I]&4)===4}function _c(e){return(e[I]&128)===128}function Ny(e){return pt(e[ge])}function _t(e,t){return t==null?null:e[t]}function lf(e){e[xn]=0}function Tc(e){e[I]&1024||(e[I]|=1024,_c(e)&&_r(e))}function xy(e,t){for(;e>0;)t=t[Gn],e--;return t}function Ti(e){return!!(e[I]&9216||e[Se]?.dirty)}function pa(e){e[lt].changeDetectionScheduler?.notify(9),e[I]&64&&(e[I]|=1024),Ti(e)&&_r(e)}function _r(e){e[lt].changeDetectionScheduler?.notify(0);let t=nn(e);for(;t!==null&&!(t[I]&8192||(t[I]|=8192,!_c(t)));)t=nn(t)}function df(e,t){if((e[I]&256)===256)throw new b(911,!1);e[Ct]===null&&(e[Ct]=[]),e[Ct].push(t)}function Ay(e,t){if(e[Ct]===null)return;let n=e[Ct].indexOf(t);n!==-1&&e[Ct].splice(n,1)}function nn(e){let t=e[ge];return pt(t)?t[ge]:t}var A={lFrame:vf(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var ga=!1;function Ry(){return A.lFrame.elementDepthCount}function Oy(){A.lFrame.elementDepthCount++}function Fy(){A.lFrame.elementDepthCount--}function ff(){return A.bindingsEnabled}function hf(){return A.skipHydrationRootTNode!==null}function Py(e){return A.skipHydrationRootTNode===e}function ky(){A.skipHydrationRootTNode=null}function C(){return A.lFrame.lView}function $(){return A.lFrame.tView}function GA(e){return A.lFrame.contextLView=e,e[he]}function WA(e){return A.lFrame.contextLView=null,e}function oe(){let e=pf();for(;e!==null&&e.type===64;)e=e.parent;return e}function pf(){return A.lFrame.currentTNode}function Ly(){let e=A.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}function fn(e,t){let n=A.lFrame;n.currentTNode=e,n.isParent=t}function Sc(){return A.lFrame.isParent}function Nc(){A.lFrame.isParent=!1}function jy(){return A.lFrame.contextLView}function gf(){return ga}function Go(e){let t=ga;return ga=e,t}function Tr(){let e=A.lFrame,t=e.bindingRootIndex;return t===-1&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Vy(){return A.lFrame.bindingIndex}function By(e){return A.lFrame.bindingIndex=e}function Rt(){return A.lFrame.bindingIndex++}function xc(e){let t=A.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function Hy(){return A.lFrame.inI18n}function Uy(e,t){let n=A.lFrame;n.bindingIndex=n.bindingRootIndex=e,ma(t)}function $y(){return A.lFrame.currentDirectiveIndex}function ma(e){A.lFrame.currentDirectiveIndex=e}function Ac(e){let t=A.lFrame.currentDirectiveIndex;return t===-1?null:e[t]}function Rc(){return A.lFrame.currentQueryIndex}function Si(e){A.lFrame.currentQueryIndex=e}function zy(e){let t=e[x];return t.type===2?t.declTNode:t.type===1?e[Ce]:null}function mf(e,t,n){if(n&k.SkipSelf){let o=t,i=e;for(;o=o.parent,o===null&&!(n&k.Host);)if(o=zy(i),o===null||(i=i[Gn],o.type&10))break;if(o===null)return!1;t=o,e=i}let r=A.lFrame=yf();return r.currentTNode=t,r.lView=e,!0}function Oc(e){let t=yf(),n=e[x];A.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function yf(){let e=A.lFrame,t=e===null?null:e.child;return t===null?vf(e):t}function vf(e){let t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=t),t}function Df(){let e=A.lFrame;return A.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var Ef=Df;function Fc(){let e=Df();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Gy(e){return(A.lFrame.contextLView=xy(e,A.lFrame.contextLView))[he]}function gt(){return A.lFrame.selectedIndex}function rn(e){A.lFrame.selectedIndex=e}function Wn(){let e=A.lFrame;return Cc(e.tView,e.selectedIndex)}function qA(){A.lFrame.currentNamespace=cf}function ZA(){Wy()}function Wy(){A.lFrame.currentNamespace=null}function qy(){return A.lFrame.currentNamespace}var wf=!0;function Ni(){return wf}function xi(e){wf=e}function Zy(e,t,n){let{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){let s=of(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}function Ai(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[c]<0&&(e[xn]+=65536),(a>14>16&&(e[I]&3)===t&&(e[I]+=16384,Wl(a,i)):Wl(a,i)}var Fn=-1,on=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(t,n,r){this.factory=t,this.canSeeViewProviders=n,this.injectImpl=r}};function Qy(e){return e instanceof on}function Ky(e){return(e.flags&8)!==0}function Jy(e){return(e.flags&16)!==0}function ya(e,t,n){let r=0;for(;rt){s=i-1;break}}}for(;i>16}function qo(e,t){let n=ev(e),r=t;for(;n>0;)r=r[Gn],n--;return r}var Da=!0;function Zo(e){let t=Da;return Da=e,t}var tv=256,Mf=tv-1,_f=5,nv=0,Je={};function rv(e,t,n){let r;typeof n=="string"?r=n.charCodeAt(0)||0:n.hasOwnProperty(pr)&&(r=n[pr]),r==null&&(r=n[pr]=nv++);let o=r&Mf,i=1<>_f)]|=i}function Yo(e,t){let n=Tf(e,t);if(n!==-1)return n;let r=t[x];r.firstCreatePass&&(e.injectorIndex=t.length,Qs(r.data,e),Qs(t,null),Qs(r.blueprint,null));let o=Pc(e,t),i=e.injectorIndex;if(Cf(o)){let s=Wo(o),a=qo(o,t),c=a[x].data;for(let u=0;u<8;u++)t[i+u]=a[s+u]|c[s+u]}return t[i+8]=o,i}function Qs(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Tf(e,t){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||t[e.injectorIndex+8]===null?-1:e.injectorIndex}function Pc(e,t){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;o!==null;){if(r=Of(o),r===null)return Fn;if(n++,o=o[Gn],r.injectorIndex!==-1)return r.injectorIndex|n<<16}return Fn}function Ea(e,t,n){rv(e,t,n)}function ov(e,t){if(t==="class")return e.classes;if(t==="style")return e.styles;let n=e.attrs;if(n){let r=n.length,o=0;for(;o>20,d=r?a:a+l,h=o?a+l:u;for(let f=d;f=c&&p.type===n)return f}if(o){let f=s[c];if(f&&ft(f)&&f.type===n)return c}return null}function sn(e,t,n,r){let o=e[n],i=t.data;if(Qy(o)){let s=o;s.resolving&&Zm(qm(i[n]));let a=Zo(s.canSeeViewProviders);s.resolving=!0;let c,u=s.injectImpl?be(s.injectImpl):null,l=mf(e,r,k.Default);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&Zy(n,i[n],t)}finally{u!==null&&be(u),Zo(a),s.resolving=!1,Ef()}}return o}function sv(e){if(typeof e=="string")return e.charCodeAt(0)||0;let t=e.hasOwnProperty(pr)?e[pr]:void 0;return typeof t=="number"?t>=0?t&Mf:av:t}function Zl(e,t,n){let r=1<>_f)]&r)}function Yl(e,t){return!(e&k.Self)&&!(e&k.Host&&t)}var Qt=class{_tNode;_lView;constructor(t,n){this._tNode=t,this._lView=n}get(t,n,r){return xf(this._tNode,this._lView,t,vi(r),n)}};function av(){return new Qt(oe(),C())}function Rf(e){return Cr(()=>{let t=e.prototype.constructor,n=t[jo]||wa(t),r=Object.prototype,o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){let i=o[jo]||wa(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function wa(e){return kd(e)?()=>{let t=wa(ve(e));return t&&t()}:Jt(e)}function cv(e,t,n,r,o){let i=e,s=t;for(;i!==null&&s!==null&&s[I]&2048&&!(s[I]&512);){let a=Af(i,s,n,r|k.Self,Je);if(a!==Je)return a;let c=i.parent;if(!c){let u=s[tf];if(u){let l=u.get(n,Je,r);if(l!==Je)return l}c=Of(s),s=s[Gn]}i=c}return o}function Of(e){let t=e[x],n=t.type;return n===2?t.declTNode:n===1?e[Ce]:null}function Ff(e){return ov(oe(),e)}function Ql(e,t=null,n=null,r){let o=Pf(e,t,n,r);return o.resolveInjectorInitializers(),o}function Pf(e,t=null,n=null,r,o=new Set){let i=[n||De,ly(e)];return r=r||(typeof e=="object"?void 0:Ee(e)),new vr(i,t||wi(),r||null,o)}var Fe=class e{static THROW_IF_NOT_FOUND=mr;static NULL=new Ho;static create(t,n){if(Array.isArray(t))return Ql({name:""},n,t,"");{let r=t.name??"";return Ql({name:r},t.parent,t.providers,r)}}static \u0275prov=S({token:e,providedIn:"any",factory:()=>_(Gd)});static __NG_ELEMENT_ID__=-1};var Kl=class{attributeName;constructor(t){this.attributeName=t}__NG_ELEMENT_ID__=()=>Ff(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},uv=new T("");uv.__NG_ELEMENT_ID__=e=>{let t=oe();if(t===null)throw new b(204,!1);if(t.type&2)return t.value;if(e&k.Optional)return null;throw new b(204,!1)};var kf=!1,Sr=(()=>{class e{static __NG_ELEMENT_ID__=lv;static __NG_ENV_ID__=n=>n}return e})(),Qo=class extends Sr{_lView;constructor(t){super(),this._lView=t}onDestroy(t){return df(this._lView,t),()=>Ay(this._lView,t)}};function lv(){return new Qo(C())}var an=class{},kc=new T("",{providedIn:"root",factory:()=>!1});var Lf=new T(""),jf=new T(""),Ot=(()=>{class e{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Gt(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let n=this.taskId++;return this.pendingTasks.add(n),n}has(n){return this.pendingTasks.has(n)}remove(n){this.pendingTasks.delete(n),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})();var Ia=class extends Ie{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(t=!1){super(),this.__isAsync=t,ef()&&(this.destroyRef=m(Sr,{optional:!0})??void 0,this.pendingTasks=m(Ot,{optional:!0})??void 0)}emit(t){let n=F(null);try{super.next(t)}finally{F(n)}}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&typeof t=="object"){let c=t;o=c.next?.bind(c),i=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(i=this.wrapInTimeout(i),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:o,error:i,complete:s});return t instanceof J&&t.add(a),a}wrapInTimeout(t){return n=>{let r=this.pendingTasks?.add();setTimeout(()=>{t(n),r!==void 0&&this.pendingTasks?.remove(r)})}}},Xe=Ia;function wr(...e){}function Vf(e){let t,n;function r(){e=wr;try{n!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(n),t!==void 0&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame=="function"&&(n=requestAnimationFrame(()=>{e(),r()})),()=>r()}function Jl(e){return queueMicrotask(()=>e()),()=>{e=wr}}var Lc="isAngularZone",Ko=Lc+"_ID",dv=0,G=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Xe(!1);onMicrotaskEmpty=new Xe(!1);onStable=new Xe(!1);onError=new Xe(!1);constructor(t){let{enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:i=kf}=t;if(typeof Zone>"u")throw new b(908,!1);Zone.assertZonePatched();let s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&r,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=i,pv(s)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(Lc)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new b(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new b(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){let i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,fv,wr,wr);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}},fv={};function jc(e){if(e._nesting==0&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hv(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function t(){Vf(()=>{e.callbackScheduled=!1,ba(e),e.isCheckStableRunning=!0,jc(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),ba(e)}function pv(e){let t=()=>{hv(e)},n=dv++;e._inner=e._inner.fork({name:"angular",properties:{[Lc]:!0,[Ko]:n,[Ko+n]:!0},onInvokeTask:(r,o,i,s,a,c)=>{if(gv(c))return r.invokeTask(i,s,a,c);try{return Xl(e),r.invokeTask(i,s,a,c)}finally{(e.shouldCoalesceEventChangeDetection&&s.type==="eventTask"||e.shouldCoalesceRunChangeDetection)&&t(),ed(e)}},onInvoke:(r,o,i,s,a,c,u)=>{try{return Xl(e),r.invoke(i,s,a,c,u)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!mv(c)&&t(),ed(e)}},onHasTask:(r,o,i,s)=>{r.hasTask(i,s),o===i&&(s.change=="microTask"?(e._hasPendingMicrotasks=s.microTask,ba(e),jc(e)):s.change=="macroTask"&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,o,i,s)=>(r.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function ba(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function Xl(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function ed(e){e._nesting--,jc(e)}var Jo=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Xe;onMicrotaskEmpty=new Xe;onStable=new Xe;onError=new Xe;run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}};function gv(e){return Bf(e,"__ignore_ng_zone__")}function mv(e){return Bf(e,"__scheduler_tick__")}function Bf(e,t){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[t]===!0}function yv(e="zone.js",t){return e==="noop"?new Jo:e==="zone.js"?new G(t):e}var nt=class{_console=console;handleError(t){this._console.error("ERROR",t)}},vv=new T("",{providedIn:"root",factory:()=>{let e=m(G),t=m(nt);return n=>e.runOutsideAngular(()=>t.handleError(n))}});function td(e,t){return Od(e,t)}function Dv(e){return Od(Rd,e)}var Hf=(td.required=Dv,td);function Ev(){return qn(oe(),C())}function qn(e,t){return new ke(Pe(e,t))}var ke=(()=>{class e{nativeElement;constructor(n){this.nativeElement=n}static __NG_ELEMENT_ID__=Ev}return e})();function Uf(e){return e instanceof ke?e.nativeElement:e}function wv(){return this._results[Symbol.iterator]()}var Ca=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new Ie}constructor(t=!1){this._emitDistinctChangesOnly=t}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,n){return this._results.reduce(t,n)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,n){this.dirty=!1;let r=iy(t);(this._changesDetected=!oy(this._results,r,n))&&(this._results=r,this.length=r.length,this.last=r[this.length-1],this.first=r[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(t){this._onDirty=t}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=wv};function $f(e){return(e.flags&128)===128}var zf=function(e){return e[e.OnPush=0]="OnPush",e[e.Default=1]="Default",e}(zf||{}),Gf=new Map,Iv=0;function bv(){return Iv++}function Cv(e){Gf.set(e[Ci],e)}function Ma(e){Gf.delete(e[Ci])}var nd="__ngContext__";function Tt(e,t){Mt(t)?(e[nd]=t[Ci],Cv(t)):e[nd]=t}function Wf(e){return Zf(e[Dr])}function qf(e){return Zf(e[Ge])}function Zf(e){for(;e!==null&&!pt(e);)e=e[Ge];return e}var _a;function Yf(e){_a=e}function Qf(){if(_a!==void 0)return _a;if(typeof document<"u")return document;throw new b(210,!1)}var Vc=new T("",{providedIn:"root",factory:()=>Mv}),Mv="ng",Bc=new T(""),Me=new T("",{providedIn:"platform",factory:()=>"unknown"});var YA=new T(""),Hc=new T("",{providedIn:"root",factory:()=>Qf().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var _v="h",Tv="b";var Kf=!1,Sv=new T("",{providedIn:"root",factory:()=>Kf});var rd=new Set;function We(e){rd.has(e)||(rd.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}var An=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(An||{}),Jf=(()=>{class e{impl=null;execute(){this.impl?.execute()}static \u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})(),Nv=[An.EarlyRead,An.Write,An.MixedReadWrite,An.Read],xv=(()=>{class e{ngZone=m(G);scheduler=m(an);errorHandler=m(nt,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;execute(){this.executing=!0;for(let n of Nv)for(let r of this.sequences)if(!(r.erroredOrDestroyed||!r.hooks[n]))try{r.pipelinedValue=this.ngZone.runOutsideAngular(()=>r.hooks[n](r.pipelinedValue))}catch(o){r.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let n of this.sequences)n.afterRun(),n.once&&(this.sequences.delete(n),n.destroy());for(let n of this.deferredRegistrations)this.sequences.add(n);this.deferredRegistrations.size>0&&this.scheduler.notify(8),this.deferredRegistrations.clear()}register(n){this.executing?this.deferredRegistrations.add(n):(this.sequences.add(n),this.scheduler.notify(7))}unregister(n){this.executing&&this.sequences.has(n)?(n.erroredOrDestroyed=!0,n.pipelinedValue=void 0,n.once=!0):(this.sequences.delete(n),this.deferredRegistrations.delete(n))}static \u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})(),Ta=class{impl;hooks;once;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(t,n,r,o){this.impl=t,this.hooks=n,this.once=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.()}};function Av(e,t){!t?.injector&&bi(Av);let n=t?.injector??m(Fe);return We("NgAfterRender"),Xf(e,n,t,!1)}function Rv(e,t){!t?.injector&&bi(Rv);let n=t?.injector??m(Fe);return We("NgAfterNextRender"),Xf(e,n,t,!0)}function Ov(e,t){if(e instanceof Function){let n=[void 0,void 0,void 0,void 0];return n[t]=e,n}else return[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function Xf(e,t,n,r){let o=t.get(Jf);o.impl??=t.get(xv);let i=n?.phase??An.MixedReadWrite,s=n?.manualCleanup!==!0?t.get(Sr):null,a=new Ta(o.impl,Ov(e,i),r,s);return o.impl.register(a),a}var Fv=()=>null;function Uc(e,t,n=!1){return Fv(e,t,n)}var rt=function(e){return e[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",e}(rt||{}),Mo;function Pv(){if(Mo===void 0&&(Mo=null,ce.trustedTypes))try{Mo=ce.trustedTypes.createPolicy("angular",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return Mo}function Ri(e){return Pv()?.createHTML(e)||e}var _o;function eh(){if(_o===void 0&&(_o=null,ce.trustedTypes))try{_o=ce.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return _o}function od(e){return eh()?.createHTML(e)||e}function id(e){return eh()?.createScriptURL(e)||e}var ht=class{changingThisBreaksApplicationSecurity;constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ad})`}},Sa=class extends ht{getTypeName(){return"HTML"}},Na=class extends ht{getTypeName(){return"Style"}},xa=class extends ht{getTypeName(){return"Script"}},Aa=class extends ht{getTypeName(){return"URL"}},Ra=class extends ht{getTypeName(){return"ResourceURL"}};function Le(e){return e instanceof ht?e.changingThisBreaksApplicationSecurity:e}function mt(e,t){let n=kv(e);if(n!=null&&n!==t){if(n==="ResourceURL"&&t==="URL")return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${Ad})`)}return n===t}function kv(e){return e instanceof ht&&e.getTypeName()||null}function th(e){return new Sa(e)}function nh(e){return new Na(e)}function rh(e){return new xa(e)}function oh(e){return new Aa(e)}function ih(e){return new Ra(e)}function Lv(e){let t=new Fa(e);return jv()?new Oa(t):t}var Oa=class{inertDocumentHelper;constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{let n=new window.DOMParser().parseFromString(Ri(t),"text/html").body;return n===null?this.inertDocumentHelper.getInertBodyElement(t):(n.firstChild?.remove(),n)}catch{return null}}},Fa=class{defaultDoc;inertDocument;constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){let n=this.inertDocument.createElement("template");return n.innerHTML=Ri(t),n}};function jv(){try{return!!new window.DOMParser().parseFromString(Ri(""),"text/html")}catch{return!1}}var Vv=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Oi(e){return e=String(e),e.match(Vv)?e:"unsafe:"+e}function yt(e){let t={};for(let n of e.split(","))t[n]=!0;return t}function Nr(...e){let t={};for(let n of e)for(let r in n)n.hasOwnProperty(r)&&(t[r]=!0);return t}var sh=yt("area,br,col,hr,img,wbr"),ah=yt("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),ch=yt("rp,rt"),Bv=Nr(ch,ah),Hv=Nr(ah,yt("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Uv=Nr(ch,yt("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),sd=Nr(sh,Hv,Uv,Bv),uh=yt("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),$v=yt("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),zv=yt("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),Gv=Nr(uh,$v,zv),Wv=yt("script,style,template"),Pa=class{sanitizedSomething=!1;buf=[];sanitizeChildren(t){let n=t.firstChild,r=!0,o=[];for(;n;){if(n.nodeType===Node.ELEMENT_NODE?r=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,r&&n.firstChild){o.push(n),n=Yv(n);continue}for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let i=Zv(n);if(i){n=i;break}n=o.pop()}}return this.buf.join("")}startElement(t){let n=ad(t).toLowerCase();if(!sd.hasOwnProperty(n))return this.sanitizedSomething=!0,!Wv.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);let r=t.attributes;for(let o=0;o"),!0}endElement(t){let n=ad(t).toLowerCase();sd.hasOwnProperty(n)&&!sh.hasOwnProperty(n)&&(this.buf.push(""))}chars(t){this.buf.push(cd(t))}};function qv(e,t){return(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function Zv(e){let t=e.nextSibling;if(t&&e!==t.previousSibling)throw lh(t);return t}function Yv(e){let t=e.firstChild;if(t&&qv(e,t))throw lh(t);return t}function ad(e){let t=e.nodeName;return typeof t=="string"?t:"FORM"}function lh(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}var Qv=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Kv=/([^\#-~ |!])/g;function cd(e){return e.replace(/&/g,"&").replace(Qv,function(t){let n=t.charCodeAt(0),r=t.charCodeAt(1);return"&#"+((n-55296)*1024+(r-56320)+65536)+";"}).replace(Kv,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}var To;function $c(e,t){let n=null;try{To=To||Lv(e);let r=t?String(t):"";n=To.getInertBodyElement(r);let o=5,i=r;do{if(o===0)throw new Error("Failed to sanitize html because the input is unstable");o--,r=i,i=n.innerHTML,n=To.getInertBodyElement(r)}while(r!==i);let a=new Pa().sanitizeChildren(ud(n)||n);return Ri(a)}finally{if(n){let r=ud(n)||n;for(;r.firstChild;)r.firstChild.remove()}}}function ud(e){return"content"in e&&Jv(e)?e.content:null}function Jv(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName==="TEMPLATE"}var Ae=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(Ae||{});function QA(e){let t=zc();return t?od(t.sanitize(Ae.HTML,e)||""):mt(e,"HTML")?od(Le(e)):$c(Qf(),Kt(e))}function Xv(e){let t=zc();return t?t.sanitize(Ae.URL,e)||"":mt(e,"URL")?Le(e):Oi(Kt(e))}function eD(e){let t=zc();if(t)return id(t.sanitize(Ae.RESOURCE_URL,e)||"");if(mt(e,"ResourceURL"))return id(Le(e));throw new b(904,!1)}function tD(e,t){return t==="src"&&(e==="embed"||e==="frame"||e==="iframe"||e==="media"||e==="script")||t==="href"&&(e==="base"||e==="link")?eD:Xv}function KA(e,t,n){return tD(t,n)(e)}function zc(){let e=C();return e&&e[lt].sanitizer}var nD=/^>|^->||--!>|)/g,oD="\u200B$1\u200B";function iD(e){return e.replace(nD,t=>t.replace(rD,oD))}function dh(e){return e instanceof Function?e():e}var St=function(e){return e[e.None=0]="None",e[e.SignalBased=1]="SignalBased",e[e.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",e}(St||{}),ot=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(ot||{}),sD;function Gc(e,t){return sD(e,t)}function Rn(e,t,n,r,o){if(r!=null){let i,s=!1;pt(r)?i=r:Mt(r)&&(s=!0,r=r[it]);let a=tt(r);e===0&&n!==null?o==null?mh(t,n,a):Xo(t,n,a,o||null,!0):e===1&&n!==null?Xo(t,n,a,o||null,!0):e===2?ED(t,a,s):e===3&&t.destroyNode(a),i!=null&&ID(t,e,i,n,o)}}function aD(e,t){return e.createText(t)}function cD(e,t,n){e.setValue(t,n)}function uD(e,t){return e.createComment(iD(t))}function fh(e,t,n){return e.createElement(t,n)}function lD(e,t){hh(e,t),t[it]=null,t[Ce]=null}function dD(e,t,n,r,o,i){r[it]=o,r[Ce]=t,ki(e,r,n,1,o,i)}function hh(e,t){t[lt].changeDetectionScheduler?.notify(10),ki(e,t,t[W],2,null,null)}function fD(e){let t=e[Dr];if(!t)return Ks(e[x],e);for(;t;){let n=null;if(Mt(t))n=t[Dr];else{let r=t[pe];r&&(n=r)}if(!n){for(;t&&!t[Ge]&&t!==e;)Mt(t)&&Ks(t[x],t),t=t[ge];t===null&&(t=e),Mt(t)&&Ks(t[x],t),n=t&&t[Ge]}t=n}}function hD(e,t,n,r){let o=pe+r,i=n.length;r>0&&(n[o-1][Ge]=t),r0&&(e[n-1][Ge]=r[Ge]);let i=Bo(e,pe+t);lD(r[x],r);let s=i[dt];s!==null&&s.detachView(i[x]),r[ge]=null,r[Ge]=null,r[I]&=-129}return r}function Fi(e,t){if(!(t[I]&256)){let n=t[W];n.destroyNode&&ki(e,t,n,3,null,null),fD(t)}}function Ks(e,t){if(t[I]&256)return;let n=F(null);try{t[I]&=-129,t[I]|=256,t[Se]&&Dn(t[Se]),gD(e,t),pD(e,t),t[x].type===1&&t[W].destroy();let r=t[Xt];if(r!==null&&pt(t[ge])){r!==t[ge]&&Wc(r,t);let o=t[dt];o!==null&&o.detachView(e)}Ma(t)}finally{F(n)}}function pD(e,t){let n=e.cleanup,r=t[Uo];if(n!==null)for(let s=0;s=0?r[a]():r[-a].unsubscribe(),s+=2}else{let a=r[n[s+1]];n[s].call(a)}r!==null&&(t[Uo]=null);let o=t[Ct];if(o!==null){t[Ct]=null;for(let s=0;s-1){let{encapsulation:i}=e.data[r.directiveStart+o];if(i===rt.None||i===rt.Emulated)return null}return Pe(r,n)}}function Xo(e,t,n,r,o){e.insertBefore(t,n,r,o)}function mh(e,t,n){e.appendChild(t,n)}function ld(e,t,n,r,o){r!==null?Xo(e,t,n,r,o):mh(e,t,n)}function yh(e,t){return e.parentNode(t)}function yD(e,t){return e.nextSibling(t)}function vh(e,t,n){return DD(e,t,n)}function vD(e,t,n){return e.type&40?Pe(e,n):null}var DD=vD,dd;function Pi(e,t,n,r){let o=gh(e,r,t),i=t[W],s=r.parent||t[Ce],a=vh(s,r,t);if(o!=null)if(Array.isArray(n))for(let c=0;c-1){let i;for(;++oi?d="":d=o[l+1].toLowerCase(),r&2&&u!==d){if($e(r))return!1;s=!0}}}}return $e(r)||s}function $e(e){return(e&1)===0}function ND(e,t,n,r){if(t===null)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else r&8?o+="."+s:r&4&&(o+=" "+s);else o!==""&&!$e(s)&&(t+=fd(i,o),o=""),r=s,i=i||!$e(r);n++}return o!==""&&(t+=fd(i,o)),t}function PD(e){return e.map(FD).join(",")}function kD(e){let t=[],n=[],r=1,o=2;for(;rse&&Mh(e,t,se,!1),Ke(s?2:0,o),n(r,o)}finally{rn(i),Ke(s?3:1,o)}}function Yc(e,t,n){if(bc(t)){let r=F(null);try{let o=t.directiveStart,i=t.directiveEnd;for(let s=o;snull;function $D(e,t,n,r){let o=Ph(t);o.push(n),e.firstCreatePass&&kh(e).push(r,o.length-1)}function zD(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return hf()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function hd(e,t,n,r,o){for(let i in t){if(!t.hasOwnProperty(i))continue;let s=t[i];if(s===void 0)continue;r??={};let a,c=St.None;Array.isArray(s)?(a=s[0],c=s[1]):a=s;let u=i;if(o!==null){if(!o.hasOwnProperty(i))continue;u=o[i]}e===0?pd(r,n,u,a,c):pd(r,n,u,a)}return r}function pd(e,t,n,r,o){let i;e.hasOwnProperty(n)?(i=e[n]).push(t,r):i=e[n]=[t,r],o!==void 0&&i.push(o)}function GD(e,t,n){let r=t.directiveStart,o=t.directiveEnd,i=e.data,s=t.attrs,a=[],c=null,u=null;for(let l=r;l0;){let n=e[--t];if(typeof n=="number"&&n<0)return n}return 0}function QD(e,t,n,r){let o=n.directiveStart,i=n.directiveEnd;Mi(n)&&rE(t,n,e.data[o+n.componentOffset]),e.firstCreatePass||Yo(n,t),Tt(r,t);let s=n.initialInputs;for(let a=o;a{_r(e.lView)},consumerOnSignalRead(){this.lView[Se]=this}});function mE(e){let t=e[Se]??Object.create(yE);return t.lView=e,t}var yE=ae(Q({},Bt),{consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{let t=nn(e.lView);for(;t&&!$h(t[x]);)t=nn(t);t&&Tc(t)},consumerOnSignalRead(){this.lView[Se]=this}});function $h(e){return e.type!==2}function zh(e){if(e[en]===null)return;let t=!0;for(;t;){let n=!1;for(let r of e[en])r.dirty&&(n=!0,r.zone===null||Zone.current===r.zone?r.run():r.zone.run(()=>r.run()));t=n&&!!(e[I]&8192)}}var vE=100;function Gh(e,t=!0,n=0){let o=e[lt].rendererFactory,i=!1;i||o.begin?.();try{DE(e,n)}catch(s){throw t&&jh(e,s),s}finally{i||o.end?.()}}function DE(e,t){let n=gf();try{Go(!0),Va(e,t);let r=0;for(;Ti(e);){if(r===vE)throw new b(103,!1);r++,Va(e,1)}}finally{Go(n)}}function EE(e,t,n,r){let o=t[I];if((o&256)===256)return;let i=!1,s=!1;Oc(t);let a=!0,c=null,u=null;i||($h(e)?(u=fE(t),c=vn(u)):Ku()===null?(a=!1,u=mE(t),c=vn(u)):t[Se]&&(Dn(t[Se]),t[Se]=null));try{lf(t),By(e.bindingStartIndex),n!==null&&Sh(e,t,n,2,r);let l=(o&3)===3;if(!i)if(l){let f=e.preOrderCheckHooks;f!==null&&Fo(t,f,null)}else{let f=e.preOrderHooks;f!==null&&Po(t,f,0,null),Zs(t,0)}if(s||wE(t),zh(t),Wh(t,0),e.contentQueries!==null&&Fh(e,t),!i)if(l){let f=e.contentCheckHooks;f!==null&&Fo(t,f)}else{let f=e.contentHooks;f!==null&&Po(t,f,1),Zs(t,1)}LD(e,t);let d=e.components;d!==null&&Zh(t,d,0);let h=e.viewQuery;if(h!==null&&ja(2,h,r),!i)if(l){let f=e.viewCheckHooks;f!==null&&Fo(t,f)}else{let f=e.viewHooks;f!==null&&Po(t,f,2),Zs(t,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),t[Oo]){for(let f of t[Oo])f();t[Oo]=null}i||(t[I]&=-73)}catch(l){throw i||_r(t),l}finally{u!==null&&(rr(u,c),a&&pE(u)),Fc()}}function Wh(e,t){for(let n=Wf(e);n!==null;n=qf(n))for(let r=pe;r-1&&(Ir(t,r),Bo(n,r))}this._attachedToViewContainer=!1}Fi(this._lView[x],this._lView)}onDestroy(t){df(this._lView,t)}markForCheck(){nu(this._cdRefInjectingView||this._lView,4)}markForRefresh(){Tc(this._cdRefInjectingView||this._lView)}detach(){this._lView[I]&=-129}reattach(){pa(this._lView),this._lView[I]|=128}detectChanges(){this._lView[I]|=1024,Gh(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new b(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let t=fa(this._lView),n=this._lView[Xt];n!==null&&!t&&Wc(n,this._lView),hh(this._lView[x],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new b(902,!1);this._appRef=t;let n=fa(this._lView),r=this._lView[Xt];r!==null&&!n&&ph(r,this._lView),pa(this._lView)}},un=(()=>{class e{static __NG_ELEMENT_ID__=ME}return e})(),bE=un,CE=class extends bE{_declarationLView;_declarationTContainer;elementRef;constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,n){return this.createEmbeddedViewImpl(t,n)}createEmbeddedViewImpl(t,n,r){let o=Ar(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:n,dehydratedView:r});return new cn(o)}};function ME(){return Vi(oe(),C())}function Vi(e,t){return e.type&4?new CE(t,e,qn(e,t)):null}var Ba=class{resolveComponentFactory(t){throw Error(`No component factory found for ${Ee(t)}.`)}},Hn=class{static NULL=new Ba},Nt=class{},Ha=class{},Ua=class{},ti=class{},Un=class{},Bi=(()=>{class e{destroyNode=null;static __NG_ELEMENT_ID__=()=>_E()}return e})();function _E(){let e=C(),t=oe(),n=At(t.index,e);return(Mt(n)?n:e)[W]}var TE=(()=>{class e{static \u0275prov=S({token:e,providedIn:"root",factory:()=>null})}return e})();function ni(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(t!==null)for(let s=0;s0&&wh(e,n,i.join(" "))}}function FE(e,t,n){let r=e.projection=[];for(let o=0;on()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}},ii=class extends Ha{moduleType;constructor(t){super(),this.moduleType=t}create(t){return new oi(this.moduleType,t,[])}};function kE(e,t,n){return new oi(e,t,n,!1)}var za=class extends Nt{injector;componentFactoryResolver=new ri(this);instance=null;constructor(t){super();let n=new vr([...t.providers,{provide:Nt,useValue:this},{provide:Hn,useValue:this.componentFactoryResolver}],t.parent||wi(),t.debugName,new Set(["environment"]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}};function LE(e,t,n=null){return new za({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}var jE=(()=>{class e{_injector;cachedInjectors=new Map;constructor(n){this._injector=n}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){let r=Qd(!1,n.type),o=r.length>0?LE([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,o)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(let n of this.cachedInjectors.values())n!==null&&n.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=S({token:e,providedIn:"environment",factory:()=>new e(_(et))})}return e})();function tR(e){return Cr(()=>{let t=Yh(e),n=ae(Q({},t),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===zf.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?o=>o.get(jE).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||rt.Emulated,styles:e.styles||De,_:null,schemas:e.schemas||null,tView:null,id:""});t.standalone&&We("NgStandalone"),Qh(n);let r=e.dependencies;return n.directiveDefs=yd(r,!1),n.pipeDefs=yd(r,!0),n.id=HE(n),n})}function VE(e){return ut(e)||Zd(e)}function BE(e){return e!==null}function Ft(e){return Cr(()=>({type:e.type,bootstrap:e.bootstrap||De,declarations:e.declarations||De,imports:e.imports||De,exports:e.exports||De,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function md(e,t){if(e==null)return Pn;let n={};for(let r in e)if(e.hasOwnProperty(r)){let o=e[r],i,s,a=St.None;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i):(i=o,s=o),t?(n[i]=a!==St.None?[r,a]:r,t[i]=s):n[i]=r}return n}function qe(e){return Cr(()=>{let t=Yh(e);return Qh(t),t})}function Hi(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function Yh(e){let t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:e.inputs||Pn,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||De,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:md(e.inputs,t),outputs:md(e.outputs),debugInfo:null}}function Qh(e){e.features?.forEach(t=>t(e))}function yd(e,t){if(!e)return null;let n=t?Yd:VE;return()=>(typeof e=="function"?e():e).map(r=>n(r)).filter(BE)}function HE(e){let t=0,n=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(let o of n)t=Math.imul(31,t)+o.charCodeAt(0)<<0;return t+=2147483648,"c"+t}var Kh=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function UE(e){return typeof e=="function"&&e[de]!==void 0}var ru=new T(""),Or=new T(""),Ui=(()=>{class e{_ngZone;registry;_isZoneStable=!0;_callbacks=[];taskTrackingZone=null;constructor(n,r,o){this._ngZone=n,this.registry=r,ou||($E(o),o.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{G.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb()}});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>r.updateCb&&r.updateCb(n)?(clearTimeout(r.timeoutId),!1):!0)}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n()},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}static \u0275fac=function(r){return new(r||e)(_(G),_($i),_(Or))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),$i=(()=>{class e{_applications=new Map;registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return ou?.findTestabilityInTree(this,n,r)??null}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function $E(e){ou=e}var ou;function zi(e){return!!e&&typeof e.then=="function"}function iu(e){return!!e&&typeof e.subscribe=="function"}var zE=new T("");var Jh=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r});appInits=m(zE,{optional:!0})??[];injector=m(Fe);constructor(){}runInitializers(){if(this.initialized)return;let n=[];for(let o of this.appInits){let i=Ii(this.injector,o);if(zi(i))n.push(i);else if(iu(i)){let s=new Promise((a,c)=>{i.subscribe({complete:a,error:c})});n.push(s)}}let r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),n.length===0&&r(),this.initialized=!0}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Xh=(()=>{class e{static \u0275prov=S({token:e,providedIn:"root",factory:()=>new si})}return e})(),si=class{queuedEffectCount=0;queues=new Map;schedule(t){this.enqueue(t)}enqueue(t){let n=t.zone;this.queues.has(n)||this.queues.set(n,new Set);let r=this.queues.get(n);r.has(t)||(this.queuedEffectCount++,r.add(t))}flush(){for(;this.queuedEffectCount>0;)for(let[t,n]of this.queues)t===null?this.flushQueue(n):t.run(()=>this.flushQueue(n))}flushQueue(t){for(let n of t)t.delete(n),this.queuedEffectCount--,n.run()}},ep=new T("");function GE(){sl(()=>{throw new b(600,!1)})}function WE(e){return e.isBoundToModule}var qE=10;function ZE(e,t,n){try{let r=n();return zi(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}function tp(e,t){return Array.isArray(t)?t.reduce(tp,e):Q(Q({},e),t)}var hn=(()=>{class e{_bootstrapListeners=[];_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=m(vv);afterRenderManager=m(Jf);zonelessEnabled=m(kc);rootEffectScheduler=m(Xh);dirtyFlags=0;deferredDirtyFlags=0;externalTestViews=new Set;afterTick=new Ie;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=m(Ot).hasPendingTasks.pipe(ie(n=>!n));whenStable(){let n;return new Promise(r=>{n=this.isStable.subscribe({next:o=>{o&&r()}})}).finally(()=>{n.unsubscribe()})}_injector=m(et);get injector(){return this._injector}bootstrap(n,r){let o=n instanceof ti;if(!this._injector.get(Jh).done){let h=!o&&uy(n),f=!1;throw new b(405,f)}let s;o?s=n:s=this._injector.get(Hn).resolveComponentFactory(n),this.componentTypes.push(s.componentType);let a=WE(s)?void 0:this._injector.get(Nt),c=r||s.selector,u=s.create(Fe.NULL,[],c,a),l=u.location.nativeElement,d=u.injector.get(ru,null);return d?.registerApplication(l),u.onDestroy(()=>{this.detachView(u.hostView),Lo(this.components,u),d?.unregisterApplication(l)}),this._loadComponent(u),u}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){if(this._runningTick)throw new b(101,!1);let n=F(null);try{this._runningTick=!0,this.synchronize()}catch(r){this.internalErrorHandler(r)}finally{this._runningTick=!1,F(n),this.afterTick.next()}}synchronize(){let n=null;this._injector.destroyed||(n=this._injector.get(Un,null,{optional:!0})),this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0;let r=0;for(;this.dirtyFlags!==0&&r++Ti(n))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(n){let r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){let r=n;Lo(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);let r=this._injector.get(ep,[]);[...this._bootstrapListeners,...r].forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Lo(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new b(406,!1);let n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Lo(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function YE(e,t,n,r){if(!n&&!Ti(e))return;Gh(e,t,n&&!r?0:1)}var nR=new RegExp(`^(\\d+)*(${Tv}|${_v})*(.*)`);var QE=()=>null;function $n(e,t){return QE(e,t)}var pn=(()=>{class e{static __NG_ELEMENT_ID__=KE}return e})();function KE(){let e=oe();return rp(e,C())}var JE=pn,np=class extends JE{_lContainer;_hostTNode;_hostLView;constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return qn(this._hostTNode,this._hostLView)}get injector(){return new Qt(this._hostTNode,this._hostLView)}get parentInjector(){let t=Pc(this._hostTNode,this._hostLView);if(Cf(t)){let n=qo(t,this._hostLView),r=Wo(t),o=n[x].data[r+8];return new Qt(o,n)}else return new Qt(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){let n=vd(this._lContainer);return n!==null&&n[t]||null}get length(){return this._lContainer.length-pe}createEmbeddedView(t,n,r){let o,i;typeof r=="number"?o=r:r!=null&&(o=r.index,i=r.injector);let s=$n(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(n||{},i,s);return this.insertImpl(a,o,Bn(this._hostTNode,s)),a}createComponent(t,n,r,o,i){let s=t&&!Iy(t),a;if(s)a=n;else{let p=n||{};a=p.index,r=p.injector,o=p.projectableNodes,i=p.environmentInjector||p.ngModuleRef}let c=s?t:new ln(ut(t)),u=r||this.parentInjector;if(!i&&c.ngModule==null){let g=(s?u:this.parentInjector).get(et,null);g&&(i=g)}let l=ut(c.componentType??{}),d=$n(this._lContainer,l?.id??null),h=d?.firstChild??null,f=c.create(u,o,h,i);return this.insertImpl(f.hostView,a,Bn(this._hostTNode,d)),f}insert(t,n){return this.insertImpl(t,n,!0)}insertImpl(t,n,r){let o=t._lView;if(Ny(o)){let a=this.indexOf(t);if(a!==-1)this.detach(a);else{let c=o[ge],u=new np(c,c[Ce],c[ge]);u.detach(u.indexOf(t))}}let i=this._adjustIndex(n),s=this._lContainer;return Rr(s,o,i,r),t.attachToViewContainerRef(),zd(Js(s),i,t),t}move(t,n){return this.insert(t,n)}indexOf(t){let n=vd(this._lContainer);return n!==null?n.indexOf(t):-1}remove(t){let n=this._adjustIndex(t,-1),r=Ir(this._lContainer,n);r&&(Bo(Js(this._lContainer),n),Fi(r[x],r))}detach(t){let n=this._adjustIndex(t,-1),r=Ir(this._lContainer,n);return r&&Bo(Js(this._lContainer),n)!=null?new cn(r):null}_adjustIndex(t,n=0){return t??this.length+n}};function vd(e){return e[$o]}function Js(e){return e[$o]||(e[$o]=[])}function rp(e,t){let n,r=t[e.index];return pt(r)?n=r:(n=Oh(r,t,null,e),t[e.index]=n,ji(t,n)),ew(n,t,e,r),new np(n,e,t)}function XE(e,t){let n=e[W],r=n.createComment(""),o=Pe(t,e),i=yh(n,o);return Xo(n,i,r,yD(n,o),!1),r}var ew=rw,tw=()=>!1;function nw(e,t,n){return tw(e,t,n)}function rw(e,t,n,r){if(e[tn])return;let o;n.type&8?o=tt(r):o=XE(t,n),e[tn]=o}var Ga=class e{queryList;matches=null;constructor(t){this.queryList=t}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},Wa=class e{queries;constructor(t=[]){this.queries=t}createEmbeddedView(t){let n=t.queries;if(n!==null){let r=t.contentQueries!==null?t.contentQueries[0]:n.length,o=[];for(let i=0;i0)r.push(s[a/2]);else{let u=i[a+1],l=t[-c];for(let d=pe;dt.trim())}function ap(e,t,n){e.queries===null&&(e.queries=new qa),e.queries.track(new Za(t,n))}function lw(e,t){let n=e.contentQueries||(e.contentQueries=[]),r=n.length?n[n.length-1]:-1;t!==r&&n.push(e.queries.length-1,t)}function au(e,t){return e.queries.getByIndex(t)}function cp(e,t){let n=e[x],r=au(n,t);return r.crossesNgTemplate?Ya(n,e,t,[]):op(n,e,r,t)}function Gi(e,t){We("NgSignals");let n=al(e),r=n[de];return t?.equal&&(r.equal=t.equal),n.set=o=>Yr(r,o),n.update=o=>cl(r,o),n.asReadonly=dw.bind(n),n}function dw(){let e=this[de];if(e.readonlyFn===void 0){let t=()=>this();t[de]=e,e.readonlyFn=t}return e.readonlyFn}function up(e){return UE(e)&&typeof e.set=="function"}function lp(e,t,n){let r,o=Cs(()=>{r._dirtyCounter();let i=gw(r,e);if(t&&i===void 0)throw new b(-951,!1);return i});return r=o[de],r._dirtyCounter=Gi(0),r._flatValue=void 0,o}function fw(e){return lp(!0,!1,e)}function hw(e){return lp(!0,!0,e)}function pw(e,t){let n=e[de];n._lView=C(),n._queryIndex=t,n._queryList=su(n._lView,t),n._queryList.onDirty(()=>n._dirtyCounter.update(r=>r+1))}function gw(e,t){let n=e._lView,r=e._queryIndex;if(n===void 0||r===void 0||n[I]&4)return t?void 0:De;let o=su(n,r),i=cp(n,r);return o.reset(i,Uf),t?o.first:o._changesDetected||e._flatValue===void 0?e._flatValue=o.toArray():e._flatValue}function Dd(e,t){return fw(t)}function mw(e,t){return hw(t)}var oR=(Dd.required=mw,Dd);function yw(e){let t=[],n=new Map;function r(o){let i=n.get(o);if(!i){let s=e(o);n.set(o,i=s.then(ww))}return i}return ci.forEach((o,i)=>{let s=[];o.templateUrl&&s.push(r(o.templateUrl).then(u=>{o.template=u}));let a=typeof o.styles=="string"?[o.styles]:o.styles||[];if(o.styles=a,o.styleUrl&&o.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(o.styleUrls?.length){let u=o.styles.length,l=o.styleUrls;o.styleUrls.forEach((d,h)=>{a.push(""),s.push(r(d).then(f=>{a[u+h]=f,l.splice(l.indexOf(d),1),l.length==0&&(o.styleUrls=void 0)}))})}else o.styleUrl&&s.push(r(o.styleUrl).then(u=>{a.push(u),o.styleUrl=void 0}));let c=Promise.all(s).then(()=>Iw(i));t.push(c)}),Dw(),Promise.all(t).then(()=>{})}var ci=new Map,vw=new Set;function Dw(){let e=ci;return ci=new Map,e}function Ew(){return ci.size===0}function ww(e){return typeof e=="string"?e:e.text()}function Iw(e){vw.delete(e)}function bw(e){return Object.getPrototypeOf(e.prototype).constructor}function cu(e){let t=bw(e.type),n=!0,r=[e];for(;t;){let o;if(ft(e))o=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new b(903,!1);o=t.\u0275dir}if(o){if(n){r.push(o);let s=e;s.inputs=So(e.inputs),s.inputTransforms=So(e.inputTransforms),s.declaredInputs=So(e.declaredInputs),s.outputs=So(e.outputs);let a=o.hostBindings;a&&Sw(e,a);let c=o.viewQuery,u=o.contentQueries;if(c&&_w(e,c),u&&Tw(e,u),Cw(e,o),Vm(e.outputs,o.outputs),ft(o)&&o.data.animation){let l=e.data;l.animation=(l.animation||[]).concat(o.data.animation)}}let i=o.features;if(i)for(let s=0;s=0;r--){let o=e[r];o.hostVars=t+=o.hostVars,o.hostAttrs=Er(o.hostAttrs,n=Er(n,o.hostAttrs))}}function So(e){return e===Pn?{}:e===De?[]:e}function _w(e,t){let n=e.viewQuery;n?e.viewQuery=(r,o)=>{t(r,o),n(r,o)}:e.viewQuery=t}function Tw(e,t){let n=e.contentQueries;n?e.contentQueries=(r,o,i)=>{t(r,o,i),n(r,o,i)}:e.contentQueries=t}function Sw(e,t){let n=e.hostBindings;n?e.hostBindings=(r,o)=>{t(r,o),n(r,o)}:e.hostBindings=t}function Fr(e){let t=e.inputConfig,n={};for(let r in t)if(t.hasOwnProperty(r)){let o=t[r];Array.isArray(o)&&o[3]&&(n[r]=o[3])}e.inputTransforms=n}function dp(e){return uu(e)?Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e:!1}function Nw(e,t){if(Array.isArray(e))for(let n=0;n>17&32767}function jw(e){return(e&2)==2}function Vw(e,t){return e&131071|t<<17}function Qa(e){return e|2}function zn(e){return(e&131068)>>2}function Xs(e,t){return e&-131069|t<<2}function Bw(e){return(e&1)===1}function Ka(e){return e|1}function Hw(e,t,n,r,o,i){let s=i?t.classBindings:t.styleBindings,a=dn(s),c=zn(s);e[r]=n;let u=!1,l;if(Array.isArray(n)){let d=n;l=d[1],(l===null||Mr(d,l)>0)&&(u=!0)}else l=n;if(o)if(c!==0){let h=dn(e[a+1]);e[r+1]=No(h,a),h!==0&&(e[h+1]=Xs(e[h+1],r)),e[a+1]=Vw(e[a+1],r)}else e[r+1]=No(a,0),a!==0&&(e[a+1]=Xs(e[a+1],r)),a=r;else e[r+1]=No(c,0),a===0?a=r:e[c+1]=Xs(e[c+1],r),c=r;u&&(e[r+1]=Qa(e[r+1])),Ed(e,l,r,!0),Ed(e,l,r,!1),Uw(t,l,e,r,i),s=No(a,c),i?t.classBindings=s:t.styleBindings=s}function Uw(e,t,n,r,o){let i=o?e.residualClasses:e.residualStyles;i!=null&&typeof t=="string"&&Mr(i,t)>=0&&(n[r+1]=Ka(n[r+1]))}function Ed(e,t,n,r){let o=e[n+1],i=t===null,s=r?dn(o):zn(o),a=!1;for(;s!==0&&(a===!1||i);){let c=e[s],u=e[s+1];$w(c,t)&&(a=!0,e[s+1]=r?Ka(u):Qa(u)),s=r?dn(u):zn(u)}a&&(e[n+1]=r?Qa(o):Ka(o))}function $w(e,t){return e===null||t==null||(Array.isArray(e)?e[1]:e)===t?!0:Array.isArray(e)&&typeof t=="string"?Mr(e,t)>=0:!1}var ze={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function zw(e){return e.substring(ze.key,ze.keyEnd)}function Gw(e){return Ww(e),hp(e,pp(e,0,ze.textEnd))}function hp(e,t){let n=ze.textEnd;return n===t?-1:(t=ze.keyEnd=qw(e,ze.key=t,n),pp(e,t,n))}function Ww(e){ze.key=0,ze.keyEnd=0,ze.value=0,ze.valueEnd=0,ze.textEnd=e.length}function pp(e,t,n){for(;t32;)t++;return t}function Zw(e,t,n){let r=C(),o=Rt();if(xe(r,o,t)){let i=$(),s=Wn();xr(i,s,r,e,t,r[W],n,!1)}return Zw}function Ja(e,t,n,r,o){let i=t.inputs,s=o?"class":"style";eu(e,n,i[s],s,r)}function gp(e,t,n){return yp(e,t,n,!1),gp}function fu(e,t){return yp(e,t,null,!0),fu}function iR(e){vp(eI,mp,e,!0)}function mp(e,t){for(let n=Gw(t);n>=0;n=hp(t,n))Di(e,zw(t),!0)}function yp(e,t,n,r){let o=C(),i=$(),s=xc(2);if(i.firstUpdatePass&&Ep(i,e,s,r),t!==_e&&xe(o,s,t)){let a=i.data[gt()];wp(i,a,o,o[W],e,o[s+1]=nI(t,n),r,s)}}function vp(e,t,n,r){let o=$(),i=xc(2);o.firstUpdatePass&&Ep(o,null,i,r);let s=C();if(n!==_e&&xe(s,i,n)){let a=o.data[gt()];if(Ip(a,r)&&!Dp(o,i)){let c=r?a.classesWithoutHost:a.stylesWithoutHost;c!==null&&(n=ia(c,n||"")),Ja(o,a,s,n,r)}else tI(o,a,s,s[W],s[i+1],s[i+1]=Xw(e,t,n),r,i)}}function Dp(e,t){return t>=e.expandoStartIndex}function Ep(e,t,n,r){let o=e.data;if(o[n+1]===null){let i=o[gt()],s=Dp(e,n);Ip(i,r)&&t===null&&!s&&(t=!1),t=Yw(o,i,t,r),Hw(o,i,t,n,s,r)}}function Yw(e,t,n,r){let o=Ac(e),i=r?t.residualClasses:t.residualStyles;if(o===null)(r?t.classBindings:t.styleBindings)===0&&(n=ea(null,e,t,n,r),n=br(n,t.attrs,r),i=null);else{let s=t.directiveStylingLast;if(s===-1||e[s]!==o)if(n=ea(o,e,t,n,r),i===null){let c=Qw(e,t,r);c!==void 0&&Array.isArray(c)&&(c=ea(null,e,t,c[1],r),c=br(c,t.attrs,r),Kw(e,t,r,c))}else i=Jw(e,t,r)}return i!==void 0&&(r?t.residualClasses=i:t.residualStyles=i),n}function Qw(e,t,n){let r=n?t.classBindings:t.styleBindings;if(zn(r)!==0)return e[dn(r)]}function Kw(e,t,n,r){let o=n?t.classBindings:t.styleBindings;e[dn(o)]=r}function Jw(e,t,n){let r,o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0;){let c=e[o],u=Array.isArray(c),l=u?c[1]:c,d=l===null,h=n[o+1];h===_e&&(h=d?De:void 0);let f=d?Ws(h,r):l===r?h:void 0;if(u&&!li(f)&&(f=Ws(c,r)),li(f)&&(a=f,s))return a;let p=e[o+1];o=s?dn(p):zn(p)}if(t!==null){let c=i?t.residualClasses:t.residualStyles;c!=null&&(a=Ws(c,r))}return a}function li(e){return e!==void 0}function nI(e,t){return e==null||e===""||(typeof t=="string"?e=e+t:typeof e=="object"&&(e=Ee(Le(e)))),e}function Ip(e,t){return(e.flags&(t?8:16))!==0}function sR(e,t,n){let r=C(),o=du(r,e,t,n);vp(Di,mp,o,!0)}var Xa=class{destroy(t){}updateValue(t,n){}swap(t,n){let r=Math.min(t,n),o=Math.max(t,n),i=this.detach(o);if(o-r>1){let s=this.detach(r);this.attach(r,i),this.attach(o,s)}else this.attach(r,i)}move(t,n){this.attach(n,this.detach(t))}};function ta(e,t,n,r,o){return e===n&&Object.is(t,r)?1:Object.is(o(e,t),o(n,r))?-1:0}function rI(e,t,n){let r,o,i=0,s=e.length-1,a=void 0;if(Array.isArray(t)){let c=t.length-1;for(;i<=s&&i<=c;){let u=e.at(i),l=t[i],d=ta(i,u,i,l,n);if(d!==0){d<0&&e.updateValue(i,l),i++;continue}let h=e.at(s),f=t[c],p=ta(s,h,c,f,n);if(p!==0){p<0&&e.updateValue(s,f),s--,c--;continue}let g=n(i,u),D=n(s,h),N=n(i,l);if(Object.is(N,D)){let L=n(c,f);Object.is(L,g)?(e.swap(i,s),e.updateValue(s,f),c--,s--):e.move(s,i),e.updateValue(i,l),i++;continue}if(r??=new di,o??=bd(e,i,s,n),ec(e,r,i,N))e.updateValue(i,l),i++,s++;else if(o.has(N))r.set(g,e.detach(i)),s--;else{let L=e.create(i,t[i]);e.attach(i,L),i++,s++}}for(;i<=c;)Id(e,r,n,i,t[i]),i++}else if(t!=null){let c=t[Symbol.iterator](),u=c.next();for(;!u.done&&i<=s;){let l=e.at(i),d=u.value,h=ta(i,l,i,d,n);if(h!==0)h<0&&e.updateValue(i,d),i++,u=c.next();else{r??=new di,o??=bd(e,i,s,n);let f=n(i,d);if(ec(e,r,i,f))e.updateValue(i,d),i++,s++,u=c.next();else if(!o.has(f))e.attach(i,e.create(i,d)),i++,s++,u=c.next();else{let p=n(i,l);r.set(p,e.detach(i)),s--}}}for(;!u.done;)Id(e,r,n,e.length,u.value),u=c.next()}for(;i<=s;)e.destroy(e.detach(s--));r?.forEach(c=>{e.destroy(c)})}function ec(e,t,n,r){return t!==void 0&&t.has(r)?(e.attach(n,t.get(r)),t.delete(r),!0):!1}function Id(e,t,n,r,o){if(ec(e,t,r,n(r,o)))e.updateValue(r,o);else{let i=e.create(r,o);e.attach(r,i)}}function bd(e,t,n,r){let o=new Set;for(let i=t;i<=n;i++)o.add(r(i,e.at(i)));return o}var di=class{kvMap=new Map;_vMap=void 0;has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;let n=this.kvMap.get(t);return this._vMap!==void 0&&this._vMap.has(n)?(this.kvMap.set(t,this._vMap.get(n)),this._vMap.delete(n)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,n){if(this.kvMap.has(t)){let r=this.kvMap.get(t);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(r);)r=o.get(r);o.set(r,n)}else this.kvMap.set(t,n)}forEach(t){for(let[n,r]of this.kvMap)if(t(r,n),this._vMap!==void 0){let o=this._vMap;for(;o.has(r);)r=o.get(r),t(r,n)}}};function aR(e,t){We("NgControlFlow");let n=C(),r=Rt(),o=n[r]!==_e?n[r]:-1,i=o!==-1?fi(n,se+o):void 0,s=0;if(xe(n,r,e)){let a=F(null);try{if(i!==void 0&&Hh(i,s),e!==-1){let c=se+e,u=fi(n,c),l=oc(n[x],c),d=$n(u,l.tView.ssrId),h=Ar(n,l,t,{dehydratedView:d});Rr(u,h,s,Bn(l,d))}}finally{F(a)}}else if(i!==void 0){let a=Bh(i,s);a!==void 0&&(a[he]=t)}}var tc=class{lContainer;$implicit;$index;constructor(t,n,r){this.lContainer=t,this.$implicit=n,this.$index=r}get $count(){return this.lContainer.length-pe}};function cR(e,t){return t}var nc=class{hasEmptyBlock;trackByFn;liveCollection;constructor(t,n,r){this.hasEmptyBlock=t,this.trackByFn=n,this.liveCollection=r}};function uR(e,t,n,r,o,i,s,a,c,u,l,d,h){We("NgControlFlow");let f=C(),p=$(),g=c!==void 0,D=C(),N=a?s.bind(D[Ne][he]):s,L=new nc(g,N);D[se+e]=L,ui(f,p,e+1,t,n,r,o,_t(p.consts,i)),g&&ui(f,p,e+2,c,u,l,d,_t(p.consts,h))}var rc=class extends Xa{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(t,n,r){super(),this.lContainer=t,this.hostLView=n,this.templateTNode=r}get length(){return this.lContainer.length-pe}at(t){return this.getLView(t)[he].$implicit}attach(t,n){let r=n[Ln];this.needsIndexUpdate||=t!==this.length,Rr(this.lContainer,n,t,Bn(this.templateTNode,r))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,oI(this.lContainer,t)}create(t,n){let r=$n(this.lContainer,this.templateTNode.tView.ssrId),o=Ar(this.hostLView,this.templateTNode,new tc(this.lContainer,n,t),{dehydratedView:r});return this.operationsCounter?.recordCreate(),o}destroy(t){Fi(t[x],t),this.operationsCounter?.recordDestroy()}updateValue(t,n){this.getLView(t)[he].$implicit=n}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t(xi(!0),fh(r,o,qy()));function uI(e,t,n,r,o){let i=t.consts,s=_t(i,r),a=Zn(t,e,8,"ng-container",s);s!==null&&ni(a,s,!0);let c=_t(i,o);return Xc(t,n,a,c),t.queries!==null&&t.queries.elementStart(t,a),a}function Mp(e,t,n){let r=C(),o=$(),i=e+se,s=o.firstCreatePass?uI(i,o,r,t,n):o.data[i];fn(s,!0);let a=dI(o,r,s,e);return r[i]=a,Ni()&&Pi(o,r,a,s),Tt(a,r),_i(s)&&(Qc(o,r,s),Yc(o,s,r)),n!=null&&Kc(r,s),Mp}function _p(){let e=oe(),t=$();return Sc()?Nc():(e=e.parent,fn(e,!1)),t.firstCreatePass&&(Ai(t,e),bc(e)&&t.queries.elementEnd(e)),_p}function lI(e,t,n){return Mp(e,t,n),_p(),lI}var dI=(e,t,n,r)=>(xi(!0),uD(t[W],""));function dR(){return C()}function fI(e,t,n){let r=C(),o=Rt();if(xe(r,o,t)){let i=$(),s=Wn();xr(i,s,r,e,t,r[W],n,!0)}return fI}function hI(e,t,n){let r=C(),o=Rt();if(xe(r,o,t)){let i=$(),s=Wn(),a=Ac(i.data),c=Lh(a,s,r);xr(i,s,r,e,t,c,n,!0)}return hI}var Yt=void 0;function pI(e){let t=e,n=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return n===1&&r===0?1:5}var gI=["en",[["a","p"],["AM","PM"],Yt],[["AM","PM"],Yt,Yt],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Yt,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Yt,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Yt,"{1} 'at' {0}",Yt],[".",",",";","%","+","-","E","\xD7","\u2030","\u221E","NaN",":"],["#,##0.###","#,##0%","\xA4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",pI],na={};function je(e){let t=mI(e),n=Cd(t);if(n)return n;let r=t.split("-")[0];if(n=Cd(r),n)return n;if(r==="en")return gI;throw new b(701,!1)}function Cd(e){return e in na||(na[e]=ce.ng&&ce.ng.common&&ce.ng.common.locales&&ce.ng.common.locales[e]),na[e]}var K=function(e){return e[e.LocaleId=0]="LocaleId",e[e.DayPeriodsFormat=1]="DayPeriodsFormat",e[e.DayPeriodsStandalone=2]="DayPeriodsStandalone",e[e.DaysFormat=3]="DaysFormat",e[e.DaysStandalone=4]="DaysStandalone",e[e.MonthsFormat=5]="MonthsFormat",e[e.MonthsStandalone=6]="MonthsStandalone",e[e.Eras=7]="Eras",e[e.FirstDayOfWeek=8]="FirstDayOfWeek",e[e.WeekendRange=9]="WeekendRange",e[e.DateFormat=10]="DateFormat",e[e.TimeFormat=11]="TimeFormat",e[e.DateTimeFormat=12]="DateTimeFormat",e[e.NumberSymbols=13]="NumberSymbols",e[e.NumberFormats=14]="NumberFormats",e[e.CurrencyCode=15]="CurrencyCode",e[e.CurrencySymbol=16]="CurrencySymbol",e[e.CurrencyName=17]="CurrencyName",e[e.Currencies=18]="Currencies",e[e.Directionality=19]="Directionality",e[e.PluralCase=20]="PluralCase",e[e.ExtraData=21]="ExtraData",e}(K||{});function mI(e){return e.toLowerCase().replace(/_/g,"-")}var hi="en-US";var yI=hi;function vI(e){typeof e=="string"&&(yI=e.toLowerCase().replace(/_/g,"-"))}var DI=(e,t,n)=>{};function EI(e,t,n,r){let o=C(),i=$(),s=oe();return hu(i,o,o[W],s,e,t,r),EI}function wI(e,t){let n=oe(),r=C(),o=$(),i=Ac(o.data),s=Lh(i,n,r);return hu(o,r,s,n,e,t),wI}function II(e,t,n,r){let o=e.cleanup;if(o!=null)for(let i=0;ic?a[c]:null}typeof s=="string"&&(i+=2)}return null}function hu(e,t,n,r,o,i,s){let a=_i(r),u=e.firstCreatePass&&kh(e),l=t[he],d=Ph(t),h=!0;if(r.type&3||s){let g=Pe(r,t),D=s?s(g):g,N=d.length,L=s?te=>s(tt(te[r.index])):r.index,B=null;if(!s&&a&&(B=II(e,t,o,r.index)),B!==null){let te=B.__ngLastListenerFn__||B;te.__ngNextListenerFn__=i,B.__ngLastListenerFn__=i,h=!1}else{i=_d(r,t,l,i),DI(g,o,i);let te=n.listen(D,o,i);d.push(i,te),u&&u.push(o,L,N,N+1)}}else i=_d(r,t,l,i);let f=r.outputs,p;if(h&&f!==null&&(p=f[o])){let g=p.length;if(g)for(let D=0;D-1?At(e.index,t):t;nu(s,5);let a=Md(t,n,r,i),c=o.__ngNextListenerFn__;for(;c;)a=Md(t,n,c,i)&&a,c=c.__ngNextListenerFn__;return a}}function fR(e=1){return Gy(e)}function bI(e,t){let n=null,r=xD(e);for(let o=0;o=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}function wR(e){let t=jy();return Mc(t,se+e)}function IR(e,t=""){let n=C(),r=$(),o=e+se,i=r.firstCreatePass?Zn(r,o,1,t,null):r.data[o],s=TI(r,n,i,t,e);n[o]=s,Ni()&&Pi(r,n,s,i),fn(i,!1)}var TI=(e,t,n,r,o)=>(xi(!0),aD(t[W],r));function SI(e){return Sp("",e,""),SI}function Sp(e,t,n){let r=C(),o=du(r,e,t,n);return o!==_e&&Vh(r,gt(),o),Sp}function NI(e,t,n,r,o){let i=C(),s=Lw(i,e,t,n,r,o);return s!==_e&&Vh(i,gt(),s),NI}function xI(e,t,n){up(t)&&(t=t());let r=C(),o=Rt();if(xe(r,o,t)){let i=$(),s=Wn();xr(i,s,r,e,t,r[W],n,!1)}return xI}function bR(e,t){let n=up(e);return n&&e.set(t),n}function AI(e,t){let n=C(),r=$(),o=oe();return hu(r,n,n[W],o,e,t),AI}function RI(e,t,n){let r=$();if(r.firstCreatePass){let o=ft(e);ic(n,r.data,r.blueprint,o,!0),ic(t,r.data,r.blueprint,o,!1)}}function ic(e,t,n,r,o){if(e=ve(e),Array.isArray(e))for(let i=0;i>20;if(kn(e)||!e.multi){let f=new on(u,o,X),p=oa(c,t,o?l:l+h,d);p===-1?(Ea(Yo(a,s),i,c),ra(i,e,t.length),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(f),s.push(f)):(n[p]=f,s[p]=f)}else{let f=oa(c,t,l+h,d),p=oa(c,t,l,l+h),g=f>=0&&n[f],D=p>=0&&n[p];if(o&&!D||!o&&!g){Ea(Yo(a,s),i,c);let N=PI(o?FI:OI,n.length,o,r,u);!o&&D&&(n[p].providerFactory=N),ra(i,e,t.length,0),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(N),s.push(N)}else{let N=Np(n[o?p:f],u,!o&&r);ra(i,e,f>-1?f:p,N)}!o&&r&&D&&n[p].componentProviders++}}}function ra(e,t,n,r){let o=kn(t),i=py(t);if(o||i){let c=(i?ve(t.useClass):t).prototype.ngOnDestroy;if(c){let u=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){let l=u.indexOf(n);l===-1?u.push(n,[r,c]):u[l+1].push(r,c)}else u.push(n,c)}}}function Np(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function oa(e,t,n,r){for(let o=n;o{n.providersResolver=(r,o)=>RI(r,o?o(e):e,t)}}function CR(e,t,n){let r=Tr()+e,o=C();return o[r]===_e?lu(o,r,n?t.call(n):t()):xw(o,r)}function MR(e,t,n,r){return Rp(C(),Tr(),e,t,n,r)}function _R(e,t,n,r,o){return Op(C(),Tr(),e,t,n,r,o)}function Ap(e,t){let n=e[t];return n===_e?void 0:n}function Rp(e,t,n,r,o,i){let s=t+n;return xe(e,s,o)?lu(e,s+1,i?r.call(i,o):r(o)):Ap(e,s+1)}function Op(e,t,n,r,o,i,s){let a=t+n;return fp(e,a,o,i)?lu(e,a+2,s?r.call(s,o,i):r(o,i)):Ap(e,a+2)}function TR(e,t){let n=$(),r,o=e+se;n.firstCreatePass?(r=kI(t,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks??=[]).push(o,r.onDestroy)):r=n.data[o];let i=r.factory||(r.factory=Jt(r.type,!0)),s,a=be(X);try{let c=Zo(!1),u=i();return Zo(c),_I(n,C(),o,u),u}finally{be(a)}}function kI(e,t){if(t)for(let n=t.length-1;n>=0;n--){let r=t[n];if(e===r.name)return r}}function SR(e,t,n){let r=e+se,o=C(),i=Mc(o,r);return Fp(o,r)?Rp(o,Tr(),t,i.transform,n,i):i.transform(n)}function NR(e,t,n,r){let o=e+se,i=C(),s=Mc(i,o);return Fp(i,o)?Op(i,Tr(),t,s.transform,n,r,s):s.transform(n,r)}function Fp(e,t){return e[x].data[t].pure}function xR(e,t){return Vi(e,t)}var xo=null;function LI(e){xo!==null&&(e.defaultEncapsulation!==xo.defaultEncapsulation||e.preserveWhitespaces!==xo.preserveWhitespaces)||(xo=e)}var ac=class{ngModuleFactory;componentFactories;constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}},AR=(()=>{class e{compileModuleSync(n){return new ii(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){let r=this.compileModuleSync(n),o=qd(n),i=dh(o.declarations).reduce((s,a)=>{let c=ut(a);return c&&s.push(new ln(c)),s},[]);return new ac(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),jI=new T("");function VI(e,t,n){let r=new ii(n);return Promise.resolve(r)}function Td(e){for(let t=e.length-1;t>=0;t--)if(e[t]!==void 0)return e[t]}var BI=(()=>{class e{zone=m(G);changeDetectionScheduler=m(an);applicationRef=m(hn);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function HI({ngZoneFactory:e,ignoreChangesOutsideZone:t,scheduleInRootZone:n}){return e??=()=>new G(ae(Q({},Pp()),{scheduleInRootZone:n})),[{provide:G,useFactory:e},{provide:yr,multi:!0,useFactory:()=>{let r=m(BI,{optional:!0});return()=>r.initialize()}},{provide:yr,multi:!0,useFactory:()=>{let r=m(UI);return()=>{r.initialize()}}},t===!0?{provide:Lf,useValue:!0}:[],{provide:jf,useValue:n??kf}]}function Pp(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}var UI=(()=>{class e{subscription=new J;initialized=!1;zone=m(G);pendingTasks=m(Ot);initialize(){if(this.initialized)return;this.initialized=!0;let n=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(n=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{G.assertNotInAngularZone(),queueMicrotask(()=>{n!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(n),n=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{G.assertInAngularZone(),n??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var $I=(()=>{class e{appRef=m(hn);taskService=m(Ot);ngZone=m(G);zonelessEnabled=m(kc);disableScheduling=m(Lf,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new J;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Ko):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(m(jf,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof Jo||!this.zoneIsDefined)}notify(n){if(!this.zonelessEnabled&&n===5)return;let r=!1;switch(n){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 8:{this.appRef.deferredDirtyFlags|=8;break}case 6:{this.appRef.dirtyFlags|=2,r=!0;break}case 13:{this.appRef.dirtyFlags|=16,r=!0;break}case 14:{this.appRef.dirtyFlags|=2,r=!0;break}case 12:{r=!0;break}case 10:case 9:case 7:case 11:default:this.appRef.dirtyFlags|=8}if(!this.shouldScheduleTick(r))return;let o=this.useMicrotaskScheduler?Jl:Vf;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>o(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>o(()=>this.tick()))}shouldScheduleTick(n){return!(this.disableScheduling&&!n||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Ko+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let n=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){throw this.taskService.remove(n),r}finally{this.cleanup()}this.useMicrotaskScheduler=!0,Jl(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(n)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let n=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(n)}}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function zI(){return typeof $localize<"u"&&$localize.locale||hi}var Wi=new T("",{providedIn:"root",factory:()=>m(Wi,k.Optional|k.SkipSelf)||zI()});var pi=new T("");function Ao(e){return!e.moduleRef}function GI(e){let t=Ao(e)?e.r3Injector:e.moduleRef.injector,n=t.get(G);return n.run(()=>{Ao(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=t.get(nt,null),o;if(n.runOutsideAngular(()=>{o=n.onError.subscribe({next:i=>{r.handleError(i)}})}),Ao(e)){let i=()=>t.destroy(),s=e.platformInjector.get(pi);s.add(i),t.onDestroy(()=>{o.unsubscribe(),s.delete(i)})}else{let i=()=>e.moduleRef.destroy(),s=e.platformInjector.get(pi);s.add(i),e.moduleRef.onDestroy(()=>{Lo(e.allPlatformModules,e.moduleRef),o.unsubscribe(),s.delete(i)})}return ZE(r,n,()=>{let i=t.get(Jh);return i.runInitializers(),i.donePromise.then(()=>{let s=t.get(Wi,hi);if(vI(s||hi),Ao(e)){let a=t.get(hn);return e.rootComponent!==void 0&&a.bootstrap(e.rootComponent),a}else return WI(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}function WI(e,t){let n=e.injector.get(hn);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>n.bootstrap(r));else if(e.instance.ngDoBootstrap)e.instance.ngDoBootstrap(n);else throw new b(-403,!1);t.push(e)}var kp=(()=>{class e{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(n){this._injector=n}bootstrapModuleFactory(n,r){let o=r?.scheduleInRootZone,i=()=>yv(r?.ngZone,ae(Q({},Pp({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing})),{scheduleInRootZone:o})),s=r?.ignoreChangesOutsideZone,a=[HI({ngZoneFactory:i,ignoreChangesOutsideZone:s}),{provide:an,useExisting:$I}],c=kE(n.moduleType,this.injector,a);return GI({moduleRef:c,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(n,r=[]){let o=tp({},r);return VI(this.injector,o,n).then(i=>this.bootstrapModuleFactory(i,o))}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new b(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());let n=this._injector.get(pi,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(r){return new(r||e)(_(Fe))};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})(),gr=null,Lp=new T("");function qI(e){if(gr&&!gr.get(Lp,!1))throw new b(400,!1);GE(),gr=e;let t=e.get(kp);return QI(e),t}function pu(e,t,n=[]){let r=`Platform: ${t}`,o=new T(r);return(i=[])=>{let s=jp();if(!s||s.injector.get(Lp,!1)){let a=[...n,...i,{provide:o,useValue:!0}];e?e(a):qI(ZI(a,r))}return YI(o)}}function ZI(e=[],t){return Fe.create({name:t,providers:[{provide:Ei,useValue:"platform"},{provide:pi,useValue:new Set([()=>gr=null])},...e]})}function YI(e){let t=jp();if(!t)throw new b(401,!1);return t}function jp(){return gr?.get(kp)??null}function QI(e){let t=e.get(Bc,null);Ii(e,()=>{t?.forEach(n=>n())})}var qi=(()=>{class e{static __NG_ELEMENT_ID__=KI}return e})();function KI(e){return JI(oe(),C(),(e&16)===16)}function JI(e,t,n){if(Mi(e)&&!n){let r=At(e.index,t);return new cn(r,r)}else if(e.type&175){let r=t[Ne];return new cn(r,t)}return null}var cc=class{constructor(){}supports(t){return dp(t)}create(t){return new uc(t)}},XI=(e,t)=>t,uc=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(t){this._trackByFn=t||XI}forEachItem(t){let n;for(n=this._itHead;n!==null;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){let s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),n===null||!Object.is(n.trackById,s)?(n=this._mismatch(n,a,s,o),r=!0):(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)),n=n._next,o++}),this.length=o;return this._truncate(n),this.collection=t,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;t!==null;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;t!==null;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,n,r,o){let i;return t===null?i=this._itTail:(i=t._prev,this._remove(t)),t=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):(t=this._linkedRecords===null?null:this._linkedRecords.get(r,o),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new lc(n,r),i,o)),t}_verifyReinsertion(t,n,r,o){let i=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null);return i!==null?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;t!==null;){let n=t._next;this._addToRemovals(this._unlink(t)),t=n}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,n,r){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(t);let o=t._prevRemoved,i=t._nextRemoved;return o===null?this._removalsHead=i:o._nextRemoved=i,i===null?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail===null?this._additionsTail=this._additionsHead=t:this._additionsTail=this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){let o=n===null?this._itHead:n._next;return t._next=o,t._prev=n,o===null?this._itTail=t:o._prev=t,n===null?this._itHead=t:n._next=t,this._linkedRecords===null&&(this._linkedRecords=new gi),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){this._linkedRecords!==null&&this._linkedRecords.remove(t);let n=t._prev,r=t._next;return n===null?this._itHead=r:n._next=r,r===null?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail===null?this._movesTail=this._movesHead=t:this._movesTail=this._movesTail._nextMoved=t),t}_addToRemovals(t){return this._unlinkedRecords===null&&(this._unlinkedRecords=new gi),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,n){return t.item=n,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=t:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=t,t}},lc=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(t,n){this.item=t,this.trackById=n}},dc=class{_head=null;_tail=null;add(t){this._head===null?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,n){let r;for(r=this._head;r!==null;r=r._nextDup)if((n===null||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){let n=t._prevDup,r=t._nextDup;return n===null?this._head=r:n._nextDup=r,r===null?this._tail=n:r._prevDup=n,this._head===null}},gi=class{map=new Map;put(t){let n=t.trackById,r=this.map.get(n);r||(r=new dc,this.map.set(n,r)),r.add(t)}get(t,n){let r=t,o=this.map.get(r);return o?o.get(t,n):null}remove(t){let n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function Sd(e,t,n){let r=e.previousIndex;if(r===null)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{let i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;r!==null;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){let r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){let o=this._records.get(t);this._maybeAddToChanges(o,n);let i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}let r=new pc(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;t!==null;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;t!=null;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,this._addToChanges(t))}_addToAdditions(t){this._additionsHead===null?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){this._changesHead===null?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}},pc=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(t){this.key=t}};function Nd(){return new gu([new cc])}var gu=(()=>{class e{factories;static \u0275prov=S({token:e,providedIn:"root",factory:Nd});constructor(n){this.factories=n}static create(n,r){if(r!=null){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Nd()),deps:[[e,new $d,new vc]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r!=null)return r;throw new b(901,!1)}}return e})();function xd(){return new mu([new fc])}var mu=(()=>{class e{static \u0275prov=S({token:e,providedIn:"root",factory:xd});factories;constructor(n){this.factories=n}static create(n,r){if(r){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||xd()),deps:[[e,new $d,new vc]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r)return r;throw new b(901,!1)}}return e})();var Vp=pu(null,"core",[]),Bp=(()=>{class e{constructor(n){}static \u0275fac=function(r){return new(r||e)(_(hn))};static \u0275mod=Ft({type:e});static \u0275inj=xt({})}return e})();function Pr(e){return typeof e=="boolean"?e:e!=null&&e!=="false"}function yu(e,t=NaN){return!isNaN(parseFloat(e))&&!isNaN(Number(e))?Number(e):t}function Hp(e,t){We("NgSignals");let n=Cs(e);return t?.equal&&(n[de].equal=t.equal),n}function vu(e){let t=F(null);try{return e()}finally{F(t)}}var Up=(()=>{class e{view;node;constructor(n,r){this.view=n,this.node=r}static __NG_ELEMENT_ID__=eb}return e})();function eb(){return new Up(C(),oe())}var tb=!1,nb=(()=>{class e extends si{pendingTasks=m(Ot);taskId=null;schedule(n){super.schedule(n),this.taskId===null&&(this.taskId=this.pendingTasks.add(),queueMicrotask(()=>this.flush()))}flush(){try{super.flush()}finally{this.taskId!==null&&(this.pendingTasks.remove(this.taskId),this.taskId=null)}}static \u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})(),gc=class{scheduler;effectFn;zone;injector;unregisterOnDestroy;watcher;constructor(t,n,r,o,i,s){this.scheduler=t,this.effectFn=n,this.zone=r,this.injector=i,this.watcher=ul(a=>this.runEffect(a),()=>this.schedule(),s),this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}runEffect(t){try{this.effectFn(t)}catch(n){this.injector.get(nt,null,{optional:!0})?.handleError(n)}}run(){this.watcher.run()}schedule(){this.scheduler.schedule(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}};function rb(){}function ob(e,t){We("NgSignals"),!t?.injector&&bi(rb);let n=t?.injector??m(Fe),r=t?.manualCleanup!==!0?n.get(Sr):null,o=new gc(n.get(nb),e,typeof Zone>"u"?null:Zone.current,r,n,t?.allowSignalWrites??!1),i=n.get(qi,null,{optional:!0});return!i||!(i._lView[I]&8)?o.watcher.notify():(i._lView[Oo]??=[]).push(o.watcher.notify),o}var ib=tb;var mc=class{[de];constructor(t){this[de]=t}destroy(){this[de].destroy()}};function Yn(e,t){if(ib)return ob(e,t);We("NgSignals"),!t?.injector&&bi(Yn);let n=t?.injector??m(Fe),r=t?.manualCleanup!==!0?n.get(Sr):null,o,i=n.get(Up,null,{optional:!0}),s=n.get(an);return i!==null&&!t?.forceRoot?(o=cb(i.view,s,e),r instanceof Qo&&r._lView===i.view&&(r=null)):o=ub(e,n.get(Xh),s),o.injector=n,r!==null&&(o.onDestroyFn=r.onDestroy(()=>o.destroy())),new mc(o)}var $p=ae(Q({},Bt),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,onDestroyFn:wr,run(){if(this.dirty=!1,this.hasRun&&!or(this))return;this.hasRun=!0;let e=r=>(this.cleanupFns??=[]).push(r),t=vn(this),n=Go(!1);try{this.maybeCleanup(),this.fn(e)}finally{Go(n),rr(this,t)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),sb=ae(Q({},$p),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(13)},destroy(){Dn(this),this.onDestroyFn(),this.maybeCleanup()}}),ab=ae(Q({},$p),{consumerMarkedDirty(){this.view[I]|=8192,_r(this.view),this.notifier.notify(14)},destroy(){Dn(this),this.onDestroyFn(),this.maybeCleanup(),this.view[en]?.delete(this)}});function cb(e,t,n){let r=Object.create(ab);return r.view=e,r.zone=typeof Zone<"u"?Zone.current:null,r.notifier=t,r.fn=n,e[en]??=new Set,e[en].add(r),r.consumerMarkedDirty(r),r}function ub(e,t,n){let r=Object.create(sb);return r.fn=e,r.scheduler=t,r.notifier=n,r.zone=typeof Zone<"u"?Zone.current:null,r.scheduler.schedule(r),r.notifier.notify(13),r}function RR(e,t){let n=ut(e),r=t.elementInjector||wi();return new ln(n).create(r,t.projectableNodes,t.hostElement,t.environmentInjector)}function OR(e){let t=ut(e);if(!t)return null;let n=new ln(t);return{get selector(){return n.selector},get type(){return n.componentType},get inputs(){return n.inputs},get outputs(){return n.outputs},get ngContentSelectors(){return n.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}var Qp=null;function gn(){return Qp}function Kp(e){Qp??=e}var ns=class{};var ue=new T(""),Nu=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:()=>m(fb),providedIn:"platform"})}return e})(),eO=new T(""),fb=(()=>{class e extends Nu{_location;_history;_doc=m(ue);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return gn().getBaseHref(this._doc)}onPopState(n){let r=gn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){let r=gn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(n){this._location.pathname=n}pushState(n,r,o){this._history.pushState(n,r,o)}replaceState(n,r,o){this._history.replaceState(n,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function xu(e,t){if(e.length==0)return t;if(t.length==0)return e;let n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,n==2?e+t.substring(1):n==1?e+t:e+"/"+t}function zp(e){let t=e.match(/#|\?|$/),n=t&&t.index||e.length,r=n-(e[n-1]==="/"?1:0);return e.slice(0,r)+e.slice(n)}function Dt(e){return e&&e[0]!=="?"?"?"+e:e}var os=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:()=>m(hb),providedIn:"root"})}return e})(),Jp=new T(""),hb=(()=>{class e extends os{_platformLocation;_baseHref;_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??m(ue).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return xu(this._baseHref,n)}path(n=!1){let r=this._platformLocation.pathname+Dt(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+Dt(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+Dt(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(_(Nu),_(Jp,8))};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),tO=(()=>{class e extends os{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,r!=null&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let r=this._platformLocation.hash??"#";return r.length>0?r.substring(1):r}prepareExternalUrl(n){let r=xu(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+Dt(i));s.length==0&&(s=this._platformLocation.pathname),this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+Dt(i));s.length==0&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(_(Nu),_(Jp,8))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),pb=(()=>{class e{_subject=new Ie;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(n){this._locationStrategy=n;let r=this._locationStrategy.getBaseHref();this._basePath=yb(zp(Gp(r))),this._locationStrategy.onPopState(o=>{this._subject.next({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+Dt(r))}normalize(n){return e.stripTrailingSlash(mb(this._basePath,Gp(n)))}prepareExternalUrl(n){return n&&n[0]!=="/"&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Dt(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Dt(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription??=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{let r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r??void 0,complete:o??void 0})}static normalizeQueryParams=Dt;static joinWithSlash=xu;static stripTrailingSlash=zp;static \u0275fac=function(r){return new(r||e)(_(os))};static \u0275prov=S({token:e,factory:()=>gb(),providedIn:"root"})}return e})();function gb(){return new pb(_(os))}function mb(e,t){if(!e||!t.startsWith(e))return t;let n=t.substring(e.length);return n===""||["/",";","?","#"].includes(n[0])?n:t}function Gp(e){return e.replace(/\/index.html$/,"")}function yb(e){if(new RegExp("^(https?:)?//").test(e)){let[,n]=e.split(/\/\/[^\/]+/);return n}return e}var we=function(e){return e[e.Format=0]="Format",e[e.Standalone=1]="Standalone",e}(we||{}),U=function(e){return e[e.Narrow=0]="Narrow",e[e.Abbreviated=1]="Abbreviated",e[e.Wide=2]="Wide",e[e.Short=3]="Short",e}(U||{}),Re=function(e){return e[e.Short=0]="Short",e[e.Medium=1]="Medium",e[e.Long=2]="Long",e[e.Full=3]="Full",e}(Re||{}),Pt={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function vb(e){return je(e)[K.LocaleId]}function Db(e,t,n){let r=je(e),o=[r[K.DayPeriodsFormat],r[K.DayPeriodsStandalone]],i=Ve(o,t);return Ve(i,n)}function Eb(e,t,n){let r=je(e),o=[r[K.DaysFormat],r[K.DaysStandalone]],i=Ve(o,t);return Ve(i,n)}function wb(e,t,n){let r=je(e),o=[r[K.MonthsFormat],r[K.MonthsStandalone]],i=Ve(o,t);return Ve(i,n)}function Ib(e,t){let r=je(e)[K.Eras];return Ve(r,t)}function Zi(e,t){let n=je(e);return Ve(n[K.DateFormat],t)}function Yi(e,t){let n=je(e);return Ve(n[K.TimeFormat],t)}function Qi(e,t){let r=je(e)[K.DateTimeFormat];return Ve(r,t)}function is(e,t){let n=je(e),r=n[K.NumberSymbols][t];if(typeof r>"u"){if(t===Pt.CurrencyDecimal)return n[K.NumberSymbols][Pt.Decimal];if(t===Pt.CurrencyGroup)return n[K.NumberSymbols][Pt.Group]}return r}function Xp(e){if(!e[K.ExtraData])throw new Error(`Missing extra locale data for the locale "${e[K.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function bb(e){let t=je(e);return Xp(t),(t[K.ExtraData][2]||[]).map(r=>typeof r=="string"?Du(r):[Du(r[0]),Du(r[1])])}function Cb(e,t,n){let r=je(e);Xp(r);let o=[r[K.ExtraData][0],r[K.ExtraData][1]],i=Ve(o,t)||[];return Ve(i,n)||[]}function Ve(e,t){for(let n=t;n>-1;n--)if(typeof e[n]<"u")return e[n];throw new Error("Locale data API: locale data undefined")}function Du(e){let[t,n]=e.split(":");return{hours:+t,minutes:+n}}var Mb=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ki={},_b=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/,Et=function(e){return e[e.Short=0]="Short",e[e.ShortGMT=1]="ShortGMT",e[e.Long=2]="Long",e[e.Extended=3]="Extended",e}(Et||{}),V=function(e){return e[e.FullYear=0]="FullYear",e[e.Month=1]="Month",e[e.Date=2]="Date",e[e.Hours=3]="Hours",e[e.Minutes=4]="Minutes",e[e.Seconds=5]="Seconds",e[e.FractionalSeconds=6]="FractionalSeconds",e[e.Day=7]="Day",e}(V||{}),j=function(e){return e[e.DayPeriods=0]="DayPeriods",e[e.Days=1]="Days",e[e.Months=2]="Months",e[e.Eras=3]="Eras",e}(j||{});function Tb(e,t,n,r){let o=kb(e);t=vt(n,t)||t;let s=[],a;for(;t;)if(a=_b.exec(t),a){s=s.concat(a.slice(1));let l=s.pop();if(!l)break;t=l}else{s.push(t);break}let c=o.getTimezoneOffset();r&&(c=tg(r,c),o=Pb(o,r,!0));let u="";return s.forEach(l=>{let d=Ob(l);u+=d?d(o,n,c):l==="''"?"'":l.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}function rs(e,t,n){let r=new Date(0);return r.setFullYear(e,t,n),r.setHours(0,0,0),r}function vt(e,t){let n=vb(e);if(Ki[n]??={},Ki[n][t])return Ki[n][t];let r="";switch(t){case"shortDate":r=Zi(e,Re.Short);break;case"mediumDate":r=Zi(e,Re.Medium);break;case"longDate":r=Zi(e,Re.Long);break;case"fullDate":r=Zi(e,Re.Full);break;case"shortTime":r=Yi(e,Re.Short);break;case"mediumTime":r=Yi(e,Re.Medium);break;case"longTime":r=Yi(e,Re.Long);break;case"fullTime":r=Yi(e,Re.Full);break;case"short":let o=vt(e,"shortTime"),i=vt(e,"shortDate");r=Ji(Qi(e,Re.Short),[o,i]);break;case"medium":let s=vt(e,"mediumTime"),a=vt(e,"mediumDate");r=Ji(Qi(e,Re.Medium),[s,a]);break;case"long":let c=vt(e,"longTime"),u=vt(e,"longDate");r=Ji(Qi(e,Re.Long),[c,u]);break;case"full":let l=vt(e,"fullTime"),d=vt(e,"fullDate");r=Ji(Qi(e,Re.Full),[l,d]);break}return r&&(Ki[n][t]=r),r}function Ji(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,function(n,r){return t!=null&&r in t?t[r]:n})),e}function Ze(e,t,n="-",r,o){let i="";(e<0||o&&e<=0)&&(o?e=-e+1:(e=-e,i=n));let s=String(e);for(;s.length0||a>-n)&&(a+=n),e===V.Hours)a===0&&n===-12&&(a=12);else if(e===V.FractionalSeconds)return Sb(a,t);let c=is(s,Pt.MinusSign);return Ze(a,t,c,r,o)}}function Nb(e,t){switch(e){case V.FullYear:return t.getFullYear();case V.Month:return t.getMonth();case V.Date:return t.getDate();case V.Hours:return t.getHours();case V.Minutes:return t.getMinutes();case V.Seconds:return t.getSeconds();case V.FractionalSeconds:return t.getMilliseconds();case V.Day:return t.getDay();default:throw new Error(`Unknown DateType value "${e}".`)}}function z(e,t,n=we.Format,r=!1){return function(o,i){return xb(o,i,e,t,n,r)}}function xb(e,t,n,r,o,i){switch(n){case j.Months:return wb(t,o,r)[e.getMonth()];case j.Days:return Eb(t,o,r)[e.getDay()];case j.DayPeriods:let s=e.getHours(),a=e.getMinutes();if(i){let u=bb(t),l=Cb(t,o,r),d=u.findIndex(h=>{if(Array.isArray(h)){let[f,p]=h,g=s>=f.hours&&a>=f.minutes,D=s0?Math.floor(o/60):Math.ceil(o/60);switch(e){case Et.Short:return(o>=0?"+":"")+Ze(s,2,i)+Ze(Math.abs(o%60),2,i);case Et.ShortGMT:return"GMT"+(o>=0?"+":"")+Ze(s,1,i);case Et.Long:return"GMT"+(o>=0?"+":"")+Ze(s,2,i)+":"+Ze(Math.abs(o%60),2,i);case Et.Extended:return r===0?"Z":(o>=0?"+":"")+Ze(s,2,i)+":"+Ze(Math.abs(o%60),2,i);default:throw new Error(`Unknown zone width "${e}"`)}}}var Ab=0,ts=4;function Rb(e){let t=rs(e,Ab,1).getDay();return rs(e,0,1+(t<=ts?ts:ts+7)-t)}function eg(e){let t=e.getDay(),n=t===0?-3:ts-t;return rs(e.getFullYear(),e.getMonth(),e.getDate()+n)}function Eu(e,t=!1){return function(n,r){let o;if(t){let i=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,s=n.getDate();o=1+Math.floor((s+i)/7)}else{let i=eg(n),s=Rb(i.getFullYear()),a=i.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return Ze(o,e,is(r,Pt.MinusSign))}}function es(e,t=!1){return function(n,r){let i=eg(n).getFullYear();return Ze(i,e,is(r,Pt.MinusSign),t)}}var wu={};function Ob(e){if(wu[e])return wu[e];let t;switch(e){case"G":case"GG":case"GGG":t=z(j.Eras,U.Abbreviated);break;case"GGGG":t=z(j.Eras,U.Wide);break;case"GGGGG":t=z(j.Eras,U.Narrow);break;case"y":t=ee(V.FullYear,1,0,!1,!0);break;case"yy":t=ee(V.FullYear,2,0,!0,!0);break;case"yyy":t=ee(V.FullYear,3,0,!1,!0);break;case"yyyy":t=ee(V.FullYear,4,0,!1,!0);break;case"Y":t=es(1);break;case"YY":t=es(2,!0);break;case"YYY":t=es(3);break;case"YYYY":t=es(4);break;case"M":case"L":t=ee(V.Month,1,1);break;case"MM":case"LL":t=ee(V.Month,2,1);break;case"MMM":t=z(j.Months,U.Abbreviated);break;case"MMMM":t=z(j.Months,U.Wide);break;case"MMMMM":t=z(j.Months,U.Narrow);break;case"LLL":t=z(j.Months,U.Abbreviated,we.Standalone);break;case"LLLL":t=z(j.Months,U.Wide,we.Standalone);break;case"LLLLL":t=z(j.Months,U.Narrow,we.Standalone);break;case"w":t=Eu(1);break;case"ww":t=Eu(2);break;case"W":t=Eu(1,!0);break;case"d":t=ee(V.Date,1);break;case"dd":t=ee(V.Date,2);break;case"c":case"cc":t=ee(V.Day,1);break;case"ccc":t=z(j.Days,U.Abbreviated,we.Standalone);break;case"cccc":t=z(j.Days,U.Wide,we.Standalone);break;case"ccccc":t=z(j.Days,U.Narrow,we.Standalone);break;case"cccccc":t=z(j.Days,U.Short,we.Standalone);break;case"E":case"EE":case"EEE":t=z(j.Days,U.Abbreviated);break;case"EEEE":t=z(j.Days,U.Wide);break;case"EEEEE":t=z(j.Days,U.Narrow);break;case"EEEEEE":t=z(j.Days,U.Short);break;case"a":case"aa":case"aaa":t=z(j.DayPeriods,U.Abbreviated);break;case"aaaa":t=z(j.DayPeriods,U.Wide);break;case"aaaaa":t=z(j.DayPeriods,U.Narrow);break;case"b":case"bb":case"bbb":t=z(j.DayPeriods,U.Abbreviated,we.Standalone,!0);break;case"bbbb":t=z(j.DayPeriods,U.Wide,we.Standalone,!0);break;case"bbbbb":t=z(j.DayPeriods,U.Narrow,we.Standalone,!0);break;case"B":case"BB":case"BBB":t=z(j.DayPeriods,U.Abbreviated,we.Format,!0);break;case"BBBB":t=z(j.DayPeriods,U.Wide,we.Format,!0);break;case"BBBBB":t=z(j.DayPeriods,U.Narrow,we.Format,!0);break;case"h":t=ee(V.Hours,1,-12);break;case"hh":t=ee(V.Hours,2,-12);break;case"H":t=ee(V.Hours,1);break;case"HH":t=ee(V.Hours,2);break;case"m":t=ee(V.Minutes,1);break;case"mm":t=ee(V.Minutes,2);break;case"s":t=ee(V.Seconds,1);break;case"ss":t=ee(V.Seconds,2);break;case"S":t=ee(V.FractionalSeconds,1);break;case"SS":t=ee(V.FractionalSeconds,2);break;case"SSS":t=ee(V.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=Xi(Et.Short);break;case"ZZZZZ":t=Xi(Et.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Xi(Et.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=Xi(Et.Long);break;default:return null}return wu[e]=t,t}function tg(e,t){e=e.replace(/:/g,"");let n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function Fb(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Pb(e,t,n){let r=n?-1:1,o=e.getTimezoneOffset(),i=tg(t,o);return Fb(e,r*(i-o))}function kb(e){if(Wp(e))return e;if(typeof e=="number"&&!isNaN(e))return new Date(e);if(typeof e=="string"){if(e=e.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(e)){let[o,i=1,s=1]=e.split("-").map(a=>+a);return rs(o,i-1,s)}let n=parseFloat(e);if(!isNaN(e-n))return new Date(n);let r;if(r=e.match(Mb))return Lb(r)}let t=new Date(e);if(!Wp(t))throw new Error(`Unable to convert "${e}" into a date`);return t}function Lb(e){let t=new Date(0),n=0,r=0,o=e[8]?t.setUTCFullYear:t.setFullYear,i=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),r=Number(e[9]+e[11])),o.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));let s=Number(e[4]||0)-n,a=Number(e[5]||0)-r,c=Number(e[6]||0),u=Math.floor(parseFloat("0."+(e[7]||0))*1e3);return i.call(t,s,a,c,u),t}function Wp(e){return e instanceof Date&&!isNaN(e.valueOf())}function ss(e,t){t=encodeURIComponent(t);for(let n of e.split(";")){let r=n.indexOf("="),[o,i]=r==-1?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}var Iu=/\s+/,qp=[],nO=(()=>{class e{_ngEl;_renderer;initialClasses=qp;rawClass;stateMap=new Map;constructor(n,r){this._ngEl=n,this._renderer=r}set klass(n){this.initialClasses=n!=null?n.trim().split(Iu):qp}set ngClass(n){this.rawClass=typeof n=="string"?n.trim().split(Iu):n}ngDoCheck(){for(let r of this.initialClasses)this._updateState(r,!0);let n=this.rawClass;if(Array.isArray(n)||n instanceof Set)for(let r of n)this._updateState(r,!0);else if(n!=null)for(let r of Object.keys(n))this._updateState(r,!!n[r]);this._applyStateDiff()}_updateState(n,r){let o=this.stateMap.get(n);o!==void 0?(o.enabled!==r&&(o.changed=!0,o.enabled=r),o.touched=!0):this.stateMap.set(n,{enabled:r,changed:!0,touched:!0})}_applyStateDiff(){for(let n of this.stateMap){let r=n[0],o=n[1];o.changed?(this._toggleClass(r,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(r,!1),this.stateMap.delete(r)),o.touched=!1}}_toggleClass(n,r){n=n.trim(),n.length>0&&n.split(Iu).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(r){return new(r||e)(X(ke),X(Bi))};static \u0275dir=qe({type:e,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return e})();var bu=class{$implicit;ngForOf;index;count;constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},rO=(()=>{class e{_viewContainer;_template;_differs;set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let n=this._ngForOf;if(!this._differ&&n)if(0)try{}catch{}else this._differ=this._differs.find(n).create(this.ngForTrackBy)}if(this._differ){let n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){let r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(o.previousIndex==null)r.createEmbeddedView(this._template,new bu(o.item,this._ngForOf,-1,-1),s===null?void 0:s);else if(s==null)r.remove(i===null?void 0:i);else if(i!==null){let a=r.get(i);r.move(a,s),Zp(a,o)}});for(let o=0,i=r.length;o{let i=r.get(o.currentIndex);Zp(i,o)})}static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(X(pn),X(un),X(gu))};static \u0275dir=qe({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return e})();function Zp(e,t){e.context.$implicit=t.item}var oO=(()=>{class e{_viewContainer;_context=new Cu;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(n,r){this._viewContainer=n,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){Yp("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){Yp("ngIfElse",n),this._elseTemplateRef=n,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(X(pn),X(un))};static \u0275dir=qe({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return e})(),Cu=class{$implicit=null;ngIf=null};function Yp(e,t){if(!!!(!t||t.createEmbeddedView))throw new Error(`${e} must be a TemplateRef, but received '${Ee(t)}'.`)}var iO=(()=>{class e{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(n,r,o){this._ngEl=n,this._differs=r,this._renderer=o}set ngStyle(n){this._ngStyle=n,!this._differ&&n&&(this._differ=this._differs.find(n).create())}ngDoCheck(){if(this._differ){let n=this._differ.diff(this._ngStyle);n&&this._applyChanges(n)}}_setStyle(n,r){let[o,i]=n.split("."),s=o.indexOf("-")===-1?void 0:ot.DashCase;r!=null?this._renderer.setStyle(this._ngEl.nativeElement,o,i?`${r}${i}`:r,s):this._renderer.removeStyle(this._ngEl.nativeElement,o,s)}_applyChanges(n){n.forEachRemovedItem(r=>this._setStyle(r.key,null)),n.forEachAddedItem(r=>this._setStyle(r.key,r.currentValue)),n.forEachChangedItem(r=>this._setStyle(r.key,r.currentValue))}static \u0275fac=function(r){return new(r||e)(X(ke),X(mu),X(Bi))};static \u0275dir=qe({type:e,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return e})(),sO=(()=>{class e{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(n){this._viewContainerRef=n}ngOnChanges(n){if(this._shouldRecreateView(n)){let r=this._viewContainerRef;if(this._viewRef&&r.remove(r.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let o=this._createContextForwardProxy();this._viewRef=r.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(n){return!!n.ngTemplateOutlet||!!n.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(n,r,o)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,r,o):!1,get:(n,r,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,r,o)}})}static \u0275fac=function(r){return new(r||e)(X(pn))};static \u0275dir=qe({type:e,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[rf]})}return e})();function ng(e,t){return new b(2100,!1)}var Mu=class{createSubscription(t,n){return vu(()=>t.subscribe({next:n,error:r=>{throw r}}))}dispose(t){vu(()=>t.unsubscribe())}},_u=class{createSubscription(t,n){return t.then(n,r=>{throw r})}dispose(t){}},jb=new _u,Vb=new Mu,aO=(()=>{class e{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(n){this._ref=n}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(n){if(!this._obj){if(n)try{this.markForCheckOnValueUpdate=!1,this._subscribe(n)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return n!==this._obj?(this._dispose(),this.transform(n)):this._latestValue}_subscribe(n){this._obj=n,this._strategy=this._selectStrategy(n),this._subscription=this._strategy.createSubscription(n,r=>this._updateLatestValue(n,r))}_selectStrategy(n){if(zi(n))return jb;if(iu(n))return Vb;throw ng(e,n)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(n,r){n===this._obj&&(this._latestValue=r,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(r){return new(r||e)(X(qi,16))};static \u0275pipe=Hi({name:"async",type:e,pure:!1})}return e})();var Bb="mediumDate",Hb=new T(""),Ub=new T(""),cO=(()=>{class e{locale;defaultTimezone;defaultOptions;constructor(n,r,o){this.locale=n,this.defaultTimezone=r,this.defaultOptions=o}transform(n,r,o,i){if(n==null||n===""||n!==n)return null;try{let s=r??this.defaultOptions?.dateFormat??Bb,a=o??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return Tb(n,s,i||this.locale,a)}catch(s){throw ng(e,s.message)}}static \u0275fac=function(r){return new(r||e)(X(Wi,16),X(Hb,24),X(Ub,24))};static \u0275pipe=Hi({name:"date",type:e,pure:!0})}return e})();var uO=(()=>{class e{transform(n){return JSON.stringify(n,null,2)}static \u0275fac=function(r){return new(r||e)};static \u0275pipe=Hi({name:"json",type:e,pure:!1})}return e})();var rg=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=Ft({type:e});static \u0275inj=xt({})}return e})(),Au="browser",$b="server";function Kn(e){return e===Au}function as(e){return e===$b}var lO=(()=>{class e{static \u0275prov=S({token:e,providedIn:"root",factory:()=>Kn(m(Me))?new Tu(m(ue),window):new Su})}return e})(),Tu=class{document;window;offset=()=>[0,0];constructor(t,n){this.document=t,this.window=n}setOffset(t){Array.isArray(t)?this.offset=()=>t:this.offset=t}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(t){this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){let n=zb(this.document,t);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(t){this.window.history.scrollRestoration=t}scrollToElement(t){let n=t.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}};function zb(e,t){let n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if(typeof e.createTreeWalker=="function"&&e.body&&typeof e.body.attachShadow=="function"){let r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT),o=r.currentNode;for(;o;){let i=o.shadowRoot;if(i){let s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=r.nextNode()}}return null}var Su=class{setOffset(t){}getScrollPosition(){return[0,0]}scrollToPosition(t){}scrollToAnchor(t){}setHistoryScrollRestoration(t){}},Qn=class{};var jr=class{},us=class{},wt=class e{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t=="string"?this.lazyInit=()=>{this.headers=new Map,t.split(` -`).forEach(n=>{let r=n.indexOf(":");if(r>0){let o=n.slice(0,r),i=n.slice(r+1).trim();this.addHeaderEntry(o,i)}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((n,r)=>{this.addHeaderEntry(r,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([n,r])=>{this.setHeaderEntries(n,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){let n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){let n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if(typeof r=="string"&&(r=[r]),r.length===0)return;this.maybeSetNormalizedName(t.name,n);let o=(t.op==="a"?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":let i=t.value;if(!i)this.headers.delete(n),this.normalizedNames.delete(n);else{let s=this.headers.get(n);if(!s)return;s=s.filter(a=>i.indexOf(a)===-1),s.length===0?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}break}}addHeaderEntry(t,n){let r=t.toLowerCase();this.maybeSetNormalizedName(t,r),this.headers.has(r)?this.headers.get(r).push(n):this.headers.set(r,[n])}setHeaderEntries(t,n){let r=(Array.isArray(n)?n:[n]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}};var Ou=class{encodeKey(t){return og(t)}encodeValue(t){return og(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}};function Wb(e,t){let n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{let i=o.indexOf("="),[s,a]=i==-1?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],c=n.get(s)||[];c.push(a),n.set(s,c)}),n}var qb=/%(\d[a-f0-9])/gi,Zb={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function og(e){return encodeURIComponent(e).replace(qb,(t,n)=>Zb[n]??t)}function cs(e){return`${e}`}var Lt=class e{map;encoder;updates=null;cloneFrom=null;constructor(t={}){if(this.encoder=t.encoder||new Ou,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=Wb(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{let r=t.fromObject[n],o=Array.isArray(r)?r.map(cs):[cs(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();let n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){let n=[];return Object.keys(t).forEach(r=>{let o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{let n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>t!=="").join("&")}clone(t){let n=new e({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":let n=(t.op==="a"?this.map.get(t.param):void 0)||[];n.push(cs(t.value)),this.map.set(t.param,n);break;case"d":if(t.value!==void 0){let r=this.map.get(t.param)||[],o=r.indexOf(cs(t.value));o!==-1&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}else{this.map.delete(t.param);break}}}),this.cloneFrom=this.updates=null)}};var Fu=class{map=new Map;set(t,n){return this.map.set(t,n),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}};function Yb(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function ig(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function sg(e){return typeof Blob<"u"&&e instanceof Blob}function ag(e){return typeof FormData<"u"&&e instanceof FormData}function Qb(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}var Lr=class e{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(t,n,r,o){this.url=n,this.method=t.toUpperCase();let i;if(Yb(this.method)||o?(this.body=r!==void 0?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params),this.transferCache=i.transferCache),this.headers??=new wt,this.context??=new Fu,!this.params)this.params=new Lt,this.urlWithParams=n;else{let s=this.params.toString();if(s.length===0)this.urlWithParams=n;else{let a=n.indexOf("?"),c=a===-1?"?":ah.set(f,t.setHeaders[f]),u)),t.setParams&&(l=Object.keys(t.setParams).reduce((h,f)=>h.set(f,t.setParams[f]),l)),new e(n,r,s,{params:l,headers:u,context:d,reportProgress:c,responseType:o,withCredentials:a,transferCache:i})}},jt=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(jt||{}),Vr=class{headers;status;statusText;url;ok;type;constructor(t,n=200,r="OK"){this.headers=t.headers||new wt,this.status=t.status!==void 0?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}},ls=class e extends Vr{constructor(t={}){super(t)}type=jt.ResponseHeader;clone(t={}){return new e({headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},Br=class e extends Vr{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=jt.Response;clone(t={}){return new e({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},kt=class extends Vr{name="HttpErrorResponse";message;error;ok=!1;constructor(t){super(t,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${t.url||"(unknown url)"}`:this.message=`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}},fg=200,Kb=204;function Ru(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}var Jb=(()=>{class e{handler;constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof Lr)i=n;else{let c;o.headers instanceof wt?c=o.headers:c=new wt(o.headers);let u;o.params&&(o.params instanceof Lt?u=o.params:u=new Lt({fromObject:o.params})),i=new Lr(n,r,o.body!==void 0?o.body:null,{headers:c,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}let s=vo(i).pipe(Bs(c=>this.handler.handle(c)));if(n instanceof Lr||o.observe==="events")return s;let a=s.pipe(Te(c=>c instanceof Br));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(ie(c=>{if(c.body!==null&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return a.pipe(ie(c=>{if(c.body!==null&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return a.pipe(ie(c=>{if(c.body!==null&&typeof c.body!="string")throw new Error("Response is not a string.");return c.body}));case"json":default:return a.pipe(ie(c=>c.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:new Lt().append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,Ru(o,r))}post(n,r,o={}){return this.request("POST",n,Ru(o,r))}put(n,r,o={}){return this.request("PUT",n,Ru(o,r))}static \u0275fac=function(r){return new(r||e)(_(jr))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Xb=/^\)\]\}',?\n/,eC="X-Request-URL";function cg(e){if(e.url)return e.url;let t=eC.toLocaleLowerCase();return e.headers.get(t)}var tC=(()=>{class e{fetchImpl=m(Pu,{optional:!0})?.fetch??((...n)=>globalThis.fetch(...n));ngZone=m(G);handle(n){return new O(r=>{let o=new AbortController;return this.doRequest(n,o.signal,r).then(ku,i=>r.error(new kt({error:i}))),()=>o.abort()})}doRequest(n,r,o){return Z(this,null,function*(){let i=this.createRequestInit(n),s;try{let f=this.ngZone.runOutsideAngular(()=>this.fetchImpl(n.urlWithParams,Q({signal:r},i)));nC(f),o.next({type:jt.Sent}),s=yield f}catch(f){o.error(new kt({error:f,status:f.status??0,statusText:f.statusText,url:n.urlWithParams,headers:f.headers}));return}let a=new wt(s.headers),c=s.statusText,u=cg(s)??n.urlWithParams,l=s.status,d=null;if(n.reportProgress&&o.next(new ls({headers:a,status:l,statusText:c,url:u})),s.body){let f=s.headers.get("content-length"),p=[],g=s.body.getReader(),D=0,N,L,B=typeof Zone<"u"&&Zone.current;yield this.ngZone.runOutsideAngular(()=>Z(this,null,function*(){for(;;){let{done:le,value:Y}=yield g.read();if(le)break;if(p.push(Y),D+=Y.length,n.reportProgress){L=n.responseType==="text"?(L??"")+(N??=new TextDecoder).decode(Y,{stream:!0}):void 0;let Oe=()=>o.next({type:jt.DownloadProgress,total:f?+f:void 0,loaded:D,partialText:L});B?B.run(Oe):Oe()}}}));let te=this.concatChunks(p,D);try{let le=s.headers.get("Content-Type")??"";d=this.parseBody(n,te,le)}catch(le){o.error(new kt({error:le,headers:new wt(s.headers),status:s.status,statusText:s.statusText,url:cg(s)??n.urlWithParams}));return}}l===0&&(l=d?fg:0),l>=200&&l<300?(o.next(new Br({body:d,headers:a,status:l,statusText:c,url:u})),o.complete()):o.error(new kt({error:d,headers:a,status:l,statusText:c,url:u}))})}parseBody(n,r,o){switch(n.responseType){case"json":let i=new TextDecoder().decode(r).replace(Xb,"");return i===""?null:JSON.parse(i);case"text":return new TextDecoder().decode(r);case"blob":return new Blob([r],{type:o});case"arraybuffer":return r.buffer}}createRequestInit(n){let r={},o=n.withCredentials?"include":void 0;if(n.headers.forEach((i,s)=>r[i]=s.join(",")),n.headers.has("Accept")||(r.Accept="application/json, text/plain, */*"),!n.headers.has("Content-Type")){let i=n.detectContentTypeHeader();i!==null&&(r["Content-Type"]=i)}return{body:n.serializeBody(),method:n.method,headers:r,credentials:o}}concatChunks(n,r){let o=new Uint8Array(r),i=0;for(let s of n)o.set(s,i),i+=s.length;return o}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Pu=class{};function ku(){}function nC(e){e.then(ku,ku)}function hg(e,t){return t(e)}function rC(e,t){return(n,r)=>t.intercept(n,{handle:o=>e(o,r)})}function oC(e,t,n){return(r,o)=>Ii(n,()=>t(r,i=>e(i,o)))}var iC=new T(""),Lu=new T(""),sC=new T(""),pg=new T("",{providedIn:"root",factory:()=>!0});function aC(){let e=null;return(t,n)=>{e===null&&(e=(m(iC,{optional:!0})??[]).reduceRight(rC,hg));let r=m(Ot);if(m(pg)){let i=r.add();return e(t,n).pipe(bo(()=>r.remove(i)))}else return e(t,n)}}var ug=(()=>{class e extends jr{backend;injector;chain=null;pendingTasks=m(Ot);contributeToStability=m(pg);constructor(n,r){super(),this.backend=n,this.injector=r}handle(n){if(this.chain===null){let r=Array.from(new Set([...this.injector.get(Lu),...this.injector.get(sC,[])]));this.chain=r.reduceRight((o,i)=>oC(o,i,this.injector),hg)}if(this.contributeToStability){let r=this.pendingTasks.add();return this.chain(n,o=>this.backend.handle(o)).pipe(bo(()=>this.pendingTasks.remove(r)))}else return this.chain(n,r=>this.backend.handle(r))}static \u0275fac=function(r){return new(r||e)(_(us),_(et))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})();var cC=/^\)\]\}',?\n/;function uC(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}var lg=(()=>{class e{xhrFactory;constructor(n){this.xhrFactory=n}handle(n){if(n.method==="JSONP")throw new b(-2800,!1);let r=this.xhrFactory;return(r.\u0275loadImpl?ye(r.\u0275loadImpl()):vo(null)).pipe(Zt(()=>new O(i=>{let s=r.build();if(s.open(n.method,n.urlWithParams),n.withCredentials&&(s.withCredentials=!0),n.headers.forEach((g,D)=>s.setRequestHeader(g,D.join(","))),n.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){let g=n.detectContentTypeHeader();g!==null&&s.setRequestHeader("Content-Type",g)}if(n.responseType){let g=n.responseType.toLowerCase();s.responseType=g!=="json"?g:"text"}let a=n.serializeBody(),c=null,u=()=>{if(c!==null)return c;let g=s.statusText||"OK",D=new wt(s.getAllResponseHeaders()),N=uC(s)||n.url;return c=new ls({headers:D,status:s.status,statusText:g,url:N}),c},l=()=>{let{headers:g,status:D,statusText:N,url:L}=u(),B=null;D!==Kb&&(B=typeof s.response>"u"?s.responseText:s.response),D===0&&(D=B?fg:0);let te=D>=200&&D<300;if(n.responseType==="json"&&typeof B=="string"){let le=B;B=B.replace(cC,"");try{B=B!==""?JSON.parse(B):null}catch(Y){B=le,te&&(te=!1,B={error:Y,text:B})}}te?(i.next(new Br({body:B,headers:g,status:D,statusText:N,url:L||void 0})),i.complete()):i.error(new kt({error:B,headers:g,status:D,statusText:N,url:L||void 0}))},d=g=>{let{url:D}=u(),N=new kt({error:g,status:s.status||0,statusText:s.statusText||"Unknown Error",url:D||void 0});i.error(N)},h=!1,f=g=>{h||(i.next(u()),h=!0);let D={type:jt.DownloadProgress,loaded:g.loaded};g.lengthComputable&&(D.total=g.total),n.responseType==="text"&&s.responseText&&(D.partialText=s.responseText),i.next(D)},p=g=>{let D={type:jt.UploadProgress,loaded:g.loaded};g.lengthComputable&&(D.total=g.total),i.next(D)};return s.addEventListener("load",l),s.addEventListener("error",d),s.addEventListener("timeout",d),s.addEventListener("abort",d),n.reportProgress&&(s.addEventListener("progress",f),a!==null&&s.upload&&s.upload.addEventListener("progress",p)),s.send(a),i.next({type:jt.Sent}),()=>{s.removeEventListener("error",d),s.removeEventListener("abort",d),s.removeEventListener("load",l),s.removeEventListener("timeout",d),n.reportProgress&&(s.removeEventListener("progress",f),a!==null&&s.upload&&s.upload.removeEventListener("progress",p)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(r){return new(r||e)(_(Qn))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),gg=new T(""),lC="XSRF-TOKEN",dC=new T("",{providedIn:"root",factory:()=>lC}),fC="X-XSRF-TOKEN",hC=new T("",{providedIn:"root",factory:()=>fC}),ds=class{},pC=(()=>{class e{doc;platform;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(n,r,o){this.doc=n,this.platform=r,this.cookieName=o}getToken(){if(this.platform==="server")return null;let n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=ss(n,this.cookieName),this.lastCookieString=n),this.lastToken}static \u0275fac=function(r){return new(r||e)(_(ue),_(Me),_(dC))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function gC(e,t){let n=e.url.toLowerCase();if(!m(gg)||e.method==="GET"||e.method==="HEAD"||n.startsWith("http://")||n.startsWith("https://"))return t(e);let r=m(ds).getToken(),o=m(hC);return r!=null&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),t(e)}var mg=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(mg||{});function mC(e,t){return{\u0275kind:e,\u0275providers:t}}function CO(...e){let t=[Jb,lg,ug,{provide:jr,useExisting:ug},{provide:us,useFactory:()=>m(tC,{optional:!0})??m(lg)},{provide:Lu,useValue:gC,multi:!0},{provide:gg,useValue:!0},{provide:ds,useClass:pC}];for(let n of e)t.push(...n.\u0275providers);return Ec(t)}var dg=new T("");function MO(){return mC(mg.LegacyInterceptors,[{provide:dg,useFactory:aC},{provide:Lu,useExisting:dg,multi:!0}])}var Vu=class extends ns{supportsDOMEvents=!0},Bu=class e extends Vu{static makeCurrent(){Kp(new e)}onAndCancel(t,n,r){return t.addEventListener(n,r),()=>{t.removeEventListener(n,r)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.remove()}createElement(t,n){return n=n||this.getDefaultDocument(),n.createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,n){return n==="window"?window:n==="document"?t:n==="body"?t.body:null}getBaseHref(t){let n=yC();return n==null?null:vC(n)}resetBaseElement(){Hr=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return ss(document.cookie,t)}},Hr=null;function yC(){return Hr=Hr||document.querySelector("base"),Hr?Hr.getAttribute("href"):null}function vC(e){return new URL(e,document.baseURI).pathname}var Hu=class{addToWindow(t){ce.getAngularTestability=(r,o=!0)=>{let i=t.findTestabilityInTree(r,o);if(i==null)throw new b(5103,!1);return i},ce.getAllAngularTestabilities=()=>t.getAllTestabilities(),ce.getAllAngularRootElements=()=>t.getAllRootElements();let n=r=>{let o=ce.getAllAngularTestabilities(),i=o.length,s=function(){i--,i==0&&r()};o.forEach(a=>{a.whenStable(s)})};ce.frameworkStabilizers||(ce.frameworkStabilizers=[]),ce.frameworkStabilizers.push(n)}findTestabilityInTree(t,n,r){if(n==null)return null;let o=t.getTestability(n);return o??(r?gn().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},DC=(()=>{class e{build(){return new XMLHttpRequest}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Uu=new T(""),Ig=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;constructor(n,r){this._zone=r,n.forEach(o=>{o.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new b(5101,!1);return this._eventNameToPlugin.set(n,r),r}static \u0275fac=function(r){return new(r||e)(_(Uu),_(G))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),fs=class{_doc;constructor(t){this._doc=t}manager},$u="ng-app-id";function yg(e){for(let t of e)t.remove()}function vg(e,t){let n=t.createElement("style");return n.textContent=e,n}function EC(e,t,n){let r=e.head?.querySelectorAll(`style[${$u}="${t}"]`);if(r)for(let o of r)o.textContent&&(o.removeAttribute($u),n.set(o.textContent,{usage:0,elements:[o]}))}function zu(e,t){let n=t.createElement("link");return n.setAttribute("rel","stylesheet"),n.setAttribute("href",e),n}var bg=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,this.isServer=as(i),EC(n,r,this.inline),this.hosts.add(n.head)}addStyles(n,r){for(let o of n)this.addUsage(o,this.inline,vg);r?.forEach(o=>this.addUsage(o,this.external,zu))}removeStyles(n,r){for(let o of n)this.removeUsage(o,this.inline);r?.forEach(o=>this.removeUsage(o,this.external))}addUsage(n,r,o){let i=r.get(n);i?i.usage++:r.set(n,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(n,this.doc)))})}removeUsage(n,r){let o=r.get(n);o&&(o.usage--,o.usage<=0&&(yg(o.elements),r.delete(n)))}ngOnDestroy(){for(let[,{elements:n}]of[...this.inline,...this.external])yg(n);this.hosts.clear()}addHost(n){this.hosts.add(n);for(let[r,{elements:o}]of this.inline)o.push(this.addElement(n,vg(r,this.doc)));for(let[r,{elements:o}]of this.external)o.push(this.addElement(n,zu(r,this.doc)))}removeHost(n){this.hosts.delete(n)}addElement(n,r){return this.nonce&&r.setAttribute("nonce",this.nonce),this.isServer&&r.setAttribute($u,this.appId),n.appendChild(r)}static \u0275fac=function(r){return new(r||e)(_(ue),_(Vc),_(Hc,8),_(Me))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),ju={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Wu=/%COMP%/g,Cg="%COMP%",wC=`_nghost-${Cg}`,IC=`_ngcontent-${Cg}`,bC=!0,CC=new T("",{providedIn:"root",factory:()=>bC});function MC(e){return IC.replace(Wu,e)}function _C(e){return wC.replace(Wu,e)}function Mg(e,t){return t.map(n=>n.replace(Wu,e))}var Dg=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(n,r,o,i,s,a,c,u=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=u,this.platformIsServer=as(a),this.defaultRenderer=new Ur(n,s,c,this.platformIsServer)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===rt.ShadowDom&&(r=ae(Q({},r),{encapsulation:rt.Emulated}));let o=this.getOrCreateRenderer(n,r);return o instanceof hs?o.applyToHost(n):o instanceof $r&&o.applyStyles(),o}getOrCreateRenderer(n,r){let o=this.rendererByCompId,i=o.get(r.id);if(!i){let s=this.doc,a=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,d=this.platformIsServer;switch(r.encapsulation){case rt.Emulated:i=new hs(c,u,r,this.appId,l,s,a,d);break;case rt.ShadowDom:return new Gu(c,u,n,r,s,a,this.nonce,d);default:i=new $r(c,u,r,l,s,a,d);break}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}static \u0275fac=function(r){return new(r||e)(_(Ig),_(bg),_(Vc),_(CC),_(ue),_(Me),_(G),_(Hc))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Ur=class{eventManager;doc;ngZone;platformIsServer;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,n,r,o){this.eventManager=t,this.doc=n,this.ngZone=r,this.platformIsServer=o}destroy(){}destroyNode=null;createElement(t,n){return n?this.doc.createElementNS(ju[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(Eg(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(Eg(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){n.remove()}selectRootElement(t,n){let r=typeof t=="string"?this.doc.querySelector(t):t;if(!r)throw new b(-5104,!1);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;let i=ju[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){let o=ju[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(ot.DashCase|ot.Important)?t.style.setProperty(n,r,o&ot.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&ot.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t!=null&&(t[n]=r)}setValue(t,n){t.nodeValue=n}listen(t,n,r){if(typeof t=="string"&&(t=gn().getGlobalEventTarget(this.doc,t),!t))throw new Error(`Unsupported event target ${t} for event ${n}`);return this.eventManager.addEventListener(t,n,this.decoratePreventDefault(r))}decoratePreventDefault(t){return n=>{if(n==="__ngUnwrap__")return t;(this.platformIsServer?this.ngZone.runGuarded(()=>t(n)):t(n))===!1&&n.preventDefault()}}};function Eg(e){return e.tagName==="TEMPLATE"&&e.content!==void 0}var Gu=class extends Ur{sharedStylesHost;hostEl;shadowRoot;constructor(t,n,r,o,i,s,a,c){super(t,i,s,c),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let u=Mg(o.id,o.styles);for(let d of u){let h=document.createElement("style");a&&h.setAttribute("nonce",a),h.textContent=d,this.shadowRoot.appendChild(h)}let l=o.getExternalStyles?.();if(l)for(let d of l){let h=zu(d,i);a&&h.setAttribute("nonce",a),this.shadowRoot.appendChild(h)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(null,n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},$r=class extends Ur{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,n,r,o,i,s,a,c){super(t,i,s,a),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o,this.styles=c?Mg(c,r.styles):r.styles,this.styleUrls=r.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},hs=class extends $r{contentAttr;hostAttr;constructor(t,n,r,o,i,s,a,c){let u=o+"-"+r.id;super(t,n,r,i,s,a,c,u),this.contentAttr=MC(u),this.hostAttr=_C(u)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,n){let r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}},TC=(()=>{class e extends fs{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}static \u0275fac=function(r){return new(r||e)(_(ue))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),wg=["alt","control","meta","shift"],SC={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},NC={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey},xC=(()=>{class e extends fs{constructor(n){super(n)}supports(n){return e.parseEventName(n)!=null}addEventListener(n,r,o){let i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>gn().onAndCancel(n,i.domEventName,s))}static parseEventName(n){let r=n.toLowerCase().split("."),o=r.shift();if(r.length===0||!(o==="keydown"||o==="keyup"))return null;let i=e._normalizeKey(r.pop()),s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),wg.forEach(u=>{let l=r.indexOf(u);l>-1&&(r.splice(l,1),s+=u+".")}),s+=i,r.length!=0||i.length===0)return null;let c={};return c.domEventName=o,c.fullKey=s,c}static matchEventFullKeyCode(n,r){let o=SC[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),wg.forEach(s=>{if(s!==o){let a=NC[s];a(n)&&(i+=s+".")}}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return n==="esc"?"escape":n}static \u0275fac=function(r){return new(r||e)(_(ue))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function AC(){Bu.makeCurrent()}function RC(){return new nt}function OC(){return Yf(document),document}var FC=[{provide:Me,useValue:Au},{provide:Bc,useValue:AC,multi:!0},{provide:ue,useFactory:OC,deps:[]}],HO=pu(Vp,"browser",FC),PC=new T(""),kC=[{provide:Or,useClass:Hu,deps:[]},{provide:ru,useClass:Ui,deps:[G,$i,Or]},{provide:Ui,useClass:Ui,deps:[G,$i,Or]}],LC=[{provide:Ei,useValue:"root"},{provide:nt,useFactory:RC,deps:[]},{provide:Uu,useClass:TC,multi:!0,deps:[ue,G,Me]},{provide:Uu,useClass:xC,multi:!0,deps:[ue]},Dg,bg,Ig,{provide:Un,useExisting:Dg},{provide:Qn,useClass:DC,deps:[]},[]],UO=(()=>{class e{constructor(n){}static \u0275fac=function(r){return new(r||e)(_(PC,12))};static \u0275mod=Ft({type:e});static \u0275inj=xt({providers:[...LC,...kC],imports:[rg,Bp]})}return e})();var $O=(()=>{class e{_doc;constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}static \u0275fac=function(r){return new(r||e)(_(ue))};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var qu=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:function(r){let o=null;return r?o=new(r||e):o=_(jC),o},providedIn:"root"})}return e})(),jC=(()=>{class e extends qu{_doc;constructor(n){super(),this._doc=n}sanitize(n,r){if(r==null)return null;switch(n){case Ae.NONE:return r;case Ae.HTML:return mt(r,"HTML")?Le(r):$c(this._doc,String(r)).toString();case Ae.STYLE:return mt(r,"Style")?Le(r):r;case Ae.SCRIPT:if(mt(r,"Script"))return Le(r);throw new b(5200,!1);case Ae.URL:return mt(r,"URL")?Le(r):Oi(String(r));case Ae.RESOURCE_URL:if(mt(r,"ResourceURL"))return Le(r);throw new b(5201,!1);default:throw new b(5202,!1)}}bypassSecurityTrustHtml(n){return th(n)}bypassSecurityTrustStyle(n){return nh(n)}bypassSecurityTrustScript(n){return rh(n)}bypassSecurityTrustUrl(n){return oh(n)}bypassSecurityTrustResourceUrl(n){return ih(n)}static \u0275fac=function(r){return new(r||e)(_(ue))};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var gs=new T("HIGHLIGHT_OPTIONS");var Jn=function(e){return e.FULL_WITH_CORE_LIBRARY_IMPORTS="The full library and the core library were imported, only one of them should be imported!",e.FULL_WITH_LANGUAGE_IMPORTS="The highlighting languages were imported they are not needed!",e.CORE_WITHOUT_LANGUAGE_IMPORTS="The highlighting languages were not imported!",e.LANGUAGE_WITHOUT_CORE_IMPORTS="The core library was not imported!",e.NO_FULL_AND_NO_CORE_IMPORTS="Highlight.js library was not imported!",e}(Jn||{}),VC=(()=>{class e{constructor(){this.document=m(ue),this.isPlatformBrowser=Kn(m(Me)),this.options=m(gs,{optional:!0}),this._ready=new Gt(null),this.ready=Ls(this._ready.asObservable().pipe(Te(n=>!!n))),this.isPlatformBrowser&&(this.document.defaultView.hljs?this._ready.next(this.document.defaultView.hljs):this._loadLibrary().pipe(Zt(n=>this.options?.lineNumbersLoader?(this.document.defaultView.hljs=n,this.loadLineNumbers().pipe(Sn(r=>{r.activateLineNumbers(),this._ready.next(n)}))):(this._ready.next(n),Ye)),lr(n=>(console.error("[HLJS] ",n),this._ready.error(n),Ye))).subscribe(),this.options?.themePath&&this.loadTheme(this.options.themePath))}_loadLibrary(){if(this.options){if(this.options.fullLibraryLoader&&this.options.coreLibraryLoader)return qt(()=>Jn.FULL_WITH_CORE_LIBRARY_IMPORTS);if(this.options.fullLibraryLoader&&this.options.languages)return qt(()=>Jn.FULL_WITH_LANGUAGE_IMPORTS);if(this.options.coreLibraryLoader&&!this.options.languages)return qt(()=>Jn.CORE_WITHOUT_LANGUAGE_IMPORTS);if(!this.options.coreLibraryLoader&&this.options.languages)return qt(()=>Jn.LANGUAGE_WITHOUT_CORE_IMPORTS);if(this.options.fullLibraryLoader)return this.loadFullLibrary();if(this.options.coreLibraryLoader&&this.options.languages&&Object.keys(this.options.languages).length)return this.loadCoreLibrary().pipe(Zt(n=>this._loadLanguages(n)))}return qt(()=>Jn.NO_FULL_AND_NO_CORE_IMPORTS)}_loadLanguages(n){let r=Object.entries(this.options.languages).map(([o,i])=>Zu(i()).pipe(Sn(s=>n.registerLanguage(o,s))));return js(r).pipe(ie(()=>n))}loadCoreLibrary(){return Zu(this.options.coreLibraryLoader())}loadFullLibrary(){return Zu(this.options.fullLibraryLoader())}loadLineNumbers(){return ye(this.options.lineNumbersLoader())}setTheme(n){this.isPlatformBrowser&&(this._themeLinkElement?this._themeLinkElement.href=n:this.loadTheme(n))}loadTheme(n){this._themeLinkElement=this.document.createElement("link"),this._themeLinkElement.href=n,this._themeLinkElement.type="text/css",this._themeLinkElement.rel="stylesheet",this._themeLinkElement.media="screen,print",this.document.head.appendChild(this._themeLinkElement)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Zu=e=>ye(e).pipe(Te(t=>!!t?.default),ie(t=>t.default)),Qu=(()=>{class e{constructor(){this.loader=m(VC),this.options=m(gs,{optional:!0}),this.hljsSignal=Gi(null),this.hljs=Hp(()=>this.hljsSignal()),this.loader.ready.then(n=>{this.hljsSignal.set(n),this.options?.highlightOptions&&n.configure(this.options.highlightOptions)})}highlight(n,r){return Z(this,null,function*(){return(yield this.loader.ready).highlight(n,r)})}highlightAuto(n,r){return Z(this,null,function*(){return(yield this.loader.ready).highlightAuto(n,r)})}highlightElement(n){return Z(this,null,function*(){(yield this.loader.ready).highlightElement(n)})}highlightAll(){return Z(this,null,function*(){(yield this.loader.ready).highlightAll()})}configure(n){return Z(this,null,function*(){(yield this.loader.ready).configure(n)})}registerLanguage(n,r){return Z(this,null,function*(){(yield this.loader.ready).registerLanguage(n,r)})}unregisterLanguage(n){return Z(this,null,function*(){(yield this.loader.ready).unregisterLanguage(n)})}registerAliases(o,i){return Z(this,arguments,function*(n,{languageName:r}){(yield this.loader.ready).registerAliases(n,{languageName:r})})}listLanguages(){return Z(this,null,function*(){return(yield this.loader.ready).listLanguages()})}getLanguage(n){return Z(this,null,function*(){return(yield this.loader.ready).getLanguage(n)})}safeMode(){return Z(this,null,function*(){(yield this.loader.ready).safeMode()})}debugMode(){return Z(this,null,function*(){(yield this.loader.ready).debugMode()})}lineNumbersBlock(n,r){return Z(this,null,function*(){let o=yield this.loader.ready;o.lineNumbersBlock&&o.lineNumbersBlock(n,r)})}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Yu;function BC(){if(!Yu)try{Yu=window?.trustedTypes?.createPolicy("ngx-highlightjs",{createHTML:e=>e})}catch{}return Yu}function HC(e){return BC()?.createHTML(e)||e}var ps=(()=>{class e{constructor(){this._hljs=m(Qu),this._nativeElement=m(ke).nativeElement,this._sanitizer=m(qu),this._platform=m(Me),Kn(this._platform)&&(Yn(()=>{let n=this.code();this.setTextContent(n||""),n&&this.highlightElement(n)}),Yn(()=>{let n=this.highlightResult();this.setInnerHTML(n?.value),this.highlighted.emit(n)}))}setTextContent(n){requestAnimationFrame(()=>this._nativeElement.textContent=n)}setInnerHTML(n){requestAnimationFrame(()=>this._nativeElement.innerHTML=HC(this._sanitizer.sanitize(Ae.HTML,n)||""))}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=qe({type:e,standalone:!1})}}return e})(),tF=(()=>{class e extends ps{constructor(){super(...arguments),this.code=Hf(null,{alias:"highlight"}),this.highlightResult=Gi(null),this.highlighted=new Xe}highlightElement(n){return Z(this,null,function*(){let r=yield this._hljs.highlight(n,{language:this.language,ignoreIllegals:this.ignoreIllegals});this.highlightResult.set(r)})}static{this.\u0275fac=(()=>{let n;return function(o){return(n||(n=Rf(e)))(o||e)}})()}static{this.\u0275dir=qe({type:e,selectors:[["","highlight",""]],hostVars:2,hostBindings:function(r,o){r&2&&fu("hljs",!0)},inputs:{code:[1,"highlight","code"],language:"language",ignoreIllegals:[2,"ignoreIllegals","ignoreIllegals",Pr]},outputs:{highlighted:"highlighted"},features:[xp([{provide:ps,useExisting:e}]),Fr,cu]})}}return e})();var nF=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Ft({type:e})}static{this.\u0275inj=xt({})}}return e})();function lF(){let e=window,t=document,n="hljs-ln",r="hljs-ln-line",o="hljs-ln-code",i="hljs-ln-numbers",s="hljs-ln-n",a="data-line-number",c=/\r\n|\r|\n/g;e.hljs?(e.hljs.initLineNumbersOnLoad=f,e.hljs.lineNumbersBlock=D,e.hljs.lineNumbersValue=N,h()):e.console.error("highlight.js not detected!");function u(y){let v=y;for(;v;){if(v.className&&v.className.indexOf("hljs-ln-code")!==-1)return!0;v=v.parentNode}return!1}function l(y){let v=y;for(;v.nodeName!=="TABLE";)v=v.parentNode;return v}function d(y){let v=y.toString(),R=y.anchorNode;for(;R.nodeName!=="TD";)R=R.parentNode;let q=y.focusNode;for(;q.nodeName!=="TD";)q=q.parentNode;let ne=parseInt(R.dataset.lineNumber),st=parseInt(q.dataset.lineNumber);if(ne!=st){let mn=R.textContent,yn=q.textContent;if(ne>st){let Vt=ne;ne=st,st=Vt,Vt=mn,mn=yn,yn=Vt}for(;v.indexOf(mn)!==0;)mn=mn.slice(1);for(;v.lastIndexOf(yn)===-1;)yn=yn.slice(0,-1);let ms=mn,xg=l(R);for(let Vt=ne+1;Vt1||v.singleLine){let q="";for(let ne=0,st=R.length;ne
{6}',[r,i,s,a,o,ne+v.startFrom,R[ne].length>0?R[ne]:" "]);return er('{1}
',[n,q])}return y}function te(y,v){return v=v||{},{singleLine:le(v),startFrom:Y(y,v)}}function le(y){return y.singleLine?y.singleLine:!1}function Y(y,v){let q=1;isFinite(v.startFrom)&&(q=v.startFrom);let ne=Sg(y,"data-ln-start-from");return ne!==null&&(q=Ng(ne,1)),q}function Oe(y){let v=y.childNodes;for(let R in v)if(v.hasOwnProperty(R)){let q=v[R];_g(q.textContent)>0&&(q.childNodes.length>0?Oe(q):Xn(q.parentNode))}}function Xn(y){let v=y.className;if(!/hljs-/.test(v))return;let R=zr(y.innerHTML),q="";for(let ne=0;ne0?R[ne]:" ";q+=er(`{1} -`,[v,st])}y.innerHTML=q.trim()}function zr(y){return y.length===0?[]:y.split(c)}function _g(y){return(y.trim().match(c)||[]).length}function Tg(y){e.setTimeout(y,0)}function er(y,v){return y.replace(/\{(\d+)\}/g,function(R,q){return v[q]!==void 0?v[q]:R})}function Sg(y,v){return y.hasAttribute(v)?y.getAttribute(v):null}function Ng(y,v){if(!y)return v;let R=Number(y);return isFinite(R)?R:v}}var dF=(()=>{class e{constructor(){this._platform=m(Me),this.options=m(gs)?.lineNumbersOptions,this._hljs=m(Qu),this._highlight=m(ps),this._nativeElement=m(ke).nativeElement,this.startFrom=this.options?.startFrom,this.singleLine=this.options?.singleLine,Kn(this._platform)&&Yn(()=>{this._highlight.highlightResult()&&this.addLineNumbers()})}addLineNumbers(){this.destroyLineNumbersObserver(),requestAnimationFrame(()=>Z(this,null,function*(){yield this._hljs.lineNumbersBlock(this._nativeElement,{startFrom:this.startFrom,singleLine:this.singleLine}),this._lineNumbersObs=new MutationObserver(()=>{this._nativeElement.firstElementChild?.tagName.toUpperCase()==="TABLE"&&this._nativeElement.classList.add("hljs-line-numbers"),this.destroyLineNumbersObserver()}),this._lineNumbersObs.observe(this._nativeElement,{childList:!0})}))}destroyLineNumbersObserver(){this._lineNumbersObs&&(this._lineNumbersObs.disconnect(),this._lineNumbersObs=null)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=qe({type:e,selectors:[["","highlight","","lineNumbers",""],["","highlightAuto","","lineNumbers",""]],inputs:{startFrom:[2,"startFrom","startFrom",yu],singleLine:[2,"singleLine","singleLine",Pr]},features:[Fr]})}}return e})();export{J as a,$g as b,O as c,Fs as d,Ps as e,Ie as f,Gt as g,sr as h,Ye as i,ye as j,vo as k,qt as l,Xg as m,ct as n,tm as o,ie as p,lm as q,Ue as r,cr as s,_n as t,fm as u,js as v,Vs as w,ur as x,Dm as y,Te as z,wm as A,bm as B,lr as C,Bs as D,Cm as E,dr as F,Tn as G,Hs as H,Mm as I,_m as J,bo as K,jl as L,$s as M,Nm as N,xm as O,Am as P,Gs as Q,Rm as R,Om as S,Fm as T,Zt as U,Pm as V,km as W,Sn as X,b as Y,Pd as Z,S as _,xt as $,zA as aa,T as ba,k as ca,_ as da,m as ea,vc as fa,$d as ga,Ec as ha,et as ia,Ii as ja,rf as ka,GA as la,WA as ma,qA as na,ZA as oa,Rf as pa,Ff as qa,Fe as ra,Kl as sa,Ot as ta,Xe as ua,G as va,nt as wa,Hf as xa,ke as ya,Ca as za,Vc as Aa,Me as Ba,YA as Ca,Hc as Da,Av as Ea,Rv as Fa,Ae as Ga,QA as Ha,Xv as Ia,KA as Ja,JA as Ka,X as La,XA as Ma,un as Na,Hn as Oa,Nt as Pa,Ha as Qa,Un as Ra,Bi as Sa,LE as Ta,tR as Ua,Ft as Va,qe as Wa,Hi as Xa,Kh as Ya,UE as Za,zi as _a,zE as $a,ep as ab,hn as bb,pn as cb,Gi as db,oR as eb,cu as fb,Fr as gb,Ow as hb,kw as ib,Zw as jb,gp as kb,fu as lb,iR as mb,sR as nb,aR as ob,cR as pb,uR as qb,lR as rb,bp as sb,Cp as tb,aI as ub,Mp as vb,_p as wb,lI as xb,dR as yb,fI as zb,hI as Ab,EI as Bb,wI as Cb,fR as Db,hR as Eb,pR as Fb,MI as Gb,gR as Hb,mR as Ib,yR as Jb,vR as Kb,DR as Lb,ER as Mb,wR as Nb,IR as Ob,SI as Pb,Sp as Qb,NI as Rb,xI as Sb,bR as Tb,AI as Ub,xp as Vb,CR as Wb,MR as Xb,_R as Yb,TR as Zb,SR as _b,NR as $b,xR as ac,AR as bc,Wi as cc,qi as dc,Pr as ec,yu as fc,Hp as gc,vu as hc,Yn as ic,RR as jc,OR as kc,gn as lc,ue as mc,eO as nc,os as oc,Jp as pc,hb as qc,tO as rc,pb as sc,nO as tc,rO as uc,oO as vc,iO as wc,sO as xc,aO as yc,cO as zc,uO as Ac,rg as Bc,Kn as Cc,lO as Dc,wt as Ec,Lt as Fc,Jb as Gc,iC as Hc,CO as Ic,MO as Jc,Dg as Kc,HO as Lc,UO as Mc,$O as Nc,qu as Oc,gs as Pc,tF as Qc,nF as Rc,lF as Sc,dF as Tc}; diff --git a/matchbox-server/src/main/resources/static/browser/chunk-SQRREDYF.js b/matchbox-server/src/main/resources/static/browser/chunk-SQRREDYF.js new file mode 100644 index 00000000000..3b830a8b9e7 --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/chunk-SQRREDYF.js @@ -0,0 +1 @@ +import{e as o}from"./chunk-TSRGIXR5.js";var l=o((r,a)=>{function E(e){let s={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],c={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:n},contains:[s,t,e.QUOTE_STRING_MODE,c,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}a.exports=E});export default l(); diff --git a/matchbox-server/src/main/resources/static/browser/index.html b/matchbox-server/src/main/resources/static/browser/index.html index 123a9801721..c66974aefad 100644 --- a/matchbox-server/src/main/resources/static/browser/index.html +++ b/matchbox-server/src/main/resources/static/browser/index.html @@ -12,9 +12,9 @@ - - + + - + diff --git a/matchbox-server/src/main/resources/static/browser/main-JTOSGX4K.js b/matchbox-server/src/main/resources/static/browser/main-JTOSGX4K.js deleted file mode 100644 index cba657fa205..00000000000 --- a/matchbox-server/src/main/resources/static/browser/main-JTOSGX4K.js +++ /dev/null @@ -1,1127 +0,0 @@ -import{$ as pe,$a as T0,$b as KC,A as MC,Aa as S0,Ab as Yd,Ac as nw,B as ic,Ba as Hd,Bb as J,Bc as es,C as Zi,Ca as Ot,Cb as jC,Cc as ts,D as Fs,Da as NC,Db as Y,Dc as rw,E as Ui,Ea as jd,Eb as tt,Ec as Hs,F as y0,Fa as vi,Fb as Fe,Fc as Oo,G as jt,Ga as wr,Gb as WC,Gc as js,H as Bd,Ha as nc,Hb as Rt,Hc as sw,I as Eo,Ia as FC,Ib as Be,Ic as aw,J as An,Ja as PC,Jb as Te,Jc as ow,K as Io,Ka as $,Kb as Ee,Kc as lw,L as hn,La as Se,Lb as qC,Lc as cw,M as C0,Ma as Wd,Mb as GC,Mc as oc,N as TC,Na as Dn,Nb as Zt,Nc as uw,O as w0,Oa as UC,Ob as B,Oc as Ws,P as EC,Pa as k0,Pb as Ke,Pc as dw,Q as IC,Qa as $C,Qb as Ye,Qc as hw,R as Ps,Ra as VC,Rb as E0,Rc as mw,S as Ao,Sa as rc,Sb as $s,T as Gt,Ta as M0,Tb as Vs,Tc as fw,U as Dt,Ua as he,Ub as Bs,V as qe,Va as ge,Vb as at,W as AC,Wa as xe,Wb as I0,X as Et,Xa as qd,Xb as zs,Y as je,Ya as BC,Yb as Qd,Z as Ii,Za as Ta,Zb as Ln,_ as se,_a as Gd,_b as ir,a as Mt,aa as DC,ab as zC,ac as Ea,b as xC,ba as ee,bb as tr,bc as Zd,c as Jn,ca as x0,cb as bi,cc as YC,d as v0,da as Oe,db as Xi,dc as Xe,e as Ud,ea as L,eb as HC,ec as be,f as me,fa as Us,fb as Nt,fc as zt,g as gi,ga as ka,gb as Qe,gc as Jr,h as $d,ha as Ma,hb as le,hc as nr,i as In,ia as Zr,ib as Me,ic as Xd,j as _i,ja as Cr,jb as z,jc as Jd,k as _e,ka as vt,kb as ai,kc as QC,l as er,la as te,lb as ke,lc as A0,m as br,ma as ie,mb as bt,mc as it,n as SC,na as Qt,nb as Kd,nc as ZC,o as kC,oa as Xr,ob as et,oc as ac,p as Le,pa as Ut,pb as sc,pc as XC,q as yr,qa as RC,qb as xr,qc as JC,r as Pi,ra as gt,rb as Sr,rc as ew,s as b0,sa as $i,sb as N,sc as Ia,t as Sa,ta as LC,tb as F,tc as On,u as Ns,ua as oe,ub as ne,uc as kr,v as To,va as Ne,vb as Ji,vc as yi,w as Qr,wa as zd,wb as en,wc as tw,x as Vd,xa as OC,xb as Ro,xc as eh,y as ti,ya as Ae,yb as We,yc as Lo,z as st,za as Do,zb as Rn,zc as iw}from"./chunk-OHNOGIP5.js";import{a as j,b as $e,c as CC,d as wC,e as X,f as Os,g as Pt}from"./chunk-TSRGIXR5.js";var hx=X((HG,dx)=>{"use strict";dx.exports=n=>encodeURIComponent(n).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)});var _x=X((jG,gx)=>{"use strict";var px="%[a-f0-9]{2}",mx=new RegExp("("+px+")|([^%]+?)","gi"),fx=new RegExp("("+px+")+","gi");function wg(n,t){try{return[decodeURIComponent(n.join(""))]}catch{}if(n.length===1)return n;t=t||1;var e=n.slice(0,t),i=n.slice(t);return Array.prototype.concat.call([],wg(e),wg(i))}function xN(n){try{return decodeURIComponent(n)}catch{for(var t=n.match(mx)||[],e=1;e{"use strict";vx.exports=(n,t)=>{if(!(typeof n=="string"&&typeof t=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(t==="")return[n];let e=n.indexOf(t);return e===-1?[n]:[n.slice(0,e),n.slice(e+t.length)]}});var Cx=X((qG,yx)=>{"use strict";yx.exports=function(n,t){for(var e={},i=Object.keys(n),r=Array.isArray(t),s=0;s{"use strict";var kN=hx(),MN=_x(),xx=bx(),TN=Cx(),EN=n=>n==null,xg=Symbol("encodeFragmentIdentifier");function IN(n){switch(n.arrayFormat){case"index":return t=>(e,i)=>{let r=e.length;return i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Xt(t,n),"[",r,"]"].join("")]:[...e,[Xt(t,n),"[",Xt(r,n),"]=",Xt(i,n)].join("")]};case"bracket":return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Xt(t,n),"[]"].join("")]:[...e,[Xt(t,n),"[]=",Xt(i,n)].join("")];case"colon-list-separator":return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Xt(t,n),":list="].join("")]:[...e,[Xt(t,n),":list=",Xt(i,n)].join("")];case"comma":case"separator":case"bracket-separator":{let t=n.arrayFormat==="bracket-separator"?"[]=":"=";return e=>(i,r)=>r===void 0||n.skipNull&&r===null||n.skipEmptyString&&r===""?i:(r=r===null?"":r,i.length===0?[[Xt(e,n),t,Xt(r,n)].join("")]:[[i,Xt(r,n)].join(n.arrayFormatSeparator)])}default:return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,Xt(t,n)]:[...e,[Xt(t,n),"=",Xt(i,n)].join("")]}}function AN(n){let t;switch(n.arrayFormat){case"index":return(e,i,r)=>{if(t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),!t){r[e]=i;return}r[e]===void 0&&(r[e]={}),r[e][t[1]]=i};case"bracket":return(e,i,r)=>{if(t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),!t){r[e]=i;return}if(r[e]===void 0){r[e]=[i];return}r[e]=[].concat(r[e],i)};case"colon-list-separator":return(e,i,r)=>{if(t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),!t){r[e]=i;return}if(r[e]===void 0){r[e]=[i];return}r[e]=[].concat(r[e],i)};case"comma":case"separator":return(e,i,r)=>{let s=typeof i=="string"&&i.includes(n.arrayFormatSeparator),a=typeof i=="string"&&!s&&ss(i,n).includes(n.arrayFormatSeparator);i=a?ss(i,n):i;let o=s||a?i.split(n.arrayFormatSeparator).map(l=>ss(l,n)):i===null?i:ss(i,n);r[e]=o};case"bracket-separator":return(e,i,r)=>{let s=/(\[\])$/.test(e);if(e=e.replace(/\[\]$/,""),!s){r[e]=i&&ss(i,n);return}let a=i===null?[]:i.split(n.arrayFormatSeparator).map(o=>ss(o,n));if(r[e]===void 0){r[e]=a;return}r[e]=[].concat(r[e],a)};default:return(e,i,r)=>{if(r[e]===void 0){r[e]=i;return}r[e]=[].concat(r[e],i)}}}function Sx(n){if(typeof n!="string"||n.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Xt(n,t){return t.encode?t.strict?kN(n):encodeURIComponent(n):n}function ss(n,t){return t.decode?MN(n):n}function kx(n){return Array.isArray(n)?n.sort():typeof n=="object"?kx(Object.keys(n)).sort((t,e)=>Number(t)-Number(e)).map(t=>n[t]):n}function Mx(n){let t=n.indexOf("#");return t!==-1&&(n=n.slice(0,t)),n}function DN(n){let t="",e=n.indexOf("#");return e!==-1&&(t=n.slice(e)),t}function Tx(n){n=Mx(n);let t=n.indexOf("?");return t===-1?"":n.slice(t+1)}function wx(n,t){return t.parseNumbers&&!Number.isNaN(Number(n))&&typeof n=="string"&&n.trim()!==""?n=Number(n):t.parseBooleans&&n!==null&&(n.toLowerCase()==="true"||n.toLowerCase()==="false")&&(n=n.toLowerCase()==="true"),n}function Ex(n,t){t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t),Sx(t.arrayFormatSeparator);let e=AN(t),i=Object.create(null);if(typeof n!="string"||(n=n.trim().replace(/^[?#&]/,""),!n))return i;for(let r of n.split("&")){if(r==="")continue;let[s,a]=xx(t.decode?r.replace(/\+/g," "):r,"=");a=a===void 0?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?a:ss(a,t),e(ss(s,t),a,i)}for(let r of Object.keys(i)){let s=i[r];if(typeof s=="object"&&s!==null)for(let a of Object.keys(s))s[a]=wx(s[a],t);else i[r]=wx(s,t)}return t.sort===!1?i:(t.sort===!0?Object.keys(i).sort():Object.keys(i).sort(t.sort)).reduce((r,s)=>{let a=i[s];return a&&typeof a=="object"&&!Array.isArray(a)?r[s]=kx(a):r[s]=a,r},Object.create(null))}tn.extract=Tx;tn.parse=Ex;tn.stringify=(n,t)=>{if(!n)return"";t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t),Sx(t.arrayFormatSeparator);let e=a=>t.skipNull&&EN(n[a])||t.skipEmptyString&&n[a]==="",i=IN(t),r={};for(let a of Object.keys(n))e(a)||(r[a]=n[a]);let s=Object.keys(r);return t.sort!==!1&&s.sort(t.sort),s.map(a=>{let o=n[a];return o===void 0?"":o===null?Xt(a,t):Array.isArray(o)?o.length===0&&t.arrayFormat==="bracket-separator"?Xt(a,t)+"[]":o.reduce(i(a),[]).join("&"):Xt(a,t)+"="+Xt(o,t)}).filter(a=>a.length>0).join("&")};tn.parseUrl=(n,t)=>{t=Object.assign({decode:!0},t);let[e,i]=xx(n,"#");return Object.assign({url:e.split("?")[0]||"",query:Ex(Tx(n),t)},t&&t.parseFragmentIdentifier&&i?{fragmentIdentifier:ss(i,t)}:{})};tn.stringifyUrl=(n,t)=>{t=Object.assign({encode:!0,strict:!0,[xg]:!0},t);let e=Mx(n.url).split("?")[0]||"",i=tn.extract(n.url),r=tn.parse(i,{sort:!1}),s=Object.assign(r,n.query),a=tn.stringify(s,t);a&&(a=`?${a}`);let o=DN(n.url);return n.fragmentIdentifier&&(o=`#${t[xg]?Xt(n.fragmentIdentifier,t):n.fragmentIdentifier}`),`${e}${a}${o}`};tn.pick=(n,t,e)=>{e=Object.assign({parseFragmentIdentifier:!0,[xg]:!1},e);let{url:i,query:r,fragmentIdentifier:s}=tn.parseUrl(n,e);return tn.stringifyUrl({url:i,query:TN(r,t),fragmentIdentifier:s},e)};tn.exclude=(n,t,e)=>{let i=Array.isArray(t)?r=>!t.includes(r):(r,s)=>!t(r,s);return tn.pick(n,i,e)}});var Dx=X((kg,Ax)=>{kg=Ax.exports=RN;kg.getSerialize=Ix;function RN(n,t,e,i){return JSON.stringify(n,Ix(t,i),e)}function Ix(n,t){var e=[],i=[];return t==null&&(t=function(r,s){return e[0]===s?"[Circular ~]":"[Circular ~."+i.slice(0,e.indexOf(s)).join(".")+"]"}),function(r,s){if(e.length>0){var a=e.indexOf(this);~a?e.splice(a+1):e.push(this),~a?i.splice(a,1/0,r):i.push(r),~e.indexOf(s)&&(s=t.call(this,r,s))}else e.push(s);return n==null?s:n.call(this,r,s)}}});var Lx=X((KG,Rx)=>{var Go=1e3,Ko=Go*60,Yo=Ko*60,Ua=Yo*24,LN=Ua*7,ON=Ua*365.25;Rx.exports=function(n,t){t=t||{};var e=typeof n;if(e==="string"&&n.length>0)return NN(n);if(e==="number"&&isFinite(n))return t.long?PN(n):FN(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))};function NN(n){if(n=String(n),!(n.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(t){var e=parseFloat(t[1]),i=(t[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return e*ON;case"weeks":case"week":case"w":return e*LN;case"days":case"day":case"d":return e*Ua;case"hours":case"hour":case"hrs":case"hr":case"h":return e*Yo;case"minutes":case"minute":case"mins":case"min":case"m":return e*Ko;case"seconds":case"second":case"secs":case"sec":case"s":return e*Go;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function FN(n){var t=Math.abs(n);return t>=Ua?Math.round(n/Ua)+"d":t>=Yo?Math.round(n/Yo)+"h":t>=Ko?Math.round(n/Ko)+"m":t>=Go?Math.round(n/Go)+"s":n+"ms"}function PN(n){var t=Math.abs(n);return t>=Ua?Ih(n,t,Ua,"day"):t>=Yo?Ih(n,t,Yo,"hour"):t>=Ko?Ih(n,t,Ko,"minute"):t>=Go?Ih(n,t,Go,"second"):n+" ms"}function Ih(n,t,e,i){var r=t>=e*1.5;return Math.round(n/e)+" "+i+(r?"s":"")}});var Nx=X((YG,Ox)=>{function UN(n){e.debug=e,e.default=e,e.coerce=l,e.disable=s,e.enable=r,e.enabled=a,e.humanize=Lx(),e.destroy=c,Object.keys(n).forEach(u=>{e[u]=n[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let d=0;for(let h=0;h{if(E==="%%")return"%";x++;let M=e.formatters[T];if(typeof M=="function"){let D=v[x];E=M.call(w,D),v.splice(x,1),x--}return E}),e.formatArgs.call(w,v),(w.log||e.log).apply(w,v)}return g.namespace=u,g.useColors=e.useColors(),g.color=e.selectColor(u),g.extend=i,g.destroy=e.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(m!==e.namespaces&&(m=e.namespaces,f=e.enabled(u)),f),set:v=>{h=v}}),typeof e.init=="function"&&e.init(g),g}function i(u,d){let h=e(this.namespace+(typeof d>"u"?":":d)+u);return h.log=this.log,h}function r(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let d,h=(typeof u=="string"?u:"").split(/[\s,]+/),m=h.length;for(d=0;d"-"+d)].join(",");return e.enable(""),u}function a(u){if(u[u.length-1]==="*")return!0;let d,h;for(d=0,h=e.skips.length;d{pn.formatArgs=VN;pn.save=BN;pn.load=zN;pn.useColors=$N;pn.storage=HN();pn.destroy=(()=>{let n=!1;return()=>{n||(n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();pn.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function $N(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function VN(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+Ah.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;n.splice(1,0,t,"color: inherit");let e=0,i=0;n[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(e++,r==="%c"&&(i=e))}),n.splice(i,0,t)}pn.log=console.debug||console.log||(()=>{});function BN(n){try{n?pn.storage.setItem("debug",n):pn.storage.removeItem("debug")}catch{}}function zN(){let n;try{n=pn.storage.getItem("debug")}catch{}return!n&&typeof process<"u"&&"env"in process&&(n=process.env.DEBUG),n}function HN(){try{return localStorage}catch{}}Ah.exports=Nx()(pn);var{formatters:jN}=Ah.exports;jN.j=function(n){try{return JSON.stringify(n)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Mg=X((QG,Px)=>{var WN=Dx(),as=Dh()("fhir-kit-client:error"),Qo=Dh()("fhir-kit-client:info");function Rh(n){return WN(n)}function Fx(n){return n.raw&&typeof n.raw=="function"?Rh(n.raw()):Rh(n)}function qN(n){as.enabled&&(as("!!! Error"),n.response&&as(` Status: ${n.response.status}`),n.config&&(as(` ${n.config.method.toUpperCase()}: ${n.config.url}`),as(` Headers: ${Fx(n.config.headers)}`)),n.response&&n.response.data&&as(Rh(n.response.data)),as("!!! Request Error"))}function GN(n,t,e){Qo.enabled&&(t&&Qo(`Request: ${n.toUpperCase()} ${t.toString()}`),Qo(`Request Headers: ${Fx(e)}`))}function KN(n){Qo.enabled&&(Qo(`Response: ${n.status}`),n.data&&Qo(Rh(n.data)))}function YN(n){as.enabled&&as(n)}Px.exports={logRequestError:qN,logRequestInfo:GN,logResponseInfo:KN,logError:YN}});var $x=X((ZG,Ux)=>{var QN="http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris",{logError:ZN}=Mg();function XN(n){let t={};try{return n.rest.forEach(e=>{e.security.extension.find(r=>r.url===QN).extension.forEach(r=>{switch(r.url){case"authorize":t.authorizeUrl=new URL(r.valueUri);break;case"token":t.tokenUrl=new URL(r.valueUri);break;case"register":t.registerUrl=new URL(r.valueUri);break;case"manage":t.manageUrl=new URL(r.valueUri);break;default:}})}),t}catch(e){return ZN(e),t}}function JN(n){let{authorization_endpoint:t,token_endpoint:e,registration_endpoint:i}=n;return{authorizeUrl:t&&new URL(t),tokenUrl:e&&new URL(e),registerUrl:i&&new URL(i)}}Ux.exports={authFromCapability:XN,authFromWellKnown:JN}});var Vx=X((Tg,Eg)=>{(function(n,t){typeof Tg=="object"&&typeof Eg<"u"?Eg.exports=t():typeof define=="function"&&define.amd?define(t):n.ES6Promise=t()})(Tg,function(){"use strict";function n(Z){var ue=typeof Z;return Z!==null&&(ue==="object"||ue==="function")}function t(Z){return typeof Z=="function"}var e=void 0;Array.isArray?e=Array.isArray:e=function(Z){return Object.prototype.toString.call(Z)==="[object Array]"};var i=e,r=0,s=void 0,a=void 0,o=function(ue,Ce){x[r]=ue,x[r+1]=Ce,r+=2,r===2&&(a?a(y):T())};function l(Z){a=Z}function c(Z){o=Z}var u=typeof window<"u"?window:void 0,d=u||{},h=d.MutationObserver||d.WebKitMutationObserver,m=typeof self>"u"&&typeof process<"u"&&{}.toString.call(process)==="[object process]",f=typeof Uint8ClampedArray<"u"&&typeof importScripts<"u"&&typeof MessageChannel<"u";function g(){return function(){return process.nextTick(y)}}function v(){return typeof s<"u"?function(){s(y)}:k()}function w(){var Z=0,ue=new h(y),Ce=document.createTextNode("");return ue.observe(Ce,{characterData:!0}),function(){Ce.data=Z=++Z%2}}function C(){var Z=new MessageChannel;return Z.port1.onmessage=y,function(){return Z.port2.postMessage(0)}}function k(){var Z=setTimeout;return function(){return Z(y,1)}}var x=new Array(1e3);function y(){for(var Z=0;Z{(function(n){var t=function(e){var i={searchParams:"URLSearchParams"in n,iterable:"Symbol"in n&&"iterator"in Symbol,blob:"FileReader"in n&&"Blob"in n&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in n,arrayBuffer:"ArrayBuffer"in n};function r(_){return _&&DataView.prototype.isPrototypeOf(_)}if(i.arrayBuffer)var s=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(_){return _&&s.indexOf(Object.prototype.toString.call(_))>-1};function o(_){if(typeof _!="string"&&(_=String(_)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(_))throw new TypeError("Invalid character in header field name");return _.toLowerCase()}function l(_){return typeof _!="string"&&(_=String(_)),_}function c(_){var p={next:function(){var b=_.shift();return{done:b===void 0,value:b}}};return i.iterable&&(p[Symbol.iterator]=function(){return p}),p}function u(_){this.map={},_ instanceof u?_.forEach(function(p,b){this.append(b,p)},this):Array.isArray(_)?_.forEach(function(p){this.append(p[0],p[1])},this):_&&Object.getOwnPropertyNames(_).forEach(function(p){this.append(p,_[p])},this)}u.prototype.append=function(_,p){_=o(_),p=l(p);var b=this.map[_];this.map[_]=b?b+", "+p:p},u.prototype.delete=function(_){delete this.map[o(_)]},u.prototype.get=function(_){return _=o(_),this.has(_)?this.map[_]:null},u.prototype.has=function(_){return this.map.hasOwnProperty(o(_))},u.prototype.set=function(_,p){this.map[o(_)]=l(p)},u.prototype.forEach=function(_,p){for(var b in this.map)this.map.hasOwnProperty(b)&&_.call(p,this.map[b],b,this)},u.prototype.keys=function(){var _=[];return this.forEach(function(p,b){_.push(b)}),c(_)},u.prototype.values=function(){var _=[];return this.forEach(function(p){_.push(p)}),c(_)},u.prototype.entries=function(){var _=[];return this.forEach(function(p,b){_.push([b,p])}),c(_)},i.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);function d(_){if(_.bodyUsed)return Promise.reject(new TypeError("Already read"));_.bodyUsed=!0}function h(_){return new Promise(function(p,b){_.onload=function(){p(_.result)},_.onerror=function(){b(_.error)}})}function m(_){var p=new FileReader,b=h(p);return p.readAsArrayBuffer(_),b}function f(_){var p=new FileReader,b=h(p);return p.readAsText(_),b}function g(_){for(var p=new Uint8Array(_),b=new Array(p.length),S=0;S-1?p:_}function x(_,p){p=p||{};var b=p.body;if(_ instanceof x){if(_.bodyUsed)throw new TypeError("Already read");this.url=_.url,this.credentials=_.credentials,p.headers||(this.headers=new u(_.headers)),this.method=_.method,this.mode=_.mode,this.signal=_.signal,!b&&_._bodyInit!=null&&(b=_._bodyInit,_.bodyUsed=!0)}else this.url=String(_);if(this.credentials=p.credentials||this.credentials||"same-origin",(p.headers||!this.headers)&&(this.headers=new u(p.headers)),this.method=k(p.method||this.method||"GET"),this.mode=p.mode||this.mode||null,this.signal=p.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&b)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(b)}x.prototype.clone=function(){return new x(this,{body:this._bodyInit})};function y(_){var p=new FormData;return _.trim().split("&").forEach(function(b){if(b){var S=b.split("="),I=S.shift().replace(/\+/g," "),A=S.join("=").replace(/\+/g," ");p.append(decodeURIComponent(I),decodeURIComponent(A))}}),p}function E(_){var p=new u,b=_.replace(/\r?\n[\t ]+/g," ");return b.split(/\r?\n/).forEach(function(S){var I=S.split(":"),A=I.shift().trim();if(A){var R=I.join(":").trim();p.append(A,R)}}),p}w.call(x.prototype);function T(_,p){p||(p={}),this.type="default",this.status=p.status===void 0?200:p.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in p?p.statusText:"OK",this.headers=new u(p.headers),this.url=p.url||"",this._initBody(_)}w.call(T.prototype),T.prototype.clone=function(){return new T(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},T.error=function(){var _=new T(null,{status:0,statusText:""});return _.type="error",_};var M=[301,302,303,307,308];T.redirect=function(_,p){if(M.indexOf(p)===-1)throw new RangeError("Invalid status code");return new T(null,{status:p,headers:{location:_}})},e.DOMException=n.DOMException;try{new e.DOMException}catch{e.DOMException=function(p,b){this.message=p,this.name=b;var S=Error(p);this.stack=S.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function D(_,p){return new Promise(function(b,S){var I=new x(_,p);if(I.signal&&I.signal.aborted)return S(new e.DOMException("Aborted","AbortError"));var A=new XMLHttpRequest;function R(){A.abort()}A.onload=function(){var O={status:A.status,statusText:A.statusText,headers:E(A.getAllResponseHeaders()||"")};O.url="responseURL"in A?A.responseURL:O.headers.get("X-Request-URL");var U="response"in A?A.response:A.responseText;b(new T(U,O))},A.onerror=function(){S(new TypeError("Network request failed"))},A.ontimeout=function(){S(new TypeError("Network request failed"))},A.onabort=function(){S(new e.DOMException("Aborted","AbortError"))},A.open(I.method,I.url,!0),I.credentials==="include"?A.withCredentials=!0:I.credentials==="omit"&&(A.withCredentials=!1),"responseType"in A&&i.blob&&(A.responseType="blob"),I.headers.forEach(function(O,U){A.setRequestHeader(U,O)}),I.signal&&(I.signal.addEventListener("abort",R),A.onreadystatechange=function(){A.readyState===4&&I.signal.removeEventListener("abort",R)}),A.send(typeof I._bodyInit>"u"?null:I._bodyInit)})}return D.polyfill=!0,n.fetch||(n.fetch=D,n.Headers=u,n.Request=x,n.Response=T),e.Headers=u,e.Request=x,e.Response=T,e.fetch=D,Object.defineProperty(e,"__esModule",{value:!0}),e}({})})(typeof self<"u"?self:Bx)});var Ag=X((eK,Ig)=>{Ig.exports=Hx;Ig.exports.HttpsAgent=Hx;function Hx(){}});var Zx=X((tK,Qx)=>{Vx().polyfill();zx();var{logRequestError:eF,logRequestInfo:Gx,logResponseInfo:tF}=Mg(),iF={accept:"application/fhir+json"},jx="__response",Wx="__request",Dg=!1,Kx,Yx;try{Kx=Ag(),Yx=Ag().HttpsAgent,Dg=!0}catch{Gx("HTTP Agent is not available")}var Rc=new WeakMap;function nF(n,t={}){let e={baseUrl:n,agentOptions:t};return Dg?(Rc.get(e)||(n.startsWith("https")?Rc.set(e,{agent:new Yx(t)}):Rc.set(e,{agent:new Kx(t)})),Rc.get(e)):{}}function qx({status:n,data:t,method:e,headers:i,url:r}){let s={response:{status:n,data:t},config:{method:e,url:r,headers:i}};return eF(s),s}function rF(n){return typeof n=="string"?n:JSON.stringify(n)}Qx.exports=class Lh{static lcKeys(t){return t&&Object.keys(t).reduce((e,i)=>(e[i.toLowerCase()]=t[i],e),{})}constructor({baseUrl:t,customHeaders:e={},requestOptions:i={},requestSigner:r=void 0}){this.baseUrl=t,this.customHeaders=e,this.baseRequestOptions=i,this.requestSigner=r}set baseUrl(t){if(!t)throw new Error("baseUrl cannot be blank");if(typeof t!="string")throw new Error("baseUrl must be a string");this.baseUrlValue=t}get baseUrl(){return this.baseUrlValue}static responseFor(t){return t[jx]}static requestFor(t){return t[Wx]}set bearerToken(t){let e=`Bearer ${t}`;this.authHeader={authorization:e}}requestBuilder(t,e,i,r){let s=$e(j(j({},this.baseRequestOptions),i),{method:t,body:rF(r)}),a={};return Dg||(a={keepalive:Object.prototype.hasOwnProperty.call(s,"keepalive")?s.keepalive:!0}),Object.assign(s,a,{headers:new Headers(this.mergeHeaders(i.headers))},nF(this.baseUrl,s)),this.requestSigner&&this.requestSigner(e,s),new Request(e,s)}request(s,a){return Pt(this,arguments,function*(t,e,i={},r){let o=this.expandUrl(e),l=this.requestBuilder(t,o,i,r);Gx(t,o,l.headers);let c=yield fetch(l),{status:u,headers:d}=c;tF({status:u,response:c});let h=yield c.text(),m={};if(h)try{m=JSON.parse(h)}catch{throw m=h,qx({status:u,data:m,method:t,headers:d,url:o})}if(!c.ok)throw qx({status:u,data:m,method:t,headers:d,url:o});return Object.defineProperty(m,jx,{writable:!1,enumerable:!1,value:c}),Object.defineProperty(m,Wx,{writable:!1,enumerable:!1,value:l}),m})}get(t,e){return Pt(this,null,function*(){return this.request("GET",t,e)})}delete(t,e){return Pt(this,null,function*(){return this.request("DELETE",t,e)})}put(r,s){return Pt(this,arguments,function*(t,e,i={}){let a=j({"content-type":"application/fhir+json"},Lh.lcKeys(i.headers)),o=$e(j({},i),{headers:a});return this.request("PUT",t,o,e)})}post(r,s){return Pt(this,arguments,function*(t,e,i={}){let a=j({"content-type":"application/fhir+json"},Lh.lcKeys(i.headers)),o=$e(j({},i),{headers:a});return this.request("POST",t,o,e)})}patch(t,e,i){return Pt(this,null,function*(){return this.request("PATCH",t,i,e)})}expandUrl(t=""){return t.toLowerCase().startsWith("http")?t:this.baseUrl.endsWith("/")&&t.startsWith("/")?this.baseUrl+t.slice(1):this.baseUrl.endsWith("/")||t.startsWith("/")?this.baseUrl+t:`${this.baseUrl}/${t}`}mergeHeaders(t){let{lcKeys:e}=Lh;return j(j(j(j({},e(iF)),e(this.authHeader)),e(this.customHeaders)),e(t))}}});var Jx=X((nK,Xx)=>{Xx.exports={fhirReferenceRegEx:/^((http|https):\/\/([A-Za-z0-9\\.:%$]*\/)*)?(Account|ActivityDefinition|AdverseEvent|AllergyIntolerance|Appointment|AppointmentResponse|AuditEvent|Basic|Binary|BiologicallyDerivedProduct|BodySite|BodyStructure|Bundle|CapabilityStatement|CarePlan|CareTeam|CatalogEntry|ChargeItem|ChargeItemDefinition|Claim|ClaimResponse|ClinicalImpression|CodeSystem|Communication|CommunicationRequest|CompartmentDefinition|Composition|ConceptMap|Condition|Conformance|Consent|Contract|Coverage|CoverageEligibilityRequest|CoverageEligibilityResponse|DataElement|DecisionSupportRule|DecisionSupportServiceModule|DetectedIssue|Device|DeviceComponent|DeviceDefinition|DeviceMetric|DeviceRequest|DeviceUseRequest|DeviceUseStatement|DiagnosticOrder|DiagnosticReport|DiagnosticRequest|DocumentManifest|DocumentReference|EffectEvidenceSynthesis|EligibilityRequest|EligibilityResponse|Encounter|Endpoint|EnrollmentRequest|EnrollmentResponse|EntryDefinition|EpisodeOfCare|EventDefinition|Evidence|EvidenceVariable|ExampleScenario|ExpansionProfile|ExplanationOfBenefit|FamilyMemberHistory|Flag|Goal|GraphDefinition|Group|GuidanceRequest|GuidanceResponse|HealthcareService|ImagingExcerpt|ImagingManifest|ImagingObjectSelection|ImagingStudy|Immunization|ImmunizationEvaluation|ImmunizationRecommendation|ImplementationGuide|ImplementationGuideInput|ImplementationGuideOutput|InsurancePlan|Invoice|ItemInstance|Library|Linkage|List|Location|Measure|MeasureReport|Media|Medication|MedicationAdministration|MedicationDispense|MedicationKnowledge|MedicationOrder|MedicationRequest|MedicationStatement|MedicinalProduct|MedicinalProductAuthorization|MedicinalProductClinicals|MedicinalProductContraindication|MedicinalProductDeviceSpec|MedicinalProductIndication|MedicinalProductIngredient|MedicinalProductInteraction|MedicinalProductManufactured|MedicinalProductPackaged|MedicinalProductPharmaceutical|MedicinalProductUndesirableEffect|MessageDefinition|MessageHeader|ModuleDefinition|ModuleMetadata|MolecularSequence|NamingSystem|NutritionOrder|NutritionRequest|Observation|ObservationDefinition|OccupationalData|OperationDefinition|OperationOutcome|Order|OrderResponse|OrderSet|Organization|OrganizationAffiliation|OrganizationRole|Patient|PaymentNotice|PaymentReconciliation|Person|PlanDefinition|Practitioner|PractitionerRole|Procedure|ProcedureRequest|ProcessRequest|ProcessResponse|ProductPlan|Protocol|Provenance|Questionnaire|QuestionnaireResponse|ReferralRequest|RelatedPerson|RequestGroup|ResearchDefinition|ResearchElementDefinition|ResearchStudy|ResearchSubject|RiskAssessment|RiskEvidenceSynthesis|Schedule|SearchParameter|Sequence|ServiceDefinition|ServiceRequest|Slot|Specimen|SpecimenDefinition|StructureDefinition|StructureMap|Subscription|Substance|SubstanceNucleicAcid|SubstancePolymer|SubstanceProtein|SubstanceReferenceInformation|SubstanceSourceMaterial|SubstanceSpecification|SupplyDelivery|SupplyRequest|Task|TerminologyCapabilities|TestReport|TestScript|UserSession|ValueSet|VerificationResult|VisionPrescription)\/[A-Za-z0-9\-.]{1,256}(\/_history\/[A-Za-z0-9\-.]{1,256})?$/}});var Rg=X((rK,tS)=>{var sF=Sg(),{fhirReferenceRegEx:eS}=Jx();function aF(n){if(!n.match(eS))throw new Error(`${n} is not a recognized FHIR reference`);let t,e=n;n.startsWith("http")&&([,t]=eS.exec(n),e=n.slice(t.length),t.endsWith("/")&&(t=t.slice(0,-1)));let[i,r]=e.split("/");return{baseUrl:t,resourceType:i,id:r}}function oF(n){return!n.startsWith("/")&&!n.includes(":")&&/\S/.test(n)}function lF(n){if(n instanceof Object&&Object.keys(n).length>0)return sF.stringify(n)}tS.exports={createQueryString:lF,splitReference:aF,validResourceType:oF}});var Lg=X((sK,iS)=>{var cF=(n,t)=>{if(Object.prototype.hasOwnProperty.call(n,"resourceType")){console.warn("WARNING: positional parameters for pagination methods are deprecated and will be removed in the next major version. Call with ({ bundle, options }) rather than (bundle, headers)");let e={bundle:n};return t&&(e.options={headers:t}),e}return n},uF=(n,t)=>t?(console.warn("WARNING: headers is deprecated and will be removed in the next major version. Use options.headers instead."),console.warn(JSON.stringify(t,null," ")),j({headers:t},n)):n;iS.exports={deprecateHeaders:uF,deprecatePaginationArgs:cF}});var rS=X((oK,nS)=>{var{splitReference:dF}=Rg(),{deprecateHeaders:Og}=Lg();nS.exports=class{constructor(n){this.client=n}resolve(){return Pt(this,arguments,function*({reference:n,context:t,headers:e,options:i={}}={}){return t===void 0?n.startsWith("http")?this.resolveAbsoluteReference(n,Og(i,e)):this.client.httpClient.get(n,Og(i,e)):n.startsWith("#")?this.resolveContainedReference(n,t):this.resolveBundleReference(n,t,Og(i,e))})}resolveAbsoluteReference(n,t){return Pt(this,null,function*(){if(n.startsWith(this.client.baseUrl))return this.client.httpClient.get(n,t);let{baseUrl:e,resourceType:i,id:r}=dF(n),s=Ng();return new s({baseUrl:e}).read({resourceType:i,id:r,options:t})})}resolveContainedReference(n,t){if(t.contained){let e=n.slice(1),i=t.contained.find(r=>r.id===e);if(i)return i}throw new Error(`Unable to resolve contained reference: ${n}`)}resolveBundleReference(n,t,e){return Pt(this,null,function*(){let i=new RegExp(`(^|/)${n}$`),r=t.entry.find(s=>i.test(s.fullUrl));return r?r.resource:this.resolve({reference:n,options:e})})}}});var aS=X((uK,sS)=>{var Fg=class{constructor(t){this.httpClient=t}nextPage(t,{headers:e}={}){let i=t.link.find(r=>r.relation==="next");return i?this.httpClient.get(i.url,{headers:e}):void 0}prevPage(t,{headers:e}={}){let i=t.link.find(r=>r.relation.match(/^prev(ious)?$/));return i?this.httpClient.get(i.url,{headers:e}):void 0}};sS.exports=Fg});var lS=X((dK,oS)=>{"use strict";var Pg=typeof self<"u"?self:typeof window<"u"?window:void 0;if(!Pg)throw new Error("Unable to find global scope. Are you sure this is running in the browser?");if(!Pg.AbortController)throw new Error('Could not find "AbortController" in the global scope. You need to polyfill it first');oS.exports.AbortController=Pg.AbortController});var uS=X((hK,cS)=>{var{AbortController:hF}=lS(),Oh=class{constructor(){this.controller=new hF,this.resolving=!1}addSignalOption(t){return j({signal:this.controller.signal},t)}safeAbort(){this.resolving||this.controller.abort()}},Ug=class{constructor(){this.jobs=[],this.numJobs=0}buildJob(){let t=new Oh;return this.numJobs=this.jobs.push(t),t}safeAbortOthers(t){t.resolving=!0;for(let e=0,i=this.numJobs;e{var $g=class{constructor(t){this.capabilityStatement=t}serverCan(t){return this.supportFor({capabilityType:"interaction",where:{code:t}})}resourceCan(t,e){return this.supportFor({resourceType:t,capabilityType:"interaction",where:{code:e}})}serverSearch(t){return this.supportFor({capabilityType:"searchParam",where:{name:t}})}resourceSearch(t,e){return this.supportFor({resourceType:t,capabilityType:"searchParam",where:{name:e}})}supportFor({resourceType:t,capabilityType:e,where:i}={}){let r;if(t?r=this.resourceCapabilities({resourceType:t}):r=this.serverCapabilities(),!r)return!1;let s=r[e];if(i&&s){let a=Object.keys(i)[0];return s.find(l=>l[a]===i[a])!==void 0}return s!==void 0}interactionsFor({resourceType:t}={}){let e=this.resourceCapabilities({resourceType:t});return e===void 0?[]:e.interaction.map(i=>i.code)}searchParamsFor({resourceType:t}={}){let e=this.resourceCapabilities({resourceType:t});return e===void 0?[]:e.searchParam===void 0?[]:e.searchParam.map(i=>i.name)}resourceCapabilities({resourceType:t}={}){return this.serverCapabilities().resource.find(r=>r.type===t)}capabilityContents({resourceType:t,capabilityType:e}={}){let i=this.resourceCapabilities({resourceType:t});if(i!==void 0)return i[e]}serverCapabilities(){return this.capabilityStatement.rest.find(t=>t.mode==="server")}};dS.exports=$g});var Ng=X((pK,zg)=>{var mF=Sg(),{authFromCapability:fF,authFromWellKnown:mS}=$x(),Vg=Zx(),pF=rS(),gF=aS(),{createQueryString:fS,validResourceType:nn}=Rg(),{FetchQueue:_F}=uS(),{deprecatePaginationArgs:pS,deprecateHeaders:Kt}=Lg(),vF=hS(),Bg=class{constructor({baseUrl:t,customHeaders:e,requestOptions:i,requestSigner:r,bearerToken:s}={}){this.httpClient=new Vg({baseUrl:t,customHeaders:e,requestOptions:i,requestSigner:r}),s&&(this.httpClient.bearerToken=s),this.resolver=new pF(this),this.pagination=new gF(this.httpClient)}static httpFor(t){return{request:Vg.requestFor(t),response:Vg.responseFor(t)}}get baseUrl(){return this.httpClient&&this.httpClient.baseUrl}set baseUrl(t){this.httpClient&&(this.httpClient.baseUrl=t)}get customHeaders(){return this.httpClient.customHeaders}set customHeaders(t){this.httpClient.customHeaders=t}set bearerToken(t){this.httpClient.bearerToken=t}resolve({reference:t,context:e,headers:i,options:r={}}={}){return this.resolver.resolve({reference:t,context:e,options:Kt(r,i)})}smartAuthMetadata(){return Pt(this,arguments,function*({headers:t,options:e={}}={}){let i={options:Kt(e,t)};i.options.headers||(i.options.headers={}),i.options.headers.accept="application/fhir+json,application/json";let r=this.baseUrl.replace(/\/*$/,"/"),s=new _F,a=s.buildJob(),o=s.buildJob(),l=s.buildJob(),c=[];return new Promise((u,d)=>{function h(m){c.push(m)===s.numJobs&&d(new Error(c.map(f=>f.message).join("; ")))}this.httpClient.request("GET",`${r}.well-known/smart-configuration`,o.addSignalOption(i)).then(m=>(s.safeAbortOthers(o),u(mS(m)))).catch(m=>h(m)),this.capabilityStatement(a.addSignalOption(i)).then(m=>(s.safeAbortOthers(a),u(fF(m)))).catch(m=>h(m)),this.httpClient.request("GET",`${r}.well-known/openid-configuration`,l.addSignalOption(i)).then(m=>(s.safeAbortOthers(l),u(mS(m)))).catch(m=>h(m))})})}capabilityStatement({headers:t,options:e={}}={}){return this.metadata||(this.metadata=this.httpClient.get("metadata",Kt(e,t))),this.metadata}request(t,{method:e="GET",options:i={},body:r}={}){return i.method&&i.method!==e&&console.warn(`WARNING: 'options.method' has been specified: ${i.method} but will be ignored. Use 'method' instead.`),this.httpClient.request(e,t,i,r)}read({resourceType:t,id:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}`,Kt(r,i))}vread({resourceType:t,id:e,version:i,headers:r,options:s={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}/_history/${i}`,Kt(s,r))}create({resourceType:t,body:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.post(t,e,Kt(r,i))}delete({resourceType:t,id:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.delete(`${t}/${e}`,Kt(r,i))}update({resourceType:t,id:e,searchParams:i,body:r,headers:s,options:a={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);if(e&&i)throw new Error("Conditional update with search params cannot be with id",t);if(i){let o=fS(i);return this.httpClient.put(`${t}?${o}`,r,Kt(a,s))}return this.httpClient.put(`${t}/${e}`,r,Kt(a,s))}patch({resourceType:t,id:e,JSONPatch:i,headers:r,options:s={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);let a=Kt(s,r).headers||{},o=$e(j({},a),{"Content-Type":"application/json-patch+json"});return this.httpClient.patch(`${t}/${e}`,i,$e(j({},s),{headers:o}))}batch({body:t,headers:e,options:i={}}={}){return this.httpClient.post("/",t,Kt(i,e))}transaction({body:t,headers:e,options:i={}}={}){return this.httpClient.post("/",t,Kt(i,e))}operation({name:t,resourceType:e,id:i,method:r="POST",input:s,options:a={}}={}){let o=["/"];if(e){if(!nn(e))throw new Error("Invalid resourceType",e);o.push(`${e}/`)}if(i&&o.push(`${i}/`),o.push(`${t.startsWith("$")?t:`$${t}`}`),r.toUpperCase()==="POST")return this.httpClient.post(o.join(""),s,a);if(r.toUpperCase()==="GET")return s&&o.push(`?${mF.stringify(s)}`),this.httpClient.get(o.join(""),a)}nextPage(t,e){let{bundle:i,options:r={}}=pS(t,e);return this.pagination.nextPage(i,r)}prevPage(t,e){let{bundle:i,options:r={}}=pS(t,e);return this.pagination.prevPage(i,r)}search({resourceType:t,compartment:e,searchParams:i,headers:r,options:s={}}={}){if(t&&!nn(t))throw new Error("Invalid resourceType",t);if(e&&t)return this.compartmentSearch({resourceType:t,compartment:e,searchParams:i,options:Kt(s,r)});if(t)return this.resourceSearch({resourceType:t,searchParams:i,options:Kt(s,r)});if(i instanceof Object&&Object.keys(i).length>0)return this.systemSearch({searchParams:i,options:Kt(s,r)});throw new Error("search requires either searchParams or a resourceType")}resourceSearch({resourceType:t,searchParams:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);let s=t;return r.postSearch&&(s+="/_search"),this.baseSearch({searchPath:s,searchParams:e,headers:i,options:r})}systemSearch({searchParams:t,headers:e,options:i={}}={}){return this.baseSearch({searchPath:"/_search",searchParams:t,headers:e,options:i})}compartmentSearch({resourceType:t,compartment:e,searchParams:i,headers:r,options:s={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);let{resourceType:a,id:o}=e;if(!nn(a))throw new Error("Invalid compartmentType",a);let l=`/${a}/${o}/${t}`;return s.postSearch&&(l+="/_search"),this.baseSearch({searchPath:l,searchParams:i,headers:r,options:s})}baseSearch({searchPath:t,searchParams:e,headers:i,options:r}){let s=fS(e),a=Kt(r,i),o=r.postSearch?"postSearch":"getSearch";return this[o](t,s,a)}postSearch(t,e,i){let s=j(j({},{"Content-Type":"application/x-www-form-urlencoded"}),i.headers),a=$e(j({},i),{headers:s});return this.httpClient.post(t,e,a)}getSearch(t,e,i){let r=t;return e&&(r+=`?${e}`),this.httpClient.get(r,i)}history({resourceType:t,id:e,headers:i,options:r={}}={}){if(t&&!nn(t))throw new Error("Invalid resourceType",t);return e&&t?this.resourceHistory({resourceType:t,id:e,options:Kt(r,i)}):t?this.typeHistory({resourceType:t,options:Kt(r,i)}):this.systemHistory({options:Kt(r,i)})}resourceHistory({resourceType:t,id:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}/_history`,Kt(r,i))}typeHistory({resourceType:t,headers:e,options:i={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/_history`,Kt(i,e))}systemHistory({headers:t,options:e={}}={}){return this.httpClient.get("_history",Kt(e,t))}};zg.exports=Bg;zg.exports.CapabilityTool=vF});var m_=X((XS,am)=>{(function(){var n="ace",t=function(){return this}();if(!t&&typeof window<"u"&&(t=window),!n&&typeof requirejs<"u")return;var e=function(l,c,u){if(typeof l!="string"){e.original?e.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(u=c),e.modules[l]||(e.payloads[l]=u,e.modules[l]=null)};e.modules={},e.payloads={};var i=function(l,c,u){if(typeof c=="string"){var d=a(l,c);if(d!=null)return u&&u(),d}else if(Object.prototype.toString.call(c)==="[object Array]"){for(var h=[],m=0,f=c.length;ma.length)&&(s=a.length),s-=r.length;var o=a.indexOf(r,s);return o!==-1&&o===s}),String.prototype.repeat||i(String.prototype,"repeat",function(r){for(var s="",a=this;r>0;)r&1&&(s+=a),(r>>=1)&&(a+=a);return s}),String.prototype.includes||i(String.prototype,"includes",function(r,s){return this.indexOf(r,s)!=-1}),Object.assign||(Object.assign=function(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");for(var s=Object(r),a=1;a>>0,o=arguments[1],l=o>>0,c=l<0?Math.max(a+l,0):Math.min(l,a),u=arguments[2],d=u===void 0?a:u>>0,h=d<0?Math.max(a+d,0):Math.min(d,a);c0;)a&1&&(o+=s),(a>>=1)&&(s+=s);return o};var i=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(s){return s.replace(i,"")},t.stringTrimRight=function(s){return s.replace(r,"")},t.copyObject=function(s){var a={};for(var o in s)a[o]=s[o];return a},t.copyArray=function(s){for(var a=[],o=0,l=s.length;o65535?2:1}});ace.define("ace/lib/useragent",["require","exports","module"],function(n,t,e){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var i=typeof navigator=="object"?navigator:{},r=(/mac|win|linux/i.exec(i.platform)||["other"])[0].toLowerCase(),s=i.userAgent||"",a=i.appName||"";t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=a=="Microsoft Internet Explorer"||a.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(s.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(s.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(s.split(" Edge/")[1])||void 0,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid});ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(n,t,e){"use strict";var i=n("./useragent"),r="http://www.w3.org/1999/xhtml";t.buildDom=function u(d,h,m){if(typeof d=="string"&&d){var f=document.createTextNode(d);return h&&h.appendChild(f),f}if(!Array.isArray(d))return d&&d.appendChild&&h&&h.appendChild(d),d;if(typeof d[0]!="string"||!d[0]){for(var g=[],v=0;v"u")){if(a){if(h)o();else if(h===!1)return a.push([u,d])}if(!s){var m=h;!h||!h.getRootNode?m=document:(m=h.getRootNode(),(!m||m==h)&&(m=document));var f=m.ownerDocument||m;if(d&&t.hasCssString(d,m))return null;d&&(u+=` -/*# sourceURL=ace/css/`+d+" */");var g=t.createElement("style");g.appendChild(f.createTextNode(u)),d&&(g.id=d),m==f&&(m=t.getDocumentHead(f)),m.insertBefore(g,m.firstChild)}}}if(t.importCssString=l,t.importCssStylsheet=function(u,d){t.buildDom(["link",{rel:"stylesheet",href:u}],t.getDocumentHead(d))},t.scrollbarWidth=function(u){var d=t.createElement("ace_inner");d.style.width="100%",d.style.minWidth="0px",d.style.height="200px",d.style.display="block";var h=t.createElement("ace_outer"),m=h.style;m.position="absolute",m.left="-10000px",m.overflow="hidden",m.width="200px",m.minWidth="0px",m.height="150px",m.display="block",h.appendChild(d);var f=u&&u.documentElement||document&&document.documentElement;if(!f)return 0;f.appendChild(h);var g=d.offsetWidth;m.overflow="scroll";var v=d.offsetWidth;return g===v&&(v=h.clientWidth),f.removeChild(h),g-v},t.computedStyle=function(u,d){return window.getComputedStyle(u,"")||{}},t.setStyle=function(u,d,h){u[d]!==h&&(u[d]=h)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=i.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,i.isChromeOS&&(t.HI_DPI=!1),typeof document<"u"){var c=document.createElement("div");t.HI_DPI&&c.style.transform!==void 0&&(t.HAS_CSS_TRANSFORMS=!0),!i.isEdge&&typeof c.style.animationName<"u"&&(t.HAS_CSS_ANIMATION=!0),c=null}t.HAS_CSS_TRANSFORMS?t.translate=function(u,d,h){u.style.transform="translate("+Math.round(d)+"px, "+Math.round(h)+"px)"}:t.translate=function(u,d,h){u.style.top=Math.round(h)+"px",u.style.left=Math.round(d)+"px"}});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("./dom");t.get=function(r,s){var a=new XMLHttpRequest;a.open("GET",r,!0),a.onreadystatechange=function(){a.readyState===4&&s(a.responseText)},a.send(null)},t.loadScript=function(r,s){var a=i.getDocumentHead(),o=document.createElement("script");o.src=r,a.appendChild(o),o.onload=o.onreadystatechange=function(l,c){(c||!o.readyState||o.readyState=="loaded"||o.readyState=="complete")&&(o=o.onload=o.onreadystatechange=null,c||s())}},t.qualifyURL=function(r){var s=document.createElement("a");return s.href=r,s.href}});ace.define("ace/lib/oop",["require","exports","module"],function(n,t,e){"use strict";t.inherits=function(i,r){i.super_=r,i.prototype=Object.create(r.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(i,r){for(var s in r)i[s]=r[s];return i},t.implement=function(i,r){t.mixin(i,r)}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(n,t,e){"use strict";var i={},r=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(a,o){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var l=this._eventRegistry[a]||[],c=this._defaultHandlers[a];if(!(!l.length&&!c)){(typeof o!="object"||!o)&&(o={}),o.type||(o.type=a),o.stopPropagation||(o.stopPropagation=r),o.preventDefault||(o.preventDefault=s),l=l.slice();for(var u=0;u1&&(g=m[m.length-2]);var w=o[h+"Path"];return w==null?w=o.basePath:f=="/"&&(h=f=""),w&&w.slice(-1)!="/"&&(w+="/"),w+h+f+g+this.get("suffix")},t.setModuleUrl=function(d,h){return o.$moduleUrls[d]=h};var l=function(d,h){if(d==="ace/theme/textmate"||d==="./theme/textmate")return h(null,n("./theme/textmate"));if(c)return c(d,h);console.error("loader is not configured")},c;t.setLoader=function(d){c=d},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(d,h){var m;if(Array.isArray(d))var f=d[0],g=d[1];else if(typeof d=="string")var g=d;var v=function(w){if(w&&!t.$loading[g])return h&&h(w);if(t.$loading[g]||(t.$loading[g]=[]),t.$loading[g].push(h),!(t.$loading[g].length>1)){var C=function(){l(g,function(k,x){x&&(t.$loaded[g]=x),t._emit("load.module",{name:g,module:x});var y=t.$loading[g];t.$loading[g]=null,y.forEach(function(E){E&&E(x)})})};if(!t.get("packaged"))return C();r.loadScript(t.moduleUrl(g,f),C),u()}};if(t.dynamicModules[g])t.dynamicModules[g]().then(function(w){w.default?v(w.default):v(w)});else{try{m=this.$require(g)}catch{}v(m||t.$loaded[g])}},t.$require=function(d){if(typeof e.require=="function"){var h="require";return e[h](d)}},t.setModuleLoader=function(d,h){t.dynamicModules[d]=h};var u=function(){!o.basePath&&!o.workerPath&&!o.modePath&&!o.themePath&&!Object.keys(o.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),u=function(){})};t.version="1.36.5"});ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(n,t,e){"use strict";n("./lib/fixoldbrowsers");var i=n("./config");i.setLoader(function(o,l){n([o],function(c){l(null,c)})});var r=function(){return this||typeof window<"u"&&window}();e.exports=function(o){i.init=s,i.$require=n,o.require=n,typeof define=="function"&&(o.define=define)},s(!0);function s(o){if(!(!r||!r.document)){i.set("packaged",o||n.packaged||e.packaged||r.define&&define.packaged);var l={},c="",u=document.currentScript||document._currentScript,d=u&&u.ownerDocument||document;u&&u.src&&(c=u.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var h=d.getElementsByTagName("script"),m=0;m ["+this.end.row+"/"+this.end.column+"]"},r.prototype.contains=function(s,a){return this.compare(s,a)==0},r.prototype.compareRange=function(s){var a,o=s.end,l=s.start;return a=this.compare(o.row,o.column),a==1?(a=this.compare(l.row,l.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(l.row,l.column),a==-1?-1:a==1?42:0)},r.prototype.comparePoint=function(s){return this.compare(s.row,s.column)},r.prototype.containsRange=function(s){return this.comparePoint(s.start)==0&&this.comparePoint(s.end)==0},r.prototype.intersects=function(s){var a=this.compareRange(s);return a==-1||a==0||a==1},r.prototype.isEnd=function(s,a){return this.end.row==s&&this.end.column==a},r.prototype.isStart=function(s,a){return this.start.row==s&&this.start.column==a},r.prototype.setStart=function(s,a){typeof s=="object"?(this.start.column=s.column,this.start.row=s.row):(this.start.row=s,this.start.column=a)},r.prototype.setEnd=function(s,a){typeof s=="object"?(this.end.column=s.column,this.end.row=s.row):(this.end.row=s,this.end.column=a)},r.prototype.inside=function(s,a){return this.compare(s,a)==0?!(this.isEnd(s,a)||this.isStart(s,a)):!1},r.prototype.insideStart=function(s,a){return this.compare(s,a)==0?!this.isEnd(s,a):!1},r.prototype.insideEnd=function(s,a){return this.compare(s,a)==0?!this.isStart(s,a):!1},r.prototype.compare=function(s,a){return!this.isMultiLine()&&s===this.start.row?athis.end.column?1:0:sthis.end.row?1:this.start.row===s?a>=this.start.column?0:-1:this.end.row===s?a<=this.end.column?0:1:0},r.prototype.compareStart=function(s,a){return this.start.row==s&&this.start.column==a?-1:this.compare(s,a)},r.prototype.compareEnd=function(s,a){return this.end.row==s&&this.end.column==a?1:this.compare(s,a)},r.prototype.compareInside=function(s,a){return this.end.row==s&&this.end.column==a?1:this.start.row==s&&this.start.column==a?-1:this.compare(s,a)},r.prototype.clipRows=function(s,a){if(this.end.row>a)var o={row:a+1,column:0};else if(this.end.rowa)var l={row:a+1,column:0};else if(this.start.row1?(E++,E>4&&(E=1)):E=1,r.isIE){var S=Math.abs(b.clientX-T)>5||Math.abs(b.clientY-M)>5;(!D||S)&&(E=1),D&&clearTimeout(D),D=setTimeout(function(){D=null},C[E-1]||600),E==1&&(T=b.clientX,M=b.clientY)}if(b._clicks=E,k[x]("mousedown",b),E>4)E=0;else if(E>1)return k[x](_[E],b)}Array.isArray(w)||(w=[w]),w.forEach(function(b){d(b,"mousedown",p,y)})};function m(w){return 0|(w.ctrlKey?1:0)|(w.altKey?2:0)|(w.shiftKey?4:0)|(w.metaKey?8:0)}t.getModifierString=function(w){return i.KEY_MODS[m(w)]};function f(w,C,k){var x=m(C);if(!k&&C.code&&(k=i.$codeToKeyCode[C.code]||k),!r.isMac&&s){if(C.getModifierState&&(C.getModifierState("OS")||C.getModifierState("Win"))&&(x|=8),s.altGr)if((3&x)!=3)s.altGr=0;else return;if(k===18||k===17){var y=C.location;if(k===17&&y===1)s[k]==1&&(a=C.timeStamp);else if(k===18&&x===3&&y===2){var E=C.timeStamp-a;E<50&&(s.altGr=!0)}}}if(k in i.MODIFIER_KEYS&&(k=-1),!(!x&&k===13&&C.location===3&&(w(C,x,-k),C.defaultPrevented))){if(r.isChromeOS&&x&8){if(w(C,x,k),C.defaultPrevented)return;x&=-9}return!x&&!(k in i.FUNCTION_KEYS)&&!(k in i.PRINTABLE_KEYS)?!1:w(C,x,k)}}t.addCommandKeyListener=function(w,C,k){var x=null;d(w,"keydown",function(y){s[y.keyCode]=(s[y.keyCode]||0)+1;var E=f(C,y,y.keyCode);return x=y.defaultPrevented,E},k),d(w,"keypress",function(y){x&&(y.ctrlKey||y.altKey||y.shiftKey||y.metaKey)&&(t.stopEvent(y),x=null)},k),d(w,"keyup",function(y){s[y.keyCode]=null},k),s||(g(),d(window,"focus",g))};function g(){s=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!r.isOldIE){var v=1;t.nextTick=function(w,C){C=C||window;var k="zero-timeout-message-"+v++,x=function(y){y.data==k&&(t.stopPropagation(y),h(C,"message",x),w())};d(C,"message",x),C.postMessage(k,"*")}}t.$idleBlocked=!1,t.onIdle=function(w,C){return setTimeout(function k(){t.$idleBlocked?setTimeout(k,100):w()},C)},t.$idleBlockId=null,t.blockIdle=function(w){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},w||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(w){setTimeout(w,17)}});ace.define("ace/clipboard",["require","exports","module"],function(n,t,e){"use strict";var i;e.exports={lineMode:!1,pasteCancelled:function(){return i&&i>Date.now()-50?!0:i=!1},cancel:function(){i=Date.now()}}});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(n,t,e){"use strict";var i=n("../lib/event"),r=n("../config").nls,s=n("../lib/useragent"),a=n("../lib/dom"),o=n("../lib/lang"),l=n("../clipboard"),c=s.isChrome<18,u=s.isIE,d=s.isChrome>63,h=400,m=n("../lib/keys"),f=m.KEY_MODS,g=s.isIOS,v=g?/\s/:/\n/,w=s.isMobile,C;C=function(k,x){var y=a.createElement("textarea");y.className="ace_text-input",y.setAttribute("wrap","off"),y.setAttribute("autocorrect","off"),y.setAttribute("autocapitalize","off"),y.setAttribute("spellcheck","false"),y.style.opacity="0",k.insertBefore(y,k.firstChild);var E=!1,T=!1,M=!1,D=!1,_="";w||(y.style.fontSize="1px");var p=!1,b=!1,S="",I=0,A=0,R=0,O=Number.MAX_SAFE_INTEGER,U=Number.MIN_SAFE_INTEGER,P=0;try{var W=document.activeElement===y}catch{}this.setNumberOfExtraLines=function(H){if(O=Number.MAX_SAFE_INTEGER,U=Number.MIN_SAFE_INTEGER,H<0){P=0;return}P=H},this.setAriaLabel=function(){var H="";if(x.$textInputAriaLabel&&(H+="".concat(x.$textInputAriaLabel,", ")),x.session){var re=x.session.selection.cursor.row;H+=r("text-input.aria-label","Cursor at row $0",[re+1])}y.setAttribute("aria-label",H)},this.setAriaOptions=function(H){H.activeDescendant?(y.setAttribute("aria-haspopup","true"),y.setAttribute("aria-autocomplete",H.inline?"both":"list"),y.setAttribute("aria-activedescendant",H.activeDescendant)):(y.setAttribute("aria-haspopup","false"),y.setAttribute("aria-autocomplete","both"),y.removeAttribute("aria-activedescendant")),H.role&&y.setAttribute("role",H.role),H.setLabel&&(y.setAttribute("aria-roledescription",r("text-input.aria-roledescription","editor")),this.setAriaLabel())},this.setAriaOptions({role:"textbox"}),i.addListener(y,"blur",function(H){b||(x.onBlur(H),W=!1)},x),i.addListener(y,"focus",function(H){if(!b){if(W=!0,s.isEdge)try{if(!document.hasFocus())return}catch{}x.onFocus(H),s.isEdge?setTimeout(K):K()}},x),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:x.renderer.enableKeyboardAccessibility}),_||d||this.$focusScroll=="browser")return y.focus({preventScroll:!0});var H=y.style.top;y.style.position="fixed",y.style.top="0px";try{var re=y.getBoundingClientRect().top!=0}catch{return}var de=[];if(re)for(var ze=y.parentElement;ze&&ze.nodeType==1;)de.push(ze),ze.setAttribute("ace_nocontext","true"),!ze.parentElement&&ze.getRootNode?ze=ze.getRootNode().host:ze=ze.parentElement;y.focus({preventScroll:!0}),re&&de.forEach(function(lt){lt.removeAttribute("ace_nocontext")}),setTimeout(function(){y.style.position="",y.style.top=="0px"&&(y.style.top=H)},0)},this.blur=function(){y.blur()},this.isFocused=function(){return W},x.on("beforeEndOperation",function(){var H=x.curOp,re=H&&H.command&&H.command.name;if(re!="insertstring"){var de=re&&(H.docChanged||H.selectionChanged);M&&de&&(S=y.value="",En()),K()}}),x.on("changeSelection",this.setAriaLabel);var V=function(H,re){for(var de=re,ze=1;ze<=H-O&&ze<2*P+1;ze++)de+=x.session.getLine(H-ze).length+1;return de},K=g?function(H){if(!(!W||E&&!H||D)){H||(H="");var re=` - ab`+H+`cde fg -`;re!=y.value&&(y.value=S=re);var de=4,ze=4+(H.length||(x.selection.isEmpty()?0:1));(I!=de||A!=ze)&&y.setSelectionRange(de,ze),I=de,A=ze}}:function(){if(!(M||D)&&!(!W&&!Re)){M=!0;var H=0,re=0,de="";if(x.session){var ze=x.selection,lt=ze.getRange(),At=ze.cursor.row;At===U+1?(O=U+1,U=O+2*P):At===O-1?(U=O-1,O=U-2*P):(AtU+1)&&(O=At>P?At-P:0,U=At>P?At+P:2*P);for(var Vt=[],Lt=O;Lt<=U;Lt++)Vt.push(x.session.getLine(Lt));if(de=Vt.join(` -`),H=V(lt.start.row,lt.start.column),re=V(lt.end.row,lt.end.column),lt.start.rowU){var kt=x.session.getLine(U+1);re=lt.end.row>U+1?kt.length:lt.end.column,re+=de.length+1,de=de+` -`+kt}else w&&At>0&&(de=` -`+de,re+=1,H+=1);de.length>h&&(H=S.length&&H.value===S&&S&&H.selectionEnd!==A},q=function(H){M||(E?E=!1:Q(y)?(x.selectAll(),K()):w&&y.selectionStart!=I&&K())},ce=null;this.setInputHandler=function(H){ce=H},this.getInputHandler=function(){return ce};var Re=!1,ve=function(H,re){if(Re&&(Re=!1),T)return K(),H&&x.onPaste(H),T=!1,"";for(var de=y.selectionStart,ze=y.selectionEnd,lt=I,At=S.length-A,Vt=H,Lt=H.length-de,Bt=H.length-ze,kt=0;lt>0&&S[kt]==H[kt];)kt++,lt--;for(Vt=Vt.slice(kt),kt=1;At>0&&S.length-kt>I-1&&S[S.length-kt]==H[H.length-kt];)kt++,At--;Lt-=kt-1,Bt-=kt-1;var Qi=Vt.length-kt+1;if(Qi<0&&(lt=-Qi,Qi=0),Vt=Vt.slice(0,Qi),!re&&!Vt&&!Lt&&!lt&&!At&&!Bt)return"";D=!0;var tc=!1;return s.isAndroid&&Vt==". "&&(Vt=" ",tc=!0),Vt&&!lt&&!At&&!Lt&&!Bt||p?x.onTextInput(Vt):x.onTextInput(Vt,{extendLeft:lt,extendRight:At,restoreStart:Lt,restoreEnd:Bt}),D=!1,S=H,I=de,A=ze,R=Bt,tc?` -`:Vt},ae=function(H){if(M)return St();if(H&&H.inputType){if(H.inputType=="historyUndo")return x.execCommand("undo");if(H.inputType=="historyRedo")return x.execCommand("redo")}var re=y.value,de=ve(re,!0);(re.length>h+100||v.test(de)||w&&I<1&&I==A)&&K()},we=function(H,re,de){var ze=H.clipboardData||window.clipboardData;if(!(!ze||c)){var lt=u||de?"Text":"text/plain";try{return re?ze.setData(lt,re)!==!1:ze.getData(lt)}catch(At){if(!de)return we(At,re,!0)}}},Ie=function(H,re){var de=x.getCopyText();if(!de)return i.preventDefault(H);we(H,de)?(g&&(K(de),E=de,setTimeout(function(){E=!1},10)),re?x.onCut():x.onCopy(),i.preventDefault(H)):(E=!0,y.value=de,y.select(),setTimeout(function(){E=!1,K(),re?x.onCut():x.onCopy()}))},rt=function(H){Ie(H,!0)},dt=function(H){Ie(H,!1)},mt=function(H){var re=we(H);l.pasteCancelled()||(typeof re=="string"?(re&&x.onPaste(re,H),s.isIE&&setTimeout(K),i.preventDefault(H)):(y.value="",T=!0))};i.addCommandKeyListener(y,function(H,re,de){if(!M)return x.onCommandKey(H,re,de)},x),i.addListener(y,"select",q,x),i.addListener(y,"input",ae,x),i.addListener(y,"cut",rt,x),i.addListener(y,"copy",dt,x),i.addListener(y,"paste",mt,x),(!("oncut"in y)||!("oncopy"in y)||!("onpaste"in y))&&i.addListener(k,"keydown",function(H){if(!(s.isMac&&!H.metaKey||!H.ctrlKey))switch(H.keyCode){case 67:dt(H);break;case 86:mt(H);break;case 88:rt(H);break}},x);var Ge=function(H){if(!(M||!x.onCompositionStart||x.$readOnly)&&(M={},!p)){H.data&&(M.useTextareaForIME=!1),setTimeout(St,0),x._signal("compositionStart"),x.on("mousedown",vr);var re=x.getSelectionRange();re.end.row=re.start.row,re.end.column=re.start.column,M.markerRange=re,M.selectionStart=I,x.onCompositionStart(M),M.useTextareaForIME?(S=y.value="",I=0,A=0):(y.msGetInputContext&&(M.context=y.msGetInputContext()),y.getInputContext&&(M.context=y.getInputContext()))}},St=function(){if(!(!M||!x.onCompositionUpdate||x.$readOnly)){if(p)return vr();if(M.useTextareaForIME)x.onCompositionUpdate(y.value);else{var H=y.value;ve(H),M.markerRange&&(M.context&&(M.markerRange.start.column=M.selectionStart=M.context.compositionStartOffset),M.markerRange.end.column=M.markerRange.start.column+A-M.selectionStart+R)}}},En=function(H){!x.onCompositionEnd||x.$readOnly||(M=!1,x.onCompositionEnd(),x.off("mousedown",vr),H&&ae())};function vr(){b=!0,y.blur(),y.focus(),b=!1}var dn=o.delayedCall(St,50).schedule.bind(null,null);function ot(H){H.keyCode==27&&y.value.lengthA&&S[Bt]==` -`?kt=m.end:LtA&&S.slice(0,Bt).split(` -`).length>2?kt=m.down:Bt>A&&S[Bt-1]==" "?(kt=m.right,Qi=f.option):(Bt>A||Bt==A&&A!=I&&Lt==Bt)&&(kt=m.right),Lt!==Bt&&(Qi|=f.shift),kt){var tc=re.onCommandKey({},Qi,kt);if(!tc&&re.commands){kt=m.keyCodeToString(kt);var yC=re.commands.findKeyCommand(Qi,kt);yC&&re.execCommand(yC)}I=Lt,A=Bt,K("")}}};document.addEventListener("selectionchange",At),re.on("destroy",function(){document.removeEventListener("selectionchange",At)})}this.destroy=function(){y.parentElement&&y.parentElement.removeChild(y)}},t.TextInput=C,t.$setUserAgentForTests=function(k,x){w=k,g=x}});ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(n,t,e){"use strict";var i=n("../lib/useragent"),r=0,s=550,a=function(){function c(u){u.$clickSelection=null;var d=u.editor;d.setDefaultHandler("mousedown",this.onMouseDown.bind(u)),d.setDefaultHandler("dblclick",this.onDoubleClick.bind(u)),d.setDefaultHandler("tripleclick",this.onTripleClick.bind(u)),d.setDefaultHandler("quadclick",this.onQuadClick.bind(u)),d.setDefaultHandler("mousewheel",this.onMouseWheel.bind(u));var h=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];h.forEach(function(m){u[m]=this[m]},this),u.selectByLines=this.extendSelectionBy.bind(u,"getLineRange"),u.selectByWords=this.extendSelectionBy.bind(u,"getWordRange")}return c.prototype.onMouseDown=function(u){var d=u.inSelection(),h=u.getDocumentPosition();this.mousedownEvent=u;var m=this.editor,f=u.getButton();if(f!==0){var g=m.getSelectionRange(),v=g.isEmpty();(v||f==1)&&m.selection.moveToPosition(h),f==2&&(m.textInput.onContextMenu(u.domEvent),i.isMozilla||u.preventDefault());return}if(this.mousedownEvent.time=Date.now(),d&&!m.isFocused()&&(m.focus(),this.$focusTimeout&&!this.$clickSelection&&!m.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(u);return}return this.captureMouse(u),this.startSelect(h,u.domEvent._clicks>1),u.preventDefault()},c.prototype.startSelect=function(u,d){u=u||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var h=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?h.selection.selectToPosition(u):d||h.selection.moveToPosition(u),d||this.select(),h.setStyle("ace_selecting"),this.setState("select"))},c.prototype.select=function(){var u,d=this.editor,h=d.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(h);if(m==-1)u=this.$clickSelection.end;else if(m==1)u=this.$clickSelection.start;else{var f=l(this.$clickSelection,h);h=f.cursor,u=f.anchor}d.selection.setSelectionAnchor(u.row,u.column)}d.selection.selectToPosition(h),d.renderer.scrollCursorIntoView()},c.prototype.extendSelectionBy=function(u){var d,h=this.editor,m=h.renderer.screenToTextCoordinates(this.x,this.y),f=h.selection[u](m.row,m.column);if(this.$clickSelection){var g=this.$clickSelection.comparePoint(f.start),v=this.$clickSelection.comparePoint(f.end);if(g==-1&&v<=0)d=this.$clickSelection.end,(f.end.row!=m.row||f.end.column!=m.column)&&(m=f.start);else if(v==1&&g>=0)d=this.$clickSelection.start,(f.start.row!=m.row||f.start.column!=m.column)&&(m=f.end);else if(g==-1&&v==1)m=f.end,d=f.start;else{var w=l(this.$clickSelection,m);m=w.cursor,d=w.anchor}h.selection.setSelectionAnchor(d.row,d.column)}h.selection.selectToPosition(m),h.renderer.scrollCursorIntoView()},c.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},c.prototype.focusWait=function(){var u=o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),d=Date.now();(u>r||d-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},c.prototype.onDoubleClick=function(u){var d=u.getDocumentPosition(),h=this.editor,m=h.session,f=m.getBracketRange(d);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=h.selection.getWordRange(d.row,d.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},c.prototype.onTripleClick=function(u){var d=u.getDocumentPosition(),h=this.editor;this.setState("selectByLines");var m=h.getSelectionRange();m.isMultiLine()&&m.contains(d.row,d.column)?(this.$clickSelection=h.selection.getLineRange(m.start.row),this.$clickSelection.end=h.selection.getLineRange(m.end.row).end):this.$clickSelection=h.selection.getLineRange(d.row),this.select()},c.prototype.onQuadClick=function(u){var d=this.editor;d.selectAll(),this.$clickSelection=d.getSelectionRange(),this.setState("selectAll")},c.prototype.onMouseWheel=function(u){if(!u.getAccelKey()){u.getShiftKey()&&u.wheelY&&!u.wheelX&&(u.wheelX=u.wheelY,u.wheelY=0);var d=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var h=this.$lastScroll,m=u.domEvent.timeStamp,f=m-h.t,g=f?u.wheelX/f:h.vx,v=f?u.wheelY/f:h.vy;f=1&&d.renderer.isScrollableBy(u.wheelX*u.speed,0)&&(C=!0),w<=1&&d.renderer.isScrollableBy(0,u.wheelY*u.speed)&&(C=!0),C)h.allowed=m;else if(m-h.alloweds.clientHeight;a||r.preventDefault()}});ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var f=function(g,v){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(w,C){w.__proto__=C}||function(w,C){for(var k in C)Object.prototype.hasOwnProperty.call(C,k)&&(w[k]=C[k])},f(g,v)};return function(g,v){if(typeof v!="function"&&v!==null)throw new TypeError("Class extends value "+String(v)+" is not a constructor or null");f(g,v);function w(){this.constructor=g}g.prototype=v===null?Object.create(v):(w.prototype=v.prototype,new w)}}(),r=this&&this.__values||function(f){var g=typeof Symbol=="function"&&Symbol.iterator,v=g&&f[g],w=0;if(v)return v.call(f);if(f&&typeof f.length=="number")return{next:function(){return f&&w>=f.length&&(f=void 0),{value:f&&f[w++],done:!f}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("./lib/dom"),a=n("./lib/event"),o=n("./range").Range,l=n("./lib/scroll").preventParentScroll,c="ace_tooltip",u=function(){function f(g){this.isOpen=!1,this.$element=null,this.$parentNode=g}return f.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},f.prototype.getElement=function(){return this.$element||this.$init()},f.prototype.setText=function(g){this.getElement().textContent=g},f.prototype.setHtml=function(g){this.getElement().innerHTML=g},f.prototype.setPosition=function(g,v){this.getElement().style.left=g+"px",this.getElement().style.top=v+"px"},f.prototype.setClassName=function(g){s.addCssClass(this.getElement(),g)},f.prototype.setTheme=function(g){this.$element.className=c+" "+(g.isDark?"ace_dark ":"")+(g.cssClass||"")},f.prototype.show=function(g,v,w){g!=null&&this.setText(g),v!=null&&w!=null&&this.setPosition(v,w),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},f.prototype.hide=function(g){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},f.prototype.getHeight=function(){return this.getElement().offsetHeight},f.prototype.getWidth=function(){return this.getElement().offsetWidth},f.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},f}(),d=function(){function f(){this.popups=[]}return f.prototype.addPopup=function(g){this.popups.push(g),this.updatePopups()},f.prototype.removePopup=function(g){var v=this.popups.indexOf(g);v!==-1&&(this.popups.splice(v,1),this.updatePopups())},f.prototype.updatePopups=function(){var g,v,w,C;this.popups.sort(function(p,b){return b.priority-p.priority});var k=[];try{for(var x=r(this.popups),y=x.next();!y.done;y=x.next()){var E=y.value,T=!0;try{for(var M=(w=void 0,r(k)),D=M.next();!D.done;D=M.next()){var _=D.value;if(this.doPopupsOverlap(_,E)){T=!1;break}}}catch(p){w={error:p}}finally{try{D&&!D.done&&(C=M.return)&&C.call(M)}finally{if(w)throw w.error}}T?k.push(E):E.hide()}}catch(p){g={error:p}}finally{try{y&&!y.done&&(v=x.return)&&v.call(x)}finally{if(g)throw g.error}}},f.prototype.doPopupsOverlap=function(g,v){var w=g.getElement().getBoundingClientRect(),C=v.getElement().getBoundingClientRect();return w.leftC.left&&w.topC.top},f}(),h=new d;t.popupManager=h,t.Tooltip=u;var m=function(f){i(g,f);function g(v){v===void 0&&(v=document.body);var w=f.call(this,v)||this;w.timeout=void 0,w.lastT=0,w.idleTime=350,w.lastEvent=void 0,w.onMouseOut=w.onMouseOut.bind(w),w.onMouseMove=w.onMouseMove.bind(w),w.waitForHover=w.waitForHover.bind(w),w.hide=w.hide.bind(w);var C=w.getElement();return C.style.whiteSpace="pre-wrap",C.style.pointerEvents="auto",C.addEventListener("mouseout",w.onMouseOut),C.tabIndex=-1,C.addEventListener("blur",function(){C.contains(document.activeElement)||this.hide()}.bind(w)),C.addEventListener("wheel",l),w}return g.prototype.addToEditor=function(v){v.on("mousemove",this.onMouseMove),v.on("mousedown",this.hide),v.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},g.prototype.removeFromEditor=function(v){v.off("mousemove",this.onMouseMove),v.off("mousedown",this.hide),v.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},g.prototype.onMouseMove=function(v,w){this.lastEvent=v,this.lastT=Date.now();var C=w.$mouseHandler.isMousePressed;if(this.isOpen){var k=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(k.row,k.column)||C||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||C||(this.lastEvent=v,this.timeout=setTimeout(this.waitForHover,this.idleTime))},g.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var v=Date.now()-this.lastT;if(this.idleTime-v>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-v);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},g.prototype.isOutsideOfText=function(v){var w=v.editor,C=v.getDocumentPosition(),k=w.session.getLine(C.row);if(C.column==k.length){var x=w.renderer.pixelToScreenCoordinates(v.clientX,v.clientY),y=w.session.documentToScreenPosition(C.row,C.column);if(y.column!=x.column||y.row!=x.row)return!0}return!1},g.prototype.setDataProvider=function(v){this.$gatherData=v},g.prototype.showForRange=function(v,w,C,k){var x=10;if(!(k&&k!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var y=v.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(y.theme)),this.isOpen=!0,this.addMarker(w,v.session),this.range=o.fromPoints(w.start,w.end);var E=y.textToScreenCoordinates(w.start.row,w.start.column),T=y.scroller.getBoundingClientRect();E.pageX=h.length&&(h=void 0),{value:h&&h[g++],done:!h}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("../lib/dom"),a=n("../lib/event"),o=n("../tooltip").Tooltip,l=n("../config").nls,c=n("../lib/lang");function u(h){var m=h.editor,f=m.renderer.$gutterLayer,g=new d(m);h.editor.setDefaultHandler("guttermousedown",function(y){if(!(!m.isFocused()||y.getButton()!=0)){var E=f.getRegion(y);if(E!="foldWidgets"){var T=y.getDocumentPosition().row,M=m.session.selection;if(y.getShiftKey())M.selectTo(T,0);else{if(y.domEvent.detail==2)return m.selectAll(),y.preventDefault();h.$clickSelection=m.selection.getLineRange(T)}return h.setState("selectByLines"),h.captureMouse(y),y.preventDefault()}}});var v,w;function C(){var y=w.getDocumentPosition().row,E=m.session.getLength();if(y==E){var T=m.renderer.pixelToScreenCoordinates(0,w.y).row,M=w.$pos;if(T>m.session.documentToScreenRow(M.row,M.column))return k()}if(g.showTooltip(y),!!g.isOpen)if(m.on("mousewheel",k),h.$tooltipFollowsMouse)x(w);else{var D=w.getGutterRow(),_=f.$lines.get(D);if(_){var p=_.element.querySelector(".ace_gutter_annotation"),b=p.getBoundingClientRect(),S=g.getElement().style;S.left=b.right+"px",S.top=b.bottom+"px"}else x(w)}}function k(){v&&(v=clearTimeout(v)),g.isOpen&&(g.hideTooltip(),m.off("mousewheel",k))}function x(y){g.setPosition(y.x,y.y)}h.editor.setDefaultHandler("guttermousemove",function(y){var E=y.domEvent.target||y.domEvent.srcElement;if(s.hasCssClass(E,"ace_fold-widget"))return k();g.isOpen&&h.$tooltipFollowsMouse&&x(y),w=y,!v&&(v=setTimeout(function(){v=null,w&&!h.isMousePressed?C():k()},50))}),a.addListener(m.renderer.$gutter,"mouseout",function(y){w=null,!(!g.isOpen||v)&&(v=setTimeout(function(){v=null,k()},50))},m),m.on("changeSession",k),m.on("input",k)}t.GutterHandler=u;var d=function(h){i(m,h);function m(f){var g=h.call(this,f.container)||this;return g.editor=f,g}return m.prototype.setPosition=function(f,g){var v=window.innerWidth||document.documentElement.clientWidth,w=window.innerHeight||document.documentElement.clientHeight,C=this.getWidth(),k=this.getHeight();f+=15,g+=15,f+C>v&&(f-=f+C-v),g+k>w&&(g-=20+k),o.prototype.setPosition.call(this,f,g)},Object.defineProperty(m,"annotationLabels",{get:function(){return{error:{singular:l("gutter-tooltip.aria-label.error.singular","error"),plural:l("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:l("gutter-tooltip.aria-label.security.singular","security finding"),plural:l("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:l("gutter-tooltip.aria-label.warning.singular","warning"),plural:l("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:l("gutter-tooltip.aria-label.info.singular","information message"),plural:l("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:l("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:l("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),m.prototype.showTooltip=function(f){var g,v=this.editor.renderer.$gutterLayer,w=v.$annotations[f],C;w?C={displayText:Array.from(w.displayText),type:Array.from(w.type)}:C={displayText:[],type:[]};var k=v.session.getFoldLine(f);if(k&&v.$showFoldedAnnotations){for(var x={error:[],security:[],warning:[],info:[],hint:[]},y={error:1,security:2,warning:3,info:4,hint:5},E,T=f+1;T<=k.end.row;T++)if(v.$annotations[T])for(var M=0;Ml?_=null:Q-_>=o&&(h.renderer.scrollCursorIntoView(),_=null)}}function S(V,K){var Q=Date.now(),q=h.renderer.layerConfig.lineHeight,ce=h.renderer.layerConfig.characterWidth,Re=h.renderer.scroller.getBoundingClientRect(),ve={x:{left:w-Re.left,right:Re.right-w},y:{top:C-Re.top,bottom:Re.bottom-C}},ae=Math.min(ve.x.left,ve.x.right),we=Math.min(ve.y.top,ve.y.bottom),Ie={row:V.row,column:V.column};ae/ce<=2&&(Ie.column+=ve.x.left=a&&h.renderer.scrollCursorIntoView(Ie):D=Q:D=null}function I(){var V=y;y=h.renderer.screenToTextCoordinates(w,C),b(y,V),S(y,V)}function A(){x=h.selection.toOrientedRange(),v=h.session.addMarker(x,"ace_selection",h.getSelectionStyle()),h.clearSelection(),h.isFocused()&&h.renderer.$cursorLayer.setBlinking(!1),clearInterval(k),I(),k=setInterval(I,20),E=0,r.addListener(document,"mousemove",U)}function R(){clearInterval(k),h.session.removeMarker(v),v=null,h.selection.fromOrientedRange(x),h.isFocused()&&!M&&h.$resetCursorStyle(),x=null,y=null,E=0,D=null,_=null,r.removeListener(document,"mousemove",U)}var O=null;function U(){O==null&&(O=setTimeout(function(){O!=null&&v&&R()},20))}function P(V){var K=V.types;return!K||Array.prototype.some.call(K,function(Q){return Q=="text/plain"||Q=="Text"})}function W(V){var K=["copy","copymove","all","uninitialized"],Q=["move","copymove","linkmove","all","uninitialized"],q=s.isMac?V.altKey:V.ctrlKey,ce="uninitialized";try{ce=V.dataTransfer.effectAllowed.toLowerCase()}catch{}var Re="none";return q&&K.indexOf(ce)>=0?Re="copy":Q.indexOf(ce)>=0?Re="move":K.indexOf(ce)>=0&&(Re="copy"),Re}}(function(){this.dragWait=function(){var d=Date.now()-this.mousedownEvent.time;d>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var d=this.editor.container;d.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(d){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var d=this.editor,h=d.container;h.draggable=!0,d.renderer.$cursorLayer.setBlinking(!1),d.setStyle("ace_dragging");var m=s.isWin?"default":"move";d.renderer.setCursorStyle(m),this.setState("dragReady")},this.onMouseDrag=function(d){var h=this.editor.container;if(s.isIE&&this.state=="dragReady"){var m=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>3&&h.dragDrop()}if(this.state==="dragWait"){var m=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>0&&(h.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(d){if(this.$dragEnabled){this.mousedownEvent=d;var h=this.editor,m=d.inSelection(),f=d.getButton(),g=d.domEvent.detail||1;if(g===1&&f===0&&m){if(d.editor.inMultiSelectMode&&(d.getAccelKey()||d.getShiftKey()))return;this.mousedownEvent.time=Date.now();var v=d.domEvent.target||d.domEvent.srcElement;if("unselectable"in v&&(v.unselectable="on"),h.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var w=h.container;w.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(d,this.onMouseDrag.bind(this)),d.defaultPrevented=!0}}}}).call(c.prototype);function u(d,h,m,f){return Math.sqrt(Math.pow(m-d,2)+Math.pow(f-h,2))}t.DragdropHandler=c});ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(n,t,e){"use strict";var i=n("./mouse_event").MouseEvent,r=n("../lib/event"),s=n("../lib/dom");t.addTouchListeners=function(a,o){var l="scroll",c,u,d,h,m,f,g=0,v,w=0,C=0,k=0,x,y;function E(){var b=window.navigator&&window.navigator.clipboard,S=!1,I=function(){var O=o.getCopyText(),U=o.session.getUndoManager().hasUndo();y.replaceChild(s.buildDom(S?["span",!O&&A("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],O&&A("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],O&&A("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],b&&A("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],U&&A("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],A("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],A("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),y.firstChild)},A=function(O){return o.commands.canExecute(O,o)},R=function(O){var U=O.target.getAttribute("action");if(U=="more"||!S)return S=!S,I();U=="paste"?b.readText().then(function(P){o.execCommand(U,P)}):U&&((U=="cut"||U=="copy")&&(b?b.writeText(o.getCopyText()):document.execCommand("copy")),o.execCommand(U)),y.firstChild.style.display="none",S=!1,U!="openCommandPalette"&&o.focus()};y=s.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(O){l="menu",O.stopPropagation(),O.preventDefault(),o.textInput.focus()},ontouchend:function(O){O.stopPropagation(),O.preventDefault(),R(O)},onclick:R},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],o.container)}function T(){if(!o.getOption("enableMobileMenu")){y&&M();return}y||E();var b=o.selection.cursor,S=o.renderer.textToScreenCoordinates(b.row,b.column),I=o.renderer.textToScreenCoordinates(0,0).pageX,A=o.renderer.scrollLeft,R=o.container.getBoundingClientRect();y.style.top=S.pageY-R.top-3+"px",S.pageX-R.left=2?o.selection.getLineRange(v.row):o.session.getBracketRange(v);b&&!b.isEmpty()?o.selection.setRange(b):o.selection.selectWord(),l="wait"}r.addListener(a,"contextmenu",function(b){if(x){var S=o.textInput.getElement();S.focus()}},o),r.addListener(a,"touchstart",function(b){var S=b.touches;if(m||S.length>1){clearTimeout(m),m=null,d=-1,l="zoom";return}x=o.$mouseHandler.isMousePressed=!0;var I=o.renderer.layerConfig.lineHeight,A=o.renderer.layerConfig.lineHeight,R=b.timeStamp;h=R;var O=S[0],U=O.clientX,P=O.clientY;Math.abs(c-U)+Math.abs(u-P)>I&&(d=-1),c=b.clientX=U,u=b.clientY=P,C=k=0;var W=new i(b,o);if(v=W.getDocumentPosition(),R-d<500&&S.length==1&&!g)w++,b.preventDefault(),b.button=0,_();else{w=0;var V=o.selection.cursor,K=o.selection.isEmpty()?V:o.selection.anchor,Q=o.renderer.$cursorLayer.getPixelPosition(V,!0),q=o.renderer.$cursorLayer.getPixelPosition(K,!0),ce=o.renderer.scroller.getBoundingClientRect(),Re=o.renderer.layerConfig.offset,ve=o.renderer.scrollLeft,ae=function(rt,dt){return rt=rt/A,dt=dt/I-.75,rt*rt+dt*dt};if(b.clientXIe?"cursor":"anchor"),Ie<3.5?l="anchor":we<3.5?l="cursor":l="scroll",m=setTimeout(D,450)}d=R},o),r.addListener(a,"touchend",function(b){x=o.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),l=="zoom"?(l="",g=0):m?(o.selection.moveToPosition(v),g=0,T()):l=="scroll"?(p(),M()):T(),clearTimeout(m),m=null},o),r.addListener(a,"touchmove",function(b){m&&(clearTimeout(m),m=null);var S=b.touches;if(!(S.length>1||l=="zoom")){var I=S[0],A=c-I.clientX,R=u-I.clientY;if(l=="wait")if(A*A+R*R>4)l="cursor";else return b.preventDefault();c=I.clientX,u=I.clientY,b.clientX=I.clientX,b.clientY=I.clientY;var O=b.timeStamp,U=O-h;if(h=O,l=="scroll"){var P=new i(b,o);P.speed=1,P.wheelX=A,P.wheelY=R,10*Math.abs(A)0)if(En==16){for(ot=dn;ot-1){for(ot=dn;ot=0&&Ie[ue]==D;ue--)ae[ue]=s}}}function Q(ve,ae,we){if(!(a=ve){for(dt=rt+1;dt=ve;)dt++;for(mt=rt,Ge=dt-1;mt=ae.length||(dt=we[Ie-1])!=k&&dt!=x||(mt=ae[Ie+1])!=k&&mt!=x?y:(o&&(mt=x),mt==dt?mt:y);case p:return dt=Ie>0?we[Ie-1]:E,dt==k&&Ie+10&&we[Ie-1]==k)return k;if(o)return y;for(St=Ie+1,Ge=ae.length;St=1425&&En<=2303||En==64286;if(dt=ae[St],vr&&(dt==C||dt==M))return C}return Ie<1||(dt=ae[Ie-1])==E?y:we[Ie-1];case E:return o=!1,c=!0,s;case T:return u=!0,y;case I:case A:case O:case U:case R:o=!1;case P:return y}}function ce(ve){var ae=ve.charCodeAt(0),we=ae>>8;return we==0?ae>191?w:W[ae]:we==5?/[\u0591-\u05f4]/.test(ve)?C:w:we==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(ve)?S:/[\u0660-\u0669\u066b-\u066c]/.test(ve)?x:ae==1642?b:/[\u06f0-\u06f9]/.test(ve)?k:M:we==32&&ae<=8287?V[ae&255]:we==254&&ae>=65136?M:y}function Re(ve){return ve>="\u064B"&&ve<="\u0655"}t.L=w,t.R=C,t.EN=k,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\xB7",t.doBidiReorder=function(ve,ae,we){if(ve.length<2)return{};var Ie=ve.split(""),rt=new Array(Ie.length),dt=new Array(Ie.length),mt=[];s=we?v:g,K(Ie,mt,Ie.length,ae);for(var Ge=0;GeM&&ae[Ge]0&&Ie[Ge-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(Ie[Ge])&&(mt[Ge-1]=mt[Ge]=t.R_H,Ge++);Ie[Ie.length-1]===t.DOT&&(mt[Ie.length-1]=t.B),Ie[0]==="\u202B"&&(mt[0]=t.RLE);for(var Ge=0;Ge=0&&(l=this.session.$docRowCache[u])}return l},o.prototype.getSplitIndex=function(){var l=0,c=this.session.$screenRowCache;if(c.length)for(var u,d=this.session.$getRowCacheIndex(c,this.currentRow);this.currentRow-l>0&&(u=this.session.$getRowCacheIndex(c,this.currentRow-l-1),u===d);)d=u,l++;else l=this.currentRow;return l},o.prototype.updateRowLine=function(l,c){l===void 0&&(l=this.getDocumentRow());var u=l===this.session.getLength()-1,d=u?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(l),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var h=this.session.$wrapData[l];h&&(c===void 0&&(c=this.getSplitIndex()),c>0&&h.length?(this.wrapIndent=h.indent,this.wrapOffset=this.wrapIndent*this.charWidths[i.L],this.line=cc?this.session.getOverwrite()?l:l-1:c,d=i.getVisualFromLogicalIdx(u,this.bidiMap),h=this.bidiMap.bidiLevels,m=0;!this.session.getOverwrite()&&l<=c&&h[d]%2!==0&&d++;for(var f=0;fc&&h[d]%2===0&&(m+=this.charWidths[h[d]]),this.wrapIndent&&(m+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(m+=this.rtlLineOffset),m},o.prototype.getSelections=function(l,c){var u=this.bidiMap,d=u.bidiLevels,h,m=[],f=0,g=Math.min(l,c)-this.wrapIndent,v=Math.max(l,c)-this.wrapIndent,w=!1,C=!1,k=0;this.wrapIndent&&(f+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var x,y=0;y=g&&xd+f/2;){if(d+=f,h===m.length-1){f=0;break}f=this.charWidths[m[++h]]}return h>0&&m[h-1]%2!==0&&m[h]%2===0?(u0&&m[h-1]%2===0&&m[h]%2!==0?c=1+(u>d?this.bidiMap.logicalFromVisual[h]:this.bidiMap.logicalFromVisual[h-1]):this.isRtlDir&&h===m.length-1&&f===0&&m[h-1]%2===0||!this.isRtlDir&&h===0&&m[h]%2!==0?c=1+this.bidiMap.logicalFromVisual[h]:(h>0&&m[h-1]%2!==0&&f!==0&&h--,c=this.bidiMap.logicalFromVisual[h]),c===0&&this.isRtlDir&&c++,c+this.wrapIndent},o}();t.BidiHandler=a});ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/lang"),s=n("./lib/event_emitter").EventEmitter,a=n("./range").Range,o=function(){function l(c){this.session=c,this.doc=c.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var u=this;this.cursor.on("change",function(d){u.$cursorChanged=!0,u.$silent||u._emit("changeCursor"),!u.$isEmpty&&!u.$silent&&u._emit("changeSelection"),!u.$keepDesiredColumnOnChange&&d.old.column!=d.value.column&&(u.$desiredColumn=null)}),this.anchor.on("change",function(){u.$anchorChanged=!0,!u.$isEmpty&&!u.$silent&&u._emit("changeSelection")})}return l.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},l.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},l.prototype.getCursor=function(){return this.lead.getPosition()},l.prototype.setAnchor=function(c,u){this.$isEmpty=!1,this.anchor.setPosition(c,u)},l.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},l.prototype.getSelectionLead=function(){return this.lead.getPosition()},l.prototype.isBackwards=function(){var c=this.anchor,u=this.lead;return c.row>u.row||c.row==u.row&&c.column>u.column},l.prototype.getRange=function(){var c=this.anchor,u=this.lead;return this.$isEmpty?a.fromPoints(u,u):this.isBackwards()?a.fromPoints(u,c):a.fromPoints(c,u)},l.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},l.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},l.prototype.setRange=function(c,u){var d=u?c.end:c.start,h=u?c.start:c.end;this.$setSelection(d.row,d.column,h.row,h.column)},l.prototype.$setSelection=function(c,u,d,h){if(!this.$silent){var m=this.$isEmpty,f=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(c,u),this.cursor.setPosition(d,h),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||m!=this.$isEmpty||f)&&this._emit("changeSelection")}},l.prototype.$moveSelection=function(c){var u=this.lead;this.$isEmpty&&this.setSelectionAnchor(u.row,u.column),c.call(this)},l.prototype.selectTo=function(c,u){this.$moveSelection(function(){this.moveCursorTo(c,u)})},l.prototype.selectToPosition=function(c){this.$moveSelection(function(){this.moveCursorToPosition(c)})},l.prototype.moveTo=function(c,u){this.clearSelection(),this.moveCursorTo(c,u)},l.prototype.moveToPosition=function(c){this.clearSelection(),this.moveCursorToPosition(c)},l.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},l.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},l.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},l.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},l.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},l.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},l.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},l.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},l.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},l.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},l.prototype.getWordRange=function(c,u){if(typeof u>"u"){var d=c||this.lead;c=d.row,u=d.column}return this.session.getWordRange(c,u)},l.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},l.prototype.selectAWord=function(){var c=this.getCursor(),u=this.session.getAWordRange(c.row,c.column);this.setSelectionRange(u)},l.prototype.getLineRange=function(c,u){var d=typeof c=="number"?c:this.lead.row,h,m=this.session.getFoldLine(d);return m?(d=m.start.row,h=m.end.row):h=d,u===!0?new a(d,0,h,this.session.getLine(h).length):new a(d,0,h+1,0)},l.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},l.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},l.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},l.prototype.wouldMoveIntoSoftTab=function(c,u,d){var h=c.column,m=c.column+u;return d<0&&(h=c.column-u,m=c.column),this.session.isTabStop(c)&&this.doc.getLine(c.row).slice(h,m).split(" ").length-1==u},l.prototype.moveCursorLeft=function(){var c=this.lead.getPosition(),u;if(u=this.session.getFoldAt(c.row,c.column,-1))this.moveCursorTo(u.start.row,u.start.column);else if(c.column===0)c.row>0&&this.moveCursorTo(c.row-1,this.doc.getLine(c.row-1).length);else{var d=this.session.getTabSize();this.wouldMoveIntoSoftTab(c,d,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-d):this.moveCursorBy(0,-1)}},l.prototype.moveCursorRight=function(){var c=this.lead.getPosition(),u;if(u=this.session.getFoldAt(c.row,c.column,1))this.moveCursorTo(u.end.row,u.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(u.column=h)}}this.moveCursorTo(u.row,u.column)},l.prototype.moveCursorFileEnd=function(){var c=this.doc.getLength()-1,u=this.doc.getLine(c).length;this.moveCursorTo(c,u)},l.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},l.prototype.moveCursorLongWordRight=function(){var c=this.lead.row,u=this.lead.column,d=this.doc.getLine(c),h=d.substring(u);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var m=this.session.getFoldAt(c,u,1);if(m){this.moveCursorTo(m.end.row,m.end.column);return}if(this.session.nonTokenRe.exec(h)&&(u+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,h=d.substring(u)),u>=d.length){this.moveCursorTo(c,d.length),this.moveCursorRight(),c0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(m)&&(u-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(c,u)},l.prototype.$shortWordEndIndex=function(c){var u=0,d,h=/\s/,m=this.session.tokenRe;if(m.lastIndex=0,this.session.tokenRe.exec(c))u=this.session.tokenRe.lastIndex;else{for(;(d=c[u])&&h.test(d);)u++;if(u<1){for(m.lastIndex=0;(d=c[u])&&!m.test(d);)if(m.lastIndex=0,u++,h.test(d))if(u>2){u--;break}else{for(;(d=c[u])&&h.test(d);)u++;if(u>2)break}}}return m.lastIndex=0,u},l.prototype.moveCursorShortWordRight=function(){var c=this.lead.row,u=this.lead.column,d=this.doc.getLine(c),h=d.substring(u),m=this.session.getFoldAt(c,u,1);if(m)return this.moveCursorTo(m.end.row,m.end.column);if(u==d.length){var f=this.doc.getLength();do c++,h=this.doc.getLine(c);while(c0&&/^\s*$/.test(h));u=h.length,/\s+$/.test(h)||(h="")}var m=r.stringReverse(h),f=this.$shortWordEndIndex(m);return this.moveCursorTo(c,u-f)},l.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},l.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},l.prototype.moveCursorBy=function(c,u){var d=this.session.documentToScreenPosition(this.lead.row,this.lead.column),h;if(u===0&&(c!==0&&(this.session.$bidiHandler.isBidiRow(d.row,this.lead.row)?(h=this.session.$bidiHandler.getPosLeft(d.column),d.column=Math.round(h/this.session.$bidiHandler.charWidths[0])):h=d.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?d.column=this.$desiredColumn:this.$desiredColumn=d.column),c!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var m=this.session.lineWidgets[this.lead.row];c<0?c-=m.rowsAbove||0:c>0&&(c+=m.rowCount-(m.rowsAbove||0))}var f=this.session.screenToDocumentPosition(d.row+c,d.column,h);c!==0&&u===0&&f.row===this.lead.row&&(f.column,this.lead.column),this.moveCursorTo(f.row,f.column+u,u===0)},l.prototype.moveCursorToPosition=function(c){this.moveCursorTo(c.row,c.column)},l.prototype.moveCursorTo=function(c,u,d){var h=this.session.getFoldAt(c,u,1);h&&(c=h.start.row,u=h.start.column),this.$keepDesiredColumnOnChange=!0;var m=this.session.getLine(c);/[\uDC00-\uDFFF]/.test(m.charAt(u))&&m.charAt(u-1)&&(this.lead.row==c&&this.lead.column==u+1?u=u-1:u=u+1),this.lead.setPosition(c,u),this.$keepDesiredColumnOnChange=!1,d||(this.$desiredColumn=null)},l.prototype.moveCursorToScreen=function(c,u,d){var h=this.session.screenToDocumentPosition(c,u);this.moveCursorTo(h.row,h.column,d)},l.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},l.prototype.fromOrientedRange=function(c){this.setSelectionRange(c,c.cursor==c.start),this.$desiredColumn=c.desiredColumn||this.$desiredColumn},l.prototype.toOrientedRange=function(c){var u=this.getRange();return c?(c.start.column=u.start.column,c.start.row=u.start.row,c.end.column=u.end.column,c.end.row=u.end.row):c=u,c.cursor=this.isBackwards()?c.start:c.end,c.desiredColumn=this.$desiredColumn,c},l.prototype.getRangeOfMovements=function(c){var u=this.getCursor();try{c(this);var d=this.getCursor();return a.fromPoints(u,d)}catch{return a.fromPoints(u,u)}finally{this.moveCursorToPosition(u)}},l.prototype.toJSON=function(){if(this.rangeCount)var c=this.ranges.map(function(u){var d=u.clone();return d.isBackwards=u.cursor==u.start,d});else{var c=this.getRange();c.isBackwards=this.isBackwards()}return c},l.prototype.fromJSON=function(c){if(c.start==null)if(this.rangeList&&c.length>1){this.toSingleRange(c[0]);for(var u=c.length;u--;){var d=a.fromPoints(c[u].start,c[u].end);c[u].isBackwards&&(d.cursor=d.start),this.addRange(d,!0)}return}else c=c[0];this.rangeList&&this.toSingleRange(c),this.setSelectionRange(c,c.isBackwards)},l.prototype.isEqual=function(c){if((c.length||this.rangeCount)&&c.length!=this.rangeCount)return!1;if(!c.length||!this.ranges)return this.getRange().isEqual(c);for(var u=this.ranges.length;u--;)if(!this.ranges[u].isEqual(c[u]))return!1;return!0},l}();o.prototype.setSelectionAnchor=o.prototype.setAnchor,o.prototype.getSelectionAnchor=o.prototype.getAnchor,o.prototype.setSelectionRange=o.prototype.setRange,i.implement(o.prototype,s),t.Selection=o});ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(n,t,e){"use strict";var i=n("./lib/report_error").reportError,r=2e3,s=function(){function a(o){this.splitRegex,this.states=o,this.regExps={},this.matchMappings={};for(var l in this.states){for(var c=this.states[l],u=[],d=0,h=this.matchMappings[l]={defaultToken:"text"},m="g",f=[],g=0;g1?v.onMatch=this.$applyToken:v.onMatch=v.token),C>1&&(/\\\d/.test(v.regex)?w=v.regex.replace(/\\([0-9]+)/g,function(k,x){return"\\"+(parseInt(x,10)+d+1)}):(C=1,w=this.removeCapturingGroups(v.regex)),!v.splitRegex&&typeof v.token!="string"&&f.push(v)),h[d]=g,d+=C,u.push(w),v.onMatch||(v.onMatch=null)}}u.length||(h[0]=0,u.push("$")),f.forEach(function(k){k.splitRegex=this.createSplitterRegexp(k.regex,m)},this),this.regExps[l]=new RegExp("("+u.join(")|(")+")|($)",m)}}return a.prototype.$setMaxTokenCount=function(o){r=o|0},a.prototype.$applyToken=function(o){var l=this.splitRegex.exec(o).slice(1),c=this.token.apply(this,l);if(typeof c=="string")return[{type:c,value:o}];for(var u=[],d=0,h=c.length;dv){var T=o.substring(v,E-y.length);C.type==k?C.value+=T:(C.type&&g.push(C),C={type:k,value:T})}for(var M=0;Mr){for(w>2*o.length&&this.reportError("infinite loop with in ace tokenizer",{startState:l,line:o});v1&&c[0]!==u&&c.unshift("#tmp",u),{tokens:g,state:c.length?c:u}},a}();s.prototype.reportError=i,t.Tokenizer=s});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(n,t,e){"use strict";var i=n("../lib/deep_copy").deepCopy,r;r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(o,l){if(!l){for(var c in o)this.$rules[c]=o[c];return}for(var c in o){for(var u=o[c],d=0;d=this.$rowTokens.length;){if(this.$row+=1,a||(a=this.$session.getLength()),this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},s.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},s.prototype.getCurrentTokenRow=function(){return this.$row},s.prototype.getCurrentTokenColumn=function(){var a=this.$rowTokens,o=this.$tokenIndex,l=a[o].start;if(l!==void 0)return l;for(l=0;o>0;)o-=1,l+=a[o].value.length;return l},s.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},s.prototype.getCurrentTokenRange=function(){var a=this.$rowTokens[this.$tokenIndex],o=this.getCurrentTokenColumn();return new i(this.$row,o,this.$row,o+a.value.length)},s}();t.TokenIterator=r});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(n,t,e){"use strict";var i=n("../../lib/oop"),r=n("../behaviour").Behaviour,s=n("../../token_iterator").TokenIterator,a=n("../../lib/lang"),o=["text","paren.rparen","rparen","paren","punctuation.operator"],l=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],c,u={},d={'"':'"',"'":"'"},h=function(g){var v=-1;if(g.multiSelect&&(v=g.selection.index,u.rangeCount!=g.multiSelect.rangeCount&&(u={rangeCount:g.multiSelect.rangeCount})),u[v])return c=u[v];c=u[v]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},m=function(g,v,w,C){var k=g.end.row-g.start.row;return{text:w+v+C,selection:[0,g.start.column+1,k,g.end.column+(k?0:1)]}},f;f=function(g){g=g||{},this.add("braces","insertion",function(v,w,C,k,x){var y=C.getCursorPosition(),E=k.doc.getLine(y.row);if(x=="{"){h(C);var T=C.getSelectionRange(),M=k.doc.getTextRange(T),D=k.getTokenAt(y.row,y.column);if(M!==""&&M!=="{"&&C.getWrapBehavioursEnabled())return m(T,M,"{","}");if(D&&/(?:string)\.quasi|\.xml/.test(D.type)){var _=[/tag\-(?:open|name)/,/attribute\-name/];return _.some(function(O){return O.test(D.type)})||/(string)\.quasi/.test(D.type)&&D.value[y.column-D.start-1]!=="$"?void 0:(f.recordAutoInsert(C,k,"}"),{text:"{}",selection:[1,1]})}else if(f.isSaneInsertion(C,k))return/[\]\}\)]/.test(E[y.column])||C.inMultiSelectMode||g.braces?(f.recordAutoInsert(C,k,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(C,k,"{"),{text:"{",selection:[1,1]})}else if(x=="}"){h(C);var p=E.substring(y.column,y.column+1);if(p=="}"){var b=k.$findOpeningBracket("}",{column:y.column+1,row:y.row});if(b!==null&&f.isAutoInsertedClosing(y,E,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(x==` -`||x==`\r -`){h(C);var S="";f.isMaybeInsertedClosing(y,E)&&(S=a.stringRepeat("}",c.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var p=E.substring(y.column,y.column+1);if(p==="}"){var I=k.findMatchingBracket({row:y.row,column:y.column+1},"}");if(!I)return null;var A=this.$getIndent(k.getLine(I.row))}else if(S)var A=this.$getIndent(E);else{f.clearMaybeInsertedClosing();return}var R=A+k.getTabString();return{text:` -`+R+` -`+A+S,selection:[1,R.length,1,R.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(v,w,C,k,x){var y=k.doc.getTextRange(x);if(!x.isMultiLine()&&y=="{"){h(C);var E=k.doc.getLine(x.start.row),T=E.substring(x.end.column,x.end.column+1);if(T=="}")return x.end.column++,x;c.maybeInsertedBrackets--}}),this.add("parens","insertion",function(v,w,C,k,x){if(x=="("){h(C);var y=C.getSelectionRange(),E=k.doc.getTextRange(y);if(E!==""&&C.getWrapBehavioursEnabled())return m(y,E,"(",")");if(f.isSaneInsertion(C,k))return f.recordAutoInsert(C,k,")"),{text:"()",selection:[1,1]}}else if(x==")"){h(C);var T=C.getCursorPosition(),M=k.doc.getLine(T.row),D=M.substring(T.column,T.column+1);if(D==")"){var _=k.$findOpeningBracket(")",{column:T.column+1,row:T.row});if(_!==null&&f.isAutoInsertedClosing(T,M,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(v,w,C,k,x){var y=k.doc.getTextRange(x);if(!x.isMultiLine()&&y=="("){h(C);var E=k.doc.getLine(x.start.row),T=E.substring(x.start.column+1,x.start.column+2);if(T==")")return x.end.column++,x}}),this.add("brackets","insertion",function(v,w,C,k,x){if(x=="["){h(C);var y=C.getSelectionRange(),E=k.doc.getTextRange(y);if(E!==""&&C.getWrapBehavioursEnabled())return m(y,E,"[","]");if(f.isSaneInsertion(C,k))return f.recordAutoInsert(C,k,"]"),{text:"[]",selection:[1,1]}}else if(x=="]"){h(C);var T=C.getCursorPosition(),M=k.doc.getLine(T.row),D=M.substring(T.column,T.column+1);if(D=="]"){var _=k.$findOpeningBracket("]",{column:T.column+1,row:T.row});if(_!==null&&f.isAutoInsertedClosing(T,M,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(v,w,C,k,x){var y=k.doc.getTextRange(x);if(!x.isMultiLine()&&y=="["){h(C);var E=k.doc.getLine(x.start.row),T=E.substring(x.start.column+1,x.start.column+2);if(T=="]")return x.end.column++,x}}),this.add("string_dquotes","insertion",function(v,w,C,k,x){var y=k.$mode.$quotes||d;if(x.length==1&&y[x]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(x)!=-1)return;h(C);var E=x,T=C.getSelectionRange(),M=k.doc.getTextRange(T);if(M!==""&&(M.length!=1||!y[M])&&C.getWrapBehavioursEnabled())return m(T,M,E,E);if(!M){var D=C.getCursorPosition(),_=k.doc.getLine(D.row),p=_.substring(D.column-1,D.column),b=_.substring(D.column,D.column+1),S=k.getTokenAt(D.row,D.column),I=k.getTokenAt(D.row,D.column+1);if(p=="\\"&&S&&/escape/.test(S.type))return null;var A=S&&/string|escape/.test(S.type),R=!I||/string|escape/.test(I.type),O;if(b==E)O=A!==R,O&&/string\.end/.test(I.type)&&(O=!1);else{if(A&&!R||A&&R)return null;var U=k.$mode.tokenRe;U.lastIndex=0;var P=U.test(p);U.lastIndex=0;var W=U.test(b),V=k.$mode.$pairQuotesAfter,K=V&&V[E]&&V[E].test(p);if(!K&&P||W||b&&!/[\s;,.})\]\\]/.test(b))return null;var Q=_[D.column-2];if(p==E&&(Q==E||U.test(Q)))return null;O=!0}return{text:O?E+E:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(v,w,C,k,x){var y=k.$mode.$quotes||d,E=k.doc.getTextRange(x);if(!x.isMultiLine()&&y.hasOwnProperty(E)){h(C);var T=k.doc.getLine(x.start.row),M=T.substring(x.start.column+1,x.start.column+2);if(M==E)return x.end.column++,x}}),g.closeDocComment!==!1&&this.add("doc comment end","insertion",function(v,w,C,k,x){if(v==="doc-start"&&(x===` -`||x===`\r -`)&&C.selection.isEmpty()){var y=C.getCursorPosition();if(y.column===0)return;for(var E=k.doc.getLine(y.row),T=k.doc.getLine(y.row+1),M=k.getTokens(y.row),D=0,_=0;_=y.column){if(D===y.column){if(!/\.doc/.test(p.type))return;if(/\*\//.test(p.value)){var b=M[_+1];if(!b||!/\.doc/.test(b.type))return}}var S=y.column-(D-p.value.length),I=p.value.indexOf("*/"),A=p.value.indexOf("/**",I>-1?I+2:0);if(A!==-1&&S>A&&S=I&&S<=A||!/\.doc/.test(p.type))return;break}}var R=this.$getIndent(E);if(/\s*\*/.test(T))return/^\s*\*/.test(E)?{text:x+R+"* ",selection:[1,2+R.length,1,2+R.length]}:{text:x+R+" * ",selection:[1,3+R.length,1,3+R.length]};if(/\/\*\*/.test(E.substring(0,y.column)))return{text:x+R+" * "+x+" "+R+"*/",selection:[1,4+R.length,1,4+R.length]}}})},f.isSaneInsertion=function(g,v){var w=g.getCursorPosition(),C=new s(v,w.row,w.column);if(!this.$matchTokenType(C.getCurrentToken()||"text",o)){if(/[)}\]]/.test(g.session.getLine(w.row)[w.column]))return!0;var k=new s(v,w.row,w.column+1);if(!this.$matchTokenType(k.getCurrentToken()||"text",o))return!1}return C.stepForward(),C.getCurrentTokenRow()!==w.row||this.$matchTokenType(C.getCurrentToken()||"text",l)},f.$matchTokenType=function(g,v){return v.indexOf(g.type||g)>-1},f.recordAutoInsert=function(g,v,w){var C=g.getCursorPosition(),k=v.doc.getLine(C.row);this.isAutoInsertedClosing(C,k,c.autoInsertedLineEnd[0])||(c.autoInsertedBrackets=0),c.autoInsertedRow=C.row,c.autoInsertedLineEnd=w+k.substr(C.column),c.autoInsertedBrackets++},f.recordMaybeInsert=function(g,v,w){var C=g.getCursorPosition(),k=v.doc.getLine(C.row);this.isMaybeInsertedClosing(C,k)||(c.maybeInsertedBrackets=0),c.maybeInsertedRow=C.row,c.maybeInsertedLineStart=k.substr(0,C.column)+w,c.maybeInsertedLineEnd=k.substr(C.column),c.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(g,v,w){return c.autoInsertedBrackets>0&&g.row===c.autoInsertedRow&&w===c.autoInsertedLineEnd[0]&&v.substr(g.column)===c.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(g,v){return c.maybeInsertedBrackets>0&&g.row===c.maybeInsertedRow&&v.substr(g.column)===c.maybeInsertedLineEnd&&v.substr(0,g.column)==c.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){c.autoInsertedLineEnd=c.autoInsertedLineEnd.substr(1),c.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){c&&(c.maybeInsertedBrackets=0,c.maybeInsertedRow=-1)},i.inherits(f,r),t.CstyleBehaviour=f});ace.define("ace/unicode",["require","exports","module"],function(n,t,e){"use strict";for(var i=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],r=0,s=[],a=0;a2?Q%x!=x-1:Q%x==0}}else{if(!this.blockComment)return!1;var E=this.blockComment.start,T=this.blockComment.end,M=new RegExp("^(\\s*)(?:"+l.escapeRegExp(E)+")"),D=new RegExp("(?:"+l.escapeRegExp(T)+")\\s*$"),_=function(O,U){b(O,U)||(!w||/\S/.test(O))&&(v.insertInLine({row:U,column:O.length},T),v.insertInLine({row:U,column:k},E))},p=function(O,U){var P;(P=O.match(D))&&v.removeInLine(U,O.length-P[0].length,O.length),(P=O.match(M))&&v.removeInLine(U,P[1].length,P[0].length)},b=function(O,U){if(M.test(O))return!0;for(var P=m.getTokens(U),W=0;WO.length&&(R=O.length)}),k==1/0&&(k=R,w=!1,C=!1),y&&k%x!=0&&(k=Math.floor(k/x)*x),A(C?p:_)},this.toggleBlockComment=function(h,m,f,g){var v=this.blockComment;if(v){!v.start&&v[0]&&(v=v[0]);var w=new c(m,g.row,g.column),C=w.getCurrentToken(),k=m.selection,x=m.selection.toOrientedRange(),y,E;if(C&&/comment/.test(C.type)){for(var T,M;C&&/comment/.test(C.type);){var D=C.value.indexOf(v.start);if(D!=-1){var _=w.getCurrentTokenRow(),p=w.getCurrentTokenColumn()+D;T=new u(_,p,_,p+v.start.length);break}C=w.stepBackward()}for(var w=new c(m,g.row,g.column),C=w.getCurrentToken();C&&/comment/.test(C.type);){var D=C.value.indexOf(v.end);if(D!=-1){var _=w.getCurrentTokenRow(),p=w.getCurrentTokenColumn()+D;M=new u(_,p,_,p+v.end.length);break}C=w.stepForward()}M&&m.remove(M),T&&(m.remove(T),y=T.start.row,E=-v.start.length)}else E=v.start.length,y=f.start.row,m.insert(f.end,v.end),m.insert(f.start,v.start);x.start.row==y&&(x.start.column+=E),x.end.row==y&&(x.end.column+=E),m.selection.fromOrientedRange(x)}},this.getNextLineIndent=function(h,m,f){return this.$getIndent(m)},this.checkOutdent=function(h,m,f){return!1},this.autoOutdent=function(h,m,f){},this.$getIndent=function(h){return h.match(/^\s*/)[0]},this.createWorker=function(h){return null},this.createModeDelegates=function(h){this.$embeds=[],this.$modes={};for(var m in h)if(h[m]){var f=h[m],g=f.prototype.$id,v=i.$modes[g];v||(i.$modes[g]=v=new f),i.$modes[m]||(i.$modes[m]=v),this.$embeds.push(m),this.$modes[m]=v}for(var w=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],C=function(x){(function(y){var E=w[x],T=y[E];y[w[x]]=function(){return this.$delegator(E,arguments,T)}})(k)},k=this,m=0;mo[l].column&&l++,d.unshift(l,0),o.splice.apply(o,d),this.$updateRows()}}},s.prototype.$updateRows=function(){var a=this.session.lineWidgets;if(a){var o=!0;a.forEach(function(l,c){if(l)for(o=!1,l.row=c;l.$oldWidget;)l.$oldWidget.row=c,l=l.$oldWidget}),o&&(this.session.lineWidgets=null)}},s.prototype.$registerLineWidget=function(a){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var o=this.session.lineWidgets[a.row];return o&&(a.$oldWidget=o,o.el&&o.el.parentNode&&(o.el.parentNode.removeChild(o.el),o._inDocument=!1)),this.session.lineWidgets[a.row]=a,a},s.prototype.addLineWidget=function(a){if(this.$registerLineWidget(a),a.session=this.session,!this.editor)return a;var o=this.editor.renderer;a.html&&!a.el&&(a.el=i.createElement("div"),a.el.innerHTML=a.html),a.text&&!a.el&&(a.el=i.createElement("div"),a.el.textContent=a.text),a.el&&(i.addCssClass(a.el,"ace_lineWidgetContainer"),a.className&&i.addCssClass(a.el,a.className),a.el.style.position="absolute",a.el.style.zIndex="5",o.container.appendChild(a.el),a._inDocument=!0,a.coverGutter||(a.el.style.zIndex="3"),a.pixelHeight==null&&(a.pixelHeight=a.el.offsetHeight)),a.rowCount==null&&(a.rowCount=a.pixelHeight/o.layerConfig.lineHeight);var l=this.session.getFoldAt(a.row,0);if(a.$fold=l,l){var c=this.session.lineWidgets;a.row==l.end.row&&!c[l.start.row]?c[l.start.row]=a:a.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows(),this.renderWidgets(null,o),this.onWidgetChanged(a),a},s.prototype.removeLineWidget=function(a){if(a._inDocument=!1,a.session=null,a.el&&a.el.parentNode&&a.el.parentNode.removeChild(a.el),a.editor&&a.editor.destroy)try{a.editor.destroy()}catch{}if(this.session.lineWidgets){var o=this.session.lineWidgets[a.row];if(o==a)this.session.lineWidgets[a.row]=a.$oldWidget,a.$oldWidget&&this.onWidgetChanged(a.$oldWidget);else for(;o;){if(o.$oldWidget==a){o.$oldWidget=a.$oldWidget;break}o=o.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows()},s.prototype.getWidgetsAtRow=function(a){for(var o=this.session.lineWidgets,l=o&&o[a],c=[];l;)c.push(l),l=l.$oldWidget;return c},s.prototype.onWidgetChanged=function(a){this.session._changedWidgets.push(a),this.editor&&this.editor.renderer.updateFull()},s.prototype.measureWidgets=function(a,o){var l=this.session._changedWidgets,c=o.layerConfig;if(!(!l||!l.length)){for(var u=1/0,d=0;d0&&!c[u];)u--;this.firstRow=l.firstRow,this.lastRow=l.lastRow,o.$cursorLayer.config=l;for(var h=u;h<=d;h++){var m=c[h];if(!(!m||!m.el)){if(m.hidden){m.el.style.top=-100-(m.pixelHeight||0)+"px";continue}m._inDocument||(m._inDocument=!0,o.container.appendChild(m.el));var f=o.$cursorLayer.getPixelPosition({row:h,column:0},!0).top;m.coverLine||(f+=l.lineHeight*this.session.getRowLineCount(m.row)),m.el.style.top=f-l.offset+"px";var g=m.coverGutter?0:o.gutterWidth;m.fixedWidth||(g-=o.scrollLeft),m.el.style.left=g+"px",m.fullWidth&&m.screenWidth&&(m.el.style.minWidth=l.width+2*l.padding+"px"),m.fixedWidth?m.el.style.right=o.scrollBar.getWidth()+"px":m.el.style.right=""}}}},s}();t.LineWidgets=r});ace.define("ace/apply_delta",["require","exports","module"],function(n,t,e){"use strict";function i(a,o){throw console.log("Invalid Delta:",a),"Invalid Delta: "+o}function r(a,o){return o.row>=0&&o.row=0&&o.column<=a[o.row].length}function s(a,o){o.action!="insert"&&o.action!="remove"&&i(o,"delta.action must be 'insert' or 'remove'"),o.lines instanceof Array||i(o,"delta.lines must be an Array"),(!o.start||!o.end)&&i(o,"delta.start/end must be an present");var l=o.start;r(a,o.start)||i(o,"delta.start must be contained in document");var c=o.end;o.action=="remove"&&!r(a,c)&&i(o,"delta.end must contained in document for 'remove' actions");var u=c.row-l.row,d=c.column-(u==0?l.column:0);(u!=o.lines.length-1||o.lines[u].length!=d)&&i(o,"delta.range must match delta lines")}t.applyDelta=function(a,o,l){var c=o.start.row,u=o.start.column,d=a[c]||"";switch(o.action){case"insert":var h=o.lines;if(h.length===1)a[c]=d.substring(0,u)+o.lines[0]+d.substring(u);else{var m=[c,1].concat(o.lines);a.splice.apply(a,m),a[c]=d.substring(0,u)+a[c],a[c+o.lines.length-1]+=d.substring(u)}break;case"remove":var f=o.end.column,g=o.end.row;c===g?a[c]=d.substring(0,u)+d.substring(f):a.splice(c,g-c+1,d.substring(0,u)+a[g].substring(f));break}}});ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/event_emitter").EventEmitter,s=function(){function l(c,u,d){this.$onChange=this.onChange.bind(this),this.attach(c),typeof u!="number"?this.setPosition(u.row,u.column):this.setPosition(u,d)}return l.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},l.prototype.getDocument=function(){return this.document},l.prototype.onChange=function(c){if(!(c.start.row==c.end.row&&c.start.row!=this.row)&&!(c.start.row>this.row)){var u=o(c,{row:this.row,column:this.column},this.$insertRight);this.setPosition(u.row,u.column,!0)}},l.prototype.setPosition=function(c,u,d){var h;if(d?h={row:c,column:u}:h=this.$clipPositionToDocument(c,u),!(this.row==h.row&&this.column==h.column)){var m={row:this.row,column:this.column};this.row=h.row,this.column=h.column,this._signal("change",{old:m,value:h})}},l.prototype.detach=function(){this.document.off("change",this.$onChange)},l.prototype.attach=function(c){this.document=c||this.document,this.document.on("change",this.$onChange)},l.prototype.$clipPositionToDocument=function(c,u){var d={};return c>=this.document.getLength()?(d.row=Math.max(0,this.document.getLength()-1),d.column=this.document.getLine(d.row).length):c<0?(d.row=0,d.column=0):(d.row=c,d.column=Math.min(this.document.getLine(d.row).length,Math.max(0,u))),u<0&&(d.column=0),d},l}();s.prototype.$insertRight=!1,i.implement(s.prototype,r);function a(l,c,u){var d=u?l.column<=c.column:l.column=h&&(u=h-1,d=void 0);var m=this.getLine(u);return d==null&&(d=m.length),d=Math.min(Math.max(d,0),m.length),{row:u,column:d}},c.prototype.clonePos=function(u){return{row:u.row,column:u.column}},c.prototype.pos=function(u,d){return{row:u,column:d}},c.prototype.$clipPosition=function(u){var d=this.getLength();return u.row>=d?(u.row=Math.max(0,d-1),u.column=this.getLine(d-1).length):(u.row=Math.max(0,u.row),u.column=Math.min(Math.max(u.column,0),this.getLine(u.row).length)),u},c.prototype.insertFullLines=function(u,d){u=Math.min(Math.max(u,0),this.getLength());var h=0;u0,m=d=0&&this.applyDelta({start:this.pos(u,this.getLine(u).length),end:this.pos(u+1,0),action:"remove",lines:["",""]})},c.prototype.replace=function(u,d){if(u instanceof a||(u=a.fromPoints(u.start,u.end)),d.length===0&&u.isEmpty())return u.start;if(d==this.getTextRange(u))return u.end;this.remove(u);var h;return d?h=this.insert(u.start,d):h=u.start,h},c.prototype.applyDeltas=function(u){for(var d=0;d=0;d--)this.revertDelta(u[d])},c.prototype.applyDelta=function(u,d){var h=u.action=="insert";(h?u.lines.length<=1&&!u.lines[0]:!a.comparePoints(u.start,u.end))||(h&&u.lines.length>2e4?this.$splitAndapplyLargeDelta(u,2e4):(r(this.$lines,u,d),this._signal("change",u)))},c.prototype.$safeApplyDelta=function(u){var d=this.$lines.length;(u.action=="remove"&&u.start.row20){c.running=setTimeout(c.$worker,20);break}}c.currentLine=d,h==-1&&(h=d),f<=h&&c.fireUpdateEvent(f,h)}}}return a.prototype.setTokenizer=function(o){this.tokenizer=o,this.lines=[],this.states=[],this.start(0)},a.prototype.setDocument=function(o){this.doc=o,this.lines=[],this.states=[],this.stop()},a.prototype.fireUpdateEvent=function(o,l){var c={first:o,last:l};this._signal("update",{data:c})},a.prototype.start=function(o){this.currentLine=Math.min(o||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},a.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},a.prototype.$updateOnChange=function(o){var l=o.start.row,c=o.end.row-l;if(c===0)this.lines[l]=null;else if(o.action=="remove")this.lines.splice(l,c+1,null),this.states.splice(l,c+1,null);else{var u=Array(c+1);u.unshift(l,1),this.lines.splice.apply(this.lines,u),this.states.splice.apply(this.states,u)}this.currentLine=Math.min(l,this.currentLine,this.doc.getLength()),this.stop()},a.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},a.prototype.getTokens=function(o){return this.lines[o]||this.$tokenizeRow(o)},a.prototype.getState=function(o){return this.currentLine==o&&this.$tokenizeRow(o),this.states[o]||"start"},a.prototype.$tokenizeRow=function(o){var l=this.doc.getLine(o),c=this.states[o-1],u=this.tokenizer.getLineTokens(l,c,o);return this.states[o]+""!=u.state+""?(this.states[o]=u.state,this.lines[o+1]=null,this.currentLine>o+1&&(this.currentLine=o+1)):this.currentLine==o&&(this.currentLine=o+1),this.lines[o]=u.tokens},a.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},a}();i.implement(s.prototype,r),t.BackgroundTokenizer=s});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(n,t,e){"use strict";var i=n("./lib/lang"),r=n("./range").Range,s=function(){function a(o,l,c){c===void 0&&(c="text"),this.setRegexp(o),this.clazz=l,this.type=c}return a.prototype.setRegexp=function(o){this.regExp+""!=o+""&&(this.regExp=o,this.cache=[])},a.prototype.update=function(o,l,c,u){if(this.regExp)for(var d=u.firstRow,h=u.lastRow,m={},f=d;f<=h;f++){var g=this.cache[f];g==null&&(g=i.getMatchOffsets(c.getLine(f),this.regExp),g.length>this.MAX_RANGES&&(g=g.slice(0,this.MAX_RANGES)),g=g.map(function(k){return new r(f,k.offset,f,k.offset+k.length)}),this.cache[f]=g.length?g:"");for(var v=g.length;v--;){var w=g[v].toScreenRange(c),C=w.toString();m[C]||(m[C]=!0,l.drawSingleLineMarker(o,w,this.clazz,u))}}},a}();s.prototype.MAX_RANGES=500,t.SearchHighlight=s});ace.define("ace/undomanager",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=function(){function y(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return y.prototype.addSession=function(E){this.$session=E},y.prototype.add=function(E,T,M){if(!this.$fromUndo&&E!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),T===!1||!this.lastDeltas){this.lastDeltas=[];var D=this.$undoStack.length;D>this.$undoDepth-1&&this.$undoStack.splice(0,D-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),E.id=this.$rev=++this.$maxRev}(E.action=="remove"||E.action=="insert")&&(this.$lastDelta=E),this.lastDeltas.push(E)}},y.prototype.addSelection=function(E,T){this.selections.push({value:E,rev:T||this.$rev})},y.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},y.prototype.markIgnored=function(E,T){T==null&&(T=this.$rev+1);for(var M=this.$undoStack,D=M.length;D--;){var _=M[D][0];if(_.id<=E)break;_.id0},y.prototype.canRedo=function(){return this.$redoStack.length>0},y.prototype.bookmark=function(E){E==null&&(E=this.$rev),this.mark=E},y.prototype.isAtBookmark=function(){return this.$rev===this.mark},y.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},y.prototype.fromJSON=function(E){this.reset(),this.$undoStack=E.$undoStack,this.$redoStack=E.$redoStack},y.prototype.$prettyPrint=function(E){return E?d(E):d(this.$undoStack)+` ---- -`+d(this.$redoStack)},y}();i.prototype.hasUndo=i.prototype.canUndo,i.prototype.hasRedo=i.prototype.canRedo,i.prototype.isClean=i.prototype.isAtBookmark,i.prototype.markClean=i.prototype.bookmark;function r(y,E){for(var T=E;T--;){var M=y[T];if(M&&!M[0].ignore){for(;T0){b.row+=D,b.column+=b.row==M.row?_:0;continue}!E&&I<=0&&(b.row=T.row,b.column=T.column,I===0&&(b.bias=1))}}}function c(y){return{row:y.row,column:y.column}}function u(y){return{start:c(y.start),end:c(y.end),action:y.action,lines:y.lines.slice()}}function d(y){if(y=y||this,Array.isArray(y))return y.map(d).join(` -`);var E="";return y.action?(E=y.action=="insert"?"+":"-",E+="["+y.lines+"]"):y.value&&(Array.isArray(y.value)?E=y.value.map(h).join(` -`):E=h(y.value)),y.start&&(E+=h(y)),(y.id||y.rev)&&(E+=" ("+(y.id||y.rev)+")"),E}function h(y){return y.start.row+":"+y.start.column+"=>"+y.end.row+":"+y.end.column}function m(y,E){var T=y.action=="insert",M=E.action=="insert";if(T&&M)if(a(E.start,y.end)>=0)v(E,y,-1);else if(a(E.start,y.start)<=0)v(y,E,1);else return null;else if(T&&!M)if(a(E.start,y.end)>=0)v(E,y,-1);else if(a(E.end,y.start)<=0)v(y,E,-1);else return null;else if(!T&&M)if(a(E.start,y.start)>=0)v(E,y,1);else if(a(E.start,y.start)<=0)v(y,E,1);else return null;else if(!T&&!M)if(a(E.start,y.start)>=0)v(E,y,1);else if(a(E.end,y.start)<=0)v(y,E,-1);else return null;return[E,y]}function f(y,E){for(var T=y.length;T--;)for(var M=0;M=0?v(y,E,-1):(a(y.start,E.start)<=0||v(y,s.fromPoints(E.start,y.start),-1),v(E,y,1));else if(!T&&M)a(E.start,y.end)>=0?v(E,y,-1):(a(E.start,y.start)<=0||v(E,s.fromPoints(y.start,E.start),-1),v(y,E,1));else if(!T&&!M)if(a(E.start,y.end)>=0)v(E,y,-1);else if(a(E.end,y.start)<=0)v(y,E,-1);else{var D,_;return a(y.start,E.start)<0&&(D=y,y=C(y,E.start)),a(y.end,E.end)>0&&(_=C(y,E.end)),w(E.end,y.start,y.end,-1),_&&!D&&(y.lines=_.lines,y.start=_.start,y.end=_.end,_=y),[E,D,_].filter(Boolean)}return[E,y]}function v(y,E,T){w(y.start,E.start,E.end,T),w(y.end,E.start,E.end,T)}function w(y,E,T,M){y.row==(M==1?E:T).row&&(y.column+=M*(T.column-E.column)),y.row+=M*(T.row-E.row)}function C(y,E){var T=y.lines,M=y.end;y.end=c(E);var D=y.end.row-y.start.row,_=T.splice(D,T.length),p=D?E.column:E.column-y.start.column;T.push(_[0].substring(0,p)),_[0]=_[0].substr(p);var b={start:c(E),end:M,lines:_,action:y.action};return b}function k(y,E){E=u(E);for(var T=y.length;T--;){for(var M=y[T],D=0;Dthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(a),this.folds.sort(function(o,l){return-o.range.compareEnd(l.start.row,l.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");a.foldLine=this},s.prototype.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},s.prototype.walk=function(a,o,l){var c=0,u=this.folds,d,h,m,f=!0;o==null&&(o=this.end.row,l=this.end.column);for(var g=0;g0)){var f=r(o,h.start);return m===0?l&&f!==0?-d-2:d:f>0||f===0&&!l?d:-d-1}}return-d-1},a.prototype.add=function(o){var l=!o.isEmpty(),c=this.pointIndex(o.start,l);c<0&&(c=-c-1);var u=this.pointIndex(o.end,l,c);return u<0?u=-u-1:u++,this.ranges.splice(c,u-c,o)},a.prototype.addList=function(o){for(var l=[],c=o.length;c--;)l.push.apply(l,this.add(o[c]));return l},a.prototype.substractPoint=function(o){var l=this.pointIndex(o);if(l>=0)return this.ranges.splice(l,1)},a.prototype.merge=function(){var o=[],l=this.ranges;l=l.sort(function(m,f){return r(m.start,f.start)});for(var c=l[0],u,d=1;d=0},a.prototype.containsPoint=function(o){return this.pointIndex(o)>=0},a.prototype.rangeAtPoint=function(o){var l=this.pointIndex(o);if(l>=0)return this.ranges[l]},a.prototype.clipRows=function(o,l){var c=this.ranges;if(c[0].start.row>l||c[c.length-1].start.row=u)break}if(o.action=="insert")for(var v=d-u,w=-l.column+c.column;mu)break;if(g.start.row==u&&g.start.column>=l.column&&(g.start.column==l.column&&this.$bias<=0||(g.start.column+=w,g.start.row+=v)),g.end.row==u&&g.end.column>=l.column){if(g.end.column==l.column&&this.$bias<0)continue;g.end.column==l.column&&w>0&&mg.start.column&&g.end.column==h[m+1].start.column&&(g.end.column-=w),g.end.column+=w,g.end.row+=v}}else for(var v=u-d,w=l.column-c.column;md)break;g.end.rowl.column)&&(g.end.column=l.column,g.end.row=l.row):(g.end.column+=w,g.end.row+=v):g.end.row>d&&(g.end.row+=v),g.start.rowl.column)&&(g.start.column=l.column,g.start.row=l.row):(g.start.column+=w,g.start.row+=v):g.start.row>d&&(g.start.row+=v)}if(v!=0&&m=c)return m;if(m.end.row>c)return null}return null},this.getNextFoldLine=function(c,u){var d=this.$foldData,h=0;for(u&&(h=d.indexOf(u)),h==-1&&(h=0),h;h=c)return m}return null},this.getFoldedRowCount=function(c,u){for(var d=this.$foldData,h=u-c+1,m=0;m=u){v=c?h-=u-v:h=0);break}else g>=c&&(v>=c?h-=g-v:h-=g-c+1)}return h},this.$addFoldLine=function(c){return this.$foldData.push(c),this.$foldData.sort(function(u,d){return u.start.row-d.start.row}),c},this.addFold=function(c,u){var d=this.$foldData,h=!1,m;c instanceof s?m=c:(m=new s(u,c),m.collapseChildren=u.collapseChildren),this.$clipRangeToDocument(m.range);var f=m.start.row,g=m.start.column,v=m.end.row,w=m.end.column,C=this.getFoldAt(f,g,1),k=this.getFoldAt(v,w,-1);if(C&&k==C)return C.addSubFold(m);C&&!C.range.isStart(f,g)&&this.removeFold(C),k&&!k.range.isEnd(v,w)&&this.removeFold(k);var x=this.getFoldsInRange(m.range);x.length>0&&(this.removeFolds(x),m.collapseChildren||x.forEach(function(M){m.addSubFold(M)}));for(var y=0;y0&&this.foldAll(c.start.row+1,c.end.row,c.collapseChildren-1),c.subFolds=[]},this.expandFolds=function(c){c.forEach(function(u){this.expandFold(u)},this)},this.unfold=function(c,u){var d,h;if(c==null)d=new i(0,0,this.getLength(),0),u==null&&(u=!0);else if(typeof c=="number")d=new i(c,0,c,this.getLine(c).length);else if("row"in c)d=i.fromPoints(c,c);else{if(Array.isArray(c))return h=[],c.forEach(function(f){h=h.concat(this.unfold(f))},this),h;d=c}h=this.getFoldsInRangeList(d);for(var m=h;h.length==1&&i.comparePoints(h[0].start,d.start)<0&&i.comparePoints(h[0].end,d.end)>0;)this.expandFolds(h),h=this.getFoldsInRangeList(d);if(u!=!1?this.removeFolds(h):this.expandFolds(h),m.length)return m},this.isRowFolded=function(c,u){return!!this.getFoldLine(c,u)},this.getRowFoldEnd=function(c,u){var d=this.getFoldLine(c,u);return d?d.end.row:c},this.getRowFoldStart=function(c,u){var d=this.getFoldLine(c,u);return d?d.start.row:c},this.getFoldDisplayLine=function(c,u,d,h,m){h==null&&(h=c.start.row),m==null&&(m=0),u==null&&(u=c.end.row),d==null&&(d=this.getLine(u).length);var f=this.doc,g="";return c.walk(function(v,w,C,k){if(!(wC)break;while(m&&g.test(m.type));m=h.stepBackward()}else m=h.getCurrentToken();return v.end.row=h.getCurrentTokenRow(),v.end.column=h.getCurrentTokenColumn(),v}},this.foldAll=function(c,u,d,h){d==null&&(d=1e5);var m=this.foldWidgets;if(m){u=u||this.getLength(),c=c||0;for(var f=c;f=c&&(f=g.end.row,g.collapseChildren=d,this.addFold("...",g))}}},this.foldToLevel=function(c){for(this.foldAll();c-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var c=this;this.foldAll(null,null,null,function(u){for(var d=c.getTokens(u),h=0;h=0;){var f=d[h];if(f==null&&(f=d[h]=this.getFoldWidget(h)),f=="start"){var g=this.getFoldWidgetRange(h);if(m||(m=g),g&&g.end.row>=c)break}h--}return{range:h!==-1&&g,firstRange:m}},this.onFoldWidgetClick=function(c,u){u instanceof o&&(u=u.domEvent);var d={children:u.shiftKey,all:u.ctrlKey||u.metaKey,siblings:u.altKey},h=this.$toggleFoldWidget(c,d);if(!h){var m=u.target||u.srcElement;m&&/ace_fold-widget/.test(m.className)&&(m.className+=" ace_invalid")}},this.$toggleFoldWidget=function(c,u){if(this.getFoldWidget){var d=this.getFoldWidget(c),h=this.getLine(c),m=d==="end"?-1:1,f=this.getFoldAt(c,m===-1?0:h.length,m);if(f)return u.children||u.all?this.removeFold(f):this.expandFold(f),f;var g=this.getFoldWidgetRange(c,!0);if(g&&!g.isMultiLine()&&(f=this.getFoldAt(g.start.row,g.start.column,1),f&&g.isEqual(f.range)))return this.removeFold(f),f;if(u.siblings){var v=this.getParentFoldRangeData(c);if(v.range)var w=v.range.start.row+1,C=v.range.end.row;this.foldAll(w,C,u.all?1e4:0)}else u.children?(C=g?g.end.row:this.getLength(),this.foldAll(c+1,C,u.all?1e4:0)):g&&(u.all&&(g.collapseChildren=1e4),this.addFold("...",g));return g}},this.toggleFoldWidget=function(c){var u=this.selection.getCursor().row;u=this.getRowFoldStart(u);var d=this.$toggleFoldWidget(u,{});if(!d){var h=this.getParentFoldRangeData(u,!0);if(d=h.range||h.firstRange,d){u=d.start.row;var m=this.getFoldAt(u,this.getLine(u).length,1);m?this.removeFold(m):this.addFold("...",d)}}},this.updateFoldWidgets=function(c){var u=c.start.row,d=c.end.row-u;if(d===0)this.foldWidgets[u]=null;else if(c.action=="remove")this.foldWidgets.splice(u,d+1,null);else{var h=Array(d+1);h.unshift(u,1),this.foldWidgets.splice.apply(this.foldWidgets,h)}},this.tokenizerUpdateFoldWidgets=function(c){var u=c.data;u.first!=u.last&&this.foldWidgets.length>u.first&&this.foldWidgets.splice(u.first,this.foldWidgets.length)}}t.Folding=l});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(n,t,e){"use strict";var i=n("../token_iterator").TokenIterator,r=n("../range").Range;function s(){this.findMatchingBracket=function(a,o){if(a.column==0)return null;var l=o||this.getLine(a.row).charAt(a.column-1);if(l=="")return null;var c=l.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.getBracketRange=function(a){var o=this.getLine(a.row),l=!0,c,u=o.charAt(a.column-1),d=u&&u.match(/([\(\[\{])|([\)\]\}])/);if(d||(u=o.charAt(a.column),a={row:a.row,column:a.column+1},d=u&&u.match(/([\(\[\{])|([\)\]\}])/),l=!1),!d)return null;if(d[1]){var h=this.$findClosingBracket(d[1],a);if(!h)return null;c=r.fromPoints(a,h),l||(c.end.column++,c.start.column--),c.cursor=c.end}else{var h=this.$findOpeningBracket(d[2],a);if(!h)return null;c=r.fromPoints(h,a),l||(c.start.column++,c.end.column--),c.cursor=c.start}return c},this.getMatchingBracketRanges=function(a,o){var l=this.getLine(a.row),c=/([\(\[\{])|([\)\]\}])/,u=!o&&l.charAt(a.column-1),d=u&&u.match(c);if(d||(u=(o===void 0||o)&&l.charAt(a.column),a={row:a.row,column:a.column+1},d=u&&u.match(c)),!d)return null;var h=new r(a.row,a.column-1,a.row,a.column),m=d[1]?this.$findClosingBracket(d[1],a):this.$findOpeningBracket(d[2],a);if(!m)return[h];var f=new r(m.row,m.column,m.row,m.column+1);return[h,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,o,l){var c=this.$brackets[a],u=1,d=new i(this,o.row,o.column),h=d.getCurrentToken();if(h||(h=d.stepForward()),!!h){l||(l=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var m=o.column-d.getCurrentTokenColumn()-2,f=h.value;;){for(;m>=0;){var g=f.charAt(m);if(g==c){if(u-=1,u==0)return{row:d.getCurrentTokenRow(),column:m+d.getCurrentTokenColumn()}}else g==a&&(u+=1);m-=1}do h=d.stepBackward();while(h&&!l.test(h.type));if(h==null)break;f=h.value,m=f.length-1}return null}},this.$findClosingBracket=function(a,o,l){var c=this.$brackets[a],u=1,d=new i(this,o.row,o.column),h=d.getCurrentToken();if(h||(h=d.stepForward()),!!h){l||(l=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var m=o.column-d.getCurrentTokenColumn();;){for(var f=h.value,g=f.length;m"?c=!0:o.type.indexOf("tag-name")!==-1&&(l=!0));while(o&&!l);return o},this.$findClosingTag=function(a,o){var l,c=o.value,u=o.value,d=0,h=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);o=a.stepForward();var m=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+o.value.length),f=!1;do{if(l=o,l.type.indexOf("tag-close")!==-1&&!f){var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(o=a.stepForward(),o){if(o.value===">"&&!f){var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(o.type.indexOf("tag-name")!==-1){if(c=o.value,u===c){if(l.value==="<")d++;else if(l.value==="")var C=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);else return}}}else if(u===c&&o.value==="/>"&&(d--,d<0))var v=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),w=v,C=w,g=new r(m.end.row,m.end.column,m.end.row,m.end.column+1)}}while(o&&d>=0);if(h&&g&&v&&C&&m&&w)return{openTag:new r(h.start.row,h.start.column,g.end.row,g.end.column),closeTag:new r(v.start.row,v.start.column,C.end.row,C.end.column),openTagName:m,closeTagName:w}},this.$findOpeningTag=function(a,o){var l=a.getCurrentToken(),c=o.value,u=0,d=a.getCurrentTokenRow(),h=a.getCurrentTokenColumn(),m=h+2,f=new r(d,h,d,m);a.stepForward();var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+o.value.length);if(o.type.indexOf("tag-close")===-1&&(o=a.stepForward()),!(!o||o.value!==">")){var v=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do if(o=l,d=a.getCurrentTokenRow(),h=a.getCurrentTokenColumn(),m=h+o.value.length,l=a.stepBackward(),o){if(o.type.indexOf("tag-name")!==-1){if(c===o.value)if(l.value==="<"){if(u++,u>0){var w=new r(d,h,d,m),C=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do o=a.stepForward();while(o&&o.value!==">");var k=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else l.value===""){for(var x=0,y=l;y;){if(y.type.indexOf("tag-name")!==-1&&y.value===c){u--;break}else if(y.value==="<")break;y=a.stepBackward(),x++}for(var E=0;ES&&(this.$docRowCache.splice(S,b),this.$screenRowCache.splice(S,b))},_.prototype.$getRowCacheIndex=function(p,b){for(var S=0,I=p.length-1;S<=I;){var A=S+I>>1,R=p[A];if(b>R)S=A+1;else if(b=b));R++);return I=S[R],I?(I.index=R,I.start=A-I.value.length,I):null},_.prototype.setUndoManager=function(p){if(this.$undoManager=p,this.$informUndoManager&&this.$informUndoManager.cancel(),p){var b=this;p.addSession(this),this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.mergeUndoDeltas=!1},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},_.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},_.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},_.prototype.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):" "},_.prototype.setUseSoftTabs=function(p){this.setOption("useSoftTabs",p)},_.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},_.prototype.setTabSize=function(p){this.setOption("tabSize",p)},_.prototype.getTabSize=function(){return this.$tabSize},_.prototype.isTabStop=function(p){return this.$useSoftTabs&&p.column%this.$tabSize===0},_.prototype.setNavigateWithinSoftTabs=function(p){this.setOption("navigateWithinSoftTabs",p)},_.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},_.prototype.setOverwrite=function(p){this.setOption("overwrite",p)},_.prototype.getOverwrite=function(){return this.$overwrite},_.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},_.prototype.addGutterDecoration=function(p,b){this.$decorations[p]||(this.$decorations[p]=""),this.$decorations[p]+=" "+b,this._signal("changeBreakpoint",{})},_.prototype.removeGutterDecoration=function(p,b){this.$decorations[p]=(this.$decorations[p]||"").replace(" "+b,""),this._signal("changeBreakpoint",{})},_.prototype.getBreakpoints=function(){return this.$breakpoints},_.prototype.setBreakpoints=function(p){this.$breakpoints=[];for(var b=0;b0&&(I=!!S.charAt(b-1).match(this.tokenRe)),I||(I=!!S.charAt(b).match(this.tokenRe)),I)var A=this.tokenRe;else if(/^\s+$/.test(S.slice(b-1,b+1)))var A=/\s/;else var A=this.nonTokenRe;var R=b;if(R>0){do R--;while(R>=0&&S.charAt(R).match(A));R++}for(var O=b;Op&&(p=b.screenWidth)}),this.lineWidgetWidth=p},_.prototype.$computeWidth=function(p){if(this.$modified||p){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var b=this.doc.getAllLines(),S=this.$rowLengthCache,I=0,A=0,R=this.$foldData[A],O=R?R.start.row:1/0,U=b.length,P=0;PO){if(P=R.end.row+1,P>=U)break;R=this.$foldData[A++],O=R?R.start.row:1/0}S[P]==null&&(S[P]=this.$getStringScreenWidth(b[P])[0]),S[P]>I&&(I=S[P])}this.screenWidth=I}},_.prototype.getLine=function(p){return this.doc.getLine(p)},_.prototype.getLines=function(p,b){return this.doc.getLines(p,b)},_.prototype.getLength=function(){return this.doc.getLength()},_.prototype.getTextRange=function(p){return this.doc.getTextRange(p||this.selection.getRange())},_.prototype.insert=function(p,b){return this.doc.insert(p,b)},_.prototype.remove=function(p){return this.doc.remove(p)},_.prototype.removeFullLines=function(p,b){return this.doc.removeFullLines(p,b)},_.prototype.undoChanges=function(p,b){if(p.length){this.$fromUndo=!0;for(var S=p.length-1;S!=-1;S--){var I=p[S];I.action=="insert"||I.action=="remove"?this.doc.revertDelta(I):I.folds&&this.addFolds(I.folds)}!b&&this.$undoSelect&&(p.selectionBefore?this.selection.fromJSON(p.selectionBefore):this.selection.setRange(this.$getUndoSelection(p,!0))),this.$fromUndo=!1}},_.prototype.redoChanges=function(p,b){if(p.length){this.$fromUndo=!0;for(var S=0;Sp.end.column&&(R.start.column+=U),R.end.row==p.end.row&&R.end.column>p.end.column&&(R.end.column+=U)),O&&R.start.row>=p.end.row&&(R.start.row+=O,R.end.row+=O)}if(R.end=this.insert(R.start,I),A.length){var P=p.start,W=R.start,O=W.row-P.row,U=W.column-P.column;this.addFolds(A.map(function(Q){return Q=Q.clone(),Q.start.row==P.row&&(Q.start.column+=U),Q.end.row==P.row&&(Q.end.column+=U),Q.start.row+=O,Q.end.row+=O,Q}))}return R},_.prototype.indentRows=function(p,b,S){S=S.replace(/\t/g,this.getTabString());for(var I=p;I<=b;I++)this.doc.insertInLine({row:I,column:0},S)},_.prototype.outdentRows=function(p){for(var b=p.collapseRows(),S=new u(0,0,0,0),I=this.getTabSize(),A=b.start.row;A<=b.end.row;++A){var R=this.getLine(A);S.start.row=A,S.end.row=A;for(var O=0;O0){var I=this.getRowFoldEnd(b+S);if(I>this.doc.getLength()-1)return 0;var A=I-b}else{p=this.$clipRowToDocument(p),b=this.$clipRowToDocument(b);var A=b-p+1}var R=new u(p,0,b,Number.MAX_VALUE),O=this.getFoldsInRange(R).map(function(P){return P=P.clone(),P.start.row+=A,P.end.row+=A,P}),U=S==0?this.doc.getLines(p,b):this.doc.removeFullLines(p,b);return this.doc.insertFullLines(p+A,U),O.length&&this.addFolds(O),A},_.prototype.moveLinesUp=function(p,b){return this.$moveLines(p,b,-1)},_.prototype.moveLinesDown=function(p,b){return this.$moveLines(p,b,1)},_.prototype.duplicateLines=function(p,b){return this.$moveLines(p,b,0)},_.prototype.$clipRowToDocument=function(p){return Math.max(0,Math.min(p,this.doc.getLength()-1))},_.prototype.$clipColumnToRow=function(p,b){return b<0?0:Math.min(this.doc.getLine(p).length,b)},_.prototype.$clipPositionToDocument=function(p,b){if(b=Math.max(0,b),p<0)p=0,b=0;else{var S=this.doc.getLength();p>=S?(p=S-1,b=this.doc.getLine(S-1).length):b=Math.min(this.doc.getLine(p).length,b)}return{row:p,column:b}},_.prototype.$clipRangeToDocument=function(p){p.start.row<0?(p.start.row=0,p.start.column=0):p.start.column=this.$clipColumnToRow(p.start.row,p.start.column);var b=this.doc.getLength()-1;return p.end.row>b?(p.end.row=b,p.end.column=this.doc.getLine(b).length):p.end.column=this.$clipColumnToRow(p.end.row,p.end.column),p},_.prototype.setUseWrapMode=function(p){if(p!=this.$useWrapMode){if(this.$useWrapMode=p,this.$modified=!0,this.$resetRowCache(0),p){var b=this.getLength();this.$wrapData=Array(b),this.$updateWrapData(0,b-1)}this._signal("changeWrapMode")}},_.prototype.getUseWrapMode=function(){return this.$useWrapMode},_.prototype.setWrapLimitRange=function(p,b){(this.$wrapLimitRange.min!==p||this.$wrapLimitRange.max!==b)&&(this.$wrapLimitRange={min:p,max:b},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},_.prototype.adjustWrapLimit=function(p,b){var S=this.$wrapLimitRange;S.max<0&&(S={min:b,max:b});var I=this.$constrainWrapLimit(p,S.min,S.max);return I!=this.$wrapLimit&&I>1?(this.$wrapLimit=I,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},_.prototype.$constrainWrapLimit=function(p,b,S){return b&&(p=Math.max(b,p)),S&&(p=Math.min(S,p)),p},_.prototype.getWrapLimit=function(){return this.$wrapLimit},_.prototype.setWrapLimit=function(p){this.setWrapLimitRange(p,p)},_.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},_.prototype.$updateInternalDataOnChange=function(p){var b=this.$useWrapMode,S=p.action,I=p.start,A=p.end,R=I.row,O=A.row,U=O-R,P=null;if(this.$updating=!0,U!=0)if(S==="remove"){this[b?"$wrapData":"$rowLengthCache"].splice(R,U);var W=this.$foldData;P=this.getFoldsInRange(p),this.removeFolds(P);var V=this.getFoldLine(A.row),K=0;if(V){V.addRemoveChars(A.row,A.column,I.column-A.column),V.shiftRow(-U);var Q=this.getFoldLine(R);Q&&Q!==V&&(Q.merge(V),V=Q),K=W.indexOf(V)+1}for(K;K=A.row&&V.shiftRow(-U)}O=R}else{var q=Array(U);q.unshift(R,0);var ce=b?this.$wrapData:this.$rowLengthCache;ce.splice.apply(ce,q);var W=this.$foldData,V=this.getFoldLine(R),K=0;if(V){var Re=V.range.compareInside(I.row,I.column);Re==0?(V=V.split(I.row,I.column),V&&(V.shiftRow(U),V.addRemoveChars(O,0,A.column-I.column))):Re==-1&&(V.addRemoveChars(R,0,A.column-I.column),V.shiftRow(U)),K=W.indexOf(V)+1}for(K;K=R&&V.shiftRow(U)}}else{U=Math.abs(p.start.column-p.end.column),S==="remove"&&(P=this.getFoldsInRange(p),this.removeFolds(P),U=-U);var V=this.getFoldLine(R);V&&V.addRemoveChars(R,I.column,U)}return b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,b?this.$updateWrapData(R,O):this.$updateRowLengthCache(R,O),P},_.prototype.$updateRowLengthCache=function(p,b){this.$rowLengthCache[p]=null,this.$rowLengthCache[b]=null},_.prototype.$updateWrapData=function(p,b){var S=this.doc.getAllLines(),I=this.getTabSize(),A=this.$wrapData,R=this.$wrapLimit,O,U,P=p;for(b=Math.min(b,S.length-1);P<=b;)U=this.getFoldLine(P,U),U?(O=[],U.walk(function(W,V,K,Q){var q;if(W!=null){q=this.$getDisplayTokens(W,O.length),q[0]=k;for(var ce=1;ceb-Q;){var q=R+b-Q;if(p[q-1]>=E&&p[q]>=E){K(q);continue}if(p[q]==k||p[q]==x){for(q;q!=R-1&&p[q]!=k;q--);if(q>R){K(q);continue}for(q=R+b,q;q>2)),R-1);q>ce&&p[q]ce&&p[q]ce&&p[q]==y;)q--}else for(;q>ce&&p[q]ce){K(++q);continue}q=R+b,p[q]==C&&q--,K(q-Q)}return I},_.prototype.$getDisplayTokens=function(p,b){var S=[],I;b=b||0;for(var A=0;A39&&R<48||R>57&&R<64?S.push(y):R>=4352&&D(R)?S.push(w,C):S.push(w)}return S},_.prototype.$getStringScreenWidth=function(p,b,S){if(b==0)return[0,0];b==null&&(b=1/0),S=S||0;var I,A;for(A=0;A=4352&&D(I)?S+=2:S+=1,!(S>b));A++);return[S,A]},_.prototype.getRowLength=function(p){var b=1;return this.lineWidgets&&(b+=this.lineWidgets[p]&&this.lineWidgets[p].rowCount||0),!this.$useWrapMode||!this.$wrapData[p]?b:this.$wrapData[p].length+b},_.prototype.getRowLineCount=function(p){return!this.$useWrapMode||!this.$wrapData[p]?1:this.$wrapData[p].length+1},_.prototype.getRowWrapIndent=function(p){if(this.$useWrapMode){var b=this.screenToDocumentPosition(p,Number.MAX_VALUE),S=this.$wrapData[b.row];return S.length&&S[0]=0)var U=W[V],A=this.$docRowCache[V],Q=p>W[K-1];else var Q=!K;for(var q=this.getLength()-1,ce=this.getNextFoldLine(A),Re=ce?ce.start.row:1/0;U<=p&&(P=this.getRowLength(A),!(U+P>p||A>=q));)U+=P,A++,A>Re&&(A=ce.end.row+1,ce=this.getNextFoldLine(A,ce),Re=ce?ce.start.row:1/0),Q&&(this.$docRowCache.push(A),this.$screenRowCache.push(U));if(ce&&ce.start.row<=A)I=this.getFoldDisplayLine(ce),A=ce.start.row;else{if(U+P<=p||A>q)return{row:q,column:this.getLine(q).length};I=this.getLine(A),ce=null}var ve=0,ae=Math.floor(p-U);if(this.$useWrapMode){var we=this.$wrapData[A];we&&(O=we[ae],ae>0&&we.length&&(ve=we.indent,R=we[ae-1]||we[we.length-1],I=I.substring(R)))}return S!==void 0&&this.$bidiHandler.isBidiRow(U+ae,A,ae)&&(b=this.$bidiHandler.offsetToCol(S)),R+=this.$getStringScreenWidth(I,b-ve)[1],this.$useWrapMode&&R>=O&&(R=O-1),ce?ce.idxToPosition(R):{row:A,column:R}},_.prototype.documentToScreenPosition=function(p,b){if(typeof b>"u")var S=this.$clipPositionToDocument(p.row,p.column);else S=this.$clipPositionToDocument(p,b);p=S.row,b=S.column;var I=0,A=null,R=null;R=this.getFoldAt(p,b,1),R&&(p=R.start.row,b=R.start.column);var O,U=0,P=this.$docRowCache,W=this.$getRowCacheIndex(P,p),V=P.length;if(V&&W>=0)var U=P[W],I=this.$screenRowCache[W],K=p>P[V-1];else var K=!V;for(var Q=this.getNextFoldLine(U),q=Q?Q.start.row:1/0;U=q){if(O=Q.end.row+1,O>p)break;Q=this.getNextFoldLine(O,Q),q=Q?Q.start.row:1/0}else O=U+1;I+=this.getRowLength(U),U=O,K&&(this.$docRowCache.push(U),this.$screenRowCache.push(I))}var ce="";Q&&U>=q?(ce=this.getFoldDisplayLine(Q,p,b),A=Q.start.row):(ce=this.getLine(p).substring(0,b),A=p);var Re=0;if(this.$useWrapMode){var ve=this.$wrapData[A];if(ve){for(var ae=0;ce.length>=ve[ae];)I++,ae++;ce=ce.substring(ve[ae-1]||0,ce.length),Re=ae>0?ve.indent:0}}return this.lineWidgets&&this.lineWidgets[U]&&this.lineWidgets[U].rowsAbove&&(I+=this.lineWidgets[U].rowsAbove),{row:I,column:Re+this.$getStringScreenWidth(ce)[0]}},_.prototype.documentToScreenColumn=function(p,b){return this.documentToScreenPosition(p,b).column},_.prototype.documentToScreenRow=function(p,b){return this.documentToScreenPosition(p,b).row},_.prototype.getScreenLength=function(){var p=0,b=null;if(this.$useWrapMode)for(var A=this.$wrapData.length,R=0,I=0,b=this.$foldData[I++],O=b?b.start.row:1/0;RO&&(R=b.end.row+1,b=this.$foldData[I++],O=b?b.start.row:1/0)}else{p=this.getLength();for(var S=this.$foldData,I=0;IS));R++);return[I,R]})},_.prototype.getPrecedingCharacter=function(){var p=this.selection.getCursor();if(p.column===0)return p.row===0?"":this.doc.getNewLineCharacter();var b=this.getLine(p.row);return b[p.column-1]},_.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},_}();v.$uid=0,v.prototype.$modes=a.$modes,v.prototype.getValue=v.prototype.toString,v.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},v.prototype.$overwrite=!1,v.prototype.$mode=null,v.prototype.$modeId=null,v.prototype.$scrollTop=0,v.prototype.$scrollLeft=0,v.prototype.$wrapLimit=80,v.prototype.$useWrapMode=!1,v.prototype.$wrapLimitRange={min:null,max:null},v.prototype.lineWidgets=null,v.prototype.isFullWidth=D,i.implement(v.prototype,o);var w=1,C=2,k=3,x=4,y=9,E=10,T=11,M=12;function D(_){return _<4352?!1:_>=4352&&_<=4447||_>=4515&&_<=4519||_>=4602&&_<=4607||_>=9001&&_<=9002||_>=11904&&_<=11929||_>=11931&&_<=12019||_>=12032&&_<=12245||_>=12272&&_<=12283||_>=12288&&_<=12350||_>=12353&&_<=12438||_>=12441&&_<=12543||_>=12549&&_<=12589||_>=12593&&_<=12686||_>=12688&&_<=12730||_>=12736&&_<=12771||_>=12784&&_<=12830||_>=12832&&_<=12871||_>=12880&&_<=13054||_>=13056&&_<=19903||_>=19968&&_<=42124||_>=42128&&_<=42182||_>=43360&&_<=43388||_>=44032&&_<=55203||_>=55216&&_<=55238||_>=55243&&_<=55291||_>=63744&&_<=64255||_>=65040&&_<=65049||_>=65072&&_<=65106||_>=65108&&_<=65126||_>=65128&&_<=65131||_>=65281&&_<=65376||_>=65504&&_<=65510}n("./edit_session/folding").Folding.call(v.prototype),n("./edit_session/bracket_match").BracketMatch.call(v.prototype),a.defineOptions(v.prototype,"session",{wrap:{set:function(_){if(!_||_=="off"?_=!1:_=="free"?_=!0:_=="printMargin"?_=-1:typeof _=="string"&&(_=parseInt(_,10)||!1),this.$wrap!=_)if(this.$wrap=_,!_)this.setUseWrapMode(!1);else{var p=typeof _=="number"?_:null;this.setWrapLimitRange(p,p),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(_){_=_=="auto"?this.$mode.type!="text":_!="text",_!=this.$wrapAsCode&&(this.$wrapAsCode=_,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(_){this.$useWorker=_,this.$stopWorker(),_&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(_){_=parseInt(_),_>0&&this.$tabSize!==_&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=_,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(_){this.setFoldStyle(_)},handlesSet:!0},overwrite:{set:function(_){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(_){this.doc.setNewLineMode(_)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(_){this.setMode(_)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=v});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(n,t,e){"use strict";var i=n("./lib/lang"),r=n("./lib/oop"),s=n("./range").Range,a=function(){function l(){this.$options={}}return l.prototype.set=function(c){return r.mixin(this.$options,c),this},l.prototype.getOptions=function(){return i.copyObject(this.$options)},l.prototype.setOptions=function(c){this.$options=c},l.prototype.find=function(c){var u=this.$options,d=this.$matchIterator(c,u);if(!d)return!1;var h=null;return d.forEach(function(m,f,g,v){return h=new s(m,f,g,v),f==v&&u.start&&u.start.start&&u.skipCurrent!=!1&&h.isEqual(u.start)?(h=null,!1):!0}),h},l.prototype.findAll=function(c){var u=this.$options;if(!u.needle)return[];this.$assembleRegExp(u);var d=u.range,h=d?c.getLines(d.start.row,d.end.row):c.doc.getAllLines(),m=[],f=u.re;if(u.$isMultiLine){var g=f.length,v=h.length-g,w;e:for(var C=f.offset||0;C<=v;C++){for(var k=0;kE||(m.push(w=new s(C,E,C+g-1,T)),g>2&&(C=C+g-2))}}else for(var M=0;Mb&&m[k].end.row==S;)k--;for(m=m.slice(M,k+1),M=0,k=m.length;M=w;T--)if(y(T,Number.MAX_VALUE,E))return;if(u.wrap!=!1){for(T=C,w=v.row;T>=w;T--)if(y(T,Number.MAX_VALUE,E))return}}};else var k=function(T){var M=v.row;if(!y(M,v.column,T)){for(M=M+1;M<=C;M++)if(y(M,0,T))return;if(u.wrap!=!1){for(M=w,C=v.row;M<=C;M++)if(y(M,0,T))return}}};if(u.$isMultiLine)var x=d.length,y=function(E,T,M){var D=h?E-x+1:E;if(!(D<0||D+x>c.getLength())){var _=c.getLine(D),p=_.search(d[0]);if(!(!h&&pT)&&M(D,p,D+x-1,S))return!0}}};else if(h)var y=function(T,M,D){var _=c.getLine(T),p=[],b,S=0;for(d.lastIndex=0;b=d.exec(_);){var I=b[0].length;if(S=b.index,!I){if(S>=_.length)break;d.lastIndex=S+=i.skipEmptyMatch(_,S,f)}if(b.index+I>M)break;p.push(b.index,I)}for(var A=p.length-1;A>=0;A-=2){var R=p[A-1],I=p[A];if(D(T,R,T,R+I))return!0}};else var y=function(T,M,D){var _=c.getLine(T),p,b;for(d.lastIndex=M;b=d.exec(_);){var S=b[0].length;if(p=b.index,D(T,p,T,p+S))return!0;if(!S&&(d.lastIndex=p+=i.skipEmptyMatch(_,p,f),p>=_.length))return!1}};return{forEach:k}},l}();function o(l,c){var u=i.supportsLookbehind();function d(g,v){v===void 0&&(v=!0);var w=u&&c.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return w.test(g)||c.regExp?u&&c.$supportsUnicodeFlag?v?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var h=Array.from(l),m=h[0],f=h[h.length-1];return d(m)+l+d(f,!1)}t.Search=a});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var u=function(d,h){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var g in f)Object.prototype.hasOwnProperty.call(f,g)&&(m[g]=f[g])},u(d,h)};return function(d,h){if(typeof h!="function"&&h!==null)throw new TypeError("Class extends value "+String(h)+" is not a constructor or null");u(d,h);function m(){this.constructor=d}d.prototype=h===null?Object.create(h):(m.prototype=h.prototype,new m)}}(),r=n("../lib/keys"),s=n("../lib/useragent"),a=r.KEY_MODS,o=function(){function u(d,h){this.$init(d,h,!1)}return u.prototype.$init=function(d,h,m){this.platform=h||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(d),this.$singleCommand=m},u.prototype.addCommand=function(d){this.commands[d.name]&&this.removeCommand(d),this.commands[d.name]=d,d.bindKey&&this._buildKeyHash(d)},u.prototype.removeCommand=function(d,h){var m=d&&(typeof d=="string"?d:d.name);d=this.commands[m],h||delete this.commands[m];var f=this.commandKeyBinding;for(var g in f){var v=f[g];if(v==d)delete f[g];else if(Array.isArray(v)){var w=v.indexOf(d);w!=-1&&(v.splice(w,1),v.length==1&&(f[g]=v[0]))}}},u.prototype.bindKey=function(d,h,m){if(typeof d=="object"&&d&&(m==null&&(m=d.position),d=d[this.platform]),!!d){if(typeof h=="function")return this.addCommand({exec:h,bindKey:d,name:h.name||d});d.split("|").forEach(function(f){var g="";if(f.indexOf(" ")!=-1){var v=f.split(/\s+/);f=v.pop(),v.forEach(function(k){var x=this.parseKeys(k),y=a[x.hashId]+x.key;g+=(g?" ":"")+y,this._addCommandToBinding(g,"chainKeys")},this),g+=" "}var w=this.parseKeys(f),C=a[w.hashId]+w.key;this._addCommandToBinding(g+C,h,m)},this)}},u.prototype._addCommandToBinding=function(d,h,m){var f=this.commandKeyBinding,g;if(!h)delete f[d];else if(!f[d]||this.$singleCommand)f[d]=h;else{Array.isArray(f[d])?(g=f[d].indexOf(h))!=-1&&f[d].splice(g,1):f[d]=[f[d]],typeof m!="number"&&(m=l(h));var v=f[d];for(g=0;gm)break}v.splice(g,0,h)}},u.prototype.addCommands=function(d){d&&Object.keys(d).forEach(function(h){var m=d[h];if(m){if(typeof m=="string")return this.bindKey(m,h);typeof m=="function"&&(m={exec:m}),typeof m=="object"&&(m.name||(m.name=h),this.addCommand(m))}},this)},u.prototype.removeCommands=function(d){Object.keys(d).forEach(function(h){this.removeCommand(d[h])},this)},u.prototype.bindKeys=function(d){Object.keys(d).forEach(function(h){this.bindKey(h,d[h])},this)},u.prototype._buildKeyHash=function(d){this.bindKey(d.bindKey,d)},u.prototype.parseKeys=function(d){var h=d.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(C){return C}),m=h.pop(),f=r[m];if(r.FUNCTION_KEYS[f])m=r.FUNCTION_KEYS[f].toLowerCase();else if(h.length){if(h.length==1&&h[0]=="shift")return{key:m.toUpperCase(),hashId:-1}}else return{key:m,hashId:-1};for(var g=0,v=h.length;v--;){var w=r.KEY_MODS[h[v]];if(w==null)return typeof console<"u"&&console.error("invalid modifier "+h[v]+" in "+d),!1;g|=w}return{key:m,hashId:g}},u.prototype.findKeyCommand=function(d,h){var m=a[d]+h;return this.commandKeyBinding[m]},u.prototype.handleKeyboard=function(d,h,m,f){if(!(f<0)){var g=a[h]+m,v=this.commandKeyBinding[g];return d.$keyChain&&(d.$keyChain+=" "+g,v=this.commandKeyBinding[d.$keyChain]||v),v&&(v=="chainKeys"||v[v.length-1]=="chainKeys")?(d.$keyChain=d.$keyChain||g,{command:"null"}):(d.$keyChain&&((!h||h==4)&&m.length==1?d.$keyChain=d.$keyChain.slice(0,-g.length-1):(h==-1||f>0)&&(d.$keyChain="")),{command:v})}},u.prototype.getStatusText=function(d,h){return h.$keyChain||""},u}();function l(u){return typeof u=="object"&&u.bindKey&&u.bindKey.position||(u.isDefault?-100:0)}var c=function(u){i(d,u);function d(h,m){var f=u.call(this,h,m)||this;return f.$singleCommand=!0,f}return d}(o);c.call=function(u,d,h){o.prototype.$init.call(u,d,h,!0)},o.call=function(u,d,h){o.prototype.$init.call(u,d,h,!1)},t.HashHandler=c,t.MultiHashHandler=o});ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var l=function(c,u){return l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var m in h)Object.prototype.hasOwnProperty.call(h,m)&&(d[m]=h[m])},l(c,u)};return function(c,u){if(typeof u!="function"&&u!==null)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");l(c,u);function d(){this.constructor=c}c.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)}}(),r=n("../lib/oop"),s=n("../keyboard/hash_handler").MultiHashHandler,a=n("../lib/event_emitter").EventEmitter,o=function(l){i(c,l);function c(u,d){var h=l.call(this,d,u)||this;return h.byName=h.commands,h.setDefaultHandler("exec",function(m){return m.args?m.command.exec(m.editor,m.args,m.event,!1):m.command.exec(m.editor,{},m.event,!0)}),h}return c.prototype.exec=function(u,d,h){if(Array.isArray(u)){for(var m=u.length;m--;)if(this.exec(u[m],d,h))return!0;return!1}if(typeof u=="string"&&(u=this.commands[u]),!this.canExecute(u,d))return!1;var f={editor:d,command:u,args:h};return f.returnValue=this._emit("exec",f),this._signal("afterExec",f),f.returnValue!==!1},c.prototype.canExecute=function(u,d){return typeof u=="string"&&(u=this.commands[u]),!(!u||d&&d.$readOnly&&!u.readOnly||this.$checkCommandState!=!1&&u.isAvailable&&!u.isAvailable(d))},c.prototype.toggleRecording=function(u){if(!this.$inReplay)return u&&u._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(d){this.macro.push([d.command,d.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},c.prototype.replay=function(u){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(u);try{this.$inReplay=!0,this.macro.forEach(function(d){typeof d=="string"?this.exec(d,u):this.exec(d[0],u,d[1])},this)}finally{this.$inReplay=!1}}},c.prototype.trimMacro=function(u){return u.map(function(d){return typeof d[0]!="string"&&(d[0]=d[0].name),d[1]||(d=d[0]),d})},c}(s);r.implement(o.prototype,a),t.CommandManager=o});ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(n,t,e){"use strict";var i=n("../lib/lang"),r=n("../config"),s=n("../range").Range;function a(l,c){return{win:l,mac:c}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(l){r.loadModule("ace/ext/settings_menu",function(c){c.init(l),l.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(l){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(l,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(l){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(l,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(l){l.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(l){l.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(l,c){typeof c=="number"&&!isNaN(c)&&l.gotoLine(c),l.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(l){l.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(l){l.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(l){l.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(l){l.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(l){l.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(l){l.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(l){l.session.foldAll(),l.session.unfold(l.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(l){l.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(l){l.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(l){l.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(l){l.selection.isEmpty()?l.selection.selectWord():l.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(l){l.selection.isEmpty()?l.selection.selectWord():l.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(l){r.loadModule("ace/ext/searchbox",function(c){c.Search(l)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(l){l.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(l){l.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(l){l.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(l){l.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(l,c){l.navigateUp(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(l){l.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(l){l.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(l){l.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(l,c){l.navigateDown(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(l){l.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(l){l.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(l){l.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(l){l.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(l){l.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(l,c){l.navigateLeft(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(l){l.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(l){l.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(l){l.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(l){l.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(l){l.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(l,c){l.navigateRight(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(l){l.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(l){l.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(l){l.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(l){l.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(l){l.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(l){l.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(l){l.renderer.scrollBy(0,-2*l.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(l){l.renderer.scrollBy(0,2*l.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(l){l.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(l){l.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(l){l.commands.toggleRecording(l)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(l){l.commands.replay(l)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(l){l.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(l){l.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(l){l.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(l){},readOnly:!0},{name:"cut",description:"Cut",exec:function(l){var c=l.$copyWithEmptySelection&&l.selection.isEmpty(),u=c?l.selection.getLineRange():l.selection.getRange();l._emit("cut",u),u.isEmpty()||l.session.remove(u),l.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(l,c){l.$handlePaste(c)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(l){l.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(l){l.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(l){l.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(l){l.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(l){l.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(l){l.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(l){l.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(l){r.loadModule("ace/ext/searchbox",function(c){c.Search(l,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(l){l.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(l){l.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(l){l.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(l){l.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(l){l.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(l){l.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(l){l.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(l){l.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(l){if(l.selection.isEmpty())l.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(l){l.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(l){l.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(l){var c=l.selection.getRange();c.start.column=0,l.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(l){var c=l.selection.getRange();c.end.column=Number.MAX_VALUE,l.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(l){l.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(l){l.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(l){l.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(l){l.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(l){l.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(l){l.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(l,c){l.insert(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(l,c){l.insert(i.stringRepeat(c.text||"",c.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(l){l.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(l){l.transposeLetters()},multiSelectAction:function(l){l.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(l){l.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(l){l.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(l){l.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(l){var c=l.selection.getRange();c.start.column=c.end.column=0,c.end.row++,l.selection.setRange(c,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(l){l.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(l){for(var c=l.selection.isBackwards(),u=c?l.selection.getSelectionLead():l.selection.getSelectionAnchor(),d=c?l.selection.getSelectionAnchor():l.selection.getSelectionLead(),h=l.session.doc.getLine(u.row).length,m=l.session.doc.getTextRange(l.selection.getRange()),f=m.replace(/\n\s*/," ").length,g=l.session.doc.getLine(u.row),v=u.row+1;v<=d.row+1;v++){var w=i.stringTrimLeft(i.stringTrimRight(l.session.doc.getLine(v)));w.length!==0&&(w=" "+w),g+=w}d.row+10?(l.selection.moveCursorTo(u.row,u.column),l.selection.selectTo(u.row,u.column+f)):(h=l.session.doc.getLine(u.row).length>h?h+1:h,l.selection.moveCursorTo(u.row,h))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(l){var c=l.session.doc.getLength()-1,u=l.session.doc.getLine(c).length,d=l.selection.rangeList.ranges,h=[];d.length<1&&(d=[l.selection.getRange()]);for(var m=0;m0||l+c=0&&this.$isFoldWidgetVisible(l-c))return l-c;if(l+c<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(l+c))return l+c}return null},o.prototype.$findNearestAnnotation=function(l){if(this.$isAnnotationVisible(l))return l;for(var c=0;l-c>0||l+c=0&&this.$isAnnotationVisible(l-c))return l-c;if(l+c<=this.lines.getLength()-1&&this.$isAnnotationVisible(l+c))return l+c}return null},o.prototype.$focusFoldWidget=function(l){if(l!=null){var c=this.$getFoldWidget(l);c.classList.add(this.editor.renderer.keyboardFocusClassName),c.focus()}},o.prototype.$focusAnnotation=function(l){if(l!=null){var c=this.$getAnnotation(l);c.classList.add(this.editor.renderer.keyboardFocusClassName),c.focus()}},o.prototype.$blurFoldWidget=function(l){var c=this.$getFoldWidget(l);c.classList.remove(this.editor.renderer.keyboardFocusClassName),c.blur()},o.prototype.$blurAnnotation=function(l){var c=this.$getAnnotation(l);c.classList.remove(this.editor.renderer.keyboardFocusClassName),c.blur()},o.prototype.$moveFoldWidgetUp=function(){for(var l=this.activeRowIndex;l>0;)if(l--,this.$isFoldWidgetVisible(l)){this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=l,this.$focusFoldWidget(this.activeRowIndex);return}},o.prototype.$moveFoldWidgetDown=function(){for(var l=this.activeRowIndex;l0;)if(l--,this.$isAnnotationVisible(l)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=l,this.$focusAnnotation(this.activeRowIndex);return}},o.prototype.$moveAnnotationDown=function(){for(var l=this.activeRowIndex;l=_.length&&(_=void 0),{value:_&&_[S++],done:!_}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")},r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/lang"),o=n("./lib/useragent"),l=n("./keyboard/textinput").TextInput,c=n("./mouse/mouse_handler").MouseHandler,u=n("./mouse/fold_handler").FoldHandler,d=n("./keyboard/keybinding").KeyBinding,h=n("./edit_session").EditSession,m=n("./search").Search,f=n("./range").Range,g=n("./lib/event_emitter").EventEmitter,v=n("./commands/command_manager").CommandManager,w=n("./commands/default_commands").commands,C=n("./config"),k=n("./token_iterator").TokenIterator,x=n("./keyboard/gutter_handler").GutterKeyboardHandler,y=n("./config").nls,E=n("./clipboard"),T=n("./lib/keys"),M=function(){function _(p,b,S){this.session,this.$toDestroy=[];var I=p.getContainerElement();this.container=I,this.renderer=p,this.id="editor"+ ++_.$uid,this.commands=new v(o.isMac?"mac":"win",w),typeof document=="object"&&(this.textInput=new l(p.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new d(this),this.$search=new m().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(A,R){R._$emitInputEvent.schedule(31)}),this.setSession(b||S&&S.session||new h("")),C.resetOptions(this),S&&this.setOptions(S),C._signal("editor",this)}return _.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},_.prototype.startOperation=function(p){this.session.startOperation(p)},_.prototype.endOperation=function(p){this.session.endOperation(p)},_.prototype.onStartOperation=function(p){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,p||(this.previousCommand=null)},_.prototype.onEndOperation=function(p){if(this.curOp&&this.session){if(p&&p.returnValue===!1){this.curOp=null;return}if(this._signal("beforeEndOperation"),!this.curOp)return;var b=this.curOp.command,S=b&&b.scrollIntoView;if(S){switch(S){case"center-animate":S="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var I=this.selection.getRange(),A=this.renderer.layerConfig;(I.start.row>=A.lastRow||I.end.row<=A.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:break}S=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},_.prototype.$historyTracker=function(p){if(this.$mergeUndoDeltas){var b=this.prevOp,S=this.$mergeableCommands,I=b.command&&p.command.name==b.command.name;if(p.command.name=="insertstring"){var A=p.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),I=I&&this.mergeNextCommand&&(!/\s/.test(A)||/\s/.test(b.args)),this.mergeNextCommand=!0}else I=I&&S.indexOf(p.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(I=!1),I?this.session.mergeUndoDeltas=!0:S.indexOf(p.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},_.prototype.setKeyboardHandler=function(p,b){if(p&&typeof p=="string"&&p!="ace"){this.$keybindingId=p;var S=this;C.loadModule(["keybinding",p],function(I){S.$keybindingId==p&&S.keyBinding.setKeyboardHandler(I&&I.handler),b&&b()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(p),b&&b()},_.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},_.prototype.setSession=function(p){if(this.session!=p){this.curOp&&this.endOperation(),this.curOp={};var b=this.session;if(b){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var S=this.session.getSelection();S.off("changeCursor",this.$onCursorChange),S.off("changeSelection",this.$onSelectionChange)}this.session=p,p?(this.$onDocumentChange=this.onDocumentChange.bind(this),p.on("change",this.$onDocumentChange),this.renderer.setSession(p),this.$onChangeMode=this.onChangeMode.bind(this),p.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),p.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),p.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),p.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),p.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),p.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=p.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(p)),this._signal("changeSession",{session:p,oldSession:b}),this.curOp=null,b&&b._signal("changeEditor",{oldEditor:this}),b&&(b.$editor=null),p&&p._signal("changeEditor",{editor:this}),p&&(p.$editor=this),p&&!p.destroyed&&p.bgTokenizer.scheduleStart()}},_.prototype.getSession=function(){return this.session},_.prototype.setValue=function(p,b){return this.session.doc.setValue(p),b?b==1?this.navigateFileEnd():b==-1&&this.navigateFileStart():this.selectAll(),p},_.prototype.getValue=function(){return this.session.getValue()},_.prototype.getSelection=function(){return this.selection},_.prototype.resize=function(p){this.renderer.onResize(p)},_.prototype.setTheme=function(p,b){this.renderer.setTheme(p,b)},_.prototype.getTheme=function(){return this.renderer.getTheme()},_.prototype.setStyle=function(p){this.renderer.setStyle(p)},_.prototype.unsetStyle=function(p){this.renderer.unsetStyle(p)},_.prototype.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},_.prototype.setFontSize=function(p){this.setOption("fontSize",p)},_.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var p=this;this.$highlightPending=!0,setTimeout(function(){p.$highlightPending=!1;var b=p.session;if(!(!b||b.destroyed)){b.$bracketHighlight&&(b.$bracketHighlight.markerIds.forEach(function(V){b.removeMarker(V)}),b.$bracketHighlight=null);var S=p.getCursorPosition(),I=p.getKeyboardHandler(),A=I&&I.$getDirectionForHighlight&&I.$getDirectionForHighlight(p),R=b.getMatchingBracketRanges(S,A);if(!R){var O=new k(b,S.row,S.column),U=O.getCurrentToken();if(U&&/\b(?:tag-open|tag-name)/.test(U.type)){var P=b.getMatchingTags(S);P&&(R=[P.openTagName.isEmpty()?P.openTag:P.openTagName,P.closeTagName.isEmpty()?P.closeTag:P.closeTagName])}}if(!R&&b.$mode.getMatching&&(R=b.$mode.getMatching(p.session)),!R){p.getHighlightIndentGuides()&&p.renderer.$textLayer.$highlightIndentGuide();return}var W="ace_bracket";Array.isArray(R)?R.length==1&&(W="ace_error_bracket"):R=[R],R.length==2&&(f.comparePoints(R[0].end,R[1].start)==0?R=[f.fromPoints(R[0].start,R[1].end)]:f.comparePoints(R[0].start,R[1].end)==0&&(R=[f.fromPoints(R[1].start,R[0].end)])),b.$bracketHighlight={ranges:R,markerIds:R.map(function(V){return b.addMarker(V,W,"text")})},p.getHighlightIndentGuides()&&p.renderer.$textLayer.$highlightIndentGuide()}},50)}},_.prototype.focus=function(){this.textInput.focus()},_.prototype.isFocused=function(){return this.textInput.isFocused()},_.prototype.blur=function(){this.textInput.blur()},_.prototype.onFocus=function(p){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",p))},_.prototype.onBlur=function(p){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",p))},_.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},_.prototype.onDocumentChange=function(p){var b=this.session.$useWrapMode,S=p.start.row==p.end.row?p.end.row:1/0;this.renderer.updateLines(p.start.row,S,b),this._signal("change",p),this.$cursorChange()},_.prototype.onTokenizerUpdate=function(p){var b=p.data;this.renderer.updateLines(b.first,b.last)},_.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},_.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},_.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},_.prototype.$updateHighlightActiveLine=function(){var p=this.getSession(),b;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(b=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(b=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(b=!1)),p.$highlightLineMarker&&!b)p.removeMarker(p.$highlightLineMarker.id),p.$highlightLineMarker=null;else if(!p.$highlightLineMarker&&b){var S=new f(b.row,b.column,b.row,1/0);S.id=p.addMarker(S,"ace_active-line","screenLine"),p.$highlightLineMarker=S}else b&&(p.$highlightLineMarker.start.row=b.row,p.$highlightLineMarker.end.row=b.row,p.$highlightLineMarker.start.column=b.column,p._signal("changeBackMarker"))},_.prototype.onSelectionChange=function(p){var b=this.session;if(b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var S=this.selection.getRange(),I=this.getSelectionStyle();b.$selectionMarker=b.addMarker(S,"ace_selection",I)}var A=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(A),this._signal("changeSelection")},_.prototype.$getSelectionHighLightRegexp=function(){var p=this.session,b=this.getSelectionRange();if(!(b.isEmpty()||b.isMultiLine())){var S=b.start.column,I=b.end.column,A=p.getLine(b.start.row),R=A.substring(S,I);if(!(R.length>5e3||!/[\w\d]/.test(R))){var O=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:R}),U=A.substring(S-1,I+1);if(O.test(U))return O}}},_.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},_.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},_.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},_.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},_.prototype.onChangeMode=function(p){this.renderer.updateText(),this._emit("changeMode",p)},_.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},_.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},_.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},_.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},_.prototype.getCopyText=function(){var p=this.getSelectedText(),b=this.session.doc.getNewLineCharacter(),S=!1;if(!p&&this.$copyWithEmptySelection){S=!0;for(var I=this.selection.getAllRanges(),A=0;AV.search(/\S|$/)){var U=V.substr(A.column).search(/\S|$/);S.doc.removeInLine(A.row,A.column,A.column+U)}}this.clearSelection();var P=A.column,W=S.getState(A.row),V=S.getLine(A.row),K=I.checkOutdent(W,V,p);if(S.insert(A,p),R&&R.selection&&(R.selection.length==2?this.selection.setSelectionRange(new f(A.row,P+R.selection[0],A.row,P+R.selection[1])):this.selection.setSelectionRange(new f(A.row+R.selection[0],R.selection[1],A.row+R.selection[2],R.selection[3]))),this.$enableAutoIndent){if(S.getDocument().isNewLine(p)){var Q=I.getNextLineIndent(W,V.slice(0,A.column),S.getTabString());S.insert({row:A.row+1,column:0},Q)}K&&I.autoOutdent(W,S,A.row)}},_.prototype.autoIndent=function(){for(var p=this.session,b=p.getMode(),S=this.selection.isEmpty()?[new f(0,0,p.doc.getLength()-1,0)]:this.selection.getAllRanges(),I="",A="",R="",O=p.getTabString(),U=0;U0&&(I=p.getState(V-1),A=p.getLine(V-1),R=b.getNextLineIndent(I,A,O));var K=p.getLine(V),Q=b.$getIndent(K);if(R!==Q){if(Q.length>0){var q=new f(V,0,V,Q.length);p.remove(q)}R.length>0&&p.insert({row:V,column:0},R)}b.autoOutdent(I,p,V)}},_.prototype.onTextInput=function(p,b){if(!b)return this.keyBinding.onTextInput(p);this.startOperation({command:{name:"insertstring"}});var S=this.applyComposition.bind(this,p,b);this.selection.rangeCount?this.forEachSelection(S):S(),this.endOperation()},_.prototype.applyComposition=function(p,b){if(b.extendLeft||b.extendRight){var S=this.selection.getRange();S.start.column-=b.extendLeft,S.end.column+=b.extendRight,S.start.column<0&&(S.start.row--,S.start.column+=this.session.getLine(S.start.row).length+1),this.selection.setRange(S),!p&&!S.isEmpty()&&this.remove()}if((p||!this.selection.isEmpty())&&this.insert(p,!0),b.restoreStart||b.restoreEnd){var S=this.selection.getRange();S.start.column-=b.restoreStart,S.end.column-=b.restoreEnd,this.selection.setRange(S)}},_.prototype.onCommandKey=function(p,b,S){return this.keyBinding.onCommandKey(p,b,S)},_.prototype.setOverwrite=function(p){this.session.setOverwrite(p)},_.prototype.getOverwrite=function(){return this.session.getOverwrite()},_.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},_.prototype.setScrollSpeed=function(p){this.setOption("scrollSpeed",p)},_.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},_.prototype.setDragDelay=function(p){this.setOption("dragDelay",p)},_.prototype.getDragDelay=function(){return this.getOption("dragDelay")},_.prototype.setSelectionStyle=function(p){this.setOption("selectionStyle",p)},_.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},_.prototype.setHighlightActiveLine=function(p){this.setOption("highlightActiveLine",p)},_.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},_.prototype.setHighlightGutterLine=function(p){this.setOption("highlightGutterLine",p)},_.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},_.prototype.setHighlightSelectedWord=function(p){this.setOption("highlightSelectedWord",p)},_.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},_.prototype.setAnimatedScroll=function(p){this.renderer.setAnimatedScroll(p)},_.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},_.prototype.setShowInvisibles=function(p){this.renderer.setShowInvisibles(p)},_.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},_.prototype.setDisplayIndentGuides=function(p){this.renderer.setDisplayIndentGuides(p)},_.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},_.prototype.setHighlightIndentGuides=function(p){this.renderer.setHighlightIndentGuides(p)},_.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},_.prototype.setShowPrintMargin=function(p){this.renderer.setShowPrintMargin(p)},_.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},_.prototype.setPrintMarginColumn=function(p){this.renderer.setPrintMarginColumn(p)},_.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},_.prototype.setReadOnly=function(p){this.setOption("readOnly",p)},_.prototype.getReadOnly=function(){return this.getOption("readOnly")},_.prototype.setBehavioursEnabled=function(p){this.setOption("behavioursEnabled",p)},_.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},_.prototype.setWrapBehavioursEnabled=function(p){this.setOption("wrapBehavioursEnabled",p)},_.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},_.prototype.setShowFoldWidgets=function(p){this.setOption("showFoldWidgets",p)},_.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},_.prototype.setFadeFoldWidgets=function(p){this.setOption("fadeFoldWidgets",p)},_.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},_.prototype.remove=function(p){this.selection.isEmpty()&&(p=="left"?this.selection.selectLeft():this.selection.selectRight());var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var S=this.session,I=S.getState(b.start.row),A=S.getMode().transformAction(I,"deletion",this,S,b);if(b.end.column===0){var R=S.getTextRange(b);if(R[R.length-1]==` -`){var O=S.getLine(b.end.row);/^\s+$/.test(O)&&(b.end.column=O.length)}}A&&(b=A)}this.session.remove(b),this.clearSelection()},_.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var p=this.getSelectionRange();p.start.column==p.end.column&&p.start.row==p.end.row&&(p.end.column=0,p.end.row++),this.session.remove(p),this.clearSelection()},_.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var p=this.getCursorPosition();this.insert(` -`),this.moveCursorToPosition(p)},_.prototype.setGhostText=function(p,b){this.renderer.setGhostText(p,b)},_.prototype.removeGhostText=function(){this.renderer.removeGhostText()},_.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var p=this.getCursorPosition(),b=p.column;if(b!==0){var S=this.session.getLine(p.row),I,A;bU.toLowerCase()?1:0});for(var A=new f(0,0,0,0),I=p.first;I<=p.last;I++){var R=b.getLine(I);A.start.row=I,A.end.row=I,A.end.column=R.length,b.replace(A,S[I-p.first])}},_.prototype.toggleCommentLines=function(){var p=this.session.getState(this.getCursorPosition().row),b=this.$getSelectedRows();this.session.getMode().toggleCommentLines(p,this.session,b.first,b.last)},_.prototype.toggleBlockComment=function(){var p=this.getCursorPosition(),b=this.session.getState(p.row),S=this.getSelectionRange();this.session.getMode().toggleBlockComment(b,this.session,S,p)},_.prototype.getNumberAt=function(p,b){var S=/[\-]?[0-9]+(?:\.[0-9]+)?/g;S.lastIndex=0;for(var I=this.session.getLine(p);S.lastIndex=b){var R={value:A[0],start:A.index,end:A.index+A[0].length};return R}}return null},_.prototype.modifyNumber=function(p){var b=this.selection.getCursor().row,S=this.selection.getCursor().column,I=new f(b,S-1,b,S),A=this.session.getTextRange(I);if(!isNaN(parseFloat(A))&&isFinite(A)){var R=this.getNumberAt(b,S);if(R){var O=R.value.indexOf(".")>=0?R.start+R.value.indexOf(".")+1:R.end,U=R.start+R.value.length-O,P=parseFloat(R.value);P*=Math.pow(10,U),O!==R.end&&S=O&&R<=U&&(S=ae,P.selection.clearSelection(),P.moveCursorTo(p,O+I),P.selection.selectTo(p,U+I)),O=U});for(var W=this.$toggleWordPairs,V,K=0;K=U&&O<=P&&Q.match(/((?:https?|ftp):\/\/[\S]+)/)){W=Q.replace(/[\s:.,'";}\]]+$/,"");break}U=P}}catch(q){S={error:q}}finally{try{K&&!K.done&&(I=V.return)&&I.call(V)}finally{if(S)throw S.error}}return W},_.prototype.openLink=function(){var p=this.selection.getCursor(),b=this.findLinkAt(p.row,p.column);return b&&window.open(b,"_blank"),b!=null},_.prototype.removeLines=function(){var p=this.$getSelectedRows();this.session.removeFullLines(p.first,p.last),this.clearSelection()},_.prototype.duplicateSelection=function(){var p=this.selection,b=this.session,S=p.getRange(),I=p.isBackwards();if(S.isEmpty()){var A=S.start.row;b.duplicateLines(A,A)}else{var R=I?S.start:S.end,O=b.insert(R,b.getTextRange(S));S.start=R,S.end=O,p.setSelectionRange(S,I)}},_.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},_.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},_.prototype.moveText=function(p,b,S){return this.session.moveText(p,b,S)},_.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},_.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},_.prototype.$moveLines=function(p,b){var S,I,A=this.selection;if(!A.inMultiSelectMode||this.inVirtualSelectionMode){var R=A.toOrientedRange();S=this.$getSelectedRows(R),I=this.session.$moveLines(S.first,S.last,b?0:p),b&&p==-1&&(I=0),R.moveBy(I,0),A.fromOrientedRange(R)}else{var O=A.rangeList.ranges;A.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var U=0,P=0,W=O.length,V=0;Vq+1)break;q=ce.last}for(V--,U=this.session.$moveLines(Q,q,b?0:p),b&&p==-1&&(K=V+1);K<=V;)O[K].moveBy(U,0),K++;b||(U=0),P+=U}A.fromOrientedRange(A.ranges[0]),A.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},_.prototype.$getSelectedRows=function(p){return p=(p||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(p.start.row),last:this.session.getRowFoldEnd(p.end.row)}},_.prototype.onCompositionStart=function(p){this.renderer.showComposition(p)},_.prototype.onCompositionUpdate=function(p){this.renderer.setCompositionText(p)},_.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},_.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},_.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},_.prototype.isRowVisible=function(p){return p>=this.getFirstVisibleRow()&&p<=this.getLastVisibleRow()},_.prototype.isRowFullyVisible=function(p){return p>=this.renderer.getFirstFullyVisibleRow()&&p<=this.renderer.getLastFullyVisibleRow()},_.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},_.prototype.$moveByPage=function(p,b){var S=this.renderer,I=this.renderer.layerConfig,A=p*Math.floor(I.height/I.lineHeight);b===!0?this.selection.$moveSelection(function(){this.moveCursorBy(A,0)}):b===!1&&(this.selection.moveCursorBy(A,0),this.selection.clearSelection());var R=S.scrollTop;S.scrollBy(0,A*I.lineHeight),b!=null&&S.scrollCursorIntoView(null,.5),S.animateScrolling(R)},_.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},_.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},_.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},_.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},_.prototype.scrollPageDown=function(){this.$moveByPage(1)},_.prototype.scrollPageUp=function(){this.$moveByPage(-1)},_.prototype.scrollToRow=function(p){this.renderer.scrollToRow(p)},_.prototype.scrollToLine=function(p,b,S,I){this.renderer.scrollToLine(p,b,S,I)},_.prototype.centerSelection=function(){var p=this.getSelectionRange(),b={row:Math.floor(p.start.row+(p.end.row-p.start.row)/2),column:Math.floor(p.start.column+(p.end.column-p.start.column)/2)};this.renderer.alignCursor(b,.5)},_.prototype.getCursorPosition=function(){return this.selection.getCursor()},_.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},_.prototype.getSelectionRange=function(){return this.selection.getRange()},_.prototype.selectAll=function(){this.selection.selectAll()},_.prototype.clearSelection=function(){this.selection.clearSelection()},_.prototype.moveCursorTo=function(p,b){this.selection.moveCursorTo(p,b)},_.prototype.moveCursorToPosition=function(p){this.selection.moveCursorToPosition(p)},_.prototype.jumpToMatching=function(p,b){var S=this.getCursorPosition(),I=new k(this.session,S.row,S.column),A=I.getCurrentToken(),R=0;A&&A.type.indexOf("tag-name")!==-1&&(A=I.stepBackward());var O=A||I.stepForward();if(O){var U,P=!1,W={},V=S.column-O.start,K,Q={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(O.value.match(/[{}()\[\]]/g)){for(;V1?W[O.value]++:A.value==="=0;--R)this.$tryReplace(S[R],p)&&I++;return this.selection.setSelectionRange(A),I},_.prototype.$tryReplace=function(p,b){var S=this.session.getTextRange(p);return b=this.$search.replace(S,b),b!==null?(p.end=this.session.replace(p,b),p):null},_.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},_.prototype.find=function(p,b,S){b||(b={}),typeof p=="string"||p instanceof RegExp?b.needle=p:typeof p=="object"&&r.mixin(b,p);var I=this.selection.getRange();b.needle==null&&(p=this.session.getTextRange(I)||this.$search.$options.needle,p||(I=this.session.getWordRange(I.start.row,I.start.column),p=this.session.getTextRange(I)),this.$search.set({needle:p})),this.$search.set(b),b.start||this.$search.set({start:I});var A=this.$search.find(this.session);if(b.preventScroll)return A;if(A)return this.revealRange(A,S),A;b.backwards?I.start=I.end:I.end=I.start,this.selection.setRange(I)},_.prototype.findNext=function(p,b){this.find({skipCurrent:!0,backwards:!1},p,b)},_.prototype.findPrevious=function(p,b){this.find(p,{skipCurrent:!0,backwards:!0},b)},_.prototype.revealRange=function(p,b){this.session.unfold(p),this.selection.setSelectionRange(p);var S=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(p.start,p.end,.5),b!==!1&&this.renderer.animateScrolling(S)},_.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},_.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},_.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(p){p.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},_.prototype.setAutoScrollEditorIntoView=function(p){if(p){var b,S=this,I=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var A=this.$scrollAnchor;A.style.cssText="position:absolute",this.container.insertBefore(A,this.container.firstChild);var R=this.on("changeSelection",function(){I=!0}),O=this.renderer.on("beforeRender",function(){I&&(b=S.renderer.container.getBoundingClientRect())}),U=this.renderer.on("afterRender",function(){if(I&&b&&(S.isFocused()||S.searchBox&&S.searchBox.isFocused())){var P=S.renderer,W=P.$cursorLayer.$pixelPos,V=P.layerConfig,K=W.top-V.offset;W.top>=0&&K+b.top<0?I=!0:W.topwindow.innerHeight?I=!1:I=null,I!=null&&(A.style.top=K+"px",A.style.left=W.left+"px",A.style.height=V.lineHeight+"px",A.scrollIntoView(I)),I=b=null}});this.setAutoScrollEditorIntoView=function(P){P||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",R),this.renderer.off("afterRender",U),this.renderer.off("beforeRender",O))}}},_.prototype.$resetCursorStyle=function(){var p=this.$cursorStyle||"ace",b=this.renderer.$cursorLayer;b&&(b.setSmoothBlinking(/smooth/.test(p)),b.isBlinking=!this.$readOnly&&p!="wide",s.setCssClass(b.element,"ace_slim-cursors",/slim/.test(p)))},_.prototype.prompt=function(p,b,S){var I=this;C.loadModule("ace/ext/prompt",function(A){A.prompt(I,p,b,S)})},_}();M.$uid=0,M.prototype.curOp=null,M.prototype.prevOp={},M.prototype.$mergeableCommands=["backspace","del","insertstring"],M.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],r.implement(M.prototype,g),C.defineOptions(M.prototype,"editor",{selectionStyle:{set:function(_){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:_})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(_){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(_){this.textInput.setReadOnly(_),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(_){this.textInput.setCopyWithEmptySelection(_)},initialValue:!1},cursorStyle:{set:function(_){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(_){this.setAutoScrollEditorIntoView(_)}},keyboardHandler:{set:function(_){this.setKeyboardHandler(_)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(_){this.session.setValue(_)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(_){this.setSession(_)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(_){this.renderer.$gutterLayer.setShowLineNumbers(_),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),_&&this.$relativeLineNumbers?D.attach(this):D.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(_){this.$showLineNumbers&&_?D.attach(this):D.detach(this)}},placeholder:{set:function(_){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var p=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(p&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!p&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var b=s.createElement("div");b.className="ace_placeholder",b.textContent=this.$placeholder||"",this.renderer.placeholderNode=b,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!p&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(_){var p={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(I){I.blur(),I.renderer.scroller.focus()},readOnly:!0},b=function(I){if(I.target==this.renderer.scroller&&I.keyCode===T.enter){I.preventDefault();var A=this.getCursorPosition().row;this.isRowVisible(A)||this.scrollToLine(A,!0,!0),this.focus()}},S;_?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(o.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",y("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",y("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",b.bind(this)),this.commands.addCommand(p),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",y("editor.gutter.aria-roledescription","editor")),this.renderer.$gutter.setAttribute("aria-label",y("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),S||(S=new x(this)),S.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",b.bind(this)),this.commands.removeCommand(p),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),S&&S.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(_){this.$textInputAriaLabel=_},initialValue:""},enableMobileMenu:{set:function(_){this.$enableMobileMenu=_},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var D={getText:function(_,p){return(Math.abs(_.selection.lead.row-p)||p+1+(p<9?"\xB7":""))+""},getWidth:function(_,p,b){return Math.max(p.toString().length,(b.lastRow+1).toString().length,2)*b.characterWidth},update:function(_,p){p.renderer.$loop.schedule(p.renderer.CHANGE_GUTTER)},attach:function(_){_.renderer.$gutterLayer.$renderer=this,_.on("changeSelection",this.update),this.update(null,_)},detach:function(_){_.renderer.$gutterLayer.$renderer==this&&(_.renderer.$gutterLayer.$renderer=null),_.off("changeSelection",this.update),this.update(null,_)}};t.Editor=M});ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=function(){function s(a,o){this.element=a,this.canvasHeight=o||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return s.prototype.moveContainer=function(a){i.translate(this.element,0,-(a.firstRowScreen*a.lineHeight%this.canvasHeight)-a.offset*this.$offsetCoefficient)},s.prototype.pageChanged=function(a,o){return Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)!==Math.floor(o.firstRowScreen*o.lineHeight/this.canvasHeight)},s.prototype.computeLineTop=function(a,o,l){var c=o.firstRowScreen*o.lineHeight,u=Math.floor(c/this.canvasHeight),d=l.documentToScreenRow(a,0)*o.lineHeight;return d-u*this.canvasHeight},s.prototype.computeLineHeight=function(a,o,l){return o.lineHeight*l.getRowLineCount(a)},s.prototype.getLength=function(){return this.cells.length},s.prototype.get=function(a){return this.cells[a]},s.prototype.shift=function(){this.$cacheCell(this.cells.shift())},s.prototype.pop=function(){this.$cacheCell(this.cells.pop())},s.prototype.push=function(a){if(Array.isArray(a)){this.cells.push.apply(this.cells,a);for(var o=i.createFragment(this.element),l=0;lw&&(x=v.end.row+1,v=m.getNextFoldLine(x,v),w=v?v.start.row:1/0),x>g){for(;this.$lines.getLength()>k+1;)this.$lines.pop();break}C=this.$lines.get(++k),C?C.row=x:(C=this.$lines.createCell(x,h,this.session,u),this.$lines.push(C)),this.$renderCell(C,h,v,x),x++}this._signal("afterRender"),this.$updateGutterWidth(h)},d.prototype.$updateGutterWidth=function(h){var m=this.session,f=m.gutterRenderer||this.$renderer,g=m.$firstLineNumber,v=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||m.$useWrapMode)&&(v=m.getLength()+g-1);var w=f?f.getWidth(m,v,h):v.toString().length*h.characterWidth,C=this.$padding||this.$computePadding();w+=C.left+C.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",w))},d.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var h=this.session.selection.getCursor();this.$cursorRow!==h.row&&(this.$cursorRow=h.row)}},d.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var h=this.session.selection.cursor.row;if(this.$cursorRow=h,!(this.$cursorCell&&this.$cursorCell.row==h)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var m=this.$lines.cells;this.$cursorCell=null;for(var f=0;f=this.$cursorRow){if(g.row>this.$cursorRow){var v=this.session.getFoldLine(this.$cursorRow);if(f>0&&v&&v.start.row==m[f-1].row)g=m[f-1];else break}g.element.className="ace_gutter-active-line "+g.element.className,this.$cursorCell=g;break}}}}},d.prototype.scrollLines=function(h){var m=this.config;if(this.config=h,this.$updateCursorRow(),this.$lines.pageChanged(m,h))return this.update(h);this.$lines.moveContainer(h);var f=Math.min(h.lastRow+h.gutterOffset,this.session.getLength()-1),g=this.oldLastRow;if(this.oldLastRow=f,!m||g0;v--)this.$lines.shift();if(g>f)for(var v=this.session.getFoldedRowCount(f+1,g);v>0;v--)this.$lines.pop();h.firstRowg&&this.$lines.push(this.$renderLines(h,g+1,f)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(h)},d.prototype.$renderLines=function(h,m,f){for(var g=[],v=m,w=this.session.getNextFoldLine(v),C=w?w.start.row:1/0;v>C&&(v=w.end.row+1,w=this.session.getNextFoldLine(v,w),C=w?w.start.row:1/0),!(v>f);){var k=this.$lines.createCell(v,h,this.session,u);this.$renderCell(k,h,w,v),g.push(k),v++}return g},d.prototype.$renderCell=function(h,m,f,g){var v=h.element,w=this.session,C=v.childNodes[0],k=v.childNodes[1],x=v.childNodes[2],y=x.firstChild,E=w.$firstLineNumber,T=w.$breakpoints,M=w.$decorations,D=w.gutterRenderer||this.$renderer,_=this.$showFoldWidgets&&w.foldWidgets,p=f?f.start.row:Number.MAX_VALUE,b=m.lineHeight+"px",S=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",I=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",A=(D?D.getText(w,g):g+E).toString();if(this.$highlightGutterLine&&(g==this.$cursorRow||f&&g=p&&this.$cursorRow<=f.end.row)&&(S+="ace_gutter-active-line ",this.$cursorCell!=h&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=h)),T[g]&&(S+=T[g]),M[g]&&(S+=M[g]),this.$annotations[g]&&g!==p&&(S+=this.$annotations[g].className),_){var R=_[g];R==null&&(R=_[g]=w.getFoldWidget(g))}if(R){var O="ace_fold-widget ace_"+R,U=R=="start"&&g==p&&gf.right-m.right)return"foldWidgets"},d}();c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,r.implement(c.prototype,a);function u(d){var h=document.createTextNode("");d.appendChild(h);var m=i.createElement("span");d.appendChild(m);var f=i.createElement("span");d.appendChild(f);var g=i.createElement("span");return f.appendChild(g),d}t.Gutter=c});ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../range").Range,r=n("../lib/dom"),s=function(){function o(l){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",l.appendChild(this.element)}return o.prototype.setPadding=function(l){this.$padding=l},o.prototype.setSession=function(l){this.session=l},o.prototype.setMarkers=function(l){this.markers=l},o.prototype.elt=function(l,c){var u=this.i!=-1&&this.element.childNodes[this.i];u?this.i++:(u=document.createElement("div"),this.element.appendChild(u),this.i=-1),u.style.cssText=c,u.className=l},o.prototype.update=function(l){if(l){this.config=l,this.i=0;var c;for(var u in this.markers){var d=this.markers[u];if(!d.range){d.update(c,this,this.session,l);continue}var h=d.range.clipRows(l.firstRow,l.lastRow);if(!h.isEmpty())if(h=h.toScreenRange(this.session),d.renderer){var m=this.$getTop(h.start.row,l),f=this.$padding+h.start.column*l.characterWidth;d.renderer(c,h,f,m,l)}else d.type=="fullLine"?this.drawFullLineMarker(c,h,d.clazz,l):d.type=="screenLine"?this.drawScreenLineMarker(c,h,d.clazz,l):h.isMultiLine()?d.type=="text"?this.drawTextMarker(c,h,d.clazz,l):this.drawMultiLineMarker(c,h,d.clazz,l):this.drawSingleLineMarker(c,h,d.clazz+" ace_start ace_br15",l)}if(this.i!=-1)for(;this.ik,v==g),d,v==g?0:1,h)},o.prototype.drawMultiLineMarker=function(l,c,u,d,h){var m=this.$padding,f=d.lineHeight,g=this.$getTop(c.start.row,d),v=m+c.start.column*d.characterWidth;if(h=h||"",this.session.$bidiHandler.isBidiRow(c.start.row)){var w=c.clone();w.end.row=w.start.row,w.end.column=this.session.getLine(w.start.row).length,this.drawBidiSingleLineMarker(l,w,u+" ace_br1 ace_start",d,null,h)}else this.elt(u+" ace_br1 ace_start","height:"+f+"px;right:"+m+"px;top:"+g+"px;left:"+v+"px;"+(h||""));if(this.session.$bidiHandler.isBidiRow(c.end.row)){var w=c.clone();w.start.row=w.end.row,w.start.column=0,this.drawBidiSingleLineMarker(l,w,u+" ace_br12",d,null,h)}else{g=this.$getTop(c.end.row,d);var C=c.end.column*d.characterWidth;this.elt(u+" ace_br12","height:"+f+"px;width:"+C+"px;top:"+g+"px;left:"+m+"px;"+(h||""))}if(f=(c.end.row-c.start.row-1)*d.lineHeight,!(f<=0)){g=this.$getTop(c.start.row+1,d);var k=(c.start.column?1:0)|(c.end.column?0:8);this.elt(u+(k?" ace_br"+k:""),"height:"+f+"px;right:"+m+"px;top:"+g+"px;left:"+m+"px;"+(h||""))}},o.prototype.drawSingleLineMarker=function(l,c,u,d,h,m){if(this.session.$bidiHandler.isBidiRow(c.start.row))return this.drawBidiSingleLineMarker(l,c,u,d,h,m);var f=d.lineHeight,g=(c.end.column+(h||0)-c.start.column)*d.characterWidth,v=this.$getTop(c.start.row,d),w=this.$padding+c.start.column*d.characterWidth;this.elt(u,"height:"+f+"px;width:"+g+"px;top:"+v+"px;left:"+w+"px;"+(m||""))},o.prototype.drawBidiSingleLineMarker=function(l,c,u,d,h,m){var f=d.lineHeight,g=this.$getTop(c.start.row,d),v=this.$padding,w=this.session.$bidiHandler.getSelections(c.start.column,c.end.column);w.forEach(function(C){this.elt(u,"height:"+f+"px;width:"+(C.width+(h||0))+"px;top:"+g+"px;left:"+(v+C.left)+"px;"+(m||""))},this)},o.prototype.drawFullLineMarker=function(l,c,u,d,h){var m=this.$getTop(c.start.row,d),f=d.lineHeight;c.start.row!=c.end.row&&(f+=this.$getTop(c.end.row,d)-m),this.elt(u,"height:"+f+"px;top:"+m+"px;left:0;right:0;"+(h||""))},o.prototype.drawScreenLineMarker=function(l,c,u,d,h){var m=this.$getTop(c.start.row,d),f=d.lineHeight;this.elt(u,"height:"+f+"px;top:"+m+"px;left:0;right:0;"+(h||""))},o}();s.prototype.$padding=0;function a(o,l,c,u){return(o?1:0)|(l?2:0)|(c?4:0)|(u?8:0)}t.Marker=s});ace.define("ace/layer/text_util",["require","exports","module"],function(n,t,e){var i=new Set(["text","rparen","lparen"]);t.isTextToken=function(r){return i.has(r)}});ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("../lib/dom"),s=n("../lib/lang"),a=n("./lines").Lines,o=n("../lib/event_emitter").EventEmitter,l=n("../config").nls,c=n("./text_util").isTextToken,u=function(){function d(h){this.dom=r,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",h.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)}return d.prototype.$updateEolChar=function(){var h=this.session.doc,m=h.getNewLineCharacter()==` -`&&h.getNewLineMode()!="windows",f=m?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=f)return this.EOL_CHAR=f,!0},d.prototype.setPadding=function(h){this.$padding=h,this.element.style.margin="0 "+h+"px"},d.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},d.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},d.prototype.$setFontMetrics=function(h){this.$fontMetrics=h,this.$fontMetrics.on("changeCharacterSize",function(m){this._signal("changeCharacterSize",m)}.bind(this)),this.$pollSizeChanges()},d.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},d.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},d.prototype.setSession=function(h){this.session=h,h&&this.$computeTabString()},d.prototype.setShowInvisibles=function(h){return this.showInvisibles==h?!1:(this.showInvisibles=h,typeof h=="string"?(this.showSpaces=/tab/i.test(h),this.showTabs=/space/i.test(h),this.showEOL=/eol/i.test(h)):this.showSpaces=this.showTabs=this.showEOL=h,this.$computeTabString(),!0)},d.prototype.setDisplayIndentGuides=function(h){return this.displayIndentGuides==h?!1:(this.displayIndentGuides=h,this.$computeTabString(),!0)},d.prototype.setHighlightIndentGuides=function(h){return this.$highlightIndentGuides===h?!1:(this.$highlightIndentGuides=h,h)},d.prototype.$computeTabString=function(){var h=this.session.getTabSize();this.tabSize=h;for(var m=this.$tabStrings=[0],f=1;fE&&(x=y.end.row+1,y=this.session.getNextFoldLine(x,y),E=y?y.start.row:1/0),!(x>v);){var T=w[C++];if(T){this.dom.removeChildren(T),this.$renderLine(T,x,x==E?y:!1),k&&(T.style.top=this.$lines.computeLineTop(x,h,this.session)+"px");var M=h.lineHeight*this.session.getRowLength(x)+"px";T.style.height!=M&&(k=!0,T.style.height=M)}x++}if(k)for(;C0;v--)this.$lines.shift();if(m.lastRow>h.lastRow)for(var v=this.session.getFoldedRowCount(h.lastRow+1,m.lastRow);v>0;v--)this.$lines.pop();h.firstRowm.lastRow&&this.$lines.push(this.$renderLinesFragment(h,m.lastRow+1,h.lastRow)),this.$highlightIndentGuide()},d.prototype.$renderLinesFragment=function(h,m,f){for(var g=[],v=m,w=this.session.getNextFoldLine(v),C=w?w.start.row:1/0;v>C&&(v=w.end.row+1,w=this.session.getNextFoldLine(v,w),C=w?w.start.row:1/0),!(v>f);){var k=this.$lines.createCell(v,h,this.session),x=k.element;this.dom.removeChildren(x),r.setStyle(x.style,"height",this.$lines.computeLineHeight(v,h,this.session)+"px"),r.setStyle(x.style,"top",this.$lines.computeLineTop(v,h,this.session)+"px"),this.$renderLine(x,v,v==C?w:!1),this.$useLineGroups()?x.className="ace_line_group":x.className="ace_line",g.push(k),v++}return g},d.prototype.update=function(h){this.$lines.moveContainer(h),this.config=h;for(var m=h.firstRow,f=h.lastRow,g=this.$lines;g.getLength();)g.pop();g.push(this.$renderLinesFragment(h,m,f))},d.prototype.$renderToken=function(h,m,f,g){for(var v=this,w=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,C=this.dom.createFragment(this.element),k,x=0;k=w.exec(g);){var y=k[1],E=k[2],T=k[3],M=k[4],D=k[5];if(!(!v.showSpaces&&E)){var _=x!=k.index?g.slice(x,k.index):"";if(x=k.index+k[0].length,_&&C.appendChild(this.dom.createTextNode(_,this.element)),y){var p=v.session.getScreenTabSize(m+k.index);C.appendChild(v.$tabStrings[p].cloneNode(!0)),m+=p-1}else if(E)if(v.showSpaces){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space",b.textContent=s.stringRepeat(v.SPACE_CHAR,E.length),C.appendChild(b)}else C.appendChild(this.dom.createTextNode(E,this.element));else if(T){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space ace_invalid",b.textContent=s.stringRepeat(v.SPACE_CHAR,T.length),C.appendChild(b)}else if(M){m+=1;var b=this.dom.createElement("span");b.style.width=v.config.characterWidth*2+"px",b.className=v.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",b.textContent=v.showSpaces?v.SPACE_CHAR:M,C.appendChild(b)}else if(D){m+=1;var b=this.dom.createElement("span");b.style.width=v.config.characterWidth*2+"px",b.className="ace_cjk",b.textContent=D,C.appendChild(b)}}}if(C.appendChild(this.dom.createTextNode(x?g.slice(x):g,this.element)),c(f.type))h.appendChild(C);else{var S="ace_"+f.type.replace(/\./g," ace_"),b=this.dom.createElement("span");f.type=="fold"&&(b.style.width=f.value.length*this.config.characterWidth+"px",b.setAttribute("title",l("inline-fold.closed.title","Unfold code"))),b.className=S,b.appendChild(C),h.appendChild(b)}return m+g.length},d.prototype.renderIndentGuide=function(h,m,f){var g=m.search(this.$indentGuideRe);if(g<=0||g>=f)return m;if(m[0]==" "){g-=g%this.tabSize;for(var v=g/this.tabSize,w=0;ww[C].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&h[m.row]!==""&&m.column===h[m.row].length){this.$highlightIndentGuideMarker.dir=1;for(var C=m.row+1;C0){for(var v=0;v=this.$highlightIndentGuideMarker.start+1){if(g.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(g,m)}}else for(var f=h.length-1;f>=0;f--){var g=h[f];if(this.$highlightIndentGuideMarker.end&&g.row=w;)C=this.$renderToken(k,C,y,E.substring(0,w-g)),E=E.substring(w-g),g=w,k=this.$createLineElement(),h.appendChild(k),k.appendChild(this.dom.createTextNode(s.stringRepeat("\xA0",f.indent),this.element)),v++,C=0,w=f[v]||Number.MAX_VALUE;E.length!=0&&(g+=E.length,C=this.$renderToken(k,C,y,E))}}f[f.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(k,C,null,"",!0)},d.prototype.$renderSimpleLine=function(h,m){for(var f=0,g=0;gthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(h,f,v,w);f=this.$renderToken(h,f,v,w)}}},d.prototype.$renderOverflowMessage=function(h,m,f,g,v){f&&this.$renderToken(h,m,f,g.slice(0,this.MAX_LINE_LENGTH-m));var w=this.dom.createElement("span");w.className="ace_inline_button ace_keyword ace_toggle_wrap",w.textContent=v?"":"",h.appendChild(w)},d.prototype.$renderLine=function(h,m,f){if(!f&&f!=!1&&(f=this.session.getFoldLine(m)),f)var g=this.$getFoldLineTokens(m,f);else var g=this.session.getTokens(m);var v=h;if(g.length){var w=this.session.getRowSplitData(m);if(w&&w.length){this.$renderWrappedLine(h,g,w);var v=h.lastChild}else{var v=h;this.$useLineGroups()&&(v=this.$createLineElement(),h.appendChild(v)),this.$renderSimpleLine(v,g)}}else this.$useLineGroups()&&(v=this.$createLineElement(),h.appendChild(v));if(this.showEOL&&v){f&&(m=f.end.row);var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_eol",C.textContent=m==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,v.appendChild(C)}},d.prototype.$getFoldLineTokens=function(h,m){var f=this.session,g=[];function v(C,k,x){for(var y=0,E=0;E+C[y].value.lengthx-k&&(T=T.substring(0,x-k)),g.push({type:C[y].type,value:T}),E=k+T.length,y+=1}for(;Ex?g.push({type:C[y].type,value:T.substring(0,x-E)}):g.push(C[y]),E+=T.length,y+=1}}var w=f.getTokens(h);return m.walk(function(C,k,x,y,E){C!=null?g.push({type:"fold",value:C}):(E&&(w=f.getTokens(k)),w.length&&v(w,y,x))},m.end.row,this.session.getLine(m.end.row).length),g},d.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},d}();u.prototype.EOF_CHAR="\xB6",u.prototype.EOL_CHAR_LF="\xAC",u.prototype.EOL_CHAR_CRLF="\xA4",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="\u2014",u.prototype.SPACE_CHAR="\xB7",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,i.implement(u.prototype,o),t.Text=u});ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=function(){function s(a){this.element=i.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),i.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return s.prototype.$updateOpacity=function(a){for(var o=this.cursors,l=o.length;l--;)i.setStyle(o[l].style,"opacity",a?"":"0")},s.prototype.$startCssAnimation=function(){for(var a=this.cursors,o=a.length;o--;)a[o].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&i.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},s.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,i.removeCssClass(this.element,"ace_animate-blinking")},s.prototype.setPadding=function(a){this.$padding=a},s.prototype.setSession=function(a){this.session=a},s.prototype.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},s.prototype.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},s.prototype.setSmoothBlinking=function(a){a!=this.smoothBlinking&&(this.smoothBlinking=a,i.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.restartTimer())},s.prototype.addCursor=function(){var a=i.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},s.prototype.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},s.prototype.hideCursor=function(){this.isVisible=!1,i.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},s.prototype.showCursor=function(){this.isVisible=!0,i.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},s.prototype.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,i.removeCssClass(this.element,"ace_smooth-blinking")),a(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&i.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),i.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var o=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),o()},this.blinkInterval),o()}},s.prototype.getPixelPosition=function(a,o){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var l=this.session.documentToScreenPosition(a),c=this.$padding+(this.session.$bidiHandler.isBidiRow(l.row,a.row)?this.session.$bidiHandler.getPosLeft(l.column):l.column*this.config.characterWidth),u=(l.row-(o?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:c,top:u}},s.prototype.isCursorInView=function(a,o){return a.top>=0&&a.topa.height+a.offset||d.top<0)&&l>1)){var h=this.cursors[c++]||this.addCursor(),m=h.style;this.drawCursor?this.drawCursor(h,d,a,o[l],this.session):this.isCursorInView(d,a)?(i.setStyle(m,"display","block"),i.translate(h,d.left,d.top),i.setStyle(m,"width",Math.round(a.characterWidth)+"px"),i.setStyle(m,"height",a.lineHeight+"px")):i.setStyle(m,"display","none")}}for(;this.cursors.length>c;)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=d,this.restartTimer()},s.prototype.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?i.addCssClass(this.element,"ace_overwrite-cursors"):i.removeCssClass(this.element,"ace_overwrite-cursors"))},s.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},s}();r.prototype.$padding=0,r.prototype.drawCursor=null,t.Cursor=r});ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var h=function(m,f){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(g,v){g.__proto__=v}||function(g,v){for(var w in v)Object.prototype.hasOwnProperty.call(v,w)&&(g[w]=v[w])},h(m,f)};return function(m,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");h(m,f);function g(){this.constructor=m}m.prototype=f===null?Object.create(f):(g.prototype=f.prototype,new g)}}(),r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/event"),o=n("./lib/event_emitter").EventEmitter,l=32768,c=function(){function h(m,f){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+f,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\xA0",this.element.appendChild(this.inner),m.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return h.prototype.setVisible=function(m){this.element.style.display=m?"":"none",this.isVisible=m,this.coeff=1},h}();r.implement(c.prototype,o);var u=function(h){i(m,h);function m(f,g){var v=h.call(this,f,"-v")||this;return v.scrollTop=0,v.scrollHeight=0,g.$scrollbarWidth=v.width=s.scrollbarWidth(f.ownerDocument),v.inner.style.width=v.element.style.width=(v.width||15)+5+"px",v.$minWidth=0,v}return m.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var f=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-f)/(this.coeff-f)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},m.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},m.prototype.setHeight=function(f){this.element.style.height=f+"px"},m.prototype.setScrollHeight=function(f){this.scrollHeight=f,f>l?(this.coeff=l/f,f=l):this.coeff!=1&&(this.coeff=1),this.inner.style.height=f+"px"},m.prototype.setScrollTop=function(f){this.scrollTop!=f&&(this.skipEvent=!0,this.scrollTop=f,this.element.scrollTop=f*this.coeff)},m}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var d=function(h){i(m,h);function m(f,g){var v=h.call(this,f,"-h")||this;return v.scrollLeft=0,v.height=g.$scrollbarWidth,v.inner.style.height=v.element.style.height=(v.height||15)+5+"px",v}return m.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},m.prototype.getHeight=function(){return this.isVisible?this.height:0},m.prototype.setWidth=function(f){this.element.style.width=f+"px"},m.prototype.setInnerWidth=function(f){this.inner.style.width=f+"px"},m.prototype.setScrollWidth=function(f){this.inner.style.width=f+"px"},m.prototype.setScrollLeft=function(f){this.scrollLeft!=f&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=f)},m}(c);t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=d,t.VScrollBar=u,t.HScrollBar=d});ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var d=function(h,m){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,g){f.__proto__=g}||function(f,g){for(var v in g)Object.prototype.hasOwnProperty.call(g,v)&&(f[v]=g[v])},d(h,m)};return function(h,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");d(h,m);function f(){this.constructor=h}h.prototype=m===null?Object.create(m):(f.prototype=m.prototype,new f)}}(),r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/event"),o=n("./lib/event_emitter").EventEmitter;s.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ - position: absolute; - background: rgba(128, 128, 128, 0.6); - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #bbb; - border-radius: 2px; - z-index: 8; -} -.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h { - position: absolute; - z-index: 6; - background: none; - overflow: hidden!important; -} -.ace_editor>.ace_sb-v { - z-index: 6; - right: 0; - top: 0; - width: 12px; -} -.ace_editor>.ace_sb-v div { - z-index: 8; - right: 0; - width: 100%; -} -.ace_editor>.ace_sb-h { - bottom: 0; - left: 0; - height: 12px; -} -.ace_editor>.ace_sb-h div { - bottom: 0; - height: 100%; -} -.ace_editor>.ace_sb_grabbed { - z-index: 8; - background: #000; -}`,"ace_scrollbar.css",!1);var l=function(){function d(h,m){this.element=s.createElement("div"),this.element.className="ace_sb"+m,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,h.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return d.prototype.setVisible=function(h){this.element.style.display=h?"":"none",this.isVisible=h,this.coeff=1},d}();r.implement(l.prototype,o);var c=function(d){i(h,d);function h(m,f){var g=d.call(this,m,"-v")||this;return g.scrollTop=0,g.scrollHeight=0,g.parent=m,g.width=g.VScrollWidth,g.renderer=f,g.inner.style.width=g.element.style.width=(g.width||15)+"px",g.$minWidth=0,g}return h.prototype.onMouseDown=function(m,f){if(m==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var g=this,v=f.clientY,w=function(M){v=M.clientY},C=function(){clearInterval(E)},k=f.clientY,x=this.thumbTop,y=function(){if(v!==void 0){var M=g.scrollTopFromThumbTop(x+v-k);M!==g.scrollTop&&g._emit("scroll",{data:M})}};a.capture(this.inner,w,C);var E=setInterval(y,20);return a.preventDefault(f)}var T=f.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(T)}),a.preventDefault(f)}},h.prototype.getHeight=function(){return this.height},h.prototype.scrollTopFromThumbTop=function(m){var f=m*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return f=f>>0,f<0?f=0:f>this.pageHeight-this.viewHeight&&(f=this.pageHeight-this.viewHeight),f},h.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},h.prototype.setHeight=function(m){this.height=Math.max(0,m),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},h.prototype.setScrollHeight=function(m,f){this.pageHeight===m&&!f||(this.pageHeight=m,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},h.prototype.setScrollTop=function(m){this.scrollTop=m,m<0&&(m=0),this.thumbTop=m*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},h}(l);c.prototype.setInnerHeight=c.prototype.setScrollHeight;var u=function(d){i(h,d);function h(m,f){var g=d.call(this,m,"-h")||this;return g.scrollLeft=0,g.scrollWidth=0,g.height=g.HScrollHeight,g.inner.style.height=g.element.style.height=(g.height||12)+"px",g.renderer=f,g}return h.prototype.onMouseDown=function(m,f){if(m==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var g=this,v=f.clientX,w=function(M){v=M.clientX},C=function(){clearInterval(E)},k=f.clientX,x=this.thumbLeft,y=function(){if(v!==void 0){var M=g.scrollLeftFromThumbLeft(x+v-k);M!==g.scrollLeft&&g._emit("scroll",{data:M})}};a.capture(this.inner,w,C);var E=setInterval(y,20);return a.preventDefault(f)}var T=f.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(T)}),a.preventDefault(f)}},h.prototype.getHeight=function(){return this.isVisible?this.height:0},h.prototype.scrollLeftFromThumbLeft=function(m){var f=m*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return f=f>>0,f<0?f=0:f>this.pageWidth-this.viewWidth&&(f=this.pageWidth-this.viewWidth),f},h.prototype.setWidth=function(m){this.width=Math.max(0,m),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},h.prototype.setScrollWidth=function(m,f){this.pageWidth===m&&!f||(this.pageWidth=m,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},h.prototype.setScrollLeft=function(m){this.scrollLeft=m,m<0&&(m=0),this.thumbLeft=m*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},h}(l);u.prototype.setInnerWidth=u.prototype.setScrollWidth,t.ScrollBar=c,t.ScrollBarV=c,t.ScrollBarH=u,t.VScrollBar=c,t.HScrollBar=u});ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(n,t,e){"use strict";var i=n("./lib/event"),r=function(){function s(a,o){this.onRender=a,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=o||window;var l=this;this._flush=function(c){l.pending=!1;var u=l.changes;if(u&&(i.blockIdle(100),l.changes=0,l.onRender(u)),l.changes){if(l.$recursionLimit--<0)return;l.schedule()}else l.$recursionLimit=2}}return s.prototype.schedule=function(a){this.changes=this.changes|a,this.changes&&!this.pending&&(i.nextFrame(this._flush),this.pending=!0)},s.prototype.clear=function(a){var o=this.changes;return this.changes=0,o},s}();t.RenderLoop=r});ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(n,t,e){var i=n("../lib/oop"),r=n("../lib/dom"),s=n("../lib/lang"),a=n("../lib/event"),o=n("../lib/useragent"),l=n("../lib/event_emitter").EventEmitter,c=512,u=typeof ResizeObserver=="function",d=200,h=function(){function m(f){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return m.prototype.$setMeasureNodeStyles=function(f,g){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",o.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=g?"hidden":"visible"},m.prototype.checkForSizeChanges=function(f){if(f===void 0&&(f=this.$measureSizes()),f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var g=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=g&&g.width===f.width&&g.height===f.height,this._emit("changeCharacterSize",{data:f})}},m.prototype.$addObserver=function(){var f=this;this.$observer=new window.ResizeObserver(function(g){f.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},m.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=a.onIdle(function g(){f.checkForSizeChanges(),a.onIdle(g,500)},500)},m.prototype.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},m.prototype.$measureSizes=function(f){var g={height:(f||this.$measureNode).clientHeight,width:(f||this.$measureNode).clientWidth/c};return g.width===0||g.height===0?null:g},m.prototype.$measureCharWidth=function(f){this.$main.textContent=s.stringRepeat(f,c);var g=this.$main.getBoundingClientRect();return g.width/c},m.prototype.getCharacterWidth=function(f){var g=this.charSizes[f];return g===void 0&&(g=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),g},m.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},m.prototype.$getZoom=function(f){return!f||!f.parentElement?1:(Number(window.getComputedStyle(f).zoom)||1)*this.$getZoom(f.parentElement)},m.prototype.$initTransformMeasureNodes=function(){var f=function(g,v){return["div",{style:"position: absolute;top:"+g+"px;left:"+v+"px;"}]};this.els=r.buildDom([f(0,0),f(d,0),f(0,d),f(d,d)],this.el)},m.prototype.transformCoordinates=function(f,g){if(f){var v=this.$getZoom(this.el);f=x(1/v,f)}function w(U,P,W){var V=U[1]*P[0]-U[0]*P[1];return[(-P[1]*W[0]+P[0]*W[1])/V,(+U[1]*W[0]-U[0]*W[1])/V]}function C(U,P){return[U[0]-P[0],U[1]-P[1]]}function k(U,P){return[U[0]+P[0],U[1]+P[1]]}function x(U,P){return[U*P[0],U*P[1]]}this.els||this.$initTransformMeasureNodes();function y(U){var P=U.getBoundingClientRect();return[P.left,P.top]}var E=y(this.els[0]),T=y(this.els[1]),M=y(this.els[2]),D=y(this.els[3]),_=w(C(D,T),C(D,M),C(k(T,M),k(D,E))),p=x(1+_[0],C(T,E)),b=x(1+_[1],C(M,E));if(g){var S=g,I=_[0]*S[0]/d+_[1]*S[1]/d+1,A=k(x(S[0],p),x(S[1],b));return k(x(1/I/d,A),E)}var R=C(f,E),O=w(C(p,x(_[0],R)),C(b,x(_[1],R)),R);return x(d,O)},m}();h.prototype.$characterSize={width:0,height:0},i.implement(h.prototype,l),t.FontMetrics=h});ace.define("ace/css/editor-css",["require","exports","module"],function(n,t,e){e.exports=` -.ace_br1 {border-top-left-radius : 3px;} -.ace_br2 {border-top-right-radius : 3px;} -.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} -.ace_br4 {border-bottom-right-radius: 3px;} -.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} -.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} -.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} -.ace_br8 {border-bottom-left-radius : 3px;} -.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} -.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} -.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} - - -.ace_editor { - position: relative; - overflow: hidden; - padding: 0; - font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace; - direction: ltr; - text-align: left; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - forced-color-adjust: none; -} - -.ace_scroller { - position: absolute; - overflow: hidden; - top: 0; - bottom: 0; - background-color: inherit; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - cursor: text; -} - -.ace_content { - position: absolute; - box-sizing: border-box; - min-width: 100%; - contain: style size layout; - font-variant-ligatures: no-common-ligatures; -} - -.ace_keyboard-focus:focus { - box-shadow: inset 0 0 0 2px #5E9ED6; - outline: none; -} - -.ace_dragging .ace_scroller:before{ - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - content: ''; - background: rgba(250, 250, 250, 0.01); - z-index: 1000; -} -.ace_dragging.ace_dark .ace_scroller:before{ - background: rgba(0, 0, 0, 0.01); -} - -.ace_gutter { - position: absolute; - overflow : hidden; - width: auto; - top: 0; - bottom: 0; - left: 0; - cursor: default; - z-index: 4; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - contain: style size layout; -} - -.ace_gutter-active-line { - position: absolute; - left: 0; - right: 0; -} - -.ace_scroller.ace_scroll-left:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; - pointer-events: none; -} - -.ace_gutter-cell, .ace_gutter-cell_svg-icons { - position: absolute; - top: 0; - left: 0; - right: 0; - padding-left: 19px; - padding-right: 6px; - background-repeat: no-repeat; -} - -.ace_gutter-cell_svg-icons .ace_gutter_annotation { - margin-left: -14px; - float: left; -} - -.ace_gutter-cell .ace_gutter_annotation { - margin-left: -19px; - float: left; -} - -.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold, .ace_gutter-cell.ace_security, .ace_icon.ace_security, .ace_icon.ace_security_fold { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: 2px center; -} - -.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: 2px center; -} - -.ace_gutter-cell.ace_info, .ace_icon.ace_info, .ace_gutter-cell.ace_hint, .ace_icon.ace_hint { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); - background-repeat: no-repeat; - background-position: 2px center; -} - -.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info, .ace_dark .ace_gutter-cell.ace_hint, .ace_dark .ace_icon.ace_hint { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); -} - -.ace_icon_svg.ace_error { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+"); - background-color: crimson; -} -.ace_icon_svg.ace_security { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iZGFya29yYW5nZSIgZmlsbD0ibm9uZSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogICAgICAgIDxwYXRoIGNsYXNzPSJzdHJva2UtbGluZWpvaW4tcm91bmQiIGQ9Ik04IDE0LjgzMDdDOCAxNC44MzA3IDIgMTIuOTA0NyAyIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOEM3Ljk4OTk5IDEuMzQ5MTggMTAuNjkgMy4yNjU0OCAxNCAzLjI2NTQ4VjguMDg5OTJDMTQgMTIuOTA0NyA4IDE0LjgzMDcgOCAxNC44MzA3WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMy45OSA4LjA4OTkyVjMuMjY1NDhDMTAuNjggMy4yNjU0OCA4IDEuMzQ5MTggOCAxLjM0OTE4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggNFY5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggMTBWMTIiLz4KICAgIDwvZz4KPC9zdmc+"); - background-color: crimson; -} -.ace_icon_svg.ace_warning { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg=="); - background-color: darkorange; -} -.ace_icon_svg.ace_info { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg=="); - background-color: royalblue; -} -.ace_icon_svg.ace_hint { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0ic2lsdmVyIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTYgMTRIMTAiLz4KICAgICAgICA8cGF0aCBkPSJNOCAxMUg5QzkgOS40NzAwMiAxMiA4LjU0MDAyIDEyIDUuNzYwMDJDMTIuMDIgNC40MDAwMiAxMS4zOSAzLjM2MDAyIDEwLjQzIDIuNjcwMDJDOSAxLjY0MDAyIDcuMDAwMDEgMS42NDAwMiA1LjU3MDAxIDIuNjcwMDJDNC42MTAwMSAzLjM2MDAyIDMuOTggNC40MDAwMiA0IDUuNzYwMDJDNCA4LjU0MDAyIDcuMDAwMDEgOS40NzAwMiA3LjAwMDAxIDExSDhaIi8+CiAgICA8L2c+Cjwvc3ZnPg=="); - background-color: silver; -} - -.ace_icon_svg.ace_error_fold { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); - background-color: crimson; -} -.ace_icon_svg.ace_security_fold { - -webkit-mask-image: url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTQiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTEwLjAwMDEgMTMuNjk5MkMxMC4wMDAxIDEzLjY5OTIgMTEuOTI0MSAxMy40NzYzIDEzIDEyLjY5OTJDMTQuNDEzOSAxMS42NzgxIDE2IDEwLjUgMTYuMTI1MSA2LjgxMTI2VjIuNTg5ODdDMTYuMTI1MSAyLjU0NzY4IDE2LjEyMjEgMi41MDYxOSAxNi4xMTY0IDIuNDY1NTlWMS43MTQ4NUgxNS4yNDE0TDE1LjIzMDcgMS43MTQ4NEwxNC42MjUxIDEuNjk5MjJWNi44MTEyM0MxNC42MjUxIDguNTEwNjEgMTQuNjI1MSA5LjQ2NDYxIDEyLjc4MjQgMTEuNzIxQzEyLjE1ODYgMTIuNDg0OCAxMC4wMDAxIDEzLjY5OTIgMTAuMDAwMSAxMy42OTkyWiIgZmlsbD0iY3JpbXNvbiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMzM2MDkgMC4zNjc0NzVDNy4wMzIxNCAwLjE1MjY1MiA2LjYyNTQ4IDAuMTUzNjE0IDYuMzIyNTMgMC4zNjk5OTdMNi4zMDg2OSAwLjM3OTU1NEM2LjI5NTUzIDAuMzg4NTg4IDYuMjczODggMC40MDMyNjYgNi4yNDQxNyAwLjQyMjc4OUM2LjE4NDcxIDAuNDYxODYgNi4wOTMyMSAwLjUyMDE3MSA1Ljk3MzEzIDAuNTkxMzczQzUuNzMyNTEgMC43MzQwNTkgNS4zNzk5IDAuOTI2ODY0IDQuOTQyNzkgMS4xMjAwOUM0LjA2MTQ0IDEuNTA5NyAyLjg3NTQxIDEuODgzNzcgMS41ODk4NCAxLjg4Mzc3SDAuNzE0ODQ0VjIuNzU4NzdWNi45ODAxNUMwLjcxNDg0NCA5LjQ5Mzc0IDIuMjg4NjYgMTEuMTk3MyAzLjcwMjU0IDEyLjIxODVDNC40MTg0NSAxMi43MzU1IDUuMTI4NzQgMTMuMTA1MyA1LjY1NzMzIDEzLjM0NTdDNS45MjI4NCAxMy40NjY0IDYuMTQ1NjYgMTMuNTU1OSA2LjMwNDY1IDEzLjYxNjFDNi4zODQyMyAxMy42NDYyIDYuNDQ4MDUgMTMuNjY5IDYuNDkzNDkgMTMuNjg0OEM2LjUxNjIyIDEzLjY5MjcgNi41MzQzOCAxMy42OTg5IDYuNTQ3NjQgMTMuNzAzM0w2LjU2MzgyIDEzLjcwODdMNi41NjkwOCAxMy43MTA0TDYuNTcwOTkgMTMuNzExTDYuODM5ODQgMTMuNzUzM0w2LjU3MjQyIDEzLjcxMTVDNi43NDYzMyAxMy43NjczIDYuOTMzMzUgMTMuNzY3MyA3LjEwNzI3IDEzLjcxMTVMNy4xMDg3IDEzLjcxMUw3LjExMDYxIDEzLjcxMDRMNy4xMTU4NyAxMy43MDg3TDcuMTMyMDUgMTMuNzAzM0M3LjE0NTMxIDEzLjY5ODkgNy4xNjM0NiAxMy42OTI3IDcuMTg2MTkgMTMuNjg0OEM3LjIzMTY0IDEzLjY2OSA3LjI5NTQ2IDEzLjY0NjIgNy4zNzUwMyAxMy42MTYxQzcuNTM0MDMgMTMuNTU1OSA3Ljc1Njg1IDEzLjQ2NjQgOC4wMjIzNiAxMy4zNDU3QzguNTUwOTUgMTMuMTA1MyA5LjI2MTIzIDEyLjczNTUgOS45NzcxNSAxMi4yMTg1QzExLjM5MSAxMS4xOTczIDEyLjk2NDggOS40OTM3NyAxMi45NjQ4IDYuOTgwMThWMi43NTg4QzEyLjk2NDggMi43MTY2IDEyLjk2MTkgMi42NzUxMSAxMi45NTYxIDIuNjM0NTFWMS44ODM3N0gxMi4wODExQzEyLjA3NzUgMS44ODM3NyAxMi4wNzQgMS44ODM3NyAxMi4wNzA0IDEuODgzNzdDMTAuNzk3OSAxLjg4MDA0IDkuNjE5NjIgMS41MTEwMiA4LjczODk0IDEuMTI0ODZDOC43MzUzNCAxLjEyMzI3IDguNzMxNzQgMS4xMjE2OCA4LjcyODE0IDEuMTIwMDlDOC4yOTEwMyAwLjkyNjg2NCA3LjkzODQyIDAuNzM0MDU5IDcuNjk3NzkgMC41OTEzNzNDNy41Nzc3MiAwLjUyMDE3MSA3LjQ4NjIyIDAuNDYxODYgNy40MjY3NiAwLjQyMjc4OUM3LjM5NzA1IDAuNDAzMjY2IDcuMzc1MzkgMC4zODg1ODggNy4zNjIyNCAwLjM3OTU1NEw3LjM0ODk2IDAuMzcwMzVDNy4zNDg5NiAwLjM3MDM1IDcuMzQ4NDcgMC4zNzAwMiA3LjM0NTYzIDAuMzc0MDU0TDcuMzM3NzkgMC4zNjg2NTlMNy4zMzYwOSAwLjM2NzQ3NVpNOC4wMzQ3MSAyLjcyNjkxQzguODYwNCAzLjA5MDYzIDkuOTYwNjYgMy40NjMwOSAxMS4yMDYxIDMuNTg5MDdWNi45ODAxNUgxMS4yMTQ4QzExLjIxNDggOC42Nzk1MyAxMC4xNjM3IDkuOTI1MDcgOC45NTI1NCAxMC43OTk4QzguMzU1OTUgMTEuMjMwNiA3Ljc1Mzc0IDExLjU0NTQgNy4yOTc5NiAxMS43NTI3QzcuMTE2NzEgMTEuODM1MSA2Ljk2MDYyIDExLjg5OTYgNi44Mzk4NCAxMS45NDY5QzYuNzE5MDYgMTEuODk5NiA2LjU2Mjk3IDExLjgzNTEgNi4zODE3MyAxMS43NTI3QzUuOTI1OTUgMTEuNTQ1NCA1LjMyMzczIDExLjIzMDYgNC43MjcxNSAxMC43OTk4QzMuNTE2MDMgOS45MjUwNyAyLjQ2NDg0IDguNjc5NTUgMi40NjQ4NCA2Ljk4MDE4VjMuNTg5MDlDMy43MTczOCAzLjQ2MjM5IDQuODIzMDggMy4wODYzOSA1LjY1MDMzIDIuNzIwNzFDNi4xNDIyOCAyLjUwMzI0IDYuNTQ0ODUgMi4yODUzNyA2LjgzMjU0IDIuMTE2MjRDNy4xMjE4MSAyLjI4NTM1IDcuNTI3IDIuNTAzNTIgOC4wMjE5NiAyLjcyMTMxQzguMDI2MiAyLjcyMzE3IDguMDMwNDUgMi43MjUwNCA4LjAzNDcxIDIuNzI2OTFaTTUuOTY0ODQgMy40MDE0N1Y3Ljc3NjQ3SDcuNzE0ODRWMy40MDE0N0g1Ljk2NDg0Wk01Ljk2NDg0IDEwLjQwMTVWOC42NTE0N0g3LjcxNDg0VjEwLjQwMTVINS45NjQ4NFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); - background-color: crimson; -} -.ace_icon_svg.ace_warning_fold { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4="); - background-color: darkorange; -} - -.ace_scrollbar { - contain: strict; - position: absolute; - right: 0; - bottom: 0; - z-index: 6; -} - -.ace_scrollbar-inner { - position: absolute; - cursor: text; - left: 0; - top: 0; -} - -.ace_scrollbar-v{ - overflow-x: hidden; - overflow-y: scroll; - top: 0; -} - -.ace_scrollbar-h { - overflow-x: scroll; - overflow-y: hidden; - left: 0; -} - -.ace_print-margin { - position: absolute; - height: 100%; -} - -.ace_text-input { - position: absolute; - z-index: 0; - width: 0.5em; - height: 1em; - opacity: 0; - background: transparent; - -moz-appearance: none; - appearance: none; - border: none; - resize: none; - outline: none; - overflow: hidden; - font: inherit; - padding: 0 1px; - margin: 0 -1px; - contain: strict; - -ms-user-select: text; - -moz-user-select: text; - -webkit-user-select: text; - user-select: text; - /*with \`pre-line\` chrome inserts   instead of space*/ - white-space: pre!important; -} -.ace_text-input.ace_composition { - background: transparent; - color: inherit; - z-index: 1000; - opacity: 1; -} -.ace_composition_placeholder { color: transparent } -.ace_composition_marker { - border-bottom: 1px solid; - position: absolute; - border-radius: 0; - margin-top: 1px; -} - -[ace_nocontext=true] { - transform: none!important; - filter: none!important; - clip-path: none!important; - mask : none!important; - contain: none!important; - perspective: none!important; - mix-blend-mode: initial!important; - z-index: auto; -} - -.ace_layer { - z-index: 1; - position: absolute; - overflow: hidden; - /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/ - word-wrap: normal; - white-space: pre; - height: 100%; - width: 100%; - box-sizing: border-box; - /* setting pointer-events: auto; on node under the mouse, which changes - during scroll, will break mouse wheel scrolling in Safari */ - pointer-events: none; -} - -.ace_gutter-layer { - position: relative; - width: auto; - text-align: right; - pointer-events: auto; - height: 1000000px; - contain: style size layout; -} - -.ace_text-layer { - font: inherit !important; - position: absolute; - height: 1000000px; - width: 1000000px; - contain: style size layout; -} - -.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group { - contain: style size layout; - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.ace_hidpi .ace_text-layer, -.ace_hidpi .ace_gutter-layer, -.ace_hidpi .ace_content, -.ace_hidpi .ace_gutter { - contain: strict; -} -.ace_hidpi .ace_text-layer > .ace_line, -.ace_hidpi .ace_text-layer > .ace_line_group { - contain: strict; -} - -.ace_cjk { - display: inline-block; - text-align: center; -} - -.ace_cursor-layer { - z-index: 4; -} - -.ace_cursor { - z-index: 4; - position: absolute; - box-sizing: border-box; - border-left: 2px solid; - /* workaround for smooth cursor repaintng whole screen in chrome */ - transform: translatez(0); -} - -.ace_multiselect .ace_cursor { - border-left-width: 1px; -} - -.ace_slim-cursors .ace_cursor { - border-left-width: 1px; -} - -.ace_overwrite-cursors .ace_cursor { - border-left-width: 0; - border-bottom: 1px solid; -} - -.ace_hidden-cursors .ace_cursor { - opacity: 0.2; -} - -.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor { - opacity: 0; -} - -.ace_smooth-blinking .ace_cursor { - transition: opacity 0.18s; -} - -.ace_animate-blinking .ace_cursor { - animation-duration: 1000ms; - animation-timing-function: step-end; - animation-name: blink-ace-animate; - animation-iteration-count: infinite; -} - -.ace_animate-blinking.ace_smooth-blinking .ace_cursor { - animation-duration: 1000ms; - animation-timing-function: ease-in-out; - animation-name: blink-ace-animate-smooth; -} - -@keyframes blink-ace-animate { - from, to { opacity: 1; } - 60% { opacity: 0; } -} - -@keyframes blink-ace-animate-smooth { - from, to { opacity: 1; } - 45% { opacity: 1; } - 60% { opacity: 0; } - 85% { opacity: 0; } -} - -.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { - position: absolute; - z-index: 3; -} - -.ace_marker-layer .ace_selection { - position: absolute; - z-index: 5; -} - -.ace_marker-layer .ace_bracket { - position: absolute; - z-index: 6; -} - -.ace_marker-layer .ace_error_bracket { - position: absolute; - border-bottom: 1px solid #DE5555; - border-radius: 0; -} - -.ace_marker-layer .ace_active-line { - position: absolute; - z-index: 2; -} - -.ace_marker-layer .ace_selected-word { - position: absolute; - z-index: 4; - box-sizing: border-box; -} - -.ace_line .ace_fold { - box-sizing: border-box; - - display: inline-block; - height: 11px; - margin-top: -2px; - vertical-align: middle; - - background-image: - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); - background-repeat: no-repeat, repeat-x; - background-position: center center, top left; - color: transparent; - - border: 1px solid black; - border-radius: 2px; - - cursor: pointer; - pointer-events: auto; -} - -.ace_dark .ace_fold { -} - -.ace_fold:hover{ - background-image: - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); -} - -.ace_tooltip { - background-color: #f5f5f5; - border: 1px solid gray; - border-radius: 1px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); - color: black; - max-width: 100%; - padding: 3px 4px; - position: fixed; - z-index: 999999; - box-sizing: border-box; - cursor: default; - white-space: pre-wrap; - word-wrap: break-word; - line-height: normal; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - pointer-events: none; - overflow: auto; - max-width: min(60em, 66vw); - overscroll-behavior: contain; -} -.ace_tooltip pre { - white-space: pre-wrap; -} - -.ace_tooltip.ace_dark { - background-color: #636363; - color: #fff; -} - -.ace_tooltip:focus { - outline: 1px solid #5E9ED6; -} - -.ace_icon { - display: inline-block; - width: 18px; - vertical-align: top; -} - -.ace_icon_svg { - display: inline-block; - width: 12px; - vertical-align: top; - -webkit-mask-repeat: no-repeat; - -webkit-mask-size: 12px; - -webkit-mask-position: center; -} - -.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons { - padding-right: 13px; -} - -.ace_fold-widget { - box-sizing: border-box; - - margin: 0 -12px 0 1px; - display: none; - width: 11px; - vertical-align: top; - - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: center; - - border-radius: 3px; - - border: 1px solid transparent; - cursor: pointer; -} - -.ace_folding-enabled .ace_fold-widget { - display: inline-block; -} - -.ace_fold-widget.ace_end { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); -} - -.ace_fold-widget.ace_closed { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); -} - -.ace_fold-widget:hover { - border: 1px solid rgba(0, 0, 0, 0.3); - background-color: rgba(255, 255, 255, 0.2); - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); -} - -.ace_fold-widget:active { - border: 1px solid rgba(0, 0, 0, 0.4); - background-color: rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); -} -/** - * Dark version for fold widgets - */ -.ace_dark .ace_fold-widget { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); -} -.ace_dark .ace_fold-widget.ace_end { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); -} -.ace_dark .ace_fold-widget.ace_closed { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); -} -.ace_dark .ace_fold-widget:hover { - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); - background-color: rgba(255, 255, 255, 0.1); -} -.ace_dark .ace_fold-widget:active { - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); -} - -.ace_inline_button { - border: 1px solid lightgray; - display: inline-block; - margin: -1px 8px; - padding: 0 5px; - pointer-events: auto; - cursor: pointer; -} -.ace_inline_button:hover { - border-color: gray; - background: rgba(200,200,200,0.2); - display: inline-block; - pointer-events: auto; -} - -.ace_fold-widget.ace_invalid { - background-color: #FFB4B4; - border-color: #DE5555; -} - -.ace_fade-fold-widgets .ace_fold-widget { - transition: opacity 0.4s ease 0.05s; - opacity: 0; -} - -.ace_fade-fold-widgets:hover .ace_fold-widget { - transition: opacity 0.05s ease 0.05s; - opacity:1; -} - -.ace_underline { - text-decoration: underline; -} - -.ace_bold { - font-weight: bold; -} - -.ace_nobold .ace_bold { - font-weight: normal; -} - -.ace_italic { - font-style: italic; -} - - -.ace_error-marker { - background-color: rgba(255, 0, 0,0.2); - position: absolute; - z-index: 9; -} - -.ace_highlight-marker { - background-color: rgba(255, 255, 0,0.2); - position: absolute; - z-index: 8; -} - -.ace_mobile-menu { - position: absolute; - line-height: 1.5; - border-radius: 4px; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - background: white; - box-shadow: 1px 3px 2px grey; - border: 1px solid #dcdcdc; - color: black; -} -.ace_dark > .ace_mobile-menu { - background: #333; - color: #ccc; - box-shadow: 1px 3px 2px grey; - border: 1px solid #444; - -} -.ace_mobile-button { - padding: 2px; - cursor: pointer; - overflow: hidden; -} -.ace_mobile-button:hover { - background-color: #eee; - opacity:1; -} -.ace_mobile-button:active { - background-color: #ddd; -} - -.ace_placeholder { - position: relative; - font-family: arial; - transform: scale(0.9); - transform-origin: left; - white-space: pre; - opacity: 0.7; - margin: 0 10px; - z-index: 1; -} - -.ace_ghost_text { - opacity: 0.5; - font-style: italic; -} - -.ace_ghost_text_container > div { - white-space: pre; -} - -.ghost_text_line_wrapped::after { - content: "\u21A9"; - position: absolute; -} - -.ace_lineWidgetContainer.ace_ghost_text { - margin: 0px 4px -} - -.ace_screenreader-only { - position:absolute; - left:-10000px; - top:auto; - width:1px; - height:1px; - overflow:hidden; -} - -.ace_hidden_token { - display: none; -}`});ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../lib/oop"),s=n("../lib/event_emitter").EventEmitter,a=function(){function o(l,c){this.canvas=i.createElement("canvas"),this.renderer=c,this.pixelRatio=1,this.maxHeight=c.layerConfig.maxHeight,this.lineHeight=c.layerConfig.lineHeight,this.canvasHeight=l.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=l.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},l.element.appendChild(this.canvas)}return o.prototype.$updateDecorators=function(l){var c=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(l){this.maxHeight=l.maxHeight,this.lineHeight=l.lineHeight,this.canvasHeight=l.height;var u=(l.lastRow+1)*this.lineHeight;u_.priority?1:0}var m=this.renderer.session.$annotations;if(d.clearRect(0,0,this.canvas.width,this.canvas.height),m){var f={info:1,warning:2,error:3};m.forEach(function(D){D.priority=f[D.type]||null}),m=m.sort(h);for(var g=this.renderer.session.$foldData,v=0;vthis.canvasHeight&&(T=this.canvasHeight-this.halfMinDecorationHeight),x=Math.round(T-this.halfMinDecorationHeight),y=Math.round(T+this.halfMinDecorationHeight)}d.fillStyle=c[m[v].type]||null,d.fillRect(0,k,this.canvasWidth,y-x)}}var M=this.renderer.session.selection.getCursor();if(M){var C=this.compensateFoldRows(M.row,g),k=Math.round((M.row-C)*this.lineHeight*this.heightRatio);d.fillStyle="rgba(0, 0, 0, 0.5)",d.fillRect(0,k,this.canvasWidth,2)}},o.prototype.compensateFoldRows=function(l,c){var u=0;if(c&&c.length>0)for(var d=0;dc[d].start.row&&l=c[d].end.row&&(u+=c[d].end.row-c[d].start.row);return u},o}();r.implement(a.prototype,s),t.Decorator=a});ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent","ace/layer/text_util"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/dom"),s=n("./lib/lang"),a=n("./config"),o=n("./layer/gutter").Gutter,l=n("./layer/marker").Marker,c=n("./layer/text").Text,u=n("./layer/cursor").Cursor,d=n("./scrollbar").HScrollBar,h=n("./scrollbar").VScrollBar,m=n("./scrollbar_custom").HScrollBar,f=n("./scrollbar_custom").VScrollBar,g=n("./renderloop").RenderLoop,v=n("./layer/font_metrics").FontMetrics,w=n("./lib/event_emitter").EventEmitter,C=n("./css/editor-css"),k=n("./layer/decorators").Decorator,x=n("./lib/useragent"),y=n("./layer/text_util").isTextToken;r.importCssString(C,"ace_editor.css",!1);var E=function(){function T(M,D){var _=this;this.container=M||r.createElement("div"),r.addCssClass(this.container,"ace_editor"),r.HI_DPI&&r.addCssClass(this.container,"ace_hidpi"),this.setTheme(D),a.get("useStrictCSP")==null&&a.set("useStrictCSP",!1),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden","true"),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new o(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var p=this.$textLayer=new c(this.content);this.canvas=p.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.on("scroll",function(b){_.$scrollAnimation||_.session.setScrollTop(b.data-_.scrollMargin.top)}),this.scrollBarH.on("scroll",function(b){_.$scrollAnimation||_.session.setScrollLeft(b.data-_.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new v(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(b){_.updateCharacterSize(),_.onResize(!0,_.gutterWidth,_.$size.width,_.$size.height),_._signal("changeCharacterSize",b)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!x.isIOS,this.$loop=new g(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),a.resetOptions(this),a._signal("renderer",this)}return T.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),r.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},T.prototype.setSession=function(M){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=M,M&&this.scrollMargin.top&&M.getScrollTop()<=0&&M.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(M),this.$markerBack.setSession(M),this.$markerFront.setSession(M),this.$gutterLayer.setSession(M),this.$textLayer.setSession(M),M&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},T.prototype.updateLines=function(M,D,_){if(D===void 0&&(D=1/0),this.$changedLines?(this.$changedLines.firstRow>M&&(this.$changedLines.firstRow=M),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},T.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},T.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},T.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},T.prototype.updateFull=function(M){M?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},T.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},T.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},T.prototype.onResize=function(M,D,_,p){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=M?1:0;var b=this.container;p||(p=b.clientHeight||b.scrollHeight),!p&&this.$maxLines&&this.lineHeight>1&&(!b.style.height||b.style.height=="0px")&&(b.style.height="1px",p=b.clientHeight||b.scrollHeight),_||(_=b.clientWidth||b.scrollWidth);var S=this.$updateCachedSize(M,D,_,p);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!_&&!p)return this.resizing=0;M&&(this.$gutterLayer.$padding=null),M?this.$renderChanges(S|this.$changes,!0):this.$loop.schedule(S|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},T.prototype.$updateCachedSize=function(M,D,_,p){p-=this.$extraHeight||0;var b=0,S=this.$size,I={width:S.width,height:S.height,scrollerHeight:S.scrollerHeight,scrollerWidth:S.scrollerWidth};if(p&&(M||S.height!=p)&&(S.height=p,b|=this.CHANGE_SIZE,S.scrollerHeight=S.height,this.$horizScroll&&(S.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(S.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",b=b|this.CHANGE_SCROLL),_&&(M||S.width!=_)){b|=this.CHANGE_SIZE,S.width=_,D==null&&(D=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=D,r.setStyle(this.scrollBarH.element.style,"left",D+"px"),r.setStyle(this.scroller.style,"left",D+this.margin.left+"px"),S.scrollerWidth=Math.max(0,_-D-this.scrollBarV.getWidth()-this.margin.h),r.setStyle(this.$gutter.style,"left",this.margin.left+"px");var A=this.scrollBarV.getWidth()+"px";r.setStyle(this.scrollBarH.element.style,"right",A),r.setStyle(this.scroller.style,"right",A),r.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(S.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||M)&&(b|=this.CHANGE_FULL)}return S.$dirty=!_||!p,b&&this._signal("resize",I),b},T.prototype.onGutterResize=function(M){var D=this.$showGutter?M:0;D!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,D,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},T.prototype.adjustWrapLimit=function(){var M=this.$size.scrollerWidth-this.$padding*2,D=Math.floor(M/this.characterWidth);return this.session.adjustWrapLimit(D,this.$showPrintMargin&&this.$printMarginColumn)},T.prototype.setAnimatedScroll=function(M){this.setOption("animatedScroll",M)},T.prototype.getAnimatedScroll=function(){return this.$animatedScroll},T.prototype.setShowInvisibles=function(M){this.setOption("showInvisibles",M),this.session.$bidiHandler.setShowInvisibles(M)},T.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},T.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},T.prototype.setDisplayIndentGuides=function(M){this.setOption("displayIndentGuides",M)},T.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},T.prototype.setHighlightIndentGuides=function(M){this.setOption("highlightIndentGuides",M)},T.prototype.setShowPrintMargin=function(M){this.setOption("showPrintMargin",M)},T.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},T.prototype.setPrintMarginColumn=function(M){this.setOption("printMarginColumn",M)},T.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},T.prototype.getShowGutter=function(){return this.getOption("showGutter")},T.prototype.setShowGutter=function(M){return this.setOption("showGutter",M)},T.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},T.prototype.setFadeFoldWidgets=function(M){this.setOption("fadeFoldWidgets",M)},T.prototype.setHighlightGutterLine=function(M){this.setOption("highlightGutterLine",M)},T.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},T.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var M=r.createElement("div");M.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",M.appendChild(this.$printMarginEl),this.content.insertBefore(M,this.content.firstChild)}var D=this.$printMarginEl.style;D.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",D.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},T.prototype.getContainerElement=function(){return this.container},T.prototype.getMouseEventTarget=function(){return this.scroller},T.prototype.getTextAreaContainer=function(){return this.container},T.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var M=this.textarea.style,D=this.$composition;if(!this.$keepTextAreaAtCursor&&!D){r.translate(this.textarea,-100,0);return}var _=this.$cursorLayer.$pixelPos;if(_){D&&D.markerRange&&(_=this.$cursorLayer.getPixelPosition(D.markerRange.start,!0));var p=this.layerConfig,b=_.top,S=_.left;b-=p.offset;var I=D&&D.useTextareaForIME||x.isMobile?this.lineHeight:1;if(b<0||b>p.height-I){r.translate(this.textarea,0,0);return}var A=1,R=this.$size.height-I;if(!D)b+=this.lineHeight;else if(D.useTextareaForIME){var O=this.textarea.value;A=this.characterWidth*this.session.$getStringScreenWidth(O)[0]}else b+=this.lineHeight+2;S-=this.scrollLeft,S>this.$size.scrollerWidth-A&&(S=this.$size.scrollerWidth-A),S+=this.gutterWidth+this.margin.left,r.setStyle(M,"height",I+"px"),r.setStyle(M,"width",A+"px"),r.translate(this.textarea,Math.min(S,this.$size.scrollerWidth-A),Math.min(b,R))}}},T.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},T.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},T.prototype.getLastFullyVisibleRow=function(){var M=this.layerConfig,D=M.lastRow,_=this.session.documentToScreenRow(D,0)*M.lineHeight;return _-this.session.getScrollTop()>M.height-M.lineHeight?D-1:D},T.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},T.prototype.setPadding=function(M){this.$padding=M,this.$textLayer.setPadding(M),this.$cursorLayer.setPadding(M),this.$markerFront.setPadding(M),this.$markerBack.setPadding(M),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},T.prototype.setScrollMargin=function(M,D,_,p){var b=this.scrollMargin;b.top=M|0,b.bottom=D|0,b.right=p|0,b.left=_|0,b.v=b.top+b.bottom,b.h=b.left+b.right,b.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-b.top),this.updateFull()},T.prototype.setMargin=function(M,D,_,p){var b=this.margin;b.top=M|0,b.bottom=D|0,b.right=p|0,b.left=_|0,b.v=b.top+b.bottom,b.h=b.left+b.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},T.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},T.prototype.setHScrollBarAlwaysVisible=function(M){this.setOption("hScrollBarAlwaysVisible",M)},T.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},T.prototype.setVScrollBarAlwaysVisible=function(M){this.setOption("vScrollBarAlwaysVisible",M)},T.prototype.$updateScrollBarV=function(){var M=this.layerConfig.maxHeight,D=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(M-=(D-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>M-D&&(M=this.scrollTop+D,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(M+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},T.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},T.prototype.freeze=function(){this.$frozen=!0},T.prototype.unfreeze=function(){this.$frozen=!1},T.prototype.$renderChanges=function(M,D){if(this.$changes&&(M|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!M&&!D){this.$changes|=M;return}if(this.$size.$dirty)return this.$changes|=M,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",M),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var _=this.layerConfig;if(M&this.CHANGE_FULL||M&this.CHANGE_SIZE||M&this.CHANGE_TEXT||M&this.CHANGE_LINES||M&this.CHANGE_SCROLL||M&this.CHANGE_H_SCROLL){if(M|=this.$computeLayerConfig()|this.$loop.clear(),_.firstRow!=this.layerConfig.firstRow&&_.firstRowScreen==this.layerConfig.firstRowScreen){var p=this.scrollTop+(_.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;p>0&&(this.scrollTop=p,M=M|this.CHANGE_SCROLL,M|=this.$computeLayerConfig()|this.$loop.clear())}_=this.layerConfig,this.$updateScrollBarV(),M&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),r.translate(this.content,-this.scrollLeft,-_.offset);var b=_.width+2*this.$padding+"px",S=_.minHeight+"px";r.setStyle(this.content.style,"width",b),r.setStyle(this.content.style,"height",S)}if(M&this.CHANGE_H_SCROLL&&(r.translate(this.content,-this.scrollLeft,-_.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),M&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(_),this.$showGutter&&this.$gutterLayer.update(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_),this.$markerBack.update(_),this.$markerFront.update(_),this.$cursorLayer.update(_),this.$moveTextAreaToCursor(),this._signal("afterRender",M);return}if(M&this.CHANGE_SCROLL){this.$changedLines=null,M&this.CHANGE_TEXT||M&this.CHANGE_LINES?this.$textLayer.update(_):this.$textLayer.scrollLines(_),this.$showGutter&&(M&this.CHANGE_GUTTER||M&this.CHANGE_LINES?this.$gutterLayer.update(_):this.$gutterLayer.scrollLines(_)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_),this.$markerBack.update(_),this.$markerFront.update(_),this.$cursorLayer.update(_),this.$moveTextAreaToCursor(),this._signal("afterRender",M);return}M&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(_),this.$showGutter&&this.$gutterLayer.update(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_)):M&this.CHANGE_LINES?((this.$updateLines()||M&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_)):M&this.CHANGE_TEXT||M&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_)):M&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_)),M&this.CHANGE_CURSOR&&(this.$cursorLayer.update(_),this.$moveTextAreaToCursor()),M&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(_),M&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(_),this._signal("afterRender",M)},T.prototype.$autosize=function(){var M=this.session.getScreenLength()*this.lineHeight,D=this.$maxLines*this.lineHeight,_=Math.min(D,Math.max((this.$minLines||1)*this.lineHeight,M))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(_+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&_>this.$maxPixelHeight&&(_=this.$maxPixelHeight);var p=_<=2*this.lineHeight,b=!p&&M>D;if(_!=this.desiredHeight||this.$size.height!=this.desiredHeight||b!=this.$vScroll){b!=this.$vScroll&&(this.$vScroll=b,this.scrollBarV.setVisible(b));var S=this.container.clientWidth;this.container.style.height=_+"px",this.$updateCachedSize(!0,this.$gutterWidth,S,_),this.desiredHeight=_,this._signal("autosize")}},T.prototype.$computeLayerConfig=function(){var M=this.session,D=this.$size,_=D.height<=2*this.lineHeight,p=this.session.getScreenLength(),b=p*this.lineHeight,S=this.$getLongestLine(),I=!_&&(this.$hScrollBarAlwaysVisible||D.scrollerWidth-S-2*this.$padding<0),A=this.$horizScroll!==I;A&&(this.$horizScroll=I,this.scrollBarH.setVisible(I));var R=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var O=D.scrollerHeight+this.lineHeight,U=!this.$maxLines&&this.$scrollPastEnd?(D.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;b+=U;var P=this.scrollMargin;this.session.setScrollTop(Math.max(-P.top,Math.min(this.scrollTop,b-D.scrollerHeight+P.bottom))),this.session.setScrollLeft(Math.max(-P.left,Math.min(this.scrollLeft,S+2*this.$padding-D.scrollerWidth+P.right)));var W=!_&&(this.$vScrollBarAlwaysVisible||D.scrollerHeight-b+U<0||this.scrollTop>P.top),V=R!==W;V&&(this.$vScroll=W,this.scrollBarV.setVisible(W));var K=this.scrollTop%this.lineHeight,Q=Math.ceil(O/this.lineHeight)-1,q=Math.max(0,Math.round((this.scrollTop-K)/this.lineHeight)),ce=q+Q,Re,ve,ae=this.lineHeight;q=M.screenToDocumentRow(q,0);var we=M.getFoldLine(q);we&&(q=we.start.row),Re=M.documentToScreenRow(q,0),ve=M.getRowLength(q)*ae,ce=Math.min(M.screenToDocumentRow(ce,0),M.getLength()-1),O=D.scrollerHeight+M.getRowLength(ce)*ae+ve,K=this.scrollTop-Re*ae;var Ie=0;return(this.layerConfig.width!=S||A)&&(Ie=this.CHANGE_H_SCROLL),(A||V)&&(Ie|=this.$updateCachedSize(!0,this.gutterWidth,D.width,D.height),this._signal("scrollbarVisibilityChanged"),V&&(S=this.$getLongestLine())),this.layerConfig={width:S,padding:this.$padding,firstRow:q,firstRowScreen:Re,lastRow:ce,lineHeight:ae,characterWidth:this.characterWidth,minHeight:O,maxHeight:b,offset:K,gutterOffset:ae?Math.max(0,Math.ceil((K+D.height-D.scrollerHeight)/ae)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(S-this.$padding),Ie},T.prototype.$updateLines=function(){if(this.$changedLines){var M=this.$changedLines.firstRow,D=this.$changedLines.lastRow;this.$changedLines=null;var _=this.layerConfig;if(!(M>_.lastRow+1)&&!(D<_.firstRow)){if(D===1/0){this.$showGutter&&this.$gutterLayer.update(_),this.$textLayer.update(_);return}return this.$textLayer.updateLines(_,M,D),!0}}},T.prototype.$getLongestLine=function(){var M=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(M+=1),this.$textLayer&&M>this.$textLayer.MAX_LINE_LENGTH&&(M=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(M*this.characterWidth))},T.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},T.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},T.prototype.addGutterDecoration=function(M,D){this.$gutterLayer.addGutterDecoration(M,D)},T.prototype.removeGutterDecoration=function(M,D){this.$gutterLayer.removeGutterDecoration(M,D)},T.prototype.updateBreakpoints=function(M){this._rows=M,this.$loop.schedule(this.CHANGE_GUTTER)},T.prototype.setAnnotations=function(M){this.$gutterLayer.setAnnotations(M),this.$loop.schedule(this.CHANGE_GUTTER)},T.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},T.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},T.prototype.showCursor=function(){this.$cursorLayer.showCursor()},T.prototype.scrollSelectionIntoView=function(M,D,_){this.scrollCursorIntoView(M,_),this.scrollCursorIntoView(D,_)},T.prototype.scrollCursorIntoView=function(M,D,_){if(this.$size.scrollerHeight!==0){var p=this.$cursorLayer.getPixelPosition(M),b=p.left,S=p.top,I=_&&_.top||0,A=_&&_.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var R=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;R+I>S?(D&&R+I>S+this.lineHeight&&(S-=D*this.$size.scrollerHeight),S===0&&(S=-this.scrollMargin.top),this.session.setScrollTop(S)):R+this.$size.scrollerHeight-A=1-this.scrollMargin.top||D>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||M<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||M>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},T.prototype.pixelToScreenCoordinates=function(M,D){var _;if(this.$hasCssTransforms){_={top:0,left:0};var p=this.$fontMetrics.transformCoordinates([M,D]);M=p[1]-this.gutterWidth-this.margin.left,D=p[0]}else _=this.scroller.getBoundingClientRect();var b=M+this.scrollLeft-_.left-this.$padding,S=b/this.characterWidth,I=Math.floor((D+this.scrollTop-_.top)/this.lineHeight),A=this.$blockCursor?Math.floor(S):Math.round(S);return{row:I,column:A,side:S-A>0?1:-1,offsetX:b}},T.prototype.screenToTextCoordinates=function(M,D){var _;if(this.$hasCssTransforms){_={top:0,left:0};var p=this.$fontMetrics.transformCoordinates([M,D]);M=p[1]-this.gutterWidth-this.margin.left,D=p[0]}else _=this.scroller.getBoundingClientRect();var b=M+this.scrollLeft-_.left-this.$padding,S=b/this.characterWidth,I=this.$blockCursor?Math.floor(S):Math.round(S),A=Math.floor((D+this.scrollTop-_.top)/this.lineHeight);return this.session.screenToDocumentPosition(A,Math.max(I,0),b)},T.prototype.textToScreenCoordinates=function(M,D){var _=this.scroller.getBoundingClientRect(),p=this.session.documentToScreenPosition(M,D),b=this.$padding+(this.session.$bidiHandler.isBidiRow(p.row,M)?this.session.$bidiHandler.getPosLeft(p.column):Math.round(p.column*this.characterWidth)),S=p.row*this.lineHeight;return{pageX:_.left+b-this.scrollLeft,pageY:_.top+S-this.scrollTop}},T.prototype.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},T.prototype.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},T.prototype.showComposition=function(M){this.$composition=M,M.cssText||(M.cssText=this.textarea.style.cssText),M.useTextareaForIME==null&&(M.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):M.markerId=this.session.addMarker(M.markerRange,"ace_composition_marker","text")},T.prototype.setCompositionText=function(M){var D=this.session.selection.cursor;this.addToken(M,"composition_placeholder",D.row,D.column),this.$moveTextAreaToCursor()},T.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),r.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var M=this.session.selection.cursor;this.removeExtraToken(M.row,M.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},T.prototype.setGhostText=function(M,D){var _=this.session.selection.cursor,p=D||{row:_.row,column:_.column};this.removeGhostText();var b=this.$calculateWrappedTextChunks(M,p);this.addToken(b[0].text,"ghost_text",p.row,p.column),this.$ghostText={text:M,position:{row:p.row,column:p.column}};var S=r.createElement("div");if(b.length>1){var I=this.hideTokensAfterPosition(p.row,p.column),A;b.slice(1).forEach(function(V){var K=r.createElement("div"),Q=r.createElement("span");Q.className="ace_ghost_text",V.wrapped&&(K.className="ghost_text_line_wrapped"),V.text.length===0&&(V.text=" "),Q.appendChild(r.createTextNode(V.text)),K.appendChild(Q),S.appendChild(K),A=K}),I.forEach(function(V){var K=r.createElement("span");y(V.type)||(K.className="ace_"+V.type.replace(/\./g," ace_")),K.appendChild(r.createTextNode(V.value)),A.appendChild(K)}),this.$ghostTextWidget={el:S,row:p.row,column:p.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var R=this.$cursorLayer.getPixelPosition(p,!0),O=this.container,U=O.getBoundingClientRect().height,P=b.length*this.lineHeight,W=P0){var O=0;R.push(b[I].length);for(var U=0;U1||Math.abs(M.$size.height-p)>1?M.$resizeTimer.delay():M.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},T}();E.prototype.CHANGE_CURSOR=1,E.prototype.CHANGE_MARKER=2,E.prototype.CHANGE_GUTTER=4,E.prototype.CHANGE_SCROLL=8,E.prototype.CHANGE_LINES=16,E.prototype.CHANGE_TEXT=32,E.prototype.CHANGE_SIZE=64,E.prototype.CHANGE_MARKER_BACK=128,E.prototype.CHANGE_MARKER_FRONT=256,E.prototype.CHANGE_FULL=512,E.prototype.CHANGE_H_SCROLL=1024,E.prototype.$changes=0,E.prototype.$padding=null,E.prototype.$frozen=!1,E.prototype.STEPS=8,i.implement(E.prototype,w),a.defineOptions(E.prototype,"renderer",{useResizeObserver:{set:function(T){!T&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):T&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(T){this.$textLayer.setShowInvisibles(T)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(T){typeof T=="number"&&(this.$printMarginColumn=T),this.$showPrintMargin=!!T,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(T){this.$gutter.style.display=T?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(T){this.$gutterLayer.$useSvgGutterIcons=T},initialValue:!1},showFoldedAnnotations:{set:function(T){this.$gutterLayer.$showFoldedAnnotations=T},initialValue:!1},fadeFoldWidgets:{set:function(T){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",T)},initialValue:!1},showFoldWidgets:{set:function(T){this.$gutterLayer.setShowFoldWidgets(T),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(T){this.$textLayer.setDisplayIndentGuides(T)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(T){this.$textLayer.setHighlightIndentGuides(T)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(T){this.$gutterLayer.setHighlightGutterLine(T),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(T){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(T){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(T){typeof T=="number"&&(T=T+"px"),this.container.style.fontSize=T,this.updateFontSize()},initialValue:12},fontFamily:{set:function(T){this.container.style.fontFamily=T,this.updateFontSize()}},maxLines:{set:function(T){this.updateFull()}},minLines:{set:function(T){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(T){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(T){T=+T||0,this.$scrollPastEnd!=T&&(this.$scrollPastEnd=T,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(T){this.$gutterLayer.$fixedWidth=!!T,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(T){this.$updateCustomScrollbar(T)},initialValue:!1},theme:{set:function(T){this.setTheme(T)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!x.isMobile&&!x.isIE}}),t.VirtualRenderer=E});ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("../lib/net"),s=n("../lib/event_emitter").EventEmitter,a=n("../config");function o(d){var h="importScripts('"+r.qualifyURL(d)+"');";try{return new Blob([h],{type:"application/javascript"})}catch{var m=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new m;return f.append(h),f.getBlob("application/javascript")}}function l(d){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var h=o(d),m=window.URL||window.webkitURL,f=m.createObjectURL(h);return new Worker(f)}return new Worker(d)}var c=function(d){d.postMessage||(d=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=d,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){i.implement(this,s),this.$createWorkerFromOldConfig=function(d,h,m,f,g){if(n.nameToUrl&&!n.toUrl&&(n.toUrl=n.nameToUrl),a.get("packaged")||!n.toUrl)f=f||a.moduleUrl(h,"worker");else{var v=this.$normalizePath;f=f||v(n.toUrl("ace/worker/worker.js",null,"_"));var w={};d.forEach(function(C){w[C]=v(n.toUrl(C,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=l(f),g&&this.send("importScripts",g),this.$worker.postMessage({init:!0,tlns:w,module:h,classname:m}),this.$worker},this.onMessage=function(d){var h=d.data;switch(h.type){case"event":this._signal(h.name,{data:h.data});break;case"call":var m=this.callbacks[h.id];m&&(m(h.data),delete this.callbacks[h.id]);break;case"error":this.reportError(h.data);break;case"log":window.console&&console.log&&console.log.apply(console,h.data);break}},this.reportError=function(d){window.console&&console.error&&console.error(d)},this.$normalizePath=function(d){return r.qualifyURL(d)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(d){d.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(d,h){this.$worker.postMessage({command:d,args:h})},this.call=function(d,h,m){if(m){var f=this.callbackId++;this.callbacks[f]=m,h.push(f)}this.send(d,h)},this.emit=function(d,h){try{h.data&&h.data.err&&(h.data.err={message:h.data.err.message,stack:h.data.err.stack,code:h.data.err.code}),this.$worker&&this.$worker.postMessage({event:d,data:{data:h.data}})}catch(m){console.error(m.stack)}},this.attachToDocument=function(d){this.$doc&&this.terminate(),this.$doc=d,this.call("setValue",[d.getValue()]),d.on("change",this.changeListener,!0)},this.changeListener=function(d){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),d.action=="insert"?this.deltaQueue.push(d.start,d.lines):this.deltaQueue.push(d.start,d.end)},this.$sendDeltaQueue=function(){var d=this.deltaQueue;d&&(this.deltaQueue=null,d.length>50&&d.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:d}))}}).call(c.prototype);var u=function(d,h,m){var f=null,g=!1,v=Object.create(s),w=[],C=new c({messageBuffer:w,terminate:function(){},postMessage:function(x){w.push(x),f&&(g?setTimeout(k):k())}});C.setEmitSync=function(x){g=x};var k=function(){var x=w.shift();x.command?f[x.command].apply(f,x.args):x.event&&v._signal(x.event,x.data)};return v.postMessage=function(x){C.onMessage({data:x})},v.callback=function(x,y){this.postMessage({type:"call",id:y,data:x})},v.emit=function(x,y){this.postMessage({type:"event",name:x,data:y})},a.loadModule(["worker",h],function(x){for(f=new x[m](v);w.length;)k()}),C};t.UIWorkerClient=u,t.WorkerClient=c,t.createWorker=l});ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(n,t,e){"use strict";var i=n("./range").Range,r=n("./lib/event_emitter").EventEmitter,s=n("./lib/oop"),a=function(){function o(l,c,u,d,h,m){var f=this;this.length=c,this.session=l,this.doc=l.getDocument(),this.mainClass=h,this.othersClass=m,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=d,this.$onCursorChange=function(){setTimeout(function(){f.onCursorChange()})},this.$pos=u;var g=l.getUndoManager().$undoStack||l.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=g.length,this.setup(),l.selection.on("changeCursor",this.$onCursorChange)}return o.prototype.setup=function(){var l=this,c=this.doc,u=this.session;this.selectionBefore=u.selection.toJSON(),u.selection.inMultiSelectMode&&u.selection.toSingleRange(),this.pos=c.createAnchor(this.$pos.row,this.$pos.column);var d=this.pos;d.$insertRight=!0,d.detach(),d.markerId=u.addMarker(new i(d.row,d.column,d.row,d.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(h){var m=c.createAnchor(h.row,h.column);m.$insertRight=!0,m.detach(),l.others.push(m)}),u.setUndoSelect(!1)},o.prototype.showOtherMarkers=function(){if(!this.othersActive){var l=this.session,c=this;this.othersActive=!0,this.others.forEach(function(u){u.markerId=l.addMarker(new i(u.row,u.column,u.row,u.column+c.length),c.othersClass,null,!1)})}},o.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var l=0;l=this.pos.column&&c.start.column<=this.pos.column+this.length+1,h=c.start.column-this.pos.column;if(this.updateAnchors(l),d&&(this.length+=u),d&&!this.session.$fromUndo){if(l.action==="insert")for(var m=this.others.length-1;m>=0;m--){var f=this.others[m],g={row:f.row,column:f.column+h};this.doc.insertMergedLines(g,l.lines)}else if(l.action==="remove")for(var m=this.others.length-1;m>=0;m--){var f=this.others[m],g={row:f.row,column:f.column+h};this.doc.remove(new i(g.row,g.column,g.row,g.column-u))}}this.$updating=!1,this.updateMarkers()}},o.prototype.updateAnchors=function(l){this.pos.onChange(l);for(var c=this.others.length;c--;)this.others[c].onChange(l);this.updateMarkers()},o.prototype.updateMarkers=function(){if(!this.$updating){var l=this,c=this.session,u=function(h,m){c.removeMarker(h.markerId),h.markerId=c.addMarker(new i(h.row,h.column,h.row,h.column+l.length),m,null,!1)};u(this.pos,this.mainClass);for(var d=this.others.length;d--;)u(this.others[d],this.othersClass)}},o.prototype.onCursorChange=function(l){if(!(this.$updating||!this.session)){var c=this.session.selection.getCursor();c.row===this.pos.row&&c.column>=this.pos.column&&c.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",l)):(this.hideOtherMarkers(),this._emit("cursorLeave",l))}},o.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},o.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var l=this.session.getUndoManager(),c=(l.$undoStack||l.$undostack).length-this.$undoStackDepth,u=0;u1?r.multiSelect.joinSelections():r.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(r){r.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(r){r.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(r){r.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(r){r.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(r){return r&&r.inMultiSelectMode}}];var i=n("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new i(t.multiSelectCommands)});ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(n,t,e){var i=n("./range_list").RangeList,r=n("./range").Range,s=n("./selection").Selection,a=n("./mouse/multi_select_handler").onMouseDown,o=n("./lib/event"),l=n("./lib/lang"),c=n("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=n("./search").Search,d=new u;function h(C,k,x){return d.$options.wrap=!0,d.$options.needle=k,d.$options.backwards=x==-1,d.find(C)}var m=n("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(m.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(C,k){if(C){if(!this.inMultiSelectMode&&this.rangeCount===0){var x=this.toOrientedRange();if(this.rangeList.add(x),this.rangeList.add(C),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),k||this.fromOrientedRange(C);this.rangeList.removeAll(),this.rangeList.add(x),this.$onAddRange(x)}C.cursor||(C.cursor=C.end);var y=this.rangeList.add(C);return this.$onAddRange(C),y.length&&this.$onRemoveRange(y),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),k||this.fromOrientedRange(C)}},this.toSingleRange=function(C){C=C||this.ranges[0];var k=this.rangeList.removeAll();k.length&&this.$onRemoveRange(k),C&&this.fromOrientedRange(C)},this.substractPoint=function(C){var k=this.rangeList.substractPoint(C);if(k)return this.$onRemoveRange(k),k[0]},this.mergeOverlappingRanges=function(){var C=this.rangeList.merge();C.length&&this.$onRemoveRange(C)},this.$onAddRange=function(C){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(C),this._signal("addRange",{range:C})},this.$onRemoveRange=function(C){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var k=this.rangeList.ranges.pop();C.push(k),this.rangeCount=0}for(var x=C.length;x--;){var y=this.ranges.indexOf(C[x]);this.ranges.splice(y,1)}this._signal("removeRange",{ranges:C}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),k=k||this.ranges[0],k&&!k.isEqual(this.getRange())&&this.fromOrientedRange(k)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new i,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var C=this.ranges.length?this.ranges:[this.getRange()],k=[],x=0;x1){var C=this.rangeList.ranges,k=C[C.length-1],x=r.fromPoints(C[0].start,k.end);this.toSingleRange(),this.setSelectionRange(x,k.cursor==k.start)}else{var y=this.session.documentToScreenPosition(this.cursor),E=this.session.documentToScreenPosition(this.anchor),T=this.rectangularRangeBlock(y,E);T.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(C,k,x){var y=[],E=C.column0;)O--;if(O>0)for(var U=0;y[U].isEmpty();)U++;for(var P=O;P>=U;P--)y[P].isEmpty()&&y.splice(P,1)}return y}}.call(s.prototype);var f=n("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(C){C.cursor||(C.cursor=C.end);var k=this.getSelectionStyle();return C.marker=this.session.addMarker(C,"ace_selection",k),this.session.$selectionMarkers.push(C),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,C},this.removeSelectionMarker=function(C){if(C.marker){this.session.removeMarker(C.marker);var k=this.session.$selectionMarkers.indexOf(C);k!=-1&&this.session.$selectionMarkers.splice(k,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(C){for(var k=this.session.$selectionMarkers,x=C.length;x--;){var y=C[x];if(y.marker){this.session.removeMarker(y.marker);var E=k.indexOf(y);E!=-1&&k.splice(E,1)}}this.session.selectionMarkerCount=k.length},this.$onAddRange=function(C){this.addSelectionMarker(C.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(C){this.removeSelectionMarkers(C.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(C){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(C){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(C){var k=C.command,x=C.editor;if(x.multiSelect){if(k.multiSelectAction)k.multiSelectAction=="forEach"?y=x.forEachSelection(k,C.args):k.multiSelectAction=="forEachLine"?y=x.forEachSelection(k,C.args,!0):k.multiSelectAction=="single"?(x.exitMultiSelectMode(),y=k.exec(x,C.args||{})):y=k.multiSelectAction(x,C.args||{});else{var y=k.exec(x,C.args||{});x.multiSelect.addRange(x.multiSelect.toOrientedRange()),x.multiSelect.mergeOverlappingRanges()}return y}},this.forEachSelection=function(C,k,x){if(!this.inVirtualSelectionMode){var y=x&&x.keepOrder,E=x==!0||x&&x.$byLines,T=this.session,M=this.selection,D=M.rangeList,_=(y?M:D).ranges,p;if(!_.length)return C.exec?C.exec(this,k||{}):C(this,k||{});var b=M._eventRegistry;M._eventRegistry={};var S=new s(T);this.inVirtualSelectionMode=!0;for(var I=_.length;I--;){if(E)for(;I>0&&_[I].start.row==_[I-1].end.row;)I--;S.fromOrientedRange(_[I]),S.index=I,this.selection=T.selection=S;var A=C.exec?C.exec(this,k||{}):C(this,k||{});!p&&A!==void 0&&(p=A),S.toOrientedRange(_[I])}S.detach(),this.selection=T.selection=M,this.inVirtualSelectionMode=!1,M._eventRegistry=b,M.mergeOverlappingRanges(),M.ranges[0]&&M.fromOrientedRange(M.ranges[0]);var R=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),R&&R.from==R.to&&this.renderer.animateScrolling(R.from),p}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var C="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var k=this.multiSelect.rangeList.ranges,x=[],y=0;y0);M<0&&(M=0),D>=p&&(D=p-1)}var S=this.session.removeFullLines(M,D);S=this.$reAlignText(S,_),this.session.insert({row:M,column:0},S.join(` -`)+` -`),_||(T.start.column=0,T.end.column=S[S.length-1].length),this.selection.setRange(T)}else{E.forEach(function(O){k.substractPoint(O.cursor)});var I=0,A=1/0,R=x.map(function(O){var U=O.cursor,P=C.getLine(U.row),W=P.substr(U.column).search(/\S/g);return W==-1&&(W=0),U.column>I&&(I=U.column),WV?C.insert(P,l.stringRepeat(" ",W-V)):C.remove(new r(P.row,P.column,P.row,P.column-W+V)),O.start.column=O.end.column=I,O.start.row=O.end.row=P.row,O.cursor=O.end}),k.fromOrientedRange(x[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(C,k){var x=!0,y=!0,E,T,M;return C.map(function(S){var I=S.match(/(\s*)(.*?)(\s*)([=:].*)/);return I?E==null?(E=I[1].length,T=I[2].length,M=I[3].length,I):(E+T+M!=I[1].length+I[2].length+I[3].length&&(y=!1),E!=I[1].length&&(x=!1),E>I[1].length&&(E=I[1].length),TI[3].length&&(M=I[3].length),I):[S]}).map(k?_:x?y?p:_:b);function D(S){return l.stringRepeat(" ",S)}function _(S){return S[2]?D(E)+S[2]+D(T-S[2].length+M)+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}function p(S){return S[2]?D(E+T-S[2].length)+S[2]+D(M)+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}function b(S){return S[2]?D(E)+S[2]+D(M)+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}}}).call(f.prototype);function g(C,k){return C.row==k.row&&C.column==k.column}t.onSessionChange=function(C){var k=C.session;k&&!k.multiSelect&&(k.$selectionMarkers=[],k.selection.$initRangeList(),k.multiSelect=k.selection),this.multiSelect=k&&k.multiSelect;var x=C.oldSession;x&&(x.multiSelect.off("addRange",this.$onAddRange),x.multiSelect.off("removeRange",this.$onRemoveRange),x.multiSelect.off("multiSelect",this.$onMultiSelect),x.multiSelect.off("singleSelect",this.$onSingleSelect),x.multiSelect.lead.off("change",this.$checkMultiselectChange),x.multiSelect.anchor.off("change",this.$checkMultiselectChange)),k&&(k.multiSelect.on("addRange",this.$onAddRange),k.multiSelect.on("removeRange",this.$onRemoveRange),k.multiSelect.on("multiSelect",this.$onMultiSelect),k.multiSelect.on("singleSelect",this.$onSingleSelect),k.multiSelect.lead.on("change",this.$checkMultiselectChange),k.multiSelect.anchor.on("change",this.$checkMultiselectChange)),k&&this.inMultiSelectMode!=k.selection.inMultiSelectMode&&(k.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function v(C){C.$multiselectOnSessionChange||(C.$onAddRange=C.$onAddRange.bind(C),C.$onRemoveRange=C.$onRemoveRange.bind(C),C.$onMultiSelect=C.$onMultiSelect.bind(C),C.$onSingleSelect=C.$onSingleSelect.bind(C),C.$multiselectOnSessionChange=t.onSessionChange.bind(C),C.$checkMultiselectChange=C.$checkMultiselectChange.bind(C),C.$multiselectOnSessionChange(C),C.on("changeSession",C.$multiselectOnSessionChange),C.on("mousedown",a),C.commands.addCommands(c.defaultCommands),w(C))}function w(C){if(!C.textInput)return;var k=C.textInput.getElement(),x=!1;o.addListener(k,"keydown",function(E){var T=E.keyCode==18&&!(E.ctrlKey||E.shiftKey||E.metaKey);C.$blockSelectEnabled&&T?x||(C.renderer.setMouseCursor("crosshair"),x=!0):x&&y()},C),o.addListener(k,"keyup",y,C),o.addListener(k,"blur",y,C);function y(E){x&&(C.renderer.setMouseCursor(""),x=!1)}}t.MultiSelect=v,n("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(C){v(this),C?this.on("mousedown",a):this.off("mousedown",a)},value:!0},enableBlockSelect:{set:function(C){this.$blockSelectEnabled=C},value:!0}})});ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=n("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(s,a,o){var l=s.getLine(o);return this.foldingStartMarker.test(l)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(l)?"end":""},this.getFoldWidgetRange=function(s,a,o){return null},this.indentationBlock=function(s,a,o){var l=/\S/,c=s.getLine(a),u=c.search(l);if(u!=-1){for(var d=o||c.length,h=s.getLength(),m=a,f=a;++am){var w=s.getLine(f).length;return new i(m,d,f,w)}}},this.openingBracketBlock=function(s,a,o,l,c){var u={row:o,column:l+1},d=s.$findClosingBracket(a,u,c);if(d){var h=s.foldWidgets[d.row];return h==null&&(h=s.getFoldWidget(d.row)),h=="start"&&d.row>u.row&&(d.row--,d.column=s.getLine(d.row).length),i.fromPoints(u,d)}},this.closingBracketBlock=function(s,a,o,l,c){var u={row:o,column:l},d=s.$findOpeningBracket(a,u);if(d)return d.column++,u.column--,i.fromPoints(d,u)}}).call(r.prototype)});ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../range").Range,s=n("../config").nls;function a(l,c,u){for(var d=0,h=l.length-1;d<=h;){var m=d+h>>1,f=u(c,l[m]);if(f>0)d=m+1;else if(f<0)h=m-1;else return m}return-(d+1)}function o(l,c,u){var d=l.getAnnotations().sort(r.comparePoints);if(d.length){var h=a(d,{row:c,column:-1},r.comparePoints);h<0&&(h=-h-1),h>=d.length?h=u>0?0:d.length-1:h===0&&u<0&&(h=d.length-1);var m=d[h];if(!(!m||!u)){if(m.row===c){do m=d[h+=u];while(m&&m.row===c);if(!m)return d.slice()}var f=[];c=m.row;do f[u<0?"unshift":"push"](m),m=d[h+=u];while(m&&m.row==c);return f.length&&f}}}t.showErrorMarker=function(l,c){var u=l.session,d=l.getCursorPosition(),h=d.row,m=u.widgetManager.getWidgetsAtRow(h).filter(function(E){return E.type=="errorMarker"})[0];m?m.destroy():h-=c;var f=o(u,h,c),g;if(f){var v=f[0];d.column=(v.pos&&typeof v.column!="number"?v.pos.sc:v.column)||0,d.row=v.row,g=l.renderer.$gutterLayer.$annotations[d.row]}else{if(m)return;g={displayText:[s("error-marker.good-state","Looks good!")],className:"ace_ok"}}l.session.unfold(d.row),l.selection.moveToPosition(d);var w={row:d.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},C=w.el.appendChild(i.createElement("div")),k=w.el.appendChild(i.createElement("div"));k.className="error_widget_arrow "+g.className;var x=l.renderer.$cursorLayer.getPixelPosition(d).left;k.style.left=x+l.renderer.gutterWidth-5+"px",w.el.className="error_widget_wrapper",C.className="error_widget "+g.className,g.displayText.forEach(function(E,T){C.appendChild(i.createTextNode(E)),T{ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(s,r),t.JsonHighlightRules=s});ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=n("../range").Range,r=function(){};(function(){this.checkOutdent=function(s,a){return/^\s+$/.test(s)?/^\s*\}/.test(a):!1},this.autoOutdent=function(s,a){var o=s.getLine(a),l=o.match(/^(\s*\})/);if(!l)return 0;var c=l[1].length,u=s.findMatchingBracket({row:a,column:c});if(!u||u.row==a)return 0;var d=this.$getIndent(s.getLine(u.row));s.replace(new i(a,0,a,c-1),d)},this.$getIndent=function(s){return s.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r});ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(n,t,e){"use strict";var i=n("../../lib/oop"),r=n("../../range").Range,s=n("./fold_mode").FoldMode,a=t.FoldMode=function(o){o&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+o.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+o.end)))};i.inherits(a,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(o,l,c){var u=o.getLine(c);if(this.singleLineBlockCommentRe.test(u)&&!this.startRegionRe.test(u)&&!this.tripleStarBlockCommentRe.test(u))return"";var d=this._getFoldWidgetBase(o,l,c);return!d&&this.startRegionRe.test(u)?"start":d},this.getFoldWidgetRange=function(o,l,c,u){var d=o.getLine(c);if(this.startRegionRe.test(d))return this.getCommentRegionBlock(o,d,c);var f=d.match(this.foldingStartMarker);if(f){var h=f.index;if(f[1])return this.openingBracketBlock(o,f[1],c,h);var m=o.getCommentFoldRange(c,h+f[0].length,1);return m&&!m.isMultiLine()&&(u?m=this.getSectionRange(o,c):l!="all"&&(m=null)),m}if(l!=="markbegin"){var f=d.match(this.foldingStopMarker);if(f){var h=f.index+f[0].length;return f[1]?this.closingBracketBlock(o,f[1],c,h):o.getCommentFoldRange(c,h,-1)}}},this.getSectionRange=function(o,l){var c=o.getLine(l),u=c.search(/\S/),d=l,h=c.length;l=l+1;for(var m=l,f=o.getLength();++lg)break;var v=this.getFoldWidgetRange(o,"all",l);if(v){if(v.start.row<=d)break;if(v.isMultiLine())l=v.end.row;else if(u==g)break}m=l}}return new r(d,h,m,o.getLine(m).length)},this.getCommentRegionBlock=function(o,l,c){for(var u=l.search(/\s*$/),d=o.getLength(),h=c,m=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ch)return new r(h,u,v,l.length)}}.call(a.prototype)});ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("./text").Mode,s=n("./json_highlight_rules").JsonHighlightRules,a=n("./matching_brace_outdent").MatchingBraceOutdent,o=n("./folding/cstyle").FoldMode,l=n("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new o};i.inherits(c,r),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(u,d,h){var m=this.$getIndent(d);if(u=="start"){var f=d.match(/^.*[\{\(\[]\s*$/);f&&(m+=h)}return m},this.checkOutdent=function(u,d,h){return this.$outdent.checkOutdent(d,h)},this.autoOutdent=function(u,d,h){this.$outdent.autoOutdent(d,h)},this.createWorker=function(u){var d=new l(["ace"],"ace/mode/json_worker","JsonWorker");return d.attachToDocument(u.getDocument()),d.on("annotate",function(h){u.setAnnotations(h.data)}),d.on("terminate",function(){u.clearAnnotations()}),d},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c});(function(){ace.require(["ace/mode/json"],function(n){typeof om=="object"&&typeof JS=="object"&&om&&(om.exports=n)})})()});var ik=X((tk,lm)=>{ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"],function(n,t,e){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText=n("./textmate-css"),t.$id="ace/theme/textmate";var i=n("../lib/dom");i.importCssString(t.cssText,t.cssClass,!1)});(function(){ace.require(["ace/theme/textmate"],function(n){typeof lm=="object"&&typeof tk=="object"&&lm&&(lm.exports=n)})})()});var pT=X((yre,J4)=>{J4.exports={name:"fhirpath",version:"3.15.2",description:"A FHIRPath engine",main:"src/fhirpath.js",types:"src/fhirpath.d.ts",dependencies:{"@lhncbc/ucum-lhc":"^5.0.0",antlr4:"~4.9.3",commander:"^2.18.0","date-fns":"^1.30.1","js-yaml":"^3.13.1"},devDependencies:{"@babel/core":"^7.21.4","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","babel-loader":"^8.2.3",benny:"github:caderek/benny#0ad058d3c7ef0b488a8fe9ae3519159fc7f36bb6",bestzip:"^2.2.0","copy-webpack-plugin":"^6.0.3",cypress:"^13.7.2",eslint:"^8.10.0",fhir:"^4.10.3",grunt:"^1.5.2","grunt-cli":"^1.4.3","grunt-text-replace":"^0.4.0","jasmine-spec-reporter":"^4.2.1",jest:"^29.7.0","jit-grunt":"^0.10.0",lodash:"^4.17.21",open:"^8.4.0",rimraf:"^3.0.0",tmp:"0.0.33",tsd:"^0.31.1",webpack:"^5.11.1","webpack-bundle-analyzer":"^4.4.2","webpack-cli":"^4.9.1",xml2js:"^0.5.0",yargs:"^15.1.0"},engines:{node:">=8.9.0"},tsd:{directory:"test/typescript"},scripts:{preinstall:"node bin/install-demo.js",postinstall:`echo "Building the Benny package based on a pull request which fixes an issue with 'statusShift'... " && (cd node_modules/benny && npm i && npm run build > /dev/null) || echo "Building the Benny package is completed."`,generateParser:'cd src/parser; rimraf ./generated/*; java -Xmx500M -cp "../../antlr-4.9.3-complete.jar:$CLASSPATH" org.antlr.v4.Tool -o generated -Dlanguage=JavaScript FHIRPath.g4; grunt updateParserRequirements',build:"cd browser-build && webpack && rimraf fhirpath.zip && bestzip fhirpath.zip LICENSE.md fhirpath.min.js fhirpath.r5.min.js fhirpath.r4.min.js fhirpath.stu3.min.js fhirpath.dstu2.min.js && rimraf LICENSE.md","test:unit":"node --use_strict node_modules/.bin/jest && TZ=America/New_York node --use_strict node_modules/.bin/jest && TZ=Europe/Paris node --use_strict node_modules/.bin/jest","test:unit:debug":"echo 'open chrome chrome://inspect/' && node --inspect node_modules/.bin/jest --runInBand","build:demo":"npm run build && cd demo && npm run build","test:e2e":"npm run build:demo && cypress run","test:tsd":"tsd",test:'npm run lint && npm run test:tsd && npm run test:unit && npm run test:e2e && echo "For tests specific to IE 11, open browser-build/test/index.html in IE 11, and confirm that the tests on that page pass."',lint:"eslint src/parser/index.js src/*.js converter/","compare-performance":"node ./test/benchmark.js"},bin:{fhirpath:"bin/fhirpath"},files:["CHANGELOG.md","bin","fhir-context","src"],repository:"github:HL7/fhirpath.js",license:"SEE LICENSE in LICENSE.md"}});var Li=X((Cre,bT)=>{function e6(n){return n===null?"null":n}function gT(n){return Array.isArray(n)?"["+n.map(e6).join(", ")+"]":"null"}String.prototype.seed=String.prototype.seed||Math.round(Math.random()*Math.pow(2,32));String.prototype.hashCode=function(){let n=this.toString(),t,e,i=n.length&3,r=n.length-i,s=String.prototype.seed,a=3432918353,o=461845907,l=0;for(;l>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(e&65535)*o+(((e>>>16)*o&65535)<<16)&4294967295,s^=e,s=s<<13|s>>>19,t=(s&65535)*5+(((s>>>16)*5&65535)<<16)&4294967295,s=(t&65535)+27492+(((t>>>16)+58964&65535)<<16);switch(e=0,i){case 3:e^=(n.charCodeAt(l+2)&255)<<16;case 2:e^=(n.charCodeAt(l+1)&255)<<8;case 1:e^=n.charCodeAt(l)&255,e=(e&65535)*a+(((e>>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(e&65535)*o+(((e>>>16)*o&65535)<<16)&4294967295,s^=e}return s^=n.length,s^=s>>>16,s=(s&65535)*2246822507+(((s>>>16)*2246822507&65535)<<16)&4294967295,s^=s>>>13,s=(s&65535)*3266489909+(((s>>>16)*3266489909&65535)<<16)&4294967295,s^=s>>>16,s>>>0};function _T(n,t){return n?n.equals(t):n==t}function vT(n){return n?n.hashCode():-1}var yv=class{constructor(t,e){this.data={},this.hashFunction=t||vT,this.equalsFunction=e||_T}add(t){let i="hash_"+this.hashFunction(t);if(i in this.data){let r=this.data[i];for(let s=0;s>>17,i=i*461845907,this.count=this.count+1;let r=this.hash^i;r=r<<13|r>>>19,r=r*5+3864292196,this.hash=r}}}finish(){let t=this.hash^this.count*4;return t=t^t>>>16,t=t*2246822507,t=t^t>>>13,t=t*3266489909,t=t^t>>>16,t}};function t6(){let n=new vu;return n.update.apply(n,arguments),n.finish()}function i6(n,t){return n=n.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),t&&(n=n.replace(/ /g,"\xB7")),n}function n6(n){return n.replace(/\w\S*/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1)})}function r6(n,t){if(!Array.isArray(n)||!Array.isArray(t))return!1;if(n===t)return!0;if(n.length!==t.length)return!1;for(let e=0;e{var Sv=(()=>{class n{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.tokenIndex=null,this.line=null,this.column=null,this._text=null}getTokenSource(){return this.source[0]}getInputStream(){return this.source[1]}get text(){return this._text}set text(e){this._text=e}}return n.INVALID_TYPE=0,n.EPSILON=-2,n.MIN_USER_TOKEN_TYPE=1,n.EOF=-1,n.DEFAULT_CHANNEL=0,n.HIDDEN_CHANNEL=1,n})(),s6=(()=>{class n extends Sv{constructor(e,i,r,s,a){super(),this.source=e!==void 0?e:n.EMPTY_SOURCE,this.type=i!==void 0?i:null,this.channel=r!==void 0?r:Sv.DEFAULT_CHANNEL,this.start=s!==void 0?s:-1,this.stop=a!==void 0?a:-1,this.tokenIndex=-1,this.source[0]!==null?(this.line=e[0].line,this.column=e[0].column):this.column=-1}clone(){let e=new n(this.source,this.type,this.channel,this.start,this.stop);return e.tokenIndex=this.tokenIndex,e.line=this.line,e.column=this.column,e.text=this.text,e}toString(){let e=this.text;return e!==null?e=e.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t"):e="","[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+e+"',<"+this.type+">"+(this.channel>0?",channel="+this.channel:"")+","+this.line+":"+this.column+"]"}get text(){if(this._text!==null)return this._text;let e=this.getInputStream();if(e===null)return null;let i=e.size;return this.start"}set text(e){this._text=e}}return n.EMPTY_SOURCE=[null,null],n})();yT.exports={Token:Sv,CommonToken:s6}});var gs=X((xre,CT)=>{var ri=(()=>{class n{constructor(){this.atn=null,this.stateNumber=n.INVALID_STATE_NUMBER,this.stateType=null,this.ruleIndex=0,this.epsilonOnlyTransitions=!1,this.transitions=[],this.nextTokenWithinRule=null}toString(){return this.stateNumber}equals(e){return e instanceof n?this.stateNumber===e.stateNumber:!1}isNonGreedyExitState(){return!1}addTransition(e,i){i===void 0&&(i=-1),this.transitions.length===0?this.epsilonOnlyTransitions=e.isEpsilon:this.epsilonOnlyTransitions!==e.isEpsilon&&(this.epsilonOnlyTransitions=!1),i===-1?this.transitions.push(e):this.transitions.splice(i,1,e)}}return n.INVALID_TYPE=0,n.BASIC=1,n.RULE_START=2,n.BLOCK_START=3,n.PLUS_BLOCK_START=4,n.STAR_BLOCK_START=5,n.TOKEN_START=6,n.RULE_STOP=7,n.BLOCK_END=8,n.STAR_LOOP_BACK=9,n.STAR_LOOP_ENTRY=10,n.PLUS_LOOP_BACK=11,n.LOOP_END=12,n.serializationNames=["INVALID","BASIC","RULE_START","BLOCK_START","PLUS_BLOCK_START","STAR_BLOCK_START","TOKEN_START","RULE_STOP","BLOCK_END","STAR_LOOP_BACK","STAR_LOOP_ENTRY","PLUS_LOOP_BACK","LOOP_END"],n.INVALID_STATE_NUMBER=-1,n})(),kv=class extends ri{constructor(){super(),this.stateType=ri.BASIC}},Ja=class extends ri{constructor(){return super(),this.decision=-1,this.nonGreedy=!1,this}},Cl=class extends Ja{constructor(){return super(),this.endState=null,this}},Mv=class extends Cl{constructor(){return super(),this.stateType=ri.BLOCK_START,this}},Tv=class extends ri{constructor(){return super(),this.stateType=ri.BLOCK_END,this.startState=null,this}},Ev=class extends ri{constructor(){return super(),this.stateType=ri.RULE_STOP,this}},Iv=class extends ri{constructor(){return super(),this.stateType=ri.RULE_START,this.stopState=null,this.isPrecedenceRule=!1,this}},Av=class extends Ja{constructor(){return super(),this.stateType=ri.PLUS_LOOP_BACK,this}},Dv=class extends Cl{constructor(){return super(),this.stateType=ri.PLUS_BLOCK_START,this.loopBackState=null,this}},Rv=class extends Cl{constructor(){return super(),this.stateType=ri.STAR_BLOCK_START,this}},Lv=class extends ri{constructor(){return super(),this.stateType=ri.STAR_LOOP_BACK,this}},Ov=class extends Ja{constructor(){return super(),this.stateType=ri.STAR_LOOP_ENTRY,this.loopBackState=null,this.isPrecedenceDecision=null,this}},Nv=class extends ri{constructor(){return super(),this.stateType=ri.LOOP_END,this.loopBackState=null,this}},Fv=class extends Ja{constructor(){return super(),this.stateType=ri.TOKEN_START,this}};CT.exports={ATNState:ri,BasicState:kv,DecisionState:Ja,BlockStartState:Cl,BlockEndState:Tv,LoopEndState:Nv,RuleStartState:Iv,RuleStopState:Ev,TokensStartState:Fv,PlusLoopbackState:Av,StarLoopbackState:Lv,StarLoopEntryState:Ov,PlusBlockStartState:Dv,StarBlockStartState:Rv,BasicBlockStartState:Mv}});var wl=X((Sre,ST)=>{var{Set:wT,Hash:a6,equalArrays:xT}=Li(),Hi=class n{hashCode(){let t=new a6;return this.updateHashCode(t),t.finish()}evaluate(t,e){}evalPrecedence(t,e){return this}static andContext(t,e){if(t===null||t===n.NONE)return e;if(e===null||e===n.NONE)return t;let i=new Pv(t,e);return i.opnds.length===1?i.opnds[0]:i}static orContext(t,e){if(t===null)return e;if(e===null)return t;if(t===n.NONE||e===n.NONE)return n.NONE;let i=new Uv(t,e);return i.opnds.length===1?i.opnds[0]:i}},Qm=class n extends Hi{constructor(t,e,i){super(),this.ruleIndex=t===void 0?-1:t,this.predIndex=e===void 0?-1:e,this.isCtxDependent=i===void 0?!1:i}evaluate(t,e){let i=this.isCtxDependent?e:null;return t.sempred(i,this.ruleIndex,this.predIndex)}updateHashCode(t){t.update(this.ruleIndex,this.predIndex,this.isCtxDependent)}equals(t){return this===t?!0:t instanceof n?this.ruleIndex===t.ruleIndex&&this.predIndex===t.predIndex&&this.isCtxDependent===t.isCtxDependent:!1}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}};Hi.NONE=new Qm;var bu=class n extends Hi{constructor(t){super(),this.precedence=t===void 0?0:t}evaluate(t,e){return t.precpred(e,this.precedence)}evalPrecedence(t,e){return t.precpred(e,this.precedence)?Hi.NONE:null}compareTo(t){return this.precedence-t.precedence}updateHashCode(t){t.update(this.precedence)}equals(t){return this===t?!0:t instanceof n?this.precedence===t.precedence:!1}toString(){return"{"+this.precedence+">=prec}?"}static filterPrecedencePredicates(t){let e=[];return t.values().map(function(i){i instanceof n&&e.push(i)}),e}},Pv=class n extends Hi{constructor(t,e){super();let i=new wT;t instanceof n?t.opnds.map(function(s){i.add(s)}):i.add(t),e instanceof n?e.opnds.map(function(s){i.add(s)}):i.add(e);let r=bu.filterPrecedencePredicates(i);if(r.length>0){let s=null;r.map(function(a){(s===null||a.precedencee.toString());return(t.length>3?t.slice(3):t).join("&&")}},Uv=class n extends Hi{constructor(t,e){super();let i=new wT;t instanceof n?t.opnds.map(function(s){i.add(s)}):i.add(t),e instanceof n?e.opnds.map(function(s){i.add(s)}):i.add(e);let r=bu.filterPrecedencePredicates(i);if(r.length>0){let s=r.sort(function(o,l){return o.compareTo(l)}),a=s[s.length-1];i.add(a)}this.opnds=Array.from(i.values())}equals(t){return this===t?!0:t instanceof n?xT(this.opnds,t.opnds):!1}updateHashCode(t){t.update(this.opnds,"OR")}evaluate(t,e){for(let i=0;ie.toString());return(t.length>3?t.slice(3):t).join("||")}};ST.exports={SemanticContext:Hi,PrecedencePredicate:bu,Predicate:Qm}});var yu=X((kre,Vv)=>{var{DecisionState:o6}=gs(),{SemanticContext:kT}=wl(),{Hash:MT}=Li();function TT(n,t){if(n===null){let e={state:null,alt:null,context:null,semanticContext:null};return t&&(e.reachesIntoOuterContext=0),e}else{let e={};return e.state=n.state||null,e.alt=n.alt===void 0?null:n.alt,e.context=n.context||null,e.semanticContext=n.semanticContext||null,t&&(e.reachesIntoOuterContext=n.reachesIntoOuterContext||0,e.precedenceFilterSuppressed=n.precedenceFilterSuppressed||!1),e}}var Zm=class n{constructor(t,e){this.checkContext(t,e),t=TT(t),e=TT(e,!0),this.state=t.state!==null?t.state:e.state,this.alt=t.alt!==null?t.alt:e.alt,this.context=t.context!==null?t.context:e.context,this.semanticContext=t.semanticContext!==null?t.semanticContext:e.semanticContext!==null?e.semanticContext:kT.NONE,this.reachesIntoOuterContext=e.reachesIntoOuterContext,this.precedenceFilterSuppressed=e.precedenceFilterSuppressed}checkContext(t,e){(t.context===null||t.context===void 0)&&(e===null||e.context===null||e.context===void 0)&&(this.context=null)}hashCode(){let t=new MT;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext)}equals(t){return this===t?!0:t instanceof n?this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&(this.context===null?t.context===null:this.context.equals(t.context))&&this.semanticContext.equals(t.semanticContext)&&this.precedenceFilterSuppressed===t.precedenceFilterSuppressed:!1}hashCodeForConfigSet(){let t=new MT;return t.update(this.state.stateNumber,this.alt,this.semanticContext),t.finish()}equalsForConfigSet(t){return this===t?!0:t instanceof n?this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&this.semanticContext.equals(t.semanticContext):!1}toString(){return"("+this.state+","+this.alt+(this.context!==null?",["+this.context.toString()+"]":"")+(this.semanticContext!==kT.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext>0?",up="+this.reachesIntoOuterContext:"")+")"}},$v=class n extends Zm{constructor(t,e){super(t,e);let i=t.lexerActionExecutor||null;return this.lexerActionExecutor=i||(e!==null?e.lexerActionExecutor:null),this.passedThroughNonGreedyDecision=e!==null?this.checkNonGreedyDecision(e,this.state):!1,this.hashCodeForConfigSet=n.prototype.hashCode,this.equalsForConfigSet=n.prototype.equals,this}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext,this.passedThroughNonGreedyDecision,this.lexerActionExecutor)}equals(t){return this===t||t instanceof n&&this.passedThroughNonGreedyDecision===t.passedThroughNonGreedyDecision&&(this.lexerActionExecutor?this.lexerActionExecutor.equals(t.lexerActionExecutor):!t.lexerActionExecutor)&&super.equals(t)}checkNonGreedyDecision(t,e){return t.passedThroughNonGreedyDecision||e instanceof o6&&e.nonGreedy}};Vv.exports.ATNConfig=Zm;Vv.exports.LexerATNConfig=$v});var an=X((Mre,ET)=>{var{Token:Cu}=ni(),Oi=class n{constructor(t,e){this.start=t,this.stop=e}clone(){return new n(this.start,this.stop)}contains(t){return t>=this.start&&tthis.addInterval(e),this),this}reduce(t){if(t=i.stop?(this.intervals.splice(t+1,1),this.reduce(t)):e.stop>=i.start&&(this.intervals[t]=new Oi(e.start,i.stop),this.intervals.splice(t+1,1))}}complement(t,e){let i=new n;return i.addInterval(new Oi(t,e+1)),this.intervals!==null&&this.intervals.forEach(r=>i.removeRange(r)),i}contains(t){if(this.intervals===null)return!1;for(let e=0;er.start&&t.stop=r.stop?(this.intervals.splice(e,1),e=e-1):t.start"):t.push("'"+String.fromCharCode(i.start)+"'"):t.push("'"+String.fromCharCode(i.start)+"'..'"+String.fromCharCode(i.stop-1)+"'")}return t.length>1?"{"+t.join(", ")+"}":t[0]}toIndexString(){let t=[];for(let e=0;e"):t.push(i.start.toString()):t.push(i.start.toString()+".."+(i.stop-1).toString())}return t.length>1?"{"+t.join(", ")+"}":t[0]}toTokenString(t,e){let i=[];for(let r=0;r1?"{"+i.join(", ")+"}":i[0]}elementName(t,e,i){return i===Cu.EOF?"":i===Cu.EPSILON?"":t[i]||e[i]}get length(){return this.intervals.map(t=>t.length).reduce((t,e)=>t+e)}};ET.exports={Interval:Oi,IntervalSet:Bv}});var xl=X((Tre,IT)=>{var{Token:l6}=ni(),{IntervalSet:Zv}=an(),{Predicate:c6,PrecedencePredicate:u6}=wl(),Je=class{constructor(t){if(t==null)throw"target cannot be null.";this.target=t,this.isEpsilon=!1,this.label=null}};Je.EPSILON=1;Je.RANGE=2;Je.RULE=3;Je.PREDICATE=4;Je.ATOM=5;Je.ACTION=6;Je.SET=7;Je.NOT_SET=8;Je.WILDCARD=9;Je.PRECEDENCE=10;Je.serializationNames=["INVALID","EPSILON","RANGE","RULE","PREDICATE","ATOM","ACTION","SET","NOT_SET","WILDCARD","PRECEDENCE"];Je.serializationTypes={EpsilonTransition:Je.EPSILON,RangeTransition:Je.RANGE,RuleTransition:Je.RULE,PredicateTransition:Je.PREDICATE,AtomTransition:Je.ATOM,ActionTransition:Je.ACTION,SetTransition:Je.SET,NotSetTransition:Je.NOT_SET,WildcardTransition:Je.WILDCARD,PrecedencePredicateTransition:Je.PRECEDENCE};var zv=class extends Je{constructor(t,e){super(t),this.label_=e,this.label=this.makeLabel(),this.serializationType=Je.ATOM}makeLabel(){let t=new Zv;return t.addOne(this.label_),t}matches(t,e,i){return this.label_===t}toString(){return this.label_}},Hv=class extends Je{constructor(t,e,i,r){super(t),this.ruleIndex=e,this.precedence=i,this.followState=r,this.serializationType=Je.RULE,this.isEpsilon=!0}matches(t,e,i){return!1}},jv=class extends Je{constructor(t,e){super(t),this.serializationType=Je.EPSILON,this.isEpsilon=!0,this.outermostPrecedenceReturn=e}matches(t,e,i){return!1}toString(){return"epsilon"}},Wv=class extends Je{constructor(t,e,i){super(t),this.serializationType=Je.RANGE,this.start=e,this.stop=i,this.label=this.makeLabel()}makeLabel(){let t=new Zv;return t.addRange(this.start,this.stop),t}matches(t,e,i){return t>=this.start&&t<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}},wu=class extends Je{constructor(t){super(t)}},qv=class extends wu{constructor(t,e,i,r){super(t),this.serializationType=Je.PREDICATE,this.ruleIndex=e,this.predIndex=i,this.isCtxDependent=r,this.isEpsilon=!0}matches(t,e,i){return!1}getPredicate(){return new c6(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}},Gv=class extends Je{constructor(t,e,i,r){super(t),this.serializationType=Je.ACTION,this.ruleIndex=e,this.actionIndex=i===void 0?-1:i,this.isCtxDependent=r===void 0?!1:r,this.isEpsilon=!0}matches(t,e,i){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}},Xm=class extends Je{constructor(t,e){super(t),this.serializationType=Je.SET,e!=null?this.label=e:(this.label=new Zv,this.label.addOne(l6.INVALID_TYPE))}matches(t,e,i){return this.label.contains(t)}toString(){return this.label.toString()}},Kv=class extends Xm{constructor(t,e){super(t,e),this.serializationType=Je.NOT_SET}matches(t,e,i){return t>=e&&t<=i&&!super.matches(t,e,i)}toString(){return"~"+super.toString()}},Yv=class extends Je{constructor(t){super(t),this.serializationType=Je.WILDCARD}matches(t,e,i){return t>=e&&t<=i}toString(){return"."}},Qv=class extends wu{constructor(t,e){super(t),this.serializationType=Je.PRECEDENCE,this.precedence=e,this.isEpsilon=!0}matches(t,e,i){return!1}getPredicate(){return new u6(this.precedence)}toString(){return this.precedence+" >= _p"}};IT.exports={Transition:Je,AtomTransition:zv,SetTransition:Xm,NotSetTransition:Kv,RuleTransition:Hv,ActionTransition:Gv,EpsilonTransition:jv,RangeTransition:Wv,WildcardTransition:Yv,PredicateTransition:qv,PrecedencePredicateTransition:Qv,AbstractPredicateTransition:wu}});var eo=X((Ere,RT)=>{var{Token:d6}=ni(),{Interval:AT}=an(),DT=new AT(-1,-2),Xv=class{},Jv=class extends Xv{constructor(){super()}},Jm=class extends Jv{constructor(){super()}},eb=class extends Jm{constructor(){super()}getRuleContext(){throw new Error("missing interface implementation")}},Sl=class extends Jm{constructor(){super()}},ef=class extends Sl{constructor(){super()}},tb=class{visit(t){return Array.isArray(t)?t.map(function(e){return e.accept(this)},this):t.accept(this)}visitChildren(t){return t.children?this.visit(t.children):null}visitTerminal(t){}visitErrorNode(t){}},ib=class{visitTerminal(t){}visitErrorNode(t){}enterEveryRule(t){}exitEveryRule(t){}},tf=class extends Sl{constructor(t){super(),this.parentCtx=null,this.symbol=t}getChild(t){return null}getSymbol(){return this.symbol}getParent(){return this.parentCtx}getPayload(){return this.symbol}getSourceInterval(){if(this.symbol===null)return DT;let t=this.symbol.tokenIndex;return new AT(t,t)}getChildCount(){return 0}accept(t){return t.visitTerminal(this)}getText(){return this.symbol.text}toString(){return this.symbol.type===d6.EOF?"":this.symbol.text}},nb=class extends tf{constructor(t){super(t)}isErrorNode(){return!0}accept(t){return t.visitErrorNode(this)}},xu=class{walk(t,e){if(e instanceof ef||e.isErrorNode!==void 0&&e.isErrorNode())t.visitErrorNode(e);else if(e instanceof Sl)t.visitTerminal(e);else{this.enterRule(t,e);for(let r=0;r{var h6=Li(),{Token:m6}=ni(),{ErrorNode:f6,TerminalNode:LT,RuleNode:OT}=eo(),_s={toStringTree:function(n,t,e){t=t||null,e=e||null,e!==null&&(t=e.ruleNames);let i=_s.getNodeText(n,t);i=h6.escapeWhitespace(i,!1);let r=n.getChildCount();if(r===0)return i;let s="("+i+" ";r>0&&(i=_s.toStringTree(n.getChild(0),t),s=s.concat(i));for(let a=1;a{var{RuleNode:p6}=eo(),{INVALID_INTERVAL:g6}=eo(),_6=rb(),sb=class extends p6{constructor(t,e){super(),this.parentCtx=t||null,this.invokingState=e||-1}depth(){let t=0,e=this;for(;e!==null;)e=e.parentCtx,t+=1;return t}isEmpty(){return this.invokingState===-1}getSourceInterval(){return g6}getRuleContext(){return this}getPayload(){return this}getText(){return this.getChildCount()===0?"":this.children.map(function(t){return t.getText()}).join("")}getAltNumber(){return 0}setAltNumber(t){}getChild(t){return null}getChildCount(){return 0}accept(t){return t.visitChildren(this)}toStringTree(t,e){return _6.toStringTree(this,t,e)}toString(t,e){t=t||null,e=e||null;let i=this,r="[";for(;i!==null&&i!==e;){if(t===null)i.isEmpty()||(r+=i.invokingState);else{let s=i.ruleIndex,a=s>=0&&s{var PT=nf(),{Hash:$T,Map:VT,equalArrays:UT}=Li(),pt=class n{constructor(t){this.cachedHashCode=t}isEmpty(){return this===n.EMPTY}hasEmptyPath(){return this.getReturnState(this.length-1)===n.EMPTY_RETURN_STATE}hashCode(){return this.cachedHashCode}updateHashCode(t){t.update(this.cachedHashCode)}};pt.EMPTY=null;pt.EMPTY_RETURN_STATE=2147483647;pt.globalNodeCount=1;pt.id=pt.globalNodeCount;var ab=class{constructor(){this.cache=new VT}add(t){if(t===pt.EMPTY)return pt.EMPTY;let e=this.cache.get(t)||null;return e!==null?e:(this.cache.put(t,t),t)}get(t){return this.cache.get(t)||null}get length(){return this.cache.length}},jn=class n extends pt{constructor(t,e){let i=0,r=new $T;t!==null?r.update(t,e):r.update(1),i=r.finish(),super(i),this.parentCtx=t,this.returnState=e}getParent(t){return this.parentCtx}getReturnState(t){return this.returnState}equals(t){return this===t?!0:t instanceof n?this.hashCode()!==t.hashCode()||this.returnState!==t.returnState?!1:this.parentCtx==null?t.parentCtx==null:this.parentCtx.equals(t.parentCtx):!1}toString(){let t=this.parentCtx===null?"":this.parentCtx.toString();return t.length===0?this.returnState===pt.EMPTY_RETURN_STATE?"$":""+this.returnState:""+this.returnState+" "+t}get length(){return 1}static create(t,e){return e===pt.EMPTY_RETURN_STATE&&t===null?pt.EMPTY:new n(t,e)}},Su=class extends jn{constructor(){super(null,pt.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(t){return null}getReturnState(t){return this.returnState}equals(t){return this===t}toString(){return"$"}};pt.EMPTY=new Su;var Nr=class n extends pt{constructor(t,e){let i=new $T;i.update(t,e);let r=i.finish();return super(r),this.parents=t,this.returnStates=e,this}isEmpty(){return this.returnStates[0]===pt.EMPTY_RETURN_STATE}getParent(t){return this.parents[t]}getReturnState(t){return this.returnStates[t]}equals(t){return this===t?!0:t instanceof n?this.hashCode()!==t.hashCode()?!1:UT(this.returnStates,t.returnStates)&&UT(this.parents,t.parents):!1}toString(){if(this.isEmpty())return"[]";{let t="[";for(let e=0;e0&&(t=t+", "),this.returnStates[e]===pt.EMPTY_RETURN_STATE){t=t+"$";continue}t=t+this.returnStates[e],this.parents[e]!==null?t=t+" "+this.parents[e]:t=t+"null"}return t+"]"}}get length(){return this.returnStates.length}};function BT(n,t){if(t==null&&(t=PT.EMPTY),t.parentCtx===null||t===PT.EMPTY)return pt.EMPTY;let e=BT(n,t.parentCtx),r=n.states[t.invokingState].transitions[0];return jn.create(e,r.followState.stateNumber)}function ob(n,t,e,i){if(n===t)return n;if(n instanceof jn&&t instanceof jn)return v6(n,t,e,i);if(e){if(n instanceof Su)return n;if(t instanceof Su)return t}return n instanceof jn&&(n=new Nr([n.getParent()],[n.returnState])),t instanceof jn&&(t=new Nr([t.getParent()],[t.returnState])),y6(n,t,e,i)}function v6(n,t,e,i){if(i!==null){let s=i.get(n,t);if(s!==null||(s=i.get(t,n),s!==null))return s}let r=b6(n,t,e);if(r!==null)return i!==null&&i.set(n,t,r),r;if(n.returnState===t.returnState){let s=ob(n.parentCtx,t.parentCtx,e,i);if(s===n.parentCtx)return n;if(s===t.parentCtx)return t;let a=jn.create(s,n.returnState);return i!==null&&i.set(n,t,a),a}else{let s=null;if((n===t||n.parentCtx!==null&&n.parentCtx===t.parentCtx)&&(s=n.parentCtx),s!==null){let c=[n.returnState,t.returnState];n.returnState>t.returnState&&(c[0]=t.returnState,c[1]=n.returnState);let u=[s,s],d=new Nr(u,c);return i!==null&&i.set(n,t,d),d}let a=[n.returnState,t.returnState],o=[n.parentCtx,t.parentCtx];n.returnState>t.returnState&&(a[0]=t.returnState,a[1]=n.returnState,o=[t.parentCtx,n.parentCtx]);let l=new Nr(o,a);return i!==null&&i.set(n,t,l),l}}function b6(n,t,e){if(e){if(n===pt.EMPTY||t===pt.EMPTY)return pt.EMPTY}else{if(n===pt.EMPTY&&t===pt.EMPTY)return pt.EMPTY;if(n===pt.EMPTY){let i=[t.returnState,pt.EMPTY_RETURN_STATE],r=[t.parentCtx,null];return new Nr(r,i)}else if(t===pt.EMPTY){let i=[n.returnState,pt.EMPTY_RETURN_STATE],r=[n.parentCtx,null];return new Nr(r,i)}}return null}function y6(n,t,e,i){if(i!==null){let u=i.get(n,t);if(u!==null||(u=i.get(t,n),u!==null))return u}let r=0,s=0,a=0,o=[],l=[];for(;r{var{Set:jT,BitSet:WT}=Li(),{Token:to}=ni(),{ATNConfig:w6}=yu(),{IntervalSet:qT}=an(),{RuleStopState:x6}=gs(),{RuleTransition:S6,NotSetTransition:k6,WildcardTransition:M6,AbstractPredicateTransition:T6}=xl(),{predictionContextFromRuleContext:E6,PredictionContext:GT,SingletonPredictionContext:I6}=vs(),rf=class n{constructor(t){this.atn=t}getDecisionLookahead(t){if(t===null)return null;let e=t.transitions.length,i=[];for(let r=0;r{var A6=lb(),{IntervalSet:D6}=an(),{Token:kl}=ni(),R6=(()=>{class n{constructor(e,i){this.grammarType=e,this.maxTokenType=i,this.states=[],this.decisionToState=[],this.ruleToStartState=[],this.ruleToStopState=null,this.modeNameToStartState={},this.ruleToTokenType=null,this.lexerActions=null,this.modeToStartState=[]}nextTokensInContext(e,i){return new A6(this).LOOK(e,null,i)}nextTokensNoContext(e){return e.nextTokenWithinRule!==null||(e.nextTokenWithinRule=this.nextTokensInContext(e,null),e.nextTokenWithinRule.readOnly=!0),e.nextTokenWithinRule}nextTokens(e,i){return i===void 0?this.nextTokensNoContext(e):this.nextTokensInContext(e,i)}addState(e){e!==null&&(e.atn=this,e.stateNumber=this.states.length),this.states.push(e)}removeState(e){this.states[e.stateNumber]=null}defineDecisionState(e){return this.decisionToState.push(e),e.decision=this.decisionToState.length-1,e.decision}getDecisionState(e){return this.decisionToState.length===0?null:this.decisionToState[e]}getExpectedTokens(e,i){if(e<0||e>=this.states.length)throw"Invalid state number.";let r=this.states[e],s=this.nextTokens(r);if(!s.contains(kl.EPSILON))return s;let a=new D6;for(a.addSet(s),a.removeOne(kl.EPSILON);i!==null&&i.invokingState>=0&&s.contains(kl.EPSILON);){let l=this.states[i.invokingState].transitions[0];s=this.nextTokens(l.followState),a.addSet(s),a.removeOne(kl.EPSILON),i=i.parentCtx}return s.contains(kl.EPSILON)&&a.addOne(kl.EOF),a}}return n.INVALID_ALT_NUMBER=0,n})();YT.exports=R6});var ZT=X((Ore,QT)=>{QT.exports={LEXER:0,PARSER:1}});var cb=X((Nre,XT)=>{var Ml=class{constructor(t){t===void 0&&(t=null),this.readOnly=!1,this.verifyATN=t===null?!0:t.verifyATN,this.generateRuleBypassTransitions=t===null?!1:t.generateRuleBypassTransitions}};Ml.defaultOptions=new Ml;Ml.defaultOptions.readOnly=!0;XT.exports=Ml});var gb=X((Fre,JT)=>{var bs={CHANNEL:0,CUSTOM:1,MODE:2,MORE:3,POP_MODE:4,PUSH_MODE:5,SKIP:6,TYPE:7},dr=class{constructor(t){this.actionType=t,this.isPositionDependent=!1}hashCode(){let t=new Hash;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.actionType)}equals(t){return this===t}},ku=class extends dr{constructor(){super(bs.SKIP)}execute(t){t.skip()}toString(){return"skip"}};ku.INSTANCE=new ku;var ub=class n extends dr{constructor(t){super(bs.TYPE),this.type=t}execute(t){t.type=this.type}updateHashCode(t){t.update(this.actionType,this.type)}equals(t){return this===t?!0:t instanceof n?this.type===t.type:!1}toString(){return"type("+this.type+")"}},db=class n extends dr{constructor(t){super(bs.PUSH_MODE),this.mode=t}execute(t){t.pushMode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t?!0:t instanceof n?this.mode===t.mode:!1}toString(){return"pushMode("+this.mode+")"}},Mu=class extends dr{constructor(){super(bs.POP_MODE)}execute(t){t.popMode()}toString(){return"popMode"}};Mu.INSTANCE=new Mu;var Tu=class extends dr{constructor(){super(bs.MORE)}execute(t){t.more()}toString(){return"more"}};Tu.INSTANCE=new Tu;var hb=class n extends dr{constructor(t){super(bs.MODE),this.mode=t}execute(t){t.mode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t?!0:t instanceof n?this.mode===t.mode:!1}toString(){return"mode("+this.mode+")"}},mb=class n extends dr{constructor(t,e){super(bs.CUSTOM),this.ruleIndex=t,this.actionIndex=e,this.isPositionDependent=!0}execute(t){t.action(null,this.ruleIndex,this.actionIndex)}updateHashCode(t){t.update(this.actionType,this.ruleIndex,this.actionIndex)}equals(t){return this===t?!0:t instanceof n?this.ruleIndex===t.ruleIndex&&this.actionIndex===t.actionIndex:!1}},fb=class n extends dr{constructor(t){super(bs.CHANNEL),this.channel=t}execute(t){t._channel=this.channel}updateHashCode(t){t.update(this.actionType,this.channel)}equals(t){return this===t?!0:t instanceof n?this.channel===t.channel:!1}toString(){return"channel("+this.channel+")"}},pb=class n extends dr{constructor(t,e){super(e.actionType),this.offset=t,this.action=e,this.isPositionDependent=!0}execute(t){this.action.execute(t)}updateHashCode(t){t.update(this.actionType,this.offset,this.action)}equals(t){return this===t?!0:t instanceof n?this.offset===t.offset&&this.action===t.action:!1}};JT.exports={LexerActionType:bs,LexerSkipAction:ku,LexerChannelAction:fb,LexerCustomAction:mb,LexerIndexedCustomAction:pb,LexerMoreAction:Tu,LexerTypeAction:ub,LexerPushModeAction:db,LexerPopModeAction:Mu,LexerModeAction:hb}});var Tb=X((Pre,lE)=>{var{Token:_b}=ni(),L6=io(),sf=ZT(),{ATNState:ji,BasicState:eE,DecisionState:O6,BlockStartState:vb,BlockEndState:bb,LoopEndState:Tl,RuleStartState:tE,RuleStopState:Eu,TokensStartState:N6,PlusLoopbackState:iE,StarLoopbackState:yb,StarLoopEntryState:El,PlusBlockStartState:Cb,StarBlockStartState:wb,BasicBlockStartState:nE}=gs(),{Transition:Fr,AtomTransition:xb,SetTransition:F6,NotSetTransition:P6,RuleTransition:rE,RangeTransition:sE,ActionTransition:U6,EpsilonTransition:Iu,WildcardTransition:$6,PredicateTransition:V6,PrecedencePredicateTransition:B6}=xl(),{IntervalSet:z6}=an(),H6=cb(),{LexerActionType:oa,LexerSkipAction:j6,LexerChannelAction:W6,LexerCustomAction:q6,LexerMoreAction:G6,LexerTypeAction:K6,LexerPushModeAction:Y6,LexerPopModeAction:Q6,LexerModeAction:Z6}=gb(),X6="AADB8D7E-AEEF-4415-AD2B-8204D6CF042E",Mb="59627784-3BE5-417A-B9EB-8131A7286089",Sb=[X6,Mb],aE=3,oE=Mb;function af(n,t){let e=[];return e[n-1]=t,e.map(function(i){return t})}var kb=class{constructor(t){t==null&&(t=H6.defaultOptions),this.deserializationOptions=t,this.stateFactories=null,this.actionFactories=null}isFeatureSupported(t,e){let i=Sb.indexOf(t);return i<0?!1:Sb.indexOf(e)>=i}deserialize(t){this.reset(t),this.checkVersion(),this.checkUUID();let e=this.readATN();this.readStates(e),this.readRules(e),this.readModes(e);let i=[];return this.readSets(e,i,this.readInt.bind(this)),this.isFeatureSupported(Mb,this.uuid)&&this.readSets(e,i,this.readInt32.bind(this)),this.readEdges(e,i),this.readDecisions(e),this.readLexerActions(e),this.markPrecedenceDecisions(e),this.verifyATN(e),this.deserializationOptions.generateRuleBypassTransitions&&e.grammarType===sf.PARSER&&(this.generateRuleBypassTransitions(e),this.verifyATN(e)),e}reset(t){let e=function(r){let s=r.charCodeAt(0);return s>1?s-2:s+65534},i=t.split("").map(e);i[0]=t.charCodeAt(0),this.data=i,this.pos=0}checkVersion(){let t=this.readInt();if(t!==aE)throw"Could not deserialize ATN with version "+t+" (expected "+aE+")."}checkUUID(){let t=this.readUUID();if(Sb.indexOf(t)<0)throw""+t+oE,oE;this.uuid=t}readATN(){let t=this.readInt(),e=this.readInt();return new L6(t,e)}readStates(t){let e,i,r,s=[],a=[],o=this.readInt();for(let u=0;u0;)s.addTransition(c.transitions[u-1]),c.transitions=c.transitions.slice(-1);t.ruleToStartState[e].addTransition(new Iu(s)),a.addTransition(new Iu(l));let d=new eE;t.addState(d),d.addTransition(new xb(a,t.ruleToTokenType[e])),s.addTransition(new Iu(d))}stateIsEndStateFor(t,e){if(t.ruleIndex!==e||!(t instanceof El))return null;let i=t.transitions[t.transitions.length-1].target;return i instanceof Tl&&i.epsilonOnlyTransitions&&i.transitions[0].target instanceof Eu?t:null}markPrecedenceDecisions(t){for(let e=0;e=0):this.checkCondition(i.transitions.length<=1||i instanceof Eu)}}checkCondition(t,e){if(!t)throw e==null&&(e="IllegalState"),e}readInt(){return this.data[this.pos++]}readInt32(){let t=this.readInt(),e=this.readInt();return t|e<<16}readLong(){let t=this.readInt32(),e=this.readInt32();return t&4294967295|e<<32}readUUID(){let t=[];for(let e=7;e>=0;e--){let i=this.readInt();t[2*e+1]=i&255,t[2*e]=i>>8&255}return Ni[t[0]]+Ni[t[1]]+Ni[t[2]]+Ni[t[3]]+"-"+Ni[t[4]]+Ni[t[5]]+"-"+Ni[t[6]]+Ni[t[7]]+"-"+Ni[t[8]]+Ni[t[9]]+"-"+Ni[t[10]]+Ni[t[11]]+Ni[t[12]]+Ni[t[13]]+Ni[t[14]]+Ni[t[15]]}edgeFactory(t,e,i,r,s,a,o,l){let c=t.states[r];switch(e){case Fr.EPSILON:return new Iu(c);case Fr.RANGE:return o!==0?new sE(c,_b.EOF,a):new sE(c,s,a);case Fr.RULE:return new rE(t.states[s],a,o,c);case Fr.PREDICATE:return new V6(c,s,a,o!==0);case Fr.PRECEDENCE:return new B6(c,s);case Fr.ATOM:return o!==0?new xb(c,_b.EOF):new xb(c,s);case Fr.ACTION:return new U6(c,s,a,o!==0);case Fr.SET:return new F6(c,l[s]);case Fr.NOT_SET:return new P6(c,l[s]);case Fr.WILDCARD:return new $6(c);default:throw"The specified transition type: "+e+" is not valid."}}stateFactory(t,e){if(this.stateFactories===null){let i=[];i[ji.INVALID_TYPE]=null,i[ji.BASIC]=()=>new eE,i[ji.RULE_START]=()=>new tE,i[ji.BLOCK_START]=()=>new nE,i[ji.PLUS_BLOCK_START]=()=>new Cb,i[ji.STAR_BLOCK_START]=()=>new wb,i[ji.TOKEN_START]=()=>new N6,i[ji.RULE_STOP]=()=>new Eu,i[ji.BLOCK_END]=()=>new bb,i[ji.STAR_LOOP_BACK]=()=>new yb,i[ji.STAR_LOOP_ENTRY]=()=>new El,i[ji.PLUS_LOOP_BACK]=()=>new iE,i[ji.LOOP_END]=()=>new Tl,this.stateFactories=i}if(t>this.stateFactories.length||this.stateFactories[t]===null)throw"The specified state type "+t+" is not valid.";{let i=this.stateFactories[t]();if(i!==null)return i.ruleIndex=e,i}}lexerActionFactory(t,e,i){if(this.actionFactories===null){let r=[];r[oa.CHANNEL]=(s,a)=>new W6(s),r[oa.CUSTOM]=(s,a)=>new q6(s,a),r[oa.MODE]=(s,a)=>new Z6(s),r[oa.MORE]=(s,a)=>G6.INSTANCE,r[oa.POP_MODE]=(s,a)=>Q6.INSTANCE,r[oa.PUSH_MODE]=(s,a)=>new Y6(s),r[oa.SKIP]=(s,a)=>j6.INSTANCE,r[oa.TYPE]=(s,a)=>new K6(s),this.actionFactories=r}if(t>this.actionFactories.length||this.actionFactories[t]===null)throw"The specified lexer action type "+t+" is not valid.";return this.actionFactories[t](e,i)}};function J6(){let n=[];for(let t=0;t<256;t++)n[t]=(t+256).toString(16).substr(1).toUpperCase();return n}var Ni=J6();lE.exports=kb});var Ru=X((Ure,cE)=>{var Au=class{syntaxError(t,e,i,r,s,a){}reportAmbiguity(t,e,i,r,s,a,o){}reportAttemptingFullContext(t,e,i,r,s,a){}reportContextSensitivity(t,e,i,r,s,a){}},Du=class extends Au{constructor(){super()}syntaxError(t,e,i,r,s,a){console.error("line "+i+":"+r+" "+s)}};Du.INSTANCE=new Du;var Eb=class extends Au{constructor(t){if(super(),t===null)throw"delegates";return this.delegates=t,this}syntaxError(t,e,i,r,s,a){this.delegates.map(o=>o.syntaxError(t,e,i,r,s,a))}reportAmbiguity(t,e,i,r,s,a,o){this.delegates.map(l=>l.reportAmbiguity(t,e,i,r,s,a,o))}reportAttemptingFullContext(t,e,i,r,s,a){this.delegates.map(o=>o.reportAttemptingFullContext(t,e,i,r,s,a))}reportContextSensitivity(t,e,i,r,s,a){this.delegates.map(o=>o.reportContextSensitivity(t,e,i,r,s,a))}};cE.exports={ErrorListener:Au,ConsoleErrorListener:Du,ProxyErrorListener:Eb}});var Ab=X(($re,uE)=>{var{Token:Ib}=ni(),{ConsoleErrorListener:eB}=Ru(),{ProxyErrorListener:tB}=Ru(),iB=(()=>{class n{constructor(){this._listeners=[eB.INSTANCE],this._interp=null,this._stateNumber=-1}checkVersion(e){let i="4.9.3";i!==e&&console.log("ANTLR runtime and generated code versions disagree: "+i+"!="+e)}addErrorListener(e){this._listeners.push(e)}removeErrorListeners(){this._listeners=[]}getLiteralNames(){return Object.getPrototypeOf(this).constructor.literalNames||[]}getSymbolicNames(){return Object.getPrototypeOf(this).constructor.symbolicNames||[]}getTokenNames(){if(!this.tokenNames){let e=this.getLiteralNames(),i=this.getSymbolicNames(),r=e.length>i.length?e.length:i.length;this.tokenNames=[];for(let s=0;s";let i=e.text;return i===null&&(e.type===Ib.EOF?i="":i="<"+e.type+">"),i=i.replace(` -`,"\\n").replace("\r","\\r").replace(" ","\\t"),"'"+i+"'"}getErrorListenerDispatch(){return new tB(this._listeners)}sempred(e,i,r){return!0}precpred(e,i){return!0}get state(){return this._stateNumber}set state(e){this._stateNumber=e}}return n.tokenTypeMapCache={},n.ruleIndexMapCache={},n})();uE.exports=iB});var mE=X((Vre,hE)=>{var dE=ni().CommonToken,Db=class{},Lu=class extends Db{constructor(t){super(),this.copyText=t===void 0?!1:t}create(t,e,i,r,s,a,o,l){let c=new dE(t,e,r,s,a);return c.line=o,c.column=l,i!==null?c.text=i:this.copyText&&t[1]!==null&&(c.text=t[1].getText(s,a)),c}createThin(t,e){let i=new dE(null,t);return i.text=e,i}};Lu.DEFAULT=new Lu;hE.exports=Lu});var hr=X((Bre,fE)=>{var{PredicateTransition:nB}=xl(),{Interval:rB}=an().Interval,no=class n extends Error{constructor(t){if(super(t.message),Error.captureStackTrace)Error.captureStackTrace(this,n);else var e=new Error().stack;this.message=t.message,this.recognizer=t.recognizer,this.input=t.input,this.ctx=t.ctx,this.offendingToken=null,this.offendingState=-1,this.recognizer!==null&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return this.recognizer!==null?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}},Rb=class extends no{constructor(t,e,i,r){super({message:"",recognizer:t,input:e,ctx:null}),this.startIndex=i,this.deadEndConfigs=r}toString(){let t="";return this.startIndex>=0&&this.startIndex{var{Token:Wi}=ni(),aB=Ab(),oB=mE(),{RecognitionException:lB}=hr(),{LexerNoViableAltException:cB}=hr(),Pr=class n extends aB{constructor(t){super(),this._input=t,this._factory=oB.DEFAULT,this._tokenFactorySourcePair=[this,t],this._interp=null,this._token=null,this._tokenStartCharIndex=-1,this._tokenStartLine=-1,this._tokenStartColumn=-1,this._hitEOF=!1,this._channel=Wi.DEFAULT_CHANNEL,this._type=Wi.INVALID_TYPE,this._modeStack=[],this._mode=n.DEFAULT_MODE,this._text=null}reset(){this._input!==null&&this._input.seek(0),this._token=null,this._type=Wi.INVALID_TYPE,this._channel=Wi.DEFAULT_CHANNEL,this._tokenStartCharIndex=-1,this._tokenStartColumn=-1,this._tokenStartLine=-1,this._text=null,this._hitEOF=!1,this._mode=n.DEFAULT_MODE,this._modeStack=[],this._interp.reset()}nextToken(){if(this._input===null)throw"nextToken requires a non-null input stream.";let t=this._input.mark();try{for(;;){if(this._hitEOF)return this.emitEOF(),this._token;this._token=null,this._channel=Wi.DEFAULT_CHANNEL,this._tokenStartCharIndex=this._input.index,this._tokenStartColumn=this._interp.column,this._tokenStartLine=this._interp.line,this._text=null;let e=!1;for(;;){this._type=Wi.INVALID_TYPE;let i=n.SKIP;try{i=this._interp.match(this._input,this._mode)}catch(r){if(r instanceof lB)this.notifyListeners(r),this.recover(r);else throw console.log(r.stack),r}if(this._input.LA(1)===Wi.EOF&&(this._hitEOF=!0),this._type===Wi.INVALID_TYPE&&(this._type=i),this._type===n.SKIP){e=!0;break}if(this._type!==n.MORE)break}if(!e)return this._token===null&&this.emit(),this._token}}finally{this._input.release(t)}}skip(){this._type=n.SKIP}more(){this._type=n.MORE}mode(t){this._mode=t}pushMode(t){this._interp.debug&&console.log("pushMode "+t),this._modeStack.push(this._mode),this.mode(t)}popMode(){if(this._modeStack.length===0)throw"Empty Stack";return this._interp.debug&&console.log("popMode back to "+this._modeStack.slice(0,-1)),this.mode(this._modeStack.pop()),this._mode}emitToken(t){this._token=t}emit(){let t=this._factory.create(this._tokenFactorySourcePair,this._type,this._text,this._channel,this._tokenStartCharIndex,this.getCharIndex()-1,this._tokenStartLine,this._tokenStartColumn);return this.emitToken(t),t}emitEOF(){let t=this.column,e=this.line,i=this._factory.create(this._tokenFactorySourcePair,Wi.EOF,null,Wi.DEFAULT_CHANNEL,this._input.index,this._input.index-1,e,t);return this.emitToken(i),i}getCharIndex(){return this._input.index}getAllTokens(){let t=[],e=this.nextToken();for(;e.type!==Wi.EOF;)t.push(e),e=this.nextToken();return t}notifyListeners(t){let e=this._tokenStartCharIndex,i=this._input.index,r=this._input.getText(e,i),s="token recognition error at: '"+this.getErrorDisplay(r)+"'";this.getErrorListenerDispatch().syntaxError(this,null,this._tokenStartLine,this._tokenStartColumn,s,t)}getErrorDisplay(t){let e=[];for(let i=0;i":t===` -`?"\\n":t===" "?"\\t":t==="\r"?"\\r":t}getCharErrorDisplay(t){return"'"+this.getErrorDisplayForChar(t)+"'"}recover(t){this._input.LA(1)!==Wi.EOF&&(t instanceof cB?this._interp.consume(this._input):this._input.consume())}get inputStream(){return this._input}set inputStream(t){this._input=null,this._tokenFactorySourcePair=[this,this._input],this.reset(),this._input=t,this._tokenFactorySourcePair=[this,this._input]}get sourceName(){return this._input.sourceName}get type(){return this._type}set type(t){this._type=t}get line(){return this._interp.line}set line(t){this._interp.line=t}get column(){return this._interp.column}set column(t){this._interp.column=t}get text(){return this._text!==null?this._text:this._interp.getText(this._input)}set text(t){this._text=t}};Pr.DEFAULT_MODE=0;Pr.MORE=-2;Pr.SKIP=-3;Pr.DEFAULT_TOKEN_CHANNEL=Wi.DEFAULT_CHANNEL;Pr.HIDDEN=Wi.HIDDEN_CHANNEL;Pr.MIN_CHAR_VALUE=0;Pr.MAX_CHAR_VALUE=1114111;pE.exports=Pr});var so=X((Hre,_E)=>{var uB=io(),ro=Li(),{SemanticContext:gE}=wl(),{merge:dB}=vs();function hB(n){return n.hashCodeForConfigSet()}function mB(n,t){return n===t?!0:n===null||t===null?!1:n.equalsForConfigSet(t)}var of=class n{constructor(t){this.configLookup=new ro.Set(hB,mB),this.fullCtx=t===void 0?!0:t,this.readOnly=!1,this.configs=[],this.uniqueAlt=0,this.conflictingAlts=null,this.hasSemanticContext=!1,this.dipsIntoOuterContext=!1,this.cachedHashCode=-1}add(t,e){if(e===void 0&&(e=null),this.readOnly)throw"This set is readonly";t.semanticContext!==gE.NONE&&(this.hasSemanticContext=!0),t.reachesIntoOuterContext>0&&(this.dipsIntoOuterContext=!0);let i=this.configLookup.add(t);if(i===t)return this.cachedHashCode=-1,this.configs.push(t),!0;let r=!this.fullCtx,s=dB(i.context,t.context,r,e);return i.reachesIntoOuterContext=Math.max(i.reachesIntoOuterContext,t.reachesIntoOuterContext),t.precedenceFilterSuppressed&&(i.precedenceFilterSuppressed=!0),i.context=s,!0}getStates(){let t=new ro.Set;for(let e=0;e{var{ATNConfigSet:fB}=so(),{Hash:pB,Set:gB}=Li(),Ub=class{constructor(t,e){this.alt=e,this.pred=t}toString(){return"("+this.pred+", "+this.alt+")"}},$b=class n{constructor(t,e){return t===null&&(t=-1),e===null&&(e=new fB),this.stateNumber=t,this.configs=e,this.edges=null,this.isAcceptState=!1,this.prediction=0,this.lexerActionExecutor=null,this.requiresFullContext=!1,this.predicates=null,this}getAltSet(){let t=new gB;if(this.configs!==null)for(let e=0;e",this.predicates!==null?t=t+this.predicates:t=t+this.prediction),t}hashCode(){let t=new pB;return t.update(this.configs),t.finish()}};vE.exports={DFAState:$b,PredPrediction:Ub}});var Vb=X((Wre,bE)=>{var{DFAState:_B}=Il(),{ATNConfigSet:vB}=so(),{getCachedPredictionContext:bB}=vs(),{Map:yB}=Li(),lf=class{constructor(t,e){return this.atn=t,this.sharedContextCache=e,this}getCachedContext(t){if(this.sharedContextCache===null)return t;let e=new yB;return bB(t,this.sharedContextCache,e)}};lf.ERROR=new _B(2147483647,new vB);bE.exports=lf});var CE=X((qre,yE)=>{var{hashStuff:CB}=Li(),{LexerIndexedCustomAction:Bb}=gb(),zb=class n{constructor(t){return this.lexerActions=t===null?[]:t,this.cachedHashCode=CB(t),this}fixOffsetBeforeMatch(t){let e=null;for(let i=0;i{var{Token:Al}=ni(),cf=Ou(),wB=io(),uf=Vb(),{DFAState:xB}=Il(),{OrderedATNConfigSet:wE}=so(),{PredictionContext:Hb}=vs(),{SingletonPredictionContext:SB}=vs(),{RuleStopState:xE}=gs(),{LexerATNConfig:Ur}=yu(),{Transition:la}=xl(),kB=CE(),{LexerNoViableAltException:MB}=hr();function SE(n){n.index=-1,n.line=0,n.column=-1,n.dfaState=null}var jb=class{constructor(){SE(this)}reset(){SE(this)}},TB=(()=>{class n extends uf{constructor(e,i,r,s){super(i,s),this.decisionToDFA=r,this.recog=e,this.startIndex=-1,this.line=1,this.column=0,this.mode=cf.DEFAULT_MODE,this.prevAccept=new jb}copyState(e){this.column=e.column,this.line=e.line,this.mode=e.mode,this.startIndex=e.startIndex}match(e,i){this.match_calls+=1,this.mode=i;let r=e.mark();try{this.startIndex=e.index,this.prevAccept.reset();let s=this.decisionToDFA[i];return s.s0===null?this.matchATN(e):this.execATN(e,s.s0)}finally{e.release(r)}}reset(){this.prevAccept.reset(),this.startIndex=-1,this.line=1,this.column=0,this.mode=cf.DEFAULT_MODE}matchATN(e){let i=this.atn.modeToStartState[this.mode];n.debug&&console.log("matchATN mode "+this.mode+" start: "+i);let r=this.mode,s=this.computeStartState(e,i),a=s.hasSemanticContext;s.hasSemanticContext=!1;let o=this.addDFAState(s);a||(this.decisionToDFA[this.mode].s0=o);let l=this.execATN(e,o);return n.debug&&console.log("DFA after matchATN: "+this.decisionToDFA[r].toLexerString()),l}execATN(e,i){n.debug&&console.log("start state closure="+i.configs),i.isAcceptState&&this.captureSimState(this.prevAccept,e,i);let r=e.LA(1),s=i;for(;;){n.debug&&console.log("execATN loop starting closure: "+s.configs);let a=this.getExistingTargetState(s,r);if(a===null&&(a=this.computeTargetState(e,s,r)),a===uf.ERROR||(r!==Al.EOF&&this.consume(e),a.isAcceptState&&(this.captureSimState(this.prevAccept,e,a),r===Al.EOF)))break;r=e.LA(1),s=a}return this.failOrAccept(this.prevAccept,e,s.configs,r)}getExistingTargetState(e,i){if(e.edges===null||in.MAX_DFA_EDGE)return null;let r=e.edges[i-n.MIN_DFA_EDGE];return r===void 0&&(r=null),n.debug&&r!==null&&console.log("reuse state "+e.stateNumber+" edge to "+r.stateNumber),r}computeTargetState(e,i,r){let s=new wE;return this.getReachableConfigSet(e,i.configs,s,r),s.items.length===0?(s.hasSemanticContext||this.addDFAEdge(i,r,uf.ERROR),uf.ERROR):this.addDFAEdge(i,r,null,s)}failOrAccept(e,i,r,s){if(this.prevAccept.dfaState!==null){let a=e.dfaState.lexerActionExecutor;return this.accept(i,a,this.startIndex,e.index,e.line,e.column),e.dfaState.prediction}else{if(s===Al.EOF&&i.index===this.startIndex)return Al.EOF;throw new MB(this.recog,i,this.startIndex,r)}}getReachableConfigSet(e,i,r,s){let a=wB.INVALID_ALT_NUMBER;for(let o=0;on.MAX_DFA_EDGE||(n.debug&&console.log("EDGE "+e+" -> "+r+" upon "+i),e.edges===null&&(e.edges=[]),e.edges[i-n.MIN_DFA_EDGE]=r),r}addDFAState(e){let i=new xB(null,e),r=null;for(let l=0;l{var{Map:EB,BitSet:Wb,AltDict:IB,hashStuff:AB}=Li(),TE=io(),{RuleStopState:EE}=gs(),{ATNConfigSet:DB}=so(),{ATNConfig:RB}=yu(),{SemanticContext:LB}=wl(),$r={SLL:0,LL:1,LL_EXACT_AMBIG_DETECTION:2,hasSLLConflictTerminatingPrediction:function(n,t){if($r.allConfigsInRuleStopStates(t))return!0;if(n===$r.SLL&&t.hasSemanticContext){let i=new DB;for(let r=0;r1)return!0;return!1},allSubsetsEqual:function(n){let t=null;for(let e=0;e{var RE=nf(),hf=eo(),OB=hf.INVALID_INTERVAL,AE=hf.TerminalNode,NB=hf.TerminalNodeImpl,DE=hf.ErrorNodeImpl,FB=an().Interval,df=class extends RE{constructor(t,e){t=t||null,e=e||null,super(t,e),this.ruleIndex=-1,this.children=null,this.start=null,this.stop=null,this.exception=null}copyFrom(t){this.parentCtx=t.parentCtx,this.invokingState=t.invokingState,this.children=null,this.start=t.start,this.stop=t.stop,t.children&&(this.children=[],t.children.map(function(e){e instanceof DE&&(this.children.push(e),e.parentCtx=this)},this))}enterRule(t){}exitRule(t){}addChild(t){return this.children===null&&(this.children=[]),this.children.push(t),t}removeLastChild(){this.children!==null&&this.children.pop()}addTokenNode(t){let e=new NB(t);return this.addChild(e),e.parentCtx=this,e}addErrorNode(t){let e=new DE(t);return this.addChild(e),e.parentCtx=this,e}getChild(t,e){if(e=e||null,this.children===null||t<0||t>=this.children.length)return null;if(e===null)return this.children[t];for(let i=0;i=this.children.length)return null;for(let i=0;i{var Pu=Li(),{Set:OE,BitSet:NE,DoubleDict:PB}=Pu,Ci=io(),{ATNState:mf,RuleStopState:Nu}=gs(),{ATNConfig:Fi}=yu(),{ATNConfigSet:ao}=so(),{Token:ys}=ni(),{DFAState:Kb,PredPrediction:UB}=Il(),Fu=Vb(),wi=qb(),FE=nf(),Qre=Gb(),{SemanticContext:ca}=wl(),{PredictionContext:PE}=vs(),{Interval:Yb}=an(),{Transition:ua,SetTransition:$B,NotSetTransition:VB,RuleTransition:BB,ActionTransition:zB}=xl(),{NoViableAltException:HB}=hr(),{SingletonPredictionContext:jB,predictionContextFromRuleContext:WB}=vs(),Qb=class extends Fu{constructor(t,e,i,r){super(e,r),this.parser=t,this.decisionToDFA=i,this.predictionMode=wi.LL,this._input=null,this._startIndex=0,this._outerContext=null,this._dfa=null,this.mergeCache=null,this.debug=!1,this.debug_closure=!1,this.debug_add=!1,this.debug_list_atn_decisions=!1,this.dfa_debug=!1,this.retry_debug=!1}reset(){}adaptivePredict(t,e,i){(this.debug||this.debug_list_atn_decisions)&&console.log("adaptivePredict decision "+e+" exec LA(1)=="+this.getLookaheadName(t)+" line "+t.LT(1).line+":"+t.LT(1).column),this._input=t,this._startIndex=t.index,this._outerContext=i;let r=this.decisionToDFA[e];this._dfa=r;let s=t.mark(),a=t.index;try{let o;if(r.precedenceDfa?o=r.getPrecedenceStartState(this.parser.getPrecedence()):o=r.s0,o===null){i===null&&(i=FE.EMPTY),(this.debug||this.debug_list_atn_decisions)&&console.log("predictATN decision "+r.decision+" exec LA(1)=="+this.getLookaheadName(t)+", outerContext="+i.toString(this.parser.ruleNames));let u=this.computeStartState(r.atnStartState,FE.EMPTY,!1);r.precedenceDfa?(r.s0.configs=u,u=this.applyPrecedenceFilter(u),o=this.addDFAState(r,new Kb(null,u)),r.setPrecedenceStartState(this.parser.getPrecedence(),o)):(o=this.addDFAState(r,new Kb(null,u)),r.s0=o)}let l=this.execATN(r,o,t,a,i);return this.debug&&console.log("DFA after predictATN: "+r.toString(this.parser.literalNames,this.parser.symbolicNames)),l}finally{this._dfa=null,this.mergeCache=null,t.seek(a),t.release(s)}}execATN(t,e,i,r,s){(this.debug||this.debug_list_atn_decisions)&&console.log("execATN decision "+t.decision+" exec LA(1)=="+this.getLookaheadName(i)+" line "+i.LT(1).line+":"+i.LT(1).column);let a,o=e;this.debug&&console.log("s0 = "+e);let l=i.LA(1);for(;;){let c=this.getExistingTargetState(o,l);if(c===null&&(c=this.computeTargetState(t,o,l)),c===Fu.ERROR){let u=this.noViableAlt(i,s,o.configs,r);if(i.seek(r),a=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(o.configs,s),a!==Ci.INVALID_ALT_NUMBER)return a;throw u}if(c.requiresFullContext&&this.predictionMode!==wi.SLL){let u=null;if(c.predicates!==null){this.debug&&console.log("DFA state has preds in DFA sim LL failover");let m=i.index;if(m!==r&&i.seek(r),u=this.evalSemanticContext(c.predicates,s,!0),u.length===1)return this.debug&&console.log("Full LL avoided"),u.minValue();m!==r&&i.seek(m)}this.dfa_debug&&console.log("ctx sensitive state "+s+" in "+c);let h=this.computeStartState(t.atnStartState,s,!0);return this.reportAttemptingFullContext(t,u,c.configs,r,i.index),a=this.execATNWithFullContext(t,c,h,i,r,s),a}if(c.isAcceptState){if(c.predicates===null)return c.prediction;let u=i.index;i.seek(r);let d=this.evalSemanticContext(c.predicates,s,!0);if(d.length===0)throw this.noViableAlt(i,s,c.configs,r);return d.length===1||this.reportAmbiguity(t,c,r,u,!1,d,c.configs),d.minValue()}o=c,l!==ys.EOF&&(i.consume(),l=i.LA(1))}}getExistingTargetState(t,e){let i=t.edges;return i===null?null:i[e+1]||null}computeTargetState(t,e,i){let r=this.computeReachSet(e.configs,i,!1);if(r===null)return this.addDFAEdge(t,e,i,Fu.ERROR),Fu.ERROR;let s=new Kb(null,r),a=this.getUniqueAlt(r);if(this.debug){let o=wi.getConflictingAltSubsets(r);console.log("SLL altSubSets="+Pu.arrayToString(o)+", configs="+r+", predict="+a+", allSubsetsConflict="+wi.allSubsetsConflict(o)+", conflictingAlts="+this.getConflictingAlts(r))}return a!==Ci.INVALID_ALT_NUMBER?(s.isAcceptState=!0,s.configs.uniqueAlt=a,s.prediction=a):wi.hasSLLConflictTerminatingPrediction(this.predictionMode,r)&&(s.configs.conflictingAlts=this.getConflictingAlts(r),s.requiresFullContext=!0,s.isAcceptState=!0,s.prediction=s.configs.conflictingAlts.minValue()),s.isAcceptState&&s.configs.hasSemanticContext&&(this.predicateDFAState(s,this.atn.getDecisionState(t.decision)),s.predicates!==null&&(s.prediction=Ci.INVALID_ALT_NUMBER)),s=this.addDFAEdge(t,e,i,s),s}predicateDFAState(t,e){let i=e.transitions.length,r=this.getConflictingAltsOrUniqueAlt(t.configs),s=this.getPredsForAmbigAlts(r,t.configs,i);s!==null?(t.predicates=this.getPredicatePredictions(r,s),t.prediction=Ci.INVALID_ALT_NUMBER):t.prediction=r.minValue()}execATNWithFullContext(t,e,i,r,s,a){(this.debug||this.debug_list_atn_decisions)&&console.log("execATNWithFullContext "+i);let o=!0,l=!1,c,u=i;r.seek(s);let d=r.LA(1),h=-1;for(;;){if(c=this.computeReachSet(u,d,o),c===null){let f=this.noViableAlt(r,a,u,s);r.seek(s);let g=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(u,a);if(g!==Ci.INVALID_ALT_NUMBER)return g;throw f}let m=wi.getConflictingAltSubsets(c);if(this.debug&&console.log("LL altSubSets="+m+", predict="+wi.getUniqueAlt(m)+", resolvesToJustOneViableAlt="+wi.resolvesToJustOneViableAlt(m)),c.uniqueAlt=this.getUniqueAlt(c),c.uniqueAlt!==Ci.INVALID_ALT_NUMBER){h=c.uniqueAlt;break}else if(this.predictionMode!==wi.LL_EXACT_AMBIG_DETECTION){if(h=wi.resolvesToJustOneViableAlt(m),h!==Ci.INVALID_ALT_NUMBER)break}else if(wi.allSubsetsConflict(m)&&wi.allSubsetsEqual(m)){l=!0,h=wi.getSingleViableAlt(m);break}u=c,d!==ys.EOF&&(r.consume(),d=r.LA(1))}return c.uniqueAlt!==Ci.INVALID_ALT_NUMBER?(this.reportContextSensitivity(t,h,c,s,r.index),h):(this.reportAmbiguity(t,e,s,r.index,l,null,c),h)}computeReachSet(t,e,i){this.debug&&console.log("in computeReachSet, starting closure: "+t),this.mergeCache===null&&(this.mergeCache=new PB);let r=new ao(i),s=null;for(let o=0;o0&&(a=this.getAltThatFinishedDecisionEntryRule(s),a!==Ci.INVALID_ALT_NUMBER)?a:Ci.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(t){let e=[];for(let i=0;i0||r.state instanceof Nu&&r.context.hasEmptyPath())&&e.indexOf(r.alt)<0&&e.push(r.alt)}return e.length===0?Ci.INVALID_ALT_NUMBER:Math.min.apply(null,e)}splitAccordingToSemanticValidity(t,e){let i=new ao(t.fullCtx),r=new ao(t.fullCtx);for(let s=0;s50))throw"problem";if(t.state instanceof Nu)if(t.context.isEmpty())if(s){e.add(t,this.mergeCache);return}else this.debug&&console.log("FALLING off rule "+this.getRuleName(t.state.ruleIndex));else{for(let l=0;l=0&&(m+=1)}this.closureCheckingStopState(h,e,i,d,s,m,o)}}}canDropLoopEntryEdgeInLeftRecursiveRule(t){let e=t.state;if(e.stateType!==mf.STAR_LOOP_ENTRY||e.stateType!==mf.STAR_LOOP_ENTRY||!e.isPrecedenceDecision||t.context.isEmpty()||t.context.hasEmptyPath())return!1;let i=t.context.length;for(let o=0;o=0?this.parser.ruleNames[t]:""}getEpsilonTarget(t,e,i,r,s,a){switch(e.serializationType){case ua.RULE:return this.ruleTransition(t,e);case ua.PRECEDENCE:return this.precedenceTransition(t,e,i,r,s);case ua.PREDICATE:return this.predTransition(t,e,i,r,s);case ua.ACTION:return this.actionTransition(t,e);case ua.EPSILON:return new Fi({state:e.target},t);case ua.ATOM:case ua.RANGE:case ua.SET:return a&&e.matches(ys.EOF,0,1)?new Fi({state:e.target},t):null;default:return null}}actionTransition(t,e){if(this.debug){let i=e.actionIndex===-1?65535:e.actionIndex;console.log("ACTION edge "+e.ruleIndex+":"+i)}return new Fi({state:e.target},t)}precedenceTransition(t,e,i,r,s){this.debug&&(console.log("PRED (collectPredicates="+i+") "+e.precedence+">=_p, ctx dependent=true"),this.parser!==null&&console.log("context surrounding pred is "+Pu.arrayToString(this.parser.getRuleInvocationStack())));let a=null;if(i&&r)if(s){let o=this._input.index;this._input.seek(this._startIndex);let l=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(o),l&&(a=new Fi({state:e.target},t))}else{let o=ca.andContext(t.semanticContext,e.getPredicate());a=new Fi({state:e.target,semanticContext:o},t)}else a=new Fi({state:e.target},t);return this.debug&&console.log("config from pred transition="+a),a}predTransition(t,e,i,r,s){this.debug&&(console.log("PRED (collectPredicates="+i+") "+e.ruleIndex+":"+e.predIndex+", ctx dependent="+e.isCtxDependent),this.parser!==null&&console.log("context surrounding pred is "+Pu.arrayToString(this.parser.getRuleInvocationStack())));let a=null;if(i&&(e.isCtxDependent&&r||!e.isCtxDependent))if(s){let o=this._input.index;this._input.seek(this._startIndex);let l=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(o),l&&(a=new Fi({state:e.target},t))}else{let o=ca.andContext(t.semanticContext,e.getPredicate());a=new Fi({state:e.target,semanticContext:o},t)}else a=new Fi({state:e.target},t);return this.debug&&console.log("config from pred transition="+a),a}ruleTransition(t,e){this.debug&&console.log("CALL rule "+this.getRuleName(e.target.ruleIndex)+", ctx="+t.context);let i=e.followState,r=jB.create(t.context,i.stateNumber);return new Fi({state:e.target,context:r},t)}getConflictingAlts(t){let e=wi.getConflictingAltSubsets(t);return wi.getAlts(e)}getConflictingAltsOrUniqueAlt(t){let e=null;return t.uniqueAlt!==Ci.INVALID_ALT_NUMBER?(e=new NE,e.add(t.uniqueAlt)):e=t.conflictingAlts,e}getTokenName(t){if(t===ys.EOF)return"EOF";if(this.parser!==null&&this.parser.literalNames!==null)if(t>=this.parser.literalNames.length&&t>=this.parser.symbolicNames.length)console.log(""+t+" ttype out of range: "+this.parser.literalNames),console.log(""+this.parser.getInputStream().getTokens());else return(this.parser.literalNames[t]||this.parser.symbolicNames[t])+"<"+t+">";return""+t}getLookaheadName(t){return this.getTokenName(t.LA(1))}dumpDeadEndConfigs(t){console.log("dead end configs: ");let e=t.getDeadEndConfigs();for(let i=0;i0){let a=r.state.transitions[0];a instanceof AtomTransition?s="Atom "+this.getTokenName(a.label):a instanceof $B&&(s=(a instanceof VB?"~":"")+"Set "+a.set)}console.error(r.toString(this.parser,!0)+":"+s)}}noViableAlt(t,e,i,r){return new HB(this.parser,t,t.get(r),t.LT(1),i,e)}getUniqueAlt(t){let e=Ci.INVALID_ALT_NUMBER;for(let i=0;i "+r+" upon "+this.getTokenName(i)),r===null)return null;if(r=this.addDFAState(t,r),e===null||i<-1||i>this.atn.maxTokenType)return r;if(e.edges===null&&(e.edges=[]),e.edges[i+1]=r,this.debug){let s=this.parser===null?null:this.parser.literalNames,a=this.parser===null?null:this.parser.symbolicNames;console.log(`DFA= -`+t.toString(s,a))}return r}addDFAState(t,e){if(e===Fu.ERROR)return e;let i=t.states.get(e);return i!==null?i:(e.stateNumber=t.states.length,e.configs.readOnly||(e.configs.optimizeConfigs(this),e.configs.setReadonly(!0)),t.states.add(e),this.debug&&console.log("adding new DFA state: "+e),e)}reportAttemptingFullContext(t,e,i,r,s){if(this.debug||this.retry_debug){let a=new Yb(r,s+1);console.log("reportAttemptingFullContext decision="+t.decision+":"+i+", input="+this.parser.getTokenStream().getText(a))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportAttemptingFullContext(this.parser,t,r,s,e,i)}reportContextSensitivity(t,e,i,r,s){if(this.debug||this.retry_debug){let a=new Yb(r,s+1);console.log("reportContextSensitivity decision="+t.decision+":"+i+", input="+this.parser.getTokenStream().getText(a))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportContextSensitivity(this.parser,t,r,s,e,i)}reportAmbiguity(t,e,i,r,s,a,o){if(this.debug||this.retry_debug){let l=new Yb(i,r+1);console.log("reportAmbiguity "+a+":"+o+", input="+this.parser.getTokenStream().getText(l))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportAmbiguity(this.parser,t,i,r,s,a,o)}};UE.exports=Qb});var VE=X(Dl=>{Dl.ATN=io();Dl.ATNDeserializer=Tb();Dl.LexerATNSimulator=ME();Dl.ParserATNSimulator=$E();Dl.PredictionMode=qb()});var Zb=X(()=>{String.prototype.codePointAt||function(){"use strict";var n=function(){let e;try{let i={},r=Object.defineProperty;e=r(i,i,i)&&r}catch{}return e}();let t=function(e){if(this==null)throw TypeError();let i=String(this),r=i.length,s=e?Number(e):0;if(s!==s&&(s=0),s<0||s>=r)return;let a=i.charCodeAt(s),o;return a>=55296&&a<=56319&&r>s+1&&(o=i.charCodeAt(s+1),o>=56320&&o<=57343)?(a-55296)*1024+o-56320+65536:a};n?n(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}()});var Uu=X((tse,BE)=>{var qB=Li(),ff=class{constructor(t,e,i){this.dfa=t,this.literalNames=e||[],this.symbolicNames=i||[]}toString(){if(this.dfa.s0===null)return null;let t="",e=this.dfa.sortedStates();for(let i=0;i"),t=t.concat(this.getStateString(o)),t=t.concat(` -`))}}}return t.length===0?null:t}getEdgeLabel(t){return t===0?"EOF":this.literalNames!==null||this.symbolicNames!==null?this.literalNames[t-1]||this.symbolicNames[t-1]:String.fromCharCode(t-1)}getStateString(t){let e=(t.isAcceptState?":":"")+"s"+t.stateNumber+(t.requiresFullContext?"^":"");return t.isAcceptState?t.predicates!==null?e+"=>"+qB.arrayToString(t.predicates):e+"=>"+t.prediction.toString():e}},Xb=class extends ff{constructor(t){super(t,null)}getEdgeLabel(t){return"'"+String.fromCharCode(t)+"'"}};BE.exports={DFASerializer:ff,LexerDFASerializer:Xb}});var qE=X((ise,WE)=>{var{Set:zE}=Li(),{DFAState:HE}=Il(),{StarLoopEntryState:GB}=gs(),{ATNConfigSet:jE}=so(),{DFASerializer:KB}=Uu(),{LexerDFASerializer:YB}=Uu(),Jb=class{constructor(t,e){if(e===void 0&&(e=0),this.atnStartState=t,this.decision=e,this._states=new zE,this.s0=null,this.precedenceDfa=!1,t instanceof GB&&t.isPrecedenceDecision){this.precedenceDfa=!0;let i=new HE(null,new jE);i.edges=[],i.isAcceptState=!1,i.requiresFullContext=!1,this.s0=i}}getPrecedenceStartState(t){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";return t<0||t>=this.s0.edges.length?null:this.s0.edges[t]||null}setPrecedenceStartState(t,e){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";t<0||(this.s0.edges[t]=e)}setPrecedenceDfa(t){if(this.precedenceDfa!==t){if(this._states=new zE,t){let e=new HE(null,new jE);e.edges=[],e.isAcceptState=!1,e.requiresFullContext=!1,this.s0=e}else this.s0=null;this.precedenceDfa=t}}sortedStates(){return this._states.values().sort(function(e,i){return e.stateNumber-i.stateNumber})}toString(t,e){return t=t||null,e=e||null,this.s0===null?"":new KB(this,t,e).toString()}toLexerString(){return this.s0===null?"":new YB(this).toString()}get states(){return this._states}};WE.exports=Jb});var GE=X($u=>{$u.DFA=qE();$u.DFASerializer=Uu().DFASerializer;$u.LexerDFASerializer=Uu().LexerDFASerializer;$u.PredPrediction=Il().PredPrediction});var ey=X(()=>{String.fromCodePoint||function(){let n=function(){let r;try{let s={},a=Object.defineProperty;r=a(s,s,s)&&a}catch{}return r}(),t=String.fromCharCode,e=Math.floor,i=function(r){let a=[],o,l,c=-1,u=arguments.length;if(!u)return"";let d="";for(;++c1114111||e(h)!==h)throw RangeError("Invalid code point: "+h);h<=65535?a.push(h):(h-=65536,o=(h>>10)+55296,l=h%1024+56320,a.push(o,l)),(c+1===u||a.length>16384)&&(d+=t.apply(null,a),a.length=0)}return d};n?n(String,"fromCodePoint",{value:i,configurable:!0,writable:!0}):String.fromCodePoint=i}()});var YE=X((ase,KE)=>{var QB=eo(),ZB=rb();KE.exports=$e(j({},QB),{Trees:ZB})});var ZE=X((lse,QE)=>{var{BitSet:XB}=Li(),{ErrorListener:JB}=Ru(),{Interval:ty}=an(),iy=class extends JB{constructor(t){super(),t=t||!0,this.exactOnly=t}reportAmbiguity(t,e,i,r,s,a,o){if(this.exactOnly&&!s)return;let l="reportAmbiguity d="+this.getDecisionDescription(t,e)+": ambigAlts="+this.getConflictingAlts(a,o)+", input='"+t.getTokenStream().getText(new ty(i,r))+"'";t.notifyErrorListeners(l)}reportAttemptingFullContext(t,e,i,r,s,a){let o="reportAttemptingFullContext d="+this.getDecisionDescription(t,e)+", input='"+t.getTokenStream().getText(new ty(i,r))+"'";t.notifyErrorListeners(o)}reportContextSensitivity(t,e,i,r,s,a){let o="reportContextSensitivity d="+this.getDecisionDescription(t,e)+", input='"+t.getTokenStream().getText(new ty(i,r))+"'";t.notifyErrorListeners(o)}getDecisionDescription(t,e){let i=e.decision,r=e.atnStartState.ruleIndex,s=t.ruleNames;if(r<0||r>=s.length)return""+i;let a=s[r]||null;return a===null||a.length===0?""+i:`${i} (${a})`}getConflictingAlts(t,e){if(t!==null)return t;let i=new XB;for(let r=0;r{var{Token:da}=ni(),{NoViableAltException:ez,InputMismatchException:pf,FailedPredicateException:tz,ParseCancellationException:iz}=hr(),{ATNState:oo}=gs(),{Interval:nz,IntervalSet:XE}=an(),ny=class{reset(t){}recoverInline(t){}recover(t,e){}sync(t){}inErrorRecoveryMode(t){}reportError(t){}},gf=class extends ny{constructor(){super(),this.errorRecoveryMode=!1,this.lastErrorIndex=-1,this.lastErrorStates=null,this.nextTokensContext=null,this.nextTokenState=0}reset(t){this.endErrorCondition(t)}beginErrorCondition(t){this.errorRecoveryMode=!0}inErrorRecoveryMode(t){return this.errorRecoveryMode}endErrorCondition(t){this.errorRecoveryMode=!1,this.lastErrorStates=null,this.lastErrorIndex=-1}reportMatch(t){this.endErrorCondition(t)}reportError(t,e){this.inErrorRecoveryMode(t)||(this.beginErrorCondition(t),e instanceof ez?this.reportNoViableAlternative(t,e):e instanceof pf?this.reportInputMismatch(t,e):e instanceof tz?this.reportFailedPredicate(t,e):(console.log("unknown recognition error type: "+e.constructor.name),console.log(e.stack),t.notifyErrorListeners(e.getOffendingToken(),e.getMessage(),e)))}recover(t,e){this.lastErrorIndex===t.getInputStream().index&&this.lastErrorStates!==null&&this.lastErrorStates.indexOf(t.state)>=0&&t.consume(),this.lastErrorIndex=t._input.index,this.lastErrorStates===null&&(this.lastErrorStates=[]),this.lastErrorStates.push(t.state);let i=this.getErrorRecoverySet(t);this.consumeUntil(t,i)}sync(t){if(this.inErrorRecoveryMode(t))return;let e=t._interp.atn.states[t.state],i=t.getTokenStream().LA(1),r=t.atn.nextTokens(e);if(r.contains(i)){this.nextTokensContext=null,this.nextTokenState=oo.INVALID_STATE_NUMBER;return}else if(r.contains(da.EPSILON)){this.nextTokensContext===null&&(this.nextTokensContext=t._ctx,this.nextTokensState=t._stateNumber);return}switch(e.stateType){case oo.BLOCK_START:case oo.STAR_BLOCK_START:case oo.PLUS_BLOCK_START:case oo.STAR_LOOP_ENTRY:if(this.singleTokenDeletion(t)!==null)return;throw new pf(t);case oo.PLUS_LOOP_BACK:case oo.STAR_LOOP_BACK:this.reportUnwantedToken(t);let s=new XE;s.addSet(t.getExpectedTokens());let a=s.addSet(this.getErrorRecoverySet(t));this.consumeUntil(t,a);break;default:}}reportNoViableAlternative(t,e){let i=t.getTokenStream(),r;i!==null?e.startToken.type===da.EOF?r="":r=i.getText(new nz(e.startToken.tokenIndex,e.offendingToken.tokenIndex)):r="";let s="no viable alternative at input "+this.escapeWSAndQuote(r);t.notifyErrorListeners(s,e.offendingToken,e)}reportInputMismatch(t,e){let i="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(i,e.offendingToken,e)}reportFailedPredicate(t,e){let r="rule "+t.ruleNames[t._ctx.ruleIndex]+" "+e.message;t.notifyErrorListeners(r,e.offendingToken,e)}reportUnwantedToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);let e=t.getCurrentToken(),i=this.getTokenErrorDisplay(e),r=this.getExpectedTokens(t),s="extraneous input "+i+" expecting "+r.toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(s,e,null)}reportMissingToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);let e=t.getCurrentToken(),r="missing "+this.getExpectedTokens(t).toString(t.literalNames,t.symbolicNames)+" at "+this.getTokenErrorDisplay(e);t.notifyErrorListeners(r,e,null)}recoverInline(t){let e=this.singleTokenDeletion(t);if(e!==null)return t.consume(),e;if(this.singleTokenInsertion(t))return this.getMissingSymbol(t);throw new pf(t)}singleTokenInsertion(t){let e=t.getTokenStream().LA(1),i=t._interp.atn,s=i.states[t.state].transitions[0].target;return i.nextTokens(s,t._ctx).contains(e)?(this.reportMissingToken(t),!0):!1}singleTokenDeletion(t){let e=t.getTokenStream().LA(2);if(this.getExpectedTokens(t).contains(e)){this.reportUnwantedToken(t),t.consume();let r=t.getCurrentToken();return this.reportMatch(t),r}else return null}getMissingSymbol(t){let e=t.getCurrentToken(),r=this.getExpectedTokens(t).first(),s;r===da.EOF?s="":s="";let a=e,o=t.getTokenStream().LT(-1);return a.type===da.EOF&&o!==null&&(a=o),t.getTokenFactory().create(a.source,r,s,da.DEFAULT_CHANNEL,-1,-1,a.line,a.column)}getExpectedTokens(t){return t.getExpectedTokens()}getTokenErrorDisplay(t){if(t===null)return"";let e=t.text;return e===null&&(t.type===da.EOF?e="":e="<"+t.type+">"),this.escapeWSAndQuote(e)}escapeWSAndQuote(t){return t=t.replace(/\n/g,"\\n"),t=t.replace(/\r/g,"\\r"),t=t.replace(/\t/g,"\\t"),"'"+t+"'"}getErrorRecoverySet(t){let e=t._interp.atn,i=t._ctx,r=new XE;for(;i!==null&&i.invokingState>=0;){let a=e.states[i.invokingState].transitions[0],o=e.nextTokens(a.followState);r.addSet(o),i=i.parentCtx}return r.removeOne(da.EPSILON),r}consumeUntil(t,e){let i=t.getTokenStream().LA(1);for(;i!==da.EOF&&!e.contains(i);)t.consume(),i=t.getTokenStream().LA(1)}},ry=class extends gf{constructor(){super()}recover(t,e){let i=t._ctx;for(;i!==null;)i.exception=e,i=i.parentCtx;throw new iz(e)}recoverInline(t){this.recover(t,new pf(t))}sync(t){}};JE.exports={BailErrorStrategy:ry,DefaultErrorStrategy:gf}});var e2=X((use,Vr)=>{Vr.exports.RecognitionException=hr().RecognitionException;Vr.exports.NoViableAltException=hr().NoViableAltException;Vr.exports.LexerNoViableAltException=hr().LexerNoViableAltException;Vr.exports.InputMismatchException=hr().InputMismatchException;Vr.exports.FailedPredicateException=hr().FailedPredicateException;Vr.exports.DiagnosticErrorListener=ZE();Vr.exports.BailErrorStrategy=_f().BailErrorStrategy;Vr.exports.DefaultErrorStrategy=_f().DefaultErrorStrategy;Vr.exports.ErrorListener=Ru().ErrorListener});var i2=X((dse,t2)=>{var{Token:rz}=ni();Zb();ey();var sy=class{constructor(t,e){if(this.name="",this.strdata=t,this.decodeToUnicodeCodePoints=e||!1,this._index=0,this.data=[],this.decodeToUnicodeCodePoints)for(let i=0;i=this._size)throw"cannot consume EOF";this._index+=1}LA(t){if(t===0)return 0;t<0&&(t+=1);let e=this._index+t-1;return e<0||e>=this._size?rz.EOF:this.data[e]}LT(t){return this.LA(t)}mark(){return-1}release(t){}seek(t){if(t<=this._index){this._index=t;return}this._index=Math.min(t,this._size)}getText(t,e){if(e>=this._size&&(e=this._size-1),t>=this._size)return"";if(this.decodeToUnicodeCodePoints){let i="";for(let r=t;r<=e;r++)i+=String.fromCodePoint(this.data[r]);return i}else return this.strdata.slice(t,e+1)}toString(){return this.strdata}get index(){return this._index}get size(){return this._size}};t2.exports=sy});var r2=X((hse,n2)=>{var{Token:lo}=ni(),ay=Ou(),{Interval:sz}=an(),oy=class{},ly=class extends oy{constructor(t){super(),this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}mark(){return 0}release(t){}reset(){this.seek(0)}seek(t){this.lazyInit(),this.index=this.adjustSeekIndex(t)}get(t){return this.lazyInit(),this.tokens[t]}consume(){let t=!1;if(this.index>=0?this.fetchedEOF?t=this.index0?this.fetch(e)>=e:!0}fetch(t){if(this.fetchedEOF)return 0;for(let e=0;e=this.tokens.length&&(e=this.tokens.length-1);for(let s=t;s=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[e]}adjustSeekIndex(t){return t}lazyInit(){this.index===-1&&this.setup()}setup(){this.sync(0),this.index=this.adjustSeekIndex(0)}setTokenSource(t){this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}nextTokenOnChannel(t,e){if(this.sync(t),t>=this.tokens.length)return-1;let i=this.tokens[t];for(;i.channel!==this.channel;){if(i.type===lo.EOF)return-1;t+=1,this.sync(t),i=this.tokens[t]}return t}previousTokenOnChannel(t,e){for(;t>=0&&this.tokens[t].channel!==e;)t-=1;return t}getHiddenTokensToRight(t,e){if(e===void 0&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw""+t+" not in 0.."+this.tokens.length-1;let i=this.nextTokenOnChannel(t+1,ay.DEFAULT_TOKEN_CHANNEL),r=t+1,s=i===-1?this.tokens.length-1:i;return this.filterForChannel(r,s,e)}getHiddenTokensToLeft(t,e){if(e===void 0&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw""+t+" not in 0.."+this.tokens.length-1;let i=this.previousTokenOnChannel(t-1,ay.DEFAULT_TOKEN_CHANNEL);if(i===t-1)return null;let r=i+1,s=t-1;return this.filterForChannel(r,s,e)}filterForChannel(t,e,i){let r=[];for(let s=t;s=this.tokens.length&&(i=this.tokens.length-1);let r="";for(let s=e;s{var s2=ni().Token,az=r2(),cy=class extends az{constructor(t,e){super(t),this.channel=e===void 0?s2.DEFAULT_CHANNEL:e}adjustSeekIndex(t){return this.nextTokenOnChannel(t,this.channel)}LB(t){if(t===0||this.index-t<0)return null;let e=this.index,i=1;for(;i<=t;)e=this.previousTokenOnChannel(e-1,this.channel),i+=1;return e<0?null:this.tokens[e]}LT(t){if(this.lazyInit(),t===0)return null;if(t<0)return this.LB(-t);let e=this.index,i=1;for(;i{var{Token:Vu}=ni(),{ParseTreeListener:oz,TerminalNode:lz,ErrorNode:cz}=eo(),uz=Ab(),{DefaultErrorStrategy:dz}=_f(),hz=Tb(),mz=cb(),fz=Ou(),uy=class extends oz{constructor(t){super(),this.parser=t}enterEveryRule(t){console.log("enter "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+this.parser._input.LT(1).text)}visitTerminal(t){console.log("consume "+t.symbol+" rule "+this.parser.ruleNames[this.parser._ctx.ruleIndex])}exitEveryRule(t){console.log("exit "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+this.parser._input.LT(1).text)}},pz=(()=>{class n extends uz{constructor(e){super(),this._input=null,this._errHandler=new dz,this._precedenceStack=[],this._precedenceStack.push(0),this._ctx=null,this.buildParseTrees=!0,this._tracer=null,this._parseListeners=null,this._syntaxErrors=0,this.setInputStream(e)}reset(){this._input!==null&&this._input.seek(0),this._errHandler.reset(this),this._ctx=null,this._syntaxErrors=0,this.setTrace(!1),this._precedenceStack=[],this._precedenceStack.push(0),this._interp!==null&&this._interp.reset()}match(e){let i=this.getCurrentToken();return i.type===e?(this._errHandler.reportMatch(this),this.consume()):(i=this._errHandler.recoverInline(this),this.buildParseTrees&&i.tokenIndex===-1&&this._ctx.addErrorNode(i)),i}matchWildcard(){let e=this.getCurrentToken();return e.type>0?(this._errHandler.reportMatch(this),this.consume()):(e=this._errHandler.recoverInline(this),this._buildParseTrees&&e.tokenIndex===-1&&this._ctx.addErrorNode(e)),e}getParseListeners(){return this._parseListeners||[]}addParseListener(e){if(e===null)throw"listener";this._parseListeners===null&&(this._parseListeners=[]),this._parseListeners.push(e)}removeParseListener(e){if(this._parseListeners!==null){let i=this._parseListeners.indexOf(e);i>=0&&this._parseListeners.splice(i,1),this._parseListeners.length===0&&(this._parseListeners=null)}}removeParseListeners(){this._parseListeners=null}triggerEnterRuleEvent(){if(this._parseListeners!==null){let e=this._ctx;this._parseListeners.forEach(function(i){i.enterEveryRule(e),e.enterRule(i)})}}triggerExitRuleEvent(){if(this._parseListeners!==null){let e=this._ctx;this._parseListeners.slice(0).reverse().forEach(function(i){e.exitRule(i),i.exitEveryRule(e)})}}getTokenFactory(){return this._input.tokenSource._factory}setTokenFactory(e){this._input.tokenSource._factory=e}getATNWithBypassAlts(){let e=this.getSerializedATN();if(e===null)throw"The current parser does not support an ATN with bypass alternatives.";let i=this.bypassAltsAtnCache[e];if(i===null){let r=new mz;r.generateRuleBypassTransitions=!0,i=new hz(r).deserialize(e),this.bypassAltsAtnCache[e]=i}return i}compileParseTreePattern(e,i,r){if(r=r||null,r===null&&this.getTokenStream()!==null){let a=this.getTokenStream().tokenSource;a instanceof fz&&(r=a)}if(r===null)throw"Parser can't discover a lexer to use";return new ParseTreePatternMatcher(r,this).compile(e,i)}getInputStream(){return this.getTokenStream()}setInputStream(e){this.setTokenStream(e)}getTokenStream(){return this._input}setTokenStream(e){this._input=null,this.reset(),this._input=e}getCurrentToken(){return this._input.LT(1)}notifyErrorListeners(e,i,r){i=i||null,r=r||null,i===null&&(i=this.getCurrentToken()),this._syntaxErrors+=1;let s=i.line,a=i.column;this.getErrorListenerDispatch().syntaxError(this,i,s,a,e,r)}consume(){let e=this.getCurrentToken();e.type!==Vu.EOF&&this.getInputStream().consume();let i=this._parseListeners!==null&&this._parseListeners.length>0;if(this.buildParseTrees||i){let r;this._errHandler.inErrorRecoveryMode(this)?r=this._ctx.addErrorNode(e):r=this._ctx.addTokenNode(e),r.invokingState=this.state,i&&this._parseListeners.forEach(function(s){r instanceof cz||r.isErrorNode!==void 0&&r.isErrorNode()?s.visitErrorNode(r):r instanceof lz&&s.visitTerminal(r)})}return e}addContextToParseTree(){this._ctx.parentCtx!==null&&this._ctx.parentCtx.addChild(this._ctx)}enterRule(e,i,r){this.state=i,this._ctx=e,this._ctx.start=this._input.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this._ctx.stop=this._input.LT(-1),this.triggerExitRuleEvent(),this.state=this._ctx.invokingState,this._ctx=this._ctx.parentCtx}enterOuterAlt(e,i){e.setAltNumber(i),this.buildParseTrees&&this._ctx!==e&&this._ctx.parentCtx!==null&&(this._ctx.parentCtx.removeLastChild(),this._ctx.parentCtx.addChild(e)),this._ctx=e}getPrecedence(){return this._precedenceStack.length===0?-1:this._precedenceStack[this._precedenceStack.length-1]}enterRecursionRule(e,i,r,s){this.state=i,this._precedenceStack.push(s),this._ctx=e,this._ctx.start=this._input.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(e,i,r){let s=this._ctx;s.parentCtx=e,s.invokingState=i,s.stop=this._input.LT(-1),this._ctx=e,this._ctx.start=s.start,this.buildParseTrees&&this._ctx.addChild(s),this.triggerEnterRuleEvent()}unrollRecursionContexts(e){this._precedenceStack.pop(),this._ctx.stop=this._input.LT(-1);let i=this._ctx,r=this.getParseListeners();if(r!==null&&r.length>0)for(;this._ctx!==e;)this.triggerExitRuleEvent(),this._ctx=this._ctx.parentCtx;else this._ctx=e;i.parentCtx=e,this.buildParseTrees&&e!==null&&e.addChild(i)}getInvokingContext(e){let i=this._ctx;for(;i!==null;){if(i.ruleIndex===e)return i;i=i.parentCtx}return null}precpred(e,i){return i>=this._precedenceStack[this._precedenceStack.length-1]}inContext(e){return!1}isExpectedToken(e){let i=this._interp.atn,r=this._ctx,s=i.states[this.state],a=i.nextTokens(s);if(a.contains(e))return!0;if(!a.contains(Vu.EPSILON))return!1;for(;r!==null&&r.invokingState>=0&&a.contains(Vu.EPSILON);){let l=i.states[r.invokingState].transitions[0];if(a=i.nextTokens(l.followState),a.contains(e))return!0;r=r.parentCtx}return!!(a.contains(Vu.EPSILON)&&e===Vu.EOF)}getExpectedTokens(){return this._interp.atn.getExpectedTokens(this.state,this._ctx)}getExpectedTokensWithinCurrentRule(){let e=this._interp.atn,i=e.states[this.state];return e.nextTokens(i)}getRuleIndex(e){let i=this.getRuleIndexMap()[e];return i!==null?i:-1}getRuleInvocationStack(e){e=e||null,e===null&&(e=this._ctx);let i=[];for(;e!==null;){let r=e.ruleIndex;r<0?i.push("n/a"):i.push(this.ruleNames[r]),e=e.parentCtx}return i}getDFAStrings(){return this._interp.decisionToDFA.toString()}dumpDFA(){let e=!1;for(let i=0;i0&&(e&&console.log(),this.printer.println("Decision "+r.decision+":"),this.printer.print(r.toString(this.literalNames,this.symbolicNames)),e=!0)}}getSourceName(){return this._input.sourceName}setTrace(e){e?(this._tracer!==null&&this.removeParseListener(this._tracer),this._tracer=new uy(this),this.addParseListener(this._tracer)):(this.removeParseListener(this._tracer),this._tracer=null)}}return n.bypassAltsAtnCache={},n})();l2.exports=pz});var Bu=X(oi=>{oi.atn=VE();oi.codepointat=Zb();oi.dfa=GE();oi.fromcodepoint=ey();oi.tree=YE();oi.error=e2();oi.Token=ni().Token;oi.CommonToken=ni().CommonToken;oi.InputStream=i2();oi.CommonTokenStream=o2();oi.Lexer=Ou();oi.Parser=c2();var gz=vs();oi.PredictionContextCache=gz.PredictionContextCache;oi.ParserRuleContext=Gb();oi.Interval=an().Interval;oi.IntervalSet=an().IntervalSet;oi.Utils=Li();oi.LL1Analyzer=lb().LL1Analyzer});var d2=X((gse,u2)=>{var Rl=Bu(),_z=["\u608B\uA72A\u8133\uB9ED\u417C\u3BE7\u7786","\u5964A\u0203\b  ","   \x07",` \x07\b \b  - -\v \v`,"\f \f\r \r  ","    ","   ","    ","\x1B \x1B  ",'   ! !" "#'," #$ $% %& &' '( () )","* *+ +, ,- -. ./ /0 0","1 12 23 34 45 56 67 7","8 89 9: :; ;< <= => >","? ?@ @A AB BC CD D","","\x07\x07\b",`\b     - - - -`,"\v\v\f\f\r\r\r","","","","","","","\x1B","\x1B\x1B\x1B",""," ",' !!!!!"""','"""##$$$$$',"$%%%%%%%&","&&&&&&''((","((())))))*","****++++,,",",,,-------",".......///","/////////0","0000011111","1122222233","3334444445","5555555666","6666677777","7777777788","8888888888",`88\u0183 -88\u0185 -88\u0187 -888\u018A`,` -89999:::::`,`::::::\u019A -:\r::\u019B`,`:\u019E -::\u01A0 -::\u01A2 -::::`,`:::::\u01AB -:;;\u01AE -;`,`;\x07;\u01B1 -;\f;;\u01B4\v;<<<\x07`,`<\u01B9 -<\f<<\u01BC\v<<<==`,`=\x07=\u01C3 -=\f==\u01C6\v===>`,`>\u01CB ->\r>>\u01CC>>>\u01D1 ->\r>>\u01D2`,`>\u01D5 ->??\u01D8 -?\r??\u01D9?`,`?@@@@\x07@\u01E2 -@\f@@\u01E5\v`,"@@@@@@AAAA\x07",`A\u01F0 -A\fAA\u01F3\vAAABB`,`BB\u01FA -BCCCCCCD`,"D\u01E3E\x07 \v",`\x07\r\b  -\v\f\r\x1B`,"!#%')+","-/13\x1B579;= ?!A",`"C#E$G%I&K'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:su;w}`,"?\x7F@\x81A\x83\x85\x87\f","2;--//C\\aac|2;C\\aac|",'^^bb))\v\f""',`\f\f -))11^^bbhhppttvv2;CHch\u0214`,"","\x07 ","\v\r","","","","\x1B","!","#%","')+","-/","13","57","9;","=?A","CE","GI","KM","OQ","SUW","Y[","]_","ac","eg","ikm","oq","uw","y{","}\x7F","\x81\x89","\x8B\x07\x8D"," \x8F\v\x91","\r\x93\x95","\x97\x9B","\x9F\xA1","\xA3\x1B\xA6","\xA8\xAA","!\xAD#\xB0%\xB3","'\xB5)\xB7","+\xBA-\xBD","/\xC01\xC9","3\xCD5\xD0","7\xD49\xDC;\xDE","=\xE0?\xE2","A\xE4C\xE9","E\xEFG\xF1","I\xF7K\xFE","M\u0105O\u0107Q\u010C","S\u0112U\u0117","W\u011BY\u0120","[\u0127]\u012E","_\u013Aa\u0140","c\u0147e\u014Dg\u0152","i\u0158k\u0160","m\u0168o\u0175","q\u018Bs\u018F","u\u01ADw\u01B5","y\u01BF{\u01CA}\u01D7","\x7F\u01DD\x81\u01EB","\x83\u01F6\x85\u01FB","\x87\u0201\x89\x8A","\x070\x8A\x8B\x8C","\x07]\x8C\x8D\x8E","\x07_\x8E\b\x8F\x90\x07",`-\x90 -\x91\x92\x07/`,"\x92\f\x93\x94\x07,","\x94\x95\x96\x071","\x96\x97\x98\x07f","\x98\x99\x07k\x99\x9A\x07x\x9A","\x9B\x9C\x07o\x9C","\x9D\x07q\x9D\x9E\x07f\x9E","\x9F\xA0\x07(\xA0","\xA1\xA2\x07~\xA2","\xA3\xA4\x07>\xA4\xA5","\x07?\xA5\xA6\xA7","\x07>\xA7\xA8\xA9","\x07@\xA9\xAA\xAB","\x07@\xAB\xAC\x07?\xAC ","\xAD\xAE\x07k\xAE\xAF\x07u",'\xAF"\xB0\xB1\x07c',"\xB1\xB2\x07u\xB2$\xB3","\xB4\x07?\xB4&\xB5\xB6","\x07\x80\xB6(\xB7\xB8","\x07#\xB8\xB9\x07?\xB9*","\xBA\xBB\x07#\xBB\xBC\x07\x80","\xBC,\xBD\xBE\x07k","\xBE\xBF\x07p\xBF.","\xC0\xC1\x07e\xC1\xC2\x07q\xC2","\xC3\x07p\xC3\xC4\x07v\xC4\xC5","\x07c\xC5\xC6\x07k\xC6\xC7\x07","p\xC7\xC8\x07u\xC80","\xC9\xCA\x07c\xCA\xCB\x07p","\xCB\xCC\x07f\xCC2\xCD","\xCE\x07q\xCE\xCF\x07t\xCF4","\xD0\xD1\x07z\xD1\xD2\x07","q\xD2\xD3\x07t\xD36","\xD4\xD5\x07k\xD5\xD6\x07o","\xD6\xD7\x07r\xD7\xD8\x07n\xD8","\xD9\x07k\xD9\xDA\x07g\xDA\xDB","\x07u\xDB8\xDC\xDD\x07","*\xDD:\xDE\xDF\x07+","\xDF<\xE0\xE1\x07}","\xE1>\xE2\xE3\x07\x7F","\xE3@\xE4\xE5\x07v\xE5","\xE6\x07t\xE6\xE7\x07w\xE7\xE8","\x07g\xE8B\xE9\xEA\x07","h\xEA\xEB\x07c\xEB\xEC\x07n","\xEC\xED\x07u\xED\xEE\x07g","\xEED\xEF\xF0\x07'\xF0","F\xF1\xF2\x07&\xF2\xF3","\x07v\xF3\xF4\x07j\xF4\xF5\x07","k\xF5\xF6\x07u\xF6H","\xF7\xF8\x07&\xF8\xF9\x07k","\xF9\xFA\x07p\xFA\xFB\x07f\xFB","\xFC\x07g\xFC\xFD\x07z\xFDJ","\xFE\xFF\x07&\xFF\u0100\x07","v\u0100\u0101\x07q\u0101\u0102\x07v","\u0102\u0103\x07c\u0103\u0104\x07n","\u0104L\u0105\u0106\x07.\u0106","N\u0107\u0108\x07{\u0108\u0109","\x07g\u0109\u010A\x07c\u010A\u010B\x07","t\u010BP\u010C\u010D\x07o","\u010D\u010E\x07q\u010E\u010F\x07p","\u010F\u0110\x07v\u0110\u0111\x07j\u0111","R\u0112\u0113\x07y\u0113\u0114","\x07g\u0114\u0115\x07g\u0115\u0116\x07","m\u0116T\u0117\u0118\x07f","\u0118\u0119\x07c\u0119\u011A\x07{","\u011AV\u011B\u011C\x07j\u011C","\u011D\x07q\u011D\u011E\x07w\u011E\u011F","\x07t\u011FX\u0120\u0121\x07","o\u0121\u0122\x07k\u0122\u0123\x07p","\u0123\u0124\x07w\u0124\u0125\x07v","\u0125\u0126\x07g\u0126Z\u0127","\u0128\x07u\u0128\u0129\x07g\u0129\u012A","\x07e\u012A\u012B\x07q\u012B\u012C\x07","p\u012C\u012D\x07f\u012D\\","\u012E\u012F\x07o\u012F\u0130\x07k","\u0130\u0131\x07n\u0131\u0132\x07n\u0132","\u0133\x07k\u0133\u0134\x07u\u0134\u0135","\x07g\u0135\u0136\x07e\u0136\u0137\x07","q\u0137\u0138\x07p\u0138\u0139\x07f","\u0139^\u013A\u013B\x07{","\u013B\u013C\x07g\u013C\u013D\x07c\u013D","\u013E\x07t\u013E\u013F\x07u\u013F`","\u0140\u0141\x07o\u0141\u0142\x07","q\u0142\u0143\x07p\u0143\u0144\x07v","\u0144\u0145\x07j\u0145\u0146\x07u","\u0146b\u0147\u0148\x07y\u0148","\u0149\x07g\u0149\u014A\x07g\u014A\u014B","\x07m\u014B\u014C\x07u\u014Cd","\u014D\u014E\x07f\u014E\u014F\x07c","\u014F\u0150\x07{\u0150\u0151\x07u","\u0151f\u0152\u0153\x07j\u0153","\u0154\x07q\u0154\u0155\x07w\u0155\u0156","\x07t\u0156\u0157\x07u\u0157h","\u0158\u0159\x07o\u0159\u015A\x07k","\u015A\u015B\x07p\u015B\u015C\x07w","\u015C\u015D\x07v\u015D\u015E\x07g\u015E","\u015F\x07u\u015Fj\u0160\u0161","\x07u\u0161\u0162\x07g\u0162\u0163\x07","e\u0163\u0164\x07q\u0164\u0165\x07p","\u0165\u0166\x07f\u0166\u0167\x07u","\u0167l\u0168\u0169\x07o\u0169","\u016A\x07k\u016A\u016B\x07n\u016B\u016C","\x07n\u016C\u016D\x07k\u016D\u016E\x07","u\u016E\u016F\x07g\u016F\u0170\x07e","\u0170\u0171\x07q\u0171\u0172\x07p","\u0172\u0173\x07f\u0173\u0174\x07u\u0174","n\u0175\u0176\x07B\u0176\u0177"," \u0177\u0178 \u0178\u0179 ","\u0179\u0186 \u017A\u017B\x07/","\u017B\u017C \u017C\u0184 ","\u017D\u017E\x07/\u017E\u017F \u017F","\u0182 \u0180\u0181\x07V\u0181\u0183","s:\u0182\u0180\u0182\u0183","\u0183\u0185\u0184\u017D","\u0184\u0185\u0185\u0187","\u0186\u017A\u0186\u0187","\u0187\u0189\u0188\u018A\x07","\\\u0189\u0188\u0189\u018A","\u018Ap\u018B\u018C\x07","B\u018C\u018D\x07V\u018D\u018Es:","\u018Er\u018F\u0190 \u0190","\u01A1 \u0191\u0192\x07<\u0192\u0193"," \u0193\u019F \u0194\u0195\x07","<\u0195\u0196 \u0196\u019D ","\u0197\u0199\x070\u0198\u019A ","\u0199\u0198\u019A\u019B","\u019B\u0199\u019B\u019C","\u019C\u019E\u019D\u0197","\u019D\u019E\u019E\u01A0","\u019F\u0194\u019F\u01A0","\u01A0\u01A2\u01A1\u0191","\u01A1\u01A2\u01A2\u01AA","\u01A3\u01AB\x07\\\u01A4\u01A5 \u01A5","\u01A6 \u01A6\u01A7 \u01A7\u01A8","\x07<\u01A8\u01A9 \u01A9\u01AB ","\u01AA\u01A3\u01AA\u01A4","\u01AA\u01AB\u01ABt","\u01AC\u01AE \u01AD\u01AC","\u01AE\u01B2\u01AF\u01B1 ","\u01B0\u01AF\u01B1\u01B4","\u01B2\u01B0\u01B2\u01B3","\u01B3v\u01B4\u01B2","\u01B5\u01BA\x07b\u01B6\u01B9\x83",`B\u01B7\u01B9 -\u01B8\u01B6`,"\u01B8\u01B7\u01B9\u01BC","\u01BA\u01B8\u01BA\u01BB","\u01BB\u01BD\u01BC\u01BA","\u01BD\u01BE\x07b\u01BEx","\u01BF\u01C4\x07)\u01C0\u01C3\x83B\u01C1",`\u01C3 -\x07\u01C2\u01C0\u01C2`,"\u01C1\u01C3\u01C6\u01C4","\u01C2\u01C4\u01C5\u01C5","\u01C7\u01C6\u01C4\u01C7","\u01C8\x07)\u01C8z\u01C9\u01CB"," \u01CA\u01C9\u01CB\u01CC","\u01CC\u01CA\u01CC\u01CD","\u01CD\u01D4\u01CE\u01D0","\x070\u01CF\u01D1 \u01D0\u01CF","\u01D1\u01D2\u01D2\u01D0","\u01D2\u01D3\u01D3\u01D5","\u01D4\u01CE\u01D4\u01D5","\u01D5|\u01D6\u01D8 \b","\u01D7\u01D6\u01D8\u01D9","\u01D9\u01D7\u01D9\u01DA","\u01DA\u01DB\u01DB\u01DC\b?","\u01DC~\u01DD\u01DE\x071\u01DE","\u01DF\x07,\u01DF\u01E3\u01E0","\u01E2\v\u01E1\u01E0\u01E2","\u01E5\u01E3\u01E4\u01E3","\u01E1\u01E4\u01E6\u01E5","\u01E3\u01E6\u01E7\x07,\u01E7","\u01E8\x071\u01E8\u01E9\u01E9","\u01EA\b@\u01EA\x80\u01EB\u01EC","\x071\u01EC\u01ED\x071\u01ED\u01F1",`\u01EE\u01F0 - \u01EF\u01EE`,"\u01F0\u01F3\u01F1\u01EF","\u01F1\u01F2\u01F2\u01F4","\u01F3\u01F1\u01F4\u01F5\bA","\u01F5\x82\u01F6\u01F9\x07^",`\u01F7\u01FA -\u01F8\u01FA\x85C\u01F9`,"\u01F7\u01F9\u01F8\u01FA","\x84\u01FB\u01FC\x07w\u01FC","\u01FD\x87D\u01FD\u01FE\x87D\u01FE\u01FF","\x87D\u01FF\u0200\x87D\u0200\x86","\u0201\u0202 \v\u0202\x88","\u0182\u0184\u0186\u0189\u019B\u019D\u019F","\u01A1\u01AA\u01AD\u01B0\u01B2\u01B8\u01BA\u01C2\u01C4\u01CC\u01D2\u01D4","\u01D9\u01E3\u01F1\u01F9"].join(""),dy=new Rl.atn.ATNDeserializer().deserialize(_z),vz=dy.decisionToState.map((n,t)=>new Rl.dfa.DFA(n,t)),De=class extends Rl.Lexer{static grammarFileName="FHIRPath.g4";static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static modeNames=["DEFAULT_MODE"];static literalNames=[null,"'.'","'['","']'","'+'","'-'","'*'","'/'","'div'","'mod'","'&'","'|'","'<='","'<'","'>'","'>='","'is'","'as'","'='","'~'","'!='","'!~'","'in'","'contains'","'and'","'or'","'xor'","'implies'","'('","')'","'{'","'}'","'true'","'false'","'%'","'$this'","'$index'","'$total'","','","'year'","'month'","'week'","'day'","'hour'","'minute'","'second'","'millisecond'","'years'","'months'","'weeks'","'days'","'hours'","'minutes'","'seconds'","'milliseconds'"];static symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"DATETIME","TIME","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT"];static ruleNames=["T__0","T__1","T__2","T__3","T__4","T__5","T__6","T__7","T__8","T__9","T__10","T__11","T__12","T__13","T__14","T__15","T__16","T__17","T__18","T__19","T__20","T__21","T__22","T__23","T__24","T__25","T__26","T__27","T__28","T__29","T__30","T__31","T__32","T__33","T__34","T__35","T__36","T__37","T__38","T__39","T__40","T__41","T__42","T__43","T__44","T__45","T__46","T__47","T__48","T__49","T__50","T__51","T__52","T__53","DATETIME","TIME","TIMEFORMAT","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT","ESC","UNICODE","HEX"];constructor(t){super(t),this._interp=new Rl.atn.LexerATNSimulator(this,dy,vz,new Rl.PredictionContextCache)}get atn(){return dy}};De.EOF=Rl.Token.EOF;De.T__0=1;De.T__1=2;De.T__2=3;De.T__3=4;De.T__4=5;De.T__5=6;De.T__6=7;De.T__7=8;De.T__8=9;De.T__9=10;De.T__10=11;De.T__11=12;De.T__12=13;De.T__13=14;De.T__14=15;De.T__15=16;De.T__16=17;De.T__17=18;De.T__18=19;De.T__19=20;De.T__20=21;De.T__21=22;De.T__22=23;De.T__23=24;De.T__24=25;De.T__25=26;De.T__26=27;De.T__27=28;De.T__28=29;De.T__29=30;De.T__30=31;De.T__31=32;De.T__32=33;De.T__33=34;De.T__34=35;De.T__35=36;De.T__36=37;De.T__37=38;De.T__38=39;De.T__39=40;De.T__40=41;De.T__41=42;De.T__42=43;De.T__43=44;De.T__44=45;De.T__45=46;De.T__46=47;De.T__47=48;De.T__48=49;De.T__49=50;De.T__50=51;De.T__51=52;De.T__52=53;De.T__53=54;De.DATETIME=55;De.TIME=56;De.IDENTIFIER=57;De.DELIMITEDIDENTIFIER=58;De.STRING=59;De.NUMBER=60;De.WS=61;De.COMMENT=62;De.LINE_COMMENT=63;u2.exports=De});var my=X((_se,h2)=>{var bz=Bu(),hy=class extends bz.tree.ParseTreeListener{enterEntireExpression(t){}exitEntireExpression(t){}enterIndexerExpression(t){}exitIndexerExpression(t){}enterPolarityExpression(t){}exitPolarityExpression(t){}enterAdditiveExpression(t){}exitAdditiveExpression(t){}enterMultiplicativeExpression(t){}exitMultiplicativeExpression(t){}enterUnionExpression(t){}exitUnionExpression(t){}enterOrExpression(t){}exitOrExpression(t){}enterAndExpression(t){}exitAndExpression(t){}enterMembershipExpression(t){}exitMembershipExpression(t){}enterInequalityExpression(t){}exitInequalityExpression(t){}enterInvocationExpression(t){}exitInvocationExpression(t){}enterEqualityExpression(t){}exitEqualityExpression(t){}enterImpliesExpression(t){}exitImpliesExpression(t){}enterTermExpression(t){}exitTermExpression(t){}enterTypeExpression(t){}exitTypeExpression(t){}enterInvocationTerm(t){}exitInvocationTerm(t){}enterLiteralTerm(t){}exitLiteralTerm(t){}enterExternalConstantTerm(t){}exitExternalConstantTerm(t){}enterParenthesizedTerm(t){}exitParenthesizedTerm(t){}enterNullLiteral(t){}exitNullLiteral(t){}enterBooleanLiteral(t){}exitBooleanLiteral(t){}enterStringLiteral(t){}exitStringLiteral(t){}enterNumberLiteral(t){}exitNumberLiteral(t){}enterDateTimeLiteral(t){}exitDateTimeLiteral(t){}enterTimeLiteral(t){}exitTimeLiteral(t){}enterQuantityLiteral(t){}exitQuantityLiteral(t){}enterExternalConstant(t){}exitExternalConstant(t){}enterMemberInvocation(t){}exitMemberInvocation(t){}enterFunctionInvocation(t){}exitFunctionInvocation(t){}enterThisInvocation(t){}exitThisInvocation(t){}enterIndexInvocation(t){}exitIndexInvocation(t){}enterTotalInvocation(t){}exitTotalInvocation(t){}enterFunctn(t){}exitFunctn(t){}enterParamList(t){}exitParamList(t){}enterQuantity(t){}exitQuantity(t){}enterUnit(t){}exitUnit(t){}enterDateTimePrecision(t){}exitDateTimePrecision(t){}enterPluralDateTimePrecision(t){}exitPluralDateTimePrecision(t){}enterTypeSpecifier(t){}exitTypeSpecifier(t){}enterQualifiedIdentifier(t){}exitQualifiedIdentifier(t){}enterIdentifier(t){}exitIdentifier(t){}};h2.exports=hy});var f2=X((vse,m2)=>{var He=Bu(),ye=my(),yz=["\u608B\uA72A\u8133\uB9ED\u417C\u3BE7\u7786","\u5964A\x9C  ","   \x07 \x07",`\b \b  - -\v \v\f \f`,"\r \r   ","",`( -`,"","","","","","\x07",`P -\fS\v`,"\\",` -`,`f -`,`k -\x07\x07`,`\x07\x07\x07\x07r -\x07\b`,`\b\b\bw -\b\b\b   \x07`,` ~ - \f  \x81\v  - - -\x85 - -`,`\v\v\v\v\x8A -\v`,"\f\f\r\r",`\x07\x95 -\f\x98`,"\v",`\b -\f`,"\x07\b\v","\x07\f\f","\x1B",'"#)018',";<\xAD '","[\be",` -g\fqs`,"z\x82","\x89\x8B","\x8D\x8F","\x91\x99",' !!"\x07','"#$\b$(',"%& &(\r'#","'%(Q",")*\f\f*+ +P\r,-\f\v",`-. .P\f/0\f -`,"01\x07\r1P\v23\f ",`34 4P -56\f\x076`,"7 7P\b89\f9:"," \x07:P\x07;<\f","<=\x07=P>?\f","?@ \b@PAB\f","BC\x07CPDE\f","EF\x07FP\f\x07GH\f","HI\x07IJJK\x07","KPLM\f\bMN ","NPO)O,","O/O2O5","O8O;","O>OAOD","OGOLPS","QOQRR","SQT\\\f\x07",`U\\\bV\\ -WX\x07`,"XYYZ\x07Z\\","[T[U","[V[W\\\x07",`]^\x07 ^f\x07!_f -`,"`f\x07=af\x07>bf\x079cf\x07",`:df -e]e_`,"e`ea","ebeced","f gj\x07$hk","ik\x07=jhji","k\vlr","mr\bnr\x07%or\x07&","pr\x07'qlqm","qnqoqp","r\rsttv","\x07uw vu","vwwxxy\x07","yz\x7F","{|\x07(|~}{","~\x81\x7F}","\x7F\x80\x80","\x81\x7F\x82\x84\x07>","\x83\x85\v\x84\x83","\x84\x85\x85","\x86\x8A\f\x87\x8A\r\x88","\x8A\x07=\x89\x86\x89","\x87\x89\x88\x8A","\x8B\x8C \v\x8C","\x8D\x8E \f\x8E","\x8F\x90\x90\x1B","\x91\x96\x92\x93","\x07\x93\x95\x94\x92","\x95\x98\x96\x94","\x96\x97\x97","\x98\x96\x99\x9A"," \r\x9A'OQ[ejqv","\x7F\x84\x89\x96"].join(""),fy=new He.atn.ATNDeserializer().deserialize(yz),Cz=fy.decisionToState.map((n,t)=>new He.dfa.DFA(n,t)),wz=new He.PredictionContextCache,G=class n extends He.Parser{static grammarFileName="FHIRPath.g4";static literalNames=[null,"'.'","'['","']'","'+'","'-'","'*'","'/'","'div'","'mod'","'&'","'|'","'<='","'<'","'>'","'>='","'is'","'as'","'='","'~'","'!='","'!~'","'in'","'contains'","'and'","'or'","'xor'","'implies'","'('","')'","'{'","'}'","'true'","'false'","'%'","'$this'","'$index'","'$total'","','","'year'","'month'","'week'","'day'","'hour'","'minute'","'second'","'millisecond'","'years'","'months'","'weeks'","'days'","'hours'","'minutes'","'seconds'","'milliseconds'"];static symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"DATETIME","TIME","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT"];static ruleNames=["entireExpression","expression","term","literal","externalConstant","invocation","functn","paramList","quantity","unit","dateTimePrecision","pluralDateTimePrecision","typeSpecifier","qualifiedIdentifier","identifier"];constructor(t){super(t),this._interp=new He.atn.ParserATNSimulator(this,fy,Cz,wz),this.ruleNames=n.ruleNames,this.literalNames=n.literalNames,this.symbolicNames=n.symbolicNames}get atn(){return fy}sempred(t,e,i){switch(e){case 1:return this.expression_sempred(t,i);default:throw"No predicate with index:"+e}}expression_sempred(t,e){switch(e){case 0:return this.precpred(this._ctx,10);case 1:return this.precpred(this._ctx,9);case 2:return this.precpred(this._ctx,8);case 3:return this.precpred(this._ctx,7);case 4:return this.precpred(this._ctx,5);case 5:return this.precpred(this._ctx,4);case 6:return this.precpred(this._ctx,3);case 7:return this.precpred(this._ctx,2);case 8:return this.precpred(this._ctx,1);case 9:return this.precpred(this._ctx,13);case 10:return this.precpred(this._ctx,12);case 11:return this.precpred(this._ctx,6);default:throw"No predicate with index:"+e}}entireExpression(){let t=new vf(this,this._ctx,this.state);this.enterRule(t,0,n.RULE_entireExpression);try{this.enterOuterAlt(t,1),this.state=30,this.expression(0),this.state=31,this.match(n.EOF)}catch(e){if(e instanceof He.error.RecognitionException)t.exception=e,this._errHandler.reportError(this,e),this._errHandler.recover(this,e);else throw e}finally{this.exitRule()}return t}expression(t){t===void 0&&(t=0);let e=this._ctx,i=this.state,r=new Ve(this,this._ctx,i),s=r,a=2;this.enterRecursionRule(r,2,n.RULE_expression,t);var o=0;try{switch(this.enterOuterAlt(r,1),this.state=37,this._errHandler.sync(this),this._input.LA(1)){case n.T__15:case n.T__16:case n.T__21:case n.T__22:case n.T__27:case n.T__29:case n.T__31:case n.T__32:case n.T__33:case n.T__34:case n.T__35:case n.T__36:case n.DATETIME:case n.TIME:case n.IDENTIFIER:case n.DELIMITEDIDENTIFIER:case n.STRING:case n.NUMBER:r=new Df(this,r),this._ctx=r,s=r,this.state=34,this.term();break;case n.T__3:case n.T__4:r=new yf(this,r),this._ctx=r,s=r,this.state=35,o=this._input.LA(1),o===n.T__3||o===n.T__4?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this),this.state=36,this.expression(11);break;default:throw new He.error.NoViableAltException(this)}this._ctx.stop=this._input.LT(-1),this.state=79,this._errHandler.sync(this);for(var l=this._interp.adaptivePredict(this._input,2,this._ctx);l!=2&&l!=He.atn.ATN.INVALID_ALT_NUMBER;){if(l===1){this._parseListeners!==null&&this.triggerExitRuleEvent(),s=r,this.state=77,this._errHandler.sync(this);var c=this._interp.adaptivePredict(this._input,1,this._ctx);switch(c){case 1:if(r=new wf(this,new Ve(this,e,i)),this.pushNewRecursionContext(r,a,n.RULE_expression),this.state=39,!this.precpred(this._ctx,10))throw new He.error.FailedPredicateException(this,"this.precpred(this._ctx, 10)");this.state=40,o=this._input.LA(1),!(o&-32)&&1<{var Yf=Bu(),xz=d2(),Sz=f2(),p2=my(),py=class extends Yf.error.ErrorListener{constructor(t){super(),this.errors=t}syntaxError(t,e,i,r,s,a){this.errors.push([t,e,i,r,s,a])}},kz=function(n){var t=new Yf.InputStream(n),e=new xz(t),i=new Yf.CommonTokenStream(e),r=new Sz(i);r.buildParseTrees=!0;var s=[],a=new py(s);e.removeErrorListeners(),e.addErrorListener(a),r.removeErrorListeners(),r.addErrorListener(a);var o=r.entireExpression();class l extends p2{constructor(){super()}}var c={},u,d=[c];for(let f of Object.getOwnPropertyNames(p2.prototype))f.startsWith("enter")?l.prototype[f]=function(g){let v=d[d.length-1];u={type:f.slice(5)},u.text=g.getText(),v.children||(v.children=[]),v.children.push(u),d.push(u),u.terminalNodeText=[];for(let C of g.children)C.symbol&&u.terminalNodeText.push(C.getText())}:f.startsWith("exit")&&(l.prototype[f]=function(){d.pop()});var h=new l;if(Yf.tree.ParseTreeWalker.DEFAULT.walk(h,o),s.length>0){let f=[];for(let g=0,v=s.length;g{var v2=6e4;b2.exports=function(t){var e=new Date(t.getTime()),i=e.getTimezoneOffset();e.setSeconds(0,0);var r=e.getTime()%v2;return i*v2+r}});var w2=X((Cse,C2)=>{function Mz(n){return n instanceof Date}C2.exports=Mz});var Zu=X((wse,S2)=>{var gy=y2(),Tz=w2(),_y=36e5,vy=6e4,Ez=2,Iz=/[T ]/,Az=/:/,Dz=/^(\d{2})$/,Rz=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],Lz=/^(\d{4})/,Oz=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],Nz=/^-(\d{2})$/,Fz=/^-?(\d{3})$/,Pz=/^-?(\d{2})-?(\d{2})$/,Uz=/^-?W(\d{2})$/,$z=/^-?W(\d{2})-?(\d{1})$/,Vz=/^(\d{2}([.,]\d*)?)$/,Bz=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,zz=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,Hz=/([Z+-].*)$/,jz=/^(Z)$/,Wz=/^([+-])(\d{2})$/,qz=/^([+-])(\d{2}):?(\d{2})$/;function Gz(n,t){if(Tz(n))return new Date(n.getTime());if(typeof n!="string")return new Date(n);var e=t||{},i=e.additionalDigits;i==null?i=Ez:i=Number(i);var r=Kz(n),s=Yz(r.date,i),a=s.year,o=s.restDateString,l=Qz(o,a);if(l){var c=l.getTime(),u=0,d;if(r.time&&(u=Zz(r.time)),r.timezone)d=Xz(r.timezone)*vy;else{var h=c+u,m=new Date(h);d=gy(m);var f=new Date(h);f.setDate(m.getDate()+1);var g=gy(f)-gy(m);g>0&&(d+=g)}return new Date(c+u+d)}else return new Date(n)}function Kz(n){var t={},e=n.split(Iz),i;if(Az.test(e[0])?(t.date=null,i=e[0]):(t.date=e[0],i=e[1]),i){var r=Hz.exec(i);r?(t.time=i.replace(r[1],""),t.timezone=r[1]):t.time=i}return t}function Yz(n,t){var e=Rz[t],i=Oz[t],r;if(r=Lz.exec(n)||i.exec(n),r){var s=r[1];return{year:parseInt(s,10),restDateString:n.slice(s.length)}}if(r=Dz.exec(n)||e.exec(n),r){var a=r[1];return{year:parseInt(a,10)*100,restDateString:n.slice(a.length)}}return{year:null}}function Qz(n,t){if(t===null)return null;var e,i,r,s;if(n.length===0)return i=new Date(0),i.setUTCFullYear(t),i;if(e=Nz.exec(n),e)return i=new Date(0),r=parseInt(e[1],10)-1,i.setUTCFullYear(t,r),i;if(e=Fz.exec(n),e){i=new Date(0);var a=parseInt(e[1],10);return i.setUTCFullYear(t,0,a),i}if(e=Pz.exec(n),e){i=new Date(0),r=parseInt(e[1],10)-1;var o=parseInt(e[2],10);return i.setUTCFullYear(t,r,o),i}if(e=Uz.exec(n),e)return s=parseInt(e[1],10)-1,x2(t,s);if(e=$z.exec(n),e){s=parseInt(e[1],10)-1;var l=parseInt(e[2],10)-1;return x2(t,s,l)}return null}function Zz(n){var t,e,i;if(t=Vz.exec(n),t)return e=parseFloat(t[1].replace(",",".")),e%24*_y;if(t=Bz.exec(n),t)return e=parseInt(t[1],10),i=parseFloat(t[2].replace(",",".")),e%24*_y+i*vy;if(t=zz.exec(n),t){e=parseInt(t[1],10),i=parseInt(t[2],10);var r=parseFloat(t[3].replace(",","."));return e%24*_y+i*vy+r*1e3}return null}function Xz(n){var t,e;return t=jz.exec(n),t?0:(t=Wz.exec(n),t?(e=parseInt(t[2],10)*60,t[1]==="+"?-e:e):(t=qz.exec(n),t?(e=parseInt(t[2],10)*60+parseInt(t[3],10),t[1]==="+"?-e:e):0))}function x2(n,t,e){t=t||0,e=e||0;var i=new Date(0);i.setUTCFullYear(n,0,4);var r=i.getUTCDay()||7,s=t*7+e+1-r;return i.setUTCDate(i.getUTCDate()+s),i}S2.exports=Gz});var Xu=X((xse,k2)=>{var Jz=Zu();function e5(n,t){var e=Jz(n).getTime(),i=Number(t);return new Date(e+i)}k2.exports=e5});var by=X((Sse,M2)=>{var t5=Xu(),i5=6e4;function n5(n,t){var e=Number(t);return t5(n,e*i5)}M2.exports=n5});var ha=X(Qf=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});Qf.Ucum=void 0;var r5={dimLen_:7,validOps_:[".","/"],codeSep_:": ",valMsgStart_:"Did you mean ",valMsgEnd_:"?",cnvMsgStart_:"We assumed you meant ",cnvMsgEnd_:".",openEmph_:" ->",closeEmph_:"<- ",openEmphHTML_:' ',closeEmphHTML_:" ",bracesMsg_:"FYI - annotations (text in curly braces {}) are ignored, except that an annotation without a leading symbol implies the default unit 1 (the unity).",needMoleWeightMsg_:"Did you wish to convert between mass and moles? The molecular weight of the substance represented by the units is required to perform the conversion.",csvCols_:{"case-sensitive code":"csCode_","LOINC property":"loincProperty_","name (display)":"name_",synonyms:"synonyms_",source:"source_",category:"category_",Guidance:"guidance_"},inputKey_:"case-sensitive code",specUnits_:{"B[10.nV]":"specialUnitOne","[m/s2/Hz^(1/2)]":"specialUnitTwo"}};Qf.Ucum=r5});var T2=X(Zf=>{"use strict";Object.defineProperty(Zf,"__esModule",{value:!0});Zf.Prefix=void 0;var Mse=ha(),yy=class{constructor(t){if(t.code_===void 0||t.code_===null||t.name_===void 0||t.name_===null||t.value_===void 0||t.value_===null||t.exp_===void 0)throw new Error("Prefix constructor called missing one or more parameters. Prefix codes (cs or ci), name, value and exponent must all be specified and all but the exponent must not be null.");this.code_=t.code_,this.ciCode_=t.ciCode_,this.name_=t.name_,this.printSymbol_=t.printSymbol_,typeof t.value_=="string"?this.value_=parseFloat(t.value_):this.value_=t.value_,this.exp_=t.exp_}getValue(){return this.value_}getCode(){return this.code_}getCiCode(){return this.ciCode_}getName(){return this.name_}getPrintSymbol(){return this.printSymbol_}getExp(){return this.exp_}equals(t){return this.code_===t.code_&&this.ciCode_===t.ciCode_&&this.name_===t.name_&&this.printSymbol_===t.printSymbol_&&this.value_===t.value_&&this.exp_===t.exp_}};Zf.Prefix=yy});var Cy=X(Ll=>{"use strict";Object.defineProperty(Ll,"__esModule",{value:!0});Ll.PrefixTables=Ll.PrefixTablesFactory=void 0;var Xf=class{constructor(){this.byCode_={},this.byValue_={}}prefixCount(){return Object.keys(this.byCode_).length}allPrefixesByValue(){let t="",e=Object.keys(this.byValue_),i=e.length;for(let r=0;r{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});Jf.default=void 0;var wy=class{constructor(){this.funcs={},this.funcs.cel={cnvTo:function(t){return t-273.15},cnvFrom:function(t){return t+273.15}},this.funcs.degf={cnvTo:function(t){return t-459.67},cnvFrom:function(t){return t+459.67}},this.funcs.degre={cnvTo:function(t){return t-273.15},cnvFrom:function(t){return t+273.15}},this.funcs.ph={cnvTo:function(t){return-Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,-t)}},this.funcs.ln={cnvTo:function(t){return Math.log(t)},cnvFrom:function(t){return Math.exp(t)}},this.funcs["2ln"]={cnvTo:function(t){return 2*Math.log(t)},cnvFrom:function(t){return Math.exp(t/2)}},this.funcs.lg={cnvTo:function(t){return Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t)}},this.funcs["10lg"]={cnvTo:function(t){return 10*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/10)}},this.funcs["20lg"]={cnvTo:function(t){return 20*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/20)}},this.funcs["2lg"]={cnvTo:function(t){return 2*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/2)}},this.funcs.lgtimes2=this.funcs["2lg"],this.funcs.ld={cnvTo:function(t){return Math.log(t)/Math.LN2},cnvFrom:function(t){return Math.pow(2,t)}},this.funcs["100tan"]={cnvTo:function(t){return Math.tan(t)*100},cnvFrom:function(t){return Math.atan(t/100)}},this.funcs.tanTimes100=this.funcs["100tan"],this.funcs.sqrt={cnvTo:function(t){return Math.sqrt(t)},cnvFrom:function(t){return t*t}},this.funcs.inv={cnvTo:function(t){return 1/t},cnvFrom:function(t){return 1/t}},this.funcs.hpX={cnvTo:function(t){return-this.funcs.lg(t)},cnvFrom:function(t){return Math.pow(10,-t)}},this.funcs.hpC={cnvTo:function(t){return-this.func.ln(t)/this.funcs.ln(100)},cnvFrom:function(t){return Math.pow(100,-t)}},this.funcs.hpM={cnvTo:function(t){return-this.funcs.ln(t)/this.funcs.ln(1e3)},cnvFrom:function(t){return Math.pow(1e3,-t)}},this.funcs.hpQ={cnvTo:function(t){return-this.funcs.ln(t)/this.funcs.ln(5e4)},cnvFrom:function(t){return Math.pow(5e4,-t)}}}forName(t){t=t.toLowerCase();let e=this.funcs[t];if(e===null)throw new Error(`Requested function ${t} is not defined`);return e}isDefined(t){return t=t.toLowerCase(),this.funcs[t]!==null}},o5=new wy;Jf.default=o5});var co=X(tp=>{"use strict";Object.defineProperty(tp,"__esModule",{value:!0});tp.UnitTables=void 0;var ep=ha().Ucum,xy=class{constructor(){this.unitNames_={},this.unitCodes_={},this.codeOrder_=[],this.unitStrings_={},this.unitDimensions_={},this.unitSynonyms_={},this.massDimIndex_=0,this.dimVecIndexToBaseUnit_={}}unitsCount(){return Object.keys(this.unitCodes_).length}addUnit(t){t.name_&&this.addUnitName(t),this.addUnitCode(t),this.addUnitString(t);try{t.dim_.getProperty("dimVec_")&&this.addUnitDimension(t)}catch{}if(t.isBase_){let i=t.dim_.dimVec_,r;for(let s=0,a=i.length;r==null&&s=1&&(i=t.substr(e+ep.codeSep_.length),t=t.substr(0,e));let r=this.unitNames_[t];if(r){let s=r.length;if(i&&s>1){let a=0;for(;r[a].csCode_!==i&&a0&&(i+=e),t[d]==="dim_")u.dim_!==null&&u.dim_!==void 0&&u.dim_.dimVec_ instanceof Array?i+="["+u.dim_.dimVec_.join(",")+"]":i+="";else{let h=u[t[d]];typeof h=="string"?i+=h.replace(/[\n\r]/g," "):i+=h}i+=`\r -`}}return i}printUnits(t,e){t===void 0&&(t=!1),e===void 0&&(e="|");let i="",r=this.codeOrder_.length,s="csCode"+e;t&&(s+="ciCode"+e),s+="name"+e,t&&(s+="isBase"+e),s+="magnitude"+e+"dimension"+e+"from unit(s)"+e+"value"+e+"function"+e,t&&(s+="property"+e+"printSymbol"+e+"synonyms"+e+"source"+e+"class"+e+"isMetric"+e+"variable"+e+"isSpecial"+e+"isAbitrary"+e),s+="comment",i=s+` -`;for(let a=0;a{"use strict";Object.defineProperty(Ju,"__esModule",{value:!0});Ju.isNumericString=d5;Ju.isIntegerUnit=h5;Ju.getSynonyms=m5;var u5=co().UnitTables;function d5(n){let t=""+n;return!isNaN(t)&&!isNaN(parseFloat(t))}function h5(n){return/^\d+$/.test(n)}function m5(n){let t={},e=u5.getInstance(),i={};if(i=e.getUnitBySynonym(n),!i.units)t.status=i.status,t.msg=i.msg;else{t.status="succeeded";let r=i.units.length;t.units=[];for(let s=0;s{"use strict";I2.exports=Number.isFinite||function(n){return!(typeof n!="number"||n!==n||n===1/0||n===-1/0)}});var Sy=X((Lse,D2)=>{var f5=A2();D2.exports=Number.isInteger||function(n){return typeof n=="number"&&f5(n)&&Math.floor(n)===n}});var R2=X(rp=>{"use strict";Object.defineProperty(rp,"__esModule",{value:!0});rp.Dimension=void 0;var on=ha(),np=Sy(),ky=class n{constructor(t){if(on.Ucum.dimLen_===0)throw new Error("Dimension.setDimensionLen must be called before Dimension constructor");if(t==null)this.assignZero();else if(t instanceof Array){if(t.length!==on.Ucum.dimLen_)throw new Error(`Parameter error, incorrect length of vector passed to Dimension constructor, vector = ${JSON.stringify(t)}`);this.dimVec_=[];for(let e=0;e=on.Ucum.dimLen_)throw new Error("Parameter error, invalid element number specified for Dimension constructor");this.assignZero(),this.dimVec_[t]=1}}setElementAt(t,e){if(!np(t)||t<0||t>=on.Ucum.dimLen_)throw new Error(`Dimension.setElementAt called with an invalid index position (${t})`);this.dimVec_||this.assignZero(),e==null&&(e=1),this.dimVec_[t]=e}getElementAt(t){if(!np(t)||t<0||t>=on.Ucum.dimLen_)throw new Error(`Dimension.getElementAt called with an invalid index position (${t})`);let e=null;return this.dimVec_&&(e=this.dimVec_[t]),e}getProperty(t){let e=t.charAt(t.length-1)==="_"?t:t+"_";return this[e]}toString(){let t=null;return this.dimVec_&&(t="["+this.dimVec_.join(", ")+"]"),t}add(t){if(!t instanceof n)throw new Error(`Dimension.add called with an invalid parameter - ${typeof t} instead of a Dimension object`);if(this.dimVec_&&t.dimVec_)for(let e=0;e{"use strict";Object.defineProperty(sp,"__esModule",{value:!0});sp.Unit=void 0;var L2=_5(E2()),p5=g5(ip());function O2(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return O2=function(){return n},n}function g5(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=O2();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}function _5(n){return n&&n.__esModule?n:{default:n}}var v5=ha().Ucum,xs=R2().Dimension,My,Ty=Sy(),Ey=class n{constructor(t={}){this.isBase_=t.isBase_||!1,this.name_=t.name_||"",this.csCode_=t.csCode_||"",this.ciCode_=t.ciCode_||"",this.property_=t.property_||"",this.magnitude_=t.magnitude_||1,t.dim_===void 0||t.dim_===null?this.dim_=new xs:t.dim_.dimVec_!==void 0?this.dim_=new xs(t.dim_.dimVec_):t.dim_ instanceof xs?this.dim_=t.dim_:t.dim_ instanceof Array||Ty(t.dim_)?this.dim_=new xs(t.dim_):this.dim_=new xs,this.printSymbol_=t.printSymbol_||null,this.class_=t.class_||null,this.isMetric_=t.isMetric_||!1,this.variable_=t.variable_||null,this.cnv_=t.cnv_||null,this.cnvPfx_=t.cnvPfx_||1,this.isSpecial_=t.isSpecial_||!1,this.isArbitrary_=t.isArbitrary_||!1,this.moleExp_=t.moleExp_||0,this.synonyms_=t.synonyms_||null,this.source_=t.source_||null,this.loincProperty_=t.loincProperty_||null,this.category_=t.category_||null,this.guidance_=t.guidance_||null,this.csUnitString_=t.csUnitString_||null,this.ciUnitString_=t.ciUnitString_||null,this.baseFactorStr_=t.baseFactorStr_||null,this.baseFactor_=t.baseFactor_||null,this.defError_=t.defError_||!1}assignUnity(){return this.name_="",this.magnitude_=1,this.dim_||(this.dim_=new xs),this.dim_.assignZero(),this.cnv_=null,this.cnvPfx_=1,this}assignVals(t){for(let e in t){let i=!e.charAt(e.length-1)==="_"?e+"_":e;if(this.hasOwnProperty(i))this[i]=t[e];else throw new Error(`Parameter error; ${e} is not a property of a Unit`)}}clone(){let t=new n;return Object.getOwnPropertyNames(this).forEach(e=>{e==="dim_"?this.dim_?t.dim_=this.dim_.clone():t.dim_=null:t[e]=this[e]}),t}assign(t){Object.getOwnPropertyNames(t).forEach(e=>{e==="dim_"?t.dim_?this.dim_=t.dim_.clone():this.dim_=null:this[e]=t[e]})}equals(t){return this.magnitude_===t.magnitude_&&this.cnv_===t.cnv_&&this.cnvPfx_===t.cnvPfx_&&(this.dim_===null&&t.dim_===null||this.dim_.equals(t.dim_))}fullEquals(t){let e=Object.keys(this).sort(),i=Object.keys(t).sort(),r=e.length,s=r===i.length;for(let a=0;a0){let e=t.replace("/","!").replace(".","/").replace("=0;c--){let u=parseInt(a[c]);if(!Ty(u)){if((a[c]==="-"||a[c]==="+")&&c--,c{"use strict";Object.defineProperty(ap,"__esModule",{value:!0});ap.packArray=x5;ap.unpackArray=S5;var b5=Array.prototype.push;function y5(n){return Object.prototype.toString.call(n)==="[object Object]"}function Ay(n){return Object.keys(n).reduce((t,e)=>(y5(n[e])?b5.apply(t,Ay(n[e]).map(i=>[e,...[].concat(i)])):t.push(e),t),[])}function Dy(n){return n.map(t=>Array.isArray(t)?t:[t])}function C5(n,t){if(n.join()!==Dy(Ay(t)).join())throw new Error("Object of unusual structure");return n.map(e=>{let i=t;return e.forEach(r=>{if(i=i[r],i===void 0)throw new Error("Object of unusual structure")}),i})}function w5(n,t){let e={};return n.forEach((i,r)=>{let s=e;for(let a=0;a{k5.exports={license:"The following data (prefixes and units) was generated by the UCUM LHC code from the UCUM data and selected LOINC combinations of UCUM units. The license for the UCUM LHC code (demo and library code as well as the combined units) is located at https://github.com/lhncbc/ucum-lhc/blob/LICENSE.md.",prefixes:{config:["code_","ciCode_","name_","printSymbol_","value_","exp_"],data:[["E","EX","exa","E",1e18,"18"],["G","GA","giga","G",1e9,"9"],["Gi","GIB","gibi","Gi",1073741824,null],["Ki","KIB","kibi","Ki",1024,null],["M","MA","mega","M",1e6,"6"],["Mi","MIB","mebi","Mi",1048576,null],["P","PT","peta","P",1e15,"15"],["T","TR","tera","T",1e12,"12"],["Ti","TIB","tebi","Ti",1099511627776,null],["Y","YA","yotta","Y",1e24,"24"],["Z","ZA","zetta","Z",1e21,"21"],["a","A","atto","a",1e-18,"-18"],["c","C","centi","c",.01,"-2"],["d","D","deci","d",.1,"-1"],["da","DA","deka","da",10,"1"],["f","F","femto","f",1e-15,"-15"],["h","H","hecto","h",100,"2"],["k","K","kilo","k",1e3,"3"],["m","M","milli","m",.001,"-3"],["n","N","nano","n",1e-9,"-9"],["p","P","pico","p",1e-12,"-12"],["u","U","micro","\u03BC",1e-6,"-6"],["y","YO","yocto","y",1e-24,"-24"],["z","ZO","zepto","z",1e-21,"-21"]]},units:{config:["isBase_","name_","csCode_","ciCode_","property_","magnitude_",["dim_","dimVec_"],"printSymbol_","class_","isMetric_","variable_","cnv_","cnvPfx_","isSpecial_","isArbitrary_","moleExp_","synonyms_","source_","loincProperty_","category_","guidance_","csUnitString_","ciUnitString_","baseFactorStr_","baseFactor_","defError_"],data:[[!0,"meter","m","M","length",1,[1,0,0,0,0,0,0],"m",null,!1,"L",null,1,!1,!1,0,"meters; metres; distance","UCUM","Len","Clinical","unit of length = 1.09361 yards",null,null,null,null,!1],[!0,"second - time","s","S","time",1,[0,1,0,0,0,0,0],"s",null,!1,"T",null,1,!1,!1,0,"seconds","UCUM","Time","Clinical","",null,null,null,null,!1],[!0,"gram","g","G","mass",1,[0,0,1,0,0,0,0],"g",null,!1,"M",null,1,!1,!1,0,"grams; gm","UCUM","Mass","Clinical","",null,null,null,null,!1],[!0,"radian","rad","RAD","plane angle",1,[0,0,0,1,0,0,0],"rad",null,!1,"A",null,1,!1,!1,0,"radians","UCUM","Angle","Clinical","unit of angular measure where 1 radian = 1/2\u03C0 turn = 57.296 degrees. ",null,null,null,null,!1],[!0,"degree Kelvin","K","K","temperature",1,[0,0,0,0,1,0,0],"K",null,!1,"C",null,1,!1,!1,0,"Kelvin; degrees","UCUM","Temp","Clinical","absolute, thermodynamic temperature scale ",null,null,null,null,!1],[!0,"coulomb","C","C","electric charge",1,[0,0,0,0,0,1,0],"C",null,!1,"Q",null,1,!1,!1,0,"coulombs","UCUM","","Clinical","defined as amount of 1 electron charge = 6.2415093\xD710^18 e, and equivalent to 1 Ampere-second",null,null,null,null,!1],[!0,"candela","cd","CD","luminous intensity",1,[0,0,0,0,0,0,1],"cd",null,!1,"F",null,1,!1,!1,0,"candelas","UCUM","","Clinical","SI base unit of luminous intensity",null,null,null,null,!1],[!1,"the number ten for arbitrary powers","10*","10*","number",10,[0,0,0,0,0,0,0],"10","dimless",!1,null,null,1,!1,!1,0,"10^; 10 to the arbitrary powers","UCUM","Num","Clinical","10* by itself is the same as 10, but users can add digits after the *. For example, 10*3 = 1000.","1","1","10",10,!1],[!1,"the number ten for arbitrary powers","10^","10^","number",10,[0,0,0,0,0,0,0],"10","dimless",!1,null,null,1,!1,!1,0,"10*; 10 to the arbitrary power","UCUM","Num","Clinical","10* by itself is the same as 10, but users can add digits after the *. For example, 10*3 = 1000.","1","1","10",10,!1],[!1,"the number pi","[pi]","[PI]","number",3.141592653589793,[0,0,0,0,0,0,0],"\u03C0","dimless",!1,null,null,1,!1,!1,0,"\u03C0","UCUM","","Constant","a mathematical constant; the ratio of a circle's circumference to its diameter \u2248 3.14159","1","1","3.1415926535897932384626433832795028841971693993751058209749445923",3.141592653589793,!1],[!1,"","%","%","fraction",.01,[0,0,0,0,0,0,0],"%","dimless",!1,null,null,1,!1,!1,0,"percents","UCUM","FR; NFR; MFR; CFR; SFR Rto; etc. ","Clinical","","10*-2","10*-2","1",1,!1],[!1,"parts per thousand","[ppth]","[PPTH]","fraction",.001,[0,0,0,0,0,0,0],"ppth","dimless",!1,null,null,1,!1,!1,0,"ppth; 10^-3","UCUM","MCnc; MCnt","Clinical",`[ppth] is often used in solution concentrations as 1 g/L or 1 g/kg. - -Can be ambigous and would be better if the metric units was used directly. `,"10*-3","10*-3","1",1,!1],[!1,"parts per million","[ppm]","[PPM]","fraction",1e-6,[0,0,0,0,0,0,0],"ppm","dimless",!1,null,null,1,!1,!1,0,"ppm; 10^-6","UCUM","MCnt; MCnc; SFr","Clinical",`[ppm] is often used in solution concentrations as 1 mg/L or 1 mg/kg. Also used to express mole fractions as 1 mmol/mol. - -[ppm] is also used in nuclear magnetic resonance (NMR) to represent chemical shift - the difference of a measured frequency in parts per million from the reference frequency. - -Can be ambigous and would be better if the metric units was used directly. `,"10*-6","10*-6","1",1,!1],[!1,"parts per billion","[ppb]","[PPB]","fraction",1e-9,[0,0,0,0,0,0,0],"ppb","dimless",!1,null,null,1,!1,!1,0,"ppb; 10^-9","UCUM","MCnt; MCnc; SFr","Clinical",`[ppb] is often used in solution concentrations as 1 ug/L or 1 ug/kg. Also used to express mole fractions as 1 umol/mol. - -Can be ambigous and would be better if the metric units was used directly. `,"10*-9","10*-9","1",1,!1],[!1,"parts per trillion","[pptr]","[PPTR]","fraction",1e-12,[0,0,0,0,0,0,0],"pptr","dimless",!1,null,null,1,!1,!1,0,"pptr; 10^-12","UCUM","MCnt; MCnc; SFr","Clinical",`[pptr] is often used in solution concentrations as 1 ng/L or 1 ng/kg. Also used to express mole fractions as 1 nmol/mol. - -Can be ambigous and would be better if the metric units was used directly. `,"10*-12","10*-12","1",1,!1],[!1,"mole","mol","MOL","amount of substance",60221367e16,[0,0,0,0,0,0,0],"mol","si",!0,null,null,1,!1,!1,1,"moles","UCUM","Sub","Clinical","Measure the number of molecules ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"steradian - solid angle","sr","SR","solid angle",1,[0,0,0,2,0,0,0],"sr","si",!0,null,null,1,!1,!1,0,"square radian; rad2; rad^2","UCUM","Angle","Clinical","unit of solid angle in three-dimensional geometry analagous to radian; used in photometry which measures the perceived brightness of object by human eye (e.g. radiant intensity = watt/steradian)","rad2","RAD2","1",1,!1],[!1,"hertz","Hz","HZ","frequency",1,[0,-1,0,0,0,0,0],"Hz","si",!0,null,null,1,!1,!1,0,"Herz; frequency; frequencies","UCUM","Freq; Num","Clinical","equal to one cycle per second","s-1","S-1","1",1,!1],[!1,"newton","N","N","force",1e3,[1,-2,1,0,0,0,0],"N","si",!0,null,null,1,!1,!1,0,"Newtons","UCUM","Force","Clinical","unit of force with base units kg.m/s2","kg.m/s2","KG.M/S2","1",1,!1],[!1,"pascal","Pa","PAL","pressure",1e3,[-1,-2,1,0,0,0,0],"Pa","si",!0,null,null,1,!1,!1,0,"pascals","UCUM","Pres","Clinical","standard unit of pressure equal to 1 newton per square meter (N/m2)","N/m2","N/M2","1",1,!1],[!1,"joule","J","J","energy",1e3,[2,-2,1,0,0,0,0],"J","si",!0,null,null,1,!1,!1,0,"joules","UCUM","Enrg","Clinical","unit of energy defined as the work required to move an object 1 m with a force of 1 N (N.m) or an electric charge of 1 C through 1 V (C.V), or to produce 1 W for 1 s (W.s) ","N.m","N.M","1",1,!1],[!1,"watt","W","W","power",1e3,[2,-3,1,0,0,0,0],"W","si",!0,null,null,1,!1,!1,0,"watts","UCUM","EngRat","Clinical","unit of power equal to 1 Joule per second (J/s) = kg\u22C5m2\u22C5s\u22123","J/s","J/S","1",1,!1],[!1,"Ampere","A","A","electric current",1,[0,-1,0,0,0,1,0],"A","si",!0,null,null,1,!1,!1,0,"Amperes","UCUM","ElpotRat","Clinical","unit of electric current equal to flow rate of electrons equal to 6.2415\xD710^18 elementary charges moving past a boundary in one second or 1 Coulomb/second","C/s","C/S","1",1,!1],[!1,"volt","V","V","electric potential",1e3,[2,-2,1,0,0,-1,0],"V","si",!0,null,null,1,!1,!1,0,"volts","UCUM","Elpot","Clinical","unit of electric potential (voltage) = 1 Joule per Coulomb (J/C)","J/C","J/C","1",1,!1],[!1,"farad","F","F","electric capacitance",.001,[-2,2,-1,0,0,2,0],"F","si",!0,null,null,1,!1,!1,0,"farads; electric capacitance","UCUM","","Clinical","CGS unit of electric capacitance with base units C/V (Coulomb per Volt)","C/V","C/V","1",1,!1],[!1,"ohm","Ohm","OHM","electric resistance",1e3,[2,-1,1,0,0,-2,0],"\u03A9","si",!0,null,null,1,!1,!1,0,"\u03A9; resistance; ohms","UCUM","","Clinical","unit of electrical resistance with units of Volt per Ampere","V/A","V/A","1",1,!1],[!1,"siemens","S","SIE","electric conductance",.001,[-2,1,-1,0,0,2,0],"S","si",!0,null,null,1,!1,!1,0,"Reciprocal ohm; mho; \u03A9\u22121; conductance","UCUM","","Clinical","unit of electric conductance (the inverse of electrical resistance) equal to ohm^-1","Ohm-1","OHM-1","1",1,!1],[!1,"weber","Wb","WB","magnetic flux",1e3,[2,-1,1,0,0,-1,0],"Wb","si",!0,null,null,1,!1,!1,0,"magnetic flux; webers","UCUM","","Clinical","unit of magnetic flux equal to Volt second","V.s","V.S","1",1,!1],[!1,"degree Celsius","Cel","CEL","temperature",1,[0,0,0,0,1,0,0],"\xB0C","si",!0,null,"Cel",1,!0,!1,0,"\xB0C; degrees","UCUM","Temp","Clinical","","K",null,null,1,!1],[!1,"tesla","T","T","magnetic flux density",1e3,[0,-1,1,0,0,-1,0],"T","si",!0,null,null,1,!1,!1,0,"Teslas; magnetic field","UCUM","","Clinical","SI unit of magnetic field strength for magnetic field B equal to 1 Weber/square meter = 1 kg/(s2*A)","Wb/m2","WB/M2","1",1,!1],[!1,"henry","H","H","inductance",1e3,[2,0,1,0,0,-2,0],"H","si",!0,null,null,1,!1,!1,0,"henries; inductance","UCUM","","Clinical","unit of electrical inductance; usually expressed in millihenrys (mH) or microhenrys (uH).","Wb/A","WB/A","1",1,!1],[!1,"lumen","lm","LM","luminous flux",1,[0,0,0,2,0,0,1],"lm","si",!0,null,null,1,!1,!1,0,"luminous flux; lumens","UCUM","","Clinical","unit of luminous flux defined as 1 lm = 1 cd\u22C5sr (candela times sphere)","cd.sr","CD.SR","1",1,!1],[!1,"lux","lx","LX","illuminance",1,[-2,0,0,2,0,0,1],"lx","si",!0,null,null,1,!1,!1,0,"illuminance; luxes","UCUM","","Clinical","unit of illuminance equal to one lumen per square meter. ","lm/m2","LM/M2","1",1,!1],[!1,"becquerel","Bq","BQ","radioactivity",1,[0,-1,0,0,0,0,0],"Bq","si",!0,null,null,1,!1,!1,0,"activity; radiation; becquerels","UCUM","","Clinical","measure of the atomic radiation rate with units s^-1","s-1","S-1","1",1,!1],[!1,"gray","Gy","GY","energy dose",1,[2,-2,0,0,0,0,0],"Gy","si",!0,null,null,1,!1,!1,0,"absorbed doses; ionizing radiation doses; kerma; grays","UCUM","EngCnt","Clinical","unit of ionizing radiation dose with base units of 1 joule of radiation energy per kilogram of matter","J/kg","J/KG","1",1,!1],[!1,"sievert","Sv","SV","dose equivalent",1,[2,-2,0,0,0,0,0],"Sv","si",!0,null,null,1,!1,!1,0,"sieverts; radiation dose quantities; equivalent doses; effective dose; operational dose; committed dose","UCUM","","Clinical","SI unit for radiation dose equivalent equal to 1 Joule/kilogram.","J/kg","J/KG","1",1,!1],[!1,"degree - plane angle","deg","DEG","plane angle",.017453292519943295,[0,0,0,1,0,0,0],"\xB0","iso1000",!1,null,null,1,!1,!1,0,"\xB0; degree of arc; arc degree; arcdegree; angle","UCUM","Angle","Clinical","one degree is equivalent to \u03C0/180 radians.","[pi].rad/360","[PI].RAD/360","2",2,!1],[!1,"gon","gon","GON","plane angle",.015707963267948967,[0,0,0,1,0,0,0],"\u25A1g","iso1000",!1,null,null,1,!1,!1,0,"gon (grade); gons","UCUM","Angle","Nonclinical","unit of plane angle measurement equal to 1/400 circle","deg","DEG","0.9",.9,!1],[!1,"arc minute","'","'","plane angle",.0002908882086657216,[0,0,0,1,0,0,0],"'","iso1000",!1,null,null,1,!1,!1,0,"arcminutes; arcmin; arc minutes; arc mins","UCUM","Angle","Clinical","equal to 1/60 degree; used in optometry and opthamology (e.g. visual acuity tests)","deg/60","DEG/60","1",1,!1],[!1,"arc second","''","''","plane angle",484813681109536e-20,[0,0,0,1,0,0,0],"''","iso1000",!1,null,null,1,!1,!1,0,"arcseconds; arcsecs","UCUM","Angle","Clinical","equal to 1/60 arcminute = 1/3600 degree; used in optometry and opthamology (e.g. visual acuity tests)","'/60","'/60","1",1,!1],[!1,"Liters","l","L","volume",.001,[3,0,0,0,0,0,0],"l","iso1000",!0,null,null,1,!1,!1,0,"cubic decimeters; decimeters cubed; decimetres; dm3; dm^3; litres; liters, LT ","UCUM","Vol","Clinical",'Because lower case "l" can be read as the number "1", though this is a valid UCUM units. UCUM strongly reccomends using "L"',"dm3","DM3","1",1,!1],[!1,"Liters","L","L","volume",.001,[3,0,0,0,0,0,0],"L","iso1000",!0,null,null,1,!1,!1,0,"cubic decimeters; decimeters cubed; decimetres; dm3; dm^3; litres; liters, LT ","UCUM","Vol","Clinical",'Because lower case "l" can be read as the number "1", though this is a valid UCUM units. UCUM strongly reccomends using "L"',"l",null,"1",1,!1],[!1,"are","ar","AR","area",100,[2,0,0,0,0,0,0],"a","iso1000",!0,null,null,1,!1,!1,0,"100 m2; 100 m^2; 100 square meter; meters squared; metres","UCUM","Area","Clinical","metric base unit for area defined as 100 m^2","m2","M2","100",100,!1],[!1,"minute","min","MIN","time",60,[0,1,0,0,0,0,0],"min","iso1000",!1,null,null,1,!1,!1,0,"minutes","UCUM","Time","Clinical","","s","S","60",60,!1],[!1,"hour","h","HR","time",3600,[0,1,0,0,0,0,0],"h","iso1000",!1,null,null,1,!1,!1,0,"hours; hrs; age","UCUM","Time","Clinical","","min","MIN","60",60,!1],[!1,"day","d","D","time",86400,[0,1,0,0,0,0,0],"d","iso1000",!1,null,null,1,!1,!1,0,"days; age; dy; 24 hours; 24 hrs","UCUM","Time","Clinical","","h","HR","24",24,!1],[!1,"tropical year","a_t","ANN_T","time",31556925216e-3,[0,1,0,0,0,0,0],"at","iso1000",!1,null,null,1,!1,!1,0,"solar years; a tropical; years","UCUM","Time","Clinical","has an average of 365.242181 days but is constantly changing.","d","D","365.24219",365.24219,!1],[!1,"mean Julian year","a_j","ANN_J","time",31557600,[0,1,0,0,0,0,0],"aj","iso1000",!1,null,null,1,!1,!1,0,"mean Julian yr; a julian; years","UCUM","Time","Clinical","has an average of 365.25 days, and in everyday use, has been replaced by the Gregorian year. However, this unit is used in astronomy to calculate light year. ","d","D","365.25",365.25,!1],[!1,"mean Gregorian year","a_g","ANN_G","time",31556952,[0,1,0,0,0,0,0],"ag","iso1000",!1,null,null,1,!1,!1,0,"mean Gregorian yr; a gregorian; years","UCUM","Time","Clinical","has an average of 365.2425 days and is the most internationally used civil calendar.","d","D","365.2425",365.2425,!1],[!1,"year","a","ANN","time",31557600,[0,1,0,0,0,0,0],"a","iso1000",!1,null,null,1,!1,!1,0,"years; a; yr, yrs; annum","UCUM","Time","Clinical","","a_j","ANN_J","1",1,!1],[!1,"week","wk","WK","time",604800,[0,1,0,0,0,0,0],"wk","iso1000",!1,null,null,1,!1,!1,0,"weeks; wks","UCUM","Time","Clinical","","d","D","7",7,!1],[!1,"synodal month","mo_s","MO_S","time",2551442976e-3,[0,1,0,0,0,0,0],"mos","iso1000",!1,null,null,1,!1,!1,0,"Moon; synodic month; lunar month; mo-s; mo s; months; moons","UCUM","Time","Nonclinical","has an average of 29.53 days per month, unit used in astronomy","d","D","29.53059",29.53059,!1],[!1,"mean Julian month","mo_j","MO_J","time",2629800,[0,1,0,0,0,0,0],"moj","iso1000",!1,null,null,1,!1,!1,0,"mo-julian; mo Julian; months","UCUM","Time","Clinical","has an average of 30.435 days per month","a_j/12","ANN_J/12","1",1,!1],[!1,"mean Gregorian month","mo_g","MO_G","time",2629746,[0,1,0,0,0,0,0],"mog","iso1000",!1,null,null,1,!1,!1,0,"months; month-gregorian; mo-gregorian","UCUM","Time","Clinical","has an average 30.436875 days per month and is from the most internationally used civil calendar.","a_g/12","ANN_G/12","1",1,!1],[!1,"month","mo","MO","time",2629800,[0,1,0,0,0,0,0],"mo","iso1000",!1,null,null,1,!1,!1,0,"months; duration","UCUM","Time","Clinical","based on Julian calendar which has an average of 30.435 days per month (this unit is used in astronomy but not in everyday life - see mo_g)","mo_j","MO_J","1",1,!1],[!1,"metric ton","t","TNE","mass",1e6,[0,0,1,0,0,0,0],"t","iso1000",!0,null,null,1,!1,!1,0,"tonnes; megagrams; tons","UCUM","Mass","Nonclinical","equal to 1000 kg used in the US (recognized by NIST as metric ton), and internationally (recognized as tonne)","kg","KG","1e3",1e3,!1],[!1,"bar","bar","BAR","pressure",1e8,[-1,-2,1,0,0,0,0],"bar","iso1000",!0,null,null,1,!1,!1,0,"bars","UCUM","Pres","Nonclinical","unit of pressure equal to 10^5 Pascals, primarily used by meteorologists and in weather forecasting","Pa","PAL","1e5",1e5,!1],[!1,"unified atomic mass unit","u","AMU","mass",16605402e-31,[0,0,1,0,0,0,0],"u","iso1000",!0,null,null,1,!1,!1,0,"unified atomic mass units; amu; Dalton; Da","UCUM","Mass","Clinical","the mass of 1/12 of an unbound Carbon-12 atom nuclide equal to 1.6606x10^-27 kg ","g","G","1.6605402e-24",16605402e-31,!1],[!1,"astronomic unit","AU","ASU","length",149597870691,[1,0,0,0,0,0,0],"AU","iso1000",!1,null,null,1,!1,!1,0,"AU; units","UCUM","Len","Clinical","unit of length used in astronomy for measuring distance in Solar system","Mm","MAM","149597.870691",149597.870691,!1],[!1,"parsec","pc","PRS","length",3085678e10,[1,0,0,0,0,0,0],"pc","iso1000",!0,null,null,1,!1,!1,0,"parsecs","UCUM","Len","Clinical","unit of length equal to 3.26 light years, and used to measure large distances to objects outside our Solar System","m","M","3.085678e16",3085678e10,!1],[!1,"velocity of light in a vacuum","[c]","[C]","velocity",299792458,[1,-1,0,0,0,0,0],"c","const",!0,null,null,1,!1,!1,0,"speed of light","UCUM","Vel","Constant","equal to 299792458 m/s (approximately 3 x 10^8 m/s)","m/s","M/S","299792458",299792458,!1],[!1,"Planck constant","[h]","[H]","action",66260755e-38,[2,-1,1,0,0,0,0],"h","const",!0,null,null,1,!1,!1,0,"Planck's constant","UCUM","","Constant","constant = 6.62607004 \xD7 10-34 m2.kg/s; defined as quantum of action","J.s","J.S","6.6260755e-34",66260755e-41,!1],[!1,"Boltzmann constant","[k]","[K]","(unclassified)",1380658e-26,[2,-2,1,0,-1,0,0],"k","const",!0,null,null,1,!1,!1,0,"k; kB","UCUM","","Constant","physical constant relating energy at the individual particle level with temperature = 1.38064852 \xD710^\u221223 J/K","J/K","J/K","1.380658e-23",1380658e-29,!1],[!1,"permittivity of vacuum - electric","[eps_0]","[EPS_0]","electric permittivity",8854187817000001e-30,[-3,2,-1,0,0,2,0],"\u03B50","const",!0,null,null,1,!1,!1,0,"\u03B50; Electric Constant; vacuum permittivity; permittivity of free space ","UCUM","","Constant","approximately equal to 8.854\u2009\xD7 10^\u221212 F/m (farads per meter)","F/m","F/M","8.854187817e-12",8854187817e-21,!1],[!1,"permeability of vacuum - magnetic","[mu_0]","[MU_0]","magnetic permeability",.0012566370614359172,[1,0,1,0,0,-2,0],"\u03BC0","const",!0,null,null,1,!1,!1,0,"\u03BC0; vacuum permeability; permeability of free space; magnetic constant","UCUM","","Constant","equal to 4\u03C0\xD710^\u22127 N/A2 (Newtons per square ampere) \u2248 1.2566\xD710^\u22126 H/m (Henry per meter)","N/A2","4.[PI].10*-7.N/A2","1",12566370614359173e-22,!1],[!1,"elementary charge","[e]","[E]","electric charge",160217733e-27,[0,0,0,0,0,1,0],"e","const",!0,null,null,1,!1,!1,0,"e; q; electric charges","UCUM","","Constant","the magnitude of the electric charge carried by a single electron or proton \u2248 1.60217\xD710^-19 Coulombs","C","C","1.60217733e-19",160217733e-27,!1],[!1,"electronvolt","eV","EV","energy",160217733e-24,[2,-2,1,0,0,0,0],"eV","iso1000",!0,null,null,1,!1,!1,0,"Electron Volts; electronvolts","UCUM","Eng","Clinical","unit of kinetic energy = 1 V * 1.602\xD710^\u221219 C = 1.6\xD710\u221219 Joules","[e].V","[E].V","1",1,!1],[!1,"electron mass","[m_e]","[M_E]","mass",91093897e-35,[0,0,1,0,0,0,0],"me","const",!0,null,null,1,!1,!1,0,"electron rest mass; me","UCUM","Mass","Constant","approximately equal to 9.10938356 \xD7 10-31 kg; defined as the mass of a stationary electron","g","g","9.1093897e-28",91093897e-35,!1],[!1,"proton mass","[m_p]","[M_P]","mass",16726231e-31,[0,0,1,0,0,0,0],"mp","const",!0,null,null,1,!1,!1,0,"mp; masses","UCUM","Mass","Constant","approximately equal to 1.672622\xD710\u221227 kg","g","g","1.6726231e-24",16726231e-31,!1],[!1,"Newtonian constant of gravitation","[G]","[GC]","(unclassified)",667259e-19,[3,-2,-1,0,0,0,0],"G","const",!0,null,null,1,!1,!1,0,"G; gravitational constant; Newton's constant","UCUM","","Constant","gravitational constant = 6.674\xD710\u221211 N\u22C5m2/kg2","m3.kg-1.s-2","M3.KG-1.S-2","6.67259e-11",667259e-16,!1],[!1,"standard acceleration of free fall","[g]","[G]","acceleration",9.80665,[1,-2,0,0,0,0,0],"gn","const",!0,null,null,1,!1,!1,0,"standard gravity; g; \u02610; \u0261n","UCUM","Accel","Constant","defined by standard = 9.80665 m/s2","m/s2","M/S2","980665e-5",9.80665,!1],[!1,"Torr","Torr","Torr","pressure",133322,[-1,-2,1,0,0,0,0],"Torr","const",!1,null,null,1,!1,!1,0,"torrs","UCUM","Pres","Clinical","1 torr = 1 mmHg; unit used to measure blood pressure","Pa","PAL","133.322",133.322,!1],[!1,"standard atmosphere","atm","ATM","pressure",101325e3,[-1,-2,1,0,0,0,0],"atm","const",!1,null,null,1,!1,!1,0,"reference pressure; atmos; std atmosphere","UCUM","Pres","Clinical","defined as being precisely equal to 101,325 Pa","Pa","PAL","101325",101325,!1],[!1,"light-year","[ly]","[LY]","length",9460730472580800,[1,0,0,0,0,0,0],"l.y.","const",!0,null,null,1,!1,!1,0,"light years; ly","UCUM","Len","Constant","unit of astronomal distance = 5.88\xD710^12 mi","[c].a_j","[C].ANN_J","1",1,!1],[!1,"gram-force","gf","GF","force",9.80665,[1,-2,1,0,0,0,0],"gf","const",!0,null,null,1,!1,!1,0,"Newtons; gram forces","UCUM","Force","Clinical","May be specific to unit related to cardiac output","g.[g]","G.[G]","1",1,!1],[!1,"Kayser","Ky","KY","lineic number",100,[-1,0,0,0,0,0,0],"K","cgs",!0,null,null,1,!1,!1,0,"wavenumbers; kaysers","UCUM","InvLen","Clinical","unit of wavelength equal to cm^-1","cm-1","CM-1","1",1,!1],[!1,"Gal","Gal","GL","acceleration",.01,[1,-2,0,0,0,0,0],"Gal","cgs",!0,null,null,1,!1,!1,0,"galileos; Gals","UCUM","Accel","Clinical","unit of acceleration used in gravimetry; equivalent to cm/s2 ","cm/s2","CM/S2","1",1,!1],[!1,"dyne","dyn","DYN","force",.01,[1,-2,1,0,0,0,0],"dyn","cgs",!0,null,null,1,!1,!1,0,"dynes","UCUM","Force","Clinical","unit of force equal to 10^-5 Newtons","g.cm/s2","G.CM/S2","1",1,!1],[!1,"erg","erg","ERG","energy",1e-4,[2,-2,1,0,0,0,0],"erg","cgs",!0,null,null,1,!1,!1,0,"10^-7 Joules, 10-7 Joules; 100 nJ; 100 nanoJoules; 1 dyne cm; 1 g.cm2/s2","UCUM","Eng","Clinical","unit of energy = 1 dyne centimeter = 10^-7 Joules","dyn.cm","DYN.CM","1",1,!1],[!1,"Poise","P","P","dynamic viscosity",100.00000000000001,[-1,-1,1,0,0,0,0],"P","cgs",!0,null,null,1,!1,!1,0,"dynamic viscosity; poises","UCUM","Visc","Clinical","unit of dynamic viscosity where 1 Poise = 1/10 Pascal second","dyn.s/cm2","DYN.S/CM2","1",1,!1],[!1,"Biot","Bi","BI","electric current",10,[0,-1,0,0,0,1,0],"Bi","cgs",!0,null,null,1,!1,!1,0,"Bi; abamperes; abA","UCUM","ElpotRat","Clinical","equal to 10 amperes","A","A","10",10,!1],[!1,"Stokes","St","ST","kinematic viscosity",9999999999999999e-20,[2,-1,0,0,0,0,0],"St","cgs",!0,null,null,1,!1,!1,0,"kinematic viscosity","UCUM","Visc","Clinical","unit of kimematic viscosity with units cm2/s","cm2/s","CM2/S","1",1,!1],[!1,"Maxwell","Mx","MX","flux of magnetic induction",1e-5,[2,-1,1,0,0,-1,0],"Mx","cgs",!0,null,null,1,!1,!1,0,"magnetix flux; Maxwells","UCUM","","Clinical","unit of magnetic flux","Wb","WB","1e-8",1e-8,!1],[!1,"Gauss","G","GS","magnetic flux density",.1,[0,-1,1,0,0,-1,0],"Gs","cgs",!0,null,null,1,!1,!1,0,"magnetic fields; magnetic flux density; induction; B","UCUM","magnetic","Clinical","CGS unit of magnetic flux density, known as magnetic field B; defined as one maxwell unit per square centimeter (see Oersted for CGS unit for H field)","T","T","1e-4",1e-4,!1],[!1,"Oersted","Oe","OE","magnetic field intensity",79.57747154594767,[-1,-1,0,0,0,1,0],"Oe","cgs",!0,null,null,1,!1,!1,0,"H magnetic B field; Oersteds","UCUM","","Clinical","CGS unit of the auxiliary magnetic field H defined as 1 dyne per unit pole = 1000/4\u03C0 amperes per meter (see Gauss for CGS unit for B field)","A/m","/[PI].A/M","250",79.57747154594767,!1],[!1,"Gilbert","Gb","GB","magnetic tension",.7957747154594768,[0,-1,0,0,0,1,0],"Gb","cgs",!0,null,null,1,!1,!1,0,"Gi; magnetomotive force; Gilberts","UCUM","","Clinical","unit of magnetomotive force (magnetic potential)","Oe.cm","OE.CM","1",1,!1],[!1,"stilb","sb","SB","lum. intensity density",1e4,[-2,0,0,0,0,0,1],"sb","cgs",!0,null,null,1,!1,!1,0,"stilbs","UCUM","","Obsolete","unit of luminance; equal to and replaced by unit candela per square centimeter (cd/cm2)","cd/cm2","CD/CM2","1",1,!1],[!1,"Lambert","Lmb","LMB","brightness",3183.098861837907,[-2,0,0,0,0,0,1],"L","cgs",!0,null,null,1,!1,!1,0,"luminance; lamberts","UCUM","","Clinical","unit of luminance defined as 1 lambert = 1/ \u03C0 candela per square meter","cd/cm2/[pi]","CD/CM2/[PI]","1",1,!1],[!1,"phot","ph","PHT","illuminance",1e-4,[-2,0,0,2,0,0,1],"ph","cgs",!0,null,null,1,!1,!1,0,"phots","UCUM","","Clinical","CGS photometric unit of illuminance, or luminous flux through an area equal to 10000 lumens per square meter = 10000 lux","lx","LX","1e-4",1e-4,!1],[!1,"Curie","Ci","CI","radioactivity",37e9,[0,-1,0,0,0,0,0],"Ci","cgs",!0,null,null,1,!1,!1,0,"curies","UCUM","","Obsolete","unit for measuring atomic disintegration rate; replaced by the Bequerel (Bq) unit","Bq","BQ","37e9",37e9,!1],[!1,"Roentgen","R","ROE","ion dose",258e-9,[0,0,-1,0,0,1,0],"R","cgs",!0,null,null,1,!1,!1,0,"r\xF6ntgen; Roentgens","UCUM","","Clinical","unit of exposure of X-rays and gamma rays in air; unit used primarily in the US but strongly discouraged by NIST","C/kg","C/KG","2.58e-4",258e-6,!1],[!1,"radiation absorbed dose","RAD","[RAD]","energy dose",.01,[2,-2,0,0,0,0,0],"RAD","cgs",!0,null,null,1,!1,!1,0,"doses","UCUM","","Clinical","unit of radiation absorbed dose used primarily in the US with base units 100 ergs per gram of material. Also see the SI unit Gray (Gy).","erg/g","ERG/G","100",100,!1],[!1,"radiation equivalent man","REM","[REM]","dose equivalent",.01,[2,-2,0,0,0,0,0],"REM","cgs",!0,null,null,1,!1,!1,0,"Roentgen Equivalent in Man; rems; dose equivalents","UCUM","","Clinical","unit of equivalent dose which measures the effect of radiation on humans equal to 0.01 sievert. Used primarily in the US. Also see SI unit Sievert (Sv)","RAD","[RAD]","1",1,!1],[!1,"inch","[in_i]","[IN_I]","length",.025400000000000002,[1,0,0,0,0,0,0],"in","intcust",!1,null,null,1,!1,!1,0,"inches; in; international inch; body height","UCUM","Len","Clinical","standard unit for inch in the US and internationally","cm","CM","254e-2",2.54,!1],[!1,"foot","[ft_i]","[FT_I]","length",.3048,[1,0,0,0,0,0,0],"ft","intcust",!1,null,null,1,!1,!1,0,"ft; fts; foot; international foot; feet; international feet; height","UCUM","Len","Clinical","unit used in the US and internationally","[in_i]","[IN_I]","12",12,!1],[!1,"yard","[yd_i]","[YD_I]","length",.9144000000000001,[1,0,0,0,0,0,0],"yd","intcust",!1,null,null,1,!1,!1,0,"international yards; yds; distance","UCUM","Len","Clinical","standard unit used in the US and internationally","[ft_i]","[FT_I]","3",3,!1],[!1,"mile","[mi_i]","[MI_I]","length",1609.344,[1,0,0,0,0,0,0],"mi","intcust",!1,null,null,1,!1,!1,0,"international miles; mi I; statute mile","UCUM","Len","Clinical","standard unit used in the US and internationally","[ft_i]","[FT_I]","5280",5280,!1],[!1,"fathom","[fth_i]","[FTH_I]","depth of water",1.8288000000000002,[1,0,0,0,0,0,0],"fth","intcust",!1,null,null,1,!1,!1,0,"international fathoms","UCUM","Len","Nonclinical","unit used in the US and internationally to measure depth of water; same length as the US fathom","[ft_i]","[FT_I]","6",6,!1],[!1,"nautical mile","[nmi_i]","[NMI_I]","length",1852,[1,0,0,0,0,0,0],"n.mi","intcust",!1,null,null,1,!1,!1,0,"nautical mile; nautical miles; international nautical mile; international nautical miles; nm; n.m.; nmi","UCUM","Len","Nonclinical","standard unit used in the US and internationally","m","M","1852",1852,!1],[!1,"knot","[kn_i]","[KN_I]","velocity",.5144444444444445,[1,-1,0,0,0,0,0],"knot","intcust",!1,null,null,1,!1,!1,0,"kn; kt; international knots","UCUM","Vel","Nonclinical","defined as equal to one nautical mile (1.852 km) per hour","[nmi_i]/h","[NMI_I]/H","1",1,!1],[!1,"square inch","[sin_i]","[SIN_I]","area",.0006451600000000001,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"in2; in^2; inches squared; sq inch; inches squared; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[in_i]2","[IN_I]2","1",1,!1],[!1,"square foot","[sft_i]","[SFT_I]","area",.09290304,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"ft2; ft^2; ft squared; sq ft; feet; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[ft_i]2","[FT_I]2","1",1,!1],[!1,"square yard","[syd_i]","[SYD_I]","area",.8361273600000002,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"yd2; yd^2; sq. yds; yards squared; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[yd_i]2","[YD_I]2","1",1,!1],[!1,"cubic inch","[cin_i]","[CIN_I]","volume",16387064000000006e-21,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"in3; in^3; in*3; inches^3; inches*3; cu. in; cu in; cubic inches; inches cubed; cin","UCUM","Vol","Clinical","standard unit used in the US and internationally","[in_i]3","[IN_I]3","1",1,!1],[!1,"cubic foot","[cft_i]","[CFT_I]","volume",.028316846592000004,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"ft3; ft^3; ft*3; cu. ft; cubic feet; cubed; [ft_i]3; international","UCUM","Vol","Clinical","","[ft_i]3","[FT_I]3","1",1,!1],[!1,"cubic yard","[cyd_i]","[CYD_I]","volume",.7645548579840002,[3,0,0,0,0,0,0],"cu.yd","intcust",!1,null,null,1,!1,!1,0,"cubic yards; cubic yds; cu yards; CYs; yards^3; yd^3; yds^3; yd3; yds3","UCUM","Vol","Nonclinical","standard unit used in the US and internationally","[yd_i]3","[YD_I]3","1",1,!1],[!1,"board foot","[bf_i]","[BF_I]","volume",.0023597372160000006,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"BDFT; FBM; BF; board feet; international","UCUM","Vol","Nonclinical","unit of volume used to measure lumber","[in_i]3","[IN_I]3","144",144,!1],[!1,"cord","[cr_i]","[CR_I]","volume",3.6245563637760005,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"crd I; international cords","UCUM","Vol","Nonclinical","unit of measure of dry volume used to measure firewood equal 128 ft3","[ft_i]3","[FT_I]3","128",128,!1],[!1,"mil","[mil_i]","[MIL_I]","length",25400000000000004e-21,[1,0,0,0,0,0,0],"mil","intcust",!1,null,null,1,!1,!1,0,"thou, thousandth; mils; international","UCUM","Len","Clinical","equal to 0.001 international inch","[in_i]","[IN_I]","1e-3",.001,!1],[!1,"circular mil","[cml_i]","[CML_I]","area",5067074790974979e-25,[2,0,0,0,0,0,0],"circ.mil","intcust",!1,null,null,1,!1,!1,0,"circular mils; cml I; international","UCUM","Area","Clinical","","[pi]/4.[mil_i]2","[PI]/4.[MIL_I]2","1",1,!1],[!1,"hand","[hd_i]","[HD_I]","height of horses",.10160000000000001,[1,0,0,0,0,0,0],"hd","intcust",!1,null,null,1,!1,!1,0,"hands; international","UCUM","Len","Nonclinical","used to measure horse height","[in_i]","[IN_I]","4",4,!1],[!1,"foot - US","[ft_us]","[FT_US]","length",.3048006096012192,[1,0,0,0,0,0,0],"ftus","us-lengths",!1,null,null,1,!1,!1,0,"US foot; foot US; us ft; ft us; height; visual distance; feet","UCUM","Len","Obsolete","Better to use [ft_i] which refers to the length used worldwide, including in the US; [ft_us] may be confused with land survey units. ","m/3937","M/3937","1200",1200,!1],[!1,"yard - US","[yd_us]","[YD_US]","length",.9144018288036575,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US yards; us yds; distance","UCUM","Len; Nrat","Obsolete","Better to use [yd_i] which refers to the length used worldwide, including in the US; [yd_us] refers to unit used in land surveys in the US","[ft_us]","[FT_US]","3",3,!1],[!1,"inch - US","[in_us]","[IN_US]","length",.0254000508001016,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US inches; in us; us in; inch US","UCUM","Len","Obsolete","Better to use [in_i] which refers to the length used worldwide, including in the US","[ft_us]/12","[FT_US]/12","1",1,!1],[!1,"rod - US","[rd_us]","[RD_US]","length",5.029210058420117,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US rod; US rods; rd US; US rd","UCUM","Len","Obsolete","","[ft_us]","[FT_US]","16.5",16.5,!1],[!1,"Gunter's chain - US","[ch_us]","[CH_US]","length",20.116840233680467,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"surveyor's chain; Surveyor's chain USA; Gunter\u2019s measurement; surveyor\u2019s measurement; Gunter's Chain USA","UCUM","Len","Obsolete","historical unit used for land survey used only in the US","[rd_us]","[RD_US]","4",4,!1],[!1,"link for Gunter's chain - US","[lk_us]","[LK_US]","length",.20116840233680466,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Links for Gunter's Chain USA","UCUM","Len","Obsolete","","[ch_us]/100","[CH_US]/100","1",1,!1],[!1,"Ramden's chain - US","[rch_us]","[RCH_US]","length",30.480060960121918,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Ramsden's chain; engineer's chains","UCUM","Len","Obsolete","distance measuring device used for\xA0land survey","[ft_us]","[FT_US]","100",100,!1],[!1,"link for Ramden's chain - US","[rlk_us]","[RLK_US]","length",.3048006096012192,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"links for Ramsden's chain","UCUM","Len","Obsolete","","[rch_us]/100","[RCH_US]/100","1",1,!1],[!1,"fathom - US","[fth_us]","[FTH_US]","length",1.828803657607315,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US fathoms; fathom USA; fth us","UCUM","Len","Obsolete","same length as the international fathom - better to use international fathom ([fth_i])","[ft_us]","[FT_US]","6",6,!1],[!1,"furlong - US","[fur_us]","[FUR_US]","length",201.16840233680466,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US furlongs; fur us","UCUM","Len","Nonclinical","distance unit in horse racing","[rd_us]","[RD_US]","40",40,!1],[!1,"mile - US","[mi_us]","[MI_US]","length",1609.3472186944373,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"U.S. Survey Miles; US statute miles; survey mi; US mi; distance","UCUM","Len","Nonclinical","Better to use [mi_i] which refers to the length used worldwide, including in the US","[fur_us]","[FUR_US]","8",8,!1],[!1,"acre - US","[acr_us]","[ACR_US]","area",4046.872609874252,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Acre USA Survey; Acre USA; survey acres","UCUM","Area","Nonclinical","an older unit based on pre 1959 US statute lengths that is still sometimes used in the US only for land survey purposes. ","[rd_us]2","[RD_US]2","160",160,!1],[!1,"square rod - US","[srd_us]","[SRD_US]","area",25.292953811714074,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"rod2; rod^2; sq. rod; rods squared","UCUM","Area","Nonclinical","Used only in the US to measure land area, based on US statute land survey length units","[rd_us]2","[RD_US]2","1",1,!1],[!1,"square mile - US","[smi_us]","[SMI_US]","area",2589998470319521e-9,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"mi2; mi^2; sq mi; miles squared","UCUM","Area","Nonclinical","historical unit used only in the US for land survey purposes (based on the US survey mile), not the internationally recognized [mi_i]","[mi_us]2","[MI_US]2","1",1,!1],[!1,"section","[sct]","[SCT]","area",2589998470319521e-9,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"sct; sections","UCUM","Area","Nonclinical","tract of land approximately equal to 1 mile square containing 640 acres","[mi_us]2","[MI_US]2","1",1,!1],[!1,"township","[twp]","[TWP]","area",9323994493150276e-8,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"twp; townships","UCUM","Area","Nonclinical","land measurement equal to 6 mile square","[sct]","[SCT]","36",36,!1],[!1,"mil - US","[mil_us]","[MIL_US]","length",254000508001016e-19,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"thou, thousandth; mils","UCUM","Len","Obsolete","better to use [mil_i] which is based on the internationally recognized inch","[in_us]","[IN_US]","1e-3",.001,!1],[!1,"inch - British","[in_br]","[IN_BR]","length",.025399980000000003,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"imperial inches; imp in; br in; british inches","UCUM","Len","Obsolete","","cm","CM","2.539998",2.539998,!1],[!1,"foot - British","[ft_br]","[FT_BR]","length",.30479976000000003,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British Foot; Imperial Foot; feet; imp fts; br fts","UCUM","Len","Obsolete","","[in_br]","[IN_BR]","12",12,!1],[!1,"rod - British","[rd_br]","[RD_BR]","length",5.02919604,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British rods; br rd","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","16.5",16.5,!1],[!1,"Gunter's chain - British","[ch_br]","[CH_BR]","length",20.11678416,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Gunter's Chain British; Gunters Chain British; Surveyor's Chain British","UCUM","Len","Obsolete","historical unit used for land survey used only in Great Britain","[rd_br]","[RD_BR]","4",4,!1],[!1,"link for Gunter's chain - British","[lk_br]","[LK_BR]","length",.2011678416,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Links for Gunter's Chain British","UCUM","Len","Obsolete","","[ch_br]/100","[CH_BR]/100","1",1,!1],[!1,"fathom - British","[fth_br]","[FTH_BR]","length",1.82879856,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British fathoms; imperial fathoms; br fth; imp fth","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","6",6,!1],[!1,"pace - British","[pc_br]","[PC_BR]","length",.7619994000000001,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British paces; br pc","UCUM","Len","Nonclinical","traditional unit of length equal to 152.4 centimeters, or 1.52 meter. ","[ft_br]","[FT_BR]","2.5",2.5,!1],[!1,"yard - British","[yd_br]","[YD_BR]","length",.91439928,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British yards; Br yds; distance","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","3",3,!1],[!1,"mile - British","[mi_br]","[MI_BR]","length",1609.3427328000002,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"imperial miles; British miles; English statute miles; imp mi, br mi","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","5280",5280,!1],[!1,"nautical mile - British","[nmi_br]","[NMI_BR]","length",1853.1825408000002,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British nautical miles; Imperial nautical miles; Admiralty miles; n.m. br; imp nm","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","6080",6080,!1],[!1,"knot - British","[kn_br]","[KN_BR]","velocity",.5147729280000001,[1,-1,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British knots; kn br; kt","UCUM","Vel","Obsolete","based on obsolete British nautical mile ","[nmi_br]/h","[NMI_BR]/H","1",1,!1],[!1,"acre","[acr_br]","[ACR_BR]","area",4046.850049400269,[2,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Imperial acres; British; a; ac; ar; acr","UCUM","Area","Nonclinical","the standard unit for acre used in the US and internationally","[yd_br]2","[YD_BR]2","4840",4840,!1],[!1,"gallon - US","[gal_us]","[GAL_US]","fluid volume",.0037854117840000014,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US gallons; US liquid gallon; gal us; Queen Anne's wine gallon","UCUM","Vol","Nonclinical","only gallon unit used in the US; [gal_us] is only used in some other countries in South American and Africa to measure gasoline volume","[in_i]3","[IN_I]3","231",231,!1],[!1,"barrel - US","[bbl_us]","[BBL_US]","fluid volume",.15898729492800007,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"bbl","UCUM","Vol","Nonclinical","[bbl_us] is the standard unit for oil barrel, which is a unit only used in the US to measure the volume oil. ","[gal_us]","[GAL_US]","42",42,!1],[!1,"quart - US","[qt_us]","[QT_US]","fluid volume",.0009463529460000004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US quarts; us qts","UCUM","Vol","Clinical","Used only in the US","[gal_us]/4","[GAL_US]/4","1",1,!1],[!1,"pint - US","[pt_us]","[PT_US]","fluid volume",.0004731764730000002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US pints; pint US; liquid pint; pt us; us pt","UCUM","Vol","Clinical","Used only in the US","[qt_us]/2","[QT_US]/2","1",1,!1],[!1,"gill - US","[gil_us]","[GIL_US]","fluid volume",.00011829411825000005,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US gills; gil us","UCUM","Vol","Nonclinical","only used in the context of alcohol volume in the US","[pt_us]/4","[PT_US]/4","1",1,!1],[!1,"fluid ounce - US","[foz_us]","[FOZ_US]","fluid volume",2957352956250001e-20,[3,0,0,0,0,0,0],"oz fl","us-volumes",!1,null,null,1,!1,!1,0,"US fluid ounces; fl ozs; FO; fl. oz.; foz us","UCUM","Vol","Clinical","unit used only in the US","[gil_us]/4","[GIL_US]/4","1",1,!1],[!1,"fluid dram - US","[fdr_us]","[FDR_US]","fluid volume",36966911953125014e-22,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US fluid drams; fdr us","UCUM","Vol","Nonclinical","equal to 1/8 US fluid ounce = 3.69 mL; used informally to mean small amount of liquor, especially Scotch whiskey","[foz_us]/8","[FOZ_US]/8","1",1,!1],[!1,"minim - US","[min_us]","[MIN_US]","fluid volume",6161151992187503e-23,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"min US; US min; \u264F US","UCUM","Vol","Obsolete","","[fdr_us]/60","[FDR_US]/60","1",1,!1],[!1,"cord - US","[crd_us]","[CRD_US]","fluid volume",3.6245563637760005,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US cord; US cords; crd us; us crd","UCUM","Vol","Nonclinical","unit of measure of dry volume used to measure firewood equal 128 ft3 (the same as international cord [cr_i])","[ft_i]3","[FT_I]3","128",128,!1],[!1,"bushel - US","[bu_us]","[BU_US]","dry volume",.035239070166880014,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US bushels; US bsh; US bu","UCUM","Vol","Obsolete","Historical unit of dry volume that is rarely used today","[in_i]3","[IN_I]3","2150.42",2150.42,!1],[!1,"gallon - historical","[gal_wi]","[GAL_WI]","dry volume",.004404883770860002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"Corn Gallon British; Dry Gallon US; Gallons Historical; Grain Gallon British; Winchester Corn Gallon; historical winchester gallons; wi gal","UCUM","Vol","Obsolete","historical unit of dry volume no longer used","[bu_us]/8","[BU_US]/8","1",1,!1],[!1,"peck - US","[pk_us]","[PK_US]","dry volume",.008809767541720004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US pecks; US pk","UCUM","Vol","Nonclinical","unit of dry volume rarely used today (can be used to measure volume of apples)","[bu_us]/4","[BU_US]/4","1",1,!1],[!1,"dry quart - US","[dqt_us]","[DQT_US]","dry volume",.0011012209427150004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"dry quarts; dry quart US; US dry quart; dry qt; us dry qt; dqt; dqt us","UCUM","Vol","Nonclinical","historical unit of dry volume only in the US, but is rarely used today","[pk_us]/8","[PK_US]/8","1",1,!1],[!1,"dry pint - US","[dpt_us]","[DPT_US]","dry volume",.0005506104713575002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"dry pints; dry pint US; US dry pint; dry pt; dpt; dpt us","UCUM","Vol","Nonclinical","historical unit of dry volume only in the US, but is rarely used today","[dqt_us]/2","[DQT_US]/2","1",1,!1],[!1,"tablespoon - US","[tbs_us]","[TBS_US]","volume",14786764781250006e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"Tbs; tbsp; tbs us; US tablespoons","UCUM","Vol","Clinical","unit defined as 0.5 US fluid ounces or 3 teaspoons - used only in the US. See [tbs_m] for the unit used internationally and in the US for nutrional labelling. ","[foz_us]/2","[FOZ_US]/2","1",1,!1],[!1,"teaspoon - US","[tsp_us]","[TSP_US]","volume",4928921593750002e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"tsp; t; US teaspoons","UCUM","Vol","Nonclinical","unit defined as 1/6 US fluid ounces - used only in the US. See [tsp_m] for the unit used internationally and in the US for nutrional labelling. ","[tbs_us]/3","[TBS_US]/3","1",1,!1],[!1,"cup - US customary","[cup_us]","[CUP_US]","volume",.0002365882365000001,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"cup us; us cups","UCUM","Vol","Nonclinical","Unit defined as 1/2 US pint or 16 US tablespoons \u2248 236.59 mL, which is not the standard unit defined by the FDA of 240 mL - see [cup_m] (metric cup)","[tbs_us]","[TBS_US]","16",16,!1],[!1,"fluid ounce - metric","[foz_m]","[FOZ_M]","fluid volume",29999999999999997e-21,[3,0,0,0,0,0,0],"oz fl","us-volumes",!1,null,null,1,!1,!1,0,"metric fluid ounces; fozs m; fl ozs m","UCUM","Vol","Clinical","unit used only in the US for nutritional labelling, as set by the FDA","mL","ML","30",30,!1],[!1,"cup - US legal","[cup_m]","[CUP_M]","volume",.00023999999999999998,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"cup m; metric cups","UCUM","Vol","Clinical","standard unit equal to 240 mL used in the US for nutritional labelling, as defined by the FDA. Note that this is different from the US customary cup (236.59 mL) and the metric cup used in Commonwealth nations (250 mL).","mL","ML","240",240,!1],[!1,"teaspoon - metric","[tsp_m]","[TSP_M]","volume",49999999999999996e-22,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"tsp; t; metric teaspoons","UCUM","Vol","Clinical","standard unit used in the US and internationally","mL","mL","5",5,!1],[!1,"tablespoon - metric","[tbs_m]","[TBS_M]","volume",14999999999999999e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"metric tablespoons; Tbs; tbsp; T; tbs m","UCUM","Vol","Clinical","standard unit used in the US and internationally","mL","mL","15",15,!1],[!1,"gallon- British","[gal_br]","[GAL_BR]","volume",.004546090000000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial gallons, UK gallons; British gallons; br gal; imp gal","UCUM","Vol","Nonclinical","Used only in Great Britain and other Commonwealth countries","l","L","4.54609",4.54609,!1],[!1,"peck - British","[pk_br]","[PK_BR]","volume",.009092180000000002,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial pecks; British pecks; br pk; imp pk","UCUM","Vol","Nonclinical","unit of dry volume rarely used today (can be used to measure volume of apples)","[gal_br]","[GAL_BR]","2",2,!1],[!1,"bushel - British","[bu_br]","[BU_BR]","volume",.03636872000000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British bushels; imperial; br bsh; br bu; imp","UCUM","Vol","Obsolete","Historical unit of dry volume that is rarely used today","[pk_br]","[PK_BR]","4",4,!1],[!1,"quart - British","[qt_br]","[QT_BR]","volume",.0011365225000000002,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British quarts; imperial quarts; br qts","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[gal_br]/4","[GAL_BR]/4","1",1,!1],[!1,"pint - British","[pt_br]","[PT_BR]","volume",.0005682612500000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British pints; imperial pints; pt br; br pt; imp pt; pt imp","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[qt_br]/2","[QT_BR]/2","1",1,!1],[!1,"gill - British","[gil_br]","[GIL_BR]","volume",.00014206531250000003,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial gills; British gills; imp gill, br gill","UCUM","Vol","Nonclinical","only used in the context of alcohol volume in Great Britain","[pt_br]/4","[PT_BR]/4","1",1,!1],[!1,"fluid ounce - British","[foz_br]","[FOZ_BR]","volume",28413062500000005e-21,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British fluid ounces; Imperial fluid ounces; br fozs; imp fozs; br fl ozs","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[gil_br]/5","[GIL_BR]/5","1",1,!1],[!1,"fluid dram - British","[fdr_br]","[FDR_BR]","volume",35516328125000006e-22,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British fluid drams; fdr br","UCUM","Vol","Nonclinical","equal to 1/8 Imperial fluid ounce = 3.55 mL; used informally to mean small amount of liquor, especially Scotch whiskey","[foz_br]/8","[FOZ_BR]/8","1",1,!1],[!1,"minim - British","[min_br]","[MIN_BR]","volume",5919388020833334e-23,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"min br; br min; \u264F br","UCUM","Vol","Obsolete","","[fdr_br]/60","[FDR_BR]/60","1",1,!1],[!1,"grain","[gr]","[GR]","mass",.06479891,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"gr; grains","UCUM","Mass","Nonclinical","an apothecary measure of mass rarely used today","mg","MG","64.79891",64.79891,!1],[!1,"pound","[lb_av]","[LB_AV]","mass",453.59237,[0,0,1,0,0,0,0],"lb","avoirdupois",!1,null,null,1,!1,!1,0,"avoirdupois pounds, international pounds; av lbs; pounds","UCUM","Mass","Clinical","standard unit used in the US and internationally","[gr]","[GR]","7000",7e3,!1],[!1,"pound force - US","[lbf_av]","[LBF_AV]","force",4448.2216152605,[1,-2,1,0,0,0,0],"lbf","const",!1,null,null,1,!1,!1,0,"lbfs; US lbf; US pound forces","UCUM","Force","Clinical","only rarely needed in health care - see [lb_av] which is the more common unit to express weight","[lb_av].[g]","[LB_AV].[G]","1",1,!1],[!1,"ounce","[oz_av]","[OZ_AV]","mass",28.349523125,[0,0,1,0,0,0,0],"oz","avoirdupois",!1,null,null,1,!1,!1,0,"ounces; international ounces; avoirdupois ounces; av ozs","UCUM","Mass","Clinical","standard unit used in the US and internationally","[lb_av]/16","[LB_AV]/16","1",1,!1],[!1,"Dram mass unit","[dr_av]","[DR_AV]","mass",1.7718451953125,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"Dram; drams avoirdupois; avoidupois dram; international dram","UCUM","Mass","Clinical","unit from the avoirdupois system, which is used in the US and internationally","[oz_av]/16","[OZ_AV]/16","1",1,!1],[!1,"short hundredweight","[scwt_av]","[SCWT_AV]","mass",45359.237,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"hundredweights; s cwt; scwt; avoirdupois","UCUM","Mass","Nonclinical","Used only in the US to equal 100 pounds","[lb_av]","[LB_AV]","100",100,!1],[!1,"long hundredweight","[lcwt_av]","[LCWT_AV]","mass",50802.345440000005,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"imperial hundredweights; imp cwt; lcwt; avoirdupois","UCUM","Mass","Obsolete","","[lb_av]","[LB_AV]","112",112,!1],[!1,"short ton - US","[ston_av]","[STON_AV]","mass",907184.74,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"ton; US tons; avoirdupois tons","UCUM","Mass","Clinical","Used only in the US","[scwt_av]","[SCWT_AV]","20",20,!1],[!1,"long ton - British","[lton_av]","[LTON_AV]","mass",1.0160469088000001e6,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"imperial tons; weight tons; British long tons; long ton avoirdupois","UCUM","Mass","Nonclinical","Used only in Great Britain and other Commonwealth countries","[lcwt_av]","[LCWT_AV]","20",20,!1],[!1,"stone - British","[stone_av]","[STONE_AV]","mass",6350.293180000001,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"British stones; avoirdupois","UCUM","Mass","Nonclinical","Used primarily in the UK and Ireland to measure body weight","[lb_av]","[LB_AV]","14",14,!1],[!1,"pennyweight - troy","[pwt_tr]","[PWT_TR]","mass",1.5551738400000001,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"dwt; denarius weights","UCUM","Mass","Obsolete","historical unit used to measure mass and cost of precious metals","[gr]","[GR]","24",24,!1],[!1,"ounce - troy","[oz_tr]","[OZ_TR]","mass",31.103476800000003,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"troy ounces; tr ozs","UCUM","Mass","Nonclinical","unit of mass for precious metals and gemstones only","[pwt_tr]","[PWT_TR]","20",20,!1],[!1,"pound - troy","[lb_tr]","[LB_TR]","mass",373.2417216,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"troy pounds; tr lbs","UCUM","Mass","Nonclinical","only used for weighing precious metals","[oz_tr]","[OZ_TR]","12",12,!1],[!1,"scruple","[sc_ap]","[SC_AP]","mass",1.2959782,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"scruples; sc ap","UCUM","Mass","Obsolete","","[gr]","[GR]","20",20,!1],[!1,"dram - apothecary","[dr_ap]","[DR_AP]","mass",3.8879346,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"\u0292; drachm; apothecaries drams; dr ap; dram ap","UCUM","Mass","Nonclinical","unit still used in the US occasionally to measure amount of drugs in pharmacies","[sc_ap]","[SC_AP]","3",3,!1],[!1,"ounce - apothecary","[oz_ap]","[OZ_AP]","mass",31.1034768,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"apothecary ounces; oz ap; ap ozs; ozs ap","UCUM","Mass","Obsolete","","[dr_ap]","[DR_AP]","8",8,!1],[!1,"pound - apothecary","[lb_ap]","[LB_AP]","mass",373.2417216,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"apothecary pounds; apothecaries pounds; ap lb; lb ap; ap lbs; lbs ap","UCUM","Mass","Obsolete","","[oz_ap]","[OZ_AP]","12",12,!1],[!1,"ounce - metric","[oz_m]","[OZ_M]","mass",28,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"metric ounces; m ozs","UCUM","Mass","Clinical","see [oz_av] (the avoirdupois ounce) for the standard ounce used internationally; [oz_m] is equal to 28 grams and is based on the apothecaries' system of mass units which is used in some US pharmacies. ","g","g","28",28,!1],[!1,"line","[lne]","[LNE]","length",.002116666666666667,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"British lines; br L; L; l","UCUM","Len","Obsolete","","[in_i]/12","[IN_I]/12","1",1,!1],[!1,"point (typography)","[pnt]","[PNT]","length",.0003527777777777778,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"DTP points; desktop publishing point; pt; pnt","UCUM","Len","Nonclinical","typography unit for typesetter's length","[lne]/6","[LNE]/6","1",1,!1],[!1,"pica (typography)","[pca]","[PCA]","length",.004233333333333334,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"picas","UCUM","Len","Nonclinical","typography unit for typesetter's length","[pnt]","[PNT]","12",12,!1],[!1,"Printer's point (typography)","[pnt_pr]","[PNT_PR]","length",.00035145980000000004,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pnt pr","UCUM","Len","Nonclinical","typography unit for typesetter's length","[in_i]","[IN_I]","0.013837",.013837,!1],[!1,"Printer's pica (typography)","[pca_pr]","[PCA_PR]","length",.004217517600000001,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pca pr; Printer's picas","UCUM","Len","Nonclinical","typography unit for typesetter's length","[pnt_pr]","[PNT_PR]","12",12,!1],[!1,"pied","[pied]","[PIED]","length",.3248,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pieds du roi; Paris foot; royal; French; feet","UCUM","Len","Obsolete","","cm","CM","32.48",32.48,!1],[!1,"pouce","[pouce]","[POUCE]","length",.027066666666666666,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"historical French inches; French royal inches","UCUM","Len","Obsolete","","[pied]/12","[PIED]/12","1",1,!1],[!1,"ligne","[ligne]","[LIGNE]","length",.0022555555555555554,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Paris lines; lignes","UCUM","Len","Obsolete","","[pouce]/12","[POUCE]/12","1",1,!1],[!1,"didot","[didot]","[DIDOT]","length",.0003759259259259259,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Didot point; dd; Didots Point; didots; points","UCUM","Len","Obsolete","typography unit for typesetter's length","[ligne]/6","[LIGNE]/6","1",1,!1],[!1,"cicero","[cicero]","[CICERO]","length",.004511111111111111,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Didot's pica; ciceros; picas","UCUM","Len","Obsolete","typography unit for typesetter's length","[didot]","[DIDOT]","12",12,!1],[!1,"degrees Fahrenheit","[degF]","[DEGF]","temperature",.5555555555555556,[0,0,0,0,1,0,0],"\xB0F","heat",!1,null,"degF",1,!0,!1,0,"\xB0F; deg F","UCUM","Temp","Clinical","","K",null,null,.5555555555555556,!1],[!1,"degrees Rankine","[degR]","[degR]","temperature",.5555555555555556,[0,0,0,0,1,0,0],"\xB0R","heat",!1,null,null,1,!1,!1,0,"\xB0R; \xB0Ra; Rankine","UCUM","Temp","Obsolete","Replaced by Kelvin","K/9","K/9","5",5,!1],[!1,"degrees R\xE9aumur","[degRe]","[degRe]","temperature",1.25,[0,0,0,0,1,0,0],"\xB0R\xE9","heat",!1,null,"degRe",1,!0,!1,0,"\xB0R\xE9, \xB0Re, \xB0r; R\xE9aumur; degree Reaumur; Reaumur","UCUM","Temp","Obsolete","replaced by Celsius","K",null,null,1.25,!1],[!1,"calorie at 15\xB0C","cal_[15]","CAL_[15]","energy",4185.8,[2,-2,1,0,0,0,0],"cal15\xB0C","heat",!0,null,null,1,!1,!1,0,"calorie 15 C; cals 15 C; calories at 15 C","UCUM","Enrg","Nonclinical","equal to 4.1855 joules; calorie most often used in engineering","J","J","4.18580",4.1858,!1],[!1,"calorie at 20\xB0C","cal_[20]","CAL_[20]","energy",4181.9,[2,-2,1,0,0,0,0],"cal20\xB0C","heat",!0,null,null,1,!1,!1,0,"calorie 20 C; cal 20 C; calories at 20 C","UCUM","Enrg","Clinical","equal to 4.18190 joules. ","J","J","4.18190",4.1819,!1],[!1,"mean calorie","cal_m","CAL_M","energy",4190.0199999999995,[2,-2,1,0,0,0,0],"calm","heat",!0,null,null,1,!1,!1,0,"mean cals; mean calories","UCUM","Enrg","Clinical","equal to 4.19002 joules. ","J","J","4.19002",4.19002,!1],[!1,"international table calorie","cal_IT","CAL_IT","energy",4186.8,[2,-2,1,0,0,0,0],"calIT","heat",!0,null,null,1,!1,!1,0,"calories IT; IT cals; international steam table calories","UCUM","Enrg","Nonclinical","used in engineering steam tables and defined as 1/860 international watt-hour; equal to 4.1868 joules","J","J","4.1868",4.1868,!1],[!1,"thermochemical calorie","cal_th","CAL_TH","energy",4184,[2,-2,1,0,0,0,0],"calth","heat",!0,null,null,1,!1,!1,0,"thermochemical calories; th cals","UCUM","Enrg","Clinical","equal to 4.184 joules; used as the unit in medicine and biochemistry (equal to cal)","J","J","4.184",4.184,!1],[!1,"calorie","cal","CAL","energy",4184,[2,-2,1,0,0,0,0],"cal","heat",!0,null,null,1,!1,!1,0,"gram calories; small calories","UCUM","Enrg","Clinical","equal to 4.184 joules (the same value as the thermochemical calorie, which is the most common calorie used in medicine and biochemistry)","cal_th","CAL_TH","1",1,!1],[!1,"nutrition label Calories","[Cal]","[CAL]","energy",4184e3,[2,-2,1,0,0,0,0],"Cal","heat",!1,null,null,1,!1,!1,0,"food calories; Cal; kcal","UCUM","Eng","Clinical","","kcal_th","KCAL_TH","1",1,!1],[!1,"British thermal unit at 39\xB0F","[Btu_39]","[BTU_39]","energy",1059670,[2,-2,1,0,0,0,0],"Btu39\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 39F; BTU 39 F; B.T.U. 39 F; B.Th.U. 39 F; BThU 39 F; British thermal units","UCUM","Eng","Nonclinical","equal to 1.05967 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05967",1.05967,!1],[!1,"British thermal unit at 59\xB0F","[Btu_59]","[BTU_59]","energy",1054800,[2,-2,1,0,0,0,0],"Btu59\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 59 F; BTU 59F; B.T.U. 59 F; B.Th.U. 59 F; BThU 59F; British thermal units","UCUM","Eng","Nonclinical","equal to 1.05480 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05480",1.0548,!1],[!1,"British thermal unit at 60\xB0F","[Btu_60]","[BTU_60]","energy",1054680,[2,-2,1,0,0,0,0],"Btu60\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 60 F; BTU 60F; B.T.U. 60 F; B.Th.U. 60 F; BThU 60 F; British thermal units 60 F","UCUM","Eng","Nonclinical","equal to 1.05468 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05468",1.05468,!1],[!1,"mean British thermal unit","[Btu_m]","[BTU_M]","energy",1055870,[2,-2,1,0,0,0,0],"Btum","heat",!1,null,null,1,!1,!1,0,"BTU mean; B.T.U. mean; B.Th.U. mean; BThU mean; British thermal units mean; ","UCUM","Eng","Nonclinical","equal to 1.05587 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05587",1.05587,!1],[!1,"international table British thermal unit","[Btu_IT]","[BTU_IT]","energy",105505585262e-5,[2,-2,1,0,0,0,0],"BtuIT","heat",!1,null,null,1,!1,!1,0,"BTU IT; B.T.U. IT; B.Th.U. IT; BThU IT; British thermal units IT","UCUM","Eng","Nonclinical","equal to 1.055 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05505585262",1.05505585262,!1],[!1,"thermochemical British thermal unit","[Btu_th]","[BTU_TH]","energy",1054350,[2,-2,1,0,0,0,0],"Btuth","heat",!1,null,null,1,!1,!1,0,"BTU Th; B.T.U. Th; B.Th.U. Th; BThU Th; thermochemical British thermal units","UCUM","Eng","Nonclinical","equal to 1.054350 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.054350",1.05435,!1],[!1,"British thermal unit","[Btu]","[BTU]","energy",1054350,[2,-2,1,0,0,0,0],"btu","heat",!1,null,null,1,!1,!1,0,"BTU; B.T.U. ; B.Th.U.; BThU; British thermal units","UCUM","Eng","Nonclinical","equal to the thermochemical British thermal unit equal to 1.054350 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","[Btu_th]","[BTU_TH]","1",1,!1],[!1,"horsepower - mechanical","[HP]","[HP]","power",745699.8715822703,[2,-3,1,0,0,0,0],null,"heat",!1,null,null,1,!1,!1,0,"imperial horsepowers","UCUM","EngRat","Nonclinical","refers to mechanical horsepower, which is unit used to measure engine power primarily in the US. ","[ft_i].[lbf_av]/s","[FT_I].[LBF_AV]/S","550",550,!1],[!1,"tex","tex","TEX","linear mass density (of textile thread)",.001,[-1,0,1,0,0,0,0],"tex","heat",!0,null,null,1,!1,!1,0,"linear mass density; texes","UCUM","","Clinical","unit of linear mass density for fibers equal to gram per 1000 meters","g/km","G/KM","1",1,!1],[!1,"Denier (linear mass density)","[den]","[DEN]","linear mass density (of textile thread)",.0001111111111111111,[-1,0,1,0,0,0,0],"den","heat",!1,null,null,1,!1,!1,0,"den; deniers","UCUM","","Nonclinical","equal to the mass in grams per 9000 meters of the fiber (1 denier = 1 strand of silk)","g/9/km","G/9/KM","1",1,!1],[!1,"meter of water column","m[H2O]","M[H2O]","pressure",9806650,[-1,-2,1,0,0,0,0],"m\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"mH2O; m H2O; meters of water column; metres; pressure","UCUM","Pres","Clinical","","kPa","KPAL","980665e-5",9.80665,!1],[!1,"meter of mercury column","m[Hg]","M[HG]","pressure",133322e3,[-1,-2,1,0,0,0,0],"m\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"mHg; m Hg; meters of mercury column; metres; pressure","UCUM","Pres","Clinical","","kPa","KPAL","133.3220",133.322,!1],[!1,"inch of water column","[in_i'H2O]","[IN_I'H2O]","pressure",249088.91000000003,[-1,-2,1,0,0,0,0],"in\xA0HO2","clinical",!1,null,null,1,!1,!1,0,"inches WC; inAq; in H2O; inch of water gauge; iwg; pressure","UCUM","Pres","Clinical","unit of pressure, especially in respiratory and ventilation care","m[H2O].[in_i]/m","M[H2O].[IN_I]/M","1",1,!1],[!1,"inch of mercury column","[in_i'Hg]","[IN_I'HG]","pressure",3.3863788000000003e6,[-1,-2,1,0,0,0,0],"in\xA0Hg","clinical",!1,null,null,1,!1,!1,0,"inHg; in Hg; pressure; inches","UCUM","Pres","Clinical","unit of pressure used in US to measure barometric pressure and occasionally blood pressure (see mm[Hg] for unit used internationally)","m[Hg].[in_i]/m","M[HG].[IN_I]/M","1",1,!1],[!1,"peripheral vascular resistance unit","[PRU]","[PRU]","fluid resistance",133322e6,[-4,-1,1,0,0,0,0],"P.R.U.","clinical",!1,null,null,1,!1,!1,0,"peripheral vascular resistance units; peripheral resistance unit; peripheral resistance units; PRU","UCUM","FldResist","Clinical","used to assess blood flow in the capillaries; equal to 1 mmH.min/mL = 133.3 Pa\xB7min/mL","mm[Hg].s/ml","MM[HG].S/ML","1",1,!1],[!1,"Wood unit","[wood'U]","[WOOD'U]","fluid resistance",799932e4,[-4,-1,1,0,0,0,0],"Wood U.","clinical",!1,null,null,1,!1,!1,0,"hybrid reference units; HRU; mmHg.min/L; vascular resistance","UCUM","Pres","Clinical","simplified unit of measurement for for measuring pulmonary vascular resistance that uses pressure; equal to mmHg.min/L","mm[Hg].min/L","MM[HG].MIN/L","1",1,!1],[!1,"diopter (lens)","[diop]","[DIOP]","refraction of a lens",1,[1,0,0,0,0,0,0],"dpt","clinical",!1,null,"inv",1,!1,!1,0,"diopters; diop; dioptre; dpt; refractive power","UCUM","InvLen","Clinical","unit of optical power of lens represented by inverse meters (m^-1)","m","/M","1",1,!1],[!1,"prism diopter (magnifying power)","[p'diop]","[P'DIOP]","refraction of a prism",1,[0,0,0,1,0,0,0],"PD","clinical",!1,null,"tanTimes100",1,!0,!1,0,"diopters; dioptres; p diops; pdiop; dpt; pdptr; \u0394; cm/m; centimeter per meter; centimetre; metre","UCUM","Angle","Clinical","unit for prism correction in eyeglass prescriptions","rad",null,null,1,!1],[!1,"percent of slope","%[slope]","%[SLOPE]","slope",.017453292519943295,[0,0,0,1,0,0,0],"%","clinical",!1,null,"100tan",1,!0,!1,0,"% slope; %slope; percents slopes","UCUM","VelFr; ElpotRatFr; VelRtoFr; AccelFr","Clinical","","deg",null,null,1,!1],[!1,"mesh","[mesh_i]","[MESH_I]","lineic number",.025400000000000002,[1,0,0,0,0,0,0],null,"clinical",!1,null,"inv",1,!1,!1,0,"meshes","UCUM","NLen (lineic number)","Clinical","traditional unit of length defined as the number of strands or particles per inch","[in_i]","/[IN_I]","1",1,!1],[!1,"French (catheter gauge) ","[Ch]","[CH]","gauge of catheters",.0003333333333333333,[1,0,0,0,0,0,0],"Ch","clinical",!1,null,null,1,!1,!1,0,"Charri\xE8res, French scales; French gauges; Fr, Fg, Ga, FR, Ch","UCUM","Len; Circ; Diam","Clinical","","mm/3","MM/3","1",1,!1],[!1,"drop - metric (1/20 mL)","[drp]","[DRP]","volume",5e-8,[3,0,0,0,0,0,0],"drp","clinical",!1,null,null,1,!1,!1,0,"drop dosing units; metric drops; gtt","UCUM","Vol","Clinical","standard unit used in the US and internationally for clinical medicine but note that although [drp] is defined as 1/20 milliliter, in practice, drop sizes will vary due to external factors","ml/20","ML/20","1",1,!1],[!1,"Hounsfield unit","[hnsf'U]","[HNSF'U]","x-ray attenuation",1,[0,0,0,0,0,0,0],"HF","clinical",!1,null,null,1,!1,!1,0,"HU; units","UCUM","","Clinical","used to measure X-ray attenuation, especially in CT scans.","1","1","1",1,!1],[!1,"Metabolic Equivalent of Task ","[MET]","[MET]","metabolic cost of physical activity",5833333333333334e-26,[3,-1,-1,0,0,0,0],"MET","clinical",!1,null,null,1,!1,!1,0,"metabolic equivalents","UCUM","RelEngRat","Clinical","unit used to measure rate of energy expenditure per power in treadmill and other functional tests","mL/min/kg","ML/MIN/KG","3.5",3.5,!1],[!1,"homeopathic potency of decimal series (retired)","[hp'_X]","[HP'_X]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,"hpX",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of centesimal series (retired)","[hp'_C]","[HP'_C]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,"hpC",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of millesimal series (retired)","[hp'_M]","[HP'_M]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,"hpM",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of quintamillesimal series (retired)","[hp'_Q]","[HP'_Q]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,"hpQ",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of decimal hahnemannian series","[hp_X]","[HP_X]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of centesimal hahnemannian series","[hp_C]","[HP_C]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of millesimal hahnemannian series","[hp_M]","[HP_M]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of quintamillesimal hahnemannian series","[hp_Q]","[HP_Q]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of decimal korsakovian series","[kp_X]","[KP_X]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of centesimal korsakovian series","[kp_C]","[KP_C]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of millesimal korsakovian series","[kp_M]","[KP_M]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of quintamillesimal korsakovian series","[kp_Q]","[KP_Q]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"equivalent","eq","EQ","amount of substance",60221367e16,[0,0,0,0,0,0,0],"eq","chemical",!0,null,null,1,!1,!1,1,"equivalents","UCUM","Sub","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"osmole","osm","OSM","amount of substance (dissolved particles)",60221367e16,[0,0,0,0,0,0,0],"osm","chemical",!0,null,null,1,!1,!1,1,"osmoles; osmols","UCUM","Osmol","Clinical","the number of moles of solute that contribute to the osmotic pressure of a solution","mol","MOL","1",1,!1],[!1,"pH","[pH]","[PH]","acidity",60221366999999994e10,[-3,0,0,0,0,0,0],"pH","chemical",!1,null,"pH",1,!0,!1,0,"pH scale","UCUM","LogCnc","Clinical","Log concentration of H+","mol/l",null,null,1,!1],[!1,"gram percent","g%","G%","mass concentration",1e4,[-3,0,1,0,0,0,0],"g%","chemical",!0,null,null,1,!1,!1,0,"gram %; gram%; grams per deciliter; g/dL; gm per dL; gram percents","UCUM","MCnc","Clinical","equivalent to unit gram per deciliter (g/dL), a unit often used in medical tests to represent solution concentrations","g/dl","G/DL","1",1,!1],[!1,"Svedberg unit","[S]","[S]","sedimentation coefficient",1e-13,[0,1,0,0,0,0,0],"S","chemical",!1,null,null,1,!1,!1,0,"Sv; 10^-13 seconds; 100 fs; 100 femtoseconds","UCUM","Time","Clinical","unit of time used in measuring particle's sedimentation rate, usually after centrifugation. ","s","10*-13.S","1",1e-13,!1],[!1,"high power field (microscope)","[HPF]","[HPF]","view area in microscope",1,[0,0,0,0,0,0,0],"HPF","chemical",!1,null,null,1,!1,!1,0,"HPF","UCUM","Area","Clinical",`area visible under the maximum magnification power of the objective in microscopy (usually 400x) -`,"1","1","1",1,!1],[!1,"low power field (microscope)","[LPF]","[LPF]","view area in microscope",1,[0,0,0,0,0,0,0],"LPF","chemical",!1,null,null,1,!1,!1,0,"LPF; fields","UCUM","Area","Clinical",`area visible under the low magnification of the objective in microscopy (usually 100 x) -`,"1","1","100",100,!1],[!1,"katal","kat","KAT","catalytic activity",60221367e16,[0,-1,0,0,0,0,0],"kat","chemical",!0,null,null,1,!1,!1,1,"mol/secs; moles per second; mol*sec-1; mol*s-1; mol.s-1; katals; catalytic activity; enzymatic; enzyme units; activities","UCUM","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"enzyme unit","U","U","catalytic activity",100368945e8,[0,-1,0,0,0,0,0],"U","chemical",!0,null,null,1,!1,!1,1,"micromoles per minute; umol/min; umol per minute; umol min-1; enzymatic activity; enzyme activity","UCUM","CAct","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"international unit - arbitrary","[iU]","[IU]","arbitrary",1,[0,0,0,0,0,0,0],"IU","chemical",!0,null,null,1,!1,!0,0,"international units; IE; F2","UCUM","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","1","1","1",1,!1],[!1,"international unit - arbitrary","[IU]","[IU]","arbitrary",1,[0,0,0,0,0,0,0],"i.U.","chemical",!0,null,null,1,!1,!0,0,"international units; IE; F2","UCUM","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"arbitary unit","[arb'U]","[ARB'U]","arbitrary",1,[0,0,0,0,0,0,0],"arb. U","chemical",!1,null,null,1,!1,!0,0,"arbitary units; arb units; arbU","UCUM","Arb","Clinical","relative unit of measurement to show the ratio of test measurement to reference measurement","1","1","1",1,!1],[!1,"United States Pharmacopeia unit","[USP'U]","[USP'U]","arbitrary",1,[0,0,0,0,0,0,0],"U.S.P.","chemical",!1,null,null,1,!1,!0,0,"USP U; USP'U","UCUM","Arb","Clinical","a dose unit to express potency of drugs and vitamins defined by the United States Pharmacopoeia; usually 1 USP = 1 IU","1","1","1",1,!1],[!1,"GPL unit","[GPL'U]","[GPL'U]","biologic activity of anticardiolipin IgG",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"GPL Units; GPL U; IgG anticardiolipin units; IgG Phospholipid","UCUM","ACnc; AMass","Clinical","Units for an antiphospholipid test","1","1","1",1,!1],[!1,"MPL unit","[MPL'U]","[MPL'U]","biologic activity of anticardiolipin IgM",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"MPL units; MPL U; MPL'U; IgM anticardiolipin units; IgM Phospholipid Units ","UCUM","ACnc","Clinical","units for antiphospholipid test","1","1","1",1,!1],[!1,"APL unit","[APL'U]","[APL'U]","biologic activity of anticardiolipin IgA",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"APL units; APL U; IgA anticardiolipin; IgA Phospholipid; biologic activity of","UCUM","AMass; ACnc","Clinical","Units for an anti phospholipid syndrome test","1","1","1",1,!1],[!1,"Bethesda unit","[beth'U]","[BETH'U]","biologic activity of factor VIII inhibitor",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"BU","UCUM","ACnc","Clinical","measures of blood coagulation inhibitior for many blood factors","1","1","1",1,!1],[!1,"anti factor Xa unit","[anti'Xa'U]","[ANTI'XA'U]","biologic activity of factor Xa inhibitor (heparin)",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","ACnc","Clinical","[anti'Xa'U] unit is equivalent to and can be converted to IU/mL. ","1","1","1",1,!1],[!1,"Todd unit","[todd'U]","[TODD'U]","biologic activity antistreptolysin O",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","InvThres; RtoThres","Clinical","the unit for the results of the testing for antistreptolysin O (ASO)","1","1","1",1,!1],[!1,"Dye unit","[dye'U]","[DYE'U]","biologic activity of amylase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","CCnc","Obsolete","equivalent to the Somogyi unit, which is an enzyme unit for amylase but better to use U, the standard enzyme unit for measuring catalytic activity","1","1","1",1,!1],[!1,"Somogyi unit","[smgy'U]","[SMGY'U]","biologic activity of amylase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"Somogyi units; smgy U","UCUM","CAct","Clinical","measures the enzymatic activity of amylase in blood serum - better to use base units mg/mL ","1","1","1",1,!1],[!1,"Bodansky unit","[bdsk'U]","[BDSK'U]","biologic activity of phosphatase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"","UCUM","ACnc","Obsolete","Enzyme unit specific to alkaline phosphatase - better to use standard enzyme unit of U","1","1","1",1,!1],[!1,"King-Armstrong unit","[ka'U]","[KA'U]","biologic activity of phosphatase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"King-Armstrong Units; King units","UCUM","AMass","Obsolete","enzyme units for acid phosphatase - better to use enzyme unit [U]","1","1","1",1,!1],[!1,"Kunkel unit","[knk'U]","[KNK'U]","arbitrary biologic activity",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"Mac Lagan unit","[mclg'U]","[MCLG'U]","arbitrary biologic activity",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"galactose index; galactose tolerance test; thymol turbidity test unit; mclg U; units; indexes","UCUM","ACnc","Obsolete","unit for liver tests - previously used in thymol turbidity tests for liver disease diagnoses, and now is sometimes referred to in the oral galactose tolerance test","1","1","1",1,!1],[!1,"tuberculin unit","[tb'U]","[TB'U]","biologic activity of tuberculin",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"TU; units","UCUM","Arb","Clinical","amount of tuberculin antigen -usually in reference to a TB skin test ","1","1","1",1,!1],[!1,"50% cell culture infectious dose","[CCID_50]","[CCID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"CCID50","chemical",!1,null,null,1,!1,!0,0,"CCID50; 50% cell culture infective doses","UCUM","NumThres","Clinical","","1","1","1",1,!1],[!1,"50% tissue culture infectious dose","[TCID_50]","[TCID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"TCID50","chemical",!1,null,null,1,!1,!0,0,"TCID50; 50% tissue culture infective dose","UCUM","NumThres","Clinical","","1","1","1",1,!1],[!1,"50% embryo infectious dose","[EID_50]","[EID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"EID50","chemical",!1,null,null,1,!1,!0,0,"EID50; 50% embryo infective doses; EID50 Egg Infective Dosage","UCUM","thresNum","Clinical","","1","1","1",1,!1],[!1,"plaque forming units","[PFU]","[PFU]","amount of an infectious agent",1,[0,0,0,0,0,0,0],"PFU","chemical",!1,null,null,1,!1,!0,0,"PFU","UCUM","ACnc","Clinical","tests usually report unit as number of PFU per unit volume","1","1","1",1,!1],[!1,"focus forming units (cells)","[FFU]","[FFU]","amount of an infectious agent",1,[0,0,0,0,0,0,0],"FFU","chemical",!1,null,null,1,!1,!0,0,"FFU","UCUM","EntNum","Clinical","","1","1","1",1,!1],[!1,"colony forming units","[CFU]","[CFU]","amount of a proliferating organism",1,[0,0,0,0,0,0,0],"CFU","chemical",!1,null,null,1,!1,!0,0,"CFU","UCUM","Num","Clinical","","1","1","1",1,!1],[!1,"index of reactivity (allergen)","[IR]","[IR]","amount of an allergen callibrated through in-vivo testing using the Stallergenes\xAE method.",1,[0,0,0,0,0,0,0],"IR","chemical",!1,null,null,1,!1,!0,0,"IR; indexes","UCUM","Acnc","Clinical","amount of an allergen callibrated through in-vivo testing using the Stallergenes method. Usually reported in tests as IR/mL","1","1","1",1,!1],[!1,"bioequivalent allergen unit","[BAU]","[BAU]","amount of an allergen callibrated through in-vivo testing based on the ID50EAL method of (intradermal dilution for 50mm sum of erythema diameters",1,[0,0,0,0,0,0,0],"BAU","chemical",!1,null,null,1,!1,!0,0,"BAU; Bioequivalent Allergy Units; bioequivalent allergen units","UCUM","Arb","Clinical","","1","1","1",1,!1],[!1,"allergy unit","[AU]","[AU]","procedure defined amount of an allergen using some reference standard",1,[0,0,0,0,0,0,0],"AU","chemical",!1,null,null,1,!1,!0,0,"allergy units; allergen units; AU","UCUM","Arb","Clinical","Most standard test allergy units are reported as [IU] or as %. ","1","1","1",1,!1],[!1,"allergen unit for Ambrosia artemisiifolia","[Amb'a'1'U]","[AMB'A'1'U]","procedure defined amount of the major allergen of ragweed.",1,[0,0,0,0,0,0,0],"Amb a 1 U","chemical",!1,null,null,1,!1,!0,0,"Amb a 1 unit; Antigen E; AgE U; allergen units","UCUM","Arb","Clinical","Amb a 1 is the major allergen in short ragweed, and can be converted Bioequivalent allergen units (BAU) where 350 Amb a 1 U/mL = 100,000 BAU/mL","1","1","1",1,!1],[!1,"protein nitrogen unit (allergen testing)","[PNU]","[PNU]","procedure defined amount of a protein substance",1,[0,0,0,0,0,0,0],"PNU","chemical",!1,null,null,1,!1,!0,0,"protein nitrogen units; PNU","UCUM","Mass","Clinical","defined as 0.01 ug of phosphotungstic acid-precipitable protein nitrogen. Being replaced by bioequivalent allergy units (BAU).","1","1","1",1,!1],[!1,"Limit of flocculation","[Lf]","[LF]","procedure defined amount of an antigen substance",1,[0,0,0,0,0,0,0],"Lf","chemical",!1,null,null,1,!1,!0,0,"Lf doses","UCUM","Arb","Clinical","the antigen content forming 1:1 ratio against 1 unit of antitoxin","1","1","1",1,!1],[!1,"D-antigen unit (polio)","[D'ag'U]","[D'AG'U]","procedure defined amount of a poliomyelitis d-antigen substance",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"DAgU; units","UCUM","Acnc","Clinical","unit of potency of poliovirus vaccine used for poliomyelitis prevention reported as D antigen units/mL. The unit is poliovirus type-specific.","1","1","1",1,!1],[!1,"fibrinogen equivalent units","[FEU]","[FEU]","amount of fibrinogen broken down into the measured d-dimers",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"FEU","UCUM","MCnc","Clinical","Note both the FEU and DDU units are used to report D-dimer measurements. 1 DDU = 1/2 FFU","1","1","1",1,!1],[!1,"ELISA unit","[ELU]","[ELU]","arbitrary ELISA unit",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"Enzyme-Linked Immunosorbent Assay Units; ELU; EL. U","UCUM","ACnc","Clinical","","1","1","1",1,!1],[!1,"Ehrlich units (urobilinogen)","[EU]","[EU]","Ehrlich unit",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"EU/dL; mg{urobilinogen}/dL","UCUM","ACnc","Clinical","","1","1","1",1,!1],[!1,"neper","Np","NEP","level",1,[0,0,0,0,0,0,0],"Np","levels",!0,null,"ln",1,!0,!1,0,"nepers","UCUM","LogRto","Clinical","logarithmic unit for ratios of measurements of physical field and power quantities, such as gain and loss of electronic signals","1",null,null,1,!1],[!1,"bel","B","B","level",1,[0,0,0,0,0,0,0],"B","levels",!0,null,"lg",1,!0,!1,0,"bels","UCUM","LogRto","Clinical","Logarithm of the ratio of power- or field-type quantities; usually expressed in decibels ","1",null,null,1,!1],[!1,"bel sound pressure","B[SPL]","B[SPL]","pressure level",.019999999999999997,[-1,-2,1,0,0,0,0],"B(SPL)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel SPL; B SPL; sound pressure bels","UCUM","LogRto","Clinical","used to measure sound level in acoustics","Pa",null,null,19999999999999998e-21,!1],[!1,"bel volt","B[V]","B[V]","electric potential level",1e3,[2,-2,1,0,0,-1,0],"B(V)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel V; B V; volts bels","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","V",null,null,1,!1],[!1,"bel millivolt","B[mV]","B[MV]","electric potential level",1,[2,-2,1,0,0,-1,0],"B(mV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel mV; B mV; millivolt bels; 10^-3V bels; 10*-3V ","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","mV",null,null,1,!1],[!1,"bel microvolt","B[uV]","B[UV]","electric potential level",.001,[2,-2,1,0,0,-1,0],"B(\u03BCV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel uV; B uV; microvolts bels; 10^-6V bel; 10*-6V bel","UCUM","LogRto","Clinical","used to express power gain in electrical circuits","uV",null,null,1,!1],[!1,"bel 10 nanovolt","B[10.nV]","B[10.NV]","electric potential level",10000000000000003e-21,[2,-2,1,0,0,-1,0],"B(10 nV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel 10 nV; B 10 nV; 10 nanovolts bels","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","nV",null,null,10,!1],[!1,"bel watt","B[W]","B[W]","power level",1e3,[2,-3,1,0,0,0,0],"B(W)","levels",!0,null,"lg",1,!0,!1,0,"bel W; b W; b Watt; Watts bels","UCUM","LogRto","Clinical","used to express power","W",null,null,1,!1],[!1,"bel kilowatt","B[kW]","B[KW]","power level",1e6,[2,-3,1,0,0,0,0],"B(kW)","levels",!0,null,"lg",1,!0,!1,0,"bel kW; B kW; kilowatt bel; kW bel; kW B","UCUM","LogRto","Clinical","used to express power","kW",null,null,1,!1],[!1,"stere","st","STR","volume",1,[3,0,0,0,0,0,0],"st","misc",!0,null,null,1,!1,!1,0,"st\xE8re; m3; cubic meter; m^3; meters cubed; metre","UCUM","Vol","Nonclinical","equal to one cubic meter, usually used for measuring firewood","m3","M3","1",1,!1],[!1,"\xC5ngstr\xF6m","Ao","AO","length",10000000000000002e-26,[1,0,0,0,0,0,0],"\xC5","misc",!1,null,null,1,!1,!1,0,"\xC5; Angstroms; Ao; \xC5ngstr\xF6ms","UCUM","Len","Clinical","equal to 10^-10 meters; used to express wave lengths and atom scaled differences ","nm","NM","0.1",.1,!1],[!1,"barn","b","BRN","action area",10000000000000001e-44,[2,0,0,0,0,0,0],"b","misc",!1,null,null,1,!1,!1,0,"barns","UCUM","Area","Clinical","used in high-energy physics to express cross-sectional areas","fm2","FM2","100",100,!1],[!1,"technical atmosphere","att","ATT","pressure",98066500,[-1,-2,1,0,0,0,0],"at","misc",!1,null,null,1,!1,!1,0,"at; tech atm; tech atmosphere; kgf/cm2; atms; atmospheres","UCUM","Pres","Obsolete","non-SI unit of pressure equal to one kilogram-force per square centimeter","kgf/cm2","KGF/CM2","1",1,!1],[!1,"mho","mho","MHO","electric conductance",.001,[-2,1,-1,0,0,2,0],"mho","misc",!0,null,null,1,!1,!1,0,"siemens; ohm reciprocals; \u03A9^\u22121; \u03A9-1 ","UCUM","","Obsolete","unit of electric conductance (the inverse of electrical resistance) equal to ohm^-1","S","S","1",1,!1],[!1,"pound per square inch","[psi]","[PSI]","pressure",6894757293168359e-9,[-1,-2,1,0,0,0,0],"psi","misc",!1,null,null,1,!1,!1,0,"psi; lb/in2; lb per in2","UCUM","Pres","Clinical","","[lbf_av]/[in_i]2","[LBF_AV]/[IN_I]2","1",1,!1],[!1,"circle - plane angle","circ","CIRC","plane angle",6.283185307179586,[0,0,0,1,0,0,0],"circ","misc",!1,null,null,1,!1,!1,0,"angles; circles","UCUM","Angle","Clinical","","[pi].rad","[PI].RAD","2",2,!1],[!1,"spere - solid angle","sph","SPH","solid angle",12.566370614359172,[0,0,0,2,0,0,0],"sph","misc",!1,null,null,1,!1,!1,0,"speres","UCUM","Angle","Clinical","equal to the solid angle of an entire sphere = 4\u03C0sr (sr = steradian) ","[pi].sr","[PI].SR","4",4,!1],[!1,"metric carat","[car_m]","[CAR_M]","mass",.2,[0,0,1,0,0,0,0],"ctm","misc",!1,null,null,1,!1,!1,0,"carats; ct; car m","UCUM","Mass","Nonclinical","unit of mass for gemstones","g","G","2e-1",.2,!1],[!1,"carat of gold alloys","[car_Au]","[CAR_AU]","mass fraction",.041666666666666664,[0,0,0,0,0,0,0],"ctAu","misc",!1,null,null,1,!1,!1,0,"karats; k; kt; car au; carats","UCUM","MFr","Nonclinical","unit of purity for gold alloys","/24","/24","1",1,!1],[!1,"Smoot","[smoot]","[SMOOT]","length",1.7018000000000002,[1,0,0,0,0,0,0],null,"misc",!1,null,null,1,!1,!1,0,"","UCUM","Len","Nonclinical","prank unit of length from MIT","[in_i]","[IN_I]","67",67,!1],[!1,"meter per square seconds per square root of hertz","[m/s2/Hz^(1/2)]","[M/S2/HZ^(1/2)]","amplitude spectral density",1,[2,-3,0,0,0,0,0],null,"misc",!1,null,"sqrt",1,!0,!1,0,"m/s2/(Hz^.5); m/s2/(Hz^(1/2)); m per s2 per Hz^1/2","UCUM","","Constant",`measures amplitude spectral density, and is equal to the square root of power spectral density - `,"m2/s4/Hz",null,null,1,!1],[!1,"bit - logarithmic","bit_s","BIT_S","amount of information",1,[0,0,0,0,0,0,0],"bits","infotech",!1,null,"ld",1,!0,!1,0,"bit-s; bit s; bit logarithmic","UCUM","LogA","Nonclinical",`defined as the log base 2 of the number of distinct signals; cannot practically be used to express more than 1000 bits - -In information theory, the definition of the amount of self-information and information entropy is often expressed with the binary logarithm (log base 2)`,"1",null,null,1,!1],[!1,"bit","bit","BIT","amount of information",1,[0,0,0,0,0,0,0],"bit","infotech",!0,null,null,1,!1,!1,0,"bits","UCUM","","Nonclinical","dimensionless information unit of 1 used in computing and digital communications","1","1","1",1,!1],[!1,"byte","By","BY","amount of information",8,[0,0,0,0,0,0,0],"B","infotech",!0,null,null,1,!1,!1,0,"bytes","UCUM","","Nonclinical","equal to 8 bits","bit","bit","8",8,!1],[!1,"baud","Bd","BD","signal transmission rate",1,[0,1,0,0,0,0,0],"Bd","infotech",!0,null,"inv",1,!1,!1,0,"Bd; bauds","UCUM","Freq","Nonclinical","unit to express rate in symbols per second or pulses per second. ","s","/s","1",1,!1],[!1,"per twelve hour","/(12.h)","1/(12.HR)","",23148148148148147e-21,[0,-1,0,0,0,0,0],"/h",null,!1,null,null,1,!1,!1,0,"per 12 hours; 12hrs; 12 hrs; /12hrs","LOINC","Rat","Clinical","",null,null,null,null,!1],[!1,"per arbitrary unit","/[arb'U]","1/[ARB'U]","",1,[0,0,0,0,0,0,0],"/arb/ U",null,!1,null,null,1,!1,!0,0,"/arbU","LOINC","InvA ","Clinical","",null,null,null,null,!1],[!1,"per high power field","/[HPF]","1/[HPF]","",1,[0,0,0,0,0,0,0],"/HPF",null,!1,null,null,1,!1,!1,0,"/HPF; per HPF","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per international unit","/[IU]","1/[IU]","",1,[0,0,0,0,0,0,0],"/i/U.",null,!1,null,null,1,!1,!0,0,"international units; /IU; per IU","LOINC","InvA","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)",null,null,null,null,!1],[!1,"per low power field","/[LPF]","1/[LPF]","",1,[0,0,0,0,0,0,0],"/LPF",null,!1,null,null,1,!1,!1,0,"/LPF; per LPF","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per 10 billion ","/10*10","1/(10*10)","",1e-10,[0,0,0,0,0,0,0],"/1010",null,!1,null,null,1,!1,!1,0,"/10^10; per 10*10","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per trillion ","/10*12","1/(10*12)","",1e-12,[0,0,0,0,0,0,0],"/1012",null,!1,null,null,1,!1,!1,0,"/10^12; per 10*12","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per thousand","/10*3","1/(10*3)","",.001,[0,0,0,0,0,0,0],"/103",null,!1,null,null,1,!1,!1,0,"/10^3; per 10*3","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per million","/10*6","1/(10*6)","",1e-6,[0,0,0,0,0,0,0],"/106",null,!1,null,null,1,!1,!1,0,"/10^6; per 10*6;","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per billion","/10*9","1/(10*9)","",1e-9,[0,0,0,0,0,0,0],"/109",null,!1,null,null,1,!1,!1,0,"/10^9; per 10*9","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per 100","/100","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"per hundred; 10^2; 10*2","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per 100 cells","/100{cells}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 cells; /100cells; per hundred","LOINC","EntMass; EntNum; NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 neutrophils","/100{neutrophils}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 neutrophils; /100neutrophils; per hundred","LOINC","EntMass; EntNum; NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 spermatozoa","/100{spermatozoa}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 spermatozoa; /100spermatozoa; per hundred","LOINC","NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 white blood cells","/100{WBCs}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 WBCs; /100WBCs; per hundred","LOINC","Ratio; NFr","Clinical","",null,null,null,null,!1],[!1,"per year","/a","1/ANN","",3168808781402895e-23,[0,-1,0,0,0,0,0],"/a",null,!1,null,null,1,!1,!1,0,"/Years; /yrs; yearly","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per centimeter of water","/cm[H2O]","1/CM[H2O]","",10197162129779282e-21,[1,2,-1,0,0,0,0],"/cm\xA0HO2",null,!1,null,null,1,!1,!1,0,"/cmH2O; /cm H2O; centimeters; centimetres","LOINC","InvPress","Clinical","",null,null,null,null,!1],[!1,"per day","/d","1/D","",11574074074074073e-21,[0,-1,0,0,0,0,0],"/d",null,!1,null,null,1,!1,!1,0,"/dy; per day","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per deciliter","/dL","1/DL","",1e4,[-3,0,0,0,0,0,0],"/dL",null,!1,null,null,1,!1,!1,0,"per dL; /deciliter; decilitre","LOINC","NCnc","Clinical","",null,null,null,null,!1],[!1,"per gram","/g","1/G","",1,[0,0,-1,0,0,0,0],"/g",null,!1,null,null,1,!1,!1,0,"/gm; /gram; per g","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per hour","/h","1/HR","",.0002777777777777778,[0,-1,0,0,0,0,0],"/h",null,!1,null,null,1,!1,!1,0,"/hr; /hour; per hr","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per kilogram","/kg","1/KG","",.001,[0,0,-1,0,0,0,0],"/kg",null,!1,null,null,1,!1,!1,0,"per kg; per kilogram","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per liter","/L","1/L","",1e3,[-3,0,0,0,0,0,0],"/L",null,!1,null,null,1,!1,!1,0,"/liter; litre","LOINC","NCnc","Clinical","",null,null,null,null,!1],[!1,"per square meter","/m2","1/M2","",1,[-2,0,0,0,0,0,0],"/m2",null,!1,null,null,1,!1,!1,0,"/m^2; /m*2; /sq. m; per square meter; meter squared; metre","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per cubic meter","/m3","1/M3","",1,[-3,0,0,0,0,0,0],"/m3",null,!1,null,null,1,!1,!1,0,"/m^3; /m*3; /cu. m; per cubic meter; meter cubed; per m3; metre","LOINC","NCncn","Clinical","",null,null,null,null,!1],[!1,"per milligram","/mg","1/MG","",1e3,[0,0,-1,0,0,0,0],"/mg",null,!1,null,null,1,!1,!1,0,"/milligram; per mg","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per minute","/min","1/MIN","",.016666666666666666,[0,-1,0,0,0,0,0],"/min",null,!1,null,null,1,!1,!1,0,"/minute; per mins; breaths beats per minute","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per milliliter","/mL","1/ML","",1e6,[-3,0,0,0,0,0,0],"/mL",null,!1,null,null,1,!1,!1,0,"/milliliter; per mL; millilitre","LOINC","NCncn","Clinical","",null,null,null,null,!1],[!1,"per millimeter","/mm","1/MM","",1e3,[-1,0,0,0,0,0,0],"/mm",null,!1,null,null,1,!1,!1,0,"/millimeter; per mm; millimetre","LOINC","InvLen","Clinical","",null,null,null,null,!1],[!1,"per month","/mo","1/MO","",3802570537683474e-22,[0,-1,0,0,0,0,0],"/mo",null,!1,null,null,1,!1,!1,0,"/month; per mo; monthly; month","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per second","/s","1/S","",1,[0,-1,0,0,0,0,0],"/s",null,!1,null,null,1,!1,!1,0,"/second; /sec; per sec; frequency; Hertz; Herz; Hz; becquerels; Bq; s-1; s^-1","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per enzyme unit","/U","1/U","",9963241120049633e-32,[0,1,0,0,0,0,0],"/U",null,!1,null,null,1,!1,!1,-1,"/enzyme units; per U","LOINC","InvC; NCat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)",null,null,null,null,!1],[!1,"per microliter","/uL","1/UL","",9999999999999999e-7,[-3,0,0,0,0,0,0],"/\u03BCL",null,!1,null,null,1,!1,!1,0,"/microliter; microlitre; /mcl; per uL","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"per week","/wk","1/WK","",16534391534391535e-22,[0,-1,0,0,0,0,0],"/wk",null,!1,null,null,1,!1,!1,0,"/week; per wk; weekly, weeks","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"APL unit per milliliter","[APL'U]/mL","[APL'U]/ML","biologic activity of anticardiolipin IgA",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"APL/mL; APL'U/mL; APL U/mL; APL/milliliter; IgA anticardiolipin units per milliliter; IgA Phospholipid Units; millilitre; biologic activity of","LOINC","ACnc","Clinical","Units for an anti phospholipid syndrome test","1","1","1",1,!1],[!1,"arbitrary unit per milliliter","[arb'U]/mL","[ARB'U]/ML","arbitrary",1e6,[-3,0,0,0,0,0,0],"(arb. U)/mL","chemical",!1,null,null,1,!1,!0,0,"arb'U/mL; arbU/mL; arb U/mL; arbitrary units per milliliter; millilitre","LOINC","ACnc","Clinical","relative unit of measurement to show the ratio of test measurement to reference measurement","1","1","1",1,!1],[!1,"colony forming units per liter","[CFU]/L","[CFU]/L","amount of a proliferating organism",1e3,[-3,0,0,0,0,0,0],"CFU/L","chemical",!1,null,null,1,!1,!0,0,"CFU per Liter; CFU/L","LOINC","NCnc","Clinical","","1","1","1",1,!1],[!1,"colony forming units per milliliter","[CFU]/mL","[CFU]/ML","amount of a proliferating organism",1e6,[-3,0,0,0,0,0,0],"CFU/mL","chemical",!1,null,null,1,!1,!0,0,"CFU per mL; CFU/mL","LOINC","NCnc","Clinical","","1","1","1",1,!1],[!1,"foot per foot - US","[ft_us]/[ft_us]","[FT_US]/[FT_US]","length",1,[0,0,0,0,0,0,0],"(ftus)/(ftus)","us-lengths",!1,null,null,1,!1,!1,0,"ft/ft; ft per ft; feet per feet; visual acuity","","LenRto","Clinical","distance ratio to measure 20:20 vision","m/3937","M/3937","1200",1200,!1],[!1,"GPL unit per milliliter","[GPL'U]/mL","[GPL'U]/ML","biologic activity of anticardiolipin IgG",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"GPL U/mL; GPL'U/mL; GPL/mL; GPL U per mL; IgG Phospholipid Units per milliliters; IgG anticardiolipin units; millilitres ","LOINC","ACnc; AMass","Clinical","Units for an antiphospholipid test","1","1","1",1,!1],[!1,"international unit per 2 hour","[IU]/(2.h)","[IU]/(2.HR)","arbitrary",.0001388888888888889,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/2hrs; IU/2 hours; IU per 2 hrs; international units per 2 hours","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per 24 hour","[IU]/(24.h)","[IU]/(24.HR)","arbitrary",11574074074074073e-21,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/24hr; IU/24 hours; IU per 24 hrs; international units per 24 hours","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per day","[IU]/d","[IU]/D","arbitrary",11574074074074073e-21,[0,-1,0,0,0,0,0],"(i.U.)/d","chemical",!0,null,null,1,!1,!0,0,"IU/dy; IU/days; IU per dys; international units per day","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per deciliter","[IU]/dL","[IU]/DL","arbitrary",1e4,[-3,0,0,0,0,0,0],"(i.U.)/dL","chemical",!0,null,null,1,!1,!0,0,"IU/dL; IU per dL; international units per deciliters; decilitres","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per gram","[IU]/g","[IU]/G","arbitrary",1,[0,0,-1,0,0,0,0],"(i.U.)/g","chemical",!0,null,null,1,!1,!0,0,"IU/gm; IU/gram; IU per gm; IU per g; international units per gram","LOINC","ACnt","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per hour","[IU]/h","[IU]/HR","arbitrary",.0002777777777777778,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/hrs; IU per hours; international units per hour","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per kilogram","[IU]/kg","[IU]/KG","arbitrary",.001,[0,0,-1,0,0,0,0],"(i.U.)/kg","chemical",!0,null,null,1,!1,!0,0,"IU/kg; IU/kilogram; IU per kg; units","LOINC","ACnt","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per kilogram per day","[IU]/kg/d","([IU]/KG)/D","arbitrary",11574074074074074e-24,[0,-1,-1,0,0,0,0],"((i.U.)/kg)/d","chemical",!0,null,null,1,!1,!0,0,"IU/kg/dy; IU/kg/day; IU/kilogram/day; IU per kg per day; units","LOINC","ACntRat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per liter","[IU]/L","[IU]/L","arbitrary",1e3,[-3,0,0,0,0,0,0],"(i.U.)/L","chemical",!0,null,null,1,!1,!0,0,"IU/L; IU/liter; IU per liter; units; litre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per minute","[IU]/min","[IU]/MIN","arbitrary",.016666666666666666,[0,-1,0,0,0,0,0],"(i.U.)/min","chemical",!0,null,null,1,!1,!0,0,"IU/min; IU/minute; IU per minute; international units","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per milliliter","[IU]/mL","[IU]/ML","arbitrary",1e6,[-3,0,0,0,0,0,0],"(i.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"IU/mL; IU per mL; international units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"MPL unit per milliliter","[MPL'U]/mL","[MPL'U]/ML","biologic activity of anticardiolipin IgM",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"MPL/mL; MPL U/mL; MPL'U/mL; IgM anticardiolipin units; IgM Phospholipid Units; millilitre ","LOINC","ACnc","Clinical",`units for antiphospholipid test -`,"1","1","1",1,!1],[!1,"number per high power field","{#}/[HPF]","{#}/[HPF]","",1,[0,0,0,0,0,0,0],"/HPF",null,!1,null,null,1,!1,!1,0,"#/HPF; # per HPF; number/HPF; numbers per high power field","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"number per low power field","{#}/[LPF]","{#}/[LPF]","",1,[0,0,0,0,0,0,0],"/LPF",null,!1,null,null,1,!1,!1,0,"#/LPF; # per LPF; number/LPF; numbers per low power field","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"IgA antiphosphatidylserine unit ","{APS'U}","{APS'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"APS Unit; Phosphatidylserine Antibody IgA Units","LOINC","ACnc","Clinical","unit for antiphospholipid test",null,null,null,null,!1],[!1,"EIA index","{EIA_index}","{EIA_index}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"enzyme immunoassay index","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"kaolin clotting time","{KCT'U}","{KCT'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"KCT","LOINC","Time","Clinical","sensitive\xA0test to detect\xA0lupus anticoagulants; measured in seconds",null,null,null,null,!1],[!1,"IgM antiphosphatidylserine unit","{MPS'U}","{MPS'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"Phosphatidylserine Antibody IgM Measurement ","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"trillion per liter","10*12/L","(10*12)/L","number",1e15,[-3,0,0,0,0,0,0],"(1012)/L","dimless",!1,null,null,1,!1,!1,0,"10^12/L; 10*12 per Liter; trillion per liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^3 (used for cell count)","10*3","10*3","number",1e3,[0,0,0,0,0,0,0],"103","dimless",!1,null,null,1,!1,!1,0,"10^3; thousand","LOINC","Num","Clinical","usually used for counting entities (e.g. blood cells) per volume","1","1","10",10,!1],[!1,"thousand per liter","10*3/L","(10*3)/L","number",1e6,[-3,0,0,0,0,0,0],"(103)/L","dimless",!1,null,null,1,!1,!1,0,"10^3/L; 10*3 per liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"thousand per milliliter","10*3/mL","(10*3)/ML","number",1e9,[-3,0,0,0,0,0,0],"(103)/mL","dimless",!1,null,null,1,!1,!1,0,"10^3/mL; 10*3 per mL; thousand per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"thousand per microliter","10*3/uL","(10*3)/UL","number",9999999999999999e-4,[-3,0,0,0,0,0,0],"(103)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^3/uL; 10*3 per uL; thousand per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10 thousand per microliter","10*4/uL","(10*4)/UL","number",1e13,[-3,0,0,0,0,0,0],"(104)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^4/uL; 10*4 per uL; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^5 ","10*5","10*5","number",1e5,[0,0,0,0,0,0,0],"105","dimless",!1,null,null,1,!1,!1,0,"one hundred thousand","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"10^6","10*6","10*6","number",1e6,[0,0,0,0,0,0,0],"106","dimless",!1,null,null,1,!1,!1,0,"","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"million colony forming unit per liter","10*6.[CFU]/L","((10*6).[CFU])/L","number",1e9,[-3,0,0,0,0,0,0],"((106).CFU)/L","dimless",!1,null,null,1,!1,!0,0,"10*6 CFU/L; 10^6 CFU/L; 10^6CFU; 10^6 CFU per liter; million colony forming units; litre","LOINC","ACnc","Clinical","","1","1","10",10,!1],[!1,"million international unit","10*6.[IU]","(10*6).[IU]","number",1e6,[0,0,0,0,0,0,0],"(106).(i.U.)","dimless",!1,null,null,1,!1,!0,0,"10*6 IU; 10^6 IU; international units","LOINC","arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","1","1","10",10,!1],[!1,"million per 24 hour","10*6/(24.h)","(10*6)/(24.HR)","number",11.574074074074074,[0,-1,0,0,0,0,0],"(106)/h","dimless",!1,null,null,1,!1,!1,0,"10*6/24hrs; 10^6/24 hrs; 10*6 per 24 hrs; 10^6 per 24 hours","LOINC","NRat","Clinical","","1","1","10",10,!1],[!1,"million per kilogram","10*6/kg","(10*6)/KG","number",1e3,[0,0,-1,0,0,0,0],"(106)/kg","dimless",!1,null,null,1,!1,!1,0,"10^6/kg; 10*6 per kg; 10*6 per kilogram; millions","LOINC","NCnt","Clinical","","1","1","10",10,!1],[!1,"million per liter","10*6/L","(10*6)/L","number",1e9,[-3,0,0,0,0,0,0],"(106)/L","dimless",!1,null,null,1,!1,!1,0,"10^6/L; 10*6 per Liter; 10^6 per Liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"million per milliliter","10*6/mL","(10*6)/ML","number",1e12,[-3,0,0,0,0,0,0],"(106)/mL","dimless",!1,null,null,1,!1,!1,0,"10^6/mL; 10*6 per mL; 10*6 per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"million per microliter","10*6/uL","(10*6)/UL","number",1e15,[-3,0,0,0,0,0,0],"(106)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^6/uL; 10^6 per uL; 10^6/mcl; 10^6 per mcl; 10^6 per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^8","10*8","10*8","number",1e8,[0,0,0,0,0,0,0],"108","dimless",!1,null,null,1,!1,!1,0,"100 million; one hundred million; 10^8","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"billion per liter","10*9/L","(10*9)/L","number",1e12,[-3,0,0,0,0,0,0],"(109)/L","dimless",!1,null,null,1,!1,!1,0,"10^9/L; 10*9 per Liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"billion per milliliter","10*9/mL","(10*9)/ML","number",1e15,[-3,0,0,0,0,0,0],"(109)/mL","dimless",!1,null,null,1,!1,!1,0,"10^9/mL; 10*9 per mL; 10^9 per mL; 10*9 per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"billion per microliter","10*9/uL","(10*9)/UL","number",1e18,[-3,0,0,0,0,0,0],"(109)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^9/uL; 10^9 per uL; 10^9/mcl; 10^9 per mcl; 10*9 per uL; 10*9 per mcl; 10*9/mcl; 10^9 per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10 liter per minute per square meter","10.L/(min.m2)","(10.L)/(MIN.M2)","",.00016666666666666666,[1,-1,0,0,0,0,0],"L/(min.(m2))",null,!1,null,null,1,!1,!1,0,"10 liters per minutes per square meter; 10 L per min per m2; m^2; 10 L/(min*m2); 10L/(min*m^2); litres; sq. meter; metre; meters squared","LOINC","ArVRat","Clinical","",null,null,null,null,!1],[!1,"10 liter per minute","10.L/min","(10.L)/MIN","",.00016666666666666666,[3,-1,0,0,0,0,0],"L/min",null,!1,null,null,1,!1,!1,0,"10 liters per minute; 10 L per min; 10L; 10 L/min; litre","LOINC","VRat","Clinical","",null,null,null,null,!1],[!1,"10 micronewton second per centimeter to the fifth power per square meter","10.uN.s/(cm5.m2)","((10.UN).S)/(CM5.M2)","",1e8,[-6,-1,1,0,0,0,0],"(\u03BCN.s)/(cm5).(m2)",null,!1,null,null,1,!1,!1,0,"dyne seconds per centimeter5 and square meter; dyn.s/(cm5.m2); dyn.s/cm5/m2; cm^5; m^2","LOINC","","Clinical","unit to measure systemic vascular resistance per body surface area",null,null,null,null,!1],[!1,"24 hour","24.h","24.HR","",86400,[0,1,0,0,0,0,0],"h",null,!1,null,null,1,!1,!1,0,"24hrs; 24 hrs; 24 hours; days; dy","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"ampere per meter","A/m","A/M","electric current",1,[-1,-1,0,0,0,1,0],"A/m","si",!0,null,null,1,!1,!1,0,"A/m; amp/meter; magnetic field strength; H; B; amperes per meter; metre","LOINC","","Clinical","unit of magnetic field strength","C/s","C/S","1",1,!1],[!1,"centigram","cg","CG","mass",.01,[0,0,1,0,0,0,0],"cg",null,!1,"M",null,1,!1,!1,0,"centigrams; cg; cgm","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"centiliter","cL","CL","volume",1e-5,[3,0,0,0,0,0,0],"cL","iso1000",!0,null,null,1,!1,!1,0,"centiliters; centilitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"centimeter","cm","CM","length",.01,[1,0,0,0,0,0,0],"cm",null,!1,"L",null,1,!1,!1,0,"centimeters; centimetres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"centimeter of water","cm[H2O]","CM[H2O]","pressure",98066.5,[-1,-2,1,0,0,0,0],"cm\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"cm H2O; cmH2O; centimetres; pressure","LOINC","Pres","Clinical","unit of pressure mostly applies to blood pressure","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of water per liter per second","cm[H2O]/L/s","(CM[H2O]/L)/S","pressure",98066500,[-4,-3,1,0,0,0,0],"((cm\xA0HO2)/L)/s","clinical",!0,null,null,1,!1,!1,0,"cm[H2O]/(L/s); cm[H2O].s/L; cm H2O/L/sec; cmH2O/L/sec; cmH2O/Liter; cmH2O per L per secs; centimeters of water per liters per second; centimetres; litres; cm[H2O]/(L/s)","LOINC","PresRat","Clinical","unit used to measure mean pulmonary resistance","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of water per second per meter","cm[H2O]/s/m","(CM[H2O]/S)/M","pressure",98066.5,[-2,-3,1,0,0,0,0],"((cm\xA0HO2)/s)/m","clinical",!0,null,null,1,!1,!1,0,"cm[H2O]/(s.m); cm H2O/s/m; cmH2O; cmH2O/sec/m; cmH2O per secs per meters; centimeters of water per seconds per meter; centimetres; metre","LOINC","PresRat","Clinical","unit used to measure pulmonary pressure time product","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of mercury","cm[Hg]","CM[HG]","pressure",1333220,[-1,-2,1,0,0,0,0],"cm\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"centimeters of mercury; centimetres; cmHg; cm Hg","LOINC","Pres","Clinical","unit of pressure where 1 cmHg = 10 torr","kPa","KPAL","133.3220",133.322,!1],[!1,"square centimeter","cm2","CM2","length",1e-4,[2,0,0,0,0,0,0],"cm2",null,!1,"L",null,1,!1,!1,0,"cm^2; sq cm; centimeters squared; square centimeters; centimetre; area","LOINC","Area","Clinical","",null,null,null,null,!1],[!1,"square centimeter per second","cm2/s","CM2/S","length",1e-4,[2,-1,0,0,0,0,0],"(cm2)/s",null,!1,"L",null,1,!1,!1,0,"cm^2/sec; square centimeters per second; sq cm per sec; cm2; centimeters squared; centimetres","LOINC","AreaRat","Clinical","",null,null,null,null,!1],[!1,"centipoise","cP","CP","dynamic viscosity",1.0000000000000002,[-1,-1,1,0,0,0,0],"cP","cgs",!0,null,null,1,!1,!1,0,"cps; centiposes","LOINC","Visc","Clinical","unit of dynamic viscosity in the CGS system with base units: 10^\u22123 Pa.s = 1 mPa\xB7.s (1 millipascal second)","dyn.s/cm2","DYN.S/CM2","1",1,!1],[!1,"centistoke","cSt","CST","kinematic viscosity",1e-6,[2,-1,0,0,0,0,0],"cSt","cgs",!0,null,null,1,!1,!1,0,"centistokes","LOINC","Visc","Clinical","unit for kinematic viscosity with base units of mm^2/s (square millimeter per second)","cm2/s","CM2/S","1",1,!1],[!1,"dekaliter per minute","daL/min","DAL/MIN","volume",.00016666666666666666,[3,-1,0,0,0,0,0],"daL/min","iso1000",!0,null,null,1,!1,!1,0,"dekalitres; dekaliters per minute; per min","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"dekaliter per minute per square meter","daL/min/m2","(DAL/MIN)/M2","volume",.00016666666666666666,[1,-1,0,0,0,0,0],"(daL/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"daL/min/m^2; daL/minute/m2; sq. meter; dekaliters per minutes per square meter; meter squared; dekalitres; metre","LOINC","ArVRat","Clinical","The area usually is the body surface area used to normalize cardiovascular measures for patient's size","l",null,"1",1,!1],[!1,"decibel","dB","DB","level",1,[0,0,0,0,0,0,0],"dB","levels",!0,null,"lg",.1,!0,!1,0,"decibels","LOINC","LogRto","Clinical","unit most commonly used in acoustics as unit of sound pressure level. (also see B[SPL] or bel sound pressure level). ","1",null,null,1,!1],[!1,"degree per second","deg/s","DEG/S","plane angle",.017453292519943295,[0,-1,0,1,0,0,0],"\xB0/s","iso1000",!1,null,null,1,!1,!1,0,"deg/sec; deg per sec; \xB0/sec; twist rate; angular speed; rotational speed","LOINC","ARat","Clinical","unit of angular (rotational) speed used to express turning rate","[pi].rad/360","[PI].RAD/360","2",2,!1],[!1,"decigram","dg","DG","mass",.1,[0,0,1,0,0,0,0],"dg",null,!1,"M",null,1,!1,!1,0,"decigrams; dgm; 0.1 grams; 1/10 gm","LOINC","Mass","Clinical","equal to 1/10 gram",null,null,null,null,!1],[!1,"deciliter","dL","DL","volume",1e-4,[3,0,0,0,0,0,0],"dL","iso1000",!0,null,null,1,!1,!1,0,"deciliters; decilitres; 0.1 liters; 1/10 L","LOINC","Vol","Clinical","equal to 1/10 liter","l",null,"1",1,!1],[!1,"decimeter","dm","DM","length",.1,[1,0,0,0,0,0,0],"dm",null,!1,"L",null,1,!1,!1,0,"decimeters; decimetres; 0.1 meters; 1/10 m; 10 cm; centimeters","LOINC","Len","Clinical","equal to 1/10 meter or 10 centimeters",null,null,null,null,!1],[!1,"square decimeter per square second","dm2/s2","DM2/S2","length",.010000000000000002,[2,-2,0,0,0,0,0],"(dm2)/(s2)",null,!1,"L",null,1,!1,!1,0,"dm2 per s2; dm^2/s^2; decimeters squared per second squared; sq dm; sq sec","LOINC","EngMass (massic energy)","Clinical","units for energy per unit mass or Joules per kilogram (J/kg = kg.m2/s2/kg = m2/s2) ",null,null,null,null,!1],[!1,"dyne second per centimeter per square meter","dyn.s/(cm.m2)","(DYN.S)/(CM.M2)","force",1,[-2,-1,1,0,0,0,0],"(dyn.s)/(cm.(m2))","cgs",!0,null,null,1,!1,!1,0,"(dyn*s)/(cm*m2); (dyn*s)/(cm*m^2); dyn s per cm per m2; m^2; dyne seconds per centimeters per square meter; centimetres; sq. meter; squared","LOINC","","Clinical","","g.cm/s2","G.CM/S2","1",1,!1],[!1,"dyne second per centimeter","dyn.s/cm","(DYN.S)/CM","force",1,[0,-1,1,0,0,0,0],"(dyn.s)/cm","cgs",!0,null,null,1,!1,!1,0,"(dyn*s)/cm; dyn sec per cm; seconds; centimetre; dyne seconds","LOINC","","Clinical","","g.cm/s2","G.CM/S2","1",1,!1],[!1,"equivalent per liter","eq/L","EQ/L","amount of substance",60221366999999994e10,[-3,0,0,0,0,0,0],"eq/L","chemical",!0,null,null,1,!1,!1,1,"eq/liter; eq/litre; eqs; equivalents per liter; litre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per milliliter","eq/mL","EQ/ML","amount of substance",60221367e22,[-3,0,0,0,0,0,0],"eq/mL","chemical",!0,null,null,1,!1,!1,1,"equivalent/milliliter; equivalents per milliliter; eq per mL; millilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per millimole","eq/mmol","EQ/MMOL","amount of substance",1e3,[0,0,0,0,0,0,0],"eq/mmol","chemical",!0,null,null,1,!1,!1,0,"equivalent/millimole; equivalents per millimole; eq per mmol","LOINC","SRto","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per micromole","eq/umol","EQ/UMOL","amount of substance",1e6,[0,0,0,0,0,0,0],"eq/\u03BCmol","chemical",!0,null,null,1,!1,!1,0,"equivalent/micromole; equivalents per micromole; eq per umol","LOINC","SRto","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"femtogram","fg","FG","mass",1e-15,[0,0,1,0,0,0,0],"fg",null,!1,"M",null,1,!1,!1,0,"fg; fgm; femtograms; weight","LOINC","Mass","Clinical","equal to 10^-15 grams",null,null,null,null,!1],[!1,"femtoliter","fL","FL","volume",1e-18,[3,0,0,0,0,0,0],"fL","iso1000",!0,null,null,1,!1,!1,0,"femtolitres; femtoliters","LOINC","Vol; EntVol","Clinical","equal to 10^-15 liters","l",null,"1",1,!1],[!1,"femtometer","fm","FM","length",1e-15,[1,0,0,0,0,0,0],"fm",null,!1,"L",null,1,!1,!1,0,"femtometres; femtometers","LOINC","Len","Clinical","equal to 10^-15 meters",null,null,null,null,!1],[!1,"femtomole","fmol","FMOL","amount of substance",602213670,[0,0,0,0,0,0,0],"fmol","si",!0,null,null,1,!1,!1,1,"femtomoles","LOINC","EntSub","Clinical","equal to 10^-15 moles","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per gram","fmol/g","FMOL/G","amount of substance",602213670,[0,0,-1,0,0,0,0],"fmol/g","si",!0,null,null,1,!1,!1,1,"femtomoles; fmol/gm; fmol per gm","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per liter","fmol/L","FMOL/L","amount of substance",60221367e4,[-3,0,0,0,0,0,0],"fmol/L","si",!0,null,null,1,!1,!1,1,"femtomoles; fmol per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per milligram","fmol/mg","FMOL/MG","amount of substance",60221367e4,[0,0,-1,0,0,0,0],"fmol/mg","si",!0,null,null,1,!1,!1,1,"fmol per mg; femtomoles","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per milliliter","fmol/mL","FMOL/ML","amount of substance",60221367e7,[-3,0,0,0,0,0,0],"fmol/mL","si",!0,null,null,1,!1,!1,1,"femtomoles; millilitre; fmol per mL; fmol per milliliter","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"gram meter","g.m","G.M","mass",1,[1,0,1,0,0,0,0],"g.m",null,!1,"M",null,1,!1,!1,0,"g*m; gxm; meters; metres","LOINC","Enrg","Clinical","Unit for measuring stroke work (heart work)",null,null,null,null,!1],[!1,"gram per 100 gram","g/(100.g)","G/(100.G)","mass",.01,[0,0,0,0,0,0,0],"g/g",null,!1,"M",null,1,!1,!1,0,"g/100 gm; 100gm; grams per 100 grams; gm per 100 gm","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"gram per 12 hour","g/(12.h)","G/(12.HR)","mass",23148148148148147e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/12hrs; 12 hrs; gm per 12 hrs; 12hrs; grams per 12 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 24 hour","g/(24.h)","G/(24.HR)","mass",11574074074074073e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/24hrs; gm/24 hrs; gm per 24 hrs; 24hrs; grams per 24 hours; gm/dy; gm per dy; grams per day","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 3 days","g/(3.d)","G/(3.D)","mass",3858024691358025e-21,[0,-1,1,0,0,0,0],"g/d",null,!1,"M",null,1,!1,!1,0,"gm/3dy; gm/3 dy; gm per 3 days; grams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 4 hour","g/(4.h)","G/(4.HR)","mass",6944444444444444e-20,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/4hrs; gm/4 hrs; gm per 4 hrs; 4hrs; grams per 4 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 48 hour","g/(48.h)","G/(48.HR)","mass",5787037037037037e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/48hrs; gm/48 hrs; gm per 48 hrs; 48hrs; grams per 48 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 5 hour","g/(5.h)","G/(5.HR)","mass",5555555555555556e-20,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/5hrs; gm/5 hrs; gm per 5 hrs; 5hrs; grams per 5 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 6 hour","g/(6.h)","G/(6.HR)","mass",46296296296296294e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/6hrs; gm/6 hrs; gm per 6 hrs; 6hrs; grams per 6 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 72 hour","g/(72.h)","G/(72.HR)","mass",3858024691358025e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/72hrs; gm/72 hrs; gm per 72 hrs; 72hrs; grams per 72 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per cubic centimeter","g/cm3","G/CM3","mass",999999.9999999999,[-3,0,1,0,0,0,0],"g/(cm3)",null,!1,"M",null,1,!1,!1,0,"g/cm^3; gm per cm3; g per cm^3; grams per centimeter cubed; cu. cm; centimetre; g/mL; gram per milliliter; millilitre","LOINC","MCnc","Clinical","g/cm3 = g/mL",null,null,null,null,!1],[!1,"gram per day","g/d","G/D","mass",11574074074074073e-21,[0,-1,1,0,0,0,0],"g/d",null,!1,"M",null,1,!1,!1,0,"gm/dy; gm per dy; grams per day; gm/24hrs; gm/24 hrs; gm per 24 hrs; 24hrs; grams per 24 hours; serving","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per deciliter","g/dL","G/DL","mass",1e4,[-3,0,1,0,0,0,0],"g/dL",null,!1,"M",null,1,!1,!1,0,"gm/dL; gm per dL; grams per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per gram","g/g","G/G","mass",1,[0,0,0,0,0,0,0],"g/g",null,!1,"M",null,1,!1,!1,0,"gm; grams","LOINC","MRto ","Clinical","",null,null,null,null,!1],[!1,"gram per hour","g/h","G/HR","mass",.0002777777777777778,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/hr; gm per hr; grams; intake; output","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per hour per square meter","g/h/m2","(G/HR)/M2","mass",.0002777777777777778,[-2,-1,1,0,0,0,0],"(g/h)/(m2)",null,!1,"M",null,1,!1,!1,0,"gm/hr/m2; gm/h/m2; /m^2; sq. m; g per hr per m2; grams per hours per square meter; meter squared; metre","LOINC","ArMRat","Clinical","",null,null,null,null,!1],[!1,"gram per kilogram","g/kg ","G/KG","mass",.001,[0,0,0,0,0,0,0],"g/kg",null,!1,"M",null,1,!1,!1,0,"g per kg; gram per kilograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"gram per kilogram per 8 hour ","g/kg/(8.h)","(G/KG)/(8.HR)","mass",3472222222222222e-23,[0,-1,0,0,0,0,0],"(g/kg)/h",null,!1,"M",null,1,!1,!1,0,"g/(8.kg.h); gm/kg/8hrs; 8 hrs; g per kg per 8 hrs; 8hrs; grams per kilograms per 8 hours; shift","LOINC","MCntRat; RelMRat","Clinical","unit often used to describe mass in grams of protein consumed in a 8 hours, divided by the subject's body weight in kilograms. Also used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per day","g/kg/d","(G/KG)/D","mass",11574074074074074e-24,[0,-1,0,0,0,0,0],"(g/kg)/d",null,!1,"M",null,1,!1,!1,0,"g/(kg.d); gm/kg/dy; gm per kg per dy; grams per kilograms per day","LOINC","RelMRat","Clinical","unit often used to describe mass in grams of protein consumed in a day, divided by the subject's body weight in kilograms. Also used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per hour","g/kg/h","(G/KG)/HR","mass",27777777777777776e-23,[0,-1,0,0,0,0,0],"(g/kg)/h",null,!1,"M",null,1,!1,!1,0,"g/(kg.h); g/kg/hr; g per kg per hrs; grams per kilograms per hour","LOINC","MCntRat; RelMRat","Clinical","unit used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per minute","g/kg/min","(G/KG)/MIN","mass",16666666666666667e-21,[0,-1,0,0,0,0,0],"(g/kg)/min",null,!1,"M",null,1,!1,!1,0,"g/(kg.min); g/kg/min; g per kg per min; grams per kilograms per minute","LOINC","MCntRat; RelMRat","Clinical","unit used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per liter","g/L","G/L","mass",1e3,[-3,0,1,0,0,0,0],"g/L",null,!1,"M",null,1,!1,!1,0,"gm per liter; g/liter; grams per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per square meter","g/m2","G/M2","mass",1,[-2,0,1,0,0,0,0],"g/(m2)",null,!1,"M",null,1,!1,!1,0,"g/m^2; gram/square meter; g/sq m; g per m2; g per m^2; grams per square meter; meters squared; metre","LOINC","ArMass","Clinical","Tests measure myocardial mass (heart ventricle system) per body surface area; unit used to measure mass dose per body surface area",null,null,null,null,!1],[!1,"gram per milligram","g/mg","G/MG","mass",1e3,[0,0,0,0,0,0,0],"g/mg",null,!1,"M",null,1,!1,!1,0,"g per mg; grams per milligram","LOINC","MCnt; MRto","Clinical","",null,null,null,null,!1],[!1,"gram per minute","g/min","G/MIN","mass",.016666666666666666,[0,-1,1,0,0,0,0],"g/min",null,!1,"M",null,1,!1,!1,0,"g per min; grams per minute; gram/minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per milliliter","g/mL","G/ML","mass",1e6,[-3,0,1,0,0,0,0],"g/mL",null,!1,"M",null,1,!1,!1,0,"g per mL; grams per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per millimole","g/mmol","G/MMOL","mass",16605401866749388e-37,[0,0,1,0,0,0,0],"g/mmol",null,!1,"M",null,1,!1,!1,-1,"grams per millimole; g per mmol","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"joule per liter","J/L","J/L","energy",1e6,[-1,-2,1,0,0,0,0],"J/L","si",!0,null,null,1,!1,!1,0,"joules per liter; litre; J per L","LOINC","EngCnc","Clinical","","N.m","N.M","1",1,!1],[!1,"degree Kelvin per Watt","K/W","K/W","temperature",.001,[-2,3,-1,0,1,0,0],"K/W",null,!1,"C",null,1,!1,!1,0,"degree Kelvin/Watt; K per W; thermal ohm; thermal resistance; degrees","LOINC","TempEngRat","Clinical","unit for absolute thermal resistance equal to the reciprocal of thermal conductance. Unit used for tests to measure work of breathing",null,null,null,null,!1],[!1,"kilo international unit per liter","k[IU]/L","K[IU]/L","arbitrary",1e6,[-3,0,0,0,0,0,0],"(ki.U.)/L","chemical",!0,null,null,1,!1,!0,0,"kIU/L; kIU per L; kIU per liter; kilo international units; litre; allergens; allergy units","LOINC","ACnc","Clinical","IgE has an WHO reference standard so IgE allergen testing can be reported as k[IU]/L","[iU]","[IU]","1",1,!1],[!1,"kilo international unit per milliliter","k[IU]/mL","K[IU]/ML","arbitrary",1e9,[-3,0,0,0,0,0,0],"(ki.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"kIU/mL; kIU per mL; kIU per milliliter; kilo international units; millilitre; allergens; allergy units","LOINC","ACnc","Clinical","IgE has an WHO reference standard so IgE allergen testing can be reported as k[IU]/mL","[iU]","[IU]","1",1,!1],[!1,"katal per kilogram","kat/kg","KAT/KG","catalytic activity",60221367e13,[0,-1,-1,0,0,0,0],"kat/kg","chemical",!0,null,null,1,!1,!1,1,"kat per kg; katals per kilogram; mol/s/kg; moles per seconds per kilogram","LOINC","CCnt","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"katal per liter","kat/L","KAT/L","catalytic activity",60221366999999994e10,[-3,-1,0,0,0,0,0],"kat/L","chemical",!0,null,null,1,!1,!1,1,"kat per L; katals per liter; litre; mol/s/L; moles per seconds per liter","LOINC","CCnc","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"kilocalorie","kcal","KCAL","energy",4184e3,[2,-2,1,0,0,0,0],"kcal","heat",!0,null,null,1,!1,!1,0,"kilogram calories; large calories; food calories; kcals","LOINC","EngRat","Clinical","It is equal to 1000 calories (equal to 4.184 kJ). But in practical usage, kcal refers to food calories which excludes caloric content in fiber and other constitutes that is not digestible by humans. Also see nutrition label Calories ([Cal])","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per 24 hour","kcal/(24.h)","KCAL/(24.HR)","energy",48.425925925925924,[2,-3,1,0,0,0,0],"kcal/h","heat",!0,null,null,1,!1,!1,0,"kcal/24hrs; kcal/24 hrs; kcal per 24hrs; kilocalories per 24 hours; kilojoules; kJ/24hr; kJ/(24.h); kJ/dy; kilojoules per days; intake; calories burned; metabolic rate; food calories","","EngRat","Clinical","","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per ounce","kcal/[oz_av]","KCAL/[OZ_AV]","energy",147586.25679704445,[2,-2,0,0,0,0,0],"kcal/oz","heat",!0,null,null,1,!1,!1,0,"kcal/oz; kcal per ozs; large calories per ounces; food calories; servings; international","LOINC","EngCnt","Clinical","used in nutrition to represent calorie of food","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per day","kcal/d","KCAL/D","energy",48.425925925925924,[2,-3,1,0,0,0,0],"kcal/d","heat",!0,null,null,1,!1,!1,0,"kcal/dy; kcal per day; kilocalories per days; kilojoules; kJ/dy; kilojoules per days; intake; calories burned; metabolic rate; food calories","LOINC","EngRat","Clinical","unit in nutrition for food intake (measured in calories) in a day","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per hour","kcal/h","KCAL/HR","energy",1162.2222222222222,[2,-3,1,0,0,0,0],"kcal/h","heat",!0,null,null,1,!1,!1,0,"kcal/hrs; kcals per hr; intake; kilocalories per hours; kilojoules","LOINC","EngRat","Clinical","used in nutrition to represent caloric requirement or consumption","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per kilogram per 24 hour","kcal/kg/(24.h)","(KCAL/KG)/(24.HR)","energy",.04842592592592593,[2,-3,0,0,0,0,0],"(kcal/kg)/h","heat",!0,null,null,1,!1,!1,0,"kcal/kg/24hrs; 24 hrs; kcal per kg per 24hrs; kilocalories per kilograms per 24 hours; kilojoules","LOINC","EngCntRat","Clinical","used in nutrition to represent caloric requirement per day based on subject's body weight in kilograms","cal_th","CAL_TH","1",1,!1],[!1,"kilogram","kg","KG","mass",1e3,[0,0,1,0,0,0,0],"kg",null,!1,"M",null,1,!1,!1,0,"kilograms; kgs","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"kilogram meter per second","kg.m/s","(KG.M)/S","mass",1e3,[1,-1,1,0,0,0,0],"(kg.m)/s",null,!1,"M",null,1,!1,!1,0,"kg*m/s; kg.m per sec; kg*m per sec; p; momentum","LOINC","","Clinical","unit for momentum = mass times velocity",null,null,null,null,!1],[!1,"kilogram per second per square meter","kg/(s.m2)","KG/(S.M2)","mass",1e3,[-2,-1,1,0,0,0,0],"kg/(s.(m2))",null,!1,"M",null,1,!1,!1,0,"kg/(s*m2); kg/(s*m^2); kg per s per m2; per sec; per m^2; kilograms per seconds per square meter; meter squared; metre","LOINC","ArMRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per hour","kg/h","KG/HR","mass",.2777777777777778,[0,-1,1,0,0,0,0],"kg/h",null,!1,"M",null,1,!1,!1,0,"kg/hr; kg per hr; kilograms per hour","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per liter","kg/L","KG/L","mass",1e6,[-3,0,1,0,0,0,0],"kg/L",null,!1,"M",null,1,!1,!1,0,"kg per liter; litre; kilograms","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"kilogram per square meter","kg/m2","KG/M2","mass",1e3,[-2,0,1,0,0,0,0],"kg/(m2)",null,!1,"M",null,1,!1,!1,0,"kg/m^2; kg/sq. m; kg per m2; per m^2; per sq. m; kilograms; meter squared; metre; BMI","LOINC","Ratio","Clinical","units for body mass index (BMI)",null,null,null,null,!1],[!1,"kilogram per cubic meter","kg/m3","KG/M3","mass",1e3,[-3,0,1,0,0,0,0],"kg/(m3)",null,!1,"M",null,1,!1,!1,0,"kg/m^3; kg/cu. m; kg per m3; per m^3; per cu. m; kilograms; meters cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"kilogram per minute","kg/min","KG/MIN","mass",16.666666666666668,[0,-1,1,0,0,0,0],"kg/min",null,!1,"M",null,1,!1,!1,0,"kilogram/minute; kg per min; kilograms per minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per mole","kg/mol","KG/MOL","mass",16605401866749388e-37,[0,0,1,0,0,0,0],"kg/mol",null,!1,"M",null,1,!1,!1,-1,"kilogram/mole; kg per mol; kilograms per mole","LOINC","SCnt","Clinical","",null,null,null,null,!1],[!1,"kilogram per second","kg/s","KG/S","mass",1e3,[0,-1,1,0,0,0,0],"kg/s",null,!1,"M",null,1,!1,!1,0,"kg/sec; kilogram/second; kg per sec; kilograms; second","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kiloliter","kL","KL","volume",1,[3,0,0,0,0,0,0],"kL","iso1000",!0,null,null,1,!1,!1,0,"kiloliters; kilolitres; m3; m^3; meters cubed; metre","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"kilometer","km","KM","length",1e3,[1,0,0,0,0,0,0],"km",null,!1,"L",null,1,!1,!1,0,"kilometers; kilometres; distance","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"kilopascal","kPa","KPAL","pressure",1e6,[-1,-2,1,0,0,0,0],"kPa","si",!0,null,null,1,!1,!1,0,"kilopascals; pressure","LOINC","Pres; PPresDiff","Clinical","","N/m2","N/M2","1",1,!1],[!1,"kilosecond","ks","KS","time",1e3,[0,1,0,0,0,0,0],"ks",null,!1,"T",null,1,!1,!1,0,"kiloseconds; ksec","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"kilo enzyme unit","kU","KU","catalytic activity",100368945e11,[0,-1,0,0,0,0,0],"kU","chemical",!0,null,null,1,!1,!1,1,"units; mmol/min; millimoles per minute","LOINC","CAct","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per gram","kU/g","KU/G","catalytic activity",100368945e11,[0,-1,-1,0,0,0,0],"kU/g","chemical",!0,null,null,1,!1,!1,1,"units per grams; kU per gm","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per liter","kU/L","KU/L","catalytic activity",100368945e14,[-3,-1,0,0,0,0,0],"kU/L","chemical",!0,null,null,1,!1,!1,1,"units per liter; litre; enzymatic activity; enzyme activity per volume; activities","LOINC","ACnc; CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per milliliter","kU/mL","KU/ML","catalytic activity",100368945e17,[-3,-1,0,0,0,0,0],"kU/mL","chemical",!0,null,null,1,!1,!1,1,"kU per mL; units per milliliter; millilitre; enzymatic activity per volume; enzyme activities","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"Liters per 24 hour","L/(24.h)","L/(24.HR)","volume",11574074074074074e-24,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/24hrs; L/24 hrs; L per 24hrs; liters per 24 hours; day; dy; litres; volume flow rate","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per 8 hour","L/(8.h)","L/(8.HR)","volume",3472222222222222e-23,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/8hrs; L/8 hrs; L per 8hrs; liters per 8 hours; litres; volume flow rate; shift","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute per square meter","L/(min.m2) ","L/(MIN.M2)","volume",16666666666666667e-21,[1,-1,0,0,0,0,0],"L/(min.(m2))","iso1000",!0,null,null,1,!1,!1,0,"L/(min.m2); L/min/m^2; L/min/sq. meter; L per min per m2; m^2; liters per minutes per square meter; meter squared; litres; metre ","LOINC","ArVRat","Clinical","unit for tests that measure cardiac output per body surface area (cardiac index)","l",null,"1",1,!1],[!1,"Liters per day","L/d","L/D","volume",11574074074074074e-24,[3,-1,0,0,0,0,0],"L/d","iso1000",!0,null,null,1,!1,!1,0,"L/dy; L per day; 24hrs; 24 hrs; 24 hours; liters; litres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per hour","L/h","L/HR","volume",27777777777777776e-23,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/hr; L per hr; litres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per kilogram","L/kg","L/KG","volume",1e-6,[3,0,-1,0,0,0,0],"L/kg","iso1000",!0,null,null,1,!1,!1,0,"L per kg; litre","LOINC","VCnt","Clinical","","l",null,"1",1,!1],[!1,"Liters per liter","L/L","L/L","volume",1,[0,0,0,0,0,0,0],"L/L","iso1000",!0,null,null,1,!1,!1,0,"L per L; liter/liter; litre","LOINC","VFr","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute","L/min","L/MIN","volume",16666666666666667e-21,[3,-1,0,0,0,0,0],"L/min","iso1000",!0,null,null,1,!1,!1,0,"liters per minute; litre","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute per square meter","L/min/m2","(L/MIN)/M2","volume",16666666666666667e-21,[1,-1,0,0,0,0,0],"(L/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"L/(min.m2); L/min/m^2; L/min/sq. meter; L per min per m2; m^2; liters per minutes per square meter; meter squared; litres; metre ","","ArVRat","Clinical","unit for tests that measure cardiac output per body surface area (cardiac index)","l",null,"1",1,!1],[!1,"Liters per second","L/s","L/S","volume",.001,[3,-1,0,0,0,0,0],"L/s","iso1000",!0,null,null,1,!1,!1,0,"L per sec; litres","LOINC","VRat","Clinical","unit used often to measure gas flow and peak expiratory flow","l",null,"1",1,!1],[!1,"Liters per second per square second","L/s/s2","(L/S)/S2","volume",.001,[3,-3,0,0,0,0,0],"(L/s)/(s2)","iso1000",!0,null,null,1,!1,!1,0,"L/s/s^2; L/sec/sec2; L/sec/sec^2; L/sec/sq. sec; L per s per s2; L per sec per sec2; s^2; sec^2; liters per seconds per square second; second squared; litres ","LOINC","ArVRat","Clinical","unit for tests that measure cardiac output/body surface area","l",null,"1",1,!1],[!1,"lumen square meter","lm.m2","LM.M2","luminous flux",1,[2,0,0,2,0,0,1],"lm.(m2)","si",!0,null,null,1,!1,!1,0,"lm*m2; lm*m^2; lumen meters squared; lumen sq. meters; metres","LOINC","","Clinical","","cd.sr","CD.SR","1",1,!1],[!1,"meter per second","m/s","M/S","length",1,[1,-1,0,0,0,0,0],"m/s",null,!1,"L",null,1,!1,!1,0,"meter/second; m per sec; meters per second; metres; velocity; speed","LOINC","Vel","Clinical","unit of velocity",null,null,null,null,!1],[!1,"meter per square second","m/s2","M/S2","length",1,[1,-2,0,0,0,0,0],"m/(s2)",null,!1,"L",null,1,!1,!1,0,"m/s^2; m/sq. sec; m per s2; per s^2; meters per square second; second squared; sq second; metres; acceleration","LOINC","Accel","Clinical","unit of acceleration",null,null,null,null,!1],[!1,"milli international unit per liter","m[IU]/L","M[IU]/L","arbitrary",1,[-3,0,0,0,0,0,0],"(mi.U.)/L","chemical",!0,null,null,1,!1,!0,0,"mIU/L; m IU/L; mIU per liter; units; litre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"milli international unit per milliliter","m[IU]/mL","M[IU]/ML","arbitrary",1000.0000000000001,[-3,0,0,0,0,0,0],"(mi.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"mIU/mL; m IU/mL; mIU per mL; milli international units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"square meter","m2","M2","length",1,[2,0,0,0,0,0,0],"m2",null,!1,"L",null,1,!1,!1,0,"m^2; sq m; square meters; meters squared; metres","LOINC","Area","Clinical","unit often used to represent body surface area",null,null,null,null,!1],[!1,"square meter per second","m2/s","M2/S","length",1,[2,-1,0,0,0,0,0],"(m2)/s",null,!1,"L",null,1,!1,!1,0,"m^2/sec; m2 per sec; m^2 per sec; sq m/sec; meters squared/seconds; sq m per sec; meters squared; metres","LOINC","ArRat","Clinical","",null,null,null,null,!1],[!1,"cubic meter per second","m3/s","M3/S","length",1,[3,-1,0,0,0,0,0],"(m3)/s",null,!1,"L",null,1,!1,!1,0,"m^3/sec; m3 per sec; m^3 per sec; cu m/sec; cubic meters per seconds; meters cubed; metres","LOINC","VRat","Clinical","",null,null,null,null,!1],[!1,"milliampere","mA","MA","electric current",.001,[0,-1,0,0,0,1,0],"mA","si",!0,null,null,1,!1,!1,0,"mamp; milliamperes","LOINC","ElpotRat","Clinical","unit of electric current","C/s","C/S","1",1,!1],[!1,"millibar","mbar","MBAR","pressure",1e5,[-1,-2,1,0,0,0,0],"mbar","iso1000",!0,null,null,1,!1,!1,0,"millibars","LOINC","Pres","Clinical","unit of pressure","Pa","PAL","1e5",1e5,!1],[!1,"millibar second per liter","mbar.s/L","(MBAR.S)/L","pressure",1e8,[-4,-1,1,0,0,0,0],"(mbar.s)/L","iso1000",!0,null,null,1,!1,!1,0,"mbar*s/L; mbar.s per L; mbar*s per L; millibar seconds per liter; millibar second per litre","LOINC","","Clinical","unit to measure expiratory resistance","Pa","PAL","1e5",1e5,!1],[!1,"millibar per liter per second","mbar/L/s","(MBAR/L)/S","pressure",1e8,[-4,-3,1,0,0,0,0],"(mbar/L)/s","iso1000",!0,null,null,1,!1,!1,0,"mbar/(L.s); mbar/L/sec; mbar/liter/second; mbar per L per sec; mbar per liter per second; millibars per liters per seconds; litres","LOINC","PresCncRat","Clinical","unit to measure expiratory resistance","Pa","PAL","1e5",1e5,!1],[!1,"milliequivalent","meq","MEQ","amount of substance",60221367e13,[0,0,0,0,0,0,0],"meq","chemical",!0,null,null,1,!1,!1,1,"milliequivalents; meqs","LOINC","Sub","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 2 hour","meq/(2.h)","MEQ/(2.HR)","amount of substance",836407875e8,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/2hrs; meq/2 hrs; meq per 2 hrs; milliequivalents per 2 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 24 hour","meq/(24.h)","MEQ/(24.HR)","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/24hrs; meq/24 hrs; meq per 24 hrs; milliequivalents per 24 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 8 hour","meq/(8.h)","MEQ/(8.HR)","amount of substance",20910196875e6,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/8hrs; meq/8 hrs; meq per 8 hrs; milliequivalents per 8 hours; shift","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per day","meq/d","MEQ/D","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"meq/d","chemical",!0,null,null,1,!1,!1,1,"meq/dy; meq per day; milliquivalents per days; meq/24hrs; meq/24 hrs; meq per 24 hrs; milliequivalents per 24 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per deciliter","meq/dL","MEQ/DL","amount of substance",6022136699999999e9,[-3,0,0,0,0,0,0],"meq/dL","chemical",!0,null,null,1,!1,!1,1,"meq per dL; milliequivalents per deciliter; decilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per gram","meq/g","MEQ/G","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"meq/g","chemical",!0,null,null,1,!1,!1,1,"mgq/gm; meq per gm; milliequivalents per gram","LOINC","MCnt","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per hour","meq/h","MEQ/HR","amount of substance",167281575e9,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/hrs; meq per hrs; milliequivalents per hour","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per kilogram","meq/kg","MEQ/KG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"meq/kg","chemical",!0,null,null,1,!1,!1,1,"meq per kg; milliequivalents per kilogram","LOINC","SCnt","Clinical","equivalence equals moles per valence; used to measure dose per patient body mass","mol","MOL","1",1,!1],[!1,"milliequivalent per kilogram per hour","meq/kg/h","(MEQ/KG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(meq/kg)/h","chemical",!0,null,null,1,!1,!1,1,"meq/(kg.h); meq/kg/hr; meq per kg per hr; milliequivalents per kilograms per hour","LOINC","SCntRat","Clinical","equivalence equals moles per valence; unit used to measure dose rate per patient body mass","mol","MOL","1",1,!1],[!1,"milliequivalent per liter","meq/L","MEQ/L","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"meq/L","chemical",!0,null,null,1,!1,!1,1,"milliequivalents per liter; litre; meq per l; acidity","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per square meter","meq/m2","MEQ/M2","amount of substance",60221367e13,[-2,0,0,0,0,0,0],"meq/(m2)","chemical",!0,null,null,1,!1,!1,1,"meq/m^2; meq/sq. m; milliequivalents per square meter; meter squared; metre","LOINC","ArSub","Clinical","equivalence equals moles per valence; note that the use of m2 in clinical units ofter refers to body surface area","mol","MOL","1",1,!1],[!1,"milliequivalent per minute","meq/min","MEQ/MIN","amount of substance",100368945e11,[0,-1,0,0,0,0,0],"meq/min","chemical",!0,null,null,1,!1,!1,1,"meq per min; milliequivalents per minute","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per milliliter","meq/mL","MEQ/ML","amount of substance",60221367e19,[-3,0,0,0,0,0,0],"meq/mL","chemical",!0,null,null,1,!1,!1,1,"meq per mL; milliequivalents per milliliter; millilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milligram","mg","MG","mass",.001,[0,0,1,0,0,0,0],"mg",null,!1,"M",null,1,!1,!1,0,"milligrams","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"milligram per 10 hour","mg/(10.h)","MG/(10.HR)","mass",27777777777777777e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/10hrs; mg/10 hrs; mg per 10 hrs; milligrams per 10 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 12 hour","mg/(12.h)","MG/(12.HR)","mass",23148148148148148e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/12hrs; mg/12 hrs; per 12 hrs; 12hrs; milligrams per 12 hours","LOINC","MRat","Clinical","units used for tests in urine",null,null,null,null,!1],[!1,"milligram per 2 hour","mg/(2.h)","MG/(2.HR)","mass",13888888888888888e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/2hrs; mg/2 hrs; mg per 2 hrs; 2hrs; milligrams per 2 hours","LOINC","MRat","Clinical","units used for tests in urine",null,null,null,null,!1],[!1,"milligram per 24 hour","mg/(24.h)","MG/(24.HR)","mass",11574074074074074e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/24hrs; mg/24 hrs; milligrams per 24 hours; mg/kg/dy; mg per kg per day; milligrams per kilograms per days","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 6 hour","mg/(6.h)","MG/(6.HR)","mass",46296296296296295e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/6hrs; mg/6 hrs; mg per 6 hrs; 6hrs; milligrams per 6 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 72 hour","mg/(72.h)","MG/(72.HR)","mass",3858024691358025e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/72hrs; mg/72 hrs; 72 hrs; 72hrs; milligrams per 72 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 8 hour","mg/(8.h)","MG/(8.HR)","mass",3472222222222222e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/8hrs; mg/8 hrs; milligrams per 8 hours; shift","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per day","mg/d","MG/D","mass",11574074074074074e-24,[0,-1,1,0,0,0,0],"mg/d",null,!1,"M",null,1,!1,!1,0,"mg/24hrs; mg/24 hrs; milligrams per 24 hours; mg/dy; mg per day; milligrams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per deciliter","mg/dL","MG/DL","mass",10,[-3,0,1,0,0,0,0],"mg/dL",null,!1,"M",null,1,!1,!1,0,"mg per dL; milligrams per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per gram","mg/g","MG/G","mass",.001,[0,0,0,0,0,0,0],"mg/g",null,!1,"M",null,1,!1,!1,0,"mg per gm; milligrams per gram","LOINC","MCnt; MRto","Clinical","",null,null,null,null,!1],[!1,"milligram per hour","mg/h","MG/HR","mass",27777777777777776e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/hr; mg per hr; milligrams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per kilogram","mg/kg","MG/KG","mass",1e-6,[0,0,0,0,0,0,0],"mg/kg",null,!1,"M",null,1,!1,!1,0,"mg per kg; milligrams per kilograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"milligram per kilogram per 8 hour","mg/kg/(8.h)","(MG/KG)/(8.HR)","mass",3472222222222222e-26,[0,-1,0,0,0,0,0],"(mg/kg)/h",null,!1,"M",null,1,!1,!1,0,"mg/(8.h.kg); mg/kg/8hrs; mg/kg/8 hrs; mg per kg per 8hrs; 8 hrs; milligrams per kilograms per 8 hours; shift","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per day","mg/kg/d","(MG/KG)/D","mass",11574074074074074e-27,[0,-1,0,0,0,0,0],"(mg/kg)/d",null,!1,"M",null,1,!1,!1,0,"mg/(kg.d); mg/(kg.24.h)mg/kg/dy; mg per kg per day; milligrams per kilograms per days; mg/kg/(24.h); mg/kg/24hrs; 24 hrs; 24 hours","LOINC","RelMRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per hour","mg/kg/h","(MG/KG)/HR","mass",27777777777777777e-26,[0,-1,0,0,0,0,0],"(mg/kg)/h",null,!1,"M",null,1,!1,!1,0,"mg/(kg.h); mg/kg/hr; mg per kg per hr; milligrams per kilograms per hour","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per minute","mg/kg/min","(MG/KG)/MIN","mass",16666666666666667e-24,[0,-1,0,0,0,0,0],"(mg/kg)/min",null,!1,"M",null,1,!1,!1,0,"mg/(kg.min); mg per kg per min; milligrams per kilograms per minute","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per liter","mg/L","MG/L","mass",1,[-3,0,1,0,0,0,0],"mg/L",null,!1,"M",null,1,!1,!1,0,"mg per l; milligrams per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per square meter","mg/m2","MG/M2","mass",.001,[-2,0,1,0,0,0,0],"mg/(m2)",null,!1,"M",null,1,!1,!1,0,"mg/m^2; mg/sq. m; mg per m2; mg per m^2; mg per sq. milligrams; meter squared; metre","LOINC","ArMass","Clinical","",null,null,null,null,!1],[!1,"milligram per cubic meter","mg/m3","MG/M3","mass",.001,[-3,0,1,0,0,0,0],"mg/(m3)",null,!1,"M",null,1,!1,!1,0,"mg/m^3; mg/cu. m; mg per m3; milligrams per cubic meter; meter cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per milligram","mg/mg","MG/MG","mass",1,[0,0,0,0,0,0,0],"mg/mg",null,!1,"M",null,1,!1,!1,0,"mg per mg; milligrams; milligram/milligram","LOINC","MRto","Clinical","",null,null,null,null,!1],[!1,"milligram per minute","mg/min","MG/MIN","mass",16666666666666667e-21,[0,-1,1,0,0,0,0],"mg/min",null,!1,"M",null,1,!1,!1,0,"mg per min; milligrams per minutes; milligram/minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per milliliter","mg/mL","MG/ML","mass",1000.0000000000001,[-3,0,1,0,0,0,0],"mg/mL",null,!1,"M",null,1,!1,!1,0,"mg per mL; milligrams per milliliters; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per millimole","mg/mmol","MG/MMOL","mass",1660540186674939e-39,[0,0,1,0,0,0,0],"mg/mmol",null,!1,"M",null,1,!1,!1,-1,"mg per mmol; milligrams per millimole; ","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"milligram per week","mg/wk","MG/WK","mass",16534391534391535e-25,[0,-1,1,0,0,0,0],"mg/wk",null,!1,"M",null,1,!1,!1,0,"mg/week; mg per wk; milligrams per weeks; milligram/week","LOINC","Mrat","Clinical","",null,null,null,null,!1],[!1,"milliliter","mL","ML","volume",1e-6,[3,0,0,0,0,0,0],"mL","iso1000",!0,null,null,1,!1,!1,0,"milliliters; millilitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 10 hour","mL/(10.h)","ML/(10.HR)","volume",27777777777777777e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/10hrs; ml/10 hrs; mL per 10hrs; 10 hrs; milliliters per 10 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 12 hour","mL/(12.h)","ML/(12.HR)","volume",23148148148148147e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/12hrs; ml/12 hrs; mL per 12hrs; 12 hrs; milliliters per 12 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 2 hour","mL/(2.h)","ML/(2.HR)","volume",13888888888888888e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/2hrs; ml/2 hrs; mL per 2hrs; 2 hrs; milliliters per 2 hours; millilitres ","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 24 hour","mL/(24.h)","ML/(24.HR)","volume",11574074074074074e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/24hrs; ml/24 hrs; mL per 24hrs; 24 hrs; milliliters per 24 hours; millilitres; ml/dy; /day; ml per dy; days; fluid outputs; fluid inputs; flow rate","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 4 hour","mL/(4.h)","ML/(4.HR)","volume",6944444444444444e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/4hrs; ml/4 hrs; mL per 4hrs; 4 hrs; milliliters per 4 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 5 hour","mL/(5.h)","ML/(5.HR)","volume",55555555555555553e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/5hrs; ml/5 hrs; mL per 5hrs; 5 hrs; milliliters per 5 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 6 hour","mL/(6.h)","ML/(6.HR)","volume",46296296296296294e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/6hrs; ml/6 hrs; mL per 6hrs; 6 hrs; milliliters per 6 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 72 hour","mL/(72.h)","ML/(72.HR)","volume",38580246913580245e-28,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/72hrs; ml/72 hrs; mL per 72hrs; 72 hrs; milliliters per 72 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 8 hour","mL/(8.h)","ML/(8.HR)","volume",3472222222222222e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/8hrs; ml/8 hrs; mL per 8hrs; 8 hrs; milliliters per 8 hours; millilitres; shift","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 8 hour per kilogram","mL/(8.h)/kg","(ML/(8.HR))/KG","volume",3472222222222222e-29,[3,-1,-1,0,0,0,0],"(mL/h)/kg","iso1000",!0,null,null,1,!1,!1,0,"mL/kg/(8.h); ml/8h/kg; ml/8 h/kg; ml/8hr/kg; ml/8 hr/kgr; mL per 8h per kg; 8 h; 8hr; 8 hr; milliliters per 8 hours per kilogram; millilitres; shift","LOINC","VRatCnt","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per square inch (international)","mL/[sin_i]","ML/[SIN_I]","volume",.0015500031000061998,[1,0,0,0,0,0,0],"mL","iso1000",!0,null,null,1,!1,!1,0,"mL/sin; mL/in2; mL/in^2; mL per sin; in2; in^2; sq. in; milliliters per square inch; inch squared","LOINC","ArVol","Clinical","","l",null,"1",1,!1],[!1,"milliliter per centimeter of water","mL/cm[H2O]","ML/CM[H2O]","volume",10197162129779282e-27,[4,2,-1,0,0,0,0],"mL/(cm\xA0HO2)","iso1000",!0,null,null,1,!1,!1,0,"milliliters per centimeter of water; millilitre per centimetre of water; millilitres per centimetre of water; mL/cmH2O; mL/cm H2O; mL per cmH2O; mL per cm H2O","LOINC","Compli","Clinical","unit used to measure dynamic lung compliance","l",null,"1",1,!1],[!1,"milliliter per day","mL/d","ML/D","volume",11574074074074074e-27,[3,-1,0,0,0,0,0],"mL/d","iso1000",!0,null,null,1,!1,!1,0,"ml/day; ml per day; milliliters per day; 24 hours; 24hrs; millilitre;","LOINC","VRat","Clinical","usually used to measure fluid output or input; flow rate","l",null,"1",1,!1],[!1,"milliliter per deciliter","mL/dL","ML/DL","volume",.009999999999999998,[0,0,0,0,0,0,0],"mL/dL","iso1000",!0,null,null,1,!1,!1,0,"mL per dL; millilitres; decilitre; milliliters","LOINC","VFr; VFrDiff","Clinical","","l",null,"1",1,!1],[!1,"milliliter per hour","mL/h","ML/HR","volume",27777777777777777e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"mL/hr; mL per hr; milliliters per hour; millilitres; fluid intake; fluid output","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per kilogram","mL/kg","ML/KG","volume",9999999999999999e-25,[3,0,-1,0,0,0,0],"mL/kg","iso1000",!0,null,null,1,!1,!1,0,"mL per kg; milliliters per kilogram; millilitres","LOINC","VCnt","Clinical","","l",null,"1",1,!1],[!1,"milliliter per kilogram per 8 hour","mL/kg/(8.h)","(ML/KG)/(8.HR)","volume",3472222222222222e-29,[3,-1,-1,0,0,0,0],"(mL/kg)/h","iso1000",!0,null,null,1,!1,!1,0,"mL/(8.h.kg); mL/kg/8hrs; mL/kg/8 hrs; mL per kg per 8hrs; 8 hrs; milliliters per kilograms per 8 hours; millilitres; shift","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per day","mL/kg/d","(ML/KG)/D","volume",11574074074074072e-30,[3,-1,-1,0,0,0,0],"(mL/kg)/d","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.d); mL/kg/dy; mL per kg per day; milliliters per kilograms per day; mg/kg/24hrs; 24 hrs; per 24 hours millilitres","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per hour","mL/kg/h","(ML/KG)/HR","volume",27777777777777774e-29,[3,-1,-1,0,0,0,0],"(mL/kg)/h","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.h); mL/kg/hr; mL per kg per hr; milliliters per kilograms per hour; millilitres","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per minute","mL/kg/min","(ML/KG)/MIN","volume",16666666666666664e-27,[3,-1,-1,0,0,0,0],"(mL/kg)/min","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.min); mL/kg/dy; mL per kg per day; milliliters per kilograms per day; millilitres","LOINC","RelEngRat","Clinical","used for tests that measure activity metabolic rate compared to standard resting metabolic rate ","l",null,"1",1,!1],[!1,"milliliter per square meter","mL/m2","ML/M2","volume",1e-6,[1,0,0,0,0,0,0],"mL/(m2)","iso1000",!0,null,null,1,!1,!1,0,"mL/m^2; mL/sq. meter; mL per m2; m^2; sq. meter; milliliters per square meter; millilitres; meter squared","LOINC","ArVol","Clinical","used for tests that relate to heart work - e.g. ventricular stroke volume; atrial volume per body surface area","l",null,"1",1,!1],[!1,"milliliter per millibar","mL/mbar","ML/MBAR","volume",1e-11,[4,2,-1,0,0,0,0],"mL/mbar","iso1000",!0,null,null,1,!1,!1,0,"mL per mbar; milliliters per millibar; millilitres","LOINC","","Clinical","unit used to measure dynamic lung compliance","l",null,"1",1,!1],[!1,"milliliter per minute","mL/min","ML/MIN","volume",16666666666666667e-24,[3,-1,0,0,0,0,0],"mL/min","iso1000",!0,null,null,1,!1,!1,0,"mL per min; milliliters; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per minute per square meter","mL/min/m2","(ML/MIN)/M2","volume",16666666666666667e-24,[1,-1,0,0,0,0,0],"(mL/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"ml/min/m^2; ml/min/sq. meter; mL per min per m2; m^2; sq. meter; milliliters per minutes per square meter; millilitres; metre; meter squared","LOINC","ArVRat","Clinical","unit used to measure volume per body surface area; oxygen consumption index","l",null,"1",1,!1],[!1,"milliliter per millimeter","mL/mm","ML/MM","volume",.001,[2,0,0,0,0,0,0],"mL/mm","iso1000",!0,null,null,1,!1,!1,0,"mL per mm; milliliters per millimeter; millilitres; millimetre","LOINC","Lineic Volume","Clinical","","l",null,"1",1,!1],[!1,"milliliter per second","mL/s","ML/S","volume",1e-6,[3,-1,0,0,0,0,0],"mL/s","iso1000",!0,null,null,1,!1,!1,0,"ml/sec; mL per sec; milliliters per second; millilitres","LOINC","Vel; VelRat; VRat","Clinical","","l",null,"1",1,!1],[!1,"millimeter","mm","MM","length",.001,[1,0,0,0,0,0,0],"mm",null,!1,"L",null,1,!1,!1,0,"millimeters; millimetres; height; length; diameter; thickness; axis; curvature; size","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"millimeter per hour","mm/h","MM/HR","length",27777777777777776e-23,[1,-1,0,0,0,0,0],"mm/h",null,!1,"L",null,1,!1,!1,0,"mm/hr; mm per hr; millimeters per hour; millimetres","LOINC","Vel","Clinical","unit to measure sedimentation rate",null,null,null,null,!1],[!1,"millimeter per minute","mm/min","MM/MIN","length",16666666666666667e-21,[1,-1,0,0,0,0,0],"mm/min",null,!1,"L",null,1,!1,!1,0,"mm per min; millimeters per minute; millimetres","LOINC","Vel","Clinical","",null,null,null,null,!1],[!1,"millimeter of water","mm[H2O]","MM[H2O]","pressure",9806.65,[-1,-2,1,0,0,0,0],"mm\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"mmH2O; mm H2O; millimeters of water; millimetres","LOINC","Pres","Clinical","","kPa","KPAL","980665e-5",9.80665,!1],[!1,"millimeter of mercury","mm[Hg]","MM[HG]","pressure",133322,[-1,-2,1,0,0,0,0],"mm\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"mmHg; mm Hg; millimeters of mercury; millimetres","LOINC","Pres; PPres; Ratio","Clinical","1 mm[Hg] = 1 torr; unit to measure blood pressure","kPa","KPAL","133.3220",133.322,!1],[!1,"square millimeter","mm2","MM2","length",1e-6,[2,0,0,0,0,0,0],"mm2",null,!1,"L",null,1,!1,!1,0,"mm^2; sq. mm.; sq. millimeters; millimeters squared; millimetres","LOINC","Area","Clinical","",null,null,null,null,!1],[!1,"millimole","mmol","MMOL","amount of substance",60221367e13,[0,0,0,0,0,0,0],"mmol","si",!0,null,null,1,!1,!1,1,"millimoles","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 12 hour","mmol/(12.h)","MMOL/(12.HR)","amount of substance",1394013125e7,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/12hrs; mmol/12 hrs; mmol per 12 hrs; 12hrs; millimoles per 12 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 2 hour","mmol/(2.h)","MMOL/(2.HR)","amount of substance",836407875e8,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/2hrs; mmol/2 hrs; mmol per 2 hrs; 2hrs; millimoles per 2 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 24 hour","mmol/(24.h)","MMOL/(24.HR)","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/24hrs; mmol/24 hrs; mmol per 24 hrs; 24hrs; millimoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 5 hour","mmol/(5.h)","MMOL/(5.HR)","amount of substance",33456315e9,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/5hrs; mmol/5 hrs; mmol per 5 hrs; 5hrs; millimoles per 5 hours","LOINC","SRat","Clinical","unit for tests related to doses","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 6 hour","mmol/(6.h)","MMOL/(6.HR)","amount of substance",278802625e8,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/6hrs; mmol/6 hrs; mmol per 6 hrs; 6hrs; millimoles per 6 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 8 hour","mmol/(8.h)","MMOL/(8.HR)","amount of substance",20910196875e6,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/8hrs; mmol/8 hrs; mmol per 8 hrs; 8hrs; millimoles per 8 hours; shift","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per day","mmol/d","MMOL/D","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"mmol/d","si",!0,null,null,1,!1,!1,1,"mmol/24hrs; mmol/24 hrs; mmol per 24 hrs; 24hrs; millimoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per deciliter","mmol/dL","MMOL/DL","amount of substance",6022136699999999e9,[-3,0,0,0,0,0,0],"mmol/dL","si",!0,null,null,1,!1,!1,1,"mmol per dL; millimoles; decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per gram","mmol/g","MMOL/G","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"mmol/g","si",!0,null,null,1,!1,!1,1,"mmol per gram; millimoles","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per hour","mmol/h","MMOL/HR","amount of substance",167281575e9,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/hr; mmol per hr; millimoles per hour","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram","mmol/kg","MMOL/KG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"mmol/kg","si",!0,null,null,1,!1,!1,1,"mmol per kg; millimoles per kilogram","LOINC","SCnt","Clinical","unit for tests related to stool","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per 8 hour","mmol/kg/(8.h)","(MMOL/KG)/(8.HR)","amount of substance",20910196875e3,[0,-1,-1,0,0,0,0],"(mmol/kg)/h","si",!0,null,null,1,!1,!1,1,"mmol/(8.h.kg); mmol/kg/8hrs; mmol/kg/8 hrs; mmol per kg per 8hrs; 8 hrs; millimoles per kilograms per 8 hours; shift","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per day","mmol/kg/d","(MMOL/KG)/D","amount of substance",6970065625e3,[0,-1,-1,0,0,0,0],"(mmol/kg)/d","si",!0,null,null,1,!1,!1,1,"mmol/kg/dy; mmol/kg/day; mmol per kg per dy; millimoles per kilograms per day","LOINC","RelSRat","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per hour","mmol/kg/h","(MMOL/KG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(mmol/kg)/h","si",!0,null,null,1,!1,!1,1,"mmol/kg/hr; mmol per kg per hr; millimoles per kilograms per hour","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per minute","mmol/kg/min","(MMOL/KG)/MIN","amount of substance",100368945e8,[0,-1,-1,0,0,0,0],"(mmol/kg)/min","si",!0,null,null,1,!1,!1,1,"mmol/(kg.min); mmol/kg/min; mmol per kg per min; millimoles per kilograms per minute","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass; note that the unit for the enzyme unit U = umol/min. mmol/kg/min = kU/kg; ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per liter","mmol/L","MMOL/L","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"mmol/L","si",!0,null,null,1,!1,!1,1,"mmol per L; millimoles per liter; litre","LOINC","SCnc","Clinical","unit for tests related to doses","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per square meter","mmol/m2","MMOL/M2","amount of substance",60221367e13,[-2,0,0,0,0,0,0],"mmol/(m2)","si",!0,null,null,1,!1,!1,1,"mmol/m^2; mmol/sq. meter; mmol per m2; m^2; sq. meter; millimoles; meter squared; metre","LOINC","ArSub","Clinical","unit used to measure molar dose per patient body surface area","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per minute","mmol/min","MMOL/MIN","amount of substance",100368945e11,[0,-1,0,0,0,0,0],"mmol/min","si",!0,null,null,1,!1,!1,1,"mmol per min; millimoles per minute","LOINC","Srat; CAct","Clinical","unit for the enzyme unit U = umol/min. mmol/min = kU","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per millimole","mmol/mmol","MMOL/MMOL","amount of substance",1,[0,0,0,0,0,0,0],"mmol/mmol","si",!0,null,null,1,!1,!1,0,"mmol per mmol; millimoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per mole","mmol/mol","MMOL/MOL","amount of substance",.001,[0,0,0,0,0,0,0],"mmol/mol","si",!0,null,null,1,!1,!1,0,"mmol per mol; millimoles per mole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per second per liter","mmol/s/L","(MMOL/S)/L","amount of substance",60221367e16,[-3,-1,0,0,0,0,0],"(mmol/s)/L","si",!0,null,null,1,!1,!1,1,"mmol/sec/L; mmol per s per L; per sec; millimoles per seconds per liter; litre","LOINC","CCnc ","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per kilogram","mol/kg","MOL/KG","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"mol/kg","si",!0,null,null,1,!1,!1,1,"mol per kg; moles; mols","LOINC","SCnt","Clinical","unit for tests related to stool","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per kilogram per second","mol/kg/s","(MOL/KG)/S","amount of substance",60221367e13,[0,-1,-1,0,0,0,0],"(mol/kg)/s","si",!0,null,null,1,!1,!1,1,"mol/kg/sec; mol per kg per sec; moles per kilograms per second; mols","LOINC","CCnt","Clinical","unit of catalytic activity (mol/s) per mass (kg)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per liter","mol/L","MOL/L","amount of substance",60221366999999994e10,[-3,0,0,0,0,0,0],"mol/L","si",!0,null,null,1,!1,!1,1,"mol per L; moles per liter; litre; moles; mols","LOINC","SCnc","Clinical","unit often used in tests measuring oxygen content","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per cubic meter","mol/m3","MOL/M3","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"mol/(m3)","si",!0,null,null,1,!1,!1,1,"mol/m^3; mol/cu. m; mol per m3; m^3; cu. meter; mols; moles; meters cubed; metre; mole per kiloliter; kilolitre; mol/kL","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per milliliter","mol/mL","MOL/ML","amount of substance",60221367e22,[-3,0,0,0,0,0,0],"mol/mL","si",!0,null,null,1,!1,!1,1,"mol per mL; moles; millilitre; mols","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per mole","mol/mol","MOL/MOL","amount of substance",1,[0,0,0,0,0,0,0],"mol/mol","si",!0,null,null,1,!1,!1,0,"mol per mol; moles per mol; mols","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per second","mol/s","MOL/S","amount of substance",60221367e16,[0,-1,0,0,0,0,0],"mol/s","si",!0,null,null,1,!1,!1,1,"mol per sec; moles per second; mols","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"milliosmole","mosm","MOSM","amount of substance (dissolved particles)",60221367e13,[0,0,0,0,0,0,0],"mosm","chemical",!0,null,null,1,!1,!1,1,"milliosmoles","LOINC","Osmol","Clinical","equal to 1/1000 of an osmole","mol","MOL","1",1,!1],[!1,"milliosmole per kilogram","mosm/kg","MOSM/KG","amount of substance (dissolved particles)",60221367e10,[0,0,-1,0,0,0,0],"mosm/kg","chemical",!0,null,null,1,!1,!1,1,"mosm per kg; milliosmoles per kilogram","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"milliosmole per liter","mosm/L","MOSM/L","amount of substance (dissolved particles)",60221367e16,[-3,0,0,0,0,0,0],"mosm/L","chemical",!0,null,null,1,!1,!1,1,"mosm per liter; litre; milliosmoles","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"millipascal","mPa","MPAL","pressure",1,[-1,-2,1,0,0,0,0],"mPa","si",!0,null,null,1,!1,!1,0,"millipascals","LOINC","Pres","Clinical","unit of pressure","N/m2","N/M2","1",1,!1],[!1,"millipascal second","mPa.s","MPAL.S","pressure",1,[-1,-1,1,0,0,0,0],"mPa.s","si",!0,null,null,1,!1,!1,0,"mPa*s; millipoise; mP; dynamic viscosity","LOINC","Visc","Clinical","base units for millipoise, a measurement of dynamic viscosity","N/m2","N/M2","1",1,!1],[!1,"megasecond","Ms","MAS","time",1e6,[0,1,0,0,0,0,0],"Ms",null,!1,"T",null,1,!1,!1,0,"megaseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"millisecond","ms","MS","time",.001,[0,1,0,0,0,0,0],"ms",null,!1,"T",null,1,!1,!1,0,"milliseconds; duration","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"milli enzyme unit per gram","mU/g","MU/G","catalytic activity",100368945e5,[0,-1,-1,0,0,0,0],"mU/g","chemical",!0,null,null,1,!1,!1,1,"mU per gm; milli enzyme units per gram; enzyme activity; enzymatic activity per mass","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per liter","mU/L","MU/L","catalytic activity",100368945e8,[-3,-1,0,0,0,0,0],"mU/L","chemical",!0,null,null,1,!1,!1,1,"mU per liter; litre; milli enzyme units enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milligram","mU/mg","MU/MG","catalytic activity",100368945e8,[0,-1,-1,0,0,0,0],"mU/mg","chemical",!0,null,null,1,!1,!1,1,"mU per mg; milli enzyme units per milligram","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milliliter","mU/mL","MU/ML","catalytic activity",100368945e11,[-3,-1,0,0,0,0,0],"mU/mL","chemical",!0,null,null,1,!1,!1,1,"mU per mL; milli enzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milliliter per minute","mU/mL/min","(MU/ML)/MIN","catalytic activity",167281575e9,[-3,-2,0,0,0,0,0],"(mU/mL)/min","chemical",!0,null,null,1,!1,!1,1,"mU per mL per min; mU per milliliters per minute; millilitres; milli enzyme units; enzymatic activity; enzyme activity","LOINC","CCncRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"millivolt","mV","MV","electric potential",1,[2,-2,1,0,0,-1,0],"mV","si",!0,null,null,1,!1,!1,0,"millivolts","LOINC","Elpot","Clinical","unit of electric potential (voltage)","J/C","J/C","1",1,!1],[!1,"Newton centimeter","N.cm","N.CM","force",10,[2,-2,1,0,0,0,0],"N.cm","si",!0,null,null,1,!1,!1,0,"N*cm; Ncm; N cm; Newton*centimeters; Newton* centimetres; torque; work","LOINC","","Clinical",`as a measurement of work, N.cm = 1/100 Joules; -note that N.m is the standard unit of measurement for torque (although dimensionally equivalent to Joule), and N.cm can also be thought of as a torqe unit`,"kg.m/s2","KG.M/S2","1",1,!1],[!1,"Newton second","N.s","N.S","force",1e3,[1,-1,1,0,0,0,0],"N.s","si",!0,null,null,1,!1,!1,0,"Newton*seconds; N*s; N s; Ns; impulse; imp","LOINC","","Clinical","standard unit of impulse","kg.m/s2","KG.M/S2","1",1,!1],[!1,"nanogram","ng","NG","mass",1e-9,[0,0,1,0,0,0,0],"ng",null,!1,"M",null,1,!1,!1,0,"nanograms","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"nanogram per 24 hour","ng/(24.h)","NG/(24.HR)","mass",11574074074074075e-30,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/24hrs; ng/24 hrs; nanograms per 24 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per 8 hour","ng/(8.h)","NG/(8.HR)","mass",34722222222222224e-30,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/8hrs; ng/8 hrs; nanograms per 8 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per million","ng/10*6","NG/(10*6)","mass",1e-15,[0,0,1,0,0,0,0],"ng/(106)",null,!1,"M",null,1,!1,!1,0,"ng/10^6; ng per 10*6; 10^6; nanograms","LOINC","MNum","Clinical","",null,null,null,null,!1],[!1,"nanogram per day","ng/d","NG/D","mass",11574074074074075e-30,[0,-1,1,0,0,0,0],"ng/d",null,!1,"M",null,1,!1,!1,0,"ng/dy; ng per day; nanograms ","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per deciliter","ng/dL","NG/DL","mass",1e-5,[-3,0,1,0,0,0,0],"ng/dL",null,!1,"M",null,1,!1,!1,0,"ng per dL; nanograms per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per gram","ng/g","NG/G","mass",1e-9,[0,0,0,0,0,0,0],"ng/g",null,!1,"M",null,1,!1,!1,0,"ng/gm; ng per gm; nanograms per gram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per hour","ng/h","NG/HR","mass",2777777777777778e-28,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/hr; ng per hr; nanograms per hour","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per kilogram","ng/kg","NG/KG","mass",1e-12,[0,0,0,0,0,0,0],"ng/kg",null,!1,"M",null,1,!1,!1,0,"ng per kg; nanograms per kilogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per kilogram per 8 hour","ng/kg/(8.h)","(NG/KG)/(8.HR)","mass",3472222222222222e-32,[0,-1,0,0,0,0,0],"(ng/kg)/h",null,!1,"M",null,1,!1,!1,0,"ng/(8.h.kg); ng/kg/8hrs; ng/kg/8 hrs; ng per kg per 8hrs; 8 hrs; nanograms per kilograms per 8 hours; shift","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per kilogram per hour","ng/kg/h","(NG/KG)/HR","mass",27777777777777775e-32,[0,-1,0,0,0,0,0],"(ng/kg)/h",null,!1,"M",null,1,!1,!1,0,"ng/(kg.h); ng/kg/hr; ng per kg per hr; nanograms per kilograms per hour","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per kilogram per minute","ng/kg/min","(NG/KG)/MIN","mass",16666666666666667e-30,[0,-1,0,0,0,0,0],"(ng/kg)/min",null,!1,"M",null,1,!1,!1,0,"ng/(kg.min); ng per kg per min; nanograms per kilograms per minute","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per liter","ng/L","NG/L","mass",1e-6,[-3,0,1,0,0,0,0],"ng/L",null,!1,"M",null,1,!1,!1,0,"ng per L; nanograms per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per square meter","ng/m2","NG/M2","mass",1e-9,[-2,0,1,0,0,0,0],"ng/(m2)",null,!1,"M",null,1,!1,!1,0,"ng/m^2; ng/sq. m; ng per m2; m^2; sq. meter; nanograms; meter squared; metre","LOINC","ArMass","Clinical","unit used to measure mass dose per patient body surface area",null,null,null,null,!1],[!1,"nanogram per milligram","ng/mg","NG/MG","mass",1e-6,[0,0,0,0,0,0,0],"ng/mg",null,!1,"M",null,1,!1,!1,0,"ng per mg; nanograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per milligram per hour","ng/mg/h","(NG/MG)/HR","mass",27777777777777777e-26,[0,-1,0,0,0,0,0],"(ng/mg)/h",null,!1,"M",null,1,!1,!1,0,"ng/mg/hr; ng per mg per hr; nanograms per milligrams per hour","LOINC","MRtoRat ","Clinical","",null,null,null,null,!1],[!1,"nanogram per minute","ng/min","NG/MIN","mass",16666666666666667e-27,[0,-1,1,0,0,0,0],"ng/min",null,!1,"M",null,1,!1,!1,0,"ng per min; nanograms","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per millliiter","ng/mL","NG/ML","mass",.001,[-3,0,1,0,0,0,0],"ng/mL",null,!1,"M",null,1,!1,!1,0,"ng per mL; nanograms; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per milliliter per hour","ng/mL/h","(NG/ML)/HR","mass",27777777777777776e-23,[-3,-1,1,0,0,0,0],"(ng/mL)/h",null,!1,"M",null,1,!1,!1,0,"ng/mL/hr; ng per mL per mL; nanograms per milliliter per hour; nanogram per millilitre per hour; nanograms per millilitre per hour; enzymatic activity per volume; enzyme activity per milliliters","LOINC","CCnc","Clinical","tests that measure enzymatic activity",null,null,null,null,!1],[!1,"nanogram per second","ng/s","NG/S","mass",1e-9,[0,-1,1,0,0,0,0],"ng/s",null,!1,"M",null,1,!1,!1,0,"ng/sec; ng per sec; nanograms per second","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per enzyme unit","ng/U","NG/U","mass",9963241120049634e-41,[0,1,1,0,0,0,0],"ng/U",null,!1,"M",null,1,!1,!1,-1,"ng per U; nanograms per enzyme unit","LOINC","CMass","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)",null,null,null,null,!1],[!1,"nanokatal","nkat","NKAT","catalytic activity",60221367e7,[0,-1,0,0,0,0,0],"nkat","chemical",!0,null,null,1,!1,!1,1,"nanokatals","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"nanoliter","nL","NL","volume",10000000000000002e-28,[3,0,0,0,0,0,0],"nL","iso1000",!0,null,null,1,!1,!1,0,"nanoliters; nanolitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"nanometer","nm","NM","length",1e-9,[1,0,0,0,0,0,0],"nm",null,!1,"L",null,1,!1,!1,0,"nanometers; nanometres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"nanometer per second per liter","nm/s/L","(NM/S)/L","length",1e-6,[-2,-1,0,0,0,0,0],"(nm/s)/L",null,!1,"L",null,1,!1,!1,0,"nm/sec/liter; nm/sec/litre; nm per s per l; nm per sec per l; nanometers per second per liter; nanometre per second per litre; nanometres per second per litre","LOINC","VelCnc","Clinical","",null,null,null,null,!1],[!1,"nanomole","nmol","NMOL","amount of substance",60221367e7,[0,0,0,0,0,0,0],"nmol","si",!0,null,null,1,!1,!1,1,"nanomoles","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per 24 hour","nmol/(24.h)","NMOL/(24.HR)","amount of substance",6970065625,[0,-1,0,0,0,0,0],"nmol/h","si",!0,null,null,1,!1,!1,1,"nmol/24hr; nmol/24 hr; nanomoles per 24 hours; nmol/day; nanomoles per day; nmol per day; nanomole/day; nanomol/day","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per day","nmol/d","NMOL/D","amount of substance",6970065625,[0,-1,0,0,0,0,0],"nmol/d","si",!0,null,null,1,!1,!1,1,"nmol/day; nanomoles per day; nmol per day; nanomole/day; nanomol/day; nmol/24hr; nmol/24 hr; nanomoles per 24 hours; ","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per deciliter","nmol/dL","NMOL/DL","amount of substance",60221367e11,[-3,0,0,0,0,0,0],"nmol/dL","si",!0,null,null,1,!1,!1,1,"nmol per dL; nanomoles per deciliter; nanomole per decilitre; nanomoles per decilitre; nanomole/deciliter; nanomole/decilitre; nanomol/deciliter; nanomol/decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per gram","nmol/g","NMOL/G","amount of substance",60221367e7,[0,0,-1,0,0,0,0],"nmol/g","si",!0,null,null,1,!1,!1,1,"nmol per gram; nanomoles per gram; nanomole/gram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per hour per liter","nmol/h/L","(NMOL/HR)/L","amount of substance",167281575e6,[-3,-1,0,0,0,0,0],"(nmol/h)/L","si",!0,null,null,1,!1,!1,1,"nmol/hrs/L; nmol per hrs per L; nanomoles per hours per liter; litre; enzymatic activity per volume; enzyme activities","LOINC","CCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per liter","nmol/L","NMOL/L","amount of substance",60221367e10,[-3,0,0,0,0,0,0],"nmol/L","si",!0,null,null,1,!1,!1,1,"nmol per L; nanomoles per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram","nmol/mg","NMOL/MG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"nmol/mg","si",!0,null,null,1,!1,!1,1,"nmol per mg; nanomoles per milligram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram per hour","nmol/mg/h","(NMOL/MG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(nmol/mg)/h","si",!0,null,null,1,!1,!1,1,"nmol/mg/hr; nmol per mg per hr; nanomoles per milligrams per hour","LOINC","SCntRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram of protein","nmol/mg{prot}","NMOL/MG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"nmol/mg","si",!0,null,null,1,!1,!1,1,"nanomoles; nmol/mg prot; nmol per mg prot","LOINC","Ratio; CCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per minute","nmol/min","NMOL/MIN","amount of substance",100368945e5,[0,-1,0,0,0,0,0],"nmol/min","si",!0,null,null,1,!1,!1,1,"nmol per min; nanomoles per minute; milli enzyme units; enzyme activity per volume; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/min = mU (milli enzyme unit)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per minute per milliliter","nmol/min/mL","(NMOL/MIN)/ML","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(nmol/min)/mL","si",!0,null,null,1,!1,!1,1,"nmol per min per mL; nanomoles per minutes per milliliter; millilitre; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/mL/min = mU/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter","nmol/mL","NMOL/ML","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"nmol/mL","si",!0,null,null,1,!1,!1,1,"nmol per mL; nanomoles per milliliter; millilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter per hour","nmol/mL/h","(NMOL/ML)/HR","amount of substance",167281575e9,[-3,-1,0,0,0,0,0],"(nmol/mL)/h","si",!0,null,null,1,!1,!1,1,"nmol/mL/hr; nmol per mL per hr; nanomoles per milliliters per hour; millilitres; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter per minute","nmol/mL/min","(NMOL/ML)/MIN","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(nmol/mL)/min","si",!0,null,null,1,!1,!1,1,"nmol per mL per min; nanomoles per milliliters per min; millilitres; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/mL/min = mU/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per millimole","nmol/mmol","NMOL/MMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"nmol/mmol","si",!0,null,null,1,!1,!1,0,"nmol per mmol; nanomoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per millimole of creatinine","nmol/mmol{creat}","NMOL/MMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"nmol/mmol","si",!0,null,null,1,!1,!1,0,"nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per mole","nmol/mol","NMOL/MOL","amount of substance",1e-9,[0,0,0,0,0,0,0],"nmol/mol","si",!0,null,null,1,!1,!1,0,"nmol per mole; nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per nanomole","nmol/nmol","NMOL/NMOL","amount of substance",1,[0,0,0,0,0,0,0],"nmol/nmol","si",!0,null,null,1,!1,!1,0,"nmol per nmol; nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per second","nmol/s","NMOL/S","amount of substance",60221367e7,[0,-1,0,0,0,0,0],"nmol/s","si",!0,null,null,1,!1,!1,1,"nmol/sec; nmol per sec; nanomoles per sercond; milli enzyme units; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per second per liter","nmol/s/L","(NMOL/S)/L","amount of substance",60221367e10,[-3,-1,0,0,0,0,0],"(nmol/s)/L","si",!0,null,null,1,!1,!1,1,"nmol/sec/L; nmol per s per L; nmol per sec per L; nanomoles per seconds per liter; litre; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanosecond","ns","NS","time",1e-9,[0,1,0,0,0,0,0],"ns",null,!1,"T",null,1,!1,!1,0,"nanoseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"nanoenzyme unit per milliliter","nU/mL","NU/ML","catalytic activity",100368945e5,[-3,-1,0,0,0,0,0],"nU/mL","chemical",!0,null,null,1,!1,!1,1,"nU per mL; nanoenzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 fU = pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"Ohm meter","Ohm.m","OHM.M","electric resistance",1e3,[3,-1,1,0,0,-2,0],"\u03A9.m","si",!0,null,null,1,!1,!1,0,"electric resistivity; meters; metres","LOINC","","Clinical","unit of electric resistivity","V/A","V/A","1",1,!1],[!1,"osmole per kilogram","osm/kg","OSM/KG","amount of substance (dissolved particles)",60221367e13,[0,0,-1,0,0,0,0],"osm/kg","chemical",!0,null,null,1,!1,!1,1,"osm per kg; osmoles per kilogram; osmols","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"osmole per liter","osm/L","OSM/L","amount of substance (dissolved particles)",60221366999999994e10,[-3,0,0,0,0,0,0],"osm/L","chemical",!0,null,null,1,!1,!1,1,"osm per L; osmoles per liter; litre; osmols","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"picoampere","pA","PA","electric current",1e-12,[0,-1,0,0,0,1,0],"pA","si",!0,null,null,1,!1,!1,0,"picoamperes","LOINC","","Clinical","equal to 10^-12 amperes","C/s","C/S","1",1,!1],[!1,"picogram","pg","PG","mass",1e-12,[0,0,1,0,0,0,0],"pg",null,!1,"M",null,1,!1,!1,0,"picograms","LOINC","Mass; EntMass","Clinical","",null,null,null,null,!1],[!1,"picogram per deciliter","pg/dL","PG/DL","mass",9999999999999999e-24,[-3,0,1,0,0,0,0],"pg/dL",null,!1,"M",null,1,!1,!1,0,"pg per dL; picograms; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per liter","pg/L","PG/L","mass",1e-9,[-3,0,1,0,0,0,0],"pg/L",null,!1,"M",null,1,!1,!1,0,"pg per L; picograms; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per milligram","pg/mg","PG/MG","mass",1e-9,[0,0,0,0,0,0,0],"pg/mg",null,!1,"M",null,1,!1,!1,0,"pg per mg; picograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"picogram per milliliter","pg/mL","PG/ML","mass",1e-6,[-3,0,1,0,0,0,0],"pg/mL",null,!1,"M",null,1,!1,!1,0,"pg per mL; picograms per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per millimeter","pg/mm","PG/MM","mass",1e-9,[-1,0,1,0,0,0,0],"pg/mm",null,!1,"M",null,1,!1,!1,0,"pg per mm; picogram/millimeter; picogram/millimetre; picograms per millimeter; millimetre","LOINC","Lineic Mass","Clinical","",null,null,null,null,!1],[!1,"picokatal","pkat","PKAT","catalytic activity",60221367e4,[0,-1,0,0,0,0,0],"pkat","chemical",!0,null,null,1,!1,!1,1,"pkats; picokatals","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"picoliter","pL","PL","volume",1e-15,[3,0,0,0,0,0,0],"pL","iso1000",!0,null,null,1,!1,!1,0,"picoliters; picolitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"picometer","pm","PM","length",1e-12,[1,0,0,0,0,0,0],"pm",null,!1,"L",null,1,!1,!1,0,"picometers; picometres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"picomole","pmol","PMOL","amount of substance",60221367e4,[0,0,0,0,0,0,0],"pmol","si",!0,null,null,1,!1,!1,1,"picomoles; pmols","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per 24 hour","pmol/(24.h)","PMOL/(24.HR)","amount of substance",6970065625e-3,[0,-1,0,0,0,0,0],"pmol/h","si",!0,null,null,1,!1,!1,1,"pmol/24hrs; pmol/24 hrs; pmol per 24 hrs; 24hrs; days; dy; picomoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per day","pmol/d","PMOL/D","amount of substance",6970065625e-3,[0,-1,0,0,0,0,0],"pmol/d","si",!0,null,null,1,!1,!1,1,"pmol/dy; pmol per day; 24 hours; 24hrs; 24 hrs; picomoles","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per deciliter","pmol/dL","PMOL/DL","amount of substance",60221367e8,[-3,0,0,0,0,0,0],"pmol/dL","si",!0,null,null,1,!1,!1,1,"pmol per dL; picomoles per deciliter; decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per gram","pmol/g","PMOL/G","amount of substance",60221367e4,[0,0,-1,0,0,0,0],"pmol/g","si",!0,null,null,1,!1,!1,1,"pmol per gm; picomoles per gram; picomole/gram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per hour per milliliter ","pmol/h/mL","(PMOL/HR)/ML","amount of substance",167281575e6,[-3,-1,0,0,0,0,0],"(pmol/h)/mL","si",!0,null,null,1,!1,!1,1,"pmol/hrs/mL; pmol per hrs per mL; picomoles per hour per milliliter; millilitre; micro enzyme units per volume; enzymatic activity; enzyme activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per liter","pmol/L","PMOL/L","amount of substance",60221367e7,[-3,0,0,0,0,0,0],"pmol/L","si",!0,null,null,1,!1,!1,1,"picomole/liter; pmol per L; picomoles; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per minute","pmol/min","PMOL/MIN","amount of substance",10036894500,[0,-1,0,0,0,0,0],"pmol/min","si",!0,null,null,1,!1,!1,1,"picomole/minute; pmol per min; picomoles per minute; micro enzyme units; enzymatic activity; enzyme activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. pmol/min = uU (micro enzyme unit)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per milliliter","pmol/mL","PMOL/ML","amount of substance",60221367e10,[-3,0,0,0,0,0,0],"pmol/mL","si",!0,null,null,1,!1,!1,1,"picomole/milliliter; picomole/millilitre; pmol per mL; picomoles; millilitre; picomols; pmols","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per micromole","pmol/umol","PMOL/UMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"pmol/\u03BCmol","si",!0,null,null,1,!1,!1,0,"pmol/mcgmol; picomole/micromole; pmol per umol; pmol per mcgmol; picomoles ","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picosecond","ps","PS","time",1e-12,[0,1,0,0,0,0,0],"ps",null,!1,"T",null,1,!1,!1,0,"picoseconds; psec","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"picotesla","pT","PT","magnetic flux density",1e-9,[0,-1,1,0,0,-1,0],"pT","si",!0,null,null,1,!1,!1,0,"picoteslas","LOINC","","Clinical","SI unit of magnetic field strength for magnetic field B","Wb/m2","WB/M2","1",1,!1],[!1,"enzyme unit per 12 hour","U/(12.h)","U/(12.HR)","catalytic activity",23233552083333334e-5,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/12hrs; U/ 12hrs; U per 12 hrs; 12hrs; enzyme units per 12 hours; enzyme activity; enzymatic activity per time; umol per min per 12 hours; micromoles per minute per 12 hours; umol/min/12hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 2 hour","U/(2.h)","U/(2.HR)","catalytic activity",1394013125e3,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/2hrs; U/ 2hrs; U per 2 hrs; 2hrs; enzyme units per 2 hours; enzyme activity; enzymatic activity per time; umol per minute per 2 hours; micromoles per minute; umol/min/2hr; umol per min per 2hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 24 hour","U/(24.h)","U/(24.HR)","catalytic activity",11616776041666667e-5,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/24hrs; U/ 24hrs; U per 24 hrs; 24hrs; enzyme units per 24 hours; enzyme activity; enzymatic activity per time; micromoles per minute per 24 hours; umol/min/24hr; umol per min per 24hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 10","U/10","U/10","catalytic activity",100368945e7,[0,-1,0,0,0,0,0],"U","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10; U per 10; enzyme units per 10; enzymatic activity; enzyme activity; micromoles per minute; umol/min/10","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 10 billion","U/10*10","U/(10*10)","catalytic activity",100368945e-2,[0,-1,0,0,0,0,0],"U/(1010)","chemical",!0,null,null,1,!1,!1,1,"U per 10*10; enzyme units per 10*10; U per 10 billion; enzyme units; enzymatic activity; micromoles per minute per 10 billion; umol/min/10*10","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per trillion","U/10*12","U/(10*12)","catalytic activity",10036.8945,[0,-1,0,0,0,0,0],"U/(1012)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*12; U per 10*12; enzyme units per 10*12; enzyme units per trillion; enzymatic activity; micromoles per minute per trillion; umol/min/10*12; umol per min per 10*12","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per million","U/10*6","U/(10*6)","catalytic activity",10036894500,[0,-1,0,0,0,0,0],"U/(106)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*6; U per 10*6; enzyme units per 10*6; enzyme units; enzymatic activity per volume; micromoles per minute per million; umol/min/10*6; umol per min per 10*6","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per billion","U/10*9","U/(10*9)","catalytic activity",100368945e-1,[0,-1,0,0,0,0,0],"U/(109)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*9; U per 10*9; enzyme units per 10*9; enzymatic activity per volume; micromoles per minute per billion; umol/min/10*9; umol per min per 10*9","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per day","U/d","U/D","catalytic activity",11616776041666667e-5,[0,-2,0,0,0,0,0],"U/d","chemical",!0,null,null,1,!1,!1,1,"U/dy; enzyme units per day; enzyme units; enzyme activity; enzymatic activity per time; micromoles per minute per day; umol/min/day; umol per min per day","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per deciliter","U/dL","U/DL","catalytic activity",100368945e12,[-3,-1,0,0,0,0,0],"U/dL","chemical",!0,null,null,1,!1,!1,1,"U per dL; enzyme units per deciliter; decilitre; micromoles per minute per deciliter; umol/min/dL; umol per min per dL","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per gram","U/g","U/G","catalytic activity",100368945e8,[0,-1,-1,0,0,0,0],"U/g","chemical",!0,null,null,1,!1,!1,1,"U/gm; U per gm; enzyme units per gram; micromoles per minute per gram; umol/min/g; umol per min per g","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per hour","U/h","U/HR","catalytic activity",278802625e4,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/hr; U per hr; enzyme units per hour; micromoles per minute per hour; umol/min/hr; umol per min per hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per liter","U/L","U/L","catalytic activity",100368945e11,[-3,-1,0,0,0,0,0],"U/L","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/liter; enzyme unit/litre; U per L; enzyme units per liter; enzyme unit per litre; micromoles per minute per liter; umol/min/L; umol per min per L","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per minute","U/min","U/MIN","catalytic activity",167281575e6,[0,-2,0,0,0,0,0],"U/min","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/minute; U per min; enzyme units; umol/min/min; micromoles per minute per minute; micromoles per min per min; umol","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per milliliter","U/mL","U/ML","catalytic activity",100368945e14,[-3,-1,0,0,0,0,0],"U/mL","chemical",!0,null,null,1,!1,!1,1,"U per mL; enzyme units per milliliter; millilitre; micromoles per minute per milliliter; umol/min/mL; umol per min per mL","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per second","U/s","U/S","catalytic activity",100368945e8,[0,-2,0,0,0,0,0],"U/s","chemical",!0,null,null,1,!1,!1,1,"U/sec; U per second; enzyme units per second; micromoles per minute per second; umol/min/sec; umol per min per sec","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"micro international unit","u[IU]","U[IU]","arbitrary",1e-6,[0,0,0,0,0,0,0],"\u03BCi.U.","chemical",!0,null,null,1,!1,!0,0,"uIU; u IU; microinternational units","LOINC","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"micro international unit per liter","u[IU]/L","U[IU]/L","arbitrary",.001,[-3,0,0,0,0,0,0],"(\u03BCi.U.)/L","chemical",!0,null,null,1,!1,!0,0,"uIU/L; u IU/L; uIU per L; microinternational units per liter; litre; ","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"micro international unit per milliliter","u[IU]/mL","U[IU]/ML","arbitrary",1,[-3,0,0,0,0,0,0],"(\u03BCi.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"uIU/mL; u IU/mL; uIU per mL; microinternational units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"microequivalent","ueq","UEQ","amount of substance",60221367e10,[0,0,0,0,0,0,0],"\u03BCeq","chemical",!0,null,null,1,!1,!1,1,"microequivalents; 10^-6 equivalents; 10-6 equivalents","LOINC","Sub","Clinical","","mol","MOL","1",1,!1],[!1,"microequivalent per liter","ueq/L","UEQ/L","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"\u03BCeq/L","chemical",!0,null,null,1,!1,!1,1,"ueq per liter; litre; microequivalents","LOINC","MCnc","Clinical","","mol","MOL","1",1,!1],[!1,"microequivalent per milliliter","ueq/mL","UEQ/ML","amount of substance",60221367000000003e7,[-3,0,0,0,0,0,0],"\u03BCeq/mL","chemical",!0,null,null,1,!1,!1,1,"ueq per milliliter; millilitre; microequivalents","LOINC","MCnc","Clinical","","mol","MOL","1",1,!1],[!1,"microgram","ug","UG","mass",1e-6,[0,0,1,0,0,0,0],"\u03BCg",null,!1,"M",null,1,!1,!1,0,"mcg; micrograms; 10^-6 grams; 10-6 grams","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"microgram per 100 gram","ug/(100.g)","UG/(100.G)","mass",1e-8,[0,0,0,0,0,0,0],"\u03BCg/g",null,!1,"M",null,1,!1,!1,0,"ug/100gm; ug/100 gm; mcg; ug per 100g; 100 gm; mcg per 100g; micrograms per 100 grams","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per 24 hour","ug/(24.h)","UG/(24.HR)","mass",11574074074074074e-27,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/24hrs; ug/24 hrs; mcg/24hrs; ug per 24hrs; mcg per 24hrs; 24 hrs; micrograms per 24 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per 8 hour","ug/(8.h)","UG/(8.HR)","mass",3472222222222222e-26,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/8hrs; ug/8 hrs; mcg/8hrs; ug per 8hrs; mcg per 8hrs; 8 hrs; micrograms per 8 hours; shift","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per square foot (international)","ug/[sft_i]","UG/[SFT_I]","mass",10763910416709721e-21,[-2,0,1,0,0,0,0],"\u03BCg",null,!1,"M",null,1,!1,!1,0,"ug/sft; ug/ft2; ug/ft^2; ug/sq. ft; micrograms; sq. foot; foot squared","LOINC","ArMass","Clinical","",null,null,null,null,!1],[!1,"microgram per day","ug/d","UG/D","mass",11574074074074074e-27,[0,-1,1,0,0,0,0],"\u03BCg/d",null,!1,"M",null,1,!1,!1,0,"ug/dy; mcg/dy; ug per day; mcg; micrograms per day","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per deciliter","ug/dL","UG/DL","mass",.009999999999999998,[-3,0,1,0,0,0,0],"\u03BCg/dL",null,!1,"M",null,1,!1,!1,0,"ug per dL; mcg/dl; mcg per dl; micrograms per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per gram","ug/g","UG/G","mass",1e-6,[0,0,0,0,0,0,0],"\u03BCg/g",null,!1,"M",null,1,!1,!1,0,"ug per gm; mcg/gm; mcg per g; micrograms per gram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per hour","ug/h","UG/HR","mass",27777777777777777e-26,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/hr; mcg/hr; mcg per hr; ug per hr; ug per hour; micrograms","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per kilogram","ug/kg","UG/KG","mass",9999999999999999e-25,[0,0,0,0,0,0,0],"\u03BCg/kg",null,!1,"M",null,1,!1,!1,0,"ug per kg; mcg/kg; mcg per kg; micrograms per kilogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per kilogram per 8 hour","ug/kg/(8.h)","(UG/KG)/(8.HR)","mass",3472222222222222e-29,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/h",null,!1,"M",null,1,!1,!1,0,"ug/kg/8hrs; mcg/kg/8hrs; ug/kg/8 hrs; mcg/kg/8 hrs; ug per kg per 8hrs; 8 hrs; mcg per kg per 8hrs; micrograms per kilograms per 8 hours; shift","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per day","ug/kg/d","(UG/KG)/D","mass",11574074074074072e-30,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/d",null,!1,"M",null,1,!1,!1,0,"ug/(kg.d); ug/kg/dy; mcg/kg/day; ug per kg per dy; 24 hours; 24hrs; mcg; kilograms; microgram per kilogram and day","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per hour","ug/kg/h","(UG/KG)/HR","mass",27777777777777774e-29,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/h",null,!1,"M",null,1,!1,!1,0,"ug/(kg.h); ug/kg/hr; mcg/kg/hr; ug per kg per hr; mcg per kg per hr; kilograms","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per minute","ug/kg/min","(UG/KG)/MIN","mass",16666666666666664e-27,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/min",null,!1,"M",null,1,!1,!1,0,"ug/kg/min; ug/kg/min; mcg/kg/min; ug per kg per min; mcg; micrograms per kilograms per minute ","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per liter","ug/L","UG/L","mass",.001,[-3,0,1,0,0,0,0],"\u03BCg/L",null,!1,"M",null,1,!1,!1,0,"mcg/L; ug per L; mcg; micrograms per liter; litre ","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per liter per 24 hour","ug/L/(24.h)","(UG/L)/(24.HR)","mass",11574074074074074e-24,[-3,-1,1,0,0,0,0],"(\u03BCg/L)/h",null,!1,"M",null,1,!1,!1,0,"ug/L/24hrs; ug/L/24 hrs; mcg/L/24hrs; ug per L per 24hrs; 24 hrs; day; dy mcg; micrograms per liters per 24 hours; litres","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per square meter","ug/m2","UG/M2","mass",1e-6,[-2,0,1,0,0,0,0],"\u03BCg/(m2)",null,!1,"M",null,1,!1,!1,0,"ug/m^2; ug/sq. m; mcg/m2; mcg/m^2; mcg/sq. m; ug per m2; m^2; sq. meter; mcg; micrograms per square meter; meter squared; metre","LOINC","ArMass","Clinical","unit used to measure mass dose per patient body surface area",null,null,null,null,!1],[!1,"microgram per cubic meter","ug/m3","UG/M3","mass",1e-6,[-3,0,1,0,0,0,0],"\u03BCg/(m3)",null,!1,"M",null,1,!1,!1,0,"ug/m^3; ug/cu. m; mcg/m3; mcg/m^3; mcg/cu. m; ug per m3; ug per m^3; ug per cu. m; mcg; micrograms per cubic meter; meter cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per milligram","ug/mg","UG/MG","mass",.001,[0,0,0,0,0,0,0],"\u03BCg/mg",null,!1,"M",null,1,!1,!1,0,"ug per mg; mcg/mg; mcg per mg; micromilligrams per milligram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per minute","ug/min","UG/MIN","mass",16666666666666667e-24,[0,-1,1,0,0,0,0],"\u03BCg/min",null,!1,"M",null,1,!1,!1,0,"ug per min; mcg/min; mcg per min; microminutes per minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per milliliter","ug/mL","UG/ML","mass",1,[-3,0,1,0,0,0,0],"\u03BCg/mL",null,!1,"M",null,1,!1,!1,0,"ug per mL; mcg/mL; mcg per mL; micrograms per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per millimole","ug/mmol","UG/MMOL","mass",1660540186674939e-42,[0,0,1,0,0,0,0],"\u03BCg/mmol",null,!1,"M",null,1,!1,!1,-1,"ug per mmol; mcg/mmol; mcg per mmol; micrograms per millimole","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"microgram per nanogram","ug/ng","UG/NG","mass",999.9999999999999,[0,0,0,0,0,0,0],"\u03BCg/ng",null,!1,"M",null,1,!1,!1,0,"ug per ng; mcg/ng; mcg per ng; micrograms per nanogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microkatal","ukat","UKAT","catalytic activity",60221367e10,[0,-1,0,0,0,0,0],"\u03BCkat","chemical",!0,null,null,1,!1,!1,1,"microkatals; ukats","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"microliter","uL","UL","volume",1e-9,[3,0,0,0,0,0,0],"\u03BCL","iso1000",!0,null,null,1,!1,!1,0,"microliters; microlitres; mcl","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"microliter per 2 hour","uL/(2.h)","UL/(2.HR)","volume",1388888888888889e-28,[3,-1,0,0,0,0,0],"\u03BCL/h","iso1000",!0,null,null,1,!1,!1,0,"uL/2hrs; uL/2 hrs; mcg/2hr; mcg per 2hr; uL per 2hr; uL per 2 hrs; microliters per 2 hours; microlitres ","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"microliter per hour","uL/h","UL/HR","volume",2777777777777778e-28,[3,-1,0,0,0,0,0],"\u03BCL/h","iso1000",!0,null,null,1,!1,!1,0,"uL/hr; mcg/hr; mcg per hr; uL per hr; microliters per hour; microlitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"micrometer","um","UM","length",1e-6,[1,0,0,0,0,0,0],"\u03BCm",null,!1,"L",null,1,!1,!1,0,"micrometers; micrometres; \u03BCm; microns","LOINC","Len","Clinical","Unit of length that is usually used in tests related to the eye",null,null,null,null,!1],[!1,"microns per second","um/s","UM/S","length",1e-6,[1,-1,0,0,0,0,0],"\u03BCm/s",null,!1,"L",null,1,!1,!1,0,"um/sec; micron/second; microns/second; um per sec; micrometers per second; micrometres","LOINC","Vel","Clinical","",null,null,null,null,!1],[!1,"micromole","umol","UMOL","amount of substance",60221367e10,[0,0,0,0,0,0,0],"\u03BCmol","si",!0,null,null,1,!1,!1,1,"micromoles; umols","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 2 hour","umol/(2.h)","UMOL/(2.HR)","amount of substance",836407875e5,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/2hrs; umol/2 hrs; umol per 2 hrs; 2hrs; micromoles per 2 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 24 hour","umol/(24.h)","UMOL/(24.HR)","amount of substance",6970065625e3,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/24hrs; umol/24 hrs; umol per 24 hrs; per 24hrs; micromoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 8 hour","umol/(8.h)","UMOL/(8.HR)","amount of substance",20910196875e3,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/8hr; umol/8 hr; umol per 8 hr; umol per 8hr; umols per 8hr; umol per 8 hours; micromoles per 8 hours; shift","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per day","umol/d","UMOL/D","amount of substance",6970065625e3,[0,-1,0,0,0,0,0],"\u03BCmol/d","si",!0,null,null,1,!1,!1,1,"umol/day; umol per day; umols per day; umol per days; micromoles per days; umol/24hr; umol/24 hr; umol per 24 hr; umol per 24hr; umols per 24hr; umol per 24 hours; micromoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per deciliter","umol/dL","UMOL/DL","amount of substance",60221367e14,[-3,0,0,0,0,0,0],"\u03BCmol/dL","si",!0,null,null,1,!1,!1,1,"micromole/deciliter; micromole/decilitre; umol per dL; micromoles per deciliters; micromole per decilitres","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per gram","umol/g","UMOL/G","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"\u03BCmol/g","si",!0,null,null,1,!1,!1,1,"micromole/gram; umol per g; micromoles per gram","LOINC","SCnt; Ratio","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per hour","umol/h","UMOL/HR","amount of substance",167281575e6,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/hr; umol per hr; umol per hour; micromoles per hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per kilogram","umol/kg","UMOL/KG","amount of substance",60221367e7,[0,0,-1,0,0,0,0],"\u03BCmol/kg","si",!0,null,null,1,!1,!1,1,"umol per kg; micromoles per kilogram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per liter","umol/L","UMOL/L","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"\u03BCmol/L","si",!0,null,null,1,!1,!1,1,"micromole/liter; micromole/litre; umol per liter; micromoles per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per liter per hour","umol/L/h","(UMOL/L)/HR","amount of substance",167281575e9,[-3,-1,0,0,0,0,0],"(\u03BCmol/L)/h","si",!0,null,null,1,!1,!1,1,"umol/liter/hr; umol/litre/hr; umol per L per hr; umol per liter per hour; micromoles per liters per hour; litre","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min; umol/L/h is a derived unit of enzyme units","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milligram","umol/mg","UMOL/MG","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"\u03BCmol/mg","si",!0,null,null,1,!1,!1,1,"micromole/milligram; umol per mg; micromoles per milligram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute","umol/min","UMOL/MIN","amount of substance",100368945e8,[0,-1,0,0,0,0,0],"\u03BCmol/min","si",!0,null,null,1,!1,!1,1,"micromole/minute; umol per min; micromoles per minute; enzyme units","LOINC","CAct","Clinical","unit for the enzyme unit U = umol/min","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute per gram","umol/min/g","(UMOL/MIN)/G","amount of substance",100368945e8,[0,-1,-1,0,0,0,0],"(\u03BCmol/min)/g","si",!0,null,null,1,!1,!1,1,"umol/min/gm; umol per min per gm; micromoles per minutes per gram; U/g; enzyme units","LOINC","CCnt","Clinical","unit for the enzyme unit U = umol/min. umol/min/g = U/g","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute per liter","umol/min/L","(UMOL/MIN)/L","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(\u03BCmol/min)/L","si",!0,null,null,1,!1,!1,1,"umol/min/liter; umol/minute/liter; micromoles per minutes per liter; litre; enzyme units; U/L","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. umol/min/L = U/L","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milliliter","umol/mL","UMOL/ML","amount of substance",60221367000000003e7,[-3,0,0,0,0,0,0],"\u03BCmol/mL","si",!0,null,null,1,!1,!1,1,"umol per mL; micromoles per milliliter; millilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milliliter per minute","umol/mL/min","(UMOL/ML)/MIN","amount of substance",100368945e14,[-3,-1,0,0,0,0,0],"(\u03BCmol/mL)/min","si",!0,null,null,1,!1,!1,1,"umol per mL per min; micromoles per milliliters per minute; millilitres","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. umol/mL/min = U/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per millimole","umol/mmol","UMOL/MMOL","amount of substance",.001,[0,0,0,0,0,0,0],"\u03BCmol/mmol","si",!0,null,null,1,!1,!1,0,"umol per mmol; micromoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per mole","umol/mol","UMOL/MOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"\u03BCmol/mol","si",!0,null,null,1,!1,!1,0,"umol per mol; micromoles per mole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per micromole","umol/umol","UMOL/UMOL","amount of substance",1,[0,0,0,0,0,0,0],"\u03BCmol/\u03BCmol","si",!0,null,null,1,!1,!1,0,"umol per umol; micromoles per micromole","LOINC","Srto; SFr; EntSRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"microOhm","uOhm","UOHM","electric resistance",.001,[2,-1,1,0,0,-2,0],"\u03BC\u03A9","si",!0,null,null,1,!1,!1,0,"microOhms; \xB5\u03A9","LOINC","","Clinical","unit of electric resistance","V/A","V/A","1",1,!1],[!1,"microsecond","us","US","time",1e-6,[0,1,0,0,0,0,0],"\u03BCs",null,!1,"T",null,1,!1,!1,0,"microseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"micro enzyme unit per gram","uU/g","UU/G","catalytic activity",10036894500,[0,-1,-1,0,0,0,0],"\u03BCU/g","chemical",!0,null,null,1,!1,!1,1,"uU per gm; micro enzyme units per gram; micro enzymatic activity per mass; enzyme activity","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"micro enzyme unit per liter","uU/L","UU/L","catalytic activity",100368945e5,[-3,-1,0,0,0,0,0],"\u03BCU/L","chemical",!0,null,null,1,!1,!1,1,"uU per L; micro enzyme units per liter; litre; enzymatic activity per volume; enzyme activity ","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"micro enzyme unit per milliliter","uU/mL","UU/ML","catalytic activity",100368945e8,[-3,-1,0,0,0,0,0],"\u03BCU/mL","chemical",!0,null,null,1,!1,!1,1,"uU per mL; micro enzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"microvolt","uV","UV","electric potential",.001,[2,-2,1,0,0,-1,0],"\u03BCV","si",!0,null,null,1,!1,!1,0,"microvolts","LOINC","Elpot","Clinical","unit of electric potential (voltage)","J/C","J/C","1",1,!1]]}}});var $2=X(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});Ol.ucumJsonDefs=Ol.UcumJsonDefs=void 0;var M5=T2(),T5=Cy(),E5=Iy(),P2=co(),U2=N2().unpackArray,op=class{loadJsonDefs(){let t=F2();if(t.prefixes=U2(t.prefixes),t.units=U2(t.units),P2.UnitTables.getInstance().unitsCount()===0){let e=T5.PrefixTables.getInstance(),i=t.prefixes,r=i.length;for(let l=0;l{"use strict";Object.defineProperty(lp,"__esModule",{value:!0});lp.UnitString=void 0;var qi=A5(ip());function V2(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return V2=function(){return n},n}function A5(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=V2();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}function B2(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var xi=ha().Ucum,Nl=Iy().Unit,D5=co().UnitTables,R5=Cy().PrefixTables,uo=class n{constructor(){this.utabs_=D5.getInstance(),this.pfxTabs_=R5.getInstance(),this.openEmph_=xi.openEmph_,this.closeEmph_=xi.closeEmph_,this.bracesMsg_="",this.parensFlag_="parens_placeholder",this.pFlagLen_=this.parensFlag_.length,this.braceFlag_="braces_placeholder",this.bFlagLen_=this.braceFlag_.length,this.vcMsgStart_=null,this.vcMsgEnd_=null,this.retMsg_=[],this.parensUnits_=[],this.annotations_=[],this.suggestions=[]}useHTMLInMessages(t){t===void 0||t?(this.openEmph_=xi.openEmphHTML_,this.closeEmph_=xi.closeEmphHTML_):(this.openEmph_=xi.openEmph_,this.closeEmph_=xi.closeEmph_)}useBraceMsgForEachString(t){t===void 0||t?this.bracesMsg_=xi.bracesMsg_:this.bracesMsg_=""}parseString(t,e,i){if(t=t.trim(),t===""||t===null)throw new Error("Please specify a unit expression to be validated.");e==="validate"?(this.vcMsgStart_=xi.valMsgStart_,this.vcMsgEnd_=xi.valMsgEnd_):(this.vcMsgStart_=xi.cnvMsgStart_,this.vcMsgEnd_=xi.cnvMsgEnd_),i===void 0||i===!1?this.suggestions_=null:this.suggestions_=[],this.retMsg_=[],this.parensUnits_=[],this.annotations_=[];let r=t,s=[];if(t=this._getAnnotations(t),this.retMsg_.length>0)s[0]=null,s[1]=null;else{let a=this.retMsg_.length>0,o=null;for(o in xi.specUnits_)for(;t.indexOf(o)!==-1;)t=t.replace(o,xi.specUnits_[o]);if(t.indexOf(" ")>-1)throw new Error("Blank spaces are not allowed in unit expressions.");s=this._parseTheString(t,r);let l=s[0];(qi.isIntegerUnit(l)||typeof l=="number")&&(l=new Nl({csCode_:r,ciCode_:r,magnitude_:l,name_:r}),s[0]=l)}return s[2]=this.retMsg_,this.suggestions_&&this.suggestions_.length>0&&(s[3]=this.suggestions_),s}_parseTheString(t,e){let i=null,r=this.retMsg_.length>0,s=this._processParens(t,e);r=s[2];let a=[];if(!r){t=s[0],e=s[1];let o=this._makeUnitsArray(t,e);if(r=o[2],!r){a=o[0],e=o[1];let l=a.length;for(let c=0;c=0){let d=this._getParensUnit(u,e);r||(r=d[1]),r||(a[c].un=d[0])}else{let d=this._makeUnit(u,e);d[0]===null?r=!0:(a[c].un=d[0],e=d[1])}}}}return r||(a[0]===null||a[0]===" "||a[0].un===void 0||a[0].un===null)&&this.retMsg_.length===0&&(this.retMsg_.push(`Unit string (${e}) did not contain anything that could be used to create a unit, or else something that is not handled yet by this package. Sorry`),r=!0),r||(i=this._performUnitArithmetic(a,e)),[i,e]}_getAnnotations(t){let e=t.indexOf("{");for(;e>=0;){let i=t.indexOf("}");if(i<0)this.retMsg_.push("Missing closing brace for annotation starting at "+this.openEmph_+t.substr(e)+this.closeEmph_),e=-1;else{let r=t.substring(e,i+1);if(!n.VALID_ANNOTATION_REGEX.test(r))this.retMsg_.push(n.INVALID_ANNOTATION_CHAR_MSG+this.openEmph_+r+this.closeEmph_),e=-1;else{let s=this.annotations_.length.toString();t=t.replace(r,this.braceFlag_+s+this.braceFlag_),this.annotations_.push(r),e=t.indexOf("{")}}}if(this.retMsg_.length==0){let i=t.indexOf("}");i>=0&&this.retMsg_.push("Missing opening brace for closing brace found at "+this.openEmph_+t.substring(0,i+1)+this.closeEmph_)}return t}_processParens(t,e){let i=[],r=0,s=!1,a=this.parensUnits_.length,o=0;for(;t!==""&&!s;){let l=0,c=0,u=t.indexOf("(");if(u<0){let d=t.indexOf(")");if(d>=0){let h=`Missing open parenthesis for close parenthesis at ${t.substring(0,d+o)}${this.openEmph_}${t.substr(d,1)}${this.closeEmph_}`;d0&&(i[r++]=t.substr(0,u));let h=0,m=u+1;for(;m0&&(c=t.substr(0,l-1));let u=t.lastIndexOf(this.parensFlag_),d=null;u+this.pFlagLen_=0){let m=this._getAnnoText(c,e);if(m[1]||m[2])throw new Error(`Text found before the parentheses (${c}) included an annotation along with other text for parenthetical unit ${s.csCode_}`);t+=m[0],this.retMsg_.push(`The annotation ${m[0]} before the unit code is invalid. -`+this.vcMsgStart_+t+this.vcMsgEnd_)}else this.suggestions_?i=this._getSuggestions(c)!=="succeeded":(this.retMsg_.push(`${c} preceding the unit code ${t} is invalid. Unable to make a substitution.`),i=!0);if(d)if(d.indexOf(this.braceFlag_)>=0){let m=this._getAnnoText(d,e);if(m[1]||m[2])throw new Error(`Text found after the parentheses (${d}) included an annotation along with other text for parenthetical unit ${s.csCode_}`);t+=m[0]}else if(qi.isNumericString(d)){s=null;let m=`An exponent (${d}) following a parenthesis is invalid as of revision 1.9 of the UCUM Specification.`;t.match(/\d$/)||(t+=d,m+=` - `+this.vcMsgStart_+t+this.vcMsgEnd_),this.retMsg_.push(m),i=!0}else this.suggestions_?i=this._getSuggestions(c)!=="succeeded":(this.retMsg_.push(`Text ${d} following the unit code ${t} is invalid. Unable to make a substitution.`),i=!0);return i||(s?qi.isIntegerUnit(s)?s=new Nl({csCode_:s,magnitude_:s,name_:s}):s.csCode_=t:s=new Nl({csCode_:t,magnitude_:1,name_:t})),[s,i]}_getAnnoText(t,e){let i=t.indexOf(this.braceFlag_),r=i>0?t.substring(0,i):null;i!==0&&(t=t.substr(i));let s=t.indexOf(this.braceFlag_,1),a=s+this.bFlagLen_=this.annotations_.length)throw new Error(`Processing Error - invalid annotation index ${o} found in ${t} that was created from ${e}`);return t=this.annotations_[l],[t,r,a]}_getSuggestions(t){let e=qi.getSynonyms(t);if(e.status==="succeeded"){let i={};i.msg=`${t} is not a valid UCUM code. We found possible units that might be what was meant:`,i.invalidUnit=t;let r=e.units.length;i.units=[];for(let s=0;s=0){let r=this._getUnitWithAnnotation(t,e);i=r[0],i&&(e=r[1])}else{if(t.indexOf("^")>-1){let r=t.replace("^","*");i=this.utabs_.getUnitByCode(r),i&&(i=i.clone(),i.csCode_=i.csCode_.replace("*","^"),i.ciCode_=i.ciCode_.replace("*","^"))}if(!i){let r="["+t+"]";i=this.utabs_.getUnitByCode(r),i&&(i=i.clone(),e=e.replace(t,r),this.retMsg_.push(`${t} is not a valid unit expression, but ${r} is. -`+this.vcMsgStart_+`${r} (${i.name_})${this.vcMsgEnd_}`))}if(!i){let r=this.utabs_.getUnitByName(t);if(r&&r.length>0){i=r[0].clone();let s="The UCUM code for "+t+" is "+i.csCode_+`. -`+this.vcMsgStart_+i.csCode_+this.vcMsgEnd_,a=!1;for(let c=0;c"+C+"",csCode_:w+C,ciCode_:g+C,printSymbol_:v+""+C+""})}}else if(i=null,this.suggestions_){let h=this._getSuggestions(r)}else this.retMsg_.push(`${r} is not a valid UCUM code.`)}}}return[i,e]}_getUnitWithAnnotation(t,e){let i=null,r=this._getAnnoText(t,e),s=r[0],a=r[1],o=r[2];this.bracesMsg_&&this.retMsg_.indexOf(this.bracesMsg_)===-1&&this.retMsg_.push(this.bracesMsg_);let l=this.retMsg_.length;if(!a&&!o){let c="["+s.substring(1,s.length-1)+"]",u=this._makeUnit(c,e);u[0]?(i=t,this.retMsg_.push(`${s} is a valid unit expression, but did you mean ${c} (${u[0].name_})?`)):this.retMsg_.length>l&&this.retMsg_.pop(),i=new Nl({csCode_:s,ciCode_:s,magnitude_:1,name_:s})}else if(a&&!o)if(qi.isIntegerUnit(a))i=a;else{let c=this._makeUnit(a,e);c[0]?(i=c[0],i.csCode_+=s,e=c[1]):this.retMsg_.push(`Unable to find a unit for ${a} that precedes the annotation ${s}.`)}else if(!a&&o)if(qi.isIntegerUnit(o))i=o+s,this.retMsg_.push(`The annotation ${s} before the ``${o} is invalid.\n`+this.vcMsgStart_+i+this.vcMsgEnd_);else{let c=this._makeUnit(o,e);c[0]?(i=c[0],i.csCode_+=s,e=i.csCode_,this.retMsg_.push(`The annotation ${s} before the unit code is invalid. -`+this.vcMsgStart_+i.csCode_+this.vcMsgEnd_)):this.retMsg_.push(`Unable to find a unit for ${a} that follows the annotation ${s}.`)}else this.retMsg_.push(`Unable to find a unit for ${a}${s}${o}. -We are not sure how to interpret text both before and after the annotation. Sorry`);return[i,e]}_performUnitArithmetic(t,e){let i=t[0].un;qi.isIntegerUnit(i)&&(i=new Nl({csCode_:i,ciCode_:i,magnitude_:Number(i),name_:i}));let r=t.length,s=!1;for(let a=1;a{"use strict";Object.defineProperty(up,"__esModule",{value:!0});up.UcumLhcUtils=void 0;var L5=$2(),H2=O5(ip());function j2(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return j2=function(){return n},n}function O5(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=j2();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}var N5=ha().Ucum,cp=co().UnitTables,F5=z2().UnitString,ed=class{constructor(){cp.getInstance().unitsCount()===0&&L5.ucumJsonDefs.loadJsonDefs(),this.uStrParser_=F5.getInstance()}useHTMLInMessages(t){t===void 0&&(t=!0),this.uStrParser_.useHTMLInMessages(t)}useBraceMsgForEachString(t){t===void 0&&(t=!0),this.uStrParser_.useBraceMsgForEachString(t)}validateUnitString(t,e,i){e===void 0&&(e=!1),i===void 0&&(i="validate");let r=this.getSpecifiedUnit(t,i,e),s=r.unit,a=s?{ucumCode:r.origString,unit:{code:s.csCode_,name:s.name_,guidance:s.guidance_}}:{ucumCode:null};return a.status=r.status,r.suggestions&&(a.suggestions=r.suggestions),a.msg=r.retMsg,a}convertUnitTo(t,e,i,r,s){r===void 0&&(r=!1),s===void 0&&(s=null);let a={status:"failed",toVal:null,msg:[]};if(t&&(t=t.trim()),(!t||t=="")&&(a.status="error",a.msg.push('No "from" unit expression specified.')),this._checkFromVal(e,a),i&&(i=i.trim()),(!i||i=="")&&(a.status="error",a.msg.push('No "to" unit expression specified.')),a.status!=="error")try{let o=null,l=this.getSpecifiedUnit(t,"convert",r);o=l.unit,l.retMsg&&(a.msg=a.msg.concat(l.retMsg)),l.suggestions&&(a.suggestions={},a.suggestions.from=l.suggestions),o||a.msg.push(`Unable to find a unit for ${t}, so no conversion could be performed.`);let c=null;if(l=this.getSpecifiedUnit(i,"convert",r),c=l.unit,l.retMsg&&(a.msg=a.msg.concat(l.retMsg)),l.suggestions&&(a.suggestions||(a.suggestions={}),a.suggestions.to=l.suggestions),c||a.msg.push(`Unable to find a unit for ${i}, so no conversion could be performed.`),o&&c)try{if(!s)a.toVal=c.convertFrom(e,o);else{if(o.moleExp_!==0&&c.moleExp_!==0)throw new Error("A molecular weight was specified but a mass <-> mole conversion cannot be executed for two mole-based units. No conversion was attempted.");if(o.moleExp_===0&&c.moleExp_===0)throw new Error("A molecular weight was specified but a mass <-> mole conversion cannot be executed when neither unit is mole-based. No conversion was attempted.");if(!o.isMoleMassCommensurable(c))throw new Error(`Sorry. ${t} cannot be converted to ${i}.`);o.moleExp_!==0?a.toVal=o.convertMolToMass(e,c,s):a.toVal=o.convertMassToMol(e,c,s)}a.status="succeeded",a.fromUnit=o,a.toUnit=c}catch(u){a.status="failed",a.msg.push(u.message)}}catch(o){o.message==N5.needMoleWeightMsg_?a.status="failed":a.status="error",a.msg.push(o.message)}return a}convertToBaseUnits(t,e){let i={};if(this._checkFromVal(e,i),!i.status){let r=this.getSpecifiedUnit(t,"validate");i={status:r.status=="valid"?"succeeded":r.status};let s=r.unit;if(i.msg=r.retMsg||[],!s)r.retMsg?.length==0&&i.msg.push("Could not find unit information for "+t);else if(s.isArbitrary_)i.msg.push("Arbitrary units cannot be converted to base units or other units."),i.status="failed";else if(i.status=="succeeded"){let a={},o=s.dim_?.dimVec_,l="1";if(o){let d=cp.getInstance().dimVecIndexToBaseUnit_;for(let h=0,m=o.length;h0&&(e=r.retMsg),!s)e.push(`Could not find unit ${t}.`);else{let a=null,o=s.getProperty("dim_");if(!o)e.push("No commensurable units were found for "+t);else{try{a=o.getProperty("dimVec_")}catch(l){e.push(l.message),l.message==="Dimension does not have requested property(dimVec_)"&&(a=null)}a&&(i=cp.getInstance().getUnitsByDimension(a))}}return[i,e]}};up.UcumLhcUtils=ed;ed.getInstance=function(){return new ed}});var dp=X(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.UnitTables=ma.UcumLhcUtils=ma.Ucum=void 0;var P5=ha().Ucum;ma.Ucum=P5;var U5=W2().UcumLhcUtils;ma.UcumLhcUtils=U5;var $5=co().UnitTables;ma.UnitTables=$5});var mp=X((zse,Q2)=>{var hp={};function q2(n){let t=""+ +n,e=/(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/.exec(t);if(!e)return 0;let i=e[2],r=e[3];return Math.max(0,(i==="0"?0:(i||"").length)-(r||0))}function G2(n,t){let e=Math.pow(10,t);return Math.round(n*e)/e}var K2=1e-8,Y2=hp.roundToMaxPrecision=function(n){return Math.round(n/K2)*K2};hp.isEquivalent=function(n,t){if(Number.isInteger(n)&&Number.isInteger(t))return n===t;let e=Math.min(q2(n),q2(t));return e===0?Math.round(n)===Math.round(t):G2(n,e)===G2(t,e)};hp.isEqual=function(n,t){return Y2(n)===Y2(t)};Q2.exports=hp});var X2=X((Hse,Z2)=>{var V5=Zu();function B5(n){var t=V5(n),e=t.getFullYear(),i=t.getMonth(),r=new Date(0);return r.setFullYear(e,i+1,0),r.setHours(0,0,0,0),r.getDate()}Z2.exports=B5});var Ry=X((jse,J2)=>{var z5=Zu(),H5=X2();function j5(n,t){var e=z5(n),i=Number(t),r=e.getMonth()+i,s=new Date(0);s.setFullYear(e.getFullYear(),r,1),s.setHours(0,0,0,0);var a=H5(s);return e.setMonth(r,Math.min(a,e.getDate())),e}J2.exports=j5});var tI=X((Wse,eI)=>{var W5=Ry();function q5(n,t){var e=Number(t);return W5(n,e*12)}eI.exports=q5});var Ly=X((qse,iI)=>{var G5=Zu();function K5(n,t){var e=G5(n),i=Number(t);return e.setDate(e.getDate()+i),e}iI.exports=K5});var rI=X((Gse,nI)=>{var Y5=Ly();function Q5(n,t){var e=Number(t),i=e*7;return Y5(n,i)}nI.exports=Q5});var aI=X((Kse,sI)=>{var Z5=Xu(),X5=36e5;function J5(n,t){var e=Number(t);return Z5(n,e*X5)}sI.exports=J5});var lI=X((Yse,oI)=>{var eH=Xu();function tH(n,t){var e=Number(t);return eH(n,e*1e3)}oI.exports=tH});var Br=X((Qse,fI)=>{var iH=by(),Ss=dp().UcumLhcUtils.getInstance(),td=mp(),nH="http://unitsofmeasure.org",cI="[0-9][0-9](\\:[0-9][0-9](\\:[0-9][0-9](\\.[0-9]+)?)?)?(Z|(\\+|-)[0-9][0-9]\\:[0-9][0-9])?",uI=new RegExp("^T?"+cI+"$"),dI=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9](T"+cI+")?)?)?Z?$"),rH=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9])?)?$"),sH=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9](T[0-9][0-9](\\:[0-9][0-9](\\:[0-9][0-9](\\.[0-9]+)?))(Z|(\\+|-)[0-9][0-9]\\:[0-9][0-9]))))$"),nd=class{equals(){return!1}equivalentTo(){return!1}toString(){return this.asStr?this.asStr:super.toString()}toJSON(){return this.toString()}compare(){throw"Comparison not implemented for "+this.constructor.name}plus(){throw"Addition not implemented for "+this.constructor.name}mul(){throw"Multiplication not implemented for "+this.constructor.name}div(){throw"Division not implemented for "+this.constructor.name}},xt=class n extends nd{constructor(t,e){super(),this.asStr=t+" "+e,this.value=t,this.unit=e}equals(t){if(!(t instanceof this.constructor))return!1;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(!e!=!i&&(e>1||i>1))return null;if(this.unit===t.unit)return td.isEqual(this.value,t.value);let r=this._compareYearsAndMonths(t);if(r)return r.isEqual;let s=n.toUcumQuantity(this.value,this.unit),a=n.toUcumQuantity(t.value,t.unit),o=Ss.convertUnitTo(a.unit,a.value,s.unit);return o.status!=="succeeded"?!1:td.isEqual(s.value,o.toVal)}equivalentTo(t){if(!(t instanceof this.constructor))return!1;if(this.unit===t.unit)return td.isEquivalent(this.value,t.value);let e=n.getEquivalentUcumUnitCode(this.unit),i=n.getEquivalentUcumUnitCode(t.unit),r=Ss.convertUnitTo(i,t.value,e);return r.status!=="succeeded"?!1:td.isEquivalent(this.value,r.toVal)}compare(t){if(this.unit===t.unit)return this.value-t.value;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(!e!=!i&&(e>1||i>1))return null;let r=n.getEquivalentUcumUnitCode(this.unit),s=n.getEquivalentUcumUnitCode(t.unit),a=Ss.convertUnitTo(s,t.value,r);return a.status!=="succeeded"?null:this.value-a.toVal}plus(t){let e=n._yearMonthConversionFactor[this.unit],i=n._yearMonthConversionFactor[t.unit];if(e&&i)return new n(this.value+t.value*i/e,this.unit);let r=n._calendarDuration2Seconds[this.unit],s=n._calendarDuration2Seconds[t.unit];if(!r!=!s&&(r>1||s>1))return null;let a=r?"s":this.unit.replace(id,""),o=(r||1)*this.value,l=s?"s":t.unit.replace(id,""),c=(s||1)*t.value,u=Ss.convertUnitTo(l,c,a);return u.status!=="succeeded"||u.fromUnit.isSpecial_||u.toUnit.isSpecial_?null:new n(o+u.toVal,a)}mul(t){let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(e>1&&t.unit!=="'1'"||i>1&&this.unit!=="'1'")return null;let r=this.convToUcumUnits(this,e);if(!r)return null;let s=this.convToUcumUnits(t,i);return s?this.unit==="'1'"?new n(this.value*t.value,t.unit):t.unit==="'1'"?new n(this.value*t.value,this.unit):new n(r.value*s.value,`'(${r.unit}).(${s.unit})'`):null}div(t){if(t.value===0)return null;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(e)if(i){let l=n._yearMonthConversionFactor[this.unit],c=n._yearMonthConversionFactor[t.unit];if(l&&c)return new n(this.value*l/(t.value*c),"'1'")}else{if(t.unit==="'1'")return new n(this.value/t.value,this.unit);if(e>1)return null}else if(i>1)return null;let r=this.convToUcumUnits(this,e);if(!r)return null;let s=this.convToUcumUnits(t,i);if(!s)return null;let a=s.unit==="1"?r.unit:`(${r.unit})/(${s.unit})`,o=Ss.convertToBaseUnits(a,r.value/s.value);return o.status!=="succeeded"?null:new n(o.magnitude,`'${Object.keys(o.unitToExp).map(l=>l+o.unitToExp[l]).join(".")||"1"}'`)}convToUcumUnits(t,e){if(e)return{value:e*t.value,unit:"s"};{let i=t.unit.replace(id,""),r=Ss.convertToBaseUnits(i,t.value);return r.status!=="succeeded"||r.fromUnitIsSpecial?null:{value:r.magnitude,unit:Object.keys(r.unitToExp).map(s=>s+r.unitToExp[s]).join(".")||"1"}}}_compareYearsAndMonths(t){let e=n._yearMonthConversionFactor[this.unit],i=n._yearMonthConversionFactor[t.unit];return e&&i?{isEqual:td.isEqual(this.value*e,t.value*i)}:null}},id=/^'|'$/g;xt.getEquivalentUcumUnitCode=function(n){return xt.mapTimeUnitsToUCUMCode[n]||n.replace(id,"")};xt.toUcumQuantity=function(n,t){let e=xt._calendarDuration2Seconds[t];return e?{value:e*n,unit:"s"}:{value:n,unit:t.replace(id,"")}};xt.convUnitTo=function(n,t,e){let i=xt._yearMonthConversionFactor[n],r=xt._yearMonthConversionFactor[e];if(i&&r)return new xt(i*t/r,e);let s=xt._calendarDuration2Seconds[n],a=xt._calendarDuration2Seconds[e];if(a){if(s)return new xt(s*t/a,e);{let o=Ss.convertUnitTo(n.replace(/^'|'$/g,""),t,"s");if(o.status==="succeeded")return new xt(o.toVal/a,e)}}else{let o=s?Ss.convertUnitTo("s",s*t,e.replace(/^'|'$/g,"")):Ss.convertUnitTo(n.replace(/^'|'$/g,""),t,e.replace(/^'|'$/g,""));if(o.status==="succeeded")return new xt(o.toVal,e)}return null};xt._calendarDuration2Seconds={years:365*24*60*60,months:30*24*60*60,weeks:7*24*60*60,days:24*60*60,hours:60*60,minutes:60,seconds:1,milliseconds:.001,year:365*24*60*60,month:30*24*60*60,week:7*24*60*60,day:24*60*60,hour:60*60,minute:60,second:1,millisecond:.001};xt._yearMonthConversionFactor={years:12,months:1,year:12,month:1};xt.dateTimeArithmeticDurationUnits={years:"year",months:"month",weeks:"week",days:"day",hours:"hour",minutes:"minute",seconds:"second",milliseconds:"millisecond",year:"year",month:"month",week:"week",day:"day",hour:"hour",minute:"minute",second:"second",millisecond:"millisecond","'s'":"second","'ms'":"millisecond"};xt.mapUCUMCodeToTimeUnits={a:"year",mo:"month",wk:"week",d:"day",h:"hour",min:"minute",s:"second",ms:"millisecond"};xt.mapTimeUnitsToUCUMCode=Object.keys(xt.mapUCUMCodeToTimeUnits).reduce(function(n,t){return n[xt.mapUCUMCodeToTimeUnits[t]]=t,n[xt.mapUCUMCodeToTimeUnits[t]+"s"]=t,n},{});var pa=class n extends nd{constructor(t){super(),this.asStr=t}plus(t){let e=t.unit,i=xt.dateTimeArithmeticDurationUnits[e];if(!i)throw new Error("For date/time arithmetic, the unit of the quantity must be one of the following time-based units: "+Object.keys(xt.dateTimeArithmeticDurationUnits));let r=this.constructor,s=r._timeUnitToDatePrecision[i];if(s===void 0)throw new Error("Unsupported unit for +. The unit should be one of "+Object.keys(r._timeUnitToDatePrecision).join(", ")+".");let a=t.value,o=r===rd;if((o?s<2:s<5)&&(a=Math.trunc(a)),this._getPrecision()2?new Gn(a)._getTimeParts():this._getTimeParts(),c=r>2?new Gn(o)._getTimeParts():t._getTimeParts(),u=0;u<=s&&e!==!1;++u)e=l[u]==c[u];e&&(e=void 0)}}return e}equivalentTo(t){var e=t instanceof this.constructor;if(e){var i=this._getPrecision(),r=t._getPrecision();e=i==r,e&&(e=this._getDateObj().getTime()==t._getDateObj().getTime())}return e}compare(t){var e=this._getPrecision(),i=t._getPrecision(),r=e<=i?this._getDateObj().getTime():this._dateAtPrecision(i).getTime(),s=i<=e?t._getDateObj().getTime():t._dateAtPrecision(e).getTime();return e!==i&&r===s?null:r-s}_getPrecision(){return this.precision===void 0&&this._getMatchData(),this.precision}_getMatchData(t,e){if(this.timeMatchData===void 0&&(this.timeMatchData=this.asStr.match(t),this.timeMatchData))for(let i=e;i>=0&&this.precision===void 0;--i)this.timeMatchData[i]&&(this.precision=i);return this.timeMatchData}_getTimeParts(t){var e=[];e=[t[0]];var i=t[4];if(i){let o=e[0];e[0]=o.slice(0,o.length-i.length)}var r=t[1];if(r){let o=e[0];e[0]=o.slice(0,o.length-r.length),e[1]=r;var s=t[2];if(s){e[1]=r.slice(0,r.length-s.length),e[2]=s;var a=t[3];a&&(e[2]=s.slice(0,s.length-a.length),e[3]=a)}}return e}_getDateObj(){if(!this.dateObj){var t=this._getPrecision();this.dateObj=this._dateAtPrecision(t)}return this.dateObj}_createDate(t,e,i,r,s,a,o,l){var c=new Date(t,e,i,r,s,a,o);if(l){var u=c.getTimezoneOffset(),d=0;if(l!="Z"){var h=l.split(":"),m=parseInt(h[0]);d=parseInt(h[1]),m<0&&(d=-d),d+=60*m}c=iH(c,-u-d)}return c}};pa.timeUnitToAddFn={year:tI(),month:Ry(),week:rI(),day:Ly(),hour:aI(),minute:by(),second:lI(),millisecond:Xu()};var Gn=(()=>{class n extends pa{constructor(e){super(e)}compare(e){if(!(e instanceof n))throw"Invalid comparison of a DateTime with something else";return super.compare(e)}_getMatchData(){return super._getMatchData(dI,5)}_getTimeParts(){if(!this.timeParts){let i=this._getMatchData(),r=i[0];this.timeParts=[r];var e=i[1];if(e){this.timeParts[0]=r.slice(0,r.length-e.length),this.timeParts[1]=e;let s=i[2];if(s){this.timeParts[1]=e.slice(0,e.length-s.length),this.timeParts[2]=s;let a=i[3];a&&(this.timeParts[2]=s.slice(0,s.length-a.length),a[0]==="T"&&(i[3]=a.slice(1)),this.timeParts=this.timeParts.concat(super._getTimeParts(i.slice(3))))}}}return this.timeParts}_dateAtPrecision(e){var i=this._getTimeParts(),r=this._getMatchData()[7],s=this._getPrecision(),a=parseInt(i[0]),o=s>0?parseInt(i[1].slice(1))-1:0,l=s>1?parseInt(i[2].slice(1)):1,c=s>2?parseInt(i[3]):0,u=s>3?parseInt(i[4].slice(1)):0,d=s>4?parseInt(i[5].slice(1)):0,h=i.length>6?parseInt(i[6].slice(1)):0,m=this._createDate(a,o,l,c,u,d,h,r);return e0?m.getMonth():0,l=e>1?m.getDate():1,c=e>2?m.getHours():0,u=e>3?m.getMinutes():0,m=new Date(a,o,l,c,u)),m}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n._timeUnitToDatePrecision={year:0,month:1,week:2,day:2,hour:3,minute:4,second:5,millisecond:6},n._datePrecisionToTimeUnit=["year","month","day","hour","minute","second","millisecond"],n})(),rd=(()=>{class n extends pa{constructor(e){e[0]=="T"&&(e=e.slice(1)),super(e)}compare(e){if(!(e instanceof n))throw"Invalid comparison of a time with something else";return super.compare(e)}_dateAtPrecision(e){var i=this._getTimeParts(),r=this._getMatchData()[4],s=this._getPrecision(),a=2010,o=0,l=1,c=parseInt(i[0]),u=s>0?parseInt(i[1].slice(1)):0,d=s>1?parseInt(i[2].slice(1)):0,h=i.length>3?parseInt(i[3].slice(1)):0,m=this._createDate(a,o,l,c,u,d,h,r);return r&&(m.setYear(a),m.setMonth(o),m.setDate(l)),e0?m.getMinutes():0,m=new Date(a,o,l,c,u)),m}_getMatchData(){return super._getMatchData(uI,2)}_getTimeParts(){return this.timeParts||(this.timeParts=super._getTimeParts(this._getMatchData())),this.timeParts}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n._timeUnitToDatePrecision={hour:0,minute:1,second:2,millisecond:3},n._datePrecisionToTimeUnit=["hour","minute","second","millisecond"],n})();function fa(n,t){var e=n;return t===3&&n<100&&(e="0"+n),n<10&&(e="0"+e),e}Gn.isoDateTime=function(n,t){t===void 0&&(t=5);var e=""+n.getFullYear();if(t>0&&(e+="-"+fa(n.getMonth()+1),t>1&&(e+="-"+fa(n.getDate()),t>2&&(e+="T"+Gn.isoTime(n,t-3)))),t>2){var i=n.getTimezoneOffset(),r=i<0?"+":"-";i=Math.abs(i);var s=i%60,a=(i-s)/60;e+=r+fa(a)+":"+fa(s)}return e};Gn.isoTime=function(n,t){t===void 0&&(t=2);let e=""+fa(n.getHours());return t>0&&(e+=":"+fa(n.getMinutes()),t>1&&(e+=":"+fa(n.getSeconds()),n.getMilliseconds()&&(e+="."+fa(n.getMilliseconds(),3)))),e};var Oy=(()=>{class n extends Gn{constructor(e){super(e)}_getMatchData(){return pa.prototype._getMatchData.apply(this,[rH,2])}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n.isoDate=function(t,e){return(e===void 0||e>2)&&(e=2),Gn.isoDateTime(t,e)},n})(),hI=(()=>{class n extends Gn{constructor(e){super(e)}_getMatchData(){return pa.prototype._getMatchData.apply(this,[sH,5])}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n})(),mI=(()=>{class n{constructor(e,i,r,s,a){e?.resourceType&&(r=e.resourceType,a=e.resourceType),this.parentResNode=i||null,this.path=r||null,this.data=e,this._data=s||{},this.fhirNodeDataType=a||null}getTypeInfo(){if(!this.typeInfo){let e;qn.model&&(/^System\.(.*)$/.test(this.fhirNodeDataType)?e=new qn({namespace:qn.System,name:RegExp.$1}):this.fhirNodeDataType&&(e=new qn({namespace:qn.FHIR,name:this.fhirNodeDataType}))),this.typeInfo=e||qn.createByValueInSystemNamespace(this.data)}return this.typeInfo}toJSON(){return JSON.stringify(this.data)}convertData(){if(!this.convertedData){var e=this.data;let i=qn.typeToClassWithCheckString[this.path];if(i)e=i.checkString(e)||e;else if(qn.isType(this.path,"Quantity")&&e?.system===nH&&typeof e.value=="number"&&typeof e.code=="string"){if(e.comparator!==void 0)throw new Error("Cannot convert a FHIR.Quantity that has a comparator");e=new xt(e.value,xt.mapUCUMCodeToTimeUnits[e.code]||"'"+e.code+"'")}this.convertedData=e}return this.convertedData}}return n.makeResNode=function(t,e,i,r,s=null){return t instanceof n?t:new n(t,e,i,r,s)},n})(),Ny=new Set;["Boolean","String","Integer","Decimal","Date","DateTime","Time","Quantity"].forEach(n=>Ny.add(n));var qn=(()=>{class n{constructor({name:e,namespace:i}){this.name=e,this.namespace=i}static model=null;is(e){return e instanceof n&&(!this.namespace||!e.namespace||this.namespace===e.namespace)?n.model&&(!this.namespace||this.namespace===n.FHIR)?n.isType(this.name,e.name):this.name===e.name:!1}toString(){return(this.namespace?this.namespace+".":"")+this.name}isValid(){let e=!1;return this.namespace==="System"?e=Ny.has(this.name):this.namespace==="FHIR"?e=n.model?.availableTypes.has(this.name):this.namespace||(e=Ny.has(this.name)||n.model?.availableTypes.has(this.name)),e}}return n.typeToClassWithCheckString={date:Oy,dateTime:Gn,instant:hI,time:rd},n.isType=function(t,e){do if(t===e)return!0;while(t=n.model?.type2Parent[t]);return!1},n.System="System",n.FHIR="FHIR",n.createByValueInSystemNamespace=function(t){let e=typeof t;return Number.isInteger(t)?e="integer":e==="number"?e="decimal":t instanceof Oy?e="date":t instanceof Gn?e="dateTime":t instanceof rd?e="time":t instanceof xt&&(e="Quantity"),e=e.replace(/^\w/,i=>i.toUpperCase()),new n({namespace:n.System,name:e})},n.fromValue=function(t){return t instanceof mI?t.getTypeInfo():n.createByValueInSystemNamespace(t)},n})();function aH(n){return n.map(t=>qn.fromValue(t))}function oH(n,t){if(n.length===0)return[];if(n.length>1)throw new Error("Expected singleton on left side of 'is', got "+JSON.stringify(n));return qn.fromValue(n[0]).is(t)}function lH(n,t){if(n.length===0)return[];if(n.length>1)throw new Error("Expected singleton on left side of 'as', got "+JSON.stringify(n));return qn.fromValue(n[0]).is(t)?n:[]}fI.exports={FP_Type:nd,FP_TimeBase:pa,FP_Date:Oy,FP_DateTime:Gn,FP_Instant:hI,FP_Time:rd,FP_Quantity:xt,timeRE:uI,dateTimeRE:dI,ResourceNode:mI,TypeInfo:qn,typeFn:aH,isFn:oH,asFn:lH}});var xn=X((Zse,gI)=>{var $t={},cH=Br(),{ResourceNode:Fl}=cH;$t.raiseError=function(n,t){throw t=t?t+": ":"",t+n};$t.assertOnlyOne=function(n,t){n.length!==1&&$t.raiseError("Was expecting only one element but got "+JSON.stringify(n),t)};$t.assertType=function(n,t,e){let i=this.valData(n);if(t.indexOf(typeof i)<0){let r=t.length>1?"one of "+t.join(", "):t[0];$t.raiseError("Found type '"+typeof n+"' but was expecting "+r,e)}return i};$t.isEmpty=function(n){return Array.isArray(n)&&n.length===0};$t.isSome=function(n){return n!=null&&!$t.isEmpty(n)};$t.isTrue=function(n){return n!=null&&(n===!0||n.length===1&&$t.valData(n[0])===!0)};$t.isCapitalized=function(n){return n&&n[0]===n[0].toUpperCase()};$t.flatten=function(n){return n.some(t=>t instanceof Promise)?Promise.all(n).then(t=>pI(t)):pI(n)};function pI(n){return[].concat(...n)}$t.arraify=function(n){return Array.isArray(n)?n:$t.isSome(n)?[n]:[]};$t.resolveAndArraify=function(n){return n instanceof Promise?n.then(t=>$t.arraify(t)):$t.arraify(n)};$t.valData=function(n){return n instanceof Fl?n.data:n};$t.valDataConverted=function(n){return n instanceof Fl&&(n=n.convertData()),n};$t.escapeStringForRegExp=function(n){return n.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g,"\\$&")};$t.pushFn=Function.prototype.apply.bind(Array.prototype.push);$t.makeChildResNodes=function(n,t,e){let i=n.path+"."+t;if(e){let c=e.pathsDefinedElsewhere[i];c&&(i=c)}let r,s,a=e&&e.choiceTypePaths[i];if(a)for(let c of a){let u=t+c;if(r=n.data?.[u],s=n.data?.["_"+u],r!==void 0||s!==void 0){i+=c;break}}else r=n.data?.[t],s=n.data?.["_"+t],r===void 0&&s===void 0&&(r=n._data[t]),t==="extension"&&(i="Extension");let o=null;e&&(o=e.path2Type[i],i=e.path2TypeWithoutElements[i]||i);let l;if($t.isSome(r)||$t.isSome(s))if(Array.isArray(r)){l=r.map((u,d)=>Fl.makeResNode(u,n,i,s&&s[d],o));let c=s?.length||0;for(let u=r.length;uFl.makeResNode(null,n,i,c,o)):l=[Fl.makeResNode(r,n,i,s,o)];else l=[];return l};gI.exports=$t});var _I=X(()=>{var uH=Function.prototype.call.bind(Array.prototype.slice);Number.isInteger=Number.isInteger||function(n){return typeof n=="number"&&isFinite(n)&&Math.floor(n)===n};String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{value:function(n,t){return t=t||0,this.indexOf(n,t)===t}});String.prototype.endsWith||Object.defineProperty(String.prototype,"endsWith",{value:function(n,t){var e=this.toString();(t===void 0||t>e.length)&&(t=e.length),t-=n.length;var i=e.indexOf(n,t);return i!==-1&&i===t}});String.prototype.includes||Object.defineProperty(String.prototype,"includes",{value:function(){return this.indexOf.apply(this,arguments)!==-1}});Object.assign||Object.defineProperty(Object,"assign",{value:function(n){if(n==null)throw new TypeError("Cannot convert undefined or null to object");return uH(arguments,1).reduce(function(t,e){return Object.keys(Object(e)).forEach(function(i){t[i]=e[i]}),t},Object(n))}});typeof btoa>"u"&&(global.btoa=function(n){return new Buffer.from(n,"binary").toString("base64")});typeof atob>"u"&&(global.atob=function(n){return new Buffer.from(n,"base64").toString("binary")})});var Fy=X((eae,vI)=>{vI.exports={reset:function(){this.nowDate=new Date,this.today=null,this.now=null,this.timeOfDay=null,this.localTimezoneOffset=null},today:null,now:null,timeOfDay:null}});var fp=X((tae,bI)=>{var dH=dp().UcumLhcUtils.getInstance(),{roundToMaxPrecision:hH}=mp(),{valDataConverted:mH}=xn(),{FP_Type:fH,FP_Quantity:Py}=Br();function pH(n){return JSON.stringify(Uy(n))}function Uy(n){if(n=mH(n),n===null)return null;if(typeof n=="number")return hH(n);if(n instanceof Date)return n.toISOString();if(n instanceof Py){let t=Py._yearMonthConversionFactor[n.unit];if(t)return"_!yearMonth!_:"+t*n.value;{let e=Py.toUcumQuantity(n.value,n.unit),i=dH.getSpecifiedUnit(e.unit).unit;return"_!"+i.property_+"!_:"+i.magnitude_*e.value}}else{if(n instanceof fH)return n.toString();if(typeof n=="object")return Array.isArray(n)?n.map(Uy):Object.keys(n).sort().reduce((t,e)=>{let i=n[e];return t[e]=Uy(i),t},{})}return n}bI.exports=pH});var Pl=X((iae,AI)=>{var{FP_Type:yI,FP_Quantity:CI}=Br(),wI=xn(),xI=mp(),SI=Array.prototype.slice,kI=Object.keys,pp=function(n){return Object.prototype.toString.call(n)=="[object Arguments]"};function MI(n){return typeof n=="string"||n instanceof String}function TI(n){return!isNaN(parseFloat(n))&&isFinite(n)}function EI(n){return n.toUpperCase().replace(/\s+/," ")}function gp(n,t,e){if(n=wI.valDataConverted(n),t=wI.valDataConverted(t),e||(e={}),n===t)return!0;if(e.fuzzy){if(MI(n)&&MI(t))return EI(n)==EI(t);if(TI(n)&&TI(t))return xI.isEquivalent(n,t)}else if(typeof n=="number"&&typeof t=="number")return xI.isEqual(n,t);if(n instanceof Date&&t instanceof Date)return n.getTime()===t.getTime();if(!n||!t||typeof n!="object"&&typeof t!="object")return n===t;var i=n instanceof yI,r=t instanceof yI;if(i&&r)return e.fuzzy?n.equivalentTo(t):n.equals(t);if(i||r){let s=!1;return typeof n=="number"&&(n=new CI(n,"'1'"),s=!0),typeof t=="number"&&(t=new CI(t,"'1'"),s=!0),s?e.fuzzy?n.equivalentTo(t):n.equals(t):!1}return gH(n,t,e)}function II(n){return n==null}function gH(n,t,e){var i,r;if(II(n)||II(t)||n.prototype!==t.prototype)return!1;if(pp(n)||pp(t))return n=pp(n)?SI.call(n):n,t=pp(t)?SI.call(t):t,gp(n,t,e);try{var s=kI(n),a=kI(t)}catch{return!1}if(s.length!=a.length)return!1;for(s.sort(),a.sort(),i=s.length-1;i>=0;i--)if(s[i]!=a[i])return!1;if(s.length===1)return r=s[0],gp(n[r],t[r],e);for(i=s.length-1;i>=0;i--)if(r=s[i],!gp(n[r],t[r],e))return!1;return typeof n==typeof t}AI.exports={deepEqual:gp,maxCollSizeForDeepEqual:6}});var _p=X((nae,LI)=>{var $y=xn(),{TypeInfo:_H,ResourceNode:vH}=Br(),RI=fp(),{deepEqual:bH,maxCollSizeForDeepEqual:yH}=Pl(),Gi={};Gi.whereMacro=function(n,t){return n!==!1&&!n?[]:$y.flatten(n.map((e,i)=>{this.$index=i;let r=t(e);return r instanceof Promise?r.then(s=>s[0]?e:[]):r[0]?e:[]}))};Gi.extension=function(n,t){return n!==!1&&!n||!t?[]:$y.flatten(n.map((e,i)=>{this.$index=i;let r=e&&(e.data&&e.data.extension||e._data&&e._data.extension);return r?r.filter(s=>s.url===t).map(s=>vH.makeResNode(s,e,"Extension",null,"Extension")):[]}))};Gi.selectMacro=function(n,t){return n!==!1&&!n?[]:$y.flatten(n.map((e,i)=>(this.$index=i,t(e))))};Gi.repeatMacro=function(n,t,e=[],i={}){if(n!==!1&&!n)return[];let r=[].concat(...n.map(s=>t(s)));return r.some(s=>s instanceof Promise)?Promise.all(r).then(s=>(s=[].concat(...s),s.length?Gi.repeatMacro(DI(s,i,e),t,e,i):e)):r.length?Gi.repeatMacro(DI(r,i,e),t,e,i):e};function DI(n,t,e){let i=n.filter(r=>{let s=RI(r),a=!t[s];return a&&(t[s]=!0),a});return e.push.apply(e,i),i}Gi.singleFn=function(n){if(n.length===1)return n;if(n.length===0)return[];throw new Error("Expected single")};Gi.firstFn=function(n){return n[0]};Gi.lastFn=function(n){return n[n.length-1]};Gi.tailFn=function(n){return n.slice(1,n.length)};Gi.takeFn=function(n,t){return n.slice(0,t)};Gi.skipFn=function(n,t){return n.slice(t,n.length)};Gi.ofTypeFn=function(n,t){return n.filter(e=>_H.fromValue(e).is(t))};Gi.distinctFn=function(n){let t=[];if(n.length>0)if(n.length>yH){let e={};for(let i=0,r=n.length;i!bH(e,i))}while(n.length)}return t};LI.exports=Gi});var vp=X((rae,PI)=>{var Ms=xn(),NI=Br(),{FP_Quantity:ks,TypeInfo:CH}=NI,ln={};ln.iifMacro=function(n,t,e,i){let r=t(n);return r instanceof Promise?r.then(s=>OI(n,s,e,i)):OI(n,r,e,i)};function OI(n,t,e,i){return Ms.isTrue(t)?e(n):i?i(n):[]}ln.traceFn=function(n,t,e){let i=e?e(n):null;return i instanceof Promise?i.then(r=>ln.traceFn(n,t,r)):(this.customTraceFn?e?this.customTraceFn(e(n),t??""):this.customTraceFn(n,t??""):e?console.log("TRACE:["+(t||"")+"]",JSON.stringify(e(n),null," ")):console.log("TRACE:["+(t||"")+"]",JSON.stringify(n,null," ")),n)};ln.defineVariable=function(n,t,e){let i=n;if(e&&(i=e(n)),this.definedVars||(this.definedVars={}),t in this.vars||t in this.processedVars)throw new Error("Environment Variable %"+t+" already defined");if(Object.keys(this.definedVars).includes(t))throw new Error("Variable %"+t+" already defined");return this.definedVars[t]=i,n};var wH=/^[+-]?\d+$/;ln.toInteger=function(n){if(n.length!==1)return[];var t=Ms.valData(n[0]);return t===!1?0:t===!0?1:typeof t=="number"?Number.isInteger(t)?t:[]:typeof t=="string"&&wH.test(t)?parseInt(t):[]};var xH=/^((\+|-)?\d+(\.\d+)?)\s*(('[^']+')|([a-zA-Z]+))?$/,Vy={value:1,unit:5,time:6};ln.toQuantity=function(n,t){let e;if(n.length>1)throw new Error("Could not convert to quantity: input collection contains multiple items");if(n.length===1){if(t){let s=ks._calendarDuration2Seconds[this.unit],a=ks._calendarDuration2Seconds[t];if(!s!=!a&&(s>1||a>1))return null;ks.mapTimeUnitsToUCUMCode[t]||(t=`'${t}'`)}var i=Ms.valDataConverted(n[0]);let r;if(typeof i=="number")e=new ks(i,"'1'");else if(i instanceof ks)e=i;else if(typeof i=="boolean")e=new ks(i?1:0,"'1'");else if(typeof i=="string"&&(r=xH.exec(i))){let s=r[Vy.value],a=r[Vy.unit],o=r[Vy.time];(!o||ks.mapTimeUnitsToUCUMCode[o])&&(e=new ks(Number(s),a||o||"'1'"))}e&&t&&e.unit!==t&&(e=ks.convUnitTo(e.unit,e.value,t))}return e||[]};var SH=/^[+-]?\d+(\.\d+)?$/;ln.toDecimal=function(n){if(n.length!==1)return[];var t=Ms.valData(n[0]);return t===!1?0:t===!0?1:typeof t=="number"?t:typeof t=="string"&&SH.test(t)?parseFloat(t):[]};ln.toString=function(n){if(n.length!==1)return[];var t=Ms.valDataConverted(n[0]);return t==null?[]:t.toString()};function By(n){let t=n.slice(3);ln["to"+t]=function(e){var i=[];if(e.length>1)throw Error("to "+t+" called for a collection of length "+e.length);if(e.length===1){var r=Ms.valData(e[0]);if(typeof r=="string"){var s=NI[n].checkString(r);s&&(i=s)}}return i}}By("FP_Date");By("FP_DateTime");By("FP_Time");var kH=["true","t","yes","y","1","1.0"].reduce((n,t)=>(n[t]=!0,n),{}),MH=["false","f","no","n","0","0.0"].reduce((n,t)=>(n[t]=!0,n),{});ln.toBoolean=function(n){if(n.length!==1)return[];let t=Ms.valData(n[0]);switch(typeof t){case"boolean":return t;case"number":if(t===1)return!0;if(t===0)return!1;break;case"string":let e=t.toLowerCase();if(kH[e])return!0;if(MH[e])return!1}return[]};ln.createConvertsToFn=function(n,t){return typeof t=="string"?function(e){return e.length!==1?[]:typeof n(e)===t}:function(e){return e.length!==1?[]:n(e)instanceof t}};var TH={Integer:function(n){if(Number.isInteger(n))return n},Boolean:function(n){return n===!0||n===!1?n:!0},Number:function(n){if(typeof n=="number")return n},String:function(n){if(typeof n=="string")return n},AnySingletonAtRoot:function(n){return n}};ln.singleton=function(n,t){if(n.length>1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type "+t);if(n.length===0)return[];let e=Ms.valData(n[0]);if(e==null)return[];let i=TH[t];if(i){let r=i(e);if(r!==void 0)return r;throw new Error(`Expected ${t.toLowerCase()}, but got: ${JSON.stringify(n)}`)}throw new Error("Not supported type "+t)};var FI=new Set;["instant","time","date","dateTime","base64Binary","decimal","integer64","boolean","string","code","markdown","id","integer","unsignedInt","positiveInt","uri","oid","uuid","canonical","url","Integer","Decimal","String","Date","DateTime","Time"].forEach(n=>FI.add(n));ln.hasValueFn=function(n){return n.length===1&&Ms.valData(n[0])!=null&&FI.has(CH.fromValue(n[0]).name)};PI.exports=ln});var BI=X((sae,VI)=>{var zr=xn(),{whereMacro:EH,distinctFn:IH}=_p(),AH=vp(),UI=fp(),{deepEqual:DH,maxCollSizeForDeepEqual:RH}=Pl(),cn={};cn.emptyFn=zr.isEmpty;cn.notFn=function(n){let t=AH.singleton(n,"Boolean");return typeof t=="boolean"?!t:[]};cn.existsMacro=function(n,t){if(t){let e=EH.call(this,n,t);return e instanceof Promise?e.then(i=>cn.existsMacro(i)):cn.existsMacro(e)}return!zr.isEmpty(n)};cn.allMacro=function(n,t){let e=[];for(let i=0,r=n.length;ii.some(r=>!zr.isTrue(r))?[!1]:[!0]):[!0]};cn.allTrueFn=function(n){let t=!0;for(let e=0,i=n.length;eRH){let s=t.reduce((a,o)=>(a[UI(o)]=!0,a),{});r=!n.some(a=>!s[UI(a)])}else for(let s=0,a=n.length;sDH(o,zr.valData(l)))}return r}cn.subsetOfFn=function(n,t){return[$I(n,t)]};cn.supersetOfFn=function(n,t){return[$I(t,n)]};cn.isDistinctFn=function(n){return[n.length===IH(n).length]};VI.exports=cn});var zy=X((aae,HI)=>{var{FP_Quantity:si,FP_Type:sd}=Br(),Hr=xn(),hi={};function Ts(n,t){let e;if(zI(n))e=[];else{if(n.length!==1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type number");{let i=Hr.valData(n[0]);if(i==null)e=[];else if(typeof i=="number")e=t(i);else throw new Error("Expected number, but got "+JSON.stringify(i))}}return e}function zI(n){return typeof n=="number"?!1:n.length===0}hi.amp=function(n,t){return(n||"")+(t||"")};hi.plus=function(n,t){let e;if(n.length===1&&t.length===1){let i=Hr.valDataConverted(n[0]),r=Hr.valDataConverted(t[0]);i==null||r==null?e=[]:typeof i=="string"&&typeof r=="string"?e=i+r:typeof i=="number"?typeof r=="number"?e=i+r:r instanceof si&&(e=new si(i,"'1'").plus(r)):i instanceof sd&&(r instanceof si?e=i.plus(r):r instanceof sd?e=r.plus(i):typeof r=="number"&&(e=i.plus(new si(r,"'1'"))))}if(e===void 0)throw new Error("Cannot "+JSON.stringify(n)+" + "+JSON.stringify(t));return e};hi.minus=function(n,t){if(n.length===1&&t.length===1){let e=Hr.valDataConverted(n[0]),i=Hr.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return e-i;if(i instanceof si)return new si(e,"'1'").plus(new si(-i.value,i.unit))}if(e instanceof sd){if(i instanceof si)return e.plus(new si(-i.value,i.unit));if(typeof i=="number")return e.plus(new si(-i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" - "+JSON.stringify(t))};hi.mul=function(n,t){if(n.length===1&&t.length===1){let e=Hr.valDataConverted(n[0]),i=Hr.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return e*i;if(i instanceof si)return new si(e,"'1'").mul(i)}if(e instanceof sd){if(i instanceof si)return e.mul(i);if(typeof i=="number")return e.mul(new si(i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" * "+JSON.stringify(t))};hi.div=function(n,t){if(n.length===1&&t.length===1){let e=Hr.valDataConverted(n[0]),i=Hr.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return i===0?[]:e/i;if(i instanceof si)return new si(e,"'1'").div(i)}if(e instanceof sd){if(i instanceof si)return e.div(i);if(typeof i=="number")return e.div(new si(i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" / "+JSON.stringify(t))};hi.intdiv=function(n,t){return t===0?[]:Math.floor(n/t)};hi.mod=function(n,t){return t===0?[]:n%t};hi.abs=function(n){let t;if(zI(n))t=[];else{if(n.length!==1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type number or Quantity");var e=Hr.valData(n[0]);if(e==null)t=[];else if(typeof e=="number")t=Math.abs(e);else if(e instanceof si)t=new si(Math.abs(e.value),e.unit);else throw new Error("Expected number or Quantity, but got "+JSON.stringify(e||n))}return t};hi.ceiling=function(n){return Ts(n,Math.ceil)};hi.exp=function(n){return Ts(n,Math.exp)};hi.floor=function(n){return Ts(n,Math.floor)};hi.ln=function(n){return Ts(n,Math.log)};hi.log=function(n,t){return Ts(n,e=>Math.log(e)/Math.log(t))};hi.power=function(n,t){return Ts(n,e=>{let i=Math.pow(e,t);return isNaN(i)?[]:i})};hi.round=function(n,t){return Ts(n,e=>{if(t===void 0)return Math.round(e);{let i=Math.pow(10,t);return Math.round(e*i)/i}})};hi.sqrt=function(n){return Ts(n,t=>t<0?[]:Math.sqrt(t))};hi.truncate=function(n){return Ts(n,Math.trunc)};HI.exports=hi});var Hy=X((oae,KI)=>{var fr=xn(),{deepEqual:jI}=Pl(),WI=Br(),yp=WI.FP_Type,bp=WI.FP_DateTime,Es={};function qI(n,t){return fr.isEmpty(n)||fr.isEmpty(t)?[]:jI(n,t)}function GI(n,t){return fr.isEmpty(n)&&fr.isEmpty(t)?[!0]:fr.isEmpty(n)||fr.isEmpty(t)?[]:jI(n,t,{fuzzy:!0})}Es.equal=function(n,t){return qI(n,t)};Es.unequal=function(n,t){var e=qI(n,t);return e===void 0?void 0:!e};Es.equival=function(n,t){return GI(n,t)};Es.unequival=function(n,t){return!GI(n,t)};function Cp(n,t){if(fr.assertOnlyOne(n,"Singleton was expected"),fr.assertOnlyOne(t,"Singleton was expected"),n=fr.valDataConverted(n[0]),t=fr.valDataConverted(t[0]),n!=null&&t!=null){let e=n instanceof bp?bp:n.constructor,i=t instanceof bp?bp:t.constructor;e!==i&&fr.raiseError('Type of "'+n+'" ('+e.name+') did not match type of "'+t+'" ('+i.name+")","InequalityExpression")}return[n,t]}Es.lt=function(n,t){let[e,i]=Cp(n,t);if(e==null||i==null)return[];if(e instanceof yp){let r=e.compare(i);return r===null?[]:r<0}return e0}return e>i};Es.lte=function(n,t){let[e,i]=Cp(n,t);if(e==null||i==null)return[];if(e instanceof yp){let r=e.compare(i);return r===null?[]:r<=0}return e<=i};Es.gte=function(n,t){let[e,i]=Cp(n,t);if(e==null||i==null)return[];if(e instanceof yp){let r=e.compare(i);return r===null?[]:r>=0}return e>=i};KI.exports=Es});var JI=X((lae,XI)=>{var jr={},YI=zy(),QI=Hy(),Is=xn();jr.aggregateMacro=function(n,t,e){return n.reduce((i,r,s)=>i instanceof Promise?i.then(a=>(this.$index=s,this.$total=a,this.$total=t(r))):(this.$index=s,this.$total=t(r)),this.$total=e)};jr.countFn=function(n){return n&&n.length?n.length:0};jr.sumFn=function(n){return jr.aggregateMacro.apply(this,[n.slice(1),t=>{let e=Is.arraify(t).filter(r=>Is.valData(r)!=null),i=Is.arraify(this.$total).filter(r=>Is.valData(r)!=null);return e.length===0||i.length===0?[]:YI.plus(e,i)},n[0]])};function ZI(n,t){let e;if(n.length===0||Is.valData(n[0])==null)e=[];else{e=[n[0]];for(let i=1;i{var eA={};eA.weight=function(n){if(n!==!1&&!n)return[];let t=this.vars.scoreExt||this.processedVars.scoreExt,e=t?s=>s.url===t:s=>this.defaultScoreExts.includes(s.url),i=[],r=this.vars.questionnaire||this.processedVars.questionnaire?.data;return n.forEach(s=>{if(s?.data){let a=s.data.valueCoding,o=a;if(!o){let c=Object.keys(s.data).find(u=>u.length>5&&u.startsWith("value"));o=c?s.data[c]:s._data?.extension?s._data:s.data}let l=o?.extension?.find(e)?.valueDecimal;if(l!==void 0)i.push(l);else if(a){let c=LH(s.parentResNode);if(c.length)if(r){let d=OH(r,c)?.answerOption?.find(h=>h.valueCoding.code===a.code&&h.valueCoding.system===a.system);if(d){let h=d.extension?.find(e)?.valueDecimal;h!==void 0&&i.push(h)}else throw new Error("Questionnaire answerOption with this linkId was not found: "+s.parentResNode.data.linkId+".")}else throw new Error("%questionnaire is needed but not specified.")}}}),i};function LH(n){let t=[];for(;n.data?.linkId;)t.push(n.data.linkId),n=n.parentResNode;return t}function OH(n,t){let e=n;for(let i=t.length-1;i>=0;--i)if(e=e.item?.find(r=>r.linkId===t[i]),!e)return null;return e}tA.exports=eA});var oA=X((uae,aA)=>{var ad={},{distinctFn:nA}=_p(),wp=fp(),{deepEqual:rA,maxCollSizeForDeepEqual:sA}=Pl();ad.union=function(n,t){return nA(n.concat(t))};ad.combineFn=function(n,t){return n.concat(t)};ad.intersect=function(n,t){let e=[],i=n.length,r=t.length;if(i&&r)if(i+r>sA){let s={};t.forEach(a=>{let o=wp(a);s[o]?r--:s[o]=!0});for(let a=0;a0;++a){let o=n[a],l=wp(o);s[l]&&(e.push(o),s[l]=!1,r--)}}else e=nA(n).filter(s=>t.some(a=>rA(s,a)));return e};ad.exclude=function(n,t){let e=[],i=n.length,r=t.length;if(!r)return n;if(i)if(i+r>sA){let s={};t.forEach(a=>{let o=wp(a);s[o]=!0}),e=n.filter(a=>!s[wp(a)])}else e=n.filter(s=>!t.some(a=>rA(s,a)));return e};aA.exports=ad});var uA=X((dae,cA)=>{var{deepEqual:NH}=Pl(),jy={};function lA(n,t){for(var e=0;e1)throw new Error("Expected singleton on right side of contains, got "+JSON.stringify(t));return lA(n,t)};jy.in=function(n,t){if(n.length==0)return[];if(t.length==0)return!1;if(n.length>1)throw new Error("Expected singleton on right side of in, got "+JSON.stringify(t));return lA(t,n)};cA.exports=jy});var hA=X((hae,dA)=>{var _t=xn(),Si=vp(),li={},Wy={};function FH(n){return Wy[n]||(Wy[n]=n.replace(/\./g,(t,e,i)=>{let s=i.substr(0,e).replace(/\\\\/g,"").replace(/\\[\][]/g,""),a=s[s.length-1]==="\\",o=s.lastIndexOf("["),l=s.lastIndexOf("]");return a||o>l?".":"[^]"})),Wy[n]}li.indexOf=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:e.indexOf(t)};li.substring=function(n,t,e){let i=Si.singleton(n,"String");return _t.isEmpty(i)||_t.isEmpty(t)||t<0||t>=i.length?[]:e===void 0||_t.isEmpty(e)?i.substring(t):i.substring(t,t+e)};li.startsWith=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:e.startsWith(t)};li.endsWith=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:e.endsWith(t)};li.containsFn=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:e.includes(t)};li.upper=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.toUpperCase()};li.lower=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.toLowerCase()};li.joinFn=function(n,t){let e=[];return n.forEach(i=>{let r=_t.valData(i);if(typeof r=="string")e.push(r);else if(r!=null)throw new Error("Join requires a collection of strings.")}),_t.isEmpty(e)?[]:(t===void 0&&(t=""),e.join(t))};li.splitFn=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(e)?[]:e.split(t)};li.trimFn=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.trim()};li.encodeFn=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(e)?[]:t==="urlbase64"||t==="base64url"?btoa(e).replace(/\+/g,"-").replace(/\//g,"_"):t==="base64"?btoa(e):t==="hex"?Array.from(e).map(i=>i.charCodeAt(0)<128?i.charCodeAt(0).toString(16):encodeURIComponent(i).replace(/%/g,"")).join(""):[]};li.decodeFn=function(n,t){let e=Si.singleton(n,"String");if(_t.isEmpty(e))return[];if(t==="urlbase64"||t==="base64url")return atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t==="base64")return atob(e);if(t==="hex"){if(e.length%2!==0)throw new Error("Decode 'hex' requires an even number of characters.");return decodeURIComponent("%"+e.match(/.{2}/g).join("%"))}return[]};var PH=new RegExp("").dotAll===!1;PH?li.matches=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:new RegExp(t,"su").test(e)}:li.matches=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:new RegExp(FH(t),"u").test(e)};li.replace=function(n,t,e){let i=Si.singleton(n,"String");if(_t.isEmpty(t)||_t.isEmpty(e)||_t.isEmpty(i))return[];let r=new RegExp(_t.escapeStringForRegExp(t),"g");return i.replace(r,e)};li.replaceMatches=function(n,t,e){let i=Si.singleton(n,"String");if(_t.isEmpty(t)||_t.isEmpty(e)||_t.isEmpty(i))return[];let r=new RegExp(t,"gu");return i.replace(r,e)};li.length=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.length};li.toChars=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.split("")};dA.exports=li});var fA=X((mae,mA)=>{var xp=xn(),od={};od.children=function(n){let t=this.model;return n.reduce(function(e,i){let r=xp.valData(i);if(r==null)return e;if(typeof r=="object"){for(var s of Object.keys(r))xp.pushFn(e,xp.makeChildResNodes(i,s,t));return e}else return e},[])};od.descendants=function(n){for(var t=od.children.call(this,n),e=[];t.length>0;)xp.pushFn(e,t),t=od.children.call(this,t);return e};mA.exports=od});var _A=X((fae,gA)=>{var Sp={},Gy=Br(),Kn=Fy(),pA=Gy.FP_Date,qy=Gy.FP_DateTime,UH=Gy.FP_Time;Sp.now=function(){if(!Kn.now){var n=Kn.nowDate,t=qy.isoDateTime(n);Kn.now=new qy(t)}return Kn.now};Sp.today=function(){if(!Kn.today){var n=Kn.nowDate,t=pA.isoDate(n);Kn.today=new pA(t)}return Kn.today};Sp.timeOfDay=function(){if(!Kn.timeOfDay){let n=Kn.nowDate,t=qy.isoTime(n);Kn.timeOfDay=new UH(t)}return Kn.timeOfDay};gA.exports=Sp});var Yy=X((pae,bA)=>{var Ky=class n{constructor(t){this.terminologyUrl=t,this.invocationTable=n.invocationTable}static invocationTable={validateVS:{fn:n.validateVS,arity:{2:["String","AnySingletonAtRoot"],3:["String","AnySingletonAtRoot","String"]}}};static validateVS(t,e,i,r=""){VH(r);let s={Accept:"application/fhir+json; charset=utf-8"},a={Accept:"application/fhir+json; charset=utf-8","Content-Type":"application/fhir+json; charset=utf-8"},o=new Headers(s),l=`${t[0].terminologyUrl}/ValueSet/$validate-code`,c;if(i.coding){let u={resourceType:"Parameters",parameter:[{name:"url",valueUri:e},{name:"codeableConcept",valueCodeableConcept:i}]};o=new Headers(a),c=fetch(l+(r?"?"+r:""),{method:"POST",headers:o,body:JSON.stringify(u)})}else if(typeof i=="string"){let u=new URLSearchParams({url:e});c=fetch(`${t[0].terminologyUrl}/ValueSet?${u.toString()+(r?"&"+r:"")}`,{headers:o}).then(d=>d.json()).then(d=>{let h=d?.entry?.length===1&&(vA(d.entry[0].resource.expansion?.contains)||vA(d.entry[0].resource.compose?.include));if(h){let m=new URLSearchParams({url:e,code:i,system:h});return fetch(`${l}?${m.toString()+(r?"&"+r:"")}`,{headers:o})}else throw new Error("The valueset does not have a single code system.")})}else if(i.code){let u=new URLSearchParams({url:e??"",system:i.system??"",code:i.code});c=fetch(`${l}?${u.toString()+(r?"&"+r:"")}`,{headers:o})}return Promise.resolve(c).then(u=>u.json()).then(u=>{if(u?.parameter)return u;throw new Error(u)}).catch(()=>{let u=$H(i,e);throw new Error("Failed to check membership: "+u)})}};function $H(n,t){if(typeof n=="string")return n+" - "+t;if(n.code)return n.system+"|"+n.code+" - "+t;if(n.coding)return n.coding.map(e=>e.system+"|"+e.code).join(",")+" - "+t}function VH(n){if(n?.split("&").find(t=>{let e=t.split("=");return e.length<=2&&e.find(i=>encodeURIComponent(decodeURIComponent(i))!==i)}))throw new Error(`"${n}" should be a valid URL-encoded string`)}function vA(n,t=void 0){if(n){for(let e=0;e{var BH=xn(),zH=Yy(),yA={};yA.memberOf=function(n,t){if(!this.async)throw new Error('The asynchronous function "memberOf" is not allowed. To enable asynchronous functions, use the async=true or async="always" option.');if(n.length!==1||n[0]==null)return[];if(typeof t=="string"&&/^https?:\/\/.*/.test(t)){let e=this.processedVars.terminologies;if(!e)throw new Error('Option "terminologyUrl" is not specified.');return zH.validateVS([e],t,BH.valData(n[0]),"").then(i=>i.parameter.find(r=>r.name==="result").valueBoolean,()=>[])}return[]};CA.exports=yA});var SA=X((_ae,xA)=>{var ld={};ld.orOp=function(n,t){if(Array.isArray(t)){if(n===!0)return!0;if(n===!1)return[];if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?!0:[]:n||t};ld.andOp=function(n,t){if(Array.isArray(t)){if(n===!0)return[];if(n===!1)return!1;if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?[]:!1:n&&t};ld.xorOp=function(n,t){return Array.isArray(n)||Array.isArray(t)?[]:n&&!t||!n&&t};ld.impliesOp=function(n,t){if(Array.isArray(t)){if(n===!0)return[];if(n===!1)return!0;if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?!0:[]:n===!1?!0:n&&t};xA.exports=ld});var FA=X((vae,NA)=>{var{version:HH}=pT(),jH=_2(),mi=xn();_I();var WH=Fy(),fe={},pr=BI(),Yn=_p(),Ul=JI(),kA=iA(),cd=oA(),Tt=vp(),ga=Hy(),MA=uA(),ki=zy(),Mi=hA(),TA=fA(),Qy=_A(),qH=wA(),kp=SA(),$l=Br(),{FP_Date:GH,FP_DateTime:IA,FP_Time:AA,FP_Quantity:Mp,FP_Type:DA,ResourceNode:e1,TypeInfo:Tp}=$l,_a=e1.makeResNode,KH=Yy();fe.invocationTable={memberOf:{fn:qH.memberOf,arity:{1:["String"]}},empty:{fn:pr.emptyFn},not:{fn:pr.notFn},exists:{fn:pr.existsMacro,arity:{0:[],1:["Expr"]}},all:{fn:pr.allMacro,arity:{1:["Expr"]}},allTrue:{fn:pr.allTrueFn},anyTrue:{fn:pr.anyTrueFn},allFalse:{fn:pr.allFalseFn},anyFalse:{fn:pr.anyFalseFn},subsetOf:{fn:pr.subsetOfFn,arity:{1:["AnyAtRoot"]}},supersetOf:{fn:pr.supersetOfFn,arity:{1:["AnyAtRoot"]}},isDistinct:{fn:pr.isDistinctFn},distinct:{fn:Yn.distinctFn},count:{fn:Ul.countFn},where:{fn:Yn.whereMacro,arity:{1:["Expr"]}},extension:{fn:Yn.extension,arity:{1:["String"]}},select:{fn:Yn.selectMacro,arity:{1:["Expr"]}},aggregate:{fn:Ul.aggregateMacro,arity:{1:["Expr"],2:["Expr","AnyAtRoot"]}},sum:{fn:Ul.sumFn},min:{fn:Ul.minFn},max:{fn:Ul.maxFn},avg:{fn:Ul.avgFn},weight:{fn:kA.weight},ordinal:{fn:kA.weight},single:{fn:Yn.singleFn},first:{fn:Yn.firstFn},last:{fn:Yn.lastFn},type:{fn:$l.typeFn,arity:{0:[]}},ofType:{fn:Yn.ofTypeFn,arity:{1:["TypeSpecifier"]}},is:{fn:$l.isFn,arity:{1:["TypeSpecifier"]}},as:{fn:$l.asFn,arity:{1:["TypeSpecifier"]}},tail:{fn:Yn.tailFn},take:{fn:Yn.takeFn,arity:{1:["Integer"]}},skip:{fn:Yn.skipFn,arity:{1:["Integer"]}},combine:{fn:cd.combineFn,arity:{1:["AnyAtRoot"]}},union:{fn:cd.union,arity:{1:["AnyAtRoot"]}},intersect:{fn:cd.intersect,arity:{1:["AnyAtRoot"]}},exclude:{fn:cd.exclude,arity:{1:["AnyAtRoot"]}},iif:{fn:Tt.iifMacro,arity:{2:["Expr","Expr"],3:["Expr","Expr","Expr"]}},trace:{fn:Tt.traceFn,arity:{1:["String"],2:["String","Expr"]}},defineVariable:{fn:Tt.defineVariable,arity:{1:["String"],2:["String","Expr"]}},toInteger:{fn:Tt.toInteger},toDecimal:{fn:Tt.toDecimal},toString:{fn:Tt.toString},toDate:{fn:Tt.toDate},toDateTime:{fn:Tt.toDateTime},toTime:{fn:Tt.toTime},toBoolean:{fn:Tt.toBoolean},toQuantity:{fn:Tt.toQuantity,arity:{0:[],1:["String"]}},hasValue:{fn:Tt.hasValueFn},convertsToBoolean:{fn:Tt.createConvertsToFn(Tt.toBoolean,"boolean")},convertsToInteger:{fn:Tt.createConvertsToFn(Tt.toInteger,"number")},convertsToDecimal:{fn:Tt.createConvertsToFn(Tt.toDecimal,"number")},convertsToString:{fn:Tt.createConvertsToFn(Tt.toString,"string")},convertsToDate:{fn:Tt.createConvertsToFn(Tt.toDate,GH)},convertsToDateTime:{fn:Tt.createConvertsToFn(Tt.toDateTime,IA)},convertsToTime:{fn:Tt.createConvertsToFn(Tt.toTime,AA)},convertsToQuantity:{fn:Tt.createConvertsToFn(Tt.toQuantity,Mp)},indexOf:{fn:Mi.indexOf,arity:{1:["String"]}},substring:{fn:Mi.substring,arity:{1:["Integer"],2:["Integer","Integer"]}},startsWith:{fn:Mi.startsWith,arity:{1:["String"]}},endsWith:{fn:Mi.endsWith,arity:{1:["String"]}},contains:{fn:Mi.containsFn,arity:{1:["String"]}},upper:{fn:Mi.upper},lower:{fn:Mi.lower},replace:{fn:Mi.replace,arity:{2:["String","String"]}},matches:{fn:Mi.matches,arity:{1:["String"]}},replaceMatches:{fn:Mi.replaceMatches,arity:{2:["String","String"]}},length:{fn:Mi.length},toChars:{fn:Mi.toChars},join:{fn:Mi.joinFn,arity:{0:[],1:["String"]}},split:{fn:Mi.splitFn,arity:{1:["String"]}},trim:{fn:Mi.trimFn},encode:{fn:Mi.encodeFn,arity:{1:["String"]}},decode:{fn:Mi.decodeFn,arity:{1:["String"]}},abs:{fn:ki.abs},ceiling:{fn:ki.ceiling},exp:{fn:ki.exp},floor:{fn:ki.floor},ln:{fn:ki.ln},log:{fn:ki.log,arity:{1:["Number"]},nullable:!0},power:{fn:ki.power,arity:{1:["Number"]},nullable:!0},round:{fn:ki.round,arity:{0:[],1:["Number"]}},sqrt:{fn:ki.sqrt},truncate:{fn:ki.truncate},now:{fn:Qy.now},today:{fn:Qy.today},timeOfDay:{fn:Qy.timeOfDay},repeat:{fn:Yn.repeatMacro,arity:{1:["Expr"]}},children:{fn:TA.children},descendants:{fn:TA.descendants},"|":{fn:cd.union,arity:{2:["Any","Any"]}},"=":{fn:ga.equal,arity:{2:["Any","Any"]},nullable:!0},"!=":{fn:ga.unequal,arity:{2:["Any","Any"]},nullable:!0},"~":{fn:ga.equival,arity:{2:["Any","Any"]}},"!~":{fn:ga.unequival,arity:{2:["Any","Any"]}},"<":{fn:ga.lt,arity:{2:["Any","Any"]},nullable:!0},">":{fn:ga.gt,arity:{2:["Any","Any"]},nullable:!0},"<=":{fn:ga.lte,arity:{2:["Any","Any"]},nullable:!0},">=":{fn:ga.gte,arity:{2:["Any","Any"]},nullable:!0},containsOp:{fn:MA.contains,arity:{2:["Any","Any"]}},inOp:{fn:MA.in,arity:{2:["Any","Any"]}},isOp:{fn:$l.isFn,arity:{2:["Any","TypeSpecifier"]}},asOp:{fn:$l.asFn,arity:{2:["Any","TypeSpecifier"]}},"&":{fn:ki.amp,arity:{2:["String","String"]}},"+":{fn:ki.plus,arity:{2:["Any","Any"]},nullable:!0},"-":{fn:ki.minus,arity:{2:["Any","Any"]},nullable:!0},"*":{fn:ki.mul,arity:{2:["Any","Any"]},nullable:!0},"/":{fn:ki.div,arity:{2:["Any","Any"]},nullable:!0},mod:{fn:ki.mod,arity:{2:["Number","Number"]},nullable:!0},div:{fn:ki.intdiv,arity:{2:["Number","Number"]},nullable:!0},or:{fn:kp.orOp,arity:{2:[["Boolean"],["Boolean"]]}},and:{fn:kp.andOp,arity:{2:[["Boolean"],["Boolean"]]}},xor:{fn:kp.xorOp,arity:{2:[["Boolean"],["Boolean"]]}},implies:{fn:kp.impliesOp,arity:{2:[["Boolean"],["Boolean"]]}}};fe.InvocationExpression=function(n,t,e){return e.children.reduce(function(i,r){return fe.doEval(n,i,r)},t)};fe.TermExpression=function(n,t,e){return t&&(t=t.map(i=>i instanceof Object&&i.resourceType?_a(i,null,i.resourceType,null,i.resourceType):i)),fe.doEval(n,t,e.children[0])};fe.PolarityExpression=function(n,t,e){var i=e.terminalNodeText[0],r=fe.doEval(n,t,e.children[0]);if(r.length!==1)throw new Error("Unary "+i+" can only be applied to an individual number or Quantity.");if(r[0]instanceof Mp)i==="-"&&(r[0]=new Mp(-r[0].value,r[0].unit));else if(typeof r[0]=="number"&&!isNaN(r[0]))i==="-"&&(r[0]=-r[0]);else throw new Error("Unary "+i+" can only be applied to a number or Quantity.");return r};fe.TypeSpecifier=function(n,t,e){let i,r,s=e.text.split(".").map(o=>o.replace(/(^`|`$)/g,""));switch(s.length){case 2:[i,r]=s;break;case 1:[r]=s;break;default:throw new Error("Expected TypeSpecifier node, got "+JSON.stringify(e))}let a=new Tp({namespace:i,name:r});if(!a.isValid())throw new Error('"'+a+'" cannot be resolved to a valid type identifier');return a};fe.ExternalConstantTerm=function(n,t,e){var i=e.children[0],r=i.children[0],s=fe.Identifier(n,t,r)[0],a;if(s in n.vars)a=n.vars[s],Array.isArray(a)?a=a.map(o=>o?.__path__?_a(o,o.__path__.parentResNode,o.__path__.path,null,o.__path__.fhirNodeDataType):o?.resourceType?_a(o,null,null,null):o):a=a?.__path__?_a(a,a.__path__.parentResNode,a.__path__.path,null,a.__path__.fhirNodeDataType):a?.resourceType?_a(a,null,null,null):a,n.processedVars[s]=a,delete n.vars[s];else if(s in n.processedVars)a=n.processedVars[s];else if(n.definedVars&&s in n.definedVars)a=n.definedVars[s];else throw new Error("Attempting to access an undefined environment variable: "+s);return a==null?[]:a instanceof Array?a:[a]};fe.LiteralTerm=function(n,t,e){var i=e.children[0];return i?fe.doEval(n,t,i):[e.text]};fe.StringLiteral=function(n,t,e){var i=e.text.replace(/(^'|'$)/g,"");return i=i.replace(/\\(u\d{4}|.)/g,function(r,s){switch(r){case"\\r":return"\r";case"\\n":return` -`;case"\\t":return" ";case"\\f":return"\f";default:return s.length>1?String.fromCharCode("0x"+s.slice(1)):s}}),[i]};fe.BooleanLiteral=function(n,t,e){return e.text==="true"?[!0]:[!1]};fe.QuantityLiteral=function(n,t,e){var i=e.children[0],r=Number(i.terminalNodeText[0]),s=i.children[0],a=s.terminalNodeText[0];return!a&&s.children&&(a=s.children[0].terminalNodeText[0]),[new Mp(r,a)]};fe.DateTimeLiteral=function(n,t,e){var i=e.text.slice(1);return[new IA(i)]};fe.TimeLiteral=function(n,t,e){var i=e.text.slice(1);return[new AA(i)]};fe.NumberLiteral=function(n,t,e){return[Number(e.text)]};fe.Identifier=function(n,t,e){return[e.text.replace(/(^`|`$)/g,"")]};fe.InvocationTerm=function(n,t,e){return fe.doEval(n,t,e.children[0])};fe.MemberInvocation=function(n,t,e){let i=fe.doEval(n,t,e.children[0])[0],r=n.model;return t?t.reduce(function(s,a){return a=_a(a,null,a.__path__?.path,null,a.__path__?.fhirNodeDataType),a.data?.resourceType===i?s.push(a):mi.pushFn(s,mi.makeChildResNodes(a,i,r)),s},[]):[]};fe.IndexerExpression=function(n,t,e){let i=e.children[0],r=e.children[1];var s=fe.doEval(n,t,i),a=fe.doEval(n,t,r);if(mi.isEmpty(a))return[];var o=parseInt(a[0]);return s&&mi.isSome(o)&&s.length>o&&o>=0?[s[o]]:[]};fe.Functn=function(n,t,e){return e.children.map(function(i){return fe.doEval(n,t,i)})};fe.realizeParams=function(n,t,e){return e&&e[0]&&e[0].children?e[0].children.map(function(i){return fe.doEval(n,t,i)}):[]};function RA(n,t,e,i){if(e==="Expr")return function(s){let a=mi.arraify(s),o=$e(j({},n),{$this:a});return n.definedVars&&(o.definedVars=j({},n.definedVars)),fe.doEval(o,a,i)};if(e==="AnyAtRoot"){let s=n.$this||n.dataRoot,a=$e(j({},n),{$this:s});return n.definedVars&&(a.definedVars=j({},n.definedVars)),fe.doEval(a,s,i)}if(e==="Identifier"){if(i.type==="TermExpression")return i.text;throw new Error("Expected identifier node, got "+JSON.stringify(i))}if(e==="TypeSpecifier")return fe.TypeSpecifier(n,t,i);let r;if(e==="AnySingletonAtRoot"){let s=n.$this||n.dataRoot,a=$e(j({},n),{$this:s});n.definedVars&&(a.definedVars=j({},n.definedVars)),r=fe.doEval(a,s,i)}else{let s=j({},n);if(n.definedVars&&(s.definedVars=j({},n.definedVars)),r=fe.doEval(s,t,i),e==="Any")return r;if(Array.isArray(e)){if(r.length===0)return[];e=e[0]}}return Tt.singleton(r,e)}function YH(n,t,e,i){var r=n.userInvocationTable?.[t]||fe.invocationTable[t]||e.length===1&&e[0]?.invocationTable[t],s;if(r)if(r.arity){var a=i?i.length:0,o=r.arity[a];if(o){for(var l=[],c=0;ch instanceof Promise)?Promise.all(l).then(h=>(s=r.fn.apply(n,h),mi.resolveAndArraify(s))):(s=r.fn.apply(n,l),mi.resolveAndArraify(s))}else return console.log(t+" wrong arity: got "+a),[]}else{if(i)throw new Error(t+" expects no params");return s=r.fn.call(n,e),mi.resolveAndArraify(s)}else throw new Error("Not implemented: "+t)}function LA(n){return n==null||mi.isEmpty(n)}function t1(n,t,e,i){var r=fe.invocationTable[t];if(r&&r.fn){var s=i?i.length:0;if(s!==2)throw new Error("Infix invoke should have arity 2");var a=r.arity[s];if(a){for(var o=[],l=0;lh instanceof Promise))return Promise.all(o).then(h=>{var m=r.fn.apply(n,h);return mi.arraify(m)});var d=r.fn.apply(n,o);return mi.arraify(d)}else return console.log(t+" wrong arity: got "+s),[]}else throw new Error("Not impl "+t)}fe.FunctionInvocation=function(n,t,e){var i=fe.doEval(n,t,e.children[0]);let r=i[0];i.shift();var s=i&&i[0]&&i[0].children;return YH(n,r,t,s)};fe.ParamList=function(n,t,e){return e};fe.UnionExpression=function(n,t,e){return t1(n,"|",t,e.children)};fe.ThisInvocation=function(n){return n.$this};fe.TotalInvocation=function(n){return mi.arraify(n.$total)};fe.IndexInvocation=function(n){return mi.arraify(n.$index)};fe.OpExpression=function(n,t,e){var i=e.terminalNodeText[0];return t1(n,i,t,e.children)};fe.AliasOpExpression=function(n){return function(t,e,i){var r=i.terminalNodeText[0],s=n[r];if(!s)throw new Error("Do not know how to alias "+r+" by "+JSON.stringify(n));return t1(t,s,e,i.children)}};fe.NullLiteral=function(){return[]};fe.ParenthesizedTerm=function(n,t,e){return fe.doEval(n,t,e.children[0])};fe.evalTable={BooleanLiteral:fe.BooleanLiteral,EqualityExpression:fe.OpExpression,FunctionInvocation:fe.FunctionInvocation,Functn:fe.Functn,Identifier:fe.Identifier,IndexerExpression:fe.IndexerExpression,InequalityExpression:fe.OpExpression,InvocationExpression:fe.InvocationExpression,AdditiveExpression:fe.OpExpression,MultiplicativeExpression:fe.OpExpression,TypeExpression:fe.AliasOpExpression({is:"isOp",as:"asOp"}),MembershipExpression:fe.AliasOpExpression({contains:"containsOp",in:"inOp"}),NullLiteral:fe.NullLiteral,EntireExpression:fe.InvocationTerm,InvocationTerm:fe.InvocationTerm,LiteralTerm:fe.LiteralTerm,MemberInvocation:fe.MemberInvocation,NumberLiteral:fe.NumberLiteral,ParamList:fe.ParamList,ParenthesizedTerm:fe.ParenthesizedTerm,StringLiteral:fe.StringLiteral,TermExpression:fe.TermExpression,ThisInvocation:fe.ThisInvocation,TotalInvocation:fe.TotalInvocation,IndexInvocation:fe.IndexInvocation,UnionExpression:fe.UnionExpression,OrExpression:fe.OpExpression,ImpliesExpression:fe.OpExpression,AndExpression:fe.OpExpression,XorExpression:fe.OpExpression};fe.doEval=function(n,t,e){return t instanceof Promise?t.then(i=>fe.doEvalSync(n,i,e)):fe.doEvalSync(n,t,e)};fe.doEvalSync=function(n,t,e){let i=fe.evalTable[e.type]||fe[e.type];if(i)return i.call(fe,n,t,e);throw new Error("No "+e.type+" evaluator ")};function Xy(n){return jH.parse(n)}function EA(n,t,e,i,r){WH.reset();let s=mi.arraify(n).map(l=>l?.__path__?_a(l,l.__path__.parentResNode,l.__path__.path,null,l.__path__.fhirNodeDataType):l),a={dataRoot:s,processedVars:{ucum:"http://unitsofmeasure.org"},vars:j({context:s},e),model:i};r.traceFn&&(a.customTraceFn=r.traceFn),r.userInvocationTable&&(a.userInvocationTable=r.userInvocationTable),a.defaultScoreExts=["http://hl7.org/fhir/StructureDefinition/ordinalValue","http://hl7.org/fhir/StructureDefinition/itemWeight","http://hl7.org/fhir/StructureDefinition/questionnaire-ordinalValue"],r.async&&(a.async=r.async),r.terminologyUrl&&(a.processedVars.terminologies=new KH(r.terminologyUrl));let o=fe.doEval(a,s,t.children[0]);return o instanceof Promise?o.then(l=>Zy(l,r)):r.async==="always"?Promise.resolve(Zy(o,r)):Zy(o,r)}function Zy(n,t){return n.reduce((e,i)=>{let r,s,a;return i instanceof e1&&(r=i.path,s=i.fhirNodeDataType,a=i.parentResNode),i=mi.valData(i),i instanceof DA&&t.resolveInternalTypes&&(i=i.toString()),i!=null&&(r&&typeof i=="object"&&!i.__path__&&Object.defineProperty(i,"__path__",{value:{path:r,fhirNodeDataType:s,parentResNode:a}}),e.push(i)),e},[])}function Jy(n){if(Array.isArray(n))for(let t=0,e=n.length;t(i[s].internalStructures?r[s]=i[s]:r[s]=$e(j({},i[s]),{fn:(...a)=>i[s].fn.apply(this,a.map(o=>Array.isArray(o)?o.map(l=>mi.valData(l)):o))}),r),{})),typeof n=="object"){let r=Xy(n.expression);return function(s,a){if(n.base){let o=t.pathsDefinedElsewhere[n.base]||n.base,l=t&&t.path2Type[o];o=l==="BackboneElement"||l==="Element"?o:l||o,s=_a(s,null,o,null,l)}return Tp.model=t,EA(s,r,a,t,e)}}else{let r=Xy(n);return function(s,a){return Tp.model=t,EA(s,r,a,t,e)}}}function ZH(n){return mi.arraify(n).map(t=>{let e=Tp.fromValue(t?.__path__?new e1(t,t.__path__?.parentResNode,t.__path__?.path,null,t.__path__?.fhirNodeDataType):t);return`${e.namespace}.${e.name}`})}NA.exports={version:HH,parse:Xy,compile:OA,evaluate:QH,resolveInternalTypes:Jy,types:ZH,ucumUtils:dp().UcumLhcUtils.getInstance(),util:mi}});var dR=X((R1,uR)=>{(function(n,t){typeof define=="function"&&define.amd?define([],t):typeof R1=="object"?uR.exports=t():n.untar=t()})(R1,function(){"use strict";function n(o){function l(m){for(var f=0,g=c.length;f127){if(a>191&&a<224){if(t>=e.length)throw"UTF-8 decode: incomplete 2-byte sequence";a=(31&a)<<6|63&e[t]}else if(a>223&&a<240){if(t+1>=e.length)throw"UTF-8 decode: incomplete 3-byte sequence";a=(15&a)<<12|(63&e[t])<<6|63&e[++t]}else{if(!(a>239&&a<248))throw"UTF-8 decode: unknown multibyte start 0x"+a.toString(16)+" at index "+(t-1);if(t+2>=e.length)throw"UTF-8 decode: incomplete 4-byte sequence";a=(7&a)<<18|(63&e[t])<<12|(63&e[++t])<<6|63&e[++t]}++t}if(a<=65535)r+=String.fromCharCode(a);else{if(!(a<=1114111))throw"UTF-8 decode: code point 0x"+a.toString(16)+" exceeds UTF-16 reach";a-=65536,r+=String.fromCharCode(a>>10|55296),r+=String.fromCharCode(1023&a|56320)}}return r}function PaxHeader(e){this._fields=e}function TarFile(){}function UntarStream(e){this._bufferView=new DataView(e),this._position=0}function UntarFileStream(e){this._stream=new UntarStream(e),this._globalPaxHeader=null}if(UntarWorker.prototype={onmessage:function(e){try{if("extract"!==e.data.type)throw new Error("Unknown message type: "+e.data.type);this.untarBuffer(e.data.buffer)}catch(r){this.postError(r)}},postError:function(e){this.postMessage({type:"error",data:{message:e.message}})},postLog:function(e,r){this.postMessage({type:"log",data:{level:e,msg:r}})},untarBuffer:function(e){try{for(var r=new UntarFileStream(e);r.hasNext();){var t=r.next();this.postMessage({type:"extract",data:t},[t.buffer])}this.postMessage({type:"complete"})}catch(a){this.postError(a)}},postMessage:function(e,r){self.postMessage(e,r)}},"undefined"!=typeof self){var worker=new UntarWorker;self.onmessage=function(e){worker.onmessage(e)}}PaxHeader.parse=function(e){for(var r=new Uint8Array(e),t=[];r.length>0;){var a=parseInt(decodeUTF8(r.subarray(0,r.indexOf(32)))),n=decodeUTF8(r.subarray(0,a)),i=n.match(/^\\d+ ([^=]+)=(.*)\\n$/);if(null===i)throw new Error("Invalid PAX header data format.");var s=i[1],o=i[2];0===o.length?o=null:null!==o.match(/^\\d+$/)&&(o=parseInt(o));var f={name:s,value:o};t.push(f),r=r.subarray(a)}return new PaxHeader(t)},PaxHeader.prototype={applyHeader:function(e){this._fields.forEach(function(r){var t=r.name,a=r.value;"path"===t?(t="name",void 0!==e.prefix&&delete e.prefix):"linkpath"===t&&(t="linkname"),null===a?delete e[t]:e[t]=a})}},UntarStream.prototype={readString:function(e){for(var r=1,t=e*r,a=[],n=0;n-1&&(r.version=e.readString(2),r.uname=e.readString(32),r.gname=e.readString(32),r.devmajor=parseInt(e.readString(8)),r.devminor=parseInt(e.readString(8)),r.namePrefix=e.readString(155),r.namePrefix.length>0&&(r.name=r.namePrefix+"/"+r.name)),e.position(i),r.type){case"0":case"":r.buffer=e.readBuffer(r.size);break;case"1":break;case"2":break;case"3":break;case"4":break;case"5":break;case"6":break;case"7":break;case"g":t=!0,this._globalPaxHeader=PaxHeader.parse(e.readBuffer(r.size));break;case"x":t=!0,a=PaxHeader.parse(e.readBuffer(r.size))}void 0===r.buffer&&(r.buffer=new ArrayBuffer(0));var s=i+r.size;return r.size%512!==0&&(s+=512-r.size%512),e.position(s),t&&(r=this._readNextFile()),null!==this._globalPaxHeader&&this._globalPaxHeader.applyHeader(r),null!==a&&a.applyHeader(r),r}};'])),t})});var nt="primary",wc=Symbol("RouteTitle"),N0=class{params;constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}};function Vo(n){return new N0(n)}function xL(n,t,e){let i=e.path.split("/");if(i.length>n.length||e.pathMatch==="full"&&(t.hasChildren()||i.lengthi[s]===r)}else return n===t}function Tw(n){return n.length>0?n[n.length-1]:null}function Ks(n){return br(n)?n:Gd(n)?_i(Promise.resolve(n)):_e(n)}var kL={exact:Iw,subset:Aw},Ew={exact:ML,subset:TL,ignored:()=>!0};function pw(n,t,e){return kL[e.paths](n.root,t.root,e.matrixParams)&&Ew[e.queryParams](n.queryParams,t.queryParams)&&!(e.fragment==="exact"&&n.fragment!==t.fragment)}function ML(n,t){return Mr(n,t)}function Iw(n,t,e){if(!Da(n.segments,t.segments)||!nh(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(let i in t.children)if(!n.children[i]||!Iw(n.children[i],t.children[i],e))return!1;return!0}function TL(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>Mw(n[e],t[e]))}function Aw(n,t,e){return Dw(n,t,t.segments,e)}function Dw(n,t,e,i){if(n.segments.length>e.length){let r=n.segments.slice(0,e.length);return!(!Da(r,e)||t.hasChildren()||!nh(r,e,i))}else if(n.segments.length===e.length){if(!Da(n.segments,e)||!nh(n.segments,e,i))return!1;for(let r in t.children)if(!n.children[r]||!Aw(n.children[r],t.children[r],i))return!1;return!0}else{let r=e.slice(0,n.segments.length),s=e.slice(n.segments.length);return!Da(n.segments,r)||!nh(n.segments,r,i)||!n.children[nt]?!1:Dw(n.children[nt],t,s,i)}}function nh(n,t,e){return t.every((i,r)=>Ew[e](n[r].parameters,i.parameters))}var ns=class{root;queryParams;fragment;_queryParamMap;constructor(t=new Ct([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Vo(this.queryParams),this._queryParamMap}toString(){return AL.serialize(this)}},Ct=class{segments;children;parent=null;constructor(t,e){this.segments=t,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return rh(this)}},Aa=class{path;parameters;_parameterMap;constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap??=Vo(this.parameters),this._parameterMap}toString(){return Lw(this)}};function EL(n,t){return Da(n,t)&&n.every((e,i)=>Mr(e.parameters,t[i].parameters))}function Da(n,t){return n.length!==t.length?!1:n.every((e,i)=>e.path===t[i].path)}function IL(n,t){let e=[];return Object.entries(n.children).forEach(([i,r])=>{i===nt&&(e=e.concat(t(r,i)))}),Object.entries(n.children).forEach(([i,r])=>{i!==nt&&(e=e.concat(t(r,i)))}),e}var xc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>new Bo,providedIn:"root"})}return n})(),Bo=class{parse(t){let e=new U0(t);return new ns(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){let e=`/${lc(t.root,!0)}`,i=LL(t.queryParams),r=typeof t.fragment=="string"?`#${DL(t.fragment)}`:"";return`${e}${i}${r}`}},AL=new Bo;function rh(n){return n.segments.map(t=>Lw(t)).join("/")}function lc(n,t){if(!n.hasChildren())return rh(n);if(t){let e=n.children[nt]?lc(n.children[nt],!1):"",i=[];return Object.entries(n.children).forEach(([r,s])=>{r!==nt&&i.push(`${r}:${lc(s,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}else{let e=IL(n,(i,r)=>r===nt?[lc(n.children[nt],!1)]:[`${r}:${lc(i,!1)}`]);return Object.keys(n.children).length===1&&n.children[nt]!=null?`${rh(n)}/${e[0]}`:`${rh(n)}/(${e.join("//")})`}}function Rw(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function th(n){return Rw(n).replace(/%3B/gi,";")}function DL(n){return encodeURI(n)}function P0(n){return Rw(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function sh(n){return decodeURIComponent(n)}function gw(n){return sh(n.replace(/\+/g,"%20"))}function Lw(n){return`${P0(n.path)}${RL(n.parameters)}`}function RL(n){return Object.entries(n).map(([t,e])=>`;${P0(t)}=${P0(e)}`).join("")}function LL(n){let t=Object.entries(n).map(([e,i])=>Array.isArray(i)?i.map(r=>`${th(e)}=${th(r)}`).join("&"):`${th(e)}=${th(i)}`).filter(e=>e);return t.length?`?${t.join("&")}`:""}var OL=/^[^\/()?;#]+/;function D0(n){let t=n.match(OL);return t?t[0]:""}var NL=/^[^\/()?;=#]+/;function FL(n){let t=n.match(NL);return t?t[0]:""}var PL=/^[^=?&#]+/;function UL(n){let t=n.match(PL);return t?t[0]:""}var $L=/^[^&#]+/;function VL(n){let t=n.match($L);return t?t[0]:""}var U0=class{url;remaining;constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ct([],{}):new Ct([],this.parseChildren())}parseQueryParams(){let t={};if(this.consumeOptional("?"))do this.parseQueryParam(t);while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[nt]=new Ct(t,e)),i}parseSegment(){let t=D0(this.remaining);if(t===""&&this.peekStartsWith(";"))throw new je(4009,!1);return this.capture(t),new Aa(sh(t),this.parseMatrixParams())}parseMatrixParams(){let t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){let e=FL(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let r=D0(this.remaining);r&&(i=r,this.capture(i))}t[sh(e)]=sh(i)}parseQueryParam(t){let e=UL(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let a=VL(this.remaining);a&&(i=a,this.capture(i))}let r=gw(e),s=gw(i);if(t.hasOwnProperty(r)){let a=t[r];Array.isArray(a)||(a=[a],t[r]=a),a.push(s)}else t[r]=s}parseParens(t){let e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=D0(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new je(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):t&&(s=nt);let a=this.parseChildren();e[s]=Object.keys(a).length===1?a[nt]:new Ct([],a),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1}capture(t){if(!this.consumeOptional(t))throw new je(4011,!1)}};function Ow(n){return n.segments.length>0?new Ct([],{[nt]:n}):n}function Nw(n){let t={};for(let[i,r]of Object.entries(n.children)){let s=Nw(r);if(i===nt&&s.segments.length===0&&s.hasChildren())for(let[a,o]of Object.entries(s.children))t[a]=o;else(s.segments.length>0||s.hasChildren())&&(t[i]=s)}let e=new Ct(n.segments,t);return BL(e)}function BL(n){if(n.numberOfChildren===1&&n.children[nt]){let t=n.children[nt];return new Ct(n.segments.concat(t.segments),t.children)}return n}function Ra(n){return n instanceof ns}function zL(n,t,e=null,i=null){let r=Fw(n);return Pw(r,t,e,i)}function Fw(n){let t;function e(s){let a={};for(let l of s.children){let c=e(l);a[l.outlet]=c}let o=new Ct(s.url,a);return s===n&&(t=o),o}let i=e(n.root),r=Ow(i);return t??r}function Pw(n,t,e,i){let r=n;for(;r.parent;)r=r.parent;if(t.length===0)return R0(r,r,r,e,i);let s=HL(t);if(s.toRoot())return R0(r,r,new Ct([],{}),e,i);let a=jL(s,r,n),o=a.processChildren?dc(a.segmentGroup,a.index,s.commands):$w(a.segmentGroup,a.index,s.commands);return R0(r,a.segmentGroup,o,e,i)}function ah(n){return typeof n=="object"&&n!=null&&!n.outlets&&!n.segmentPath}function fc(n){return typeof n=="object"&&n!=null&&n.outlets}function R0(n,t,e,i,r){let s={};i&&Object.entries(i).forEach(([l,c])=>{s[l]=Array.isArray(c)?c.map(u=>`${u}`):`${c}`});let a;n===t?a=e:a=Uw(n,t,e);let o=Ow(Nw(a));return new ns(o,s,r)}function Uw(n,t,e){let i={};return Object.entries(n.children).forEach(([r,s])=>{s===t?i[r]=e:i[r]=Uw(s,t,e)}),new Ct(n.segments,i)}var oh=class{isAbsolute;numberOfDoubleDots;commands;constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&ah(i[0]))throw new je(4003,!1);let r=i.find(fc);if(r&&r!==Tw(i))throw new je(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function HL(n){if(typeof n[0]=="string"&&n.length===1&&n[0]==="/")return new oh(!0,0,n);let t=0,e=!1,i=n.reduce((r,s,a)=>{if(typeof s=="object"&&s!=null){if(s.outlets){let o={};return Object.entries(s.outlets).forEach(([l,c])=>{o[l]=typeof c=="string"?c.split("/"):c}),[...r,{outlets:o}]}if(s.segmentPath)return[...r,s.segmentPath]}return typeof s!="string"?[...r,s]:a===0?(s.split("/").forEach((o,l)=>{l==0&&o==="."||(l==0&&o===""?e=!0:o===".."?t++:o!=""&&r.push(o))}),r):[...r,s]},[]);return new oh(e,t,i)}var Po=class{segmentGroup;processChildren;index;constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}};function jL(n,t,e){if(n.isAbsolute)return new Po(t,!0,0);if(!e)return new Po(t,!1,NaN);if(e.parent===null)return new Po(e,!0,0);let i=ah(n.commands[0])?0:1,r=e.segments.length-1+i;return WL(e,r,n.numberOfDoubleDots)}function WL(n,t,e){let i=n,r=t,s=e;for(;s>r;){if(s-=r,i=i.parent,!i)throw new je(4005,!1);r=i.segments.length}return new Po(i,!1,r-s)}function qL(n){return fc(n[0])?n[0].outlets:{[nt]:n}}function $w(n,t,e){if(n??=new Ct([],{}),n.segments.length===0&&n.hasChildren())return dc(n,t,e);let i=GL(n,t,e),r=e.slice(i.commandIndex);if(i.match&&i.pathIndexs!==nt)&&n.children[nt]&&n.numberOfChildren===1&&n.children[nt].segments.length===0){let s=dc(n.children[nt],t,e);return new Ct(n.segments,s.children)}return Object.entries(i).forEach(([s,a])=>{typeof a=="string"&&(a=[a]),a!==null&&(r[s]=$w(n.children[s],t,a))}),Object.entries(n.children).forEach(([s,a])=>{i[s]===void 0&&(r[s]=a)}),new Ct(n.segments,r)}}function GL(n,t,e){let i=0,r=t,s={match:!1,pathIndex:0,commandIndex:0};for(;r=e.length)return s;let a=n.segments[r],o=e[i];if(fc(o))break;let l=`${o}`,c=i0&&l===void 0)break;if(l&&c&&typeof c=="object"&&c.outlets===void 0){if(!vw(l,c,a))return s;i+=2}else{if(!vw(l,{},a))return s;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}function $0(n,t,e){let i=n.segments.slice(0,t),r=0;for(;r{typeof i=="string"&&(i=[i]),i!==null&&(t[e]=$0(new Ct([],{}),0,i))}),t}function _w(n){let t={};return Object.entries(n).forEach(([e,i])=>t[e]=`${i}`),t}function vw(n,t,e){return n==e.path&&Mr(t,e.parameters)}var hc="imperative",ci=function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n}(ci||{}),Nn=class{id;url;constructor(t,e){this.id=t,this.url=e}},zo=class extends Nn{type=ci.NavigationStart;navigationTrigger;restoredState;constructor(t,e,i="imperative",r=null){super(t,e),this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},Tr=class extends Nn{urlAfterRedirects;type=ci.NavigationEnd;constructor(t,e,i){super(t,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},fn=function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n}(fn||{}),lh=function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n}(lh||{}),is=class extends Nn{reason;code;type=ci.NavigationCancel;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},qs=class extends Nn{reason;code;type=ci.NavigationSkipped;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}},pc=class extends Nn{error;target;type=ci.NavigationError;constructor(t,e,i,r){super(t,e),this.error=i,this.target=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},ch=class extends Nn{urlAfterRedirects;state;type=ci.RoutesRecognized;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},V0=class extends Nn{urlAfterRedirects;state;type=ci.GuardsCheckStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},B0=class extends Nn{urlAfterRedirects;state;shouldActivate;type=ci.GuardsCheckEnd;constructor(t,e,i,r,s){super(t,e),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=s}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},z0=class extends Nn{urlAfterRedirects;state;type=ci.ResolveStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},H0=class extends Nn{urlAfterRedirects;state;type=ci.ResolveEnd;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},j0=class{route;type=ci.RouteConfigLoadStart;constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},W0=class{route;type=ci.RouteConfigLoadEnd;constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},q0=class{snapshot;type=ci.ChildActivationStart;constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},G0=class{snapshot;type=ci.ChildActivationEnd;constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},K0=class{snapshot;type=ci.ActivationStart;constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Y0=class{snapshot;type=ci.ActivationEnd;constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},uh=class{routerEvent;position;anchor;type=ci.Scroll;constructor(t,e,i){this.routerEvent=t,this.position=e,this.anchor=i}toString(){let t=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${t}')`}},gc=class{},Ho=class{url;navigationBehaviorOptions;constructor(t,e){this.url=t,this.navigationBehaviorOptions=e}};function YL(n,t){return n.providers&&!n._injector&&(n._injector=M0(n.providers,t,`Route: ${n.path}`)),n._injector??t}function rr(n){return n.outlet||nt}function QL(n,t){let e=n.filter(i=>rr(i)===t);return e.push(...n.filter(i=>rr(i)!==t)),e}function Sc(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){let e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}var Q0=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Sc(this.route?.snapshot)??this.rootInjector}constructor(t){this.rootInjector=t,this.children=new kc(this.rootInjector)}},kc=(()=>{class n{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}onChildOutletCreated(e,i){let r=this.getOrCreateContext(e);r.outlet=i,this.contexts.set(e,r)}onChildOutletDestroyed(e){let i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new Q0(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||n)(Oe(Zr))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),dh=class{_root;constructor(t){this._root=t}get root(){return this._root.value}parent(t){let e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){let e=Z0(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){let e=Z0(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){let e=X0(t,this._root);return e.length<2?[]:e[e.length-2].children.map(r=>r.value).filter(r=>r!==t)}pathFromRoot(t){return X0(t,this._root).map(e=>e.value)}};function Z0(n,t){if(n===t.value)return t;for(let e of t.children){let i=Z0(n,e);if(i)return i}return null}function X0(n,t){if(n===t.value)return[t];for(let e of t.children){let i=X0(n,e);if(i.length)return i.unshift(t),i}return[]}var mn=class{value;children;constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}};function Fo(n){let t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}var hh=class extends dh{snapshot;constructor(t,e){super(t),this.snapshot=e,og(this,t)}toString(){return this.snapshot.toString()}};function Vw(n){let t=ZL(n),e=new gi([new Aa("",{})]),i=new gi({}),r=new gi({}),s=new gi({}),a=new gi(""),o=new La(e,i,s,a,r,nt,n,t.root);return o.snapshot=t.root,new hh(new mn(o,[]),t)}function ZL(n){let t={},e={},i={},r="",s=new Uo([],t,i,r,e,nt,n,null,{});return new fh("",new mn(s,[]))}var La=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(t,e,i,r,s,a,o,l){this.urlSubject=t,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=s,this.outlet=a,this.component=o,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(Le(c=>c[wc]))??_e(void 0),this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(Le(t=>Vo(t))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Le(t=>Vo(t))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function mh(n,t,e="emptyOnly"){let i,{routeConfig:r}=n;return t!==null&&(e==="always"||r?.path===""||!t.component&&!t.routeConfig?.loadComponent)?i={params:j(j({},t.params),n.params),data:j(j({},t.data),n.data),resolve:j(j(j(j({},n.data),t.data),r?.data),n._resolvedData)}:i={params:j({},n.params),data:j({},n.data),resolve:j(j({},n.data),n._resolvedData??{})},r&&zw(r)&&(i.resolve[wc]=r.title),i}var Uo=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[wc]}constructor(t,e,i,r,s,a,o,l,c){this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=a,this.component=o,this.routeConfig=l,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=Vo(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Vo(this.queryParams),this._queryParamMap}toString(){let t=this.url.map(i=>i.toString()).join("/"),e=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${t}', path:'${e}')`}},fh=class extends dh{url;constructor(t,e){super(e),this.url=t,og(this,e)}toString(){return Bw(this._root)}};function og(n,t){t.value._routerState=n,t.children.forEach(e=>og(n,e))}function Bw(n){let t=n.children.length>0?` { ${n.children.map(Bw).join(", ")} } `:"";return`${n.value}${t}`}function L0(n){if(n.snapshot){let t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Mr(t.queryParams,e.queryParams)||n.queryParamsSubject.next(e.queryParams),t.fragment!==e.fragment&&n.fragmentSubject.next(e.fragment),Mr(t.params,e.params)||n.paramsSubject.next(e.params),SL(t.url,e.url)||n.urlSubject.next(e.url),Mr(t.data,e.data)||n.dataSubject.next(e.data)}else n.snapshot=n._futureSnapshot,n.dataSubject.next(n._futureSnapshot.data)}function J0(n,t){let e=Mr(n.params,t.params)&&EL(n.url,t.url),i=!n.parent!=!t.parent;return e&&!i&&(!n.parent||J0(n.parent,t.parent))}function zw(n){return typeof n.title=="string"||n.title===null}var XL=new ee(""),lg=(()=>{class n{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=nt;activateEvents=new oe;deactivateEvents=new oe;attachEvents=new oe;detachEvents=new oe;routerOutletData=OC(void 0);parentContexts=L(kc);location=L(bi);changeDetector=L(Xe);inputBinder=L(bh,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(e){if(e.name){let{firstChange:i,previousValue:r}=e.name;if(i)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new je(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new je(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new je(4012,!1);this.location.detach();let e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){let e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new je(4013,!1);this._activatedRoute=e;let r=this.location,a=e.snapshot.component,o=this.parentContexts.getOrCreateContext(this.name).children,l=new eg(e,o,r.injector,this.routerOutletData);this.activated=r.createComponent(a,{index:r.length,injector:l,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[vt]})}return n})(),eg=class n{route;childContexts;parent;outletData;__ngOutletInjector(t){return new n(this.route,this.childContexts,t,this.outletData)}constructor(t,e,i,r){this.route=t,this.childContexts=e,this.parent=i,this.outletData=r}get(t,e){return t===La?this.route:t===kc?this.childContexts:t===XL?this.outletData:this.parent.get(t,e)}},bh=new ee(""),bw=(()=>{class n{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){let{activatedRoute:i}=e,r=yr([i.queryParams,i.params,i.data]).pipe(Dt(([s,a,o],l)=>(o=j(j(j({},s),a),o),l===0?_e(o):Promise.resolve(o)))).subscribe(s=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(e);return}let a=QC(i.component);if(!a){this.unsubscribeFromRouteData(e);return}for(let{templateName:o}of a.inputs)e.activatedComponentRef.setInput(o,s[o])});this.outletDataSubscriptions.set(e,r)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function JL(n,t,e){let i=_c(n,t._root,e?e._root:void 0);return new hh(i,t)}function _c(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){let i=e.value;i._futureSnapshot=t.value;let r=eO(n,t,e);return new mn(i,r)}else{if(n.shouldAttach(t.value)){let s=n.retrieve(t.value);if(s!==null){let a=s.route;return a.value._futureSnapshot=t.value,a.children=t.children.map(o=>_c(n,o)),a}}let i=tO(t.value),r=t.children.map(s=>_c(n,s));return new mn(i,r)}}function eO(n,t,e){return t.children.map(i=>{for(let r of e.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return _c(n,i,r);return _c(n,i)})}function tO(n){return new La(new gi(n.url),new gi(n.params),new gi(n.queryParams),new gi(n.fragment),new gi(n.data),n.outlet,n.component,n)}var vc=class{redirectTo;navigationBehaviorOptions;constructor(t,e){this.redirectTo=t,this.navigationBehaviorOptions=e}},Hw="ngNavigationCancelingError";function ph(n,t){let{redirectTo:e,navigationBehaviorOptions:i}=Ra(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,r=jw(!1,fn.Redirect);return r.url=e,r.navigationBehaviorOptions=i,r}function jw(n,t){let e=new Error(`NavigationCancelingError: ${n||""}`);return e[Hw]=!0,e.cancellationCode=t,e}function iO(n){return Ww(n)&&Ra(n.url)}function Ww(n){return!!n&&n[Hw]}var nO=(n,t,e,i)=>Le(r=>(new tg(t,r.targetRouterState,r.currentRouterState,e,i).activate(n),r)),tg=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(t,e,i,r,s){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=s}activate(t){let e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),L0(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){let r=Fo(e);t.children.forEach(s=>{let a=s.value.outlet;this.deactivateRoutes(s,r[a],i),delete r[a]}),Object.values(r).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(t,e,i){let r=t.value,s=e?e.value:null;if(r===s)if(r.component){let a=i.getContext(r.outlet);a&&this.deactivateChildRoutes(t,e,a.children)}else this.deactivateChildRoutes(t,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Fo(t);for(let a of Object.values(s))this.deactivateRouteAndItsChildren(a,r);if(i&&i.outlet){let a=i.outlet.detach(),o=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:a,route:t,contexts:o})}}deactivateRouteAndOutlet(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Fo(t);for(let a of Object.values(s))this.deactivateRouteAndItsChildren(a,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(t,e,i){let r=Fo(e);t.children.forEach(s=>{this.activateRoutes(s,r[s.value.outlet],i),this.forwardEvent(new Y0(s.value.snapshot))}),t.children.length&&this.forwardEvent(new G0(t.value.snapshot))}activateRoutes(t,e,i){let r=t.value,s=e?e.value:null;if(L0(r),r===s)if(r.component){let a=i.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,a.children)}else this.activateChildRoutes(t,e,i);else if(r.component){let a=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){let o=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),a.children.onOutletReAttached(o.contexts),a.attachRef=o.componentRef,a.route=o.route.value,a.outlet&&a.outlet.attach(o.componentRef,o.route.value),L0(o.route.value),this.activateChildRoutes(t,null,a.children)}else a.attachRef=null,a.route=r,a.outlet&&a.outlet.activateWith(r,a.injector),this.activateChildRoutes(t,null,a.children)}else this.activateChildRoutes(t,null,i)}},gh=class{path;route;constructor(t){this.path=t,this.route=this.path[this.path.length-1]}},$o=class{component;route;constructor(t,e){this.component=t,this.route=e}};function rO(n,t,e){let i=n._root,r=t?t._root:null;return cc(i,r,e,[i.value])}function sO(n){let t=n.routeConfig?n.routeConfig.canActivateChild:null;return!t||t.length===0?null:{node:n,guards:t}}function Wo(n,t){let e=Symbol(),i=t.get(n,e);return i===e?typeof n=="function"&&!DC(n)?n:t.get(n):i}function cc(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let s=Fo(t);return n.children.forEach(a=>{aO(a,s[a.value.outlet],e,i.concat([a.value]),r),delete s[a.value.outlet]}),Object.entries(s).forEach(([a,o])=>mc(o,e.getContext(a),r)),r}function aO(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let s=n.value,a=t?t.value:null,o=e?e.getContext(n.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){let l=oO(a,s,s.routeConfig.runGuardsAndResolvers);l?r.canActivateChecks.push(new gh(i)):(s.data=a.data,s._resolvedData=a._resolvedData),s.component?cc(n,t,o?o.children:null,i,r):cc(n,t,e,i,r),l&&o&&o.outlet&&o.outlet.isActivated&&r.canDeactivateChecks.push(new $o(o.outlet.component,a))}else a&&mc(t,o,r),r.canActivateChecks.push(new gh(i)),s.component?cc(n,null,o?o.children:null,i,r):cc(n,null,e,i,r);return r}function oO(n,t,e){if(typeof e=="function")return e(n,t);switch(e){case"pathParamsChange":return!Da(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Da(n.url,t.url)||!Mr(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!J0(n,t)||!Mr(n.queryParams,t.queryParams);case"paramsChange":default:return!J0(n,t)}}function mc(n,t,e){let i=Fo(n),r=n.value;Object.entries(i).forEach(([s,a])=>{r.component?t?mc(a,t.children.getContext(s),e):mc(a,null,e):mc(a,t,e)}),r.component?t&&t.outlet&&t.outlet.isActivated?e.canDeactivateChecks.push(new $o(t.outlet.component,r)):e.canDeactivateChecks.push(new $o(null,r)):e.canDeactivateChecks.push(new $o(null,r))}function Mc(n){return typeof n=="function"}function lO(n){return typeof n=="boolean"}function cO(n){return n&&Mc(n.canLoad)}function uO(n){return n&&Mc(n.canActivate)}function dO(n){return n&&Mc(n.canActivateChild)}function hO(n){return n&&Mc(n.canDeactivate)}function mO(n){return n&&Mc(n.canMatch)}function qw(n){return n instanceof SC||n?.name==="EmptyError"}var ih=Symbol("INITIAL_VALUE");function jo(){return Dt(n=>yr(n.map(t=>t.pipe(jt(1),Gt(ih)))).pipe(Le(t=>{for(let e of t)if(e!==!0){if(e===ih)return ih;if(e===!1||fO(e))return e}return!0}),st(t=>t!==ih),jt(1)))}function fO(n){return Ra(n)||n instanceof vc}function pO(n,t){return Pi(e=>{let{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return a.length===0&&s.length===0?_e($e(j({},e),{guardsResult:!0})):gO(a,i,r,n).pipe(Pi(o=>o&&lO(o)?_O(i,s,n,t):_e(o)),Le(o=>$e(j({},e),{guardsResult:o})))})}function gO(n,t,e,i){return _i(n).pipe(Pi(r=>wO(r.component,r.route,e,t,i)),hn(r=>r!==!0,!0))}function _O(n,t,e,i){return _i(t).pipe(Fs(r=>Sa(bO(r.route.parent,i),vO(r.route,i),CO(n,r.path,e),yO(n,r.route,e))),hn(r=>r!==!0,!0))}function vO(n,t){return n!==null&&t&&t(new K0(n)),_e(!0)}function bO(n,t){return n!==null&&t&&t(new q0(n)),_e(!0)}function yO(n,t,e){let i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||i.length===0)return _e(!0);let r=i.map(s=>Ns(()=>{let a=Sc(t)??e,o=Wo(s,a),l=uO(o)?o.canActivate(t,n):Cr(a,()=>o(t,n));return Ks(l).pipe(hn())}));return _e(r).pipe(jo())}function CO(n,t,e){let i=t[t.length-1],s=t.slice(0,t.length-1).reverse().map(a=>sO(a)).filter(a=>a!==null).map(a=>Ns(()=>{let o=a.guards.map(l=>{let c=Sc(a.node)??e,u=Wo(l,c),d=dO(u)?u.canActivateChild(i,n):Cr(c,()=>u(i,n));return Ks(d).pipe(hn())});return _e(o).pipe(jo())}));return _e(s).pipe(jo())}function wO(n,t,e,i,r){let s=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!s||s.length===0)return _e(!0);let a=s.map(o=>{let l=Sc(t)??r,c=Wo(o,l),u=hO(c)?c.canDeactivate(n,t,e,i):Cr(l,()=>c(n,t,e,i));return Ks(u).pipe(hn())});return _e(a).pipe(jo())}function xO(n,t,e,i){let r=t.canLoad;if(r===void 0||r.length===0)return _e(!0);let s=r.map(a=>{let o=Wo(a,n),l=cO(o)?o.canLoad(t,e):Cr(n,()=>o(t,e));return Ks(l)});return _e(s).pipe(jo(),Gw(i))}function Gw(n){return xC(Et(t=>{if(typeof t!="boolean")throw ph(n,t)}),Le(t=>t===!0))}function SO(n,t,e,i){let r=t.canMatch;if(!r||r.length===0)return _e(!0);let s=r.map(a=>{let o=Wo(a,n),l=mO(o)?o.canMatch(t,e):Cr(n,()=>o(t,e));return Ks(l)});return _e(s).pipe(jo(),Gw(i))}var bc=class{segmentGroup;constructor(t){this.segmentGroup=t||null}},yc=class extends Error{urlTree;constructor(t){super(),this.urlTree=t}};function No(n){return er(new bc(n))}function kO(n){return er(new je(4e3,!1))}function MO(n){return er(jw(!1,fn.GuardRejected))}var ig=class{urlSerializer;urlTree;constructor(t,e){this.urlSerializer=t,this.urlTree=e}lineralizeSegments(t,e){let i=[],r=e.root;for(;;){if(i=i.concat(r.segments),r.numberOfChildren===0)return _e(i);if(r.numberOfChildren>1||!r.children[nt])return kO(`${t.redirectTo}`);r=r.children[nt]}}applyRedirectCommands(t,e,i,r,s){if(typeof e!="string"){let o=e,{queryParams:l,fragment:c,routeConfig:u,url:d,outlet:h,params:m,data:f,title:g}=r,v=Cr(s,()=>o({params:m,data:f,queryParams:l,fragment:c,routeConfig:u,url:d,outlet:h,title:g}));if(v instanceof ns)throw new yc(v);e=v}let a=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i);if(e[0]==="/")throw new yc(a);return a}applyRedirectCreateUrlTree(t,e,i,r){let s=this.createSegmentGroup(t,e.root,i,r);return new ns(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){let i={};return Object.entries(t).forEach(([r,s])=>{if(typeof s=="string"&&s[0]===":"){let o=s.substring(1);i[r]=e[o]}else i[r]=s}),i}createSegmentGroup(t,e,i,r){let s=this.createSegments(t,e.segments,i,r),a={};return Object.entries(e.children).forEach(([o,l])=>{a[o]=this.createSegmentGroup(t,l,i,r)}),new Ct(s,a)}createSegments(t,e,i,r){return e.map(s=>s.path[0]===":"?this.findPosParam(t,s,r):this.findOrReturn(s,i))}findPosParam(t,e,i){let r=i[e.path.substring(1)];if(!r)throw new je(4001,!1);return r}findOrReturn(t,e){let i=0;for(let r of e){if(r.path===t.path)return e.splice(i),r;i++}return t}},ng={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function TO(n,t,e,i,r){let s=Kw(n,t,e);return s.matched?(i=YL(t,i),SO(i,t,e,r).pipe(Le(a=>a===!0?s:j({},ng)))):_e(s)}function Kw(n,t,e){if(t.path==="**")return EO(e);if(t.path==="")return t.pathMatch==="full"&&(n.hasChildren()||e.length>0)?j({},ng):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};let r=(t.matcher||xL)(e,n,t);if(!r)return j({},ng);let s={};Object.entries(r.posParams??{}).forEach(([o,l])=>{s[o]=l.path});let a=r.consumed.length>0?j(j({},s),r.consumed[r.consumed.length-1].parameters):s;return{matched:!0,consumedSegments:r.consumed,remainingSegments:e.slice(r.consumed.length),parameters:a,positionalParamSegments:r.posParams??{}}}function EO(n){return{matched:!0,parameters:n.length>0?Tw(n).parameters:{},consumedSegments:n,remainingSegments:[],positionalParamSegments:{}}}function yw(n,t,e,i){return e.length>0&&DO(n,e,i)?{segmentGroup:new Ct(t,AO(i,new Ct(e,n.children))),slicedSegments:[]}:e.length===0&&RO(n,e,i)?{segmentGroup:new Ct(n.segments,IO(n,e,i,n.children)),slicedSegments:e}:{segmentGroup:new Ct(n.segments,n.children),slicedSegments:e}}function IO(n,t,e,i){let r={};for(let s of e)if(yh(n,t,s)&&!i[rr(s)]){let a=new Ct([],{});r[rr(s)]=a}return j(j({},i),r)}function AO(n,t){let e={};e[nt]=t;for(let i of n)if(i.path===""&&rr(i)!==nt){let r=new Ct([],{});e[rr(i)]=r}return e}function DO(n,t,e){return e.some(i=>yh(n,t,i)&&rr(i)!==nt)}function RO(n,t,e){return e.some(i=>yh(n,t,i))}function yh(n,t,e){return(n.hasChildren()||t.length>0)&&e.pathMatch==="full"?!1:e.path===""}function LO(n,t,e){return t.length===0&&!n.children[e]}var rg=class{};function OO(n,t,e,i,r,s,a="emptyOnly"){return new sg(n,t,e,i,r,a,s).recognize()}var NO=31,sg=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(t,e,i,r,s,a,o){this.injector=t,this.configLoader=e,this.rootComponentType=i,this.config=r,this.urlTree=s,this.paramsInheritanceStrategy=a,this.urlSerializer=o,this.applyRedirects=new ig(this.urlSerializer,this.urlTree)}noMatchError(t){return new je(4002,`'${t.segmentGroup}'`)}recognize(){let t=yw(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(t).pipe(Le(({children:e,rootSnapshot:i})=>{let r=new mn(i,e),s=new fh("",r),a=zL(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(a),{state:s,tree:a}}))}match(t){let e=new Uo([],Object.freeze({}),Object.freeze(j({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),nt,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,t,nt,e).pipe(Le(i=>({children:i,rootSnapshot:e})),Zi(i=>{if(i instanceof yc)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof bc?this.noMatchError(i):i}))}processSegmentGroup(t,e,i,r,s){return i.segments.length===0&&i.hasChildren()?this.processChildren(t,e,i,s):this.processSegment(t,e,i,i.segments,r,!0,s).pipe(Le(a=>a instanceof mn?[a]:[]))}processChildren(t,e,i,r){let s=[];for(let a of Object.keys(i.children))a==="primary"?s.unshift(a):s.push(a);return _i(s).pipe(Fs(a=>{let o=i.children[a],l=QL(e,a);return this.processSegmentGroup(t,l,o,a,r)}),EC((a,o)=>(a.push(...o),a)),y0(null),TC(),Pi(a=>{if(a===null)return No(i);let o=Yw(a);return FO(o),_e(o)}))}processSegment(t,e,i,r,s,a,o){return _i(e).pipe(Fs(l=>this.processSegmentAgainstRoute(l._injector??t,e,l,i,r,s,a,o).pipe(Zi(c=>{if(c instanceof bc)return _e(null);throw c}))),hn(l=>!!l),Zi(l=>{if(qw(l))return LO(i,r,s)?_e(new rg):No(i);throw l}))}processSegmentAgainstRoute(t,e,i,r,s,a,o,l){return rr(i)!==a&&(a===nt||!yh(r,s,i))?No(r):i.redirectTo===void 0?this.matchSegmentAgainstRoute(t,r,i,s,a,l):this.allowRedirects&&o?this.expandSegmentAgainstRouteUsingRedirect(t,r,e,i,s,a,l):No(r)}expandSegmentAgainstRouteUsingRedirect(t,e,i,r,s,a,o){let{matched:l,parameters:c,consumedSegments:u,positionalParamSegments:d,remainingSegments:h}=Kw(e,r,s);if(!l)return No(e);typeof r.redirectTo=="string"&&r.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>NO&&(this.allowRedirects=!1));let m=new Uo(s,c,Object.freeze(j({},this.urlTree.queryParams)),this.urlTree.fragment,Cw(r),rr(r),r.component??r._loadedComponent??null,r,ww(r)),f=mh(m,o,this.paramsInheritanceStrategy);m.params=Object.freeze(f.params),m.data=Object.freeze(f.data);let g=this.applyRedirects.applyRedirectCommands(u,r.redirectTo,d,m,t);return this.applyRedirects.lineralizeSegments(r,g).pipe(Pi(v=>this.processSegment(t,i,e,v.concat(h),a,!1,o)))}matchSegmentAgainstRoute(t,e,i,r,s,a){let o=TO(e,i,r,t,this.urlSerializer);return i.path==="**"&&(e.children={}),o.pipe(Dt(l=>l.matched?(t=i._injector??t,this.getChildConfig(t,i,r).pipe(Dt(({routes:c})=>{let u=i._loadedInjector??t,{parameters:d,consumedSegments:h,remainingSegments:m}=l,f=new Uo(h,d,Object.freeze(j({},this.urlTree.queryParams)),this.urlTree.fragment,Cw(i),rr(i),i.component??i._loadedComponent??null,i,ww(i)),g=mh(f,a,this.paramsInheritanceStrategy);f.params=Object.freeze(g.params),f.data=Object.freeze(g.data);let{segmentGroup:v,slicedSegments:w}=yw(e,h,m,c);if(w.length===0&&v.hasChildren())return this.processChildren(u,c,v,f).pipe(Le(k=>new mn(f,k)));if(c.length===0&&w.length===0)return _e(new mn(f,[]));let C=rr(i)===s;return this.processSegment(u,c,v,w,C?nt:s,!0,f).pipe(Le(k=>new mn(f,k instanceof mn?[k]:[])))}))):No(e)))}getChildConfig(t,e,i){return e.children?_e({routes:e.children,injector:t}):e.loadChildren?e._loadedRoutes!==void 0?_e({routes:e._loadedRoutes,injector:e._loadedInjector}):xO(t,e,i,this.urlSerializer).pipe(Pi(r=>r?this.configLoader.loadChildren(t,e).pipe(Et(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):MO(e))):_e({routes:[],injector:t})}};function FO(n){n.sort((t,e)=>t.value.outlet===nt?-1:e.value.outlet===nt?1:t.value.outlet.localeCompare(e.value.outlet))}function PO(n){let t=n.value.routeConfig;return t&&t.path===""}function Yw(n){let t=[],e=new Set;for(let i of n){if(!PO(i)){t.push(i);continue}let r=t.find(s=>i.value.routeConfig===s.value.routeConfig);r!==void 0?(r.children.push(...i.children),e.add(r)):t.push(i)}for(let i of e){let r=Yw(i.children);t.push(new mn(i.value,r))}return t.filter(i=>!e.has(i))}function Cw(n){return n.data||{}}function ww(n){return n.resolve||{}}function UO(n,t,e,i,r,s){return Pi(a=>OO(n,t,e,i,a.extractedUrl,r,s).pipe(Le(({state:o,tree:l})=>$e(j({},a),{targetSnapshot:o,urlAfterRedirects:l}))))}function $O(n,t){return Pi(e=>{let{targetSnapshot:i,guards:{canActivateChecks:r}}=e;if(!r.length)return _e(e);let s=new Set(r.map(l=>l.route)),a=new Set;for(let l of s)if(!a.has(l))for(let c of Qw(l))a.add(c);let o=0;return _i(a).pipe(Fs(l=>s.has(l)?VO(l,i,n,t):(l.data=mh(l,l.parent,n).resolve,_e(void 0))),Et(()=>o++),C0(1),Pi(l=>o===a.size?_e(e):In))})}function Qw(n){let t=n.children.map(e=>Qw(e)).flat();return[n,...t]}function VO(n,t,e,i){let r=n.routeConfig,s=n._resolve;return r?.title!==void 0&&!zw(r)&&(s[wc]=r.title),BO(s,n,t,i).pipe(Le(a=>(n._resolvedData=a,n.data=mh(n,n.parent,e).resolve,null)))}function BO(n,t,e,i){let r=F0(n);if(r.length===0)return _e({});let s={};return _i(r).pipe(Pi(a=>zO(n[a],t,e,i).pipe(hn(),Et(o=>{if(o instanceof vc)throw ph(new Bo,o);s[a]=o}))),C0(1),Bd(s),Zi(a=>qw(a)?In:er(a)))}function zO(n,t,e,i){let r=Sc(t)??i,s=Wo(n,r),a=s.resolve?s.resolve(t,e):Cr(r,()=>s(t,e));return Ks(a)}function O0(n){return Dt(t=>{let e=n(t);return e?_i(e).pipe(Le(()=>t)):_e(t)})}var Zw=(()=>{class n{buildTitle(e){let i,r=e.root;for(;r!==void 0;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(s=>s.outlet===nt);return i}getResolvedTitleForRoute(e){return e.data[wc]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>L(HO),providedIn:"root"})}return n})(),HO=(()=>{class n extends Zw{title;constructor(e){super(),this.title=e}updateTitle(e){let i=this.buildTitle(e);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||n)(Oe(uw))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Tc=new ee("",{providedIn:"root",factory:()=>({})}),jO=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],decls:1,vars:0,template:function(i,r){i&1&&ne(0,"router-outlet")},dependencies:[lg],encapsulation:2})}return n})();function cg(n){let t=n.children&&n.children.map(cg),e=t?$e(j({},n),{children:t}):j({},n);return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==nt&&(e.component=jO),e}var _h=new ee(""),ug=(()=>{class n{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=L(Zd);loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return _e(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);let i=Ks(e.loadComponent()).pipe(Le(Xw),Et(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),Io(()=>{this.componentLoaders.delete(e)})),r=new Ud(i,()=>new me).pipe(v0());return this.componentLoaders.set(e,r),r}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return _e({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let s=WO(i,this.compiler,e,this.onLoadEndListener).pipe(Io(()=>{this.childrenLoaders.delete(i)})),a=new Ud(s,()=>new me).pipe(v0());return this.childrenLoaders.set(i,a),a}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function WO(n,t,e,i){return Ks(n.loadChildren()).pipe(Le(Xw),Pi(r=>r instanceof $C||Array.isArray(r)?_e(r):_i(t.compileModuleAsync(r))),Le(r=>{i&&i(n);let s,a,o=!1;return Array.isArray(r)?(a=r,o=!0):(s=r.create(e).injector,a=s.get(_h,[],{optional:!0,self:!0}).flat()),{routes:a.map(cg),injector:s}}))}function qO(n){return n&&typeof n=="object"&&"default"in n}function Xw(n){return qO(n)?n.default:n}var dg=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>L(GO),providedIn:"root"})}return n})(),GO=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Jw=new ee(""),ex=new ee("");function KO(n,t,e){let i=n.get(ex),r=n.get(it);return n.get(Ne).runOutsideAngular(()=>{if(!r.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let s,a=new Promise(c=>{s=c}),o=r.startViewTransition(()=>(s(),YO(n))),{onViewTransitionCreated:l}=i;return l&&Cr(n,()=>l({transition:o,from:t,to:e})),a})}function YO(n){return new Promise(t=>{vi({read:()=>setTimeout(t)},{injector:n})})}var tx=new ee(""),hg=(()=>{class n{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new me;transitionAbortSubject=new me;configLoader=L(ug);environmentInjector=L(Zr);urlSerializer=L(xc);rootContexts=L(kc);location=L(Ia);inputBindingEnabled=L(bh,{optional:!0})!==null;titleStrategy=L(Zw);options=L(Tc,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=L(dg);createViewTransition=L(Jw,{optional:!0});navigationErrorHandler=L(tx,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>_e(void 0);rootComponentType=null;constructor(){let e=r=>this.events.next(new j0(r)),i=r=>this.events.next(new W0(r));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=e}complete(){this.transitions?.complete()}handleNavigationRequest(e){let i=++this.navigationId;this.transitions?.next($e(j(j({},this.transitions.value),e),{id:i}))}setupNavigations(e,i,r){return this.transitions=new gi({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:()=>{},reject:()=>{},promise:Promise.resolve(!0),source:hc,restoredState:null,currentSnapshot:r.snapshot,targetSnapshot:null,currentRouterState:r,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(st(s=>s.id!==0),Le(s=>$e(j({},s),{extractedUrl:this.urlHandlingStrategy.extract(s.rawUrl)})),Dt(s=>{let a=!1,o=!1;return _e(s).pipe(Dt(l=>{if(this.navigationId>s.id)return this.cancelNavigationTransition(s,"",fn.SupersededByNewNavigation),In;this.currentTransition=s,this.currentNavigation={id:l.id,initialUrl:l.rawUrl,extractedUrl:l.extractedUrl,targetBrowserUrl:typeof l.extras.browserUrl=="string"?this.urlSerializer.parse(l.extras.browserUrl):l.extras.browserUrl,trigger:l.source,extras:l.extras,previousNavigation:this.lastSuccessfulNavigation?$e(j({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let c=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),u=l.extras.onSameUrlNavigation??e.onSameUrlNavigation;if(!c&&u!=="reload"){let d="";return this.events.next(new qs(l.id,this.urlSerializer.serialize(l.rawUrl),d,lh.IgnoredSameUrlNavigation)),l.resolve(!1),In}if(this.urlHandlingStrategy.shouldProcessUrl(l.rawUrl))return _e(l).pipe(Dt(d=>{let h=this.transitions?.getValue();return this.events.next(new zo(d.id,this.urlSerializer.serialize(d.extractedUrl),d.source,d.restoredState)),h!==this.transitions?.getValue()?In:Promise.resolve(d)}),UO(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),Et(d=>{s.targetSnapshot=d.targetSnapshot,s.urlAfterRedirects=d.urlAfterRedirects,this.currentNavigation=$e(j({},this.currentNavigation),{finalUrl:d.urlAfterRedirects});let h=new ch(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(h)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(l.currentRawUrl)){let{id:d,extractedUrl:h,source:m,restoredState:f,extras:g}=l,v=new zo(d,this.urlSerializer.serialize(h),m,f);this.events.next(v);let w=Vw(this.rootComponentType).snapshot;return this.currentTransition=s=$e(j({},l),{targetSnapshot:w,urlAfterRedirects:h,extras:$e(j({},g),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=h,_e(s)}else{let d="";return this.events.next(new qs(l.id,this.urlSerializer.serialize(l.extractedUrl),d,lh.IgnoredByUrlHandlingStrategy)),l.resolve(!1),In}}),Et(l=>{let c=new V0(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(c)}),Le(l=>(this.currentTransition=s=$e(j({},l),{guards:rO(l.targetSnapshot,l.currentSnapshot,this.rootContexts)}),s)),pO(this.environmentInjector,l=>this.events.next(l)),Et(l=>{if(s.guardsResult=l.guardsResult,l.guardsResult&&typeof l.guardsResult!="boolean")throw ph(this.urlSerializer,l.guardsResult);let c=new B0(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot,!!l.guardsResult);this.events.next(c)}),st(l=>l.guardsResult?!0:(this.cancelNavigationTransition(l,"",fn.GuardRejected),!1)),O0(l=>{if(l.guards.canActivateChecks.length)return _e(l).pipe(Et(c=>{let u=new z0(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),Dt(c=>{let u=!1;return _e(c).pipe($O(this.paramsInheritanceStrategy,this.environmentInjector),Et({next:()=>u=!0,complete:()=>{u||this.cancelNavigationTransition(c,"",fn.NoDataFromResolver)}}))}),Et(c=>{let u=new H0(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}))}),O0(l=>{let c=u=>{let d=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&d.push(this.configLoader.loadComponent(u.routeConfig).pipe(Et(h=>{u.component=h}),Le(()=>{})));for(let h of u.children)d.push(...c(h));return d};return yr(c(l.targetSnapshot.root)).pipe(y0(null),jt(1))}),O0(()=>this.afterPreactivation()),Dt(()=>{let{currentSnapshot:l,targetSnapshot:c}=s,u=this.createViewTransition?.(this.environmentInjector,l.root,c.root);return u?_i(u).pipe(Le(()=>s)):_e(s)}),Le(l=>{let c=JL(e.routeReuseStrategy,l.targetSnapshot,l.currentRouterState);return this.currentTransition=s=$e(j({},l),{targetRouterState:c}),this.currentNavigation.targetRouterState=c,s}),Et(()=>{this.events.next(new gc)}),nO(this.rootContexts,e.routeReuseStrategy,l=>this.events.next(l),this.inputBindingEnabled),jt(1),Et({next:l=>{a=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Tr(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects))),this.titleStrategy?.updateTitle(l.targetRouterState.snapshot),l.resolve(!0)},complete:()=>{a=!0}}),qe(this.transitionAbortSubject.pipe(Et(l=>{throw l}))),Io(()=>{!a&&!o&&this.cancelNavigationTransition(s,"",fn.SupersededByNewNavigation),this.currentTransition?.id===s.id&&(this.currentNavigation=null,this.currentTransition=null)}),Zi(l=>{if(o=!0,Ww(l))this.events.next(new is(s.id,this.urlSerializer.serialize(s.extractedUrl),l.message,l.cancellationCode)),iO(l)?this.events.next(new Ho(l.url,l.navigationBehaviorOptions)):s.resolve(!1);else{let c=new pc(s.id,this.urlSerializer.serialize(s.extractedUrl),l,s.targetSnapshot??void 0);try{let u=Cr(this.environmentInjector,()=>this.navigationErrorHandler?.(c));if(u instanceof vc){let{message:d,cancellationCode:h}=ph(this.urlSerializer,u);this.events.next(new is(s.id,this.urlSerializer.serialize(s.extractedUrl),d,h)),this.events.next(new Ho(u.redirectTo,u.navigationBehaviorOptions))}else throw this.events.next(c),l}catch(u){this.options.resolveNavigationPromiseOnError?s.resolve(!1):s.reject(u)}}return In}))}))}cancelNavigationTransition(e,i,r){let s=new is(e.id,this.urlSerializer.serialize(e.extractedUrl),i,r);this.events.next(s),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return e.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function QO(n){return n!==hc}var ZO=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>L(XO),providedIn:"root"})}return n})(),ag=class{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}},XO=(()=>{class n extends ag{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),ix=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>L(JO),providedIn:"root"})}return n})(),JO=(()=>{class n extends ix{location=L(Ia);urlSerializer=L(xc);options=L(Tc,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";urlHandlingStrategy=L(dg);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new ns;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}routerState=Vw(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{i.type==="popstate"&&e(i.url,i.state)})}handleRouterEvent(e,i){if(e instanceof zo)this.stateMemento=this.createStateMemento();else if(e instanceof qs)this.rawUrlTree=i.initialUrl;else if(e instanceof ch){if(this.urlUpdateStrategy==="eager"&&!i.extras.skipLocationChange){let r=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(i.targetBrowserUrl??r,i)}}else e instanceof gc?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(i.targetBrowserUrl??this.rawUrlTree,i)):e instanceof is&&(e.code===fn.GuardRejected||e.code===fn.NoDataFromResolver)?this.restoreHistory(i):e instanceof pc?this.restoreHistory(i,!0):e instanceof Tr&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){let r=e instanceof ns?this.urlSerializer.serialize(e):e;if(this.location.isCurrentPathEqualTo(r)||i.extras.replaceUrl){let s=this.browserPageId,a=j(j({},i.extras.state),this.generateNgRouterState(i.id,s));this.location.replaceState(r,"",a)}else{let s=j(j({},i.extras.state),this.generateNgRouterState(i.id,this.browserPageId+1));this.location.go(r,"",s)}}restoreHistory(e,i=!1){if(this.canceledNavigationResolution==="computed"){let r=this.browserPageId,s=this.currentPageId-r;s!==0?this.location.historyGo(s):this.currentUrlTree===e.finalUrl&&s===0&&(this.resetState(e),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return this.canceledNavigationResolution==="computed"?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),uc=function(n){return n[n.COMPLETE=0]="COMPLETE",n[n.FAILED=1]="FAILED",n[n.REDIRECTING=2]="REDIRECTING",n}(uc||{});function nx(n,t){n.events.pipe(st(e=>e instanceof Tr||e instanceof is||e instanceof pc||e instanceof qs),Le(e=>e instanceof Tr||e instanceof qs?uc.COMPLETE:(e instanceof is?e.code===fn.Redirect||e.code===fn.SupersededByNewNavigation:!1)?uc.REDIRECTING:uc.FAILED),st(e=>e!==uc.REDIRECTING),jt(1)).subscribe(()=>{t()})}var eN={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},tN={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},Gs=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=L(BC);stateManager=L(ix);options=L(Tc,{optional:!0})||{};pendingTasks=L(LC);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=L(hg);urlSerializer=L(xc);location=L(Ia);urlHandlingStrategy=L(dg);_events=new me;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=L(ZO);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=L(_h,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!L(bh,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Mt;subscribeToNavigationEvents(){let e=this.navigationTransitions.events.subscribe(i=>{try{let r=this.navigationTransitions.currentTransition,s=this.navigationTransitions.currentNavigation;if(r!==null&&s!==null){if(this.stateManager.handleRouterEvent(i,s),i instanceof is&&i.code!==fn.Redirect&&i.code!==fn.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Tr)this.navigated=!0;else if(i instanceof Ho){let a=i.navigationBehaviorOptions,o=this.urlHandlingStrategy.merge(i.url,r.currentRawUrl),l=j({browserUrl:r.extras.browserUrl,info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:r.extras.replaceUrl||this.urlUpdateStrategy==="eager"||QO(r.source)},a);this.scheduleNavigation(o,hc,null,l,{resolve:r.resolve,reject:r.reject,promise:r.promise})}}nN(i)&&this._events.next(i)}catch(r){this.navigationTransitions.transitionAbortSubject.next(r)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),hc,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(e,"popstate",i)},0)})}navigateToSyncWithBrowser(e,i,r){let s={replaceUrl:!0},a=r?.navigationId?r:null;if(r){let l=j({},r);delete l.navigationId,delete l.\u0275routerPageId,Object.keys(l).length!==0&&(s.state=l)}let o=this.parseUrl(e);this.scheduleNavigation(o,i,a,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(cg),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){let{relativeTo:r,queryParams:s,fragment:a,queryParamsHandling:o,preserveFragment:l}=i,c=l?this.currentUrlTree.fragment:a,u=null;switch(o??this.options.defaultQueryParamsHandling){case"merge":u=j(j({},this.currentUrlTree.queryParams),s);break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=s||null}u!==null&&(u=this.removeEmptyProps(u));let d;try{let h=r?r.snapshot:this.routerState.snapshot.root;d=Fw(h)}catch{(typeof e[0]!="string"||e[0][0]!=="/")&&(e=[]),d=this.currentUrlTree.root}return Pw(d,e,u,c??null)}navigateByUrl(e,i={skipLocationChange:!1}){let r=Ra(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(s,hc,null,i)}navigate(e,i={skipLocationChange:!1}){return iN(e),this.navigateByUrl(this.createUrlTree(e,i),i)}serializeUrl(e){return this.urlSerializer.serialize(e)}parseUrl(e){try{return this.urlSerializer.parse(e)}catch{return this.urlSerializer.parse("/")}}isActive(e,i){let r;if(i===!0?r=j({},eN):i===!1?r=j({},tN):r=i,Ra(e))return pw(this.currentUrlTree,e,r);let s=this.parseUrl(e);return pw(this.currentUrlTree,s,r)}removeEmptyProps(e){return Object.entries(e).reduce((i,[r,s])=>(s!=null&&(i[r]=s),i),{})}scheduleNavigation(e,i,r,s,a){if(this.disposed)return Promise.resolve(!1);let o,l,c;a?(o=a.resolve,l=a.reject,c=a.promise):c=new Promise((d,h)=>{o=d,l=h});let u=this.pendingTasks.add();return nx(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:o,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function iN(n){for(let t=0;t{class n{router;route;tabIndexAttribute;renderer;el;locationStrategy;href=null;target;queryParams;fragment;queryParamsHandling;state;info;relativeTo;isAnchorElement;subscription;onChanges=new me;constructor(e,i,r,s,a,o){this.router=e,this.route=i,this.tabIndexAttribute=r,this.renderer=s,this.el=a,this.locationStrategy=o;let l=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement=l==="a"||l==="area",this.isAnchorElement?this.subscription=e.events.subscribe(c=>{c instanceof Tr&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}preserveFragment=!1;skipLocationChange=!1;replaceUrl=!1;setTabIndexIfNotOnNativeEl(e){this.tabIndexAttribute!=null||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}routerLinkInput=null;set routerLink(e){e==null?(this.routerLinkInput=null,this.setTabIndexIfNotOnNativeEl(null)):(Ra(e)?this.routerLinkInput=e:this.routerLinkInput=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,i,r,s,a){let o=this.urlTree;if(o===null||this.isAnchorElement&&(e!==0||i||r||s||a||typeof this.target=="string"&&this.target!="_self"))return!0;let l={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(o,l),!this.isAnchorElement}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){let e=this.urlTree;this.href=e!==null&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;let i=this.href===null?null:PC(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){let r=this.renderer,s=this.el.nativeElement;i!==null?r.setAttribute(s,e,i):r.removeAttribute(s,e)}get urlTree(){return this.routerLinkInput===null?null:Ra(this.routerLinkInput)?this.routerLinkInput:this.router.createUrlTree(this.routerLinkInput,{relativeTo:this.relativeTo!==void 0?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static \u0275fac=function(i){return new(i||n)(Se(Gs),Se(La),RC("tabindex"),Se(rc),Se(Ae),Se(ac))};static \u0275dir=xe({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,r){i&1&&J("click",function(a){return r.onClick(a.button,a.ctrlKey,a.shiftKey,a.altKey,a.metaKey)}),i&2&&Me("target",r.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",be],skipLocationChange:[2,"skipLocationChange","skipLocationChange",be],replaceUrl:[2,"replaceUrl","replaceUrl",be],routerLink:"routerLink"},features:[Qe,vt]})}return n})();var vh=class{};var rN=(()=>{class n{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,r,s,a){this.router=e,this.injector=r,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(st(e=>e instanceof Tr),Fs(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){let r=[];for(let s of i){s.providers&&!s._injector&&(s._injector=M0(s.providers,e,`Route: ${s.path}`));let a=s._injector??e,o=s._loadedInjector??a;(s.loadChildren&&!s._loadedRoutes&&s.canLoad===void 0||s.loadComponent&&!s._loadedComponent)&&r.push(this.preloadConfig(a,s)),(s.children||s._loadedRoutes)&&r.push(this.processRoutes(o,s.children??s._loadedRoutes))}return _i(r).pipe(b0())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let r;i.loadChildren&&i.canLoad===void 0?r=this.loader.loadChildren(e,i):r=_e(null);let s=r.pipe(Pi(a=>a===null?_e(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));if(i.loadComponent&&!i._loadedComponent){let a=this.loader.loadComponent(i);return _i([s,a]).pipe(b0())}else return s})}static \u0275fac=function(i){return new(i||n)(Oe(Gs),Oe(Zd),Oe(Zr),Oe(vh),Oe(ug))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),rx=new ee(""),sN=(()=>{class n{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(e,i,r,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=r,this.zone=s,this.options=a,a.scrollPositionRestoration||="disabled",a.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof zo?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Tr?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof qs&&e.code===lh.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof uh&&(e.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(e.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new uh(e,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){Wd()};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function aN(n){return n.routerState.root}function Ec(n,t){return{\u0275kind:n,\u0275providers:t}}function oN(){let n=L(gt);return t=>{let e=n.get(tr);if(t!==e.components[0])return;let i=n.get(Gs),r=n.get(sx);n.get(mg)===1&&i.initialNavigation(),n.get(ax,null,x0.Optional)?.setUpPreloading(),n.get(rx,null,x0.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}var sx=new ee("",{factory:()=>new me}),mg=new ee("",{providedIn:"root",factory:()=>1});function lN(){return Ec(2,[{provide:mg,useValue:0},{provide:T0,multi:!0,deps:[gt],useFactory:t=>{let e=t.get(ZC,Promise.resolve());return()=>e.then(()=>new Promise(i=>{let r=t.get(Gs),s=t.get(sx);nx(r,()=>{i(!0)}),t.get(hg).afterPreactivation=()=>(i(!0),s.closed?_e(void 0):s),r.initialNavigation()}))}}])}function cN(){return Ec(3,[{provide:T0,multi:!0,useFactory:()=>{let t=L(Gs);return()=>{t.setUpLocationChangeListener()}}},{provide:mg,useValue:2}])}var ax=new ee("");function uN(n){return Ec(0,[{provide:ax,useExisting:rN},{provide:vh,useExisting:n}])}function dN(){return Ec(8,[bw,{provide:bh,useExisting:bw}])}function hN(n){let t=[{provide:Jw,useValue:KO},{provide:ex,useValue:j({skipNextTransition:!!n?.skipInitialTransition},n)}];return Ec(9,t)}var xw=new ee("ROUTER_FORROOT_GUARD"),mN=[Ia,{provide:xc,useClass:Bo},Gs,kc,{provide:La,useFactory:aN,deps:[Gs]},ug,[]],ox=(()=>{class n{constructor(e){}static forRoot(e,i){return{ngModule:n,providers:[mN,[],{provide:_h,multi:!0,useValue:e},{provide:xw,useFactory:_N,deps:[[Gs,new Us,new ka]]},i?.errorHandler?{provide:tx,useValue:i.errorHandler}:[],{provide:Tc,useValue:i||{}},i?.useHash?pN():gN(),fN(),i?.preloadingStrategy?uN(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?vN(i):[],i?.bindToComponentInputs?dN().\u0275providers:[],i?.enableViewTransitions?hN().\u0275providers:[],bN()]}}static forChild(e){return{ngModule:n,providers:[{provide:_h,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||n)(Oe(xw,8))};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();function fN(){return{provide:rx,useFactory:()=>{let n=L(rw),t=L(Ne),e=L(Tc),i=L(hg),r=L(xc);return e.scrollOffset&&n.setOffset(e.scrollOffset),new sN(r,i,n,t,e)}}}function pN(){return{provide:ac,useClass:ew}}function gN(){return{provide:ac,useClass:JC}}function _N(n){return"guarded"}function vN(n){return[n.initialNavigation==="disabled"?cN().\u0275providers:[],n.initialNavigation==="enabledBlocking"?lN().\u0275providers:[]]}var Sw=new ee("");function bN(){return[{provide:Sw,useFactory:oN},{provide:zC,multi:!0,useExisting:Sw}]}var rs=class{},fg=(()=>{class n extends rs{getTranslation(e){return _e({})}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),qo=class{},pg=(()=>{class n{handle(e){return e.key}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function Na(n){return typeof n<"u"&&n!==null}function Th(n){return wh(n)&&!yg(n)}function wh(n){return typeof n=="object"}function yg(n){return Array.isArray(n)}function cx(n){return typeof n=="string"}function yN(n){return typeof n=="function"}function gg(n,t){let e=Object.assign({},n);return wh(n)?(wh(n)&&wh(t)&&Object.keys(t).forEach(i=>{Th(t[i])?i in n?e[i]=gg(n[i],t[i]):Object.assign(e,{[i]:t[i]}):Object.assign(e,{[i]:t[i]})}),e):gg({},t)}function _g(n,t){let e=t.split(".");t="";do t+=e.shift(),Na(n)&&Na(n[t])&&(Th(n[t])||yg(n[t])||!e.length)?(n=n[t],t=""):e.length?t+=".":n=void 0;while(e.length);return n}function CN(n,t,e){let i=t.split("."),r=n;for(let s=0;s{class n extends Fa{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,i){if(cx(e))return this.interpolateString(e,i);if(yN(e))return this.interpolateFunction(e,i)}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(r,s)=>{let a=_g(i,s);return Na(a)?a:r}):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),Pa=class{},bg=(()=>{class n extends Pa{compile(e,i){return e}compileTranslations(e,i){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),Ac=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new oe;onLangChange=new oe;onDefaultLangChange=new oe},xh=new ee("ISOALTE_TRANSLATE_SERVICE"),Sh=new ee("USE_DEFAULT_LANG"),kh=new ee("DEFAULT_LANGUAGE"),Mh=new ee("USE_EXTEND"),Ic=n=>br(n)?n:_e(n),Dc=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new oe;_onLangChange=new oe;_onDefaultLangChange=new oe;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}constructor(e,i,r,s,a,o=!0,l=!1,c=!1,u){this.store=e,this.currentLoader=i,this.compiler=r,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=o,this.isolate=l,this.extend=c,u&&this.setDefaultLang(u)}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(this.defaultLang==null&&(this.defaultLang=e),i.pipe(jt(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return _e(this.translations[e]);this.currentLang||(this.currentLang=e);let i=this.retrieveTranslations(e);return br(i)?(i.pipe(jt(1)).subscribe(()=>{this.changeLang(e)}),i):(this.changeLang(e),_e(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let i=this.currentLoader.getTranslation(e).pipe(Ps(1),jt(1));return this.loadingTranslations=i.pipe(Le(r=>this.compiler.compileTranslations(r,e)),Ps(1),jt(1)),this.loadingTranslations.subscribe({next:r=>{this.translations[e]=this.extend&&this.translations[e]?j(j({},r),this.translations[e]):r,this.updateLangs(),this.pending=!1},error:r=>{this.pending=!1}}),i}setTranslation(e,i,r=!1){let s=this.compiler.compileTranslations(i,e);(r||this.extend)&&this.translations[e]?this.translations[e]=gg(this.translations[e],s):this.translations[e]=s,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(i=>{this.langs.indexOf(i)===-1&&this.langs.push(i)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,i,r){let s;if(e&&(s=this.runInterpolation(_g(e,i),r)),s===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.runInterpolation(_g(this.translations[this.defaultLang],i),r)),s===void 0){let a={key:i,translateService:this};typeof r<"u"&&(a.interpolateParams=r),s=this.missingTranslationHandler.handle(a)}return s!==void 0?s:i}runInterpolation(e,i){if(yg(e))return e.map(r=>this.runInterpolation(r,i));if(Th(e)){let r={};for(let s in e)r[s]=this.runInterpolation(e[s],i);return r}else return this.parser.interpolate(e,i)}getParsedResult(e,i,r){if(i instanceof Array){let s={},a=!1;for(let l of i)s[l]=this.getParsedResultForKey(e,l,r),a=a||br(s[l]);if(!a)return s;let o=i.map(l=>Ic(s[l]));return To(o).pipe(Le(l=>{let c={};return l.forEach((u,d)=>{c[i[d]]=u}),c}))}return this.getParsedResultForKey(e,i,r)}get(e,i){if(!Na(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(Fs(r=>Ic(this.getParsedResult(r,e,i)))):Ic(this.getParsedResult(this.translations[this.currentLang],e,i))}getStreamOnTranslationChange(e,i){if(!Na(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return Sa(Ns(()=>this.get(e,i)),this.onTranslationChange.pipe(Dt(r=>{let s=this.getParsedResult(r.translations,e,i);return Ic(s)})))}stream(e,i){if(!Na(e)||!e.length)throw new Error('Parameter "key" required');return Sa(Ns(()=>this.get(e,i)),this.onLangChange.pipe(Dt(r=>{let s=this.getParsedResult(r.translations,e,i);return Ic(s)})))}instant(e,i){if(!Na(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let r=this.getParsedResult(this.translations[this.currentLang],e,i);return br(r)?Array.isArray(e)?e.reduce((s,a)=>(s[a]=a,s),{}):e:r}set(e,i,r=this.currentLang){CN(this.translations[r],e,cx(i)?this.compiler.compile(i,r):this.compiler.compileTranslations(i,r)),this.updateLangs(),this.onTranslationChange.emit({lang:r,translations:this.translations[r]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(i){return new(i||n)(Oe(Ac),Oe(rs),Oe(Pa),Oe(Fa),Oe(qo),Oe(Sh),Oe(xh),Oe(Mh),Oe(kh))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var ux=(n={})=>Ma([n.loader||{provide:rs,useClass:fg},n.compiler||{provide:Pa,useClass:bg},n.parser||{provide:Fa,useClass:vg},n.missingTranslationHandler||{provide:qo,useClass:pg},Ac,{provide:xh,useValue:n.isolate},{provide:Sh,useValue:n.useDefaultLang},{provide:Mh,useValue:n.extend},{provide:kh,useValue:n.defaultLanguage},Dc]),Cg=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:rs,useClass:fg},e.compiler||{provide:Pa,useClass:bg},e.parser||{provide:Fa,useClass:vg},e.missingTranslationHandler||{provide:qo,useClass:pg},Ac,{provide:xh,useValue:e.isolate},{provide:Sh,useValue:e.useDefaultLang},{provide:Mh,useValue:e.extend},{provide:kh,useValue:e.defaultLanguage},Dc]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:rs,useClass:fg},e.compiler||{provide:Pa,useClass:bg},e.parser||{provide:Fa,useClass:vg},e.missingTranslationHandler||{provide:qo,useClass:pg},{provide:xh,useValue:e.isolate},{provide:Sh,useValue:e.useDefaultLang},{provide:Mh,useValue:e.extend},{provide:kh,useValue:e.defaultLanguage},Dc]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var Eh=class{http;prefix;suffix;constructor(t,e="/assets/i18n/",i=".json"){this.http=t,this.prefix=e,this.suffix=i}getTranslation(t){return this.http.get(`${this.prefix}${t}${this.suffix}`)}};var gS=Os(Ng());var Fn=(()=>{class n{constructor(){}changeFhirMicroService(e){localStorage.setItem("fhirMicroServer",e)}getFhirMicroService(){return localStorage.getItem("fhirMicroServer")}getFhirClient(){return new gS.default({baseUrl:this.getFhirMicroService()})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var Nh=(()=>{class n{redirectHashUrl(){let e=window.location.href;window.location.replace(e.replace("#/",""))}isHashUrl(){return window.location.href.indexOf("#/")>-1}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var jg;try{jg=typeof Intl<"u"&&Intl.v8BreakIterator}catch{jg=!1}var ct=(()=>{class n{_platformId=L(Hd);isBrowser=this._platformId?ts(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||jg)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Xo,_S=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function Wg(){if(Xo)return Xo;if(typeof document!="object"||!document)return Xo=new Set(_S),Xo;let n=document.createElement("input");return Xo=new Set(_S.filter(t=>(n.setAttribute("type",t),n.type===t))),Xo}var Lc;function yF(){if(Lc==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Lc=!0}))}finally{Lc=Lc||!1}return Lc}function Ai(n){return yF()?n:!!n.capture}var sr=function(n){return n[n.NORMAL=0]="NORMAL",n[n.NEGATED=1]="NEGATED",n[n.INVERTED=2]="INVERTED",n}(sr||{}),Fh,$a;function Ph(){if($a==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return $a=!1,$a;if("scrollBehavior"in document.documentElement.style)$a=!0;else{let n=Element.prototype.scrollTo;n?$a=!/\{\s*\[native code\]\s*\}/.test(n.toString()):$a=!1}}return $a}function Jo(){if(typeof document!="object"||!document)return sr.NORMAL;if(Fh==null){let n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";let e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),Fh=sr.NORMAL,n.scrollLeft===0&&(n.scrollLeft=1,Fh=n.scrollLeft===0?sr.NEGATED:sr.INVERTED),n.remove()}return Fh}var Hg;function CF(){if(Hg==null){let n=typeof document<"u"?document.head:null;Hg=!!(n&&(n.createShadowRoot||n.attachShadow))}return Hg}function vS(n){if(CF()){let t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}function qg(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){let t=n.shadowRoot.activeElement;if(t===n)break;n=t}return n}function gn(n){return n.composedPath?n.composedPath()[0]:n.target}function Gg(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}var Uh=new WeakMap,wt=(()=>{class n{_appRef;_injector=L(gt);_environmentInjector=L(Zr);load(e){let i=this._appRef=this._appRef||this._injector.get(tr),r=Uh.get(i);r||(r={loaders:new Set,refs:[]},Uh.set(i,r),i.onDestroy(()=>{Uh.get(i)?.refs.forEach(s=>s.destroy()),Uh.delete(i)})),r.loaders.has(e)||(r.loaders.add(e),r.refs.push(Jd(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),os=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,r){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return n})();function Vi(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}function Pn(n){return n!=null&&`${n}`!="false"}function ls(n,t=0){return wF(n)?Number(n):arguments.length===2?t:0}function wF(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}function el(n){return Array.isArray(n)?n:[n]}function Jt(n){return n==null?"":typeof n=="string"?n:`${n}px`}function rn(n){return n instanceof Ae?n.nativeElement:n}function xF(n){if(n.type==="characterData"&&n.target instanceof Comment)return!0;if(n.type==="childList"){for(let t=0;t{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),yS=(()=>{class n{_mutationObserverFactory=L(bS);_observedElements=new Map;_ngZone=L(Ne);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){let i=rn(e);return new Jn(r=>{let a=this._observeElement(i).pipe(Le(o=>o.filter(l=>!xF(l))),st(o=>!!o.length)).subscribe(o=>{this._ngZone.run(()=>{r.next(o)})});return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{let i=new me,r=this._mutationObserverFactory.create(s=>i.next(s));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream})}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){let{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),CS=(()=>{class n{_contentObserver=L(yS);_elementRef=L(Ae);event=new oe;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=ls(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(Ui(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",be],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],features:[Qe]})}return n})(),$h=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[bS]})}return n})();var wS=new Set,Va,SF=(()=>{class n{_platform=L(ct);_nonce=L(NC,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):MF}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&kF(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function kF(n,t){if(!wS.has(n))try{Va||(Va=document.createElement("style"),t&&Va.setAttribute("nonce",t),Va.setAttribute("type","text/css"),document.head.appendChild(Va)),Va.sheet&&(Va.sheet.insertRule(`@media ${n} {body{ }}`,0),wS.add(n))}catch(e){console.error(e)}}function MF(n){return{matches:n==="all"||n==="",media:n,addListener:()=>{},removeListener:()=>{}}}var SS=(()=>{class n{_mediaMatcher=L(SF);_zone=L(Ne);_queries=new Map;_destroySubject=new me;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return xS(el(e)).some(r=>this._registerQuery(r).mql.matches)}observe(e){let r=xS(el(e)).map(a=>this._registerQuery(a).observable),s=yr(r);return s=Sa(s.pipe(jt(1)),s.pipe(Ao(1),Ui(0))),s.pipe(Le(a=>{let o={matches:!1,breakpoints:{}};return a.forEach(({matches:l,query:c})=>{o.matches=o.matches||l,o.breakpoints[c]=l}),o}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);let i=this._mediaMatcher.matchMedia(e),s={observable:new Jn(a=>{let o=l=>this._zone.run(()=>a.next(l));return i.addListener(o),()=>{i.removeListener(o)}}).pipe(Gt(i),Le(({matches:a})=>({query:e,matches:a})),qe(this._destroySubject)),mql:i};return this._queries.set(e,s),s}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function xS(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}var IS=" ";function t_(n,t,e){let i=Hh(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(IS)))}function qh(n,t,e){let i=Hh(n,t);e=e.trim();let r=i.filter(s=>s!==e);r.length?n.setAttribute(t,r.join(IS)):n.removeAttribute(t)}function Hh(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}var AS="cdk-describedby-message",Vh="cdk-describedby-host",Zg=0,DS=(()=>{class n{_platform=L(ct);_document=L(it);_messageRegistry=new Map;_messagesContainer=null;_id=`${Zg++}`;constructor(){L(wt).load(os),this._id=L(S0)+"-"+Zg++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;let s=Kg(i,r);typeof i!="string"?(kS(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;let s=Kg(i,r);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),typeof i=="string"){let a=this._messageRegistry.get(s);a&&a.referenceCount===0&&this._deleteMessageElement(s)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let e=this._document.querySelectorAll(`[${Vh}="${this._id}"]`);for(let i=0;ir.indexOf(AS)!=0);e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){let r=this._messageRegistry.get(i);t_(e,"aria-describedby",r.messageElement.id),e.setAttribute(Vh,this._id),r.referenceCount++}_removeMessageReference(e,i){let r=this._messageRegistry.get(i);r.referenceCount--,qh(e,"aria-describedby",r.messageElement.id),e.removeAttribute(Vh)}_isElementDescribedByMessage(e,i){let r=Hh(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&r.indexOf(a)!=-1}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&typeof i=="object")return!0;let r=i==null?"":`${i}`.trim(),s=e.getAttribute("aria-label");return r?!s||s.trim()!==r:!1}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Kg(n,t){return typeof n=="string"?`${t||""}/${n}`:n}function kS(n,t){n.id||(n.id=`${AS}-${t}-${Zg++}`)}var FF=200,Xg=class{_letterKeyStream=new me;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new me;selectedItem=this._selectedItem;constructor(t,e){let i=typeof e?.debounceInterval=="number"?e.debounceInterval:FF;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(t),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(t){this._selectedItemIndex=t}setItems(t){this._items=t}handleKey(t){let e=t.keyCode;t.key&&t.key.length===1?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(t){this._letterKeyStream.pipe(Et(e=>this._pressedLetters.push(e)),Ui(t),st(()=>this._pressedLetters.length>0),Le(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;it.disabled;constructor(t,e){this._items=t,t instanceof Do?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):Ta(t)&&(this._effectRef=Xd(()=>this._itemsChanged(t()),{injector:e}))}tabOut=new me;change=new me;skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){this._typeaheadSubscription.unsubscribe();let e=this._getItemsArray();return this._typeahead=new Xg(e,{debounceInterval:typeof t=="number"?t:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}withPageUpDown(t=!0,e=10){return this._pageUpAndDown={enabled:t,delta:e},this}setActiveItem(t){let e=this._activeItem();this.updateActiveItem(t),this._activeItem()!==e&&this.change.next(this._activeItemIndex)}onKeydown(t){let e=t.keyCode,r=["altKey","ctrlKey","metaKey","shiftKey"].every(s=>!t[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:this.tabOut.next();return;case 40:if(this._vertical&&r){this.setNextItemActive();break}else return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&r){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&r){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&r){let s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&r){let s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},Wh=class extends jh{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}},Oc=class extends jh{_origin="program";setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}};var PF=(()=>{class n{_platform=L(ct);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return $F(e)&&getComputedStyle(e).visibility==="visible"}isTabbable(e){if(!this._platform.isBrowser)return!1;let i=UF(GF(e));if(i&&(MS(i)===-1||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),s=MS(e);return e.hasAttribute("contenteditable")?s!==-1:r==="iframe"||r==="object"||this._platform.WEBKIT&&this._platform.IOS&&!WF(e)?!1:r==="audio"?e.hasAttribute("controls")?s!==-1:!1:r==="video"?s===-1?!1:s!==null?!0:this._platform.FIREFOX||e.hasAttribute("controls"):e.tabIndex>=0}isFocusable(e,i){return qF(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function UF(n){try{return n.frameElement}catch{return null}}function $F(n){return!!(n.offsetWidth||n.offsetHeight||typeof n.getClientRects=="function"&&n.getClientRects().length)}function VF(n){let t=n.nodeName.toLowerCase();return t==="input"||t==="select"||t==="button"||t==="textarea"}function BF(n){return HF(n)&&n.type=="hidden"}function zF(n){return jF(n)&&n.hasAttribute("href")}function HF(n){return n.nodeName.toLowerCase()=="input"}function jF(n){return n.nodeName.toLowerCase()=="a"}function RS(n){if(!n.hasAttribute("tabindex")||n.tabIndex===void 0)return!1;let t=n.getAttribute("tabindex");return!!(t&&!isNaN(parseInt(t,10)))}function MS(n){if(!RS(n))return null;let t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}function WF(n){let t=n.nodeName.toLowerCase(),e=t==="input"&&n.type;return e==="text"||e==="password"||t==="select"||t==="textarea"}function qF(n){return BF(n)?!1:VF(n)||zF(n)||n.hasAttribute("contenteditable")||RS(n)}function GF(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}var Jg=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_enabled=!0;constructor(t,e,i,r,s=!1,a){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._injector=a,s||this.attachAnchors()}destroy(){let t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){let e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return t=="start"?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){let e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){let i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){let e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){let e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;let e=t.children;for(let i=0;i=0;i--){let r=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(r)return r}return null}_createAnchor(){let t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._injector?vi(t,{injector:this._injector}):setTimeout(t)}},KF=(()=>{class n{_checker=L(PF);_ngZone=L(Ne);_document=L(it);_injector=L(gt);constructor(){L(wt).load(os)}create(e,i=!1){return new Jg(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),LS=(()=>{class n{_elementRef=L(Ae);_focusTrapFactory=L(KF);focusTrap;_previouslyFocusedElement=null;get enabled(){return this.focusTrap?.enabled||!1}set enabled(e){this.focusTrap&&(this.focusTrap.enabled=e)}autoCapture;constructor(){L(ct).isBrowser&&(this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0))}ngOnDestroy(){this.focusTrap?.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap?.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap&&!this.focusTrap.hasAttached()&&this.focusTrap.attachAnchors()}ngOnChanges(e){let i=e.autoCapture;i&&!i.firstChange&&this.autoCapture&&this.focusTrap?.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=qg(),this.focusTrap?.focusInitialElementWhenReady()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:[2,"cdkTrapFocus","enabled",be],autoCapture:[2,"cdkTrapFocusAutoCapture","autoCapture",be]},exportAs:["cdkTrapFocus"],features:[Qe,vt]})}return n})();function Gh(n){return n.buttons===0||n.detail===0}function Kh(n){let t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!!t&&t.identifier===-1&&(t.radiusX==null||t.radiusX===1)&&(t.radiusY==null||t.radiusY===1)}var YF=new ee("cdk-input-modality-detector-options"),QF={ignoreKeys:[18,17,224,91,16]},OS=650,tl=Ai({passive:!0,capture:!0}),ZF=(()=>{class n{_platform=L(ct);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new gi(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=gn(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs{if(Kh(e)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=gn(e)};constructor(){let e=L(Ne),i=L(it),r=L(YF,{optional:!0});this._options=j(j({},QF),r),this.modalityDetected=this._modality.pipe(Ao(1)),this.modalityChanged=this.modalityDetected.pipe(An()),this._platform.isBrowser&&e.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,tl),i.addEventListener("mousedown",this._onMousedown,tl),i.addEventListener("touchstart",this._onTouchstart,tl)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,tl),document.removeEventListener("mousedown",this._onMousedown,tl),document.removeEventListener("touchstart",this._onTouchstart,tl))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),XF=new ee("liveAnnouncerElement",{providedIn:"root",factory:JF});function JF(){return null}var eP=new ee("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),tP=0,NS=(()=>{class n{_ngZone=L(Ne);_defaultOptions=L(eP,{optional:!0});_liveElement;_document=L(it);_previousTimeout;_currentPromise;_currentResolve;constructor(){let e=L(XF,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){let r=this._defaultOptions,s,a;return i.length===1&&typeof i[0]=="number"?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=r&&r.politeness?r.politeness:"polite"),a==null&&r&&(a=r.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(o=>this._currentResolve=o)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,typeof a=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),r=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{_ngZone=L(Ne);_platform=L(ct);_inputModalityDetector=L(ZF);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)};_document=L(it,{optional:!0});_stopInputModalityDetector=new me;constructor(){let e=L(iP,{optional:!0});this._detectionMode=e?.detectionMode||zh.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{let i=gn(e);for(let r=i;r;r=r.parentElement)e.type==="focus"?this._onFocus(e,r):this._onBlur(e,r)};monitor(e,i=!1){let r=rn(e);if(!this._platform.isBrowser||r.nodeType!==1)return _e();let s=vS(r)||this._getDocument(),a=this._elementInfo.get(r);if(a)return i&&(a.checkChildren=!0),a.subject;let o={checkChildren:i,subject:new me,rootNode:s};return this._elementInfo.set(r,o),this._registerGlobalListeners(o),o.subject}stopMonitoring(e){let i=rn(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){let s=rn(e),a=this._getDocument().activeElement;s===a?this._getClosestElementsInfo(s).forEach(([o,l])=>this._originChanged(o,i,l)):(this._setOrigin(i),typeof s.focus=="function"&&s.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===zh.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused",i==="touch"),e.classList.toggle("cdk-keyboard-focused",i==="keyboard"),e.classList.toggle("cdk-mouse-focused",i==="mouse"),e.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=e,this._originFromTouchInteraction=e==="touch"&&i,this._detectionMode===zh.IMMEDIATE){clearTimeout(this._originTimeoutId);let r=this._originFromTouchInteraction?OS:1;this._originTimeoutId=setTimeout(()=>this._origin=null,r)}})}_onFocus(e,i){let r=this._elementInfo.get(i),s=gn(e);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),r)}_onBlur(e,i){let r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;let i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,Bh),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Bh)}),this._rootNodeFocusListenerCount.set(i,r+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(qe(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){let i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Bh),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Bh),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){let i=[];return this._elementInfo.forEach((r,s)=>{(s===e||r.checkChildren&&s.contains(e))&&i.push([s,r])}),i}_isLastInteractionFromInputLabel(e){let{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if(r!=="mouse"||!i||i===e||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA"||e.disabled)return!1;let s=e.labels;if(s){for(let a=0;a{class n{_elementRef=L(Ae);_focusMonitor=L(Un);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new oe;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,e.nodeType===1&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return n})(),Ba=function(n){return n[n.NONE=0]="NONE",n[n.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",n[n.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",n}(Ba||{}),TS="cdk-high-contrast-black-on-white",ES="cdk-high-contrast-white-on-black",Yg="cdk-high-contrast-active",i_=(()=>{class n{_platform=L(ct);_hasCheckedHighContrastMode;_document=L(it);_breakpointSubscription;constructor(){this._breakpointSubscription=L(SS).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Ba.NONE;let e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);let i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Ba.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Ba.BLACK_ON_WHITE}return Ba.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let e=this._document.body.classList;e.remove(Yg,TS,ES),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===Ba.BLACK_ON_WHITE?e.add(Yg,TS):i===Ba.WHITE_ON_BLACK&&e.add(Yg,ES)}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Qh=(()=>{class n{constructor(){L(i_)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[$h]})}return n})(),Qg={},Ft=(()=>{class n{_appId=L(S0);getId(e){return this._appId!=="ng"&&(e+=this._appId),Qg.hasOwnProperty(e)||(Qg[e]=0),`${e}${Qg[e]++}`}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var nP=new ee("cdk-dir-doc",{providedIn:"root",factory:rP});function rP(){return L(it)}var sP=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function aP(n){let t=n?.toLowerCase()||"";return t==="auto"&&typeof navigator<"u"&&navigator?.language?sP.test(navigator.language)?"rtl":"ltr":t==="rtl"?"rtl":"ltr"}var ui=(()=>{class n{value="ltr";change=new oe;constructor(){let e=L(nP,{optional:!0});if(e){let i=e.body?e.body.dir:null,r=e.documentElement?e.documentElement.dir:null;this.value=aP(i||r||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Zs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var oP=["text"],lP=[[["mat-icon"]],"*"],cP=["mat-icon","*"];function uP(n,t){if(n&1&&ne(0,"mat-pseudo-checkbox",1),n&2){let e=Y();z("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function dP(n,t){if(n&1&&ne(0,"mat-pseudo-checkbox",3),n&2){let e=Y();z("disabled",e.disabled)}}function hP(n,t){if(n&1&&(N(0,"span",4),B(1),F()),n&2){let e=Y();$(),Ye("(",e.group.label,")")}}var mP=["mat-internal-form-field",""],fP=["*"];var Ue=(()=>{class n{constructor(){L(i_)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Zs,Zs]})}return n})(),ja=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(t,e,i,r,s){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=s}updateErrorState(){let t=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,s=i?.isErrorState(r,e)??!1;s!==t&&(this.errorState=s,this._stateChanges.next())}},FS=new ee("MAT_DATE_LOCALE",{providedIn:"root",factory:pP});function pP(){return L(YC)}var il="Method not implemented",sn=class{locale;_localeChanges=new me;localeChanges=this._localeChanges;setTime(t,e,i,r){throw new Error(il)}getHours(t){throw new Error(il)}getMinutes(t){throw new Error(il)}getSeconds(t){throw new Error(il)}parseTime(t,e){throw new Error(il)}addSeconds(t,e){throw new Error(il)}getValidDateOrNull(t){return this.isDateInstance(t)&&this.isValid(t)?t:null}deserialize(t){return t==null||this.isDateInstance(t)&&this.isValid(t)?t:this.invalid()}setLocale(t){this.locale=t,this._localeChanges.next()}compareDate(t,e){return this.getYear(t)-this.getYear(e)||this.getMonth(t)-this.getMonth(e)||this.getDate(t)-this.getDate(e)}compareTime(t,e){return this.getHours(t)-this.getHours(e)||this.getMinutes(t)-this.getMinutes(e)||this.getSeconds(t)-this.getSeconds(e)}sameDate(t,e){if(t&&e){let i=this.isValid(t),r=this.isValid(e);return i&&r?!this.compareDate(t,e):i==r}return t==e}sameTime(t,e){if(t&&e){let i=this.isValid(t),r=this.isValid(e);return i&&r?!this.compareTime(t,e):i==r}return t==e}clampDate(t,e,i){return e&&this.compareDate(t,e)<0?e:i&&this.compareDate(t,i)>0?i:t}},nl=new ee("mat-date-formats"),gP=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/,_P=/^(\d?\d)[:.](\d?\d)(?:[:.](\d?\d))?\s*(AM|PM)?$/i;function n_(n,t){let e=Array(n);for(let i=0;i{class n extends sn{useUtcForDisplay=!1;_matDateLocale=L(FS,{optional:!0});constructor(){super();let e=L(FS,{optional:!0});e!==void 0&&(this._matDateLocale=e),super.setLocale(this._matDateLocale)}getYear(e){return e.getFullYear()}getMonth(e){return e.getMonth()}getDate(e){return e.getDate()}getDayOfWeek(e){return e.getDay()}getMonthNames(e){let i=new Intl.DateTimeFormat(this.locale,{month:e,timeZone:"utc"});return n_(12,r=>this._format(i,new Date(2017,r,1)))}getDateNames(){let e=new Intl.DateTimeFormat(this.locale,{day:"numeric",timeZone:"utc"});return n_(31,i=>this._format(e,new Date(2017,0,i+1)))}getDayOfWeekNames(e){let i=new Intl.DateTimeFormat(this.locale,{weekday:e,timeZone:"utc"});return n_(7,r=>this._format(i,new Date(2017,0,r+1)))}getYearName(e){let i=new Intl.DateTimeFormat(this.locale,{year:"numeric",timeZone:"utc"});return this._format(i,e)}getFirstDayOfWeek(){if(typeof Intl<"u"&&Intl.Locale){let e=new Intl.Locale(this.locale),i=(e.getWeekInfo?.()||e.weekInfo)?.firstDay??0;return i===7?0:i}return 0}getNumDaysInMonth(e){return this.getDate(this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+1,0))}clone(e){return new Date(e.getTime())}createDate(e,i,r){let s=this._createDateWithOverflow(e,i,r);return s.getMonth()!=i,s}today(){return new Date}parse(e,i){return typeof e=="number"?new Date(e):e?new Date(Date.parse(e)):null}format(e,i){if(!this.isValid(e))throw Error("NativeDateAdapter: Cannot format invalid date.");let r=new Intl.DateTimeFormat(this.locale,$e(j({},i),{timeZone:"utc"}));return this._format(r,e)}addCalendarYears(e,i){return this.addCalendarMonths(e,i*12)}addCalendarMonths(e,i){let r=this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+i,this.getDate(e));return this.getMonth(r)!=((this.getMonth(e)+i)%12+12)%12&&(r=this._createDateWithOverflow(this.getYear(r),this.getMonth(r),0)),r}addCalendarDays(e,i){return this._createDateWithOverflow(this.getYear(e),this.getMonth(e),this.getDate(e)+i)}toIso8601(e){return[e.getUTCFullYear(),this._2digit(e.getUTCMonth()+1),this._2digit(e.getUTCDate())].join("-")}deserialize(e){if(typeof e=="string"){if(!e)return null;if(gP.test(e)){let i=new Date(e);if(this.isValid(i))return i}}return super.deserialize(e)}isDateInstance(e){return e instanceof Date}isValid(e){return!isNaN(e.getTime())}invalid(){return new Date(NaN)}setTime(e,i,r,s){let a=this.clone(e);return a.setHours(i,r,s,0),a}getHours(e){return e.getHours()}getMinutes(e){return e.getMinutes()}getSeconds(e){return e.getSeconds()}parseTime(e,i){if(typeof e!="string")return e instanceof Date?new Date(e.getTime()):null;let r=e.trim();if(r.length===0)return null;let s=this._parseTimeString(r);if(s===null){let a=r.replace(/[^0-9:(AM|PM)]/gi,"").trim();a.length>0&&(s=this._parseTimeString(a))}return s||this.invalid()}addSeconds(e,i){return new Date(e.getTime()+i*1e3)}_createDateWithOverflow(e,i,r){let s=new Date;return s.setFullYear(e,i,r),s.setHours(0,0,0,0),s}_2digit(e){return("00"+e).slice(-2)}_format(e,i){let r=new Date;return r.setUTCFullYear(i.getFullYear(),i.getMonth(),i.getDate()),r.setUTCHours(i.getHours(),i.getMinutes(),i.getSeconds(),i.getMilliseconds()),e.format(r)}_parseTimeString(e){let i=e.toUpperCase().match(_P);if(i){let r=parseInt(i[1]),s=parseInt(i[2]),a=i[3]==null?void 0:parseInt(i[3]),o=i[4];if(r===12?r=o==="AM"?0:r:o==="PM"&&(r+=12),r_(r,0,23)&&r_(s,0,59)&&(a==null||r_(a,0,59)))return this.setTime(this.today(),r,s,a||0)}return null}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function r_(n,t,e){return!isNaN(n)&&n>=t&&n<=e}var bP={parse:{dateInput:null,timeInput:null},display:{dateInput:{year:"numeric",month:"numeric",day:"numeric"},timeInput:{hour:"numeric",minute:"numeric"},monthYearLabel:{year:"numeric",month:"short"},dateA11yLabel:{year:"numeric",month:"long",day:"numeric"},monthYearA11yLabel:{year:"numeric",month:"long"},timeOptionLabel:{hour:"numeric",minute:"numeric"}}};var c_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[yP()]})}return n})();function yP(n=bP){return[{provide:sn,useClass:vP},{provide:nl,useValue:n}]}var $c=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Di=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,r){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return n})();var _n=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(_n||{}),o_=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=_n.HIDDEN;constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r}fadeOut(){this._renderer.fadeOutRipple(this)}},PS=Ai({passive:!0,capture:!0}),l_=class{_events=new Map;addHandler(t,e,i,r){let s=this._events.get(e);if(s){let a=s.get(i);a?a.add(r):s.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,PS)})}removeHandler(t,e,i){let r=this._events.get(t);if(!r)return;let s=r.get(e);s&&(s.delete(i),s.size===0&&r.delete(e),r.size===0&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,PS)))}_delegateEventHandler=t=>{let e=gn(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(s=>s.handleEvent(t))})}},Xh={enterDuration:225,exitDuration:150},CP=800,US=Ai({passive:!0,capture:!0}),$S=["mousedown","touchstart"],VS=["mouseup","mouseleave","touchend","touchcancel"],wP=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return n})(),Jh=class n{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new l_;constructor(t,e,i,r,s){this._target=t,this._ngZone=e,this._platform=r,r.isBrowser&&(this._containerElement=rn(i)),s&&s.get(wt).load(wP)}fadeInRipple(t,e,i={}){let r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s=j(j({},Xh),i.animation);i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);let a=i.radius||xP(t,e,r),o=t-r.left,l=e-r.top,c=s.enterDuration,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=`${o-a}px`,u.style.top=`${l-a}px`,u.style.height=`${a*2}px`,u.style.width=`${a*2}px`,i.color!=null&&(u.style.backgroundColor=i.color),u.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(u);let d=window.getComputedStyle(u),h=d.transitionProperty,m=d.transitionDuration,f=h==="none"||m==="0s"||m==="0s, 0s"||r.width===0&&r.height===0,g=new o_(this,u,i,f);u.style.transform="scale3d(1, 1, 1)",g.state=_n.FADING_IN,i.persistent||(this._mostRecentTransientRipple=g);let v=null;return!f&&(c||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let w=()=>{v&&(v.fallbackTimer=null),clearTimeout(k),this._finishRippleTransition(g)},C=()=>this._destroyRipple(g),k=setTimeout(C,c+100);u.addEventListener("transitionend",w),u.addEventListener("transitioncancel",C),v={onTransitionEnd:w,onTransitionCancel:C,fallbackTimer:k}}),this._activeRipples.set(g,v),(f||!c)&&this._finishRippleTransition(g),g}fadeOutRipple(t){if(t.state===_n.FADING_OUT||t.state===_n.HIDDEN)return;let e=t.element,i=j(j({},Xh),t.config.animation);e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=_n.FADING_OUT,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){let e=rn(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,$S.forEach(i=>{n._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){t.type==="mousedown"?this._onMousedown(t):t.type==="touchstart"?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{VS.forEach(e=>{this._triggerElement.addEventListener(e,this,US)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===_n.FADING_IN?this._startFadeOutTransition(t):t.state===_n.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){let e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=_n.VISIBLE,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){let e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=_n.HIDDEN,e!==null&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel),e.fallbackTimer!==null&&clearTimeout(e.fallbackTimer)),t.element.remove()}_onMousedown(t){let e=Gh(t),i=this._lastTouchStartEvent&&Date.now(){let e=t.state===_n.VISIBLE||t.config.terminateOnPointerUp&&t.state===_n.FADING_IN;!t.config.persistent&&e&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let t=this._triggerElement;t&&($S.forEach(e=>n._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&(VS.forEach(e=>t.removeEventListener(e,this,US)),this._pointerUpEventsRegistered=!1))}};function xP(n,t,e){let i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),r=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+r*r)}var tm=new ee("mat-ripple-global-options"),yn=(()=>{class n{_elementRef=L(Ae);_animationMode=L(Ot,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let e=L(Ne),i=L(ct),r=L(tm,{optional:!0}),s=L(gt);this._globalOptions=r||{},this._rippleRenderer=new Jh(this,e,this._elementRef,i,s)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:j(j(j({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return typeof e=="number"?this._rippleRenderer.fadeInRipple(e,i,j(j({},this.rippleConfig),r)):this._rippleRenderer.fadeInRipple(0,0,j(j({},this.rippleConfig),e))}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mat-ripple-unbounded",r.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return n})(),cs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})(),SP=(()=>{class n{_animationMode=L(Ot,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){i&2&&ke("mat-pseudo-checkbox-indeterminate",r.state==="indeterminate")("mat-pseudo-checkbox-checked",r.state==="checked")("mat-pseudo-checkbox-disabled",r.disabled)("mat-pseudo-checkbox-minimal",r.appearance==="minimal")("mat-pseudo-checkbox-full",r.appearance==="full")("_mat-animation-noopable",r._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,r){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return n})(),kP=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue]})}return n})(),im=new ee("MAT_OPTION_PARENT_COMPONENT"),nm=new ee("MatOptgroup");var em=class{source;isUserInput;constructor(t,e=!1){this.source=t,this.isUserInput=e}},ar=(()=>{class n{_element=L(Ae);_changeDetectorRef=L(Xe);_parent=L(im,{optional:!0});group=L(nm,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=L(Ft).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new oe;_text;_stateChanges=new me;constructor(){L(wt).load(Di),L(wt).load(os),this._signalDisableRipple=!!this._parent&&Ta(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){let r=this._getHostElement();typeof r.focus=="function"&&r.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(e.keyCode===13||e.keyCode===32)&&!Vi(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new em(this,e))}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(i&1&&Be(oP,7),i&2){let s;Te(s=Ee())&&(r._text=s.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){i&1&&J("click",function(){return r._selectViaInteraction()})("keydown",function(a){return r._handleKeydown(a)}),i&2&&(Rn("id",r.id),Me("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),ke("mdc-list-item--selected",r.selected)("mat-mdc-option-multiple",r.multiple)("mat-mdc-option-active",r.active)("mdc-list-item--disabled",r.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",be]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],features:[Qe],ngContentSelectors:cP,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){i&1&&(tt(lP),le(0,uP,1,2,"mat-pseudo-checkbox",1),Fe(1),N(2,"span",2,0),Fe(4,1),F(),le(5,dP,1,1,"mat-pseudo-checkbox",3)(6,hP,2,1,"span",4),ne(7,"div",5)),i&2&&(et(r.multiple?0:-1),$(5),et(!r.multiple&&r.selected&&!r.hideSingleSelectionIndicator?5:-1),$(),et(r.group&&r.group._inert?6:-1),$(),z("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[SP,yn],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return n})();function u_(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,n-i+t):e}var rl=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[cs,Ue,kP]})}return n})(),BS={capture:!0},zS=["focus","mousedown","mouseenter","touchstart"],s_="mat-ripple-loader-uninitialized",a_="mat-ripple-loader-class-name",HS="mat-ripple-loader-centered",Zh="mat-ripple-loader-disabled",jS=(()=>{class n{_document=L(it,{optional:!0});_animationMode=L(Ot,{optional:!0});_globalRippleOptions=L(tm,{optional:!0});_platform=L(ct);_ngZone=L(Ne);_injector=L(gt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let e of zS)this._document?.addEventListener(e,this._onInteraction,BS)})}ngOnDestroy(){let e=this._hosts.keys();for(let i of e)this.destroyRipple(i);for(let i of zS)this._document?.removeEventListener(i,this._onInteraction,BS)}configureRipple(e,i){e.setAttribute(s_,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(a_))&&e.setAttribute(a_,i.className||""),i.centered&&e.setAttribute(HS,""),i.disabled&&e.setAttribute(Zh,"")}setDisabled(e,i){let r=this._hosts.get(e);r?(r.target.rippleDisabled=i,!i&&!r.hasSetUpEvents&&(r.hasSetUpEvents=!0,r.renderer.setupTriggerEvents(e))):i?e.setAttribute(Zh,""):e.removeAttribute(Zh)}_onInteraction=e=>{let i=gn(e);if(i instanceof HTMLElement){let r=i.closest(`[${s_}="${this._globalRippleOptions?.namespace??""}"]`);r&&this._createRipple(r)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(a_)),e.append(i);let r=this._animationMode==="NoopAnimations",s=this._globalRippleOptions,a=r?0:s?.animation?.enterDuration??Xh.enterDuration,o=r?0:s?.animation?.exitDuration??Xh.exitDuration,l={rippleDisabled:r||s?.disabled||e.hasAttribute(Zh),rippleConfig:{centered:e.hasAttribute(HS),terminateOnPointerUp:s?.terminateOnPointerUp,animation:{enterDuration:a,exitDuration:o}}},c=new Jh(l,this._ngZone,i,this._platform,this._injector),u=!l.rippleDisabled;u&&c.setupTriggerEvents(e),this._hosts.set(e,{target:l,renderer:c,hasSetUpEvents:u}),e.removeAttribute(s_)}destroyRipple(e){let i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),sl=(()=>{class n{labelPosition;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mdc-form-field--align-end",r.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:mP,ngContentSelectors:fP,decls:1,vars:0,template:function(i,r){i&1&&(tt(),Fe(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return n})();var MP=["*"],rm;function TP(){if(rm===void 0&&(rm=null,typeof window<"u")){let n=window;n.trustedTypes!==void 0&&(rm=n.trustedTypes.createPolicy("angular#components",{createHTML:t=>t}))}return rm}function Vc(n){return TP()?.createHTML(n)||n}function WS(n){return Error(`Unable to find icon with the name "${n}"`)}function EP(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function qS(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function GS(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}var us=class{url;svgText;options;svgElement;constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}},IP=(()=>{class n{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,r,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._document=r}addSvgIcon(e,i,r){return this.addSvgIconInNamespace("",e,i,r)}addSvgIconLiteral(e,i,r){return this.addSvgIconLiteralInNamespace("",e,i,r)}addSvgIconInNamespace(e,i,r,s){return this._addSvgIconConfig(e,i,new us(r,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,r,s){let a=this._sanitizer.sanitize(wr.HTML,r);if(!a)throw GS(r);let o=Vc(a);return this._addSvgIconConfig(e,i,new us("",o,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,r){return this._addSvgIconSetConfig(e,new us(i,null,r))}addSvgIconSetLiteralInNamespace(e,i,r){let s=this._sanitizer.sanitize(wr.HTML,i);if(!s)throw GS(i);let a=Vc(s);return this._addSvgIconSetConfig(e,new us("",a,r))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){let i=this._sanitizer.sanitize(wr.RESOURCE_URL,e);if(!i)throw qS(e);let r=this._cachedIconsByUrl.get(i);return r?_e(sm(r)):this._loadSvgIconFromConfig(new us(e,null)).pipe(Et(s=>this._cachedIconsByUrl.set(i,s)),Le(s=>sm(s)))}getNamedSvgIcon(e,i=""){let r=KS(i,e),s=this._svgIconConfigs.get(r);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(r,s),this._getSvgFromConfig(s);let a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):er(WS(r))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?_e(sm(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Le(i=>sm(i)))}_getSvgFromIconSetConfigs(e,i){let r=this._extractIconWithNameFromAnySet(e,i);if(r)return _e(r);let s=i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Zi(o=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(wr.RESOURCE_URL,a.url)} failed: ${o.message}`;return this._errorHandler.handleError(new Error(c)),_e(null)})));return To(s).pipe(Le(()=>{let a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw WS(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let r=i.length-1;r>=0;r--){let s=i[r];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){let a=this._svgElementFromConfig(s),o=this._extractSvgIconFromSet(a,e,s.options);if(o)return o}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(Et(i=>e.svgText=i),Le(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?_e(null):this._fetchIcon(e).pipe(Et(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,r){let s=e.querySelector(`[id="${i}"]`);if(!s)return null;let a=s.cloneNode(!0);if(a.removeAttribute("id"),a.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(a,r);if(a.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(a),r);let o=this._svgElementFromString(Vc(""));return o.appendChild(a),this._setSvgAttributes(o,r)}_svgElementFromString(e){let i=this._document.createElement("DIV");i.innerHTML=e;let r=i.querySelector("svg");if(!r)throw Error(" tag not found");return r}_toSvgElement(e){let i=this._svgElementFromString(Vc("")),r=e.attributes;for(let s=0;sVc(c)),Io(()=>this._inProgressUrlFetches.delete(a)),IC());return this._inProgressUrlFetches.set(a,l),l}_addSvgIconConfig(e,i,r){return this._svgIconConfigs.set(KS(e,i),r),this}_addSvgIconSetConfig(e,i){let r=this._iconSetConfigs.get(e);return r?r.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){let i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let r=0;rt?t.pathname+t.search:""}}var QS=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],OP=QS.map(n=>`[${n}]`).join(", "),NP=/^url\(['"]?#(.*?)['"]?\)$/,$n=(()=>{class n{_elementRef=L(Ae);_iconRegistry=L(IP);_location=L(RP);_errorHandler=L(zd);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){let i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){let i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Mt.EMPTY;constructor(){let e=L(new $i("aria-hidden"),{optional:!0}),i=L(DP,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];let i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let e=this._elementsWithExternalReferences;if(e&&e.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){let e=this._elementRef.nativeElement,i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let r=e.childNodes[i];(r.nodeType!==1||r.nodeName.toLowerCase()==="svg")&&r.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(r=>r.length>0);this._previousFontSetClass.forEach(r=>e.classList.remove(r)),i.forEach(r=>e.classList.add(r)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return typeof e=="string"?e.trim().split(" ")[0]:e}_prependPathToReferences(e){let i=this._elementsWithExternalReferences;i&&i.forEach((r,s)=>{r.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){let i=e.querySelectorAll(OP),r=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{let o=i[s],l=o.getAttribute(a),c=l?l.match(NP):null;if(c){let u=r.get(o);u||(u=[],r.set(o,u)),u.push({name:a,value:c[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){let[i,r]=this._splitIconName(e);i&&(this._svgNamespace=i),r&&(this._svgName=r),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(r,i).pipe(jt(1)).subscribe(s=>this._setSvgElement(s),s=>{let a=`Error retrieving icon ${i}:${r}! ${s.message}`;this._errorHandler.handleError(new Error(a))})}}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,r){i&2&&(Me("data-mat-icon-type",r._usingFontIcon()?"font":"svg")("data-mat-icon-name",r._svgName||r.fontIcon)("data-mat-icon-namespace",r._svgNamespace||r.fontSet)("fontIcon",r._usingFontIcon()?r.fontIcon:null),bt(r.color?"mat-"+r.color:""),ke("mat-icon-inline",r.inline)("mat-icon-no-color",r.color!=="primary"&&r.color!=="accent"&&r.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",be],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[Qe],ngContentSelectors:MP,decls:1,vars:0,template:function(i,r){i&1&&(tt(),Fe(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return n})(),Bc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var ZS=(()=>{class n{constructor(e,i,r){if(this.translateService=e,this.fhirConfigService=i,this.hashUrlRedirectionService=r,this.version=window.MATCHBOX_VERSION,r.isHashUrl()&&r.redirectHashUrl(),e.setDefaultLang("de"),e.use(e.getBrowserLang()),location.origin==="http://localhost:4200")console.log("note: using local dev mag system for "+location.origin),i.changeFhirMicroService("http://localhost:8080/matchboxv3/fhir");else{let a=window.MATCHBOX_BASE_PATH+"/fhir";i.changeFhirMicroService(a),console.log("fhir endpoint "+a)}}static{this.\u0275fac=function(i){return new(i||n)(Se(Dc),Se(Fn),Se(Nh))}}static{this.\u0275cmp=he({type:n,selectors:[["app-root"]],standalone:!1,decls:43,vars:1,consts:[["routerLink","/",1,"logo-container"],["alt","Matchbox logo","height","40","src","assets/matchbox_logo_color.png","width","95"],[1,"version"],["routerLink","/"],["routerLink","/CapabilityStatement"],["routerLink","/igs"],["routerLink","/mappinglanguage"],["routerLink","/transform"],["routerLink","/validate"],["routerLink","/settings"],[1,"mat-typography"]],template:function(i,r){i&1&&(N(0,"header")(1,"div",0),ne(2,"img",1),N(3,"span",2),B(4),F()(),N(5,"nav")(6,"div",3)(7,"mat-icon"),B(8,"home"),F(),N(9,"span"),B(10,"Home"),F()(),N(11,"div",4)(12,"mat-icon"),B(13,"info"),F(),N(14,"span"),B(15,"CapabilityStatement"),F()(),N(16,"div",5)(17,"mat-icon"),B(18,"info"),F(),N(19,"span"),B(20,"IGs"),F()(),N(21,"div",6)(22,"mat-icon"),B(23,"search"),F(),N(24,"span"),B(25,"FHIR Mapping"),F()(),N(26,"div",7)(27,"mat-icon"),B(28,"transform"),F(),N(29,"span"),B(30,"Transform"),F()(),N(31,"div",8)(32,"mat-icon"),B(33,"rule"),F(),N(34,"span"),B(35,"Validate"),F()(),N(36,"div",9)(37,"mat-icon"),B(38,"settings"),F(),N(39,"span"),B(40,"Settings"),F()()()(),N(41,"main",10),ne(42,"router-outlet"),F()),i&2&&($(4),Ye("v",r.version,""))},dependencies:[$n,lg,Ch],styles:[".example-fill-remaining-space[_ngcontent-%COMP%]{flex:1 1 auto}mat-toolbar[_ngcontent-%COMP%]{padding-left:0}mat-toolbar[_ngcontent-%COMP%] .home-link[_ngcontent-%COMP%]{height:100%;display:flex;justify-content:center;align-items:center;cursor:pointer}mat-toolbar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{display:flex;height:100%;width:160px;justify-content:center;align-items:center}mat-toolbar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:calc(100% - 1.2em)}header[_ngcontent-%COMP%]{background:#97d6ba;display:flex;flex-wrap:wrap;flex:0 1 auto;padding:10px 2em;justify-content:space-between}header[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{display:inline-block}header[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{color:#2e7d73;font-size:.9em;display:inline-block;margin:4px 0 0 10px;vertical-align:top}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%]{display:flex;margin-top:10px}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block;margin:0 1rem;cursor:pointer;color:#3d5c73}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:8px;vertical-align:middle;color:#d2eade}main[_ngcontent-%COMP%]{width:100%;margin:0 auto}@media (max-width: 1140px){header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin:0 7px}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:4px;font-size:18px;width:18px;height:18px}}"]})}}return n})();var Sk=Os(m_()),WQ=Os(ek()),qQ=Os(ik());var Wt=class n{constructor(t,e){this.operationOutcome=e,this.issues=t??[]}static fromOperationOutcome(t){let e=t.issue?.map(i=>cm.fromOoIssue(i));return new n(e,t)}static fromMatchboxError(t){let e=new n;return e.issues.push(new cm("fatal","matchbox",t,void 0,void 0,void 0,void 0)),e}},cm=class n{constructor(t,e,i,r,s,a,o,l,c){this.sliceInfo=[],this.severity=t,this.code=e,this.text=i,this.expression=r,this.line=s,this.col=a,this.sliceInfo=o??[],this.markdown=l,this.details=c,l&&this.text.includes("```markdown")&&(this.text=this.text.substring(11,this.text.length-3))}static fromOoIssue(t){let e;t.expression&&t.expression.length?e=t.expression[0]:t.location&&t.location.length&&(e=t.location[0]);let i=t.diagnostics?.indexOf("Slice info: 1.)"),r,s=null;i>=0?(r=t.diagnostics.substring(0,i).trimEnd(),s=t.diagnostics.substring(i+15).trimStart().split(/\d+[.][)]/)):r=t.diagnostics;let a=n.getExtensionStringValue(t,"http://hl7.org/fhir/StructureDefinition/rendering-style")=="markdown",o=t.details?t.details.text:void 0;return new n(t.severity,t.code,r,e,n.getLineNo(t),n.getColNo(t),s,a,o)}static getLineNo(t){let e=n.getExtensionIntValue(t,"http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line");return e&&e>0?e:void 0}static getColNo(t){let e=n.getExtensionIntValue(t,"http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col");return e&&e>0?e:void 0}static getExtensionIntValue(t,e){if(t.extension){for(let i of t.extension)if(i.url===e)return i.valueInteger}}static getExtensionStringValue(t,e){if(t.extension){for(let i of t.extension)if(i.url===e)return i.valueString}}};var FP=["determinateSpinner"];function PP(n,t){if(n&1&&(Qt(),N(0,"svg",11),ne(1,"circle",12),F()),n&2){let e=Y();Me("viewBox",e._viewBox()),$(),ai("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Me("r",e._circleRadius())}}var UP=new ee("mat-progress-spinner-default-options",{providedIn:"root",factory:$P});function $P(){return{diameter:nk}}var nk=100,VP=10,Xs=(()=>{class n{_elementRef=L(Ae);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){let e=L(Ot,{optional:!0}),i=L(UP);this._noopAnimations=e==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=nk;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_circleRadius(){return(this.diameter-VP)/2}_viewBox(){let e=this._circleRadius()*2+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(i&1&&Be(FP,5),i&2){let s;Te(s=Ee())&&(r._determinateCircle=s.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){i&2&&(Me("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",r.mode==="determinate"?r.value:null)("mode",r.mode),bt("mat-"+r.color),ai("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),ke("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate",r.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",zt],diameter:[2,"diameter","diameter",zt],strokeWidth:[2,"strokeWidth","strokeWidth",zt]},exportAs:["matProgressSpinner"],features:[Qe],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,r){if(i&1&&(le(0,PP,2,8,"ng-template",null,0,Ea),N(2,"div",2,1),Qt(),N(4,"svg",3),ne(5,"circle",4),F()(),Xr(),N(6,"div",5)(7,"div",6)(8,"div",7),Ro(9,8),F(),N(10,"div",9),Ro(11,8),F(),N(12,"div",10),Ro(13,8),F()()()),i&2){let s=Zt(1);$(4),Me("viewBox",r._viewBox()),$(),ai("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),Me("r",r._circleRadius()),$(4),z("ngTemplateOutlet",s),$(2),z("ngTemplateOutlet",s),$(2),z("ngTemplateOutlet",s)}},dependencies:[eh],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return n})();var zc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue]})}return n})();function g_(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var qa=g_();function ck(n){qa=n}var Wc={exec:()=>null};function It(n,t=""){let e=typeof n=="string"?n:n.source,i={replace:(r,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(Bi.caret,"$1"),e=e.replace(r,a),i},getRegex:()=>new RegExp(e,t)};return i}var Bi={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i")},BP=/^(?:[ \t]*(?:\n|$))+/,zP=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,HP=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Gc=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,jP=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,uk=/(?:[*+-]|\d{1,9}[.)])/,dk=It(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,uk).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),__=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,WP=/^[^\n]+/,v_=/(?!\s*\])(?:\\.|[^\[\]\\])+/,qP=It(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",v_).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),GP=It(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,uk).getRegex(),mm="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",b_=/|$))/,KP=It("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",b_).replace("tag",mm).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),hk=It(__).replace("hr",Gc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",mm).getRegex(),YP=It(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",hk).getRegex(),y_={blockquote:YP,code:zP,def:qP,fences:HP,heading:jP,hr:Gc,html:KP,lheading:dk,list:GP,newline:BP,paragraph:hk,table:Wc,text:WP},rk=It("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Gc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",mm).getRegex(),QP=$e(j({},y_),{table:rk,paragraph:It(__).replace("hr",Gc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",rk).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",mm).getRegex()}),ZP=$e(j({},y_),{html:It(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",b_).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Wc,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:It(__).replace("hr",Gc).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",dk).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),mk=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,XP=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,fk=/^( {2,}|\\)\n(?!\s*$)/,JP=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,i3=It(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Kc).getRegex(),n3=It("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Kc).getRegex(),r3=It("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Kc).getRegex(),s3=It(/\\([punct])/,"gu").replace(/punct/g,Kc).getRegex(),a3=It(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),o3=It(b_).replace("(?:-->|$)","-->").getRegex(),l3=It("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",o3).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),hm=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,c3=It(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",hm).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),pk=It(/^!?\[(label)\]\[(ref)\]/).replace("label",hm).replace("ref",v_).getRegex(),gk=It(/^!?\[(ref)\](?:\[\])?/).replace("ref",v_).getRegex(),u3=It("reflink|nolink(?!\\()","g").replace("reflink",pk).replace("nolink",gk).getRegex(),C_={_backpedal:Wc,anyPunctuation:s3,autolink:a3,blockSkip:t3,br:fk,code:XP,del:Wc,emStrongLDelim:i3,emStrongRDelimAst:n3,emStrongRDelimUnd:r3,escape:mk,link:c3,nolink:gk,punctuation:e3,reflink:pk,reflinkSearch:u3,tag:l3,text:JP,url:Wc},d3=$e(j({},C_),{link:It(/^!?\[(label)\]\((.*?)\)/).replace("label",hm).getRegex(),reflink:It(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",hm).getRegex()}),f_=$e(j({},C_),{escape:It(mk).replace("])","~|])").getRegex(),url:It(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},sk=n=>m3[n];function Er(n,t){if(t){if(Bi.escapeTest.test(n))return n.replace(Bi.escapeReplace,sk)}else if(Bi.escapeTestNoEncode.test(n))return n.replace(Bi.escapeReplaceNoEncode,sk);return n}function ak(n){try{n=encodeURI(n).replace(Bi.percentDecode,"%")}catch{return null}return n}function ok(n,t){let e=n.replace(Bi.findPipe,(s,a,o)=>{let l=!1,c=a;for(;--c>=0&&o[c]==="\\";)l=!l;return l?"|":" |"}),i=e.split(Bi.splitPipe),r=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length{let a=s.match(e.other.beginningSpace);if(a===null)return s;let[o]=a;return o.length>=r.length?s.slice(r.length):s}).join(` -`)}var ll=class{options;rules;lexer;constructor(t){this.options=t||qa}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let i=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?i:jc(i,` -`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let i=e[0],r=p3(i,e[3]||"",this.rules);return{type:"code",raw:i,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let i=e[2].trim();if(this.rules.other.endingHash.test(i)){let r=jc(i,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(i=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:jc(e[0],` -`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let i=jc(e[0],` -`).split(` -`),r="",s="",a=[];for(;i.length>0;){let o=!1,l=[],c;for(c=0;c1,s={type:"list",raw:"",ordered:r,start:r?+i.slice(0,-1):"",loose:!1,items:[]};i=r?`\\d{1,9}\\${i.slice(-1)}`:`\\${i}`,this.options.pedantic&&(i=r?i:"[*+-]");let a=this.rules.other.listItemRegex(i),o=!1;for(;t;){let l=!1,c="",u="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let d=e[2].split(` -`,1)[0].replace(this.rules.other.listReplaceTabs,w=>" ".repeat(3*w.length)),h=t.split(` -`,1)[0],m=!d.trim(),f=0;if(this.options.pedantic?(f=2,u=d.trimStart()):m?f=e[1].length+1:(f=e[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,u=d.slice(f),f+=e[1].length),m&&this.rules.other.blankLine.test(h)&&(c+=h+` -`,t=t.substring(h.length+1),l=!0),!l){let w=this.rules.other.nextBulletRegex(f),C=this.rules.other.hrRegex(f),k=this.rules.other.fencesBeginRegex(f),x=this.rules.other.headingBeginRegex(f),y=this.rules.other.htmlBeginRegex(f);for(;t;){let E=t.split(` -`,1)[0],T;if(h=E,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting," "),T=h):T=h.replace(this.rules.other.tabCharGlobal," "),k.test(h)||x.test(h)||y.test(h)||w.test(h)||C.test(h))break;if(T.search(this.rules.other.nonSpaceChar)>=f||!h.trim())u+=` -`+T.slice(f);else{if(m||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||k.test(d)||x.test(d)||C.test(d))break;u+=` -`+h}!m&&!h.trim()&&(m=!0),c+=E+` -`,t=t.substring(E.length+1),d=T.slice(f)}}s.loose||(o?s.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0));let g=null,v;this.options.gfm&&(g=this.rules.other.listIsTask.exec(u),g&&(v=g[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),s.items.push({type:"list_item",raw:c,task:!!g,checked:v,loose:!1,text:u,tokens:[]}),s.raw+=c}s.items[s.items.length-1].raw=s.items[s.items.length-1].raw.trimEnd(),s.items[s.items.length-1].text=s.items[s.items.length-1].text.trimEnd(),s.raw=s.raw.trimEnd();for(let l=0;ld.type==="space"),u=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));s.loose=u}if(s.loose)for(let l=0;l({text:l,tokens:this.lexer.inline(l),header:!1,align:a.align[c]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let i=e[1].charAt(e[1].length-1)===` -`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:i,tokens:this.lexer.inline(i)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let i=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(i)){if(!this.rules.other.endAngleBracket.test(i))return;let a=jc(i.slice(0,-1),"\\");if((i.length-a.length)%2===0)return}else{let a=f3(e[2],"()");if(a>-1){let l=(e[0].indexOf("!")===0?5:4)+e[1].length+a;e[2]=e[2].substring(0,a),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let r=e[2],s="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(r);a&&(r=a[1],s=a[3])}else s=e[3]?e[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(i)?r=r.slice(1):r=r.slice(1,-1)),lk(e,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){let r=(i[2]||i[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=e[r.toLowerCase()];if(!s){let a=i[0].charAt(0);return{type:"text",raw:a,text:a}}return lk(i,s,i[0],this.lexer,this.rules)}}emStrong(t,e,i=""){let r=this.rules.inline.emStrongLDelim.exec(t);if(!r||r[3]&&i.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[2]||"")||!i||this.rules.inline.punctuation.exec(i)){let a=[...r[0]].length-1,o,l,c=a,u=0,d=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,e=e.slice(-1*t.length+a);(r=d.exec(e))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(l=[...o].length,r[3]||r[4]){c+=l;continue}else if((r[5]||r[6])&&a%3&&!((a+l)%3)){u+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+u);let h=[...r[0]][0].length,m=t.slice(0,a+r.index+h+l);if(Math.min(a,l)%2){let g=m.slice(1,-1);return{type:"em",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}let f=m.slice(2,-2);return{type:"strong",raw:m,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let i=e[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(i),s=this.rules.other.startingSpaceChar.test(i)&&this.rules.other.endingSpaceChar.test(i);return r&&s&&(i=i.substring(1,i.length-1)),{type:"codespan",raw:e[0],text:i}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let i,r;return e[2]==="@"?(i=e[1],r="mailto:"+i):(i=e[1],r=i),{type:"link",raw:e[0],text:i,href:r,tokens:[{type:"text",raw:i,text:i}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let i,r;if(e[2]==="@")i=e[0],r="mailto:"+i;else{let s;do s=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(s!==e[0]);i=e[0],e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:i,href:r,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let i=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:i}}}},or=class n{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||qa,this.options.tokenizer=this.options.tokenizer||new ll,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={other:Bi,block:dm.normal,inline:Hc.normal};this.options.pedantic?(e.block=dm.pedantic,e.inline=Hc.pedantic):this.options.gfm&&(e.block=dm.gfm,this.options.breaks?e.inline=Hc.breaks:e.inline=Hc.gfm),this.tokenizer.rules=e}static get rules(){return{block:dm,inline:Hc}}static lex(t,e){return new n(e).lex(t)}static lexInline(t,e){return new n(e).inlineTokens(t)}lex(t){t=t.replace(Bi.carriageReturn,` -`),this.blockTokens(t,this.tokens);for(let e=0;e(r=o.call({lexer:this},t,e))?(t=t.substring(r.raw.length),e.push(r),!0):!1))){if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length),r.raw.length===1&&e.length>0?e[e.length-1].raw+=` -`:e.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length),s=e[e.length-1],s&&(s.type==="paragraph"||s.type==="text")?(s.raw+=` -`+r.raw,s.text+=` -`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length),s=e[e.length-1],s&&(s.type==="paragraph"||s.type==="text")?(s.raw+=` -`+r.raw,s.text+=` -`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=s.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),e.push(r);continue}if(a=t,this.options.extensions&&this.options.extensions.startBlock){let o=1/0,l=t.slice(1),c;this.options.extensions.startBlock.forEach(u=>{c=u.call({lexer:this},l),typeof c=="number"&&c>=0&&(o=Math.min(o,c))}),o<1/0&&o>=0&&(a=t.substring(0,o+1))}if(this.state.top&&(r=this.tokenizer.paragraph(a))){s=e[e.length-1],i&&s?.type==="paragraph"?(s.raw+=` -`+r.raw,s.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(r),i=a.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length),s=e[e.length-1],s&&s.type==="text"?(s.raw+=` -`+r.raw,s.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(r);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i,r,s,a=t,o,l,c;if(this.tokens.links){let u=Object.keys(this.tokens.links);if(u.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)u.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)a=a.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(a))!=null;)a=a.slice(0,o.index)+"++"+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(l||(c=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(u=>(i=u.call({lexer:this},t,e))?(t=t.substring(i.raw.length),e.push(i),!0):!1))){if(i=this.tokenizer.escape(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.tag(t)){t=t.substring(i.raw.length),r=e[e.length-1],e.push(i);continue}if(i=this.tokenizer.link(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(i.raw.length),r=e[e.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.emStrong(t,a,c)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.codespan(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.br(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.del(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.autolink(t)){t=t.substring(i.raw.length),e.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t))){t=t.substring(i.raw.length),e.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startInline){let u=1/0,d=t.slice(1),h;this.options.extensions.startInline.forEach(m=>{h=m.call({lexer:this},d),typeof h=="number"&&h>=0&&(u=Math.min(u,h))}),u<1/0&&u>=0&&(s=t.substring(0,u+1))}if(i=this.tokenizer.inlineText(s)){t=t.substring(i.raw.length),i.raw.slice(-1)!=="_"&&(c=i.raw.slice(-1)),l=!0,r=e[e.length-1],r&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(t){let u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return e}},Ir=class{options;parser;constructor(t){this.options=t||qa}space(t){return""}code({text:t,lang:e,escaped:i}){let r=(e||"").match(Bi.notSpaceStart)?.[0],s=t.replace(Bi.endingNewline,"")+` -`;return r?'
'+(i?s:Er(s,!0))+`
-`:"
"+(i?s:Er(s,!0))+`
-`}blockquote({tokens:t}){return`
-${this.parser.parse(t)}
-`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} -`}hr(t){return`
-`}list(t){let e=t.ordered,i=t.start,r="";for(let o=0;o -`+r+" -`}listitem(t){let e="";if(t.task){let i=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&t.tokens[0].type==="paragraph"?(t.tokens[0].text=i+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=i+" "+Er(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:i+" ",text:i+" ",escaped:!0}):e+=i+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • -`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    -`}table(t){let e="",i="";for(let s=0;s${r}`),` - -`+e+` -`+r+`
    -`}tablerow({text:t}){return` -${t} -`}tablecell(t){let e=this.parser.parseInline(t.tokens),i=t.header?"th":"td";return(t.align?`<${i} align="${t.align}">`:`<${i}>`)+e+` -`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${Er(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:i}){let r=this.parser.parseInline(i),s=ak(t);if(s===null)return r;t=s;let a='",a}image({href:t,title:e,text:i}){let r=ak(t);if(r===null)return Er(i);t=r;let s=`${i}{let o=s[a].flat(1/0);i=i.concat(this.walkTokens(o,e))}):s.tokens&&(i=i.concat(this.walkTokens(s.tokens,e)))}}return i}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(i=>{let r=j({},i);if(r.async=this.defaults.async||r.async||!1,i.extensions&&(i.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let a=e.renderers[s.name];a?e.renderers[s.name]=function(...o){let l=s.renderer.apply(this,o);return l===!1&&(l=a.apply(this,o)),l}:e.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[s.level];a?a.unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&(s.level==="block"?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:s.level==="inline"&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),r.extensions=e),i.renderer){let s=this.defaults.renderer||new Ir(this.defaults);for(let a in i.renderer){if(!(a in s))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let o=a,l=i.renderer[o],c=s[o];s[o]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d||""}}r.renderer=s}if(i.tokenizer){let s=this.defaults.tokenizer||new ll(this.defaults);for(let a in i.tokenizer){if(!(a in s))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let o=a,l=i.tokenizer[o],c=s[o];s[o]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d}}r.tokenizer=s}if(i.hooks){let s=this.defaults.hooks||new ol;for(let a in i.hooks){if(!(a in s))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let o=a,l=i.hooks[o],c=s[o];ol.passThroughHooks.has(a)?s[o]=u=>{if(this.defaults.async)return Promise.resolve(l.call(s,u)).then(h=>c.call(s,h));let d=l.call(s,u);return c.call(s,d)}:s[o]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d}}r.hooks=s}if(i.walkTokens){let s=this.defaults.walkTokens,a=i.walkTokens;r.walkTokens=function(o){let l=[];return l.push(a.call(this,o)),s&&(l=l.concat(s.call(this,o))),l}}this.defaults=j(j({},this.defaults),r)}),this}setOptions(t){return this.defaults=j(j({},this.defaults),t),this}lexer(t,e){return or.lex(t,e??this.defaults)}parser(t,e){return lr.parse(t,e??this.defaults)}parseMarkdown(t){return(i,r)=>{let s=j({},r),a=j(j({},this.defaults),s),o=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&s.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof i>"u"||i===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof i!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(i)+", string expected"));a.hooks&&(a.hooks.options=a,a.hooks.block=t);let l=a.hooks?a.hooks.provideLexer():t?or.lex:or.lexInline,c=a.hooks?a.hooks.provideParser():t?lr.parse:lr.parseInline;if(a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(i):i).then(u=>l(u,a)).then(u=>a.hooks?a.hooks.processAllTokens(u):u).then(u=>a.walkTokens?Promise.all(this.walkTokens(u,a.walkTokens)).then(()=>u):u).then(u=>c(u,a)).then(u=>a.hooks?a.hooks.postprocess(u):u).catch(o);try{a.hooks&&(i=a.hooks.preprocess(i));let u=l(i,a);a.hooks&&(u=a.hooks.processAllTokens(u)),a.walkTokens&&this.walkTokens(u,a.walkTokens);let d=c(u,a);return a.hooks&&(d=a.hooks.postprocess(d)),d}catch(u){return o(u)}}}onError(t,e){return i=>{if(i.message+=` -Please report this to https://github.com/markedjs/marked.`,t){let r="

    An error occurred:

    "+Er(i.message+"",!0)+"
    ";return e?Promise.resolve(r):r}if(e)return Promise.reject(i);throw i}}},Wa=new p_;function ft(n,t){return Wa.parse(n,t)}ft.options=ft.setOptions=function(n){return Wa.setOptions(n),ft.defaults=Wa.defaults,ck(ft.defaults),ft};ft.getDefaults=g_;ft.defaults=qa;ft.use=function(...n){return Wa.use(...n),ft.defaults=Wa.defaults,ck(ft.defaults),ft};ft.walkTokens=function(n,t){return Wa.walkTokens(n,t)};ft.parseInline=Wa.parseInline;ft.Parser=lr;ft.parser=lr.parse;ft.Renderer=Ir;ft.TextRenderer=qc;ft.Lexer=or;ft.lexer=or.lex;ft.Tokenizer=ll;ft.Hooks=ol;ft.parse=ft;var hQ=ft.options,mQ=ft.setOptions,fQ=ft.use,pQ=ft.walkTokens,gQ=ft.parseInline;var _Q=lr.parse,vQ=or.lex;var g3=["*"],_3="Copy",v3="Copied",b3=(()=>{class n{constructor(){this._buttonClick$=new me,this.copied$=this._buttonClick$.pipe(Dt(()=>ti(_e(!0),Vd(3e3).pipe(Bd(!1)))),An(),Ps(1)),this.copiedText$=this.copied$.pipe(Gt(!1),Le(e=>e?v3:_3))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=he({type:n,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,r){i&1&&(N(0,"button",0),Ln(1,"async"),J("click",function(){return r.onCopyToClipboardClick()}),B(2),Ln(3,"async"),F()),i&2&&(ke("copied",ir(1,3,r.copied$)),$(2),Ke(ir(3,5,r.copiedText$)))},dependencies:[Lo],encapsulation:2,changeDetection:0})}}return n})(),y3=new ee("CLIPBOARD_OPTIONS");var w_=function(n){return n.CommandLine="command-line",n.LineHighlight="line-highlight",n.LineNumbers="line-numbers",n}(w_||{}),_k=new ee("MARKED_EXTENSIONS"),C3=new ee("MARKED_OPTIONS"),w3=new ee("MERMAID_OPTIONS"),x3="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",S3="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",k3="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",M3="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",T3="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",E3="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",vk=new ee("SECURITY_CONTEXT");var bk=(()=>{class n{get options(){return this._options}set options(e){this._options=j(j({},this.DEFAULT_MARKED_OPTIONS),e)}get renderer(){return this.options.renderer}set renderer(e){this.options.renderer=e}constructor(e,i,r,s,a,o,l,c){this.clipboardOptions=e,this.extensions=i,this.mermaidOptions=s,this.platform=a,this.securityContext=o,this.http=l,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new Ir},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new me,this.reload$=this._reload$.asObservable(),this.options=r}parse(e,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:r,inline:s,emoji:a,mermaid:o,disableSanitizer:l}=i,c=j(j({},this.options),i.markedOptions),u=c.renderer||this.renderer||new Ir;this.extensions&&(this.renderer=this.extendsRendererForExtensions(u)),o&&(this.renderer=this.extendsRendererForMermaid(u));let d=this.trimIndentation(e),h=r?this.decodeHtml(d):d,m=a?this.parseEmoji(h):h,f=this.parseMarked(m,c,s);return(l?f:this.sanitizer.sanitize(this.securityContext,f))||""}render(e,i=this.DEFAULT_RENDER_OPTIONS,r){let{clipboard:s,clipboardOptions:a,katex:o,katexOptions:l,mermaid:c,mermaidOptions:u}=i;o&&this.renderKatex(e,j(j({},this.DEFAULT_KATEX_OPTIONS),l)),c&&this.renderMermaid(e,j(j(j({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),u)),s&&this.renderClipboard(e,r,j(j(j({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),a)),this.highlight(e)}reload(){this._reload$.next()}getSource(e){if(!this.http)throw new Error(E3);return this.http.get(e,{responseType:"text"}).pipe(Le(i=>this.handleExtension(e,i)))}highlight(e){if(!ts(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;e||(e=document);let i=e.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,r=>r.classList.add("language-none")),Prism.highlightAllUnder(e)}decodeHtml(e){if(!ts(this.platform))return e;let i=document.createElement("textarea");return i.innerHTML=e,i.value}extendsRendererForExtensions(e){let i=e;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&ft.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),e}extendsRendererForMermaid(e){let i=e;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return e;let r=e.code;return e.code=s=>s.lang==="mermaid"?`
    ${s.text}
    `:r(s),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,e}handleExtension(e,i){let r=e.lastIndexOf("://"),s=r>-1?e.substring(r+4):e,a=s.lastIndexOf("/"),o=a>-1?s.substring(a+1).split("?")[0]:"",l=o.lastIndexOf("."),c=l>-1?o.substring(l+1):"";return c&&c!=="md"?"```"+c+` -`+i+"\n```":i}parseMarked(e,i,r=!1){if(i.renderer){let s=j({},i.renderer);delete s.\u0275NgxMarkdownRendererExtendedForExtensions,delete s.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,ft.use({renderer:s})}return r?ft.parseInline(e,i):ft.parse(e,i)}parseEmoji(e){if(!ts(this.platform))return e;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(x3);return joypixels.shortnameToUnicode(e)}renderKatex(e,i){if(ts(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(S3);renderMathInElement(e,i)}}renderClipboard(e,i,r){if(!ts(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(M3);if(!i)throw new Error(T3);let{buttonComponent:s,buttonTemplate:a}=r,o=e.querySelectorAll("pre");for(let l=0;ld.classList.add("hover"),u.onmouseleave=()=>d.classList.remove("hover");let h;if(s){let f=i.createComponent(s);h=f.hostView,f.changeDetectorRef.markForCheck()}else if(a)h=i.createEmbeddedView(a);else{let f=i.createComponent(b3);h=f.hostView,f.changeDetectorRef.markForCheck()}let m;h.rootNodes.forEach(f=>{d.appendChild(f),m=new ClipboardJS(f,{text:()=>c.innerText})}),h.onDestroy(()=>m.destroy())}}renderMermaid(e,i=this.DEFAULT_MERMAID_OPTIONS){if(!ts(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(k3);let r=e.querySelectorAll(".mermaid");r.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:r}))}trimIndentation(e){if(!e)return"";let i;return e.split(` -`).map(r=>{let s=i;return r.length>0&&(s=isNaN(s)?r.search(/\S|$/):Math.min(r.search(/\S|$/),s)),isNaN(i)&&(i=s),s?r.substring(s):r}).join(` -`)}static{this.\u0275fac=function(i){return new(i||n)(Oe(y3,8),Oe(_k,8),Oe(C3,8),Oe(w3,8),Oe(Hd),Oe(vk),Oe(js,8),Oe(Ws))}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})(),yk=(()=>{class n{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(e){this._disableSanitizer=this.coerceBooleanProperty(e)}get inline(){return this._inline}set inline(e){this._inline=this.coerceBooleanProperty(e)}get clipboard(){return this._clipboard}set clipboard(e){this._clipboard=this.coerceBooleanProperty(e)}get emoji(){return this._emoji}set emoji(e){this._emoji=this.coerceBooleanProperty(e)}get katex(){return this._katex}set katex(e){this._katex=this.coerceBooleanProperty(e)}get mermaid(){return this._mermaid}set mermaid(e){this._mermaid=this.coerceBooleanProperty(e)}get lineHighlight(){return this._lineHighlight}set lineHighlight(e){this._lineHighlight=this.coerceBooleanProperty(e)}get lineNumbers(){return this._lineNumbers}set lineNumbers(e){this._lineNumbers=this.coerceBooleanProperty(e)}get commandLine(){return this._commandLine}set commandLine(e){this._commandLine=this.coerceBooleanProperty(e)}constructor(e,i,r){this.element=e,this.markdownService=i,this.viewContainerRef=r,this.error=new oe,this.load=new oe,this.ready=new oe,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new me}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(qe(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(e,i=!1){return Pt(this,null,function*(){let r={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},s={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},a=yield this.markdownService.parse(e,r);this.element.nativeElement.innerHTML=a,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,s,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(e){return e!=null&&`${String(e)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:e=>{this.render(e).then(()=>{this.load.emit(e)})},error:e=>this.error.emit(e)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,w_.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,w_.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(e,i){let r=e.querySelectorAll("pre");for(let s=0;s{let o=i[a];if(o){let l=this.toLispCase(a);r.item(s).setAttribute(l,o.toString())}})}toLispCase(e){let i=e.match(/([A-Z])/g);if(!i)return e;let r=e.toString();for(let s=0,a=i.length;s{let i=A3(e)?$e(j({},e),{multi:!0}):{provide:_k,useValue:e,multi:!0};return[...t,i]},[])}var Ck=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[I3(e)]}}static forChild(){return{ngModule:n}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=ge({type:n})}static{this.\u0275inj=pe({imports:[es]})}}return n})();var L3=n=>({clickable:n});function O3(n,t){if(n&1&&(N(0,"span",9),B(1),F()),n&2){let e=Y().$implicit;$(),Ke(e.details)}}function N3(n,t){if(n&1&&(N(0,"p"),B(1),F()),n&2){let e=Y().$implicit;$(),Ke(e.text)}}function F3(n,t){if(n&1&&ne(0,"markdown",10),n&2){let e=Y().$implicit;z("data",e.text)}}function P3(n,t){if(n&1&&(N(0,"li",12),B(1),F()),n&2){let e=t.$implicit;$(),Ye(" ",e," ")}}function U3(n,t){if(n&1&&(N(0,"ol"),le(1,P3,2,1,"li",11),F()),n&2){let e=Y().$implicit;$(),z("ngForOf",e.sliceInfo)}}function $3(n,t){if(n&1){let e=We();N(0,"li",3),J("click",function(){let r=te(e).$implicit,s=Y(2);return ie(s.select.emit(r))}),N(1,"span",4),B(2),F(),ne(3,"span",5)(4,"br"),le(5,O3,2,1,"span",6)(6,N3,2,1,"p",7)(7,F3,1,1,"markdown",8)(8,U3,2,1,"ol",7),F()}if(n&2){let e=t.$implicit,i=Y(2);Kd("issue ",e.severity,""),$(2),Ke(e.severity),$(),z("innerHtml",i.getTemplateHeaderLine(e),nc),$(2),z("ngIf",e.details),$(),z("ngIf",!e.markdown),$(),z("ngIf",e.markdown),$(),z("ngIf",e.sliceInfo.length)}}function V3(n,t){if(n&1&&(N(0,"ul",1),le(1,$3,9,9,"li",2),F()),n&2){let e=Y();z("ngClass",zs(2,L3,e.reactsToClick)),$(),z("ngForOf",e.result.issues)}}var wk=["fatal","error","warning","information"],cl=(()=>{class n{set operationResult(e){this.result=e,this.result&&this.result.issues.length&&this.result.issues.sort(n.sortIssues)}constructor(e){this.sanitized=e,this.select=new oe,this.reactsToClick=!1}ngOnInit(){this.reactsToClick=this.select.observed}static sortIssues(e,i){if(e.markdown)return-1;if(i.markdown)return 1;let r=wk.indexOf(e.severity)-wk.indexOf(i.severity);return r!==0?r:(e.line??0)-(i.line??0)}getTemplateHeaderLine(e){let i="";e.code&&(i+=` [${e.code}]`),i+=": ";let r=[];return e.line&&r.push(`line ${e.line}`),e.col&&r.push(`column ${e.col}`),e.expression&&r.push(`in ${e.expression}`),r.length&&(i+=r.join(", ")+":"),this.sanitized.bypassSecurityTrustHtml(i)}static{this.\u0275fac=function(i){return new(i||n)(Se(Ws))}}static{this.\u0275cmp=he({type:n,selectors:[["app-operation-result"]],inputs:{operationResult:"operationResult"},outputs:{select:"select"},standalone:!1,decls:1,vars:1,consts:[[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"class","click",4,"ngFor","ngForOf"],[3,"click"],[1,"severity"],[3,"innerHtml"],["class","details",4,"ngIf"],[4,"ngIf"],[3,"data",4,"ngIf"],[1,"details"],[3,"data"],["class","slice",4,"ngFor","ngForOf"],[1,"slice"]],template:function(i,r){i&1&&le(0,V3,2,4,"ul",0),i&2&&z("ngIf",r.result)},dependencies:[On,kr,yi,yk],styles:[".card-maps[_ngcontent-%COMP%]{margin-bottom:10px}.app-ace-editor[_ngcontent-%COMP%]{border:2px solid #f8f9fa;box-shadow:0 .5rem 1rem #00000026}ul[_ngcontent-%COMP%]{list-style:none;padding:0}.clickable[_ngcontent-%COMP%] .issue[_ngcontent-%COMP%]{cursor:pointer}.issue[_ngcontent-%COMP%]{border:1px solid #e1e1e1;background:#fbfbfb;border-radius:5px;padding:5px 8px;--color: #000;border-left:4px solid var(--color);margin-bottom:4px}.issue[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:2px 0 0}.issue[_ngcontent-%COMP%] .severity[_ngcontent-%COMP%]{color:var(--color);font-weight:600}.issue.fatal[_ngcontent-%COMP%], .issue.error[_ngcontent-%COMP%]{--color: #d9534f}.issue.warning[_ngcontent-%COMP%]{--color: #f0ad4e}.issue.information[_ngcontent-%COMP%]{--color: #4ca8de}.issue[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{font-weight:700;font-size:large}[_nghost-%COMP%] .issue .code{font-size:.9em;color:#636363}[_nghost-%COMP%] .issue>span>code{background:#e1e1e1;border-radius:4px;padding:2px 4px;font-family:courier,monospace} .ace-highlight-fatal{position:absolute;background:#c30;opacity:.4} .ace-highlight-error{position:absolute;background:#f96;opacity:.4} .ace-highlight-warning{position:absolute;background:#fc0;opacity:.4} .ace-highlight-information{position:absolute;background:#9c3;opacity:.4}"]})}}return n})();function B3(n,t){n&1&&ne(0,"mat-spinner")}function z3(n,t){if(n&1&&ne(0,"app-operation-result",4),n&2){let e=Y();z("operationResult",e.operationResult)}}var xk=4,kk=(()=>{class n{constructor(e){this.data=e,this.capabilityStatement=null,this.operationResult=null,this.loading=!0,this.client=e.getFhirClient()}ngAfterViewInit(){this.client.capabilityStatement().then(e=>{this.loading=!1,this.operationResult=null,this.editor=Sk.default.edit("code"),this.editor.setReadOnly(!0),this.editor.setValue(JSON.stringify(e,null,xk),-1),this.editor.getSession().setMode("ace/mode/json"),this.editor.setTheme("ace/theme/textmate"),this.editor.commands.removeCommand("find"),this.editor.setOptions({maxLines:1e4,tabSize:xk,wrap:!0,useWorker:!1}),this.editor.resize(!0)}).catch(e=>{console.error(e),this.loading=!1,this.capabilityStatement=null,this.editor&&(this.editor.destroy(),this.editor.container.remove()),this.editor=null,e.response?.data?this.operationResult=Wt.fromOperationOutcome(e.response.data):this.operationResult=Wt.fromMatchboxError(e.message)})}static{this.\u0275fac=function(i){return new(i||n)(Se(Fn))}}static{this.\u0275cmp=he({type:n,selectors:[["app-capability-statement"]],standalone:!1,decls:10,vars:3,consts:[["id","capability-statement",1,"white-block"],[4,"ngIf"],["id","code"],[3,"operationResult",4,"ngIf"],[3,"operationResult"]],template:function(i,r){i&1&&(N(0,"div",0)(1,"h2"),B(2,"CapabilityStatement"),F(),N(3,"p"),B(4," CapabilityStatement of the server: "),N(5,"code"),B(6),F()(),le(7,B3,1,0,"mat-spinner",1),ne(8,"div",2),le(9,z3,1,1,"app-operation-result",3),F()),i&2&&($(6),Ke(r.client.baseUrl),$(),z("ngIf",r.loading),$(2),z("ngIf",r.operationResult))},dependencies:[yi,Xs,cl],encapsulation:2})}}return n})();var H3=["*"];var j3=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],W3=["[mat-card-avatar], [matCardAvatar]",`mat-card-title, mat-card-subtitle, - [mat-card-title], [mat-card-subtitle], - [matCardTitle], [matCardSubtitle]`,"*"],q3=new ee("MAT_CARD_CONFIG"),ul=(()=>{class n{appearance;constructor(){let e=L(q3,{optional:!0});this.appearance=e?.appearance||"raised"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){i&2&&ke("mat-mdc-card-outlined",r.appearance==="outlined")("mdc-card--outlined",r.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:H3,decls:1,vars:0,template:function(i,r){i&1&&(tt(),Fe(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return n})(),fm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-mdc-card-title"]})}return n})();var dl=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"]})}return n})(),Mk=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-mdc-card-subtitle"]})}return n})(),pm=(()=>{class n{align="start";static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-actions"]],hostAttrs:[1,"mat-mdc-card-actions","mdc-card__actions"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mat-mdc-card-actions-align-end",r.align==="end")},inputs:{align:"align"},exportAs:["matCardActions"]})}return n})(),gm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],ngContentSelectors:W3,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){i&1&&(tt(j3),Fe(0),N(1,"div",0),Fe(2,1),F(),Fe(3,2))},encapsulation:2,changeDetection:0})}return n})(),Tk=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-footer"]],hostAttrs:[1,"mat-mdc-card-footer"]})}return n})();var S_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var Yc=class{_attachedHost;attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;t!=null&&(this._attachedHost=null,t.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},Ga=class extends Yc{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(t,e,i,r,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.projectableNodes=s}},ds=class extends Yc{templateRef;viewContainerRef;context;injector;constructor(t,e,i,r){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}},k_=class extends Yc{element;constructor(t){super(),this.element=t instanceof Ae?t.nativeElement:t}},vm=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(t){if(t instanceof Ga)return this._attachedPortal=t,this.attachComponentPortal(t);if(t instanceof ds)return this._attachedPortal=t,this.attachTemplatePortal(t);if(this.attachDomPortal&&t instanceof k_)return this._attachedPortal=t,this.attachDomPortal(t)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var bm=class extends vm{outletElement;_appRef;_defaultInjector;_document;constructor(t,e,i,r,s){super(),this.outletElement=t,this._appRef=i,this._defaultInjector=r,this._document=s}attachComponentPortal(t){let e;if(t.viewContainerRef){let i=t.injector||t.viewContainerRef.injector,r=i.get(k0,null,{optional:!0})||void 0;e=t.viewContainerRef.createComponent(t.component,{index:t.viewContainerRef.length,injector:i,ngModuleRef:r,projectableNodes:t.projectableNodes||void 0}),this.setDisposeFn(()=>e.destroy())}else e=Jd(t.component,{elementInjector:t.injector||this._defaultInjector||gt.NULL,environmentInjector:this._appRef.injector,projectableNodes:t.projectableNodes||void 0}),this._appRef.attachView(e.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(e.hostView),e.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=t,e}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);r!==-1&&e.remove(r)}),this._attachedPortal=t,i}attachDomPortal=t=>{let e=t.element;e.parentNode;let i=this._document.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=t,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}};var Ek=(()=>{class n extends ds{constructor(){let e=L(Dn),i=L(bi);super(e,i)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[Nt]})}return n})();var Ka=(()=>{class n extends vm{_moduleRef=L(k0,{optional:!0});_document=L(it);_viewContainerRef=L(bi);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}attached=new oe;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);let i=e.viewContainerRef!=null?e.viewContainerRef:this._viewContainerRef,r=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(r.hostView.rootNodes[0]),super.setDisposeFn(()=>r.destroy()),this._attachedPortal=e,this._attachedRef=r,this.attached.emit(r),r}attachTemplatePortal(e){e.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=e=>{let i=e.element;i.parentNode;let r=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(r,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{r.parentNode&&r.parentNode.replaceChild(i,r)})};_getRootNode(){let e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[Nt]})}return n})();var ym=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var Ze=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(Ze||{}),Ar="*";function zi(n,t){return{type:Ze.Trigger,name:n,definitions:t,options:{}}}function ei(n,t=null){return{type:Ze.Animate,styles:t,timings:n}}function Ik(n,t=null){return{type:Ze.Sequence,steps:n,options:t}}function ht(n){return{type:Ze.Style,styles:n,offset:null}}function di(n,t,e){return{type:Ze.State,name:n,styles:t,options:e}}function M_(n){return{type:Ze.Keyframes,steps:n}}function Yt(n,t,e=null){return{type:Ze.Transition,expr:n,animation:t,options:e}}function Ak(n=null){return{type:Ze.AnimateChild,options:n}}function Dk(n,t,e=null){return{type:Ze.Query,selector:n,animation:t,options:e}}var Js=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(t=0,e=0){this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Qc=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(t){this.players=t;let e=0,i=0,r=0,s=this.players.length;s==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,o)=>Math.max(a,o.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){let e=t*this.totalTime;this.players.forEach(i=>{let r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){let t=this.players.reduce((e,i)=>e===null||i.totalTime>e.totalTime?i:e,null);return t!=null?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Cm="!";var wm=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new me;constructor(t=!1,e,i=!0,r){this._multiple=t,this._emitChanges=i,this.compareWith=r,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);let e=this.selected,i=new Set(t);t.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(this._getConcreteValue(s,i))).forEach(s=>this._unmarkSelected(s));let r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();let e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){return this._selection.has(this._getConcreteValue(t))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){t=this._getConcreteValue(t),this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){t=this._getConcreteValue(t),this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){t.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(t,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(t,i))return i;return t}else return t}};var Rk=(()=>{class n{_listeners=[];notify(e,i){for(let r of this._listeners)r(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var K3=20,hl=(()=>{class n{_ngZone=L(Ne);_platform=L(ct);_document=L(it,{optional:!0});constructor(){}_scrolled=new me;_globalSubscription=null;_scrolledCount=0;scrollContainers=new Map;register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){let i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=K3){return this._platform.isBrowser?new Jn(i=>{this._globalSubscription||this._addGlobalListener();let r=e>0?this._scrolled.pipe(ic(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):_e()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){let r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(st(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(e){let i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=rn(i),s=e.getElementRef().nativeElement;do if(r==s)return!0;while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>{let e=this._getWindow();return Qr(e.document,"scroll").subscribe(()=>this._scrolled.next())})}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),T_=(()=>{class n{elementRef=L(Ae);scrollDispatcher=L(hl);ngZone=L(Ne);dir=L(ui,{optional:!0});_destroyed=new me;_elementScrolled=new Jn(e=>this.ngZone.runOutsideAngular(()=>Qr(this.elementRef.nativeElement,"scroll").pipe(qe(this._destroyed)).subscribe(e)));constructor(){}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){let i=this.elementRef.nativeElement,r=this.dir&&this.dir.value=="rtl";e.left==null&&(e.left=r?e.end:e.start),e.right==null&&(e.right=r?e.start:e.end),e.bottom!=null&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),r&&Jo()!=sr.NORMAL?(e.left!=null&&(e.right=i.scrollWidth-i.clientWidth-e.left),Jo()==sr.INVERTED?e.left=e.right:Jo()==sr.NEGATED&&(e.left=e.right?-e.right:e.right)):e.right!=null&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){let i=this.elementRef.nativeElement;Ph()?i.scrollTo(e):(e.top!=null&&(i.scrollTop=e.top),e.left!=null&&(i.scrollLeft=e.left))}measureScrollOffset(e){let i="left",r="right",s=this.elementRef.nativeElement;if(e=="top")return s.scrollTop;if(e=="bottom")return s.scrollHeight-s.clientHeight-s.scrollTop;let a=this.dir&&this.dir.value=="rtl";return e=="start"?e=a?r:i:e=="end"&&(e=a?i:r),a&&Jo()==sr.INVERTED?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:a&&Jo()==sr.NEGATED?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return n})(),Y3=20,Bn=(()=>{class n{_platform=L(ct);_viewportSize;_change=new me;_changeListener=e=>{this._change.next(e)};_document=L(it,{optional:!0});constructor(){L(Ne).runOutsideAngular(()=>{if(this._platform.isBrowser){let i=this._getWindow();i.addEventListener("resize",this._changeListener),i.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){let e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){let e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let e=this._document,i=this._getWindow(),r=e.documentElement,s=r.getBoundingClientRect(),a=-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,o=-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0;return{top:a,left:o}}change(e=Y3){return e>0?this._change.pipe(ic(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Vn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})(),Zc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Zs,Vn,Zs,Vn]})}return n})();var Lk=Ph(),E_=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(t,e){this._viewportRuler=t,this._document=e}attach(){}enable(){if(this._canBeEnabled()){let t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=Jt(-this._previousScrollPosition.left),t.style.top=Jt(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let t=this._document.documentElement,e=this._document.body,i=t.style,r=e.style,s=i.scrollBehavior||"",a=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),Lk&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),Lk&&(i.scrollBehavior=s,r.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}};var I_=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(this._scrollSubscription)return;let t=this._scrollDispatcher.scrolled(0).pipe(st(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{let e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},xm=class{enable(){}disable(){}attach(){}};function A_(n,t){return t.some(e=>{let i=n.bottome.bottom,s=n.righte.right;return i||r||s||a})}function Ok(n,t){return t.some(e=>{let i=n.tope.bottom,s=n.lefte.right;return i||r||s||a})}var D_=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(!this._scrollSubscription){let t=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(t).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();A_(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},Z3=(()=>{class n{_scrollDispatcher=L(hl);_viewportRuler=L(Bn);_ngZone=L(Ne);_document=L(it);constructor(){}noop=()=>new xm;close=e=>new I_(this._scrollDispatcher,this._ngZone,this._viewportRuler,e);block=()=>new E_(this._viewportRuler,this._document);reposition=e=>new D_(this._scrollDispatcher,this._viewportRuler,this._ngZone,e);static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Qa=class{positionStrategy;scrollStrategy=new xm;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(t){if(t){let e=Object.keys(t);for(let i of e)t[i]!==void 0&&(this[i]=t[i])}}};var R_=class{connectionPair;scrollableViewProperties;constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}};var Vk=(()=>{class n{_attachedOverlays=[];_document=L(it);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){let i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),X3=(()=>{class n extends Vk{_ngZone=L(Ne,{optional:!0});add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}_keydownListener=e=>{let i=this._attachedOverlays;for(let r=i.length-1;r>-1;r--)if(i[r]._keydownEvents.observers.length>0){let s=i[r]._keydownEvents;this._ngZone?this._ngZone.run(()=>s.next(e)):s.next(e);break}};static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),J3=(()=>{class n extends Vk{_platform=L(ct);_ngZone=L(Ne,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(e){if(super.add(e),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=e=>{this._pointerDownEventTarget=gn(e)};_clickListener=e=>{let i=gn(e),r=e.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let s=this._attachedOverlays.slice();for(let a=s.length-1;a>-1;a--){let o=s[a];if(o._outsidePointerEvents.observers.length<1||!o.hasAttached())continue;if(Nk(o.overlayElement,i)||Nk(o.overlayElement,r))break;let l=o._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>l.next(e)):l.next(e)}};static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Nk(n,t){let e=typeof ShadowRoot<"u"&&ShadowRoot,i=t;for(;i;){if(i===n)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var Bk=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return n})(),zk=(()=>{class n{_platform=L(ct);_containerElement;_document=L(it);_styleLoader=L(wt);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e="cdk-overlay-container";if(this._platform.isBrowser||Gg()){let r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(t);_backdropTransitionendHandler=t=>{this._disposeBackdrop(t.target)};_previousHostParent;_keydownEvents=new me;_outsidePointerEvents=new me;_renders=new me;_afterRenderRef;_afterNextRenderRef;constructor(t,e,i,r,s,a,o,l,c,u=!1,d){this._portalOutlet=t,this._host=e,this._pane=i,this._config=r,this._ngZone=s,this._keyboardDispatcher=a,this._document=o,this._location=l,this._outsideClickDispatcher=c,this._animationsDisabled=u,this._injector=d,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy,this._afterRenderRef=nr(()=>jd(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=vi(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof e?.onDestroy=="function"&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){let t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config=j(j({},this._config),t),this._updateElementSize()}setDirection(t){this._config=$e(j({},this._config),{direction:t}),this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){let t=this._config.direction;return t?typeof t=="string"?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let t=this._pane.style;t.width=Jt(this._config.width),t.height=Jt(this._config.height),t.minWidth=Jt(this._config.minWidth),t.minHeight=Jt(this._config.minHeight),t.maxWidth=Jt(this._config.maxWidth),t.maxHeight=Jt(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){let t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){let t=this._backdropElement;if(t){if(this._animationsDisabled){this._disposeBackdrop(t);return}t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500))}}_toggleClasses(t,e,i){let r=el(e||[]).filter(s=>!!s);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let t=this._renders.pipe(qe(ti(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){let t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}},Fk="cdk-overlay-connected-position-bounding-box",eU=/([A-Za-z%]+)$/,Sm=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new me;_resizeSubscription=Mt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(t,e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s,this.setOrigin(t)}attach(t){this._overlayRef&&this._overlayRef,this._validatePositions(),t.hostElement.classList.add(Fk),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[],a;for(let o of this._preferredPositions){let l=this._getOriginPoint(t,r,o),c=this._getOverlayPoint(l,e,o),u=this._getOverlayFit(c,e,i,o);if(u.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(o,l);return}if(this._canFitWithFlexibleDimensions(u,c,i)){s.push({position:o,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,o)});continue}(!a||a.overlayFit.visibleAreal&&(l=u,o=c)}this._isPushed=!1,this._applyPosition(o.position,o.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(a.position,a.originPoint);return}this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Ya(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(Fk),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,t.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r;if(i.originX=="center")r=t.left+t.width/2;else{let a=this._isRtl()?t.right:t.left,o=this._isRtl()?t.left:t.right;r=i.originX=="start"?a:o}e.left<0&&(r-=e.left);let s;return i.originY=="center"?s=t.top+t.height/2:s=i.originY=="top"?t.top:t.bottom,e.top<0&&(s-=e.top),{x:r,y:s}}_getOverlayPoint(t,e,i){let r;i.overlayX=="center"?r=-e.width/2:i.overlayX==="start"?r=this._isRtl()?-e.width:0:r=this._isRtl()?0:-e.width;let s;return i.overlayY=="center"?s=-e.height/2:s=i.overlayY=="top"?0:-e.height,{x:t.x+r,y:t.y+s}}_getOverlayFit(t,e,i,r){let s=Uk(e),{x:a,y:o}=t,l=this._getOffset(r,"x"),c=this._getOffset(r,"y");l&&(a+=l),c&&(o+=c);let u=0-a,d=a+s.width-i.width,h=0-o,m=o+s.height-i.height,f=this._subtractOverflows(s.width,u,d),g=this._subtractOverflows(s.height,h,m),v=f*g;return{visibleArea:v,isCompletelyWithinViewport:s.width*s.height===v,fitsInViewportVertically:g===s.height,fitsInViewportHorizontally:f==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){let r=i.bottom-e.y,s=i.right-e.x,a=Pk(this._overlayRef.getConfig().minHeight),o=Pk(this._overlayRef.getConfig().minWidth),l=t.fitsInViewportVertically||a!=null&&a<=r,c=t.fitsInViewportHorizontally||o!=null&&o<=s;return l&&c}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};let r=Uk(e),s=this._viewportRect,a=Math.max(t.x+r.width-s.width,0),o=Math.max(t.y+r.height-s.height,0),l=Math.max(s.top-i.top-t.y,0),c=Math.max(s.left-i.left-t.x,0),u=0,d=0;return r.width<=s.width?u=c||-a:u=t.xf&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-f/2)}let l=e.overlayX==="start"&&!r||e.overlayX==="end"&&r,c=e.overlayX==="end"&&!r||e.overlayX==="start"&&r,u,d,h;if(c)h=i.width-t.x+this._viewportMargin*2,u=t.x-this._viewportMargin;else if(l)d=t.x,u=i.right-t.x;else{let m=Math.min(i.right-t.x+i.left,t.x),f=this._lastBoundingBoxSize.width;u=m*2,d=t.x-m,u>f&&!this._isInitialRender&&!this._growAfterOpen&&(d=t.x-f/2)}return{top:a,left:d,bottom:o,right:h,width:u,height:s}}_setBoundingBoxStyles(t,e){let i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{let s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;r.height=Jt(i.height),r.top=Jt(i.top),r.bottom=Jt(i.bottom),r.width=Jt(i.width),r.left=Jt(i.left),r.right=Jt(i.right),e.overlayX==="center"?r.alignItems="center":r.alignItems=e.overlayX==="end"?"flex-end":"flex-start",e.overlayY==="center"?r.justifyContent="center":r.justifyContent=e.overlayY==="bottom"?"flex-end":"flex-start",s&&(r.maxHeight=Jt(s)),a&&(r.maxWidth=Jt(a))}this._lastBoundingBoxSize=i,Ya(this._boundingBox.style,r)}_resetBoundingBoxStyles(){Ya(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Ya(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){let i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(r){let u=this._viewportRuler.getViewportScrollPosition();Ya(i,this._getExactOverlayY(e,t,u)),Ya(i,this._getExactOverlayX(e,t,u))}else i.position="static";let o="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(o+=`translateX(${l}px) `),c&&(o+=`translateY(${c}px)`),i.transform=o.trim(),a.maxHeight&&(r?i.maxHeight=Jt(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(r?i.maxWidth=Jt(a.maxWidth):s&&(i.maxWidth="")),Ya(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);if(this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),t.overlayY==="bottom"){let a=this._document.documentElement.clientHeight;r.bottom=`${a-(s.y+this._overlayRect.height)}px`}else r.top=Jt(s.y);return r}_getExactOverlayX(t,e,i){let r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i));let a;if(this._isRtl()?a=t.overlayX==="end"?"left":"right":a=t.overlayX==="end"?"right":"left",a==="right"){let o=this._document.documentElement.clientWidth;r.right=`${o-(s.x+this._overlayRect.width)}px`}else r.left=Jt(s.x);return r}_getScrollVisibility(){let t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:Ok(t,i),isOriginOutsideView:A_(t,i),isOverlayClipped:Ok(e,i),isOverlayOutsideView:A_(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){let t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return e==="x"?t.offsetX==null?this._offsetX:t.offsetX:t.offsetY==null?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&el(t).forEach(e=>{e!==""&&this._appliedPanelClasses.indexOf(e)===-1&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){let t=this._origin;if(t instanceof Ae)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();let e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}};function Ya(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function Pk(n){if(typeof n!="number"&&n!=null){let[t,e]=n.split(eU);return!e||e==="px"?parseFloat(t):null}return n||null}function Uk(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}function tU(n,t){return n===t?!0:n.isOriginClipped===t.isOriginClipped&&n.isOriginOutsideView===t.isOriginOutsideView&&n.isOverlayClipped===t.isOverlayClipped&&n.isOverlayOutsideView===t.isOverlayOutsideView}var $k="cdk-global-overlay-wrapper",O_=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(t){let e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add($k),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:a,maxHeight:o}=i,l=(r==="100%"||r==="100vw")&&(!a||a==="100%"||a==="100vw"),c=(s==="100%"||s==="100vh")&&(!o||o==="100%"||o==="100vh"),u=this._xPosition,d=this._xOffset,h=this._overlayRef.getConfig().direction==="rtl",m="",f="",g="";l?g="flex-start":u==="center"?(g="center",h?f=d:m=d):h?u==="left"||u==="end"?(g="flex-end",m=d):(u==="right"||u==="start")&&(g="flex-start",f=d):u==="left"||u==="start"?(g="flex-start",m=d):(u==="right"||u==="end")&&(g="flex-end",f=d),t.position=this._cssPosition,t.marginLeft=l?"0":m,t.marginTop=c?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=l?"0":f,e.justifyContent=g,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove($k),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}},iU=(()=>{class n{_viewportRuler=L(Bn);_document=L(it);_platform=L(ct);_overlayContainer=L(zk);constructor(){}global(){return new O_}flexibleConnectedTo(e){return new Sm(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),ii=(()=>{class n{scrollStrategies=L(Z3);_overlayContainer=L(zk);_positionBuilder=L(iU);_keyboardDispatcher=L(X3);_injector=L(gt);_ngZone=L(Ne);_document=L(it);_directionality=L(ui);_location=L(Ia);_outsideClickDispatcher=L(J3);_animationsModuleType=L(Ot,{optional:!0});_idGenerator=L(Ft);_appRef;_styleLoader=L(wt);constructor(){}create(e){this._styleLoader.load(Bk);let i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),a=new Qa(e);return a.direction=a.direction||this._directionality.value,new L_(s,i,r,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(Zr))}position(){return this._positionBuilder}_createPaneElement(e){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){let e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(tr)),new bm(e,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),nU=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Hk=new ee("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}}),Xc=(()=>{class n{elementRef=L(Ae);constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return n})(),N_=(()=>{class n{_overlay=L(ii);_dir=L(ui,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=Mt.EMPTY;_attachSubscription=Mt.EMPTY;_detachSubscription=Mt.EMPTY;_positionSubscription=Mt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=L(Hk);_disposeOnNavigation=!1;_ngZone=L(Ne);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}backdropClick=new oe;positionChange=new oe;attach=new oe;detach=new oe;overlayKeydown=new oe;overlayOutsideClick=new oe;constructor(){let e=L(Dn),i=L(bi);this._templatePortal=new ds(e,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=nU);let e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!Vi(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let r=this._getOriginElement(),s=gn(i);(!r||r!==s&&!r.contains(s))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Qa({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){let i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let e=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof Xc?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Xc?this.origin.elementRef.nativeElement:this.origin instanceof Ae?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(AC(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",be],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",be],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",be],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",be],push:[2,"cdkConnectedOverlayPush","push",be],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",be]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Qe,vt]})}return n})();function rU(n){return()=>n.scrollStrategies.reposition()}var sU={provide:Hk,deps:[ii],useFactory:rU},Dr=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[ii,sU],imports:[Zs,ym,Zc,Zc]})}return n})();var aU=["mat-menu-item",""],oU=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],lU=["mat-icon, [matMenuItemIcon]","*"];function cU(n,t){n&1&&(Qt(),N(0,"svg",2),ne(1,"polygon",3),F())}var uU=new ee("MAT_MENU_PANEL"),km=(()=>{class n{_elementRef=L(Ae);_document=L(it);_focusMonitor=L(Un);_parentMenu=L(uU,{optional:!0});_changeDetectorRef=L(Xe);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new me;_focused=new me;_highlighted=!1;_triggersSubmenu=!1;constructor(){L(wt).load(Di),this._parentMenu?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let r=0;r enter",ei("120ms cubic-bezier(0, 0, 0.2, 1)",ht({opacity:1,transform:"scale(1)"}))),Yt("* => void",ei("100ms 25ms linear",ht({opacity:0})))]),fadeInItems:zi("fadeInItems",[di("showing",ht({opacity:1})),Yt("void => *",[ht({opacity:0}),ei("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},yX=jk.fadeInItems,CX=jk.transformMenu;var dU=new ee("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}});function hU(n){return()=>n.scrollStrategies.reposition()}var mU={provide:dU,deps:[ii],useFactory:hU};var F_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[mU],imports:[cs,Ue,Dr,Vn,Ue]})}return n})();var qk=(()=>{class n{constructor(){this.version=window.MATCHBOX_VERSION}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=he({type:n,selectors:[["app-home"]],standalone:!1,decls:31,vars:1,consts:[[1,"primary"],["mat-menu-item","","routerLink","/validate"],["mat-menu-item","","routerLink","/igs"],["mat-menu-item","","routerLink","/settings"],["href","https://fhirpath-lab.com/fml","target","_blank"],["href","https://tx.fhir.org/tx-reg/","target","_blank"],["href","https://www.ahdis.ch","rel","external nofollow noopener","target","_blank"]],template:function(i,r){i&1&&(N(0,"mat-card",0)(1,"mat-card-content")(2,"button",1)(3,"mat-icon"),B(4,"rule"),F(),N(5,"span"),B(6,"Validate resource"),F()(),N(7,"button",2)(8,"mat-icon"),B(9,"info"),F(),N(10,"span"),B(11,"Installed IGs"),F()(),N(12,"button",3)(13,"mat-icon"),B(14,"settings"),F(),N(15,"span"),B(16,"Settings"),F()(),N(17,"p"),B(18,"Other tools:"),F(),N(19,"ul")(20,"li")(21,"a",4),B(22,"Select matchbox in Fhirpath Lab top right to use FML with our test instance"),F()(),N(23,"li")(24,"a",5),B(25,"FHIR Tx Server Registry"),F()()()(),N(26,"mat-card-footer")(27,"p"),B(28),N(29,"a",6),B(30," contact"),F()()()()),i&2&&($(28),Ye(" Matchbox version: ",r.version," | "))},dependencies:[ul,dl,Tk,$n,km,Ch],styles:["mat-card.primary[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:20px}mat-card.primary[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:8px;vertical-align:middle;color:#68c39a}mat-card.primary[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:30px 0 15px}mat-card.primary[_ngcontent-%COMP%] mat-card-footer[_ngcontent-%COMP%]{padding:0 1.5rem 1.5rem}"]})}}return n})();var Jk=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(Se(rc),Se(Ae))};static \u0275dir=xe({type:n})}return n})(),fU=(()=>{class n extends Jk{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275dir=xe({type:n,features:[Nt]})}return n})(),hs=new ee("");var pU={provide:hs,useExisting:Ii(()=>Rr),multi:!0};function gU(){let n=A0()?A0().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var _U=new ee(""),Rr=(()=>{class n extends Jk{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!gU())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(Se(rc),Se(Ae),Se(_U,8))};static \u0275dir=xe({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&J("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[at([pU]),Nt]})}return n})();function ea(n){return n==null||(typeof n=="string"||Array.isArray(n))&&n.length===0}function eM(n){return n!=null&&typeof n.length=="number"}var ia=new ee(""),Nm=new ee(""),vU=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Cn=class{static min(t){return bU(t)}static max(t){return yU(t)}static required(t){return CU(t)}static requiredTrue(t){return wU(t)}static email(t){return xU(t)}static minLength(t){return SU(t)}static maxLength(t){return kU(t)}static pattern(t){return MU(t)}static nullValidator(t){return tM(t)}static compose(t){return oM(t)}static composeAsync(t){return lM(t)}};function bU(n){return t=>{if(ea(t.value)||ea(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e{if(ea(t.value)||ea(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function CU(n){return ea(n.value)?{required:!0}:null}function wU(n){return n.value===!0?null:{required:!0}}function xU(n){return ea(n.value)||vU.test(n.value)?null:{email:!0}}function SU(n){return t=>ea(t.value)||!eM(t.value)?null:t.value.lengtheM(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}function MU(n){if(!n)return tM;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(ea(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function tM(n){return null}function iM(n){return n!=null}function nM(n){return Gd(n)?_i(n):n}function rM(n){let t={};return n.forEach(e=>{t=e!=null?j(j({},t),e):t}),Object.keys(t).length===0?null:t}function sM(n,t){return t.map(e=>e(n))}function TU(n){return!n.validate}function aM(n){return n.map(t=>TU(t)?t:e=>t.validate(e))}function oM(n){if(!n)return null;let t=n.filter(iM);return t.length==0?null:function(e){return rM(sM(e,t))}}function B_(n){return n!=null?oM(aM(n)):null}function lM(n){if(!n)return null;let t=n.filter(iM);return t.length==0?null:function(e){let i=sM(e,t).map(nM);return To(i).pipe(Le(rM))}}function z_(n){return n!=null?lM(aM(n)):null}function Gk(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function cM(n){return n._rawValidators}function uM(n){return n._rawAsyncValidators}function P_(n){return n?Array.isArray(n)?n:[n]:[]}function Tm(n,t){return Array.isArray(n)?n.includes(t):n===t}function Kk(n,t){let e=P_(t);return P_(n).forEach(r=>{Tm(e,r)||e.push(r)}),e}function Yk(n,t){return P_(t).filter(e=>!Tm(n,e))}var Em=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=B_(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=z_(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},Za=class extends Em{name;get formDirective(){return null}get path(){return null}},cr=class extends Em{_parent=null;name=null;valueAccessor=null},U_=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},EU={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},$X=$e(j({},EU),{"[class.ng-submitted]":"isSubmitted"}),Lr=(()=>{class n extends U_{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(Se(cr,2))};static \u0275dir=xe({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&ke("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[Nt]})}return n})();var eu="VALID",Mm="INVALID",ml="PENDING",tu="DISABLED",ta=class{},Im=class extends ta{value;source;constructor(t,e){super(),this.value=t,this.source=e}},nu=class extends ta{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},ru=class extends ta{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},fl=class extends ta{status;source;constructor(t,e){super(),this.status=t,this.source=e}},$_=class extends ta{source;constructor(t){super(),this.source=t}},V_=class extends ta{source;constructor(t){super(),this.source=t}};function dM(n){return(Fm(n)?n.validators:n)||null}function IU(n){return Array.isArray(n)?B_(n):n||null}function hM(n,t){return(Fm(t)?t.asyncValidators:n)||null}function AU(n){return Array.isArray(n)?z_(n):n||null}function Fm(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function DU(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new je(1e3,"");if(!i[e])throw new je(1001,"")}function RU(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new je(1002,"")})}var Am=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return nr(this.statusReactive)}set status(t){nr(()=>this.statusReactive.set(t))}_status=Jr(()=>this.statusReactive());statusReactive=Xi(void 0);get valid(){return this.status===eu}get invalid(){return this.status===Mm}get pending(){return this.status==ml}get disabled(){return this.status===tu}get enabled(){return this.status!==tu}errors;get pristine(){return nr(this.pristineReactive)}set pristine(t){nr(()=>this.pristineReactive.set(t))}_pristine=Jr(()=>this.pristineReactive());pristineReactive=Xi(!0);get dirty(){return!this.pristine}get touched(){return nr(this.touchedReactive)}set touched(t){nr(()=>this.touchedReactive.set(t))}_touched=Jr(()=>this.touchedReactive());touchedReactive=Xi(!1);get untouched(){return!this.touched}_events=new me;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Kk(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Kk(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Yk(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Yk(t,this._rawAsyncValidators))}hasValidator(t){return Tm(this._rawValidators,t)}hasAsyncValidator(t){return Tm(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched($e(j({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new ru(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new ru(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty($e(j({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new nu(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new nu(!0,i))}markAsPending(t={}){this.status=ml;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new fl(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending($e(j({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=tu,this.errors=null,this._forEachChild(r=>{r.disable($e(j({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Im(this.value,i)),this._events.next(new fl(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors($e(j({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=eu,this._forEachChild(i=>{i.enable($e(j({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors($e(j({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===eu||this.status===ml)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Im(this.value,e)),this._events.next(new fl(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity($e(j({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?tu:eu}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=ml,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1};let i=nM(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new fl(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new oe,this.statusChanges=new oe}_calculateStatus(){return this._allControlsDisabled()?tu:this.errors?Mm:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(ml)?ml:this._anyControlsHaveStatus(Mm)?Mm:eu}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new nu(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new ru(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){Fm(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=IU(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=AU(this._rawAsyncValidators)}},Dm=class extends Am{constructor(t,e,i){super(dM(e),hM(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){RU(this,!0,t),Object.keys(t).forEach(i=>{DU(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var pl=new ee("CallSetDisabledState",{providedIn:"root",factory:()=>Pm}),Pm="always";function LU(n,t){return[...t.path,n]}function su(n,t,e=Pm){H_(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),NU(n,t),PU(n,t),FU(n,t),OU(n,t)}function Rm(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),Om(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function Lm(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function OU(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function H_(n,t){let e=cM(n);t.validator!==null?n.setValidators(Gk(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=uM(n);t.asyncValidator!==null?n.setAsyncValidators(Gk(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();Lm(t._rawValidators,r),Lm(t._rawAsyncValidators,r)}function Om(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=cM(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=uM(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return Lm(t._rawValidators,i),Lm(t._rawAsyncValidators,i),e}function NU(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&mM(n,t)})}function FU(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&mM(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function mM(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function PU(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function fM(n,t){n==null,H_(n,t)}function UU(n,t){return Om(n,t)}function pM(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function $U(n){return Object.getPrototypeOf(n.constructor)===fU}function gM(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function _M(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===Rr?e=s:$U(s)?i=s:r=s}),r||i||e||null}function VU(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var BU={provide:Za,useExisting:Ii(()=>au)},iu=Promise.resolve(),au=(()=>{class n extends Za{callSetDisabledState;get submitted(){return nr(this.submittedReactive)}_submitted=Jr(()=>this.submittedReactive());submittedReactive=Xi(!1);_directives=new Set;form;ngSubmit=new oe;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new Dm({},B_(e),z_(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){iu.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),su(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){iu.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){iu.then(()=>{let i=this._findContainer(e.path),r=new Dm({});fM(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){iu.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){iu.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),gM(this.form,this._directives),this.ngSubmit.emit(e),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(Se(ia,10),Se(Nm,10),Se(pl,8))};static \u0275dir=xe({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&J("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[at([BU]),Nt]})}return n})();function Qk(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function Zk(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Or=class extends Am{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(dM(e),hM(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Fm(e)&&(e.nonNullable||e.initialValueIsDefault)&&(Zk(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Qk(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Qk(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){Zk(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},ms=Or,zU=n=>n instanceof Or;var HU={provide:cr,useExisting:Ii(()=>j_)},Xk=Promise.resolve(),j_=(()=>{class n extends cr{_changeDetectorRef;callSetDisabledState;control=new Or;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new oe;constructor(e,i,r,s,a,o){super(),this._changeDetectorRef=a,this.callSetDisabledState=o,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=_M(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),pM(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){su(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Xk.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&be(i);Xk.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?LU(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(Se(Za,9),Se(ia,10),Se(Nm,10),Se(hs,10),Se(Xe,8),Se(pl,8))};static \u0275dir=xe({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[at([HU]),Nt,vt]})}return n})();var vM=new ee(""),jU={provide:cr,useExisting:Ii(()=>ur)},ur=(()=>{class n extends cr{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new oe;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=_M(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&Rm(i,this,!1),su(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}pM(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Rm(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(Se(ia,10),Se(Nm,10),Se(hs,10),Se(vM,8),Se(pl,8))};static \u0275dir=xe({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[at([jU]),Nt,vt]})}return n})(),WU={provide:Za,useExisting:Ii(()=>ou)},ou=(()=>{class n extends Za{callSetDisabledState;get submitted(){return nr(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=Jr(()=>this._submittedReactive());_submittedReactive=Xi(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new oe;constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Om(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){let i=this.form.get(e.path);return su(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Rm(e.control||null,e,!1),VU(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this._submittedReactive.set(!0),gM(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new $_(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new V_(this.form))}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(Rm(i||null,e),zU(r)&&(su(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);fM(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&UU(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){H_(this.form,this),this._oldForm&&Om(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(Se(ia,10),Se(Nm,10),Se(pl,8))};static \u0275dir=xe({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&J("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[at([WU]),Nt,vt]})}return n})();var bM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var W_=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:pl,useValue:e.callSetDisabledState??Pm}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[bM]})}return n})(),lu=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:vM,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:pl,useValue:e.callSetDisabledState??Pm}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[bM]})}return n})();var LM=Os(Dh());var q_=class{_box;_destroyed=new me;_resizeSubject=new me;_resizeObserver;_elementObservables=new Map;constructor(t){this._box=t,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(t){return this._elementObservables.has(t)||this._elementObservables.set(t,new Jn(e=>{let i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(t,{box:this._box}),()=>{this._resizeObserver?.unobserve(t),i.unsubscribe(),this._elementObservables.delete(t)}}).pipe(st(e=>e.some(i=>i.target===t)),Ps({bufferSize:1,refCount:!0}),qe(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},Um=(()=>{class n{_observers=new Map;_ngZone=L(Ne);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,e]of this._observers)e.destroy();this._observers.clear(),typeof ResizeObserver<"u"}observe(e,i){let r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new q_(r)),this._observers.get(r).observe(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var qU=["notch"],GU=["matFormFieldNotchedOutline",""],KU=["*"],YU=["textField"],QU=["iconPrefixContainer"],ZU=["textPrefixContainer"],XU=["iconSuffixContainer"],JU=["textSuffixContainer"],e$=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],t$=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function i$(n,t){n&1&&ne(0,"span",21)}function n$(n,t){if(n&1&&(N(0,"label",20),Fe(1,1),le(2,i$,1,0,"span",21),F()),n&2){let e=Y(2);z("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Me("for",e._control.disableAutomaticLabeling?null:e._control.id),$(2),et(!e.hideRequiredMarker&&e._control.required?2:-1)}}function r$(n,t){if(n&1&&le(0,n$,3,5,"label",20),n&2){let e=Y();et(e._hasFloatingLabel()?0:-1)}}function s$(n,t){n&1&&ne(0,"div",7)}function a$(n,t){}function o$(n,t){if(n&1&&le(0,a$,0,0,"ng-template",13),n&2){Y(2);let e=Zt(1);z("ngTemplateOutlet",e)}}function l$(n,t){if(n&1&&(N(0,"div",9),le(1,o$,1,1,null,13),F()),n&2){let e=Y();z("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),$(),et(e._forceDisplayInfixLabel()?-1:1)}}function c$(n,t){n&1&&(N(0,"div",10,2),Fe(2,2),F())}function u$(n,t){n&1&&(N(0,"div",11,3),Fe(2,3),F())}function d$(n,t){}function h$(n,t){if(n&1&&le(0,d$,0,0,"ng-template",13),n&2){Y();let e=Zt(1);z("ngTemplateOutlet",e)}}function m$(n,t){n&1&&(N(0,"div",14,4),Fe(2,4),F())}function f$(n,t){n&1&&(N(0,"div",15,5),Fe(2,5),F())}function p$(n,t){n&1&&ne(0,"div",16)}function g$(n,t){if(n&1&&(N(0,"div",18),Fe(1,6),F()),n&2){let e=Y();z("@transitionMessages",e._subscriptAnimationState)}}function _$(n,t){if(n&1&&(N(0,"mat-hint",22),B(1),F()),n&2){let e=Y(2);z("id",e._hintLabelId),$(),Ke(e.hintLabel)}}function v$(n,t){if(n&1&&(N(0,"div",19),le(1,_$,2,2,"mat-hint",22),Fe(2,7),ne(3,"div",23),Fe(4,8),F()),n&2){let e=Y();z("@transitionMessages",e._subscriptAnimationState),$(),et(e.hintLabel?1:-1)}}var na=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-label"]]})}return n})(),MM=new ee("MatError"),_l=(()=>{class n{id=L(Ft).getId("mat-mdc-error-");constructor(){L(new $i("aria-live"),{optional:!0})||L(Ae).nativeElement.setAttribute("aria-live","polite")}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,r){i&2&&Rn("id",r.id)},inputs:{id:"id"},features:[at([{provide:MM,useExisting:n}])]})}return n})(),gl=(()=>{class n{align="start";id=L(Ft).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){i&2&&(Rn("id",r.id),Me("align",null),ke("mat-mdc-form-field-hint-end",r.align==="end"))},inputs:{align:"align",id:"id"}})}return n})(),b$=new ee("MatPrefix");var y$=new ee("MatSuffix");var TM=new ee("FloatingLabelParent"),yM=(()=>{class n{_elementRef=L(Ae);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=L(Um);_ngZone=L(Ne);_parent=L(TM);_resizeSubscription=new Mt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return C$(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return n})();function C$(n){let t=n;if(t.offsetParent!==null)return t.scrollWidth;let e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);let i=e.scrollWidth;return e.remove(),i}var CM="mdc-line-ripple--active",$m="mdc-line-ripple--deactivating",wM=(()=>{class n{_elementRef=L(Ae);constructor(){L(Ne).runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){let e=this._elementRef.nativeElement.classList;e.remove($m),e.add(CM)}deactivate(){this._elementRef.nativeElement.classList.add($m)}_handleTransitionEnd=e=>{let i=this._elementRef.nativeElement.classList,r=i.contains($m);e.propertyName==="opacity"&&r&&i.remove(CM,$m)};ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return n})(),xM=(()=>{class n{_elementRef=L(Ae);_ngZone=L(Ne);open=!1;_notch;constructor(){}ngAfterViewInit(){let e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){!this.open||!e?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(i&1&&Be(qU,5),i&2){let s;Te(s=Ee())&&(r._notch=s.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mdc-notched-outline--notched",r.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:GU,ngContentSelectors:KU,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,r){i&1&&(tt(),ne(0,"div",1),N(1,"div",2,0),Fe(3),F(),ne(4,"div",3))},encapsulation:2,changeDetection:0})}return n})(),w$={transitionMessages:zi("transitionMessages",[di("enter",ht({opacity:1,transform:"translateY(0%)"})),Yt("void => enter",[ht({opacity:0,transform:"translateY(-5px)"}),ei("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},uu=(()=>{class n{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n})}return n})();var du=new ee("MatFormField"),x$=new ee("MAT_FORM_FIELD_DEFAULT_OPTIONS"),SM="fill",S$="auto",kM="fixed",k$="translateY(-50%)",zn=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_dir=L(ui);_platform=L(ct);_idGenerator=L(Ft);_defaults=L(x$,{optional:!0});_animationMode=L(Ot,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=HC(na);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=Pn(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||S$}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(e){let i=this._appearance,r=e||this._defaults?.appearance||SM;this._appearance=r,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=SM;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||kM}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||kM}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new me;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=L(gt);constructor(){let e=this._defaults;e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Jr(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){let i=this._control,r="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(r+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(r+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(Gt([void 0,void 0]),Le(()=>[i.errorState,i.userAriaDescribedBy]),w0(),st(([[s,a],[o,l]])=>s!==o||a!==l)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(qe(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),ti(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),jd(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(qe(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Jr(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(e){let i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&e.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(s=>s.align==="start"):null,r=this._hintChildren?this._hintChildren.find(s=>s.align==="end"):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),r&&e.push(r.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let e=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){e.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,s=this._iconSuffixContainer?.nativeElement,a=this._textSuffixContainer?.nativeElement,o=i?.getBoundingClientRect().width??0,l=r?.getBoundingClientRect().width??0,c=s?.getBoundingClientRect().width??0,u=a?.getBoundingClientRect().width??0,d=this._dir.value==="rtl"?"-1":"1",h=`${o+l}px`,f=`calc(${d} * (${h} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;e.style.transform=`var( - --mat-mdc-form-field-label-transform, - ${k$} translateX(${f}) - )`;let g=o+l+c+u;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${g}px)`)}_isAttachedToDom(){let e=this._elementRef.nativeElement;if(e.getRootNode){let i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,s){if(i&1&&(qC(s,r._labelChild,na,5),Rt(s,uu,5),Rt(s,b$,5),Rt(s,y$,5),Rt(s,MM,5),Rt(s,gl,5)),i&2){GC();let a;Te(a=Ee())&&(r._formFieldControl=a.first),Te(a=Ee())&&(r._prefixChildren=a),Te(a=Ee())&&(r._suffixChildren=a),Te(a=Ee())&&(r._errorChildren=a),Te(a=Ee())&&(r._hintChildren=a)}},viewQuery:function(i,r){if(i&1&&(Be(YU,5),Be(QU,5),Be(ZU,5),Be(XU,5),Be(JU,5),Be(yM,5),Be(xM,5),Be(wM,5)),i&2){let s;Te(s=Ee())&&(r._textField=s.first),Te(s=Ee())&&(r._iconPrefixContainer=s.first),Te(s=Ee())&&(r._textPrefixContainer=s.first),Te(s=Ee())&&(r._iconSuffixContainer=s.first),Te(s=Ee())&&(r._textSuffixContainer=s.first),Te(s=Ee())&&(r._floatingLabel=s.first),Te(s=Ee())&&(r._notchedOutline=s.first),Te(s=Ee())&&(r._lineRipple=s.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){i&2&&ke("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-no-animations",r._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",r.appearance=="fill")("mat-form-field-appearance-outline",r.appearance=="outline")("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary",r.color!=="accent"&&r.color!=="warn")("mat-accent",r.color==="accent")("mat-warn",r.color==="warn")("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[at([{provide:du,useExisting:n},{provide:TM,useExisting:n}])],ngContentSelectors:t$,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(i&1){let s=We();tt(e$),le(0,r$,1,1,"ng-template",null,0,Ea),N(2,"div",6,1),J("click",function(o){return te(s),ie(r._control.onContainerClick(o))}),le(4,s$,1,0,"div",7),N(5,"div",8),le(6,l$,2,2,"div",9)(7,c$,3,0,"div",10)(8,u$,3,0,"div",11),N(9,"div",12),le(10,h$,1,1,null,13),Fe(11),F(),le(12,m$,3,0,"div",14)(13,f$,3,0,"div",15),F(),le(14,p$,1,0,"div",16),F(),N(15,"div",17),le(16,g$,2,1,"div",18)(17,v$,5,2,"div",19),F()}if(i&2){let s;$(2),ke("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),$(2),et(!r._hasOutline()&&!r._control.disabled?4:-1),$(2),et(r._hasOutline()?6:-1),$(),et(r._hasIconPrefix?7:-1),$(),et(r._hasTextPrefix?8:-1),$(2),et(!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),$(2),et(r._hasTextSuffix?12:-1),$(),et(r._hasIconSuffix?13:-1),$(),et(r._hasOutline()?-1:14),$(),ke("mat-mdc-form-field-subscript-dynamic-size",r.subscriptSizing==="dynamic"),$(),et((s=r._getDisplayedMessages())==="error"?16:s==="hint"?17:-1)}},dependencies:[yM,xM,eh,wM,gl],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[w$.transitionMessages]},changeDetection:0})}return n})(),ra=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,$h,Ue]})}return n})();var IM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return n})(),EM=Ai({passive:!0}),AM=(()=>{class n{_platform=L(ct);_ngZone=L(Ne);_styleLoader=L(wt);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return In;this._styleLoader.load(IM);let i=rn(e),r=this._monitoredElements.get(i);if(r)return r.subject;let s=new me,a="cdk-text-field-autofilled",o=l=>{l.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(a)?(i.classList.add(a),this._ngZone.run(()=>s.next({target:l.target,isAutofilled:!0}))):l.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:l.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",o,EM),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",o,EM)}}),s}stopMonitoring(e){let i=rn(e),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var DM=(()=>{class n{_elementRef=L(Ae);_platform=L(ct);_ngZone=L(Ne);_previousValue;_initialHeight;_destroyed=new me;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(e){this._minRows=ls(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=ls(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=L(it,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){L(wt).load(IM),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let e=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){let e=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{let e=this._getWindow();Qr(e,"resize").pipe(ic(16),qe(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let e=this._textareaElement,i=e.style.marginBottom||"",r=this._platform.FIREFOX,s=r&&this._hasFocus,a=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";s&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(a);let o=e.scrollHeight-4;return e.classList.remove(a),s&&(e.style.marginBottom=i),o}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}_handleFocusEvent=e=>{this._hasFocus=e.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,r=i.value;if(!e&&this._minRows===this._previousMinRows&&r===this._previousValue)return;let s=this._measureScrollHeight(),a=Math.max(s,this._cachedPlaceholderHeight||0);i.style.height=`${a}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=r,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){let{selectionStart:i,selectionEnd:r}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,r)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){i&1&&J("input",function(){return r._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",be],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"],features:[Qe]})}return n})(),RM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var T$=new ee("MAT_INPUT_VALUE_ACCESSOR"),E$=["button","checkbox","file","hidden","image","radio","range","reset","submit"],I$=new ee("MAT_INPUT_CONFIG"),vl=(()=>{class n{_elementRef=L(Ae);_platform=L(ct);ngControl=L(cr,{optional:!0,self:!0});_autofillMonitor=L(AM);_ngZone=L(Ne);_formField=L(du,{optional:!0});_uid=L(Ft).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_webkitBlinkWheelListenerAttached=!1;_config=L(I$,{optional:!0});_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new me;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=Pn(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Cn.required)??!1}set required(e){this._required=Pn(e)}_required;get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&Wg().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=Pn(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>Wg().has(e));constructor(){let e=L(au,{optional:!0}),i=L(ou,{optional:!0}),r=L($c),s=L(T$,{optional:!0,self:!0}),a=this._elementRef.nativeElement,o=a.nodeName.toLowerCase();s?Ta(s.value)?this._signalBasedValueAccessor=s:this._inputValueAccessor=s:this._inputValueAccessor=a,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{a.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new ja(r,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=o==="select",this._isTextarea=o==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=a.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&Xd(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener),this._webkitBlinkWheelListenerAttached&&this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=e,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){let e=this._getPlaceholder();if(e!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){E$.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(e){let i=this._elementRef.nativeElement,r=i.getAttribute("aria-describedby"),s;if(r){let a=this._formFieldDescribedBy||e;s=e.concat(r.split(" ").filter(o=>o&&!a.includes(o)))}else s=e;this._formFieldDescribedBy=e,s.length?i.setAttribute("aria-describedby",s.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{let i=e.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){!this._webkitBlinkWheelListenerAttached&&this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("wheel",this._webkitBlinkWheelListener)}),this._webkitBlinkWheelListenerAttached=!0),this._webkitBlinkWheelListenerAttached&&this._type!=="number"&&(this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener),this._webkitBlinkWheelListenerAttached=!0)}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,r){i&1&&J("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),i&2&&(Rn("id",r.id)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Me("name",r.name||null)("readonly",r._getReadonlyAttribute())("aria-disabled",r.disabled&&r.disabledInteractive?"true":null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),ke("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mat-mdc-input-disabled-interactive",r.disabledInteractive)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",be]},exportAs:["matInput"],features:[at([{provide:uu,useExisting:n}]),Qe,vt]})}return n})(),G_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,ra,ra,RM,Ue]})}return n})();function A$(n,t){if(n&1&&(N(0,"li"),B(1),F()),n&2){let e=t.$implicit;$(),Ye(" ",e.diagnostics," ")}}function D$(n,t){if(n&1&&(N(0,"mat-error")(1,"ul"),le(2,A$,2,1,"li",7),F()()),n&2){let e=Y();$(2),z("ngForOf",e.operationOutcome.issue)}}function R$(n,t){if(n&1&&(N(0,"mat-hint"),B(1),F()),n&2){let e=Y();$(),Ye("Successfully created on server: ",e.structureMap.url," ")}}function L$(n,t){if(n&1&&(N(0,"li"),B(1),F()),n&2){let e=t.$implicit;$(),Ye(" ",e.diagnostics," ")}}function O$(n,t){if(n&1&&(N(0,"mat-error")(1,"ul"),le(2,L$,2,1,"li",7),F()()),n&2){let e=Y();$(2),z("ngForOf",e.operationOutcomeTransformed.issue)}}var Bm=class n{static{this.log=(0,LM.default)("app:")}constructor(t,e){this.cd=t,this.data=e,this.client=e.getFhirClient(),this.source=new ms,this.map=new ms,this.structureMap=null,this.map.valueChanges.pipe(Ui(1e3),An()).subscribe(i=>{n.log("create StructureMap"),this.client.create({resourceType:"StructureMap",body:i,headers:{accept:"application/fhir+json","content-type":"text/fhir-mapping"}}).then(r=>{this.operationOutcome=null,this.structureMap=r,this.transform()}).catch(r=>{this.structureMap=null,this.operationOutcome=r.response.data})}),this.source.valueChanges.pipe(Ui(1e3),An()).subscribe(i=>this.transform())}transform(){n.log("transform Source");let t=JSON.parse(this.source.value);this.structureMap!=null&&this.client.operation({name:"transform?source="+encodeURIComponent(this.structureMap.url),resourceType:"StructureMap",input:t}).then(e=>{this.operationOutcomeTransformed=null,this.transformed=e}).catch(e=>{this.transformed=null,this.operationOutcomeTransformed=e.response.data})}ngOnInit(){}fileSource(t){let e=new FileReader;if(t.target.files&&t.target.files.length){let[i]=t.target.files;e.readAsText(i),e.onload=()=>{this.source.setValue(e.result),this.cd.markForCheck()}}}fileChange(t){let e=new FileReader;if(t.target.files&&t.target.files.length){let[i]=t.target.files;e.readAsText(i),e.onload=()=>{this.map.setValue(e.result),this.cd.markForCheck()}}}static{this.\u0275fac=function(e){return new(e||n)(Se(Xe),Se(Fn))}}static{this.\u0275cmp=he({type:n,selectors:[["app-mapping-language"]],standalone:!1,decls:31,vars:8,consts:[[1,"card-maps"],[1,"fixtextarea"],["accept",".json","placeholder","Upload source","type","file",3,"change"],["cols","400","matNativeControl","","rows","15",3,"formControl"],["accept",".map","placeholder","Upload map","type","file",3,"change"],["cols","400","matNativeControl","","rows","20",3,"formControl"],[4,"ngIf"],[4,"ngFor","ngForOf"]],template:function(e,i){e&1&&(N(0,"mat-card",0)(1,"mat-card-content")(2,"mat-card-header")(3,"mat-card-title"),B(4,"Source"),F()(),N(5,"mat-form-field",1)(6,"mat-card-actions")(7,"input",2),J("change",function(s){return i.fileSource(s)}),F()(),N(8,"textarea",3),B(9," "),F()()()(),N(10,"mat-card",0)(11,"mat-card-content")(12,"mat-card-header")(13,"mat-card-title"),B(14,"FHIR Mapping Language map"),F()(),N(15,"mat-form-field",1)(16,"mat-card-actions")(17,"input",4),J("change",function(s){return i.fileChange(s)}),F()(),N(18,"textarea",5),B(19," "),F()(),le(20,D$,3,1,"mat-error",6)(21,R$,2,1,"mat-hint",6),F()(),N(22,"mat-card",0)(23,"mat-card-content")(24,"mat-card-header")(25,"mat-card-title"),B(26,"Transformed"),F()(),le(27,O$,3,1,"mat-error",6),N(28,"pre"),B(29),Ln(30,"json"),F()()()),e&2&&($(8),z("formControl",i.source),$(10),z("formControl",i.map),$(2),z("ngIf",i.operationOutcome),$(),z("ngIf",i.structureMap),$(6),z("ngIf",i.operationOutcomeTransformed),$(2),Ke(ir(30,6,i.transformed)))},dependencies:[kr,yi,Rr,Lr,ur,ul,pm,dl,gm,fm,zn,gl,_l,vl,nw],styles:[".fixtextarea[_ngcontent-%COMP%]{display:inline}.card-maps[_ngcontent-%COMP%]{margin-bottom:10px}"]})}};var OM=(()=>{class n{constructor(){this.version=window.MATCHBOX_VERSION}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=he({type:n,selectors:[["app-settings"]],standalone:!1,decls:12,vars:1,consts:[["id","settings",1,"white-block"],["href","https://github.com/ahdis/matchbox","rel","external nofollow noopener","target","_blank"]],template:function(i,r){i&1&&(N(0,"div",0)(1,"h2"),B(2,"Matchbox settings"),F(),N(3,"h5"),B(4),F(),N(5,"p")(6,"em"),B(7,"There are no configurable settings here right now"),F()(),N(8,"p"),B(9," Source code: "),N(10,"a",1),B(11,"github.com/ahdis/matchbox"),F()()()),i&2&&($(4),Ye("Version ",r.version,""))},encapsulation:2})}}return n})();var N$=new ee("mat-autocomplete-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}});function F$(n){return()=>n.scrollStrategies.reposition()}var P$={provide:N$,deps:[ii],useFactory:F$};var Y_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[P$],imports:[Dr,rl,Ue,Vn,rl,Ue]})}return n})();var U$=["mat-button",""],$$=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],V$=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var B$="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}";var z$=["mat-icon-button",""],H$=["*"];var j$=new ee("MAT_BUTTON_CONFIG");var W$=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],NM=(()=>{class n{_elementRef=L(Ae);_platform=L(ct);_ngZone=L(Ne);_animationMode=L(Ot,{optional:!0});_focusMonitor=L(Un);_rippleLoader=L(jS);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){L(wt).load(Di);let e=L(j$,{optional:!0}),i=this._elementRef.nativeElement,r=i.classList;this.disabledInteractive=e?.disabledInteractive??!1,this.color=e?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:s,mdcClasses:a}of W$)i.hasAttribute(s)&&r.add(...a)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",be],disabled:[2,"disabled","disabled",be],ariaDisabled:[2,"aria-disabled","ariaDisabled",be],disabledInteractive:[2,"disabledInteractive","disabledInteractive",be]},features:[Qe]})}return n})();var fs=(()=>{class n extends NM{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275cmp=he({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){i&2&&(Me("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),bt(r.color?"mat-"+r.color:""),ke("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Nt],attrs:U$,ngContentSelectors:V$,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){i&1&&(tt($$),ne(0,"span",0),Fe(1),N(2,"span",1),Fe(3,1),F(),Fe(4,2),ne(5,"span",2)(6,"span",3)),i&2&&ke("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-focus-indicator::before,.mat-mdc-raised-button:focus .mat-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return n})();var Xa=(()=>{class n extends NM{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,r){i&2&&(Me("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),bt(r.color?"mat-"+r.color:""),ke("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Nt],attrs:z$,ngContentSelectors:H$,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){i&1&&(tt(),ne(0,"span",0),Fe(1),ne(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',B$],encapsulation:2,changeDetection:0})}return n})();var ps=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,cs,Ue]})}return n})();var G$=["input"],K$=["label"],Y$=["*"],Q$=new ee("mat-checkbox-default-options",{providedIn:"root",factory:PM});function PM(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Ri=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(Ri||{}),Z$={provide:hs,useExisting:Ii(()=>bl),multi:!0},Q_=class{source;checked},FM=PM(),bl=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_ngZone=L(Ne);_animationMode=L(Ot,{optional:!0});_options=L(Q$,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){let i=new Q_;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new oe;indeterminateChange=new oe;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Ri.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){L(wt).load(Di);let e=L(new $i("tabindex"),{optional:!0});this._options=this._options||FM,this.color=this._options.color||FM.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=L(Ft).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(e){let i=e!=this._indeterminate;this._indeterminate=e,i&&(this._indeterminate?this._transitionCheckState(Ri.Indeterminate):this._transitionCheckState(this.checked?Ri.Checked:Ri.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(!(i===e||!r)&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);let s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ri.Checked:Ri.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationMode==="NoopAnimations")return"";switch(e){case Ri.Init:if(i===Ri.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ri.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ri.Unchecked:return i===Ri.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ri.Checked:return i===Ri.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ri.Indeterminate:return i===Ri.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){let i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(i&1&&(Be(G$,5),Be(K$,5)),i&2){let s;Te(s=Ee())&&(r._inputElement=s.first),Te(s=Ee())&&(r._labelElement=s.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,r){i&2&&(Rn("id",r.id),Me("tabindex",null)("aria-label",null)("aria-labelledby",null),bt(r.color?"mat-"+r.color:"mat-accent"),ke("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked)("mat-mdc-checkbox-disabled-interactive",r.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",be],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",be],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",be],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:zt(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",be],checked:[2,"checked","checked",be],disabled:[2,"disabled","disabled",be],indeterminate:[2,"indeterminate","indeterminate",be]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[at([Z$,{provide:ia,useExisting:n,multi:!0}]),Qe,vt],ngContentSelectors:Y$,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"div",3),J("click",function(o){return te(s),ie(r._preventBubblingFromLabel(o))}),N(1,"div",4,0)(3,"div",5),J("click",function(){return te(s),ie(r._onTouchTargetClick())}),F(),N(4,"input",6,1),J("blur",function(){return te(s),ie(r._onBlur())})("click",function(){return te(s),ie(r._onInputClick())})("change",function(o){return te(s),ie(r._onInteractionEvent(o))}),F(),ne(6,"div",7),N(7,"div",8),Qt(),N(8,"svg",9),ne(9,"path",10),F(),Xr(),ne(10,"div",11),F(),ne(11,"div",12),F(),N(12,"label",13,2),Fe(14),F()()}if(i&2){let s=Zt(2);z("labelPosition",r.labelPosition),$(4),ke("mdc-checkbox--selected",r.checked),z("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled&&!r.disabledInteractive)("id",r.inputId)("required",r.required)("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex),Me("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("aria-controls",r.ariaControls)("aria-disabled",r.disabled&&r.disabledInteractive?!0:null)("aria-expanded",r.ariaExpanded)("aria-owns",r.ariaOwns)("name",r.name)("value",r.value),$(7),z("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),$(),z("for",r.inputId)}},dependencies:[yn,sl],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover .mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *,.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return n})();var hu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[bl,Ue,Ue]})}return n})();var X$=["mat-calendar-body",""];function J$(n,t){return this._trackRow(t)}var WM=(n,t)=>t.id;function eV(n,t){if(n&1&&(N(0,"tr",0)(1,"td",3),B(2),F()()),n&2){let e=Y();$(),ai("padding-top",e._cellPadding)("padding-bottom",e._cellPadding),Me("colspan",e.numCols),$(),Ye(" ",e.label," ")}}function tV(n,t){if(n&1&&(N(0,"td",3),B(1),F()),n&2){let e=Y(2);ai("padding-top",e._cellPadding)("padding-bottom",e._cellPadding),Me("colspan",e._firstRowOffset),$(),Ye(" ",e._firstRowOffset>=e.labelMinRequiredCells?e.label:""," ")}}function iV(n,t){if(n&1){let e=We();N(0,"td",6)(1,"button",7),J("click",function(r){let s=te(e).$implicit,a=Y(2);return ie(a._cellClicked(s,r))})("focus",function(r){let s=te(e).$implicit,a=Y(2);return ie(a._emitActiveDateChange(s,r))}),N(2,"span",8),B(3),F(),ne(4,"span",9),F()()}if(n&2){let e=t.$implicit,i=t.$index,r=Y().$index,s=Y();ai("width",s._cellWidth)("padding-top",s._cellPadding)("padding-bottom",s._cellPadding),Me("data-mat-row",r)("data-mat-col",i),$(),ke("mat-calendar-body-disabled",!e.enabled)("mat-calendar-body-active",s._isActiveCell(r,i))("mat-calendar-body-range-start",s._isRangeStart(e.compareValue))("mat-calendar-body-range-end",s._isRangeEnd(e.compareValue))("mat-calendar-body-in-range",s._isInRange(e.compareValue))("mat-calendar-body-comparison-bridge-start",s._isComparisonBridgeStart(e.compareValue,r,i))("mat-calendar-body-comparison-bridge-end",s._isComparisonBridgeEnd(e.compareValue,r,i))("mat-calendar-body-comparison-start",s._isComparisonStart(e.compareValue))("mat-calendar-body-comparison-end",s._isComparisonEnd(e.compareValue))("mat-calendar-body-in-comparison-range",s._isInComparisonRange(e.compareValue))("mat-calendar-body-preview-start",s._isPreviewStart(e.compareValue))("mat-calendar-body-preview-end",s._isPreviewEnd(e.compareValue))("mat-calendar-body-in-preview",s._isInPreview(e.compareValue)),z("ngClass",e.cssClasses)("tabindex",s._isActiveCell(r,i)?0:-1),Me("aria-label",e.ariaLabel)("aria-disabled",!e.enabled||null)("aria-pressed",s._isSelected(e.compareValue))("aria-current",s.todayValue===e.compareValue?"date":null)("aria-describedby",s._getDescribedby(e.compareValue)),$(),ke("mat-calendar-body-selected",s._isSelected(e.compareValue))("mat-calendar-body-comparison-identical",s._isComparisonIdentical(e.compareValue))("mat-calendar-body-today",s.todayValue===e.compareValue),$(),Ye(" ",e.displayValue," ")}}function nV(n,t){if(n&1&&(N(0,"tr",1),le(1,tV,2,6,"td",4),xr(2,iV,5,48,"td",5,WM),F()),n&2){let e=t.$implicit,i=t.$index,r=Y();$(),et(i===0&&r._firstRowOffset?1:-1),$(),Sr(e)}}function rV(n,t){if(n&1&&(N(0,"th",2)(1,"span",6),B(2),F(),N(3,"span",3),B(4),F()()),n&2){let e=t.$implicit;$(2),Ke(e.long),$(2),Ke(e.narrow)}}var sV=["*"];function aV(n,t){}function oV(n,t){if(n&1){let e=We();N(0,"mat-month-view",4),Bs("activeDateChange",function(r){te(e);let s=Y();return Vs(s.activeDate,r)||(s.activeDate=r),ie(r)}),J("_userSelection",function(r){te(e);let s=Y();return ie(s._dateSelected(r))})("dragStarted",function(r){te(e);let s=Y();return ie(s._dragStarted(r))})("dragEnded",function(r){te(e);let s=Y();return ie(s._dragEnded(r))}),F()}if(n&2){let e=Y();$s("activeDate",e.activeDate),z("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)("comparisonStart",e.comparisonStart)("comparisonEnd",e.comparisonEnd)("startDateAccessibleName",e.startDateAccessibleName)("endDateAccessibleName",e.endDateAccessibleName)("activeDrag",e._activeDrag)}}function lV(n,t){if(n&1){let e=We();N(0,"mat-year-view",5),Bs("activeDateChange",function(r){te(e);let s=Y();return Vs(s.activeDate,r)||(s.activeDate=r),ie(r)}),J("monthSelected",function(r){te(e);let s=Y();return ie(s._monthSelectedInYearView(r))})("selectedChange",function(r){te(e);let s=Y();return ie(s._goToDateInView(r,"month"))}),F()}if(n&2){let e=Y();$s("activeDate",e.activeDate),z("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)}}function cV(n,t){if(n&1){let e=We();N(0,"mat-multi-year-view",6),Bs("activeDateChange",function(r){te(e);let s=Y();return Vs(s.activeDate,r)||(s.activeDate=r),ie(r)}),J("yearSelected",function(r){te(e);let s=Y();return ie(s._yearSelectedInMultiYearView(r))})("selectedChange",function(r){te(e);let s=Y();return ie(s._goToDateInView(r,"year"))}),F()}if(n&2){let e=Y();$s("activeDate",e.activeDate),z("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)}}function uV(n,t){}var dV=["button"],hV=[[["","matDatepickerToggleIcon",""]]],mV=["[matDatepickerToggleIcon]"];function fV(n,t){n&1&&(Qt(),N(0,"svg",2),ne(1,"path",3),F())}var pu=(()=>{class n{changes=new me;calendarLabel="Calendar";openCalendarLabel="Open calendar";closeCalendarLabel="Close calendar";prevMonthLabel="Previous month";nextMonthLabel="Next month";prevYearLabel="Previous year";nextYearLabel="Next year";prevMultiYearLabel="Previous 24 years";nextMultiYearLabel="Next 24 years";switchToMonthViewLabel="Choose date";switchToMultiYearViewLabel="Choose month and year";startDateLabel="Start date";endDateLabel="End date";formatYearRange(e,i){return`${e} \u2013 ${i}`}formatYearRangeLabel(e,i){return`${e} to ${i}`}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),pV=0,fu=class{value;displayValue;ariaLabel;enabled;cssClasses;compareValue;rawValue;id=pV++;constructor(t,e,i,r,s={},a=t,o){this.value=t,this.displayValue=e,this.ariaLabel=i,this.enabled=r,this.cssClasses=s,this.compareValue=a,this.rawValue=o}},$M=Ai({passive:!1,capture:!0}),sa=Ai({passive:!0,capture:!0}),Hm=Ai({passive:!0}),yl=(()=>{class n{_elementRef=L(Ae);_ngZone=L(Ne);_platform=L(ct);_skipNextFocus;_focusActiveCellAfterViewChecked=!1;label;rows;todayValue;startValue;endValue;labelMinRequiredCells;numCols=7;activeCell=0;ngAfterViewChecked(){this._focusActiveCellAfterViewChecked&&(this._focusActiveCell(),this._focusActiveCellAfterViewChecked=!1)}isRange=!1;cellAspectRatio=1;comparisonStart;comparisonEnd;previewStart=null;previewEnd=null;startDateAccessibleName;endDateAccessibleName;selectedValueChange=new oe;previewChange=new oe;activeDateChange=new oe;dragStarted=new oe;dragEnded=new oe;_firstRowOffset;_cellPadding;_cellWidth;_startDateLabelId;_endDateLabelId;_didDragSinceMouseDown=!1;_injector=L(gt);_trackRow=e=>e;constructor(){let e=L(Ft);this._startDateLabelId=e.getId("mat-calendar-body-start-"),this._endDateLabelId=e.getId("mat-calendar-body-start-"),L(wt).load(Di),this._ngZone.runOutsideAngular(()=>{let i=this._elementRef.nativeElement;i.addEventListener("touchmove",this._touchmoveHandler,$M),i.addEventListener("mouseenter",this._enterHandler,sa),i.addEventListener("focus",this._enterHandler,sa),i.addEventListener("mouseleave",this._leaveHandler,sa),i.addEventListener("blur",this._leaveHandler,sa),i.addEventListener("mousedown",this._mousedownHandler,Hm),i.addEventListener("touchstart",this._mousedownHandler,Hm),this._platform.isBrowser&&(window.addEventListener("mouseup",this._mouseupHandler),window.addEventListener("touchend",this._touchendHandler))})}_cellClicked(e,i){this._didDragSinceMouseDown||e.enabled&&this.selectedValueChange.emit({value:e.value,event:i})}_emitActiveDateChange(e,i){e.enabled&&this.activeDateChange.emit({value:e.value,event:i})}_isSelected(e){return this.startValue===e||this.endValue===e}ngOnChanges(e){let i=e.numCols,{rows:r,numCols:s}=this;(e.rows||i)&&(this._firstRowOffset=r&&r.length&&r[0].length?s-r[0].length:0),(e.cellAspectRatio||i||!this._cellPadding)&&(this._cellPadding=`${50*this.cellAspectRatio/s}%`),(i||!this._cellWidth)&&(this._cellWidth=`${100/s}%`)}ngOnDestroy(){let e=this._elementRef.nativeElement;e.removeEventListener("touchmove",this._touchmoveHandler,$M),e.removeEventListener("mouseenter",this._enterHandler,sa),e.removeEventListener("focus",this._enterHandler,sa),e.removeEventListener("mouseleave",this._leaveHandler,sa),e.removeEventListener("blur",this._leaveHandler,sa),e.removeEventListener("mousedown",this._mousedownHandler,Hm),e.removeEventListener("touchstart",this._mousedownHandler,Hm),this._platform.isBrowser&&(window.removeEventListener("mouseup",this._mouseupHandler),window.removeEventListener("touchend",this._touchendHandler))}_isActiveCell(e,i){let r=e*this.numCols+i;return e&&(r-=this._firstRowOffset),r==this.activeCell}_focusActiveCell(e=!0){vi(()=>{setTimeout(()=>{let i=this._elementRef.nativeElement.querySelector(".mat-calendar-body-active");i&&(e||(this._skipNextFocus=!0),i.focus())})},{injector:this._injector})}_scheduleFocusActiveCellAfterViewChecked(){this._focusActiveCellAfterViewChecked=!0}_isRangeStart(e){return J_(e,this.startValue,this.endValue)}_isRangeEnd(e){return ev(e,this.startValue,this.endValue)}_isInRange(e){return tv(e,this.startValue,this.endValue,this.isRange)}_isComparisonStart(e){return J_(e,this.comparisonStart,this.comparisonEnd)}_isComparisonBridgeStart(e,i,r){if(!this._isComparisonStart(e)||this._isRangeStart(e)||!this._isInRange(e))return!1;let s=this.rows[i][r-1];if(!s){let a=this.rows[i-1];s=a&&a[a.length-1]}return s&&!this._isRangeEnd(s.compareValue)}_isComparisonBridgeEnd(e,i,r){if(!this._isComparisonEnd(e)||this._isRangeEnd(e)||!this._isInRange(e))return!1;let s=this.rows[i][r+1];if(!s){let a=this.rows[i+1];s=a&&a[0]}return s&&!this._isRangeStart(s.compareValue)}_isComparisonEnd(e){return ev(e,this.comparisonStart,this.comparisonEnd)}_isInComparisonRange(e){return tv(e,this.comparisonStart,this.comparisonEnd,this.isRange)}_isComparisonIdentical(e){return this.comparisonStart===this.comparisonEnd&&e===this.comparisonStart}_isPreviewStart(e){return J_(e,this.previewStart,this.previewEnd)}_isPreviewEnd(e){return ev(e,this.previewStart,this.previewEnd)}_isInPreview(e){return tv(e,this.previewStart,this.previewEnd,this.isRange)}_getDescribedby(e){return this.isRange?this.startValue===e&&this.endValue===e?`${this._startDateLabelId} ${this._endDateLabelId}`:this.startValue===e?this._startDateLabelId:this.endValue===e?this._endDateLabelId:null:null}_enterHandler=e=>{if(this._skipNextFocus&&e.type==="focus"){this._skipNextFocus=!1;return}if(e.target&&this.isRange){let i=this._getCellFromElement(e.target);i&&this._ngZone.run(()=>this.previewChange.emit({value:i.enabled?i:null,event:e}))}};_touchmoveHandler=e=>{if(!this.isRange)return;let i=VM(e),r=i?this._getCellFromElement(i):null;i!==e.target&&(this._didDragSinceMouseDown=!0),X_(e.target)&&e.preventDefault(),this._ngZone.run(()=>this.previewChange.emit({value:r?.enabled?r:null,event:e}))};_leaveHandler=e=>{this.previewEnd!==null&&this.isRange&&(e.type!=="blur"&&(this._didDragSinceMouseDown=!0),e.target&&this._getCellFromElement(e.target)&&!(e.relatedTarget&&this._getCellFromElement(e.relatedTarget))&&this._ngZone.run(()=>this.previewChange.emit({value:null,event:e})))};_mousedownHandler=e=>{if(!this.isRange)return;this._didDragSinceMouseDown=!1;let i=e.target&&this._getCellFromElement(e.target);!i||!this._isInRange(i.compareValue)||this._ngZone.run(()=>{this.dragStarted.emit({value:i.rawValue,event:e})})};_mouseupHandler=e=>{if(!this.isRange)return;let i=X_(e.target);if(!i){this._ngZone.run(()=>{this.dragEnded.emit({value:null,event:e})});return}i.closest(".mat-calendar-body")===this._elementRef.nativeElement&&this._ngZone.run(()=>{let r=this._getCellFromElement(i);this.dragEnded.emit({value:r?.rawValue??null,event:e})})};_touchendHandler=e=>{let i=VM(e);i&&this._mouseupHandler({target:i})};_getCellFromElement(e){let i=X_(e);if(i){let r=i.getAttribute("data-mat-row"),s=i.getAttribute("data-mat-col");if(r&&s)return this.rows[parseInt(r)][parseInt(s)]}return null}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["","mat-calendar-body",""]],hostAttrs:[1,"mat-calendar-body"],inputs:{label:"label",rows:"rows",todayValue:"todayValue",startValue:"startValue",endValue:"endValue",labelMinRequiredCells:"labelMinRequiredCells",numCols:"numCols",activeCell:"activeCell",isRange:"isRange",cellAspectRatio:"cellAspectRatio",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",previewStart:"previewStart",previewEnd:"previewEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedValueChange:"selectedValueChange",previewChange:"previewChange",activeDateChange:"activeDateChange",dragStarted:"dragStarted",dragEnded:"dragEnded"},exportAs:["matCalendarBody"],features:[vt],attrs:X$,decls:7,vars:5,consts:[["aria-hidden","true"],["role","row"],[1,"mat-calendar-body-hidden-label",3,"id"],[1,"mat-calendar-body-label"],[1,"mat-calendar-body-label",3,"paddingTop","paddingBottom"],["role","gridcell",1,"mat-calendar-body-cell-container",3,"width","paddingTop","paddingBottom"],["role","gridcell",1,"mat-calendar-body-cell-container"],["type","button",1,"mat-calendar-body-cell",3,"click","focus","ngClass","tabindex"],[1,"mat-calendar-body-cell-content","mat-focus-indicator"],["aria-hidden","true",1,"mat-calendar-body-cell-preview"]],template:function(i,r){i&1&&(le(0,eV,3,6,"tr",0),xr(1,nV,4,1,"tr",1,J$,!0),N(3,"span",2),B(4),F(),N(5,"span",2),B(6),F()),i&2&&(et(r._firstRowOffset.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:var(--mat-datepicker-calendar-date-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:var(--mat-datepicker-calendar-date-today-disabled-state-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mat-calendar-body-disabled{opacity:.5}}.mat-calendar-body-cell-content{top:5%;left:5%;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px;color:var(--mat-datepicker-calendar-date-text-color, var(--mat-sys-on-surface));border-color:var(--mat-datepicker-calendar-date-outline-color, transparent)}.mat-calendar-body-cell-content.mat-focus-indicator{position:absolute}@media(forced-colors: active){.mat-calendar-body-cell-content{border:none}}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-focus-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-hover-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}}.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-state-background-color, var(--mat-sys-primary));color:var(--mat-datepicker-calendar-date-selected-state-text-color, var(--mat-sys-on-primary))}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-calendar-body-selected.mat-calendar-body-today{box-shadow:inset 0 0 0 1px var(--mat-datepicker-calendar-date-today-selected-state-outline-color, var(--mat-sys-primary))}.mat-calendar-body-in-range::before{background:var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container))}.mat-calendar-body-comparison-bridge-start::before,[dir=rtl] .mat-calendar-body-comparison-bridge-end::before{background:linear-gradient(to right, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container)) 50%)}.mat-calendar-body-comparison-bridge-end::before,[dir=rtl] .mat-calendar-body-comparison-bridge-start::before{background:linear-gradient(to left, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container)) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after{background:var(--mat-datepicker-calendar-date-in-overlap-range-state-background-color, var(--mat-sys-secondary-container))}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:var(--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color, var(--mat-sys-secondary))}@media(forced-colors: active){.mat-datepicker-popup:not(:empty),.mat-calendar-body-cell:not(.mat-calendar-body-in-range) .mat-calendar-body-selected{outline:solid 1px}.mat-calendar-body-today{outline:dotted 1px}.mat-calendar-body-cell::before,.mat-calendar-body-cell::after,.mat-calendar-body-selected{background:none}.mat-calendar-body-in-range::before,.mat-calendar-body-comparison-bridge-start::before,.mat-calendar-body-comparison-bridge-end::before{border-top:solid 1px;border-bottom:solid 1px}.mat-calendar-body-range-start::before{border-left:solid 1px}[dir=rtl] .mat-calendar-body-range-start::before{border-left:0;border-right:solid 1px}.mat-calendar-body-range-end::before{border-right:solid 1px}[dir=rtl] .mat-calendar-body-range-end::before{border-right:0;border-left:solid 1px}.mat-calendar-body-in-comparison-range::before{border-top:dashed 1px;border-bottom:dashed 1px}.mat-calendar-body-comparison-start::before{border-left:dashed 1px}[dir=rtl] .mat-calendar-body-comparison-start::before{border-left:0;border-right:dashed 1px}.mat-calendar-body-comparison-end::before{border-right:dashed 1px}[dir=rtl] .mat-calendar-body-comparison-end::before{border-right:0;border-left:dashed 1px}}'],encapsulation:2,changeDetection:0})}return n})();function Z_(n){return n?.nodeName==="TD"}function X_(n){let t;return Z_(n)?t=n:Z_(n.parentNode)?t=n.parentNode:Z_(n.parentNode?.parentNode)&&(t=n.parentNode.parentNode),t?.getAttribute("data-mat-row")!=null?t:null}function J_(n,t,e){return e!==null&&t!==e&&n=t&&n===e}function tv(n,t,e,i){return i&&t!==null&&e!==null&&t!==e&&n>=t&&n<=e}function VM(n){let t=n.changedTouches[0];return document.elementFromPoint(t.clientX,t.clientY)}var Hn=class{start;end;_disableStructuralEquivalency;constructor(t,e){this.start=t,this.end=e}},jm=(()=>{class n{selection;_adapter;_selectionChanged=new me;selectionChanged=this._selectionChanged;constructor(e,i){this.selection=e,this._adapter=i,this.selection=e}updateSelection(e,i){let r=this.selection;this.selection=e,this._selectionChanged.next({selection:e,source:i,oldValue:r})}ngOnDestroy(){this._selectionChanged.complete()}_isValidDateInstance(e){return this._adapter.isDateInstance(e)&&this._adapter.isValid(e)}static \u0275fac=function(i){Wd()};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),gV=(()=>{class n extends jm{constructor(e){super(null,e)}add(e){super.updateSelection(e,this)}isValid(){return this.selection!=null&&this._isValidDateInstance(this.selection)}isComplete(){return this.selection!=null}clone(){let e=new n(this._adapter);return e.updateSelection(this.selection,this),e}static \u0275fac=function(i){return new(i||n)(Oe(sn))};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function _V(n,t){return n||new gV(t)}var vV={provide:jm,deps:[[new Us,new ka,jm],sn],useFactory:_V};var qM=new ee("MAT_DATE_RANGE_SELECTION_STRATEGY");var iv=7,bV=0,BM=(()=>{class n{_changeDetectorRef=L(Xe);_dateFormats=L(nl,{optional:!0});_dateAdapter=L(sn,{optional:!0});_dir=L(ui,{optional:!0});_rangeStrategy=L(qM,{optional:!0});_rerenderSubscription=Mt.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),this._hasSameMonthAndYear(i,this._activeDate)||this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Hn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setRanges(this._selected)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;activeDrag=null;selectedChange=new oe;_userSelection=new oe;dragStarted=new oe;dragEnded=new oe;activeDateChange=new oe;_matCalendarBody;_monthLabel;_weeks;_firstWeekOffset;_rangeStart;_rangeEnd;_comparisonRangeStart;_comparisonRangeEnd;_previewStart;_previewEnd;_isRange;_todayDate;_weekdays;constructor(){L(wt).load(os),this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Gt(null)).subscribe(()=>this._init())}ngOnChanges(e){let i=e.comparisonStart||e.comparisonEnd;i&&!i.firstChange&&this._setRanges(this.selected),e.activeDrag&&!this.activeDrag&&this._clearPreview()}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_dateSelected(e){let i=e.value,r=this._getDateFromDayOfMonth(i),s,a;this._selected instanceof Hn?(s=this._getDateInCurrentMonth(this._selected.start),a=this._getDateInCurrentMonth(this._selected.end)):s=a=this._getDateInCurrentMonth(this._selected),(s!==i||a!==i)&&this.selectedChange.emit(r),this._userSelection.emit({value:r,event:e.event}),this._clearPreview(),this._changeDetectorRef.markForCheck()}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromDayOfMonth(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this._activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case 40:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case 36:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case 33:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case 34:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case 13:case 32:this._selectionKeyPressed=!0,this._canSelect(this._activeDate)&&e.preventDefault();return;case 27:this._previewEnd!=null&&!Vi(e)&&(this._clearPreview(),this.activeDrag?this.dragEnded.emit({value:null,event:e}):(this.selectedChange.emit(null),this._userSelection.emit({value:null,event:e})),e.preventDefault(),e.stopPropagation());return;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._canSelect(this._activeDate)&&this._dateSelected({value:this._dateAdapter.getDate(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_init(){this._setRanges(this.selected),this._todayDate=this._getCellCompareValue(this._dateAdapter.today()),this._monthLabel=this._dateFormats.display.monthLabel?this._dateAdapter.format(this.activeDate,this._dateFormats.display.monthLabel):this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();let e=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(iv+this._dateAdapter.getDayOfWeek(e)-this._dateAdapter.getFirstDayOfWeek())%iv,this._initWeekdays(),this._createWeekCells(),this._changeDetectorRef.markForCheck()}_focusActiveCell(e){this._matCalendarBody._focusActiveCell(e)}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_previewChanged({event:e,value:i}){if(this._rangeStrategy){let r=i?i.rawValue:null,s=this._rangeStrategy.createPreview(r,this.selected,e);if(this._previewStart=this._getCellCompareValue(s.start),this._previewEnd=this._getCellCompareValue(s.end),this.activeDrag&&r){let a=this._rangeStrategy.createDrag?.(this.activeDrag.value,this.selected,r,e);a&&(this._previewStart=this._getCellCompareValue(a.start),this._previewEnd=this._getCellCompareValue(a.end))}this._changeDetectorRef.detectChanges()}}_dragEnded(e){if(this.activeDrag)if(e.value){let i=this._rangeStrategy?.createDrag?.(this.activeDrag.value,this.selected,e.value,e.event);this.dragEnded.emit({value:i??null,event:e.event})}else this.dragEnded.emit({value:null,event:e.event})}_getDateFromDayOfMonth(e){return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),e)}_initWeekdays(){let e=this._dateAdapter.getFirstDayOfWeek(),i=this._dateAdapter.getDayOfWeekNames("narrow"),s=this._dateAdapter.getDayOfWeekNames("long").map((a,o)=>({long:a,narrow:i[o],id:bV++}));this._weekdays=s.slice(e).concat(s.slice(0,e))}_createWeekCells(){let e=this._dateAdapter.getNumDaysInMonth(this.activeDate),i=this._dateAdapter.getDateNames();this._weeks=[[]];for(let r=0,s=this._firstWeekOffset;r=0)&&(!this.maxDate||this._dateAdapter.compareDate(e,this.maxDate)<=0)&&(!this.dateFilter||this.dateFilter(e))}_getDateInCurrentMonth(e){return e&&this._hasSameMonthAndYear(e,this.activeDate)?this._dateAdapter.getDate(e):null}_hasSameMonthAndYear(e,i){return!!(e&&i&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(i)&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i))}_getCellCompareValue(e){if(e){let i=this._dateAdapter.getYear(e),r=this._dateAdapter.getMonth(e),s=this._dateAdapter.getDate(e);return new Date(i,r,s).getTime()}return null}_isRtl(){return this._dir&&this._dir.value==="rtl"}_setRanges(e){e instanceof Hn?(this._rangeStart=this._getCellCompareValue(e.start),this._rangeEnd=this._getCellCompareValue(e.end),this._isRange=!0):(this._rangeStart=this._rangeEnd=this._getCellCompareValue(e),this._isRange=!1),this._comparisonRangeStart=this._getCellCompareValue(this.comparisonStart),this._comparisonRangeEnd=this._getCellCompareValue(this.comparisonEnd)}_canSelect(e){return!this.dateFilter||this.dateFilter(e)}_clearPreview(){this._previewStart=this._previewEnd=null}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-month-view"]],viewQuery:function(i,r){if(i&1&&Be(yl,5),i&2){let s;Te(s=Ee())&&(r._matCalendarBody=s.first)}},inputs:{activeDate:"activeDate",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName",activeDrag:"activeDrag"},outputs:{selectedChange:"selectedChange",_userSelection:"_userSelection",dragStarted:"dragStarted",dragEnded:"dragEnded",activeDateChange:"activeDateChange"},exportAs:["matMonthView"],features:[vt],decls:8,vars:14,consts:[["role","grid",1,"mat-calendar-table"],[1,"mat-calendar-table-header"],["scope","col"],["aria-hidden","true"],["colspan","7",1,"mat-calendar-table-header-divider"],["mat-calendar-body","",3,"selectedValueChange","activeDateChange","previewChange","dragStarted","dragEnded","keyup","keydown","label","rows","todayValue","startValue","endValue","comparisonStart","comparisonEnd","previewStart","previewEnd","isRange","labelMinRequiredCells","activeCell","startDateAccessibleName","endDateAccessibleName"],[1,"cdk-visually-hidden"]],template:function(i,r){i&1&&(N(0,"table",0)(1,"thead",1)(2,"tr"),xr(3,rV,5,2,"th",2,WM),F(),N(5,"tr",3),ne(6,"th",4),F()(),N(7,"tbody",5),J("selectedValueChange",function(a){return r._dateSelected(a)})("activeDateChange",function(a){return r._updateActiveDate(a)})("previewChange",function(a){return r._previewChanged(a)})("dragStarted",function(a){return r.dragStarted.emit(a)})("dragEnded",function(a){return r._dragEnded(a)})("keyup",function(a){return r._handleCalendarBodyKeyup(a)})("keydown",function(a){return r._handleCalendarBodyKeydown(a)}),F()()),i&2&&($(3),Sr(r._weekdays),$(4),z("label",r._monthLabel)("rows",r._weeks)("todayValue",r._todayDate)("startValue",r._rangeStart)("endValue",r._rangeEnd)("comparisonStart",r._comparisonRangeStart)("comparisonEnd",r._comparisonRangeEnd)("previewStart",r._previewStart)("previewEnd",r._previewEnd)("isRange",r._isRange)("labelMinRequiredCells",3)("activeCell",r._dateAdapter.getDate(r.activeDate)-1)("startDateAccessibleName",r.startDateAccessibleName)("endDateAccessibleName",r.endDateAccessibleName))},dependencies:[yl],encapsulation:2,changeDetection:0})}return n})(),wn=24,nv=4,zM=(()=>{class n{_changeDetectorRef=L(Xe);_dateAdapter=L(sn,{optional:!0});_dir=L(ui,{optional:!0});_rerenderSubscription=Mt.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),GM(this._dateAdapter,i,this._activeDate,this.minDate,this.maxDate)||this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Hn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedYear(e)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;selectedChange=new oe;yearSelected=new oe;activeDateChange=new oe;_matCalendarBody;_years;_todayYear;_selectedYear;constructor(){this._dateAdapter,this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Gt(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_init(){this._todayYear=this._dateAdapter.getYear(this._dateAdapter.today());let i=this._dateAdapter.getYear(this._activeDate)-mu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate);this._years=[];for(let r=0,s=[];rthis._createCellForYear(a))),s=[]);this._changeDetectorRef.markForCheck()}_yearSelected(e){let i=e.value,r=this._dateAdapter.createDate(i,0,1),s=this._getDateFromYear(i);this.yearSelected.emit(r),this.selectedChange.emit(s)}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromYear(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-nv);break;case 40:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,nv);break;case 36:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-mu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,wn-mu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)-1);break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-wn*10:-wn);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?wn*10:wn);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked(),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._yearSelected({value:this._dateAdapter.getYear(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_getActiveCell(){return mu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getDateFromYear(e){let i=this._dateAdapter.getMonth(this.activeDate),r=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(e,i,1));return this._dateAdapter.createDate(e,i,Math.min(this._dateAdapter.getDate(this.activeDate),r))}_createCellForYear(e){let i=this._dateAdapter.createDate(e,0,1),r=this._dateAdapter.getYearName(i),s=this.dateClass?this.dateClass(i,"multi-year"):void 0;return new fu(e,r,r,this._shouldEnableYear(e),s)}_shouldEnableYear(e){if(e==null||this.maxDate&&e>this._dateAdapter.getYear(this.maxDate)||this.minDate&&e{class n{_changeDetectorRef=L(Xe);_dateFormats=L(nl,{optional:!0});_dateAdapter=L(sn,{optional:!0});_dir=L(ui,{optional:!0});_rerenderSubscription=Mt.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),this._dateAdapter.getYear(i)!==this._dateAdapter.getYear(this._activeDate)&&this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Hn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedMonth(e)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;selectedChange=new oe;monthSelected=new oe;activeDateChange=new oe;_matCalendarBody;_months;_yearLabel;_todayMonth;_selectedMonth;constructor(){this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Gt(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_monthSelected(e){let i=e.value,r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),i,1);this.monthSelected.emit(r);let s=this._getDateFromMonth(i);this.selectedChange.emit(s)}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromMonth(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-4);break;case 40:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,4);break;case 36:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-10:-1);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?10:1);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._monthSelected({value:this._dateAdapter.getMonth(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_init(){this._setSelectedMonth(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);let e=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map(i=>i.map(r=>this._createCellForMonth(r,e[r]))),this._changeDetectorRef.markForCheck()}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getMonthInCurrentYear(e){return e&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(e):null}_getDateFromMonth(e){let i=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),r=this._dateAdapter.getNumDaysInMonth(i);return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,Math.min(this._dateAdapter.getDate(this.activeDate),r))}_createCellForMonth(e,i){let r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),s=this._dateAdapter.format(r,this._dateFormats.display.monthYearA11yLabel),a=this.dateClass?this.dateClass(r,"year"):void 0;return new fu(e,i.toLocaleUpperCase(),s,this._shouldEnableMonth(e),a)}_shouldEnableMonth(e){let i=this._dateAdapter.getYear(this.activeDate);if(e==null||this._isYearAndMonthAfterMaxDate(i,e)||this._isYearAndMonthBeforeMinDate(i,e))return!1;if(!this.dateFilter)return!0;let r=this._dateAdapter.createDate(i,e,1);for(let s=r;this._dateAdapter.getMonth(s)==e;s=this._dateAdapter.addCalendarDays(s,1))if(this.dateFilter(s))return!0;return!1}_isYearAndMonthAfterMaxDate(e,i){if(this.maxDate){let r=this._dateAdapter.getYear(this.maxDate),s=this._dateAdapter.getMonth(this.maxDate);return e>r||e===r&&i>s}return!1}_isYearAndMonthBeforeMinDate(e,i){if(this.minDate){let r=this._dateAdapter.getYear(this.minDate),s=this._dateAdapter.getMonth(this.minDate);return e{class n{_intl=L(pu);calendar=L(rv);_dateAdapter=L(sn,{optional:!0});_dateFormats=L(nl,{optional:!0});constructor(){L(wt).load(os);let e=L(Xe);this.calendar.stateChanges.subscribe(()=>e.markForCheck())}get periodButtonText(){return this.calendar.currentView=="month"?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this.calendar.currentView=="year"?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRange(...this._formatMinAndMaxYearLabels())}get periodButtonDescription(){return this.calendar.currentView=="month"?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this.calendar.currentView=="year"?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRangeLabel(...this._formatMinAndMaxYearLabels())}get periodButtonLabel(){return this.calendar.currentView=="month"?this._intl.switchToMultiYearViewLabel:this._intl.switchToMonthViewLabel}get prevButtonLabel(){return{month:this._intl.prevMonthLabel,year:this._intl.prevYearLabel,"multi-year":this._intl.prevMultiYearLabel}[this.calendar.currentView]}get nextButtonLabel(){return{month:this._intl.nextMonthLabel,year:this._intl.nextYearLabel,"multi-year":this._intl.nextMultiYearLabel}[this.calendar.currentView]}currentPeriodClicked(){this.calendar.currentView=this.calendar.currentView=="month"?"multi-year":"month"}previousClicked(){this.calendar.activeDate=this.calendar.currentView=="month"?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,-1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,this.calendar.currentView=="year"?-1:-wn)}nextClicked(){this.calendar.activeDate=this.calendar.currentView=="month"?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,this.calendar.currentView=="year"?1:wn)}previousEnabled(){return this.calendar.minDate?!this.calendar.minDate||!this._isSameView(this.calendar.activeDate,this.calendar.minDate):!0}nextEnabled(){return!this.calendar.maxDate||!this._isSameView(this.calendar.activeDate,this.calendar.maxDate)}_isSameView(e,i){return this.calendar.currentView=="month"?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i)&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(i):this.calendar.currentView=="year"?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i):GM(this._dateAdapter,e,i,this.calendar.minDate,this.calendar.maxDate)}_formatMinAndMaxYearLabels(){let i=this._dateAdapter.getYear(this.calendar.activeDate)-mu(this._dateAdapter,this.calendar.activeDate,this.calendar.minDate,this.calendar.maxDate),r=i+wn-1,s=this._dateAdapter.getYearName(this._dateAdapter.createDate(i,0,1)),a=this._dateAdapter.getYearName(this._dateAdapter.createDate(r,0,1));return[s,a]}_periodButtonLabelId=L(Ft).getId("mat-calendar-period-label-");static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-calendar-header"]],exportAs:["matCalendarHeader"],ngContentSelectors:sV,decls:17,vars:11,consts:[[1,"mat-calendar-header"],[1,"mat-calendar-controls"],["aria-live","polite",1,"cdk-visually-hidden",3,"id"],["mat-button","","type","button",1,"mat-calendar-period-button",3,"click"],["aria-hidden","true"],["viewBox","0 0 10 5","focusable","false","aria-hidden","true",1,"mat-calendar-arrow"],["points","0,0 5,5 10,0"],[1,"mat-calendar-spacer"],["mat-icon-button","","type","button",1,"mat-calendar-previous-button",3,"click","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-calendar-next-button",3,"click","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"]],template:function(i,r){i&1&&(tt(),N(0,"div",0)(1,"div",1)(2,"span",2),B(3),F(),N(4,"button",3),J("click",function(){return r.currentPeriodClicked()}),N(5,"span",4),B(6),F(),Qt(),N(7,"svg",5),ne(8,"polygon",6),F()(),Xr(),ne(9,"div",7),Fe(10),N(11,"button",8),J("click",function(){return r.previousClicked()}),Qt(),N(12,"svg",9),ne(13,"path",10),F()(),Xr(),N(14,"button",11),J("click",function(){return r.nextClicked()}),Qt(),N(15,"svg",9),ne(16,"path",12),F()()()()),i&2&&($(2),z("id",r._periodButtonLabelId),$(),Ke(r.periodButtonDescription),$(),Me("aria-label",r.periodButtonLabel)("aria-describedby",r._periodButtonLabelId),$(2),Ke(r.periodButtonText),$(),ke("mat-calendar-invert",r.calendar.currentView!=="month"),$(4),z("disabled",!r.previousEnabled()),Me("aria-label",r.prevButtonLabel),$(3),z("disabled",!r.nextEnabled()),Me("aria-label",r.nextButtonLabel))},dependencies:[fs,Xa],encapsulation:2,changeDetection:0})}return n})(),rv=(()=>{class n{_dateAdapter=L(sn,{optional:!0});_dateFormats=L(nl,{optional:!0});_changeDetectorRef=L(Xe);headerComponent;_calendarHeaderPortal;_intlChanges;_moveFocusOnNextTick=!1;get startAt(){return this._startAt}set startAt(e){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_startAt;startView="month";get selected(){return this._selected}set selected(e){e instanceof Hn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;selectedChange=new oe;yearSelected=new oe;monthSelected=new oe;viewChanged=new oe(!0);_userSelection=new oe;_userDragDrop=new oe;monthView;yearView;multiYearView;get activeDate(){return this._clampedActiveDate}set activeDate(e){this._clampedActiveDate=this._dateAdapter.clampDate(e,this.minDate,this.maxDate),this.stateChanges.next(),this._changeDetectorRef.markForCheck()}_clampedActiveDate;get currentView(){return this._currentView}set currentView(e){let i=this._currentView!==e?e:null;this._currentView=e,this._moveFocusOnNextTick=!0,this._changeDetectorRef.markForCheck(),i&&this.viewChanged.emit(i)}_currentView;_activeDrag=null;stateChanges=new me;constructor(){this._intlChanges=L(pu).changes.subscribe(()=>{this._changeDetectorRef.markForCheck(),this.stateChanges.next()})}ngAfterContentInit(){this._calendarHeaderPortal=new Ga(this.headerComponent||YM),this.activeDate=this.startAt||this._dateAdapter.today(),this._currentView=this.startView}ngAfterViewChecked(){this._moveFocusOnNextTick&&(this._moveFocusOnNextTick=!1,this.focusActiveCell())}ngOnDestroy(){this._intlChanges.unsubscribe(),this.stateChanges.complete()}ngOnChanges(e){let i=e.minDate&&!this._dateAdapter.sameDate(e.minDate.previousValue,e.minDate.currentValue)?e.minDate:void 0,r=e.maxDate&&!this._dateAdapter.sameDate(e.maxDate.previousValue,e.maxDate.currentValue)?e.maxDate:void 0,s=i||r||e.dateFilter;if(s&&!s.firstChange){let a=this._getCurrentViewComponent();a&&(this._moveFocusOnNextTick=!0,this._changeDetectorRef.detectChanges(),a._init())}this.stateChanges.next()}focusActiveCell(){this._getCurrentViewComponent()._focusActiveCell(!1)}updateTodaysDate(){this._getCurrentViewComponent()._init()}_dateSelected(e){let i=e.value;(this.selected instanceof Hn||i&&!this._dateAdapter.sameDate(i,this.selected))&&this.selectedChange.emit(i),this._userSelection.emit(e)}_yearSelectedInMultiYearView(e){this.yearSelected.emit(e)}_monthSelectedInYearView(e){this.monthSelected.emit(e)}_goToDateInView(e,i){this.activeDate=e,this.currentView=i}_dragStarted(e){this._activeDrag=e}_dragEnded(e){this._activeDrag&&(e.value&&this._userDragDrop.emit(e),this._activeDrag=null)}_getCurrentViewComponent(){return this.monthView||this.yearView||this.multiYearView}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-calendar"]],viewQuery:function(i,r){if(i&1&&(Be(BM,5),Be(HM,5),Be(zM,5)),i&2){let s;Te(s=Ee())&&(r.monthView=s.first),Te(s=Ee())&&(r.yearView=s.first),Te(s=Ee())&&(r.multiYearView=s.first)}},hostAttrs:[1,"mat-calendar"],inputs:{headerComponent:"headerComponent",startAt:"startAt",startView:"startView",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedChange:"selectedChange",yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",_userSelection:"_userSelection",_userDragDrop:"_userDragDrop"},exportAs:["matCalendar"],features:[at([vV]),vt],decls:5,vars:2,consts:[[3,"cdkPortalOutlet"],["cdkMonitorSubtreeFocus","","tabindex","-1",1,"mat-calendar-content"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass"],[3,"activeDateChange","_userSelection","dragStarted","dragEnded","activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag"],[3,"activeDateChange","monthSelected","selectedChange","activeDate","selected","dateFilter","maxDate","minDate","dateClass"],[3,"activeDateChange","yearSelected","selectedChange","activeDate","selected","dateFilter","maxDate","minDate","dateClass"]],template:function(i,r){if(i&1&&(le(0,aV,0,0,"ng-template",0),N(1,"div",1),le(2,oV,1,11,"mat-month-view",2)(3,lV,1,6,"mat-year-view",3)(4,cV,1,6,"mat-multi-year-view",3),F()),i&2){let s;z("cdkPortalOutlet",r._calendarHeaderPortal),$(2),et((s=r.currentView)==="month"?2:s==="year"?3:s==="multi-year"?4:-1)}},dependencies:[Ka,Yh,BM,HM,zM],styles:['.mat-calendar{display:block;line-height:normal;font-family:var(--mat-datepicker-calendar-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-datepicker-calendar-text-size, var(--mat-sys-body-medium-size))}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:none}.mat-calendar-controls{display:flex;align-items:center;margin:5% calc(4.7142857143% - 16px)}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0;margin:0 8px;font-size:var(--mat-datepicker-calendar-period-button-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-datepicker-calendar-period-button-text-weight, var(--mat-sys-title-small-weight));--mdc-text-button-label-text-color:var(--mat-datepicker-calendar-period-button-text-color, var(--mat-sys-on-surface-variant))}.mat-calendar-arrow{display:inline-block;width:10px;height:5px;margin:0 0 0 5px;vertical-align:middle;fill:var(--mat-datepicker-calendar-period-button-icon-color, var(--mat-sys-on-surface-variant))}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}@media(forced-colors: active){.mat-calendar-arrow{fill:CanvasText}}.mat-datepicker-content .mat-calendar-previous-button:not(.mat-mdc-button-disabled),.mat-datepicker-content .mat-calendar-next-button:not(.mat-mdc-button-disabled){color:var(--mat-datepicker-calendar-navigation-button-icon-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-calendar-previous-button,[dir=rtl] .mat-calendar-next-button{transform:rotate(180deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0;color:var(--mat-datepicker-calendar-header-text-color, var(--mat-sys-on-surface-variant));font-size:var(--mat-datepicker-calendar-header-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-datepicker-calendar-header-text-weight, var(--mat-sys-title-small-weight))}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:"";position:absolute;top:0;left:-8px;right:-8px;height:1px;background:var(--mat-datepicker-calendar-header-divider-color, transparent)}.mat-calendar-body-cell-content::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}.mat-calendar-body-cell:focus .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return n})(),jM={transformPanel:zi("transformPanel",[Yt("void => enter-dropdown",ei("120ms cubic-bezier(0, 0, 0.2, 1)",M_([ht({opacity:0,transform:"scale(1, 0.8)"}),ht({opacity:1,transform:"scale(1, 1)"})]))),Yt("void => enter-dialog",ei("150ms cubic-bezier(0, 0, 0.2, 1)",M_([ht({opacity:0,transform:"scale(0.7)"}),ht({transform:"none",opacity:1})]))),Yt("* => void",ei("100ms linear",ht({opacity:0})))]),fadeInCalendar:zi("fadeInCalendar",[di("void",ht({opacity:0})),di("enter",ht({opacity:1})),Yt("void => *",ei("120ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"))])},CV=new ee("mat-datepicker-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}});function wV(n){return()=>n.scrollStrategies.reposition()}var xV={provide:CV,deps:[ii],useFactory:wV},SV=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_globalModel=L(jm);_dateAdapter=L(sn);_rangeSelectionStrategy=L(qM,{optional:!0});_subscriptions=new Mt;_model;_calendar;color;datepicker;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;_isAbove;_animationState;_animationDone=new me;_isAnimating=!1;_closeButtonText;_closeButtonFocused;_actionsPortal=null;_dialogLabelId;constructor(){L(wt).load(os);let e=L(pu);this._closeButtonText=e.closeCalendarLabel}ngOnInit(){this._animationState=this.datepicker.touchUi?"enter-dialog":"enter-dropdown"}ngAfterViewInit(){this._subscriptions.add(this.datepicker.stateChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})),this._calendar.focusActiveCell()}ngOnDestroy(){this._subscriptions.unsubscribe(),this._animationDone.complete()}_handleUserSelection(e){let i=this._model.selection,r=e.value,s=i instanceof Hn;if(s&&this._rangeSelectionStrategy){let a=this._rangeSelectionStrategy.selectionFinished(r,i,e.event);this._model.updateSelection(a,this)}else r&&(s||!this._dateAdapter.sameDate(r,i))&&this._model.add(r);(!this._model||this._model.isComplete())&&!this._actionsPortal&&this.datepicker.close()}_handleUserDragDrop(e){this._model.updateSelection(e.value,this)}_startExitAnimation(){this._animationState="void",this._changeDetectorRef.markForCheck()}_handleAnimationEvent(e){this._isAnimating=e.phaseName==="start",this._isAnimating||this._animationDone.next()}_getSelected(){return this._model.selection}_applyPendingSelection(){this._model!==this._globalModel&&this._globalModel.updateSelection(this._model.selection,this)}_assignActions(e,i){this._model=e?this._globalModel.clone():this._globalModel,this._actionsPortal=e,i&&this._changeDetectorRef.detectChanges()}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-datepicker-content"]],viewQuery:function(i,r){if(i&1&&Be(rv,5),i&2){let s;Te(s=Ee())&&(r._calendar=s.first)}},hostAttrs:[1,"mat-datepicker-content"],hostVars:5,hostBindings:function(i,r){i&1&&jC("@transformPanel.start",function(a){return r._handleAnimationEvent(a)})("@transformPanel.done",function(a){return r._handleAnimationEvent(a)}),i&2&&(Yd("@transformPanel",r._animationState),bt(r.color?"mat-"+r.color:""),ke("mat-datepicker-content-touch",r.datepicker.touchUi))},inputs:{color:"color"},exportAs:["matDatepickerContent"],decls:5,vars:27,consts:[["cdkTrapFocus","","role","dialog",1,"mat-datepicker-content-container"],[3,"yearSelected","monthSelected","viewChanged","_userSelection","_userDragDrop","id","startAt","startView","minDate","maxDate","dateFilter","headerComponent","selected","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName"],[3,"cdkPortalOutlet"],["type","button","mat-raised-button","",1,"mat-datepicker-close-button",3,"focus","blur","click","color"]],template:function(i,r){if(i&1&&(N(0,"div",0)(1,"mat-calendar",1),J("yearSelected",function(a){return r.datepicker._selectYear(a)})("monthSelected",function(a){return r.datepicker._selectMonth(a)})("viewChanged",function(a){return r.datepicker._viewChanged(a)})("_userSelection",function(a){return r._handleUserSelection(a)})("_userDragDrop",function(a){return r._handleUserDragDrop(a)}),F(),le(2,uV,0,0,"ng-template",2),N(3,"button",3),J("focus",function(){return r._closeButtonFocused=!0})("blur",function(){return r._closeButtonFocused=!1})("click",function(){return r.datepicker.close()}),B(4),F()()),i&2){let s;ke("mat-datepicker-content-container-with-custom-header",r.datepicker.calendarHeaderComponent)("mat-datepicker-content-container-with-actions",r._actionsPortal),Me("aria-modal",!0)("aria-labelledby",(s=r._dialogLabelId)!==null&&s!==void 0?s:void 0),$(),bt(r.datepicker.panelClass),z("id",r.datepicker.id)("startAt",r.datepicker.startAt)("startView",r.datepicker.startView)("minDate",r.datepicker._getMinDate())("maxDate",r.datepicker._getMaxDate())("dateFilter",r.datepicker._getDateFilter())("headerComponent",r.datepicker.calendarHeaderComponent)("selected",r._getSelected())("dateClass",r.datepicker.dateClass)("comparisonStart",r.comparisonStart)("comparisonEnd",r.comparisonEnd)("@fadeInCalendar","enter")("startDateAccessibleName",r.startDateAccessibleName)("endDateAccessibleName",r.endDateAccessibleName),$(),z("cdkPortalOutlet",r._actionsPortal),$(),ke("cdk-visually-hidden",!r._closeButtonFocused),z("color",r.color||"primary"),$(),Ke(r._closeButtonText)}},dependencies:[LS,rv,Ka,fs],styles:[".mat-datepicker-content{display:block;border-radius:4px;background-color:var(--mat-datepicker-calendar-container-background-color, var(--mat-sys-surface-container-high));color:var(--mat-datepicker-calendar-container-text-color, var(--mat-sys-on-surface));box-shadow:var(--mat-datepicker-calendar-container-elevation-shadow, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12));border-radius:var(--mat-datepicker-calendar-container-shape, var(--mat-sys-corner-large))}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-content-container-with-custom-header .mat-calendar{height:auto}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.ng-animating .mat-datepicker-content .mat-datepicker-close-button{display:none}.mat-datepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mat-datepicker-content-touch{display:block;max-height:80vh;box-shadow:var(--mat-datepicker-calendar-container-touch-elevation-shadow, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12));border-radius:var(--mat-datepicker-calendar-container-touch-shape, var(--mat-sys-corner-extra-large));position:relative;overflow:visible}.mat-datepicker-content-touch .mat-datepicker-content-container{min-height:312px;max-height:788px;min-width:250px;max-width:750px}.mat-datepicker-content-touch .mat-calendar{width:100%;height:auto}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-datepicker-content-container{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-datepicker-content-container{width:80vw;height:100vw}.mat-datepicker-content-touch .mat-datepicker-content-container-with-actions{height:115vw}}"],encapsulation:2,data:{animation:[jM.transformPanel,jM.fadeInCalendar]},changeDetection:0})}return n})();var kV=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matDatepickerToggleIcon",""]]})}return n})(),MV=(()=>{class n{_intl=L(pu);_changeDetectorRef=L(Xe);_stateChanges=Mt.EMPTY;datepicker;tabIndex;ariaLabel;get disabled(){return this._disabled===void 0&&this.datepicker?this.datepicker.disabled:!!this._disabled}set disabled(e){this._disabled=e}_disabled;disableRipple;_customIcon;_button;constructor(){let e=L(new $i("tabindex"),{optional:!0}),i=Number(e);this.tabIndex=i||i===0?i:null}ngOnChanges(e){e.datepicker&&this._watchStateChanges()}ngOnDestroy(){this._stateChanges.unsubscribe()}ngAfterContentInit(){this._watchStateChanges()}_open(e){this.datepicker&&!this.disabled&&(this.datepicker.open(),e.stopPropagation())}_watchStateChanges(){let e=this.datepicker?this.datepicker.stateChanges:_e(),i=this.datepicker&&this.datepicker.datepickerInput?this.datepicker.datepickerInput.stateChanges:_e(),r=this.datepicker?ti(this.datepicker.openedStream,this.datepicker.closedStream):_e();this._stateChanges.unsubscribe(),this._stateChanges=ti(this._intl.changes,e,i,r).subscribe(()=>this._changeDetectorRef.markForCheck())}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-datepicker-toggle"]],contentQueries:function(i,r,s){if(i&1&&Rt(s,kV,5),i&2){let a;Te(a=Ee())&&(r._customIcon=a.first)}},viewQuery:function(i,r){if(i&1&&Be(dV,5),i&2){let s;Te(s=Ee())&&(r._button=s.first)}},hostAttrs:[1,"mat-datepicker-toggle"],hostVars:8,hostBindings:function(i,r){i&1&&J("click",function(a){return r._open(a)}),i&2&&(Me("tabindex",null)("data-mat-calendar",r.datepicker?r.datepicker.id:null),ke("mat-datepicker-toggle-active",r.datepicker&&r.datepicker.opened)("mat-accent",r.datepicker&&r.datepicker.color==="accent")("mat-warn",r.datepicker&&r.datepicker.color==="warn"))},inputs:{datepicker:[0,"for","datepicker"],tabIndex:"tabIndex",ariaLabel:[0,"aria-label","ariaLabel"],disabled:[2,"disabled","disabled",be],disableRipple:"disableRipple"},exportAs:["matDatepickerToggle"],features:[Qe,vt],ngContentSelectors:mV,decls:4,vars:6,consts:[["button",""],["mat-icon-button","","type","button",3,"disabled","disableRipple"],["viewBox","0 0 24 24","width","24px","height","24px","fill","currentColor","focusable","false","aria-hidden","true",1,"mat-datepicker-toggle-default-icon"],["d","M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"]],template:function(i,r){i&1&&(tt(hV),N(0,"button",1,0),le(2,fV,2,0,":svg:svg",2),Fe(3),F()),i&2&&(z("disabled",r.disabled)("disableRipple",r.disableRipple),Me("aria-haspopup",r.datepicker?"dialog":null)("aria-label",r.ariaLabel||r._intl.openCalendarLabel)("tabindex",r.disabled?-1:r.tabIndex),$(2),et(r._customIcon?-1:2))},dependencies:[Xa],styles:[".mat-datepicker-toggle{pointer-events:auto;color:var(--mat-datepicker-toggle-icon-color, var(--mat-sys-on-surface-variant))}.mat-datepicker-toggle-active{color:var(--mat-datepicker-toggle-active-state-icon-color, var(--mat-sys-on-surface-variant))}@media(forced-colors: active){.mat-datepicker-toggle-default-icon{color:CanvasText}}"],encapsulation:2,changeDetection:0})}return n})();var sv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[pu,xV],imports:[ps,Dr,Qh,ym,Ue,SV,MV,YM,Vn]})}return n})();var QM=(()=>{class n{get vertical(){return this._vertical}set vertical(e){this._vertical=Pn(e)}_vertical=!1;get inset(){return this._inset}set inset(e){this._inset=Pn(e)}_inset=!1;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){i&2&&(Me("aria-orientation",r.vertical?"vertical":"horizontal"),ke("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,r){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return n})(),gu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var EV=["trigger"],IV=["panel"],AV=[[["mat-select-trigger"]],"*"],DV=["mat-select-trigger","*"];function RV(n,t){if(n&1&&(N(0,"span",4),B(1),F()),n&2){let e=Y();$(),Ke(e.placeholder)}}function LV(n,t){n&1&&Fe(0)}function OV(n,t){if(n&1&&(N(0,"span",11),B(1),F()),n&2){let e=Y(2);$(),Ke(e.triggerValue)}}function NV(n,t){if(n&1&&(N(0,"span",5),le(1,LV,1,0)(2,OV,2,1,"span",11),F()),n&2){let e=Y();$(),et(e.customTrigger?1:2)}}function FV(n,t){if(n&1){let e=We();N(0,"div",12,1),J("@transformPanel.done",function(r){te(e);let s=Y();return ie(s._panelDoneAnimatingStream.next(r.toState))})("keydown",function(r){te(e);let s=Y();return ie(s._handleKeydown(r))}),Fe(2,1),F()}if(n&2){let e=Y();Kd("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),z("ngClass",e.panelClass)("@transformPanel","showing"),Me("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}var PV={transformPanelWrap:zi("transformPanelWrap",[Yt("* => void",Dk("@transformPanel",[Ak()],{optional:!0}))]),transformPanel:zi("transformPanel",[di("void",ht({opacity:0,transform:"scale(1, 0.8)"})),Yt("void => showing",ei("120ms cubic-bezier(0, 0, 0.2, 1)",ht({opacity:1,transform:"scale(1, 1)"}))),Yt("* => void",ei("100ms linear",ht({opacity:0})))])};var ZM=new ee("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}});function UV(n){return()=>n.scrollStrategies.reposition()}var $V=new ee("MAT_SELECT_CONFIG"),VV={provide:ZM,deps:[ii],useFactory:UV},XM=new ee("MatSelectTrigger"),av=class{source;value;constructor(t,e){this.source=t,this.value=e}},aa=(()=>{class n{_viewportRuler=L(Bn);_changeDetectorRef=L(Xe);_elementRef=L(Ae);_dir=L(ui,{optional:!0});_idGenerator=L(Ft);_parentFormField=L(du,{optional:!0});ngControl=L(cr,{self:!0,optional:!0});_liveAnnouncer=L(NS);_defaultOptions=L($V,{optional:!0});options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(e){let i=this.options.toArray()[e];if(i){let r=this.panel.nativeElement,s=u_(e,this.options,this.optionGroups),a=i._getHostElement();e===0&&s===1?r.scrollTop=0:r.scrollTop=d_(a.offsetTop,a.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new av(this,e)}_scrollStrategyFactory=L(ZM);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new me;_errorStateTracker;stateChanges=new me;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new me;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Cn.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._selectionModel,this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";_initialized=new me;optionSelectionChanges=Ns(()=>{let e=this.options;return e?e.changes.pipe(Gt(e),Dt(()=>ti(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(Dt(()=>this.optionSelectionChanges))});openedChange=new oe;_openedStream=this.openedChange.pipe(st(e=>e),Le(()=>{}));_closedStream=this.openedChange.pipe(st(e=>!e),Le(()=>{}));selectionChange=new oe;valueChange=new oe;constructor(){let e=L($c),i=L(au,{optional:!0}),r=L(ou,{optional:!0}),s=L(new $i("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new ja(e,this.ngControl,r,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=s==null?0:parseInt(s)||0,this.id=this.id}ngOnInit(){this._selectionModel=new wm(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(An(),qe(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(qe(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(qe(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Gt(null),qe(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){let r=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?r.setAttribute("aria-labelledby",e):r.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;let i=`${this.id}-panel`;this._trackedModal&&qh(this._trackedModal,"aria-owns",i),t_(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){if(!this._trackedModal)return;let e=`${this.id}-panel`;qh(this._trackedModal,"aria-owns",e),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){let i=e.keyCode,r=i===40||i===38||i===37||i===39,s=i===13||i===32,a=this._keyManager;if(!a.isTyping()&&s&&!Vi(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){let o=this.selected;a.onKeydown(e);let l=this.selected;l&&o!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){let i=this._keyManager,r=e.keyCode,s=r===40||r===38,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(!a&&(r===13||r===32)&&i.activeItem&&!Vi(e))e.preventDefault(),i.activeItem._selectViaInteraction();else if(!a&&this._multiple&&r===65&&e.ctrlKey){e.preventDefault();let o=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(o?l.select():l.deselect())})}else{let o=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==o&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(jt(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){let i=this.options.find(r=>{if(this._selectionModel.isSelected(r))return!1;try{return r.value!=null&&this._compareWith(r.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return e!==this._value||this._multiple&&Array.isArray(e)?(this.options&&this._setSelectionByValue(e),this._value=e,!0):!1}_skipPredicate=e=>this.panelOpen?!1:e.disabled;_getOverlayWidth(e){return this.panelWidth==="auto"?(e instanceof Xc?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new Wh(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let e=ti(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(qe(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),ti(...this.options.map(i=>i._stateChanges)).pipe(qe(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){let r=this._selectionModel.isSelected(e);e.value==null&&!this._multiple?(e.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(e.value)):(r!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())),r!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let e=this.options.toArray();this._selectionModel.sort((i,r)=>this.sortComparator?this.sortComparator(i,r,e):e.indexOf(i)-e.indexOf(r)),this.stateChanges.next()}}_propagateChanges(e){let i;this.multiple?i=this.selected.map(r=>r.value):i=this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId()||null,i=e?e+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId(),i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,s){if(i&1&&(Rt(s,XM,5),Rt(s,ar,5),Rt(s,nm,5)),i&2){let a;Te(a=Ee())&&(r.customTrigger=a.first),Te(a=Ee())&&(r.options=a),Te(a=Ee())&&(r.optionGroups=a)}},viewQuery:function(i,r){if(i&1&&(Be(EV,5),Be(IV,5),Be(N_,5)),i&2){let s;Te(s=Ee())&&(r.trigger=s.first),Te(s=Ee())&&(r.panel=s.first),Te(s=Ee())&&(r._overlayDir=s.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){i&1&&J("keydown",function(a){return r._handleKeydown(a)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),i&2&&(Me("id",r.id)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r.panelOpen?r.id+"-panel":null)("aria-expanded",r.panelOpen)("aria-label",r.ariaLabel||null)("aria-required",r.required.toString())("aria-disabled",r.disabled.toString())("aria-invalid",r.errorState)("aria-activedescendant",r._getAriaActiveDescendant()),ke("mat-mdc-select-disabled",r.disabled)("mat-mdc-select-invalid",r.errorState)("mat-mdc-select-required",r.required)("mat-mdc-select-empty",r.empty)("mat-mdc-select-multiple",r.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",be],disableRipple:[2,"disableRipple","disableRipple",be],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:zt(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",be],placeholder:"placeholder",required:[2,"required","required",be],multiple:[2,"multiple","multiple",be],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",be],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",zt],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[at([{provide:uu,useExisting:n},{provide:im,useExisting:n}]),Qe,vt],ngContentSelectors:DV,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(i&1){let s=We();tt(AV),N(0,"div",2,0),J("click",function(){return te(s),ie(r.open())}),N(3,"div",3),le(4,RV,2,1,"span",4)(5,NV,3,1,"span",5),F(),N(6,"div",6)(7,"div",7),Qt(),N(8,"svg",8),ne(9,"path",9),F()()()(),le(10,FV,3,9,"ng-template",10),J("backdropClick",function(){return te(s),ie(r.close())})("attach",function(){return te(s),ie(r._onAttached())})("detach",function(){return te(s),ie(r.close())})}if(i&2){let s=Zt(1);$(3),Me("id",r._valueId),$(),et(r.empty?4:5),$(6),z("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||s)("cdkConnectedOverlayOpen",r.panelOpen)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)}},dependencies:[Xc,N_,On],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[PV.transformPanel]},changeDetection:0})}return n})(),JM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-select-trigger"]],features:[at([{provide:XM,useExisting:n}])]})}return n})(),_u=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[VV],imports:[Dr,rl,Ue,Vn,ra,rl,Ue]})}return n})();var BV=["tooltip"],nT=20;var rT=new ee("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition({scrollThrottle:nT})}});function zV(n){return()=>n.scrollStrategies.reposition({scrollThrottle:nT})}var HV={provide:rT,deps:[ii],useFactory:zV};function jV(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var WV=new ee("mat-tooltip-default-options",{providedIn:"root",factory:jV});var tT="tooltip-panel",iT=Ai({passive:!0}),qV=8,GV=8,KV=24,YV=200,Wm=(()=>{class n{_overlay=L(ii);_elementRef=L(Ae);_scrollDispatcher=L(hl);_viewContainerRef=L(bi);_ngZone=L(Ne);_platform=L(ct);_ariaDescriber=L(DS);_focusMonitor=L(Un);_dir=L(ui);_injector=L(gt);_defaultOptions=L(WV,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_scrollStrategy=L(rT);_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=QV;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=Pn(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){let i=Pn(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=ls(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=ls(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){let i=this._message;this._message=e!=null?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_document=L(it);_touchstartTimeout=null;_destroyed=new me;constructor(){let e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._dir.change.pipe(qe(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=qV}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(qe(this._destroyed)).subscribe(e=>{e?e==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,iT)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let r=this._createOverlay(i);this._detach(),this._portal=this._portal||new Ga(this._tooltipComponent,this._viewContainerRef);let s=this._tooltipInstance=r.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(qe(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){let s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof Ae)return this._overlayRef;this._detach()}let i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),r=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin?e||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return r.positionChanges.pipe(qe(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${tT}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(qe(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(qe(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(qe(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&s.keyCode===27&&!Vi(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){let i=e.getConfig().positionStrategy,r=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset(j(j({},r.main),s.main)),this._addOffset(j(j({},r.fallback),s.fallback))])}_addOffset(e){let i=GV,r=!this._dir||this._dir.value=="ltr";return e.originY==="top"?e.offsetY=-i:e.originY==="bottom"?e.offsetY=i:e.originX==="start"?e.offsetX=r?-i:i:e.originX==="end"&&(e.offsetX=r?i:-i),e}_getOrigin(){let e=!this._dir||this._dir.value=="ltr",i=this.position,r;i=="above"||i=="below"?r={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&e||i=="right"&&!e?r={originX:"start",originY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(r={originX:"end",originY:"center"});let{x:s,y:a}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:s,originY:a}}}_getOverlayPosition(){let e=!this._dir||this._dir.value=="ltr",i=this.position,r;i=="above"?r={overlayX:"center",overlayY:"bottom"}:i=="below"?r={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&e||i=="right"&&!e?r={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(r={overlayX:"start",overlayY:"center"});let{x:s,y:a}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),vi(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):e==="end"?e="start":e==="start"&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){let{overlayY:i,originX:r,originY:s}=e,a;if(i==="center"?this._dir&&this._dir.value==="rtl"?a=r==="end"?"left":"right":a=r==="start"?"left":"right":a=i==="bottom"&&s==="top"?"above":"below",a!==this._currentPosition){let o=this._overlayRef;if(o){let l=`${this._cssClassPrefix}-${tT}-`;o.removePanelClass(l+this._currentPosition),o.addPanelClass(l+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{this._setupPointerExitEventsIfNeeded();let i;e.x!==void 0&&e.y!==void 0&&(i=e),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{let i=e.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let s=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,r)},this._defaultOptions?.touchLongPressShowDelay??s)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{let r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,iT)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){let i=this._document.elementFromPoint(e.clientX,e.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let e=this.touchGestures;if(e!=="off"){let i=this._elementRef.nativeElement,r=i.style;(e==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),(e==="on"||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return n})(),QV=(()=>{class n{_changeDetectorRef=L(Xe);_elementRef=L(Ae);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new me;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let e=L(Ot,{optional:!0});this._animationsDisabled=e==="NoopAnimations"}show(e){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>KV&&e.width>=YV}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){let i=this._tooltip.nativeElement,r=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:r),i.classList.add(e?r:s),this._isVisible!==e&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let a=getComputedStyle(i);(a.getPropertyValue("animation-duration")==="0s"||a.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(i&1&&Be(BV,7),i&2){let s;Te(s=Ee())&&(r._tooltip=s.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,r){i&1&&J("mouseleave",function(a){return r._handleMouseLeave(a)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,r){if(i&1){let s=We();N(0,"div",1,0),J("animationend",function(o){return te(s),ie(r._handleAnimationEnd(o))}),N(2,"div",2),B(3),F()()}i&2&&(ke("mdc-tooltip--multiline",r._isMultiline),z("ngClass",r.tooltipClass),$(3),Ke(r.message))},dependencies:[On],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return n})();var qm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[HV],imports:[Qh,Dr,Ue,Ue,Vn]})}return n})();function XV(n,t){if(n&1&&(N(0,"mat-option",17),B(1),F()),n&2){let e=t.$implicit;z("value",e),$(),Ye(" ",e," ")}}function JV(n,t){if(n&1){let e=We();N(0,"mat-form-field",14)(1,"mat-select",16,0),J("selectionChange",function(r){te(e);let s=Y(2);return ie(s._changePageSize(r.value))}),xr(3,XV,2,2,"mat-option",17,sc),F(),N(5,"div",18),J("click",function(){te(e);let r=Zt(2);return ie(r.open())}),F()()}if(n&2){let e=Y(2);z("appearance",e._formFieldAppearance)("color",e.color),$(),z("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),$(2),Sr(e._displayedPageSizeOptions)}}function e4(n,t){if(n&1&&(N(0,"div",15),B(1),F()),n&2){let e=Y(2);$(),Ke(e.pageSize)}}function t4(n,t){if(n&1&&(N(0,"div",3)(1,"div",13),B(2),F(),le(3,JV,6,7,"mat-form-field",14)(4,e4,2,1,"div",15),F()),n&2){let e=Y();$(),Me("id",e._pageSizeLabelId),$(),Ye(" ",e._intl.itemsPerPageLabel," "),$(),et(e._displayedPageSizeOptions.length>1?3:-1),$(),et(e._displayedPageSizeOptions.length<=1?4:-1)}}function i4(n,t){if(n&1){let e=We();N(0,"button",19),J("click",function(){te(e);let r=Y();return ie(r.firstPage())}),Qt(),N(1,"svg",8),ne(2,"path",20),F()()}if(n&2){let e=Y();z("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("matTooltipPosition","above")("disabled",e._previousButtonsDisabled()),Me("aria-label",e._intl.firstPageLabel)}}function n4(n,t){if(n&1){let e=We();N(0,"button",21),J("click",function(){te(e);let r=Y();return ie(r.lastPage())}),Qt(),N(1,"svg",8),ne(2,"path",22),F()()}if(n&2){let e=Y();z("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("matTooltipPosition","above")("disabled",e._nextButtonsDisabled()),Me("aria-label",e._intl.lastPageLabel)}}var Gm=(()=>{class n{changes=new me;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(e,i,r)=>{if(r==0||i==0)return`0 of ${r}`;r=Math.max(r,0);let s=e*i,a=s{class n{_intl;_changeDetectorRef;_formFieldAppearance;_pageSizeLabelId=L(Ft).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new $d(1);color;get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(e||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(e){this._length=e||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(e||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>zt(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new oe;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(e,i,r){if(this._intl=e,this._changeDetectorRef=i,this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),r){let{pageSize:s,pageSizeOptions:a,hidePageSize:o,showFirstLastButtons:l}=r;s!=null&&(this._pageSize=s),a!=null&&(this._pageSizeOptions=a),o!=null&&(this.hidePageSize=o),l!=null&&(this.showFirstLastButtons=l)}this._formFieldAppearance=r?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;let e=this.pageIndex;this.pageIndex=this.pageIndex+1,this._emitPageEvent(e)}previousPage(){if(!this.hasPreviousPage())return;let e=this.pageIndex;this.pageIndex=this.pageIndex-1,this._emitPageEvent(e)}firstPage(){if(!this.hasPreviousPage())return;let e=this.pageIndex;this.pageIndex=0,this._emitPageEvent(e)}lastPage(){if(!this.hasNextPage())return;let e=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(e)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}static \u0275fac=function(i){return new(i||n)(Se(Gm),Se(Xe),Se(o4,8))};static \u0275cmp=he({type:n,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",zt],length:[2,"length","length",zt],pageSize:[2,"pageSize","pageSize",zt],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",be],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",be],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",be]},outputs:{page:"page"},exportAs:["matPaginator"],features:[Qe],decls:14,vars:14,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,r){i&1&&(N(0,"div",1)(1,"div",2),le(2,t4,5,4,"div",3),N(3,"div",4)(4,"div",5),B(5),F(),le(6,i4,3,5,"button",6),N(7,"button",7),J("click",function(){return r.previousPage()}),Qt(),N(8,"svg",8),ne(9,"path",9),F()(),Xr(),N(10,"button",10),J("click",function(){return r.nextPage()}),Qt(),N(11,"svg",8),ne(12,"path",11),F()(),le(13,n4,3,5,"button",12),F()()()),i&2&&($(2),et(r.hidePageSize?-1:2),$(3),Ye(" ",r._intl.getRangeLabel(r.pageIndex,r.pageSize,r.length)," "),$(),et(r.showFirstLastButtons?6:-1),$(),z("matTooltip",r._intl.previousPageLabel)("matTooltipDisabled",r._previousButtonsDisabled())("matTooltipPosition","above")("disabled",r._previousButtonsDisabled()),Me("aria-label",r._intl.previousPageLabel),$(3),z("matTooltip",r._intl.nextPageLabel)("matTooltipDisabled",r._nextButtonsDisabled())("matTooltipPosition","above")("disabled",r._nextButtonsDisabled()),Me("aria-label",r._intl.nextPageLabel),$(3),et(r.showFirstLastButtons?13:-1))},dependencies:[zn,aa,ar,Xa,Wm],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return n})(),ov=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[s4],imports:[ps,_u,qm,l4]})}return n})();var c4=["input"],u4=["formField"],d4=["*"],lv=class{source;value;constructor(t,e){this.source=t,this.value=e}};var h4=new ee("MatRadioGroup"),m4=new ee("mat-radio-default-options",{providedIn:"root",factory:f4});function f4(){return{color:"accent",disabledInteractive:!1}}var p4=(()=>{class n{_elementRef=L(Ae);_changeDetector=L(Xe);_focusMonitor=L(Un);_radioDispatcher=L(Rk);_defaultOptions=L(m4,{optional:!0});_ngZone=L(Ne);_uniqueId=L(Ft).getId("mat-radio-");id=this._uniqueId;name;ariaLabel;ariaLabelledby;ariaDescribedby;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked!==e&&(this._checked=e,e&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!e&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),e&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.radioGroup!==null&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}_labelPosition;get disabled(){return this._disabled||this.radioGroup!==null&&this.radioGroup.disabled}set disabled(e){this._setDisabled(e)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){this._required=e}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(e){this._color=e}_color;get disabledInteractive(){return this._disabledInteractive||this.radioGroup!==null&&this.radioGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}_disabledInteractive;change=new oe;radioGroup;get inputId(){return`${this.id||this._uniqueId}-input`}_checked=!1;_disabled;_required;_value=null;_removeUniqueSelectionListener=()=>{};_previousTabIndex;_inputElement;_rippleTrigger;_noopAnimations;_injector=L(gt);constructor(){L(wt).load(Di);let e=L(h4,{optional:!0}),i=L(Ot,{optional:!0}),r=L(new $i("tabindex"),{optional:!0});this.radioGroup=e,this._noopAnimations=i==="NoopAnimations",this._disabledInteractive=this._defaultOptions?.disabledInteractive??!1,r&&(this.tabIndex=zt(r,0))}focus(e,i){i?this._focusMonitor.focusVia(this._inputElement,i,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,i)=>{e!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._inputElement.nativeElement.addEventListener("click",this._onInputClick)})}ngOnDestroy(){this._inputElement?.nativeElement.removeEventListener("click",this._onInputClick),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new lv(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){let i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_onInputClick=e=>{this.disabled&&this.disabledInteractive&&e.preventDefault()};_updateTabIndex(){let e=this.radioGroup,i;if(!e||!e.selected||this.disabled?i=this.tabIndex:i=e.selected===this?this.tabIndex:-1,i!==this._previousTabIndex){let r=this._inputElement?.nativeElement;r&&(r.setAttribute("tabindex",i+""),this._previousTabIndex=i,vi(()=>{queueMicrotask(()=>{e&&e.selected&&e.selected!==this&&document.activeElement===r&&(e.selected?._inputElement.nativeElement.focus(),document.activeElement===r&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-radio-button"]],viewQuery:function(i,r){if(i&1&&(Be(c4,5),Be(u4,7,Ae)),i&2){let s;Te(s=Ee())&&(r._inputElement=s.first),Te(s=Ee())&&(r._rippleTrigger=s.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(i,r){i&1&&J("focus",function(){return r._inputElement.nativeElement.focus()}),i&2&&(Me("id",r.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),ke("mat-primary",r.color==="primary")("mat-accent",r.color==="accent")("mat-warn",r.color==="warn")("mat-mdc-radio-checked",r.checked)("mat-mdc-radio-disabled",r.disabled)("mat-mdc-radio-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",be],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:zt(e)],checked:[2,"checked","checked",be],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",be],required:[2,"required","required",be],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",be]},outputs:{change:"change"},exportAs:["matRadioButton"],features:[Qe],ngContentSelectors:d4,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"div",2,0)(2,"div",3)(3,"div",4),J("click",function(o){return te(s),ie(r._onTouchTargetClick(o))}),F(),N(4,"input",5,1),J("change",function(o){return te(s),ie(r._onInputInteraction(o))}),F(),N(6,"div",6),ne(7,"div",7)(8,"div",8),F(),N(9,"div",9),ne(10,"div",10),F()(),N(11,"label",11),Fe(12),F()()}i&2&&(z("labelPosition",r.labelPosition),$(2),ke("mdc-radio--disabled",r.disabled),$(2),z("id",r.inputId)("checked",r.checked)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Me("name",r.name)("value",r.value)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),$(5),z("matRippleTrigger",r._rippleTrigger.nativeElement)("matRippleDisabled",r._isRippleDisabled())("matRippleCentered",!0),$(2),z("for",r.inputId))},dependencies:[yn,sl],styles:['.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled])~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px);top:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-sys-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display, block)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return n})(),cv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,cs,p4,Ue]})}return n})();var g4=["switch"],_4=["*"];function v4(n,t){n&1&&(N(0,"span",10),Qt(),N(1,"svg",12),ne(2,"path",13),F(),N(3,"svg",14),ne(4,"path",15),F()())}var b4=new ee("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),y4={provide:hs,useExisting:Ii(()=>sT),multi:!0},Km=class{source;checked;constructor(t,e){this.source=t,this.checked=e}},sT=(()=>{class n{_elementRef=L(Ae);_focusMonitor=L(Un);_changeDetectorRef=L(Xe);defaults=L(b4);_onChange=e=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(e){return new Km(this,e)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new oe;toggleChange=new oe;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){L(wt).load(Di);let e=L(new $i("tabindex"),{optional:!0}),i=this.defaults,r=L(Ot,{optional:!0});this.tabIndex=e==null?0:parseInt(e)||0,this.color=i.color||"accent",this._noopAnimations=r==="NoopAnimations",this.id=this._uniqueId=L(Ft).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{e==="keyboard"||e==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new Km(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(i&1&&Be(g4,5),i&2){let s;Te(s=Ee())&&(r._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){i&2&&(Rn("id",r.id),Me("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),bt(r.color?"mat-"+r.color:""),ke("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",be],color:"color",disabled:[2,"disabled","disabled",be],disableRipple:[2,"disableRipple","disableRipple",be],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:zt(e)],checked:[2,"checked","checked",be],hideIcon:[2,"hideIcon","hideIcon",be],disabledInteractive:[2,"disabledInteractive","disabledInteractive",be]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[at([y4,{provide:ia,useExisting:n,multi:!0}]),Qe,vt],ngContentSelectors:_4,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"div",1)(1,"button",2,0),J("click",function(){return te(s),ie(r._handleClick())}),ne(3,"span",3),N(4,"span",4)(5,"span",5)(6,"span",6),ne(7,"span",7),F(),N(8,"span",8),ne(9,"span",9),F(),le(10,v4,5,0,"span",10),F()()(),N(11,"label",11),J("click",function(o){return te(s),ie(o.stopPropagation())}),Fe(12),F()()}if(i&2){let s=Zt(2);z("labelPosition",r.labelPosition),$(),ke("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled)("mat-mdc-slide-toggle-disabled-interactive",r.disabledInteractive),z("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex)("disabled",r.disabled&&!r.disabledInteractive),Me("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),$(8),z("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),$(),et(r.hideIcon?-1:10),$(),z("for",r.buttonId),Me("id",r._labelId)}},dependencies:[yn,sl],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return n})();var uv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[sT,Ue,Ue]})}return n})();var dv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,cs]})}return n})();var aT=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Zc]})}return n})();var hv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,aT,Ue]})}return n})();var gv=["*"];function C4(n,t){n&1&&Fe(0)}var w4=["tabListContainer"],x4=["tabList"],S4=["tabListInner"],k4=["nextPaginator"],M4=["previousPaginator"],T4=n=>({animationDuration:n}),E4=(n,t)=>({value:n,params:t});function I4(n,t){}var A4=["tabBodyWrapper"],D4=["tabHeader"];function R4(n,t){}function L4(n,t){if(n&1&&le(0,R4,0,0,"ng-template",12),n&2){let e=Y().$implicit;z("cdkPortalOutlet",e.templateLabel)}}function O4(n,t){if(n&1&&B(0),n&2){let e=Y().$implicit;Ke(e.textLabel)}}function N4(n,t){if(n&1){let e=We();N(0,"div",7,2),J("click",function(){let r=te(e),s=r.$implicit,a=r.$index,o=Y(),l=Zt(1);return ie(o._handleClick(s,l,a))})("cdkFocusChange",function(r){let s=te(e).$index,a=Y();return ie(a._tabFocusChanged(r,s))}),ne(2,"span",8)(3,"div",9),N(4,"span",10)(5,"span",11),le(6,L4,1,1,null,12)(7,O4,1,1),F()()()}if(n&2){let e=t.$implicit,i=t.$index,r=Zt(1),s=Y();bt(e.labelClass),ke("mdc-tab--active",s.selectedIndex===i),z("id",s._getTabLabelId(i))("disabled",e.disabled)("fitInkBarToContent",s.fitInkBarToContent),Me("tabIndex",s._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",s._tabs.length)("aria-controls",s._getTabContentId(i))("aria-selected",s.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),$(3),z("matRippleTrigger",r)("matRippleDisabled",e.disabled||s.disableRipple),$(3),et(e.templateLabel?6:7)}}function F4(n,t){n&1&&Fe(0)}function P4(n,t){if(n&1){let e=We();N(0,"mat-tab-body",13),J("_onCentered",function(){te(e);let r=Y();return ie(r._removeTabBodyWrapperHeight())})("_onCentering",function(r){te(e);let s=Y();return ie(s._setTabBodyWrapperHeight(r))}),F()}if(n&2){let e=t.$implicit,i=t.$index,r=Y();bt(e.bodyClass),ke("mat-mdc-tab-body-active",r.selectedIndex===i),z("id",r._getTabContentId(i))("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",r.animationDuration)("preserveContent",r.preserveContent),Me("tabindex",r.contentTabIndex!=null&&r.selectedIndex===i?r.contentTabIndex:null)("aria-labelledby",r._getTabLabelId(i))("aria-hidden",r.selectedIndex!==i)}}var U4=new ee("MatTabContent"),$4=(()=>{class n{template=L(Dn);constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTabContent",""]],features:[at([{provide:U4,useExisting:n}])]})}return n})(),V4=new ee("MatTabLabel"),cT=new ee("MAT_TAB"),B4=(()=>{class n extends Ek{_closestTab=L(cT,{optional:!0});static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275dir=xe({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[at([{provide:V4,useExisting:n}]),Nt]})}return n})(),uT=new ee("MAT_TAB_GROUP"),_v=(()=>{class n{_viewContainerRef=L(bi);_closestTabGroup=L(uT,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new me;position=null;origin=null;isActive=!1;constructor(){L(wt).load(Di)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ds(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-tab"]],contentQueries:function(i,r,s){if(i&1&&(Rt(s,B4,5),Rt(s,$4,7,Dn)),i&2){let a;Te(a=Ee())&&(r.templateLabel=a.first),Te(a=Ee())&&(r._explicitContent=a.first)}},viewQuery:function(i,r){if(i&1&&Be(Dn,7),i&2){let s;Te(s=Ee())&&(r._implicitContent=s.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",be],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[at([{provide:cT,useExisting:n}]),Qe,vt],ngContentSelectors:gv,decls:1,vars:0,template:function(i,r){i&1&&(tt(),le(0,C4,1,0,"ng-template"))},encapsulation:2})}return n})(),mv="mdc-tab-indicator--active",oT="mdc-tab-indicator--no-transition",fv=class{_items;_currentItem;constructor(t){this._items=t}hide(){this._items.forEach(t=>t.deactivateInkBar())}alignToElement(t){let e=this._items.find(r=>r.elementRef.nativeElement===t),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){let r=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(r),this._currentItem=e}}},z4=(()=>{class n{_elementRef=L(Ae);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){let i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(mv);return}let r=i.getBoundingClientRect(),s=e.width/r.width,a=e.left-r.left;i.classList.add(oT),this._inkBarContentElement.style.setProperty("transform",`translateX(${a}px) scaleX(${s})`),i.getBoundingClientRect(),i.classList.remove(oT),i.classList.add(mv),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(mv)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),r=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",r.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let e=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;e.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",be]},features:[Qe]})}return n})();var dT=(()=>{class n extends z4{elementRef=L(Ae);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275dir=xe({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,r){i&2&&(Me("aria-disabled",!!r.disabled),ke("mat-mdc-tab-disabled",r.disabled))},inputs:{disabled:[2,"disabled","disabled",be]},features:[Qe,Nt]})}return n})(),lT=Ai({passive:!0}),H4=650,j4=100,W4=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_viewportRuler=L(Bn);_dir=L(ui,{optional:!0});_ngZone=L(Ne);_platform=L(ct);_animationMode=L(Ot,{optional:!0});_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new me;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new me;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){let i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new oe;indexFocused=new oe;_sharedResizeObserver=L(Um);_injector=L(gt);constructor(){this._ngZone.runOutsideAngular(()=>{Qr(this._elementRef.nativeElement,"mouseleave").pipe(qe(this._destroyed)).subscribe(()=>this._stopInterval())})}ngAfterViewInit(){Qr(this._previousPaginator.nativeElement,"touchstart",lT).pipe(qe(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),Qr(this._nextPaginator.nativeElement,"touchstart",lT).pipe(qe(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){let e=this._dir?this._dir.change:_e("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ui(32),qe(this._destroyed)),r=this._viewportRuler.change(150).pipe(qe(this._destroyed)),s=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new Oc(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),vi(s,{injector:this._injector}),ti(e,r,i,this._items.changes,this._itemsResized()).pipe(qe(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),s()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(a=>{this.indexFocused.emit(a),this._setTabFocus(a)})}_itemsResized(){return typeof ResizeObserver!="function"?In:this._items.changes.pipe(Gt(this._items),Dt(e=>new Jn(i=>this._ngZone.runOutsideAngular(()=>{let r=new ResizeObserver(s=>i.next(s));return e.forEach(s=>r.observe(s.elementRef.nativeElement)),()=>{r.disconnect()}}))),Ao(1),st(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!Vi(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){let e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return this._items?!!this._items.toArray()[e]:!0}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let e=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){let i=this._tabListContainer.nativeElement.offsetWidth,r=(e=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+r)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;let i=this._items?this._items.toArray()[e]:null;if(!i)return;let r=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement,o,l;this._getLayoutDirection()=="ltr"?(o=s,l=o+a):(l=this._tabListInner.nativeElement.offsetWidth-s,o=l-a);let c=this.scrollDistance,u=this.scrollDistance+r;ou&&(this.scrollDistance+=Math.min(l-u,o-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let e=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,r=e-i>=5;r||(this.scrollDistance=0),r!==this._showPaginationControls&&(this._showPaginationControls=r,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let e=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return e-i||0}_alignInkBarToSelectedTab(){let e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),Vd(H4,j4).pipe(qe(ti(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:r,distance:s}=this._scrollHeader(e);(s===0||s>=r)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",be],selectedIndex:[2,"selectedIndex","selectedIndex",zt]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[Qe]})}return n})(),q4=(()=>{class n extends W4{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new fv(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275cmp=he({type:n,selectors:[["mat-tab-header"]],contentQueries:function(i,r,s){if(i&1&&Rt(s,dT,4),i&2){let a;Te(a=Ee())&&(r._items=a)}},viewQuery:function(i,r){if(i&1&&(Be(w4,7),Be(x4,7),Be(S4,7),Be(k4,5),Be(M4,5)),i&2){let s;Te(s=Ee())&&(r._tabListContainer=s.first),Te(s=Ee())&&(r._tabList=s.first),Te(s=Ee())&&(r._tabListInner=s.first),Te(s=Ee())&&(r._nextPaginator=s.first),Te(s=Ee())&&(r._previousPaginator=s.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,r){i&2&&ke("mat-mdc-tab-header-pagination-controls-enabled",r._showPaginationControls)("mat-mdc-tab-header-rtl",r._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",be]},features:[Qe,Nt],ngContentSelectors:gv,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"div",5,0),J("click",function(){return te(s),ie(r._handlePaginatorClick("before"))})("mousedown",function(o){return te(s),ie(r._handlePaginatorPress("before",o))})("touchend",function(){return te(s),ie(r._stopInterval())}),ne(2,"div",6),F(),N(3,"div",7,1),J("keydown",function(o){return te(s),ie(r._handleKeydown(o))}),N(5,"div",8,2),J("cdkObserveContent",function(){return te(s),ie(r._onContentChanges())}),N(7,"div",9,3),Fe(9),F()()(),N(10,"div",10,4),J("mousedown",function(o){return te(s),ie(r._handlePaginatorPress("after",o))})("click",function(){return te(s),ie(r._handlePaginatorClick("after"))})("touchend",function(){return te(s),ie(r._stopInterval())}),ne(12,"div",6),F()}i&2&&(ke("mat-mdc-tab-header-pagination-disabled",r._disableScrollBefore),z("matRippleDisabled",r._disableScrollBefore||r.disableRipple),$(3),ke("_mat-animation-noopable",r._animationMode==="NoopAnimations"),$(2),Me("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby||null),$(5),ke("mat-mdc-tab-header-pagination-disabled",r._disableScrollAfter),z("matRippleDisabled",r._disableScrollAfter||r.disableRipple))},dependencies:[yn,CS],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return n})(),G4=new ee("MAT_TABS_CONFIG"),K4={translateTab:zi("translateTab",[di("center, void, left-origin-center, right-origin-center",ht({transform:"none",visibility:"visible"})),di("left",ht({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),di("right",ht({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Yt("* => left, * => right, left => center, right => center",ei("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Yt("void => left-origin-center",[ht({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),ei("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Yt("void => right-origin-center",[ht({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),ei("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},Y4=(()=>{class n extends Ka{_host=L(hT);_centeringSub=Mt.EMPTY;_leavingSub=Mt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Gt(this._host._isCenterPosition(this._host._position))).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTabBodyHost",""]],features:[Nt]})}return n})(),hT=(()=>{class n{_elementRef=L(Ae);_dir=L(ui,{optional:!0});_positionIndex;_dirChangeSubscription=Mt.EMPTY;_position;_translateTabComplete=new me;_onCentering=new oe;_beforeCentering=new oe;_afterLeavingCenter=new oe;_onCentered=new oe(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){let e=L(Xe);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}this._translateTabComplete.subscribe(e=>{this._isCenterPosition(e.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(e.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){let i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(e){return e=="center"||e=="left-origin-center"||e=="right-origin-center"}_computePositionAnimationState(e=this._getLayoutDirection()){this._positionIndex<0?this._position=e=="ltr"?"left":"right":this._positionIndex>0?this._position=e=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(e){let i=this._getLayoutDirection();return i=="ltr"&&e<=0||i=="rtl"&&e>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-tab-body"]],viewQuery:function(i,r){if(i&1&&Be(Ka,5),i&2){let s;Te(s=Ee())&&(r._portalHost=s.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,r){if(i&1){let s=We();N(0,"div",1,0),J("@translateTab.start",function(o){return te(s),ie(r._onTranslateTabStarted(o))})("@translateTab.done",function(o){return te(s),ie(r._translateTabComplete.next(o))}),le(2,I4,0,0,"ng-template",2),F()}i&2&&z("@translateTab",Qd(3,E4,r._position,zs(1,T4,r.animationDuration)))},dependencies:[Y4,T_],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[K4.translateTab]}})}return n})(),Q4=!0,mT=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_animationMode=L(Ot,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new Do;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=Mt.EMPTY;_tabLabelSubscription=Mt.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){let i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(e){if(!Q4)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new oe;focusChange=new oe;animationDone=new oe;selectedTabChange=new oe(!0);_groupId;_isServer=!L(ct).isBrowser;constructor(){let e=L(G4,{optional:!0});this._groupId=L(Ft).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=e&&e.disablePagination!=null?e.disablePagination:!1,this.dynamicHeight=e&&e.dynamicHeight!=null?e.dynamicHeight:!1,e?.contentTabIndex!=null&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=e&&e.fitInkBarToContent!=null?e.fitInkBarToContent:!1,this.stretchTabs=e&&e.stretchTabs!=null?e.stretchTabs:!0,this.alignTabs=e&&e.alignTabs!=null?e.alignTabs:null}ngAfterContentChecked(){let e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));let r=this._tabBodyWrapper.nativeElement;r.style.minHeight=r.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((r,s)=>r.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,r)=>{i.position=r-e,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){let i=this._tabs.toArray(),r;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Gt(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){let i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){let i=new pv;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=ti(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`${this._groupId}-label-${e}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){let e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,r){i.focusIndex=r,e.disabled||(this.selectedIndex=r)}_getTabIndex(e){let i=this._lastFocusedTabIndex??this.selectedIndex;return e===i?0:-1}_tabFocusChanged(e,i){e&&e!=="mouse"&&e!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-tab-group"]],contentQueries:function(i,r,s){if(i&1&&Rt(s,_v,5),i&2){let a;Te(a=Ee())&&(r._allTabs=a)}},viewQuery:function(i,r){if(i&1&&(Be(A4,5),Be(D4,5)),i&2){let s;Te(s=Ee())&&(r._tabBodyWrapper=s.first),Te(s=Ee())&&(r._tabHeader=s.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,r){i&2&&(Me("mat-align-tabs",r.alignTabs),bt("mat-"+(r.color||"primary")),ai("--mat-tab-animation-duration",r.animationDuration),ke("mat-mdc-tab-group-dynamic-height",r.dynamicHeight)("mat-mdc-tab-group-inverted-header",r.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",r.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",be],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",be],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",be],selectedIndex:[2,"selectedIndex","selectedIndex",zt],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",zt],disablePagination:[2,"disablePagination","disablePagination",be],disableRipple:[2,"disableRipple","disableRipple",be],preserveContent:[2,"preserveContent","preserveContent",be],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[at([{provide:uT,useExisting:n}]),Qe],ngContentSelectors:gv,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"mat-tab-header",3,0),J("indexFocused",function(o){return te(s),ie(r._focusChanged(o))})("selectFocusedIndex",function(o){return te(s),ie(r.selectedIndex=o)}),xr(2,N4,8,17,"div",4,sc),F(),le(4,F4,1,0),N(5,"div",5,1),xr(7,P4,1,13,"mat-tab-body",6,sc),F()}i&2&&(z("selectedIndex",r.selectedIndex||0)("disableRipple",r.disableRipple)("disablePagination",r.disablePagination)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby),$(2),Sr(r._tabs),$(2),et(r._isServer?4:-1),$(),ke("_mat-animation-noopable",r._animationMode==="NoopAnimations"),$(2),Sr(r._tabs))},dependencies:[q4,dT,Yh,yn,Ka,hT],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return n})(),pv=class{index;tab};var vv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var bv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var X4=[es,oc,W_,lu,Cg,Y_,ps,S_,hu,gu,ra,Bc,G_,F_,ov,_u,dv,uv,hv,bv,vv,sv,c_,cv,zc];var fT=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=ge({type:n})}static{this.\u0275inj=pe({imports:[X4,es,oc,W_,lu,Cg,Y_,ps,S_,hu,gu,ra,Bc,G_,F_,ov,_u,dv,uv,hv,bv,vv,sv,c_,cv,zc]})}}return n})();var PA=Os(FA());var UA=(()=>{class n{evaluate(e,i){return(0,PA.evaluate)(e,i,null)}evaluateToString(e,i){let r=this.evaluate(e,i);return r&&r instanceof Array&&r.length===1?r[0]:null}getOauthUriToken(e){return this.evaluateToString(e,"rest.security.extension.where(url='http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris').extension.where(url='token').valueUri")}getOauthUriAuthorize(e){return this.evaluateToString(e,"rest.security.extension.where(url='http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris').extension.where(url='authorize').valueUri")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var JH=()=>({"background-color":"lightyellow"}),e7=()=>({});function t7(n,t){if(n&1){let e=We();N(0,"tr",9),J("click",function(){let r=te(e).$implicit,s=Y();return ie(s.selectRow(r))}),N(1,"td"),B(2),F(),N(3,"td",10),B(4),F(),N(5,"td",10),B(6),F()()}if(n&2){let e=t.$implicit,i=Y();z("ngStyle",i.isCurrent(e)?I0(4,JH):I0(5,e7)),$(2),Ke(e.packageId),$(2),Ke(e.version),$(2),Ke(e.title)}}function i7(n,t){if(n&1){let e=We();Ji(0),B(1,"\xA0 "),N(2,"button",6),J("click",function(){te(e);let r=Y();return ie(r.onUpdate())}),B(3,"Update"),F(),en()}}function n7(n,t){if(n&1){let e=We();Ji(0),B(1,"\xA0 "),N(2,"button",6),J("click",function(){te(e);let r=Y();return ie(r.onDelete())}),B(3,"Delete"),F(),en()}}function r7(n,t){n&1&&(Ji(0),ne(1,"mat-progress-spinner",11),en())}function s7(n,t){if(n&1&&ne(0,"app-operation-result",14),n&2){let e=Y(2);z("operationResult",e.operationResult)}}function a7(n,t){if(n&1&&(N(0,"div",12)(1,"h2"),B(2,"Result of the last operation"),F(),le(3,s7,1,1,"app-operation-result",13),F()),n&2){let e=Y();$(3),z("ngIf",e.operationResult)}}var $A=(()=>{class n{constructor(e,i){this.data=e,this.fhirPathService=i,this.update=!1,this.operationResult=null,this.query={_sort:"title",_count:1e4},this.client=e.getFhirClient(),this.addPackageId=new ms("",[Cn.required,Cn.minLength(1)]),this.addVersion=new ms("current",[Cn.required,Cn.minLength(1)]),this.addUrl=new ms("url"),this.search()}search(){this.client.search({resourceType:"ImplementationGuide",searchParams:this.query}).then(e=>{let i=e;this.igs=i.entry.map(r=>r.resource),this.selection=void 0,this.addPackageId.setValue(""),this.addVersion.setValue(""),this.addUrl.setValue("")}).catch(e=>{this.errorMessage="Error accessing FHIR server",e.response?.data?this.operationResult=Wt.fromOperationOutcome(e.response.data):this.operationResult=Wt.fromMatchboxError(e.message)}),this.update=!1}getPackageUrl(e){return this.fhirPathService.evaluateToString(e,"extension.where(url='http://ahdis.ch/fhir/extension/packageUrl').valueUri")}isCurrent(e){return this.fhirPathService.evaluateToString(e,"meta.tag.where(system='http://matchbox.health/fhir/CodeSystem/tag').code")==="current"}selectRow(e){this.selection=e,this.addPackageId.setValue(this.selection.packageId),this.addUrl.setValue(this.getPackageUrl(e));let i=this.selection.version;i&&i.endsWith(" (last)")&&(i=i.substring(0,i.length-7)),this.addVersion.setValue(i)}onSubmit(){if(this.errorMessage=null,this.addPackageId.invalid||this.addVersion.invalid){this.errorMessage="Please provide package name";return}let e=this.addPackageId.value.trim();e.indexOf("#")>0&&(e.substring(0,e.indexOf("#")-1),this.addVersion.setValue(e.substring(0,e.indexOf("#")+1))),this.addPackageId.setValue(e);let i=this.addVersion.value.trim();this.addVersion.setValue(i),this.update=!0,this.client.create({resourceType:"ImplementationGuide",body:{resourceType:"ImplementationGuide",name:e,version:i,packageId:e,url:this.addUrl.value},options:{headers:{Prefer:"return=OperationOutcome"}}}).then(r=>{this.errorMessage="Created Implementation Guide "+this.addPackageId.value,this.operationResult=Wt.fromOperationOutcome(r),this.search()}).catch(r=>{this.errorMessage="Error creating Implementation Guide "+this.addPackageId.value,r.response?.data?this.operationResult=Wt.fromOperationOutcome(r.response.data):this.operationResult=Wt.fromMatchboxError(r.message),this.update=!1})}onUpdate(){this.errorMessage=null,this.selection.name=this.addPackageId.value,this.selection.version=this.addVersion.value,this.selection.packageId=this.addPackageId.value,this.selection.url=this.addUrl.value,this.update=!0,this.client.update({resourceType:this.selection.resourceType,id:this.selection.id,body:this.selection,options:{headers:{Prefer:"return=OperationOutcome"}}}).then(e=>{this.errorMessage="Updated Implementation Guide "+this.selection.packageId,this.operationResult=Wt.fromOperationOutcome(e),this.search()}).catch(e=>{this.errorMessage="Error updating Implementation Guide "+this.selection.packageId,e.response?.data?this.operationResult=Wt.fromOperationOutcome(e.response.data):this.operationResult=Wt.fromMatchboxError(e.message),this.update=!1})}onDelete(){this.errorMessage=null,this.update=!0,this.client.delete({resourceType:this.selection.resourceType,id:this.selection.id,options:{headers:{Prefer:"return=OperationOutcome","X-Cascade":"delete"}}}).then(e=>{this.errorMessage="Deleted Implementation Guide Resource "+this.selection.packageId,this.operationResult=Wt.fromOperationOutcome(e),this.search()}).catch(e=>{this.errorMessage="Error deleting Implementation Guide "+this.selection.packageId,e.response?.data?this.operationResult=Wt.fromOperationOutcome(e.response.data):this.operationResult=Wt.fromMatchboxError(e.message),this.update=!1})}static{this.\u0275fac=function(i){return new(i||n)(Se(Fn),Se(UA))}}static{this.\u0275cmp=he({type:n,selectors:[["app-igs"]],standalone:!1,decls:40,vars:8,consts:[[1,"white-block","card-igs"],[3,"ngStyle","click",4,"ngFor","ngForOf"],[1,"white-block","Search","card-igs"],["matInput","",3,"formControl"],[2,"width","50vw"],["href","https://packages.fhir.org"],["type","submit",3,"click"],[4,"ngIf"],["class","white-block logs",4,"ngIf"],[3,"click","ngStyle"],[1,"secondary"],["mode","indeterminate"],[1,"white-block","logs"],[3,"operationResult",4,"ngIf"],[3,"operationResult"]],template:function(i,r){i&1&&(N(0,"div",0)(1,"h2"),B(2,"ImplementationGuides installed on the server"),F(),N(3,"table")(4,"thead")(5,"tr")(6,"th"),B(7,"Package"),F(),N(8,"th"),B(9,"Version"),F(),N(10,"th"),B(11,"Title"),F()()(),N(12,"tbody"),le(13,t7,7,6,"tr",1),F()()(),N(14,"div",2)(15,"h3"),B(16,"Install an ImplementationGuide"),F(),N(17,"mat-form-field")(18,"mat-label"),B(19,"PackageId"),F(),ne(20,"input",3),F(),B(21," \xA0 "),N(22,"mat-form-field")(23,"mat-label"),B(24,"Version"),F(),ne(25,"input",3),F(),B(26," \xA0 "),N(27,"mat-form-field",4)(28,"mat-label"),B(29,"Package url (optional, use only if not available through "),N(30,"a",5),B(31,"packages.fhir.org"),F(),B(32,") "),F(),ne(33,"input",3),F(),N(34,"button",6),J("click",function(){return r.onSubmit()}),B(35,"Upload"),F(),le(36,i7,4,0,"ng-container",7)(37,n7,4,0,"ng-container",7),F(),le(38,r7,2,0,"ng-container",7)(39,a7,4,1,"div",8)),i&2&&($(13),z("ngForOf",r.igs),$(7),z("formControl",r.addPackageId),$(5),z("formControl",r.addVersion),$(8),z("formControl",r.addUrl),$(3),z("ngIf",r.selection),$(),z("ngIf",r.selection),$(),z("ngIf",r.update),$(),z("ngIf",r.errorMessage))},dependencies:[kr,yi,tw,Rr,Lr,ur,zn,na,vl,Xs,cl],styles:[".secondary[_ngcontent-%COMP%]{color:#6b7280}table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:1px solid rgb(209,213,219);padding-bottom:1rem}table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:1px solid rgb(229,231,235);padding-top:1rem;padding-bottom:1rem}table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:hover{background:#eee}.mat-form-field.url[_ngcontent-%COMP%]{width:200px}.mat-table[_ngcontent-%COMP%]{margin:1rem}.mat-table[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{cursor:pointer}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{padding-left:.5rem;padding-right:.5rem}.mat-table[_ngcontent-%COMP%] .mat-cell.title[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell.title[_ngcontent-%COMP%]{flex:2;justify-content:flex-end}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]:first-child, .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]:first-child{padding-left:1rem}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]:last-child, .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]:last-child{padding-right:1rem}.card-igs[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return n})();var o7=["searchSelectInput"],l7=["innerSelectSearch"],c7=[[["",8,"mat-select-search-custom-header-content"]],[["","ngxMatSelectSearchClear",""]],[["","ngxMatSelectNoEntriesFound",""]]],u7=[".mat-select-search-custom-header-content","[ngxMatSelectSearchClear]","[ngxMatSelectNoEntriesFound]"],d7=(n,t)=>({"mat-select-search-inner-multiple":n,"mat-select-search-inner-toggle-all":t});function h7(n,t){if(n&1){let e=We();N(0,"mat-checkbox",12),J("change",function(r){te(e);let s=Y();return ie(s._emitSelectAllBooleanToParent(r.checked))}),F()}if(n&2){let e=Y();z("color",e.matFormField==null?null:e.matFormField.color)("checked",e.toggleAllCheckboxChecked)("indeterminate",e.toggleAllCheckboxIndeterminate)("matTooltip",e.toggleAllCheckboxTooltipMessage)("matTooltipPosition",e.toggleAllCheckboxTooltipPosition)}}function m7(n,t){n&1&&ne(0,"mat-spinner",13)}function f7(n,t){n&1&&Fe(0,1,["*ngIf","clearIcon; else defaultIcon"])}function p7(n,t){if(n&1&&(N(0,"mat-icon",16),B(1),F()),n&2){let e=Y(2);z("svgIcon",e.closeSvgIcon),$(),Ye(" ",e.closeSvgIcon?null:e.closeIcon," ")}}function g7(n,t){if(n&1){let e=We();N(0,"button",14),J("click",function(){te(e);let r=Y();return ie(r._reset(!0))}),le(1,f7,1,0,"ng-content",15)(2,p7,2,2,"ng-template",null,2,Ea),F()}if(n&2){let e=Zt(3),i=Y();$(),z("ngIf",i.clearIcon)("ngIfElse",e)}}function _7(n,t){n&1&&Fe(0,2,["*ngIf","noEntriesFound; else defaultNoEntriesFound"])}function v7(n,t){if(n&1&&B(0),n&2){let e=Y(2);Ke(e.noEntriesFoundLabel)}}function b7(n,t){if(n&1&&(N(0,"div",17),le(1,_7,1,0,"ng-content",15)(2,v7,1,1,"ng-template",null,3,Ea),F()),n&2){let e=Zt(3),i=Y();$(),z("ngIf",i.noEntriesFound)("ngIfElse",e)}}var y7=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=xe({type:n,selectors:[["","ngxMatSelectSearchClear",""]],standalone:!1}),n})(),C7=["ariaLabel","clearSearchInput","closeIcon","closeSvgIcon","disableInitialFocus","disableScrollToActiveOnOptionsChanged","enableClearOnEscapePressed","hideClearSearchButton","noEntriesFoundLabel","placeholderLabel","preventHomeEndKeyPropagation","searching"],w7=new ee("mat-selectsearch-default-options"),x7=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=xe({type:n,selectors:[["","ngxMatSelectNoEntriesFound",""]],standalone:!1}),n})(),Ep=(()=>{class n{constructor(e,i,r,s,a,o){this.matSelect=e,this.changeDetectorRef=i,this._viewportRuler=r,this.matOption=s,this.matFormField=a,this.placeholderLabel="Suche",this.type="text",this.closeIcon="close",this.noEntriesFoundLabel="Keine Optionen gefunden",this.clearSearchInput=!0,this.searching=!1,this.disableInitialFocus=!1,this.enableClearOnEscapePressed=!1,this.preventHomeEndKeyPropagation=!1,this.disableScrollToActiveOnOptionsChanged=!1,this.ariaLabel="dropdown search",this.showToggleAllCheckbox=!1,this.toggleAllCheckboxChecked=!1,this.toggleAllCheckboxIndeterminate=!1,this.toggleAllCheckboxTooltipMessage="",this.toggleAllCheckboxTooltipPosition="below",this.hideClearSearchButton=!1,this.alwaysRestoreSelectedOptionsMulti=!1,this.recreateValuesArray=!1,this.toggleAll=new oe,this.onTouched=l=>{},this._options$=new gi(null),this.optionsList$=this._options$.pipe(Dt(l=>l?l.changes.pipe(Le(c=>c.toArray()),Gt(l.toArray())):_e(null))),this.optionsLength$=this.optionsList$.pipe(Le(l=>l?l.length:0)),this._formControl=new Or("",{nonNullable:!0}),this._showNoEntriesFound$=yr([this._formControl.valueChanges,this.optionsLength$]).pipe(Le(([l,c])=>!!(this.noEntriesFoundLabel&&l&&c===this.getOptionsLengthOffset()))),this._onDestroy=new me,this.applyDefaultOptions(o)}get value(){return this._formControl.value}set _options(e){this._options$.next(e)}get _options(){return this._options$.getValue()}applyDefaultOptions(e){if(e)for(let i of C7)e.hasOwnProperty(i)&&(this[i]=e[i])}ngOnInit(){this.matOption?(this.matOption.disabled=!0,this.matOption._getHostElement().classList.add("contains-mat-select-search"),this.matOption._getHostElement().setAttribute("role","presentation")):console.error(" must be placed inside a element"),this.matSelect.openedChange.pipe(Eo(1),qe(this._onDestroy)).subscribe(e=>{e?(this.updateInputWidth(),this.disableInitialFocus||this._focus()):this.clearSearchInput&&this._reset()}),this.matSelect.openedChange.pipe(jt(1),Dt(e=>{this._options=this.matSelect.options;let i=this._options.toArray()[this.getOptionsLengthOffset()];return this._options.changes.pipe(Et(()=>{setTimeout(()=>{let r=this._options.toArray(),s=r[this.getOptionsLengthOffset()],a=this.matSelect._keyManager;a&&this.matSelect.panelOpen&&s&&((!i||!this.matSelect.compareWith(i.value,s.value)||!a.activeItem||!r.find(l=>this.matSelect.compareWith(l.value,a.activeItem?.value)))&&a.setActiveItem(this.getOptionsLengthOffset()),setTimeout(()=>{this.updateInputWidth()})),i=s})}))})).pipe(qe(this._onDestroy)).subscribe(),this._showNoEntriesFound$.pipe(qe(this._onDestroy)).subscribe(e=>{this.matOption&&(e?this.matOption._getHostElement().classList.add("mat-select-search-no-entries-found"):this.matOption._getHostElement().classList.remove("mat-select-search-no-entries-found"))}),this._viewportRuler.change().pipe(qe(this._onDestroy)).subscribe(()=>{this.matSelect.panelOpen&&this.updateInputWidth()}),this.initMultipleHandling(),this.optionsList$.pipe(qe(this._onDestroy)).subscribe(()=>{this.changeDetectorRef.markForCheck()})}_emitSelectAllBooleanToParent(e){this.toggleAll.emit(e)}ngOnDestroy(){this._onDestroy.next(),this._onDestroy.complete()}_isToggleAllCheckboxVisible(){return this.matSelect.multiple&&this.showToggleAllCheckbox}_handleKeydown(e){(e.key&&e.key.length===1||this.preventHomeEndKeyPropagation&&(e.key==="Home"||e.key==="End"))&&e.stopPropagation(),this.matSelect.multiple&&e.key&&e.key==="Enter"&&setTimeout(()=>this._focus()),this.enableClearOnEscapePressed&&e.key==="Escape"&&this.value&&(this._reset(!0),e.stopPropagation())}_handleKeyup(e){if(e.key==="ArrowUp"||e.key==="ArrowDown"){let i=this.matSelect._getAriaActiveDescendant(),r=this._options.toArray().findIndex(s=>s.id===i);r!==-1&&(this.unselectActiveDescendant(),this.activeDescendant=this._options.toArray()[r]._getHostElement(),this.activeDescendant.setAttribute("aria-selected","true"),this.searchSelectInput.nativeElement.setAttribute("aria-activedescendant",i))}}writeValue(e){this._lastExternalInputValue=e,this._formControl.setValue(e),this.changeDetectorRef.markForCheck()}onBlur(){this.unselectActiveDescendant(),this.onTouched()}registerOnChange(e){this._formControl.valueChanges.pipe(st(i=>i!==this._lastExternalInputValue),Et(()=>this._lastExternalInputValue=void 0),qe(this._onDestroy)).subscribe(e)}registerOnTouched(e){this.onTouched=e}_focus(){if(!this.searchSelectInput||!this.matSelect.panel)return;let e=this.matSelect.panel.nativeElement,i=e.scrollTop;this.searchSelectInput.nativeElement.focus(),e.scrollTop=i}_reset(e){this._formControl.setValue(""),e&&this._focus()}initMultipleHandling(){if(!this.matSelect.ngControl){this.matSelect.multiple&&console.error("the mat-select containing ngx-mat-select-search must have a ngModel or formControl directive when multiple=true");return}this.previousSelectedValues=this.matSelect.ngControl.value,this.matSelect.ngControl.valueChanges&&this.matSelect.ngControl.valueChanges.pipe(qe(this._onDestroy)).subscribe(e=>{let i=!1;if(this.matSelect.multiple&&(this.alwaysRestoreSelectedOptionsMulti||this._formControl.value&&this._formControl.value.length)&&this.previousSelectedValues&&Array.isArray(this.previousSelectedValues)){(!e||!Array.isArray(e))&&(e=[]);let r=this.matSelect.options.map(s=>s.value);this.previousSelectedValues.forEach(s=>{!e.some(a=>this.matSelect.compareWith(a,s))&&!r.some(a=>this.matSelect.compareWith(a,s))&&(this.recreateValuesArray?e=[...e,s]:e.push(s),i=!0)})}this.previousSelectedValues=e,i&&this.matSelect._onChange(e)})}updateInputWidth(){if(!this.innerSelectSearch||!this.innerSelectSearch.nativeElement)return;let e=this.innerSelectSearch.nativeElement,i=null;for(;e&&e.parentElement;)if(e=e.parentElement,e.classList.contains("mat-select-panel")){i=e;break}i&&(this.innerSelectSearch.nativeElement.style.width=i.clientWidth+"px")}getOptionsLengthOffset(){return this.matOption?1:0}unselectActiveDescendant(){this.activeDescendant?.removeAttribute("aria-selected"),this.searchSelectInput.nativeElement.removeAttribute("aria-activedescendant")}}return n.\u0275fac=function(e){return new(e||n)(Se(aa),Se(Xe),Se(Bn),Se(ar,8),Se(zn,8),Se(w7,8))},n.\u0275cmp=he({type:n,selectors:[["ngx-mat-select-search"]],contentQueries:function(e,i,r){if(e&1&&(Rt(r,y7,5),Rt(r,x7,5)),e&2){let s;Te(s=Ee())&&(i.clearIcon=s.first),Te(s=Ee())&&(i.noEntriesFound=s.first)}},viewQuery:function(e,i){if(e&1&&(Be(o7,7,Ae),Be(l7,7,Ae)),e&2){let r;Te(r=Ee())&&(i.searchSelectInput=r.first),Te(r=Ee())&&(i.innerSelectSearch=r.first)}},inputs:{placeholderLabel:"placeholderLabel",type:"type",closeIcon:"closeIcon",closeSvgIcon:"closeSvgIcon",noEntriesFoundLabel:"noEntriesFoundLabel",clearSearchInput:"clearSearchInput",searching:"searching",disableInitialFocus:"disableInitialFocus",enableClearOnEscapePressed:"enableClearOnEscapePressed",preventHomeEndKeyPropagation:"preventHomeEndKeyPropagation",disableScrollToActiveOnOptionsChanged:"disableScrollToActiveOnOptionsChanged",ariaLabel:"ariaLabel",showToggleAllCheckbox:"showToggleAllCheckbox",toggleAllCheckboxChecked:"toggleAllCheckboxChecked",toggleAllCheckboxIndeterminate:"toggleAllCheckboxIndeterminate",toggleAllCheckboxTooltipMessage:"toggleAllCheckboxTooltipMessage",toggleAllCheckboxTooltipPosition:"toggleAllCheckboxTooltipPosition",hideClearSearchButton:"hideClearSearchButton",alwaysRestoreSelectedOptionsMulti:"alwaysRestoreSelectedOptionsMulti",recreateValuesArray:"recreateValuesArray"},outputs:{toggleAll:"toggleAll"},standalone:!1,features:[at([{provide:hs,useExisting:Ii(()=>n),multi:!0}])],ngContentSelectors:u7,decls:13,vars:14,consts:[["innerSelectSearch",""],["searchSelectInput",""],["defaultIcon",""],["defaultNoEntriesFound",""],["matInput","",1,"mat-select-search-input","mat-select-search-hidden"],[1,"mat-select-search-inner","mat-typography","mat-datepicker-content","mat-tab-header",3,"ngClass"],[1,"mat-select-search-inner-row"],["class","mat-select-search-toggle-all-checkbox","matTooltipClass","ngx-mat-select-search-toggle-all-tooltip",3,"color","checked","indeterminate","matTooltip","matTooltipPosition","change",4,"ngIf"],["autocomplete","off",1,"mat-select-search-input",3,"keydown","keyup","blur","type","formControl","placeholder"],["class","mat-select-search-spinner","diameter","16",4,"ngIf"],["mat-icon-button","","aria-label","Clear","class","mat-select-search-clear",3,"click",4,"ngIf"],["class","mat-select-search-no-entries-found",4,"ngIf"],["matTooltipClass","ngx-mat-select-search-toggle-all-tooltip",1,"mat-select-search-toggle-all-checkbox",3,"change","color","checked","indeterminate","matTooltip","matTooltipPosition"],["diameter","16",1,"mat-select-search-spinner"],["mat-icon-button","","aria-label","Clear",1,"mat-select-search-clear",3,"click"],[4,"ngIf","ngIfElse"],[3,"svgIcon"],[1,"mat-select-search-no-entries-found"]],template:function(e,i){if(e&1){let r=We();tt(c7),ne(0,"input",4),N(1,"div",5,0)(3,"div",6),le(4,h7,1,5,"mat-checkbox",7),N(5,"input",8,1),J("keydown",function(a){return te(r),ie(i._handleKeydown(a))})("keyup",function(a){return te(r),ie(i._handleKeyup(a))})("blur",function(){return te(r),ie(i.onBlur())}),F(),le(7,m7,1,0,"mat-spinner",9)(8,g7,4,2,"button",10),Fe(9),F(),ne(10,"mat-divider"),F(),le(11,b7,4,2,"div",11),Ln(12,"async")}e&2&&($(),z("ngClass",Qd(11,d7,i.matSelect.multiple,i._isToggleAllCheckboxVisible())),$(3),z("ngIf",i._isToggleAllCheckboxVisible()),$(),z("type",i.type)("formControl",i._formControl)("placeholder",i.placeholderLabel),Me("aria-label",i.ariaLabel),$(2),z("ngIf",i.searching),$(),z("ngIf",!i.hideClearSearchButton&&i.value&&!i.searching),$(3),z("ngIf",ir(12,9,i._showNoEntriesFound$)))},dependencies:[On,yi,Rr,Lr,ur,Xa,bl,$n,Xs,Wm,QM,Lo],styles:[".mat-select-search-hidden[_ngcontent-%COMP%]{visibility:hidden}.mat-select-search-inner[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;background-color:var(--mat-select-panel-background-color)}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-inner-row[_ngcontent-%COMP%]{display:flex;align-items:center}.mat-select-search-input[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background-color:var(--mat-select-panel-background-color);padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-right:16px;padding-left:44px}.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-left:5px}.mat-select-search-no-entries-found[_ngcontent-%COMP%]{padding-top:8px}.mat-select-search-clear[_ngcontent-%COMP%]{position:absolute;right:4px;top:0}[dir=rtl][_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%]{right:auto;left:4px}.mat-select-search-spinner[_ngcontent-%COMP%]{position:absolute;right:16px;top:calc(50% - 8px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%]{right:auto;left:16px} .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:-8px;z-index:1;opacity:1;margin-top:-8px;pointer-events:all} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0} .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:5px}[dir=rtl][_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:0;padding-right:5px}"],changeDetection:0}),n})();var VA=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ge({type:n}),n.\u0275inj=pe({imports:[es,lu,ps,hu,Bc,zc,qm,gu]}),n})();var Ip=(()=>{class n{constructor(){this.addFiles=new oe,this.dragCounter=0}checkStatus(e){if(!e.ok)throw new Error(`HTTP ${e.status} - ${e.statusText}`);return e}onDrop(e){e.preventDefault(),this.dragCounter=0;let i=e.target.files||e.dataTransfer.items;if(i)for(let s=0;s0))},dependencies:[fs,$n],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.attachment-field[_ngcontent-%COMP%]{border-radius:5px;background:#f0f3f6}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%]{border-bottom:1px solid #dedede;display:flex;align-items:center;height:40px}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .attachment-name[_ngcontent-%COMP%]{flex:1;padding:0 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .attachment-size[_ngcontent-%COMP%]:last-child{margin-right:1rem}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .mat-icon-button[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;line-height:inherit}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%]{text-align:center;padding:2rem;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.attachment-field[_ngcontent-%COMP%] .drop-zone.file-over[_ngcontent-%COMP%]{background:#e1e7ed}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%] .spacer[_ngcontent-%COMP%]{line-height:3rem}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%] .bold-text[_ngcontent-%COMP%]{font-weight:700}"],changeDetection:0})}}return n})();function S7(n,t){if(n&1&&(N(0,"mat-option",12),B(1),F()),n&2){let e=t.$implicit;WC("value",e.url),$(),Ye("",e.title?e.title:e.name," ")}}function k7(n,t){if(n&1&&(N(0,"li"),B(1),F()),n&2){let e=t.$implicit;$(),Ye(" ",e.diagnostics," ")}}function M7(n,t){if(n&1&&(N(0,"mat-error")(1,"ul"),le(2,k7,2,1,"li",14),F()()),n&2){let e=Y(2);$(2),z("ngForOf",e.operationOutcomeTransformed.issue)}}function T7(n,t){if(n&1&&(N(0,"mat-card",0)(1,"mat-card-header")(2,"mat-card-title"),B(3,"Transformed"),F()(),N(4,"mat-card-content"),le(5,M7,3,1,"mat-error",13),N(6,"pre"),ne(7,"code",2),F()()()),n&2){let e=Y();$(5),z("ngIf",e.operationOutcomeTransformed),$(2),z("highlight",e.getMapped())}}var HA=(()=>{class n{constructor(e){this.allStructureMaps=[],this.filteredStructureMaps=new $d(1),this.structureMapFilterControl=new Or(""),this.structureMapControl=new Or(null),this.map=null,this.model=null,this.client=e.getFhirClient(),this.client.operation({name:"list",resourceType:"StructureMap",method:"GET"}).then(i=>{this.setMaps(i),this.filteredStructureMaps.next(this.allStructureMaps.slice())}),this.structureMapControl.valueChanges.pipe(Ui(400),An()).subscribe(i=>{this.map={canonical:i}}),this.structureMapFilterControl.valueChanges.subscribe(()=>this.filterStructureMaps())}transform(){if(this.resource!=null&&this.map!=null){let e={resourceType:"Parameters",parameter:[{name:"resource",valueString:this.resource}]};"canonical"in this.map?e.parameter.push({name:"source",valueString:this.map.canonical}):e.parameter.push({name:"map",valueString:this.map.content}),this.model!=null&&e.parameter.push({name:"model",valueString:this.model}),this.client.operation({name:"transform",resourceType:"StructureMap",input:e,options:{headers:{"content-type":"application/fhir+json"}}}).then(i=>{this.operationOutcomeTransformed=null,this.transformed=i}).catch(i=>{this.transformed=null,this.operationOutcomeTransformed=i.response.data})}}getResource(){return this.resource}getMapped(){return JSON.stringify(this.transformed,null,2)}setMaps(e){this.allStructureMaps=e.entry.map(i=>i.resource)}setResource(e){this.transformed=null,(e.contentType==="application/json"||e.name.endsWith(".json"))&&(this.mimeType="application/fhir+json"),(e.contentType==="application/xml"||e.name.endsWith(".xml"))&&(this.mimeType="application/fhir+xml");let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.resource=i.result}}setMapContent(e){let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.map={content:i.result}}}setModelContent(e){let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.model=i.result}}filterStructureMaps(){if(!this.allStructureMaps||this.allStructureMaps.length===0)return;let e=this.structureMapFilterControl.value;if(!e){this.filteredStructureMaps.next(this.allStructureMaps.slice());return}e=e.toLowerCase(),this.filteredStructureMaps.next(this.allStructureMaps.filter(i=>i.title.toLowerCase().indexOf(e)>-1))}static{this.\u0275fac=function(i){return new(i||n)(Se(Fn))}}static{this.\u0275cmp=he({type:n,selectors:[["app-transform"]],standalone:!1,decls:46,vars:7,consts:[[1,"card-maps"],[3,"addFiles"],["lineNumbers","","language","json",3,"highlight"],["label","By reference"],[1,"tab-content","flex"],["appearance","fill"],[3,"formControl"],[3,"value",4,"ngFor","ngForOf"],["label","By uploading"],[1,"tab-content"],["mat-stroked-button","",3,"click"],["class","card-maps",4,"ngIf"],[3,"value"],[4,"ngIf"],[4,"ngFor","ngForOf"]],template:function(i,r){i&1&&(N(0,"h2"),B(1,"Transform a resource with the $transform operation"),F(),N(2,"mat-card",0)(3,"mat-card-header")(4,"mat-card-title"),B(5,"The resource"),F()(),N(6,"mat-card-content")(7,"app-upload",1),J("addFiles",function(a){return r.setResource(a)}),F(),N(8,"pre"),ne(9,"code",2),F()()(),N(10,"mat-card",0)(11,"mat-card-header")(12,"mat-card-title"),B(13,"The map"),F(),N(14,"mat-card-subtitle"),B(15,"Choose a StructureMap to use for the transformation"),F()(),N(16,"mat-card-content")(17,"mat-tab-group")(18,"mat-tab",3)(19,"div",4)(20,"mat-form-field",5)(21,"mat-label"),B(22,"The map to use:"),F(),N(23,"mat-select",6)(24,"mat-option"),ne(25,"ngx-mat-select-search",6),F(),le(26,S7,2,2,"mat-option",7),Ln(27,"async"),F()()()(),N(28,"mat-tab",8)(29,"div",9),B(30," Provide a StructureMap to use for the transformation (JSON or XML): "),N(31,"app-upload",1),J("addFiles",function(a){return r.setMapContent(a)}),F()()()()()(),N(32,"mat-card",0)(33,"mat-card-header")(34,"mat-card-title"),B(35,"The model(s)"),F()(),N(36,"mat-card-content"),B(37," Provide a StructureDefinition or Bundle of StructureDefinitions resource that are imported by the map (JSON or XML): "),N(38,"app-upload",1),J("addFiles",function(a){return r.setModelContent(a)}),F()()(),N(39,"mat-card",0)(40,"mat-card-content")(41,"button",10),J("click",function(){return r.transform()}),N(42,"mat-icon"),B(43,"transform"),F(),B(44," Transform "),F()()(),le(45,T7,8,2,"mat-card",11)),i&2&&($(9),z("highlight",r.getResource()),$(14),z("formControl",r.structureMapControl),$(2),z("formControl",r.structureMapFilterControl),$(),z("ngForOf",ir(27,5,r.filteredStructureMaps)),$(19),z("ngIf",r.transformed||r.operationOutcomeTransformed))},dependencies:[kr,yi,Lr,ur,ar,fs,ul,dl,gm,Mk,fm,zn,na,_l,$n,aa,_v,mT,hw,Ep,fw,Ip,Lo],styles:[".card-maps[_ngcontent-%COMP%]{margin-bottom:10px}.tab-content[_ngcontent-%COMP%]{padding:2em 1em 0}mat-select[_ngcontent-%COMP%]{width:100%}.tab-content.flex[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.tab-content.flex[_ngcontent-%COMP%] .form-field-label[_ngcontent-%COMP%]{white-space:nowrap}.tab-content.flex[_ngcontent-%COMP%] .form-field-label[_ngcontent-%COMP%] + mat-form-field[_ngcontent-%COMP%]{margin-left:10px}.tab-content.flex[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}"]})}}return n})();function Wl(n){let t=n.length;for(;--t>=0;)n[t]=0}var E7=0,ED=1,I7=2,A7=3,D7=258,k1=29,Sd=256,gd=Sd+1+k1,zl=30,M1=19,ID=2*gd+1,ho=15,i1=16,R7=7,T1=256,AD=16,DD=17,RD=18,g1=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Np=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),L7=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),LD=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),O7=512,Ds=new Array((gd+2)*2);Wl(Ds);var md=new Array(zl*2);Wl(md);var _d=new Array(O7);Wl(_d);var vd=new Array(D7-A7+1);Wl(vd);var E1=new Array(k1);Wl(E1);var Fp=new Array(zl);Wl(Fp);function n1(n,t,e,i,r){this.static_tree=n,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=n&&n.length}var OD,ND,FD;function r1(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}var PD=n=>n<256?_d[n]:_d[256+(n>>>7)],bd=(n,t)=>{n.pending_buf[n.pending++]=t&255,n.pending_buf[n.pending++]=t>>>8&255},un=(n,t,e)=>{n.bi_valid>i1-e?(n.bi_buf|=t<>i1-n.bi_valid,n.bi_valid+=e-i1):(n.bi_buf|=t<{un(n,e[t*2],e[t*2+1])},UD=(n,t)=>{let e=0;do e|=n&1,n>>>=1,e<<=1;while(--t>0);return e>>>1},N7=n=>{n.bi_valid===16?(bd(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},F7=(n,t)=>{let e=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,s=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,u,d,h,m,f,g=0;for(h=0;h<=ho;h++)n.bl_count[h]=0;for(e[n.heap[n.heap_max]*2+1]=0,c=n.heap_max+1;cl&&(h=l,g++),e[u*2+1]=h,!(u>i)&&(n.bl_count[h]++,m=0,u>=o&&(m=a[u-o]),f=e[u*2],n.opt_len+=f*(h+m),s&&(n.static_len+=f*(r[u*2+1]+m)));if(g!==0){do{for(h=l-1;n.bl_count[h]===0;)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,g-=2}while(g>0);for(h=l;h!==0;h--)for(u=n.bl_count[h];u!==0;)d=n.heap[--c],!(d>i)&&(e[d*2+1]!==h&&(n.opt_len+=(h-e[d*2+1])*e[d*2],e[d*2+1]=h),u--)}},$D=(n,t,e)=>{let i=new Array(ho+1),r=0,s,a;for(s=1;s<=ho;s++)r=r+e[s-1]<<1,i[s]=r;for(a=0;a<=t;a++){let o=n[a*2+1];o!==0&&(n[a*2]=UD(i[o]++,o))}},P7=()=>{let n,t,e,i,r,s=new Array(ho+1);for(e=0,i=0;i>=7;i{let t;for(t=0;t{n.bi_valid>8?bd(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},jA=(n,t,e,i)=>{let r=t*2,s=e*2;return n[r]{let i=n.heap[e],r=e<<1;for(;r<=n.heap_len&&(r{let i,r,s=0,a,o;if(n.sym_next!==0)do i=n.pending_buf[n.sym_buf+s++]&255,i+=(n.pending_buf[n.sym_buf+s++]&255)<<8,r=n.pending_buf[n.sym_buf+s++],i===0?qr(n,r,t):(a=vd[r],qr(n,a+Sd+1,t),o=g1[a],o!==0&&(r-=E1[a],un(n,r,o)),i--,a=PD(i),qr(n,a,e),o=Np[a],o!==0&&(i-=Fp[a],un(n,i,o)));while(s{let e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.elems,a,o,l=-1,c;for(n.heap_len=0,n.heap_max=ID,a=0;a>1;a>=1;a--)s1(n,e,a);c=s;do a=n.heap[1],n.heap[1]=n.heap[n.heap_len--],s1(n,e,1),o=n.heap[1],n.heap[--n.heap_max]=a,n.heap[--n.heap_max]=o,e[c*2]=e[a*2]+e[o*2],n.depth[c]=(n.depth[a]>=n.depth[o]?n.depth[a]:n.depth[o])+1,e[a*2+1]=e[o*2+1]=c,n.heap[1]=c++,s1(n,e,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],F7(n,t),$D(e,l,n.bl_count)},qA=(n,t,e)=>{let i,r=-1,s,a=t[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),t[(e+1)*2+1]=65535,i=0;i<=e;i++)s=a,a=t[(i+1)*2+1],!(++o{let i,r=-1,s,a=t[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),i=0;i<=e;i++)if(s=a,a=t[(i+1)*2+1],!(++o{let t;for(qA(n,n.dyn_ltree,n.l_desc.max_code),qA(n,n.dyn_dtree,n.d_desc.max_code),_1(n,n.bl_desc),t=M1-1;t>=3&&n.bl_tree[LD[t]*2+1]===0;t--);return n.opt_len+=3*(t+1)+5+5+4,t},$7=(n,t,e,i)=>{let r;for(un(n,t-257,5),un(n,e-1,5),un(n,i-4,4),r=0;r{let t=4093624447,e;for(e=0;e<=31;e++,t>>>=1)if(t&1&&n.dyn_ltree[e*2]!==0)return 0;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return 1;for(e=32;e{KA||(P7(),KA=!0),n.l_desc=new r1(n.dyn_ltree,OD),n.d_desc=new r1(n.dyn_dtree,ND),n.bl_desc=new r1(n.bl_tree,FD),n.bi_buf=0,n.bi_valid=0,VD(n)},zD=(n,t,e,i)=>{un(n,(E7<<1)+(i?1:0),3),BD(n),bd(n,e),bd(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e},z7=n=>{un(n,ED<<1,3),qr(n,T1,Ds),N7(n)},H7=(n,t,e,i)=>{let r,s,a=0;n.level>0?(n.strm.data_type===2&&(n.strm.data_type=V7(n)),_1(n,n.l_desc),_1(n,n.d_desc),a=U7(n),r=n.opt_len+3+7>>>3,s=n.static_len+3+7>>>3,s<=r&&(r=s)):r=s=e+5,e+4<=r&&t!==-1?zD(n,t,e,i):n.strategy===4||s===r?(un(n,(ED<<1)+(i?1:0),3),WA(n,Ds,md)):(un(n,(I7<<1)+(i?1:0),3),$7(n,n.l_desc.max_code+1,n.d_desc.max_code+1,a+1),WA(n,n.dyn_ltree,n.dyn_dtree)),VD(n),i&&BD(n)},j7=(n,t,e)=>(n.pending_buf[n.sym_buf+n.sym_next++]=t,n.pending_buf[n.sym_buf+n.sym_next++]=t>>8,n.pending_buf[n.sym_buf+n.sym_next++]=e,t===0?n.dyn_ltree[e*2]++:(n.matches++,t--,n.dyn_ltree[(vd[e]+Sd+1)*2]++,n.dyn_dtree[PD(t)*2]++),n.sym_next===n.sym_end),W7=B7,q7=zD,G7=H7,K7=j7,Y7=z7,Q7={_tr_init:W7,_tr_stored_block:q7,_tr_flush_block:G7,_tr_tally:K7,_tr_align:Y7},Z7=(n,t,e,i)=>{let r=n&65535|0,s=n>>>16&65535|0,a=0;for(;e!==0;){a=e>2e3?2e3:e,e-=a;do r=r+t[i++]|0,s=s+r|0;while(--a);r%=65521,s%=65521}return r|s<<16|0},yd=Z7,X7=()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;t[e]=n}return t},J7=new Uint32Array(X7()),e8=(n,t,e,i)=>{let r=J7,s=i+e;n^=-1;for(let a=i;a>>8^r[(n^t[a])&255];return n^-1},fi=e8,po={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},vo={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:t8,_tr_stored_block:v1,_tr_flush_block:i8,_tr_tally:ya,_tr_align:n8}=Q7,{Z_NO_FLUSH:Ca,Z_PARTIAL_FLUSH:r8,Z_FULL_FLUSH:s8,Z_FINISH:Qn,Z_BLOCK:YA,Z_OK:Ti,Z_STREAM_END:QA,Z_STREAM_ERROR:Gr,Z_DATA_ERROR:a8,Z_BUF_ERROR:a1,Z_DEFAULT_COMPRESSION:o8,Z_FILTERED:l8,Z_HUFFMAN_ONLY:Ap,Z_RLE:c8,Z_FIXED:u8,Z_DEFAULT_STRATEGY:d8,Z_UNKNOWN:h8,Z_DEFLATED:$p}=vo,m8=9,f8=15,p8=8,g8=29,_8=256,b1=_8+1+g8,v8=30,b8=19,y8=2*b1+1,C8=15,ut=3,ba=258,Kr=ba+ut+1,w8=32,Hl=42,I1=57,y1=69,C1=73,w1=91,x1=103,mo=113,dd=666,Ki=1,ql=2,go=3,Gl=4,x8=3,fo=(n,t)=>(n.msg=po[t],t),ZA=n=>n*2-(n>4?9:0),va=n=>{let t=n.length;for(;--t>=0;)n[t]=0},S8=n=>{let t,e,i,r=n.w_size;t=n.hash_size,i=t;do e=n.head[--i],n.head[i]=e>=r?e-r:0;while(--t);t=r,i=t;do e=n.prev[--i],n.prev[i]=e>=r?e-r:0;while(--t)},k8=(n,t,e)=>(t<{let t=n.state,e=t.pending;e>n.avail_out&&(e=n.avail_out),e!==0&&(n.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),n.next_out),n.next_out+=e,t.pending_out+=e,n.total_out+=e,n.avail_out-=e,t.pending-=e,t.pending===0&&(t.pending_out=0))},kn=(n,t)=>{i8(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,Sn(n.strm)},yt=(n,t)=>{n.pending_buf[n.pending++]=t},ud=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=t&255},S1=(n,t,e,i)=>{let r=n.avail_in;return r>i&&(r=i),r===0?0:(n.avail_in-=r,t.set(n.input.subarray(n.next_in,n.next_in+r),e),n.state.wrap===1?n.adler=yd(n.adler,t,r,e):n.state.wrap===2&&(n.adler=fi(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},HD=(n,t)=>{let e=n.max_chain_length,i=n.strstart,r,s,a=n.prev_length,o=n.nice_match,l=n.strstart>n.w_size-Kr?n.strstart-(n.w_size-Kr):0,c=n.window,u=n.w_mask,d=n.prev,h=n.strstart+ba,m=c[i+a-1],f=c[i+a];n.prev_length>=n.good_match&&(e>>=2),o>n.lookahead&&(o=n.lookahead);do if(r=t,!(c[r+a]!==f||c[r+a-1]!==m||c[r]!==c[i]||c[++r]!==c[i+1])){i+=2,r++;do;while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&ia){if(n.match_start=t,a=s,s>=o)break;m=c[i+a-1],f=c[i+a]}}while((t=d[t&u])>l&&--e!==0);return a<=n.lookahead?a:n.lookahead},jl=n=>{let t=n.w_size,e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-Kr)&&(n.window.set(n.window.subarray(t,t+t-i),0),n.match_start-=t,n.strstart-=t,n.block_start-=t,n.insert>n.strstart&&(n.insert=n.strstart),S8(n),i+=t),n.strm.avail_in===0)break;if(e=S1(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=e,n.lookahead+n.insert>=ut)for(r=n.strstart-n.insert,n.ins_h=n.window[r],n.ins_h=wa(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=wa(n,n.ins_h,n.window[r+ut-1]),n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,n.insert--,!(n.lookahead+n.insert{let e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,i,r,s,a=0,o=n.strm.avail_in;do{if(i=65535,s=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>s&&(i=s),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,Sn(n.strm),r&&(r>i&&(r=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+r),n.strm.next_out),n.strm.next_out+=r,n.strm.avail_out-=r,n.strm.total_out+=r,n.block_start+=r,i-=r),i&&(S1(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(a===0);return o-=n.strm.avail_in,o&&(o>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=o&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-o,n.strm.next_in),n.strstart),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.block_start=n.strstart),n.high_waters&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,s+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),s>n.strm.avail_in&&(s=n.strm.avail_in),s&&(S1(n.strm,n.window,n.strstart,s),n.strstart+=s,n.insert+=s>n.w_size-n.insert?n.w_size-n.insert:s),n.high_water>3,s=n.pending_buf_size-s>65535?65535:n.pending_buf_size-s,e=s>n.w_size?n.w_size:s,r=n.strstart-n.block_start,(r>=e||(r||t===Qn)&&t!==Ca&&n.strm.avail_in===0&&r<=s)&&(i=r>s?s:r,a=t===Qn&&n.strm.avail_in===0&&i===r?1:0,v1(n,n.block_start,i,a),n.block_start+=i,Sn(n.strm)),a?go:Ki)},o1=(n,t)=>{let e,i;for(;;){if(n.lookahead=ut&&(n.ins_h=wa(n,n.ins_h,n.window[n.strstart+ut-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),e!==0&&n.strstart-e<=n.w_size-Kr&&(n.match_length=HD(n,e)),n.match_length>=ut)if(i=ya(n,n.strstart-n.match_start,n.match_length-ut),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=ut){n.match_length--;do n.strstart++,n.ins_h=wa(n,n.ins_h,n.window[n.strstart+ut-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=wa(n,n.ins_h,n.window[n.strstart+1]);else i=ya(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(kn(n,!1),n.strm.avail_out===0))return Ki}return n.insert=n.strstart{let e,i,r;for(;;){if(n.lookahead=ut&&(n.ins_h=wa(n,n.ins_h,n.window[n.strstart+ut-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=ut-1,e!==0&&n.prev_length4096)&&(n.match_length=ut-1)),n.prev_length>=ut&&n.match_length<=n.prev_length){r=n.strstart+n.lookahead-ut,i=ya(n,n.strstart-1-n.prev_match,n.prev_length-ut),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=r&&(n.ins_h=wa(n,n.ins_h,n.window[n.strstart+ut-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=ut-1,n.strstart++,i&&(kn(n,!1),n.strm.avail_out===0))return Ki}else if(n.match_available){if(i=ya(n,0,n.window[n.strstart-1]),i&&kn(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return Ki}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=ya(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart{let e,i,r,s,a=n.window;for(;;){if(n.lookahead<=ba){if(jl(n),n.lookahead<=ba&&t===Ca)return Ki;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=ut&&n.strstart>0&&(r=n.strstart-1,i=a[r],i===a[++r]&&i===a[++r]&&i===a[++r])){s=n.strstart+ba;do;while(i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=ut?(e=ya(n,1,n.match_length-ut),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=ya(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&(kn(n,!1),n.strm.avail_out===0))return Ki}return n.insert=0,t===Qn?(kn(n,!0),n.strm.avail_out===0?go:Gl):n.sym_next&&(kn(n,!1),n.strm.avail_out===0)?Ki:ql},T8=(n,t)=>{let e;for(;;){if(n.lookahead===0&&(jl(n),n.lookahead===0)){if(t===Ca)return Ki;break}if(n.match_length=0,e=ya(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&(kn(n,!1),n.strm.avail_out===0))return Ki}return n.insert=0,t===Qn?(kn(n,!0),n.strm.avail_out===0?go:Gl):n.sym_next&&(kn(n,!1),n.strm.avail_out===0)?Ki:ql};function Wr(n,t,e,i,r){this.good_length=n,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=r}var hd=[new Wr(0,0,0,0,jD),new Wr(4,4,8,4,o1),new Wr(4,5,16,8,o1),new Wr(4,6,32,32,o1),new Wr(4,4,16,16,Vl),new Wr(8,16,32,32,Vl),new Wr(8,16,128,128,Vl),new Wr(8,32,128,256,Vl),new Wr(32,128,258,1024,Vl),new Wr(32,258,258,4096,Vl)],E8=n=>{n.window_size=2*n.w_size,va(n.head),n.max_lazy_match=hd[n.level].max_lazy,n.good_match=hd[n.level].good_length,n.nice_match=hd[n.level].nice_length,n.max_chain_length=hd[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=ut-1,n.match_available=0,n.ins_h=0};function I8(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$p,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(y8*2),this.dyn_dtree=new Uint16Array((2*v8+1)*2),this.bl_tree=new Uint16Array((2*b8+1)*2),va(this.dyn_ltree),va(this.dyn_dtree),va(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(C8+1),this.heap=new Uint16Array(2*b1+1),va(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*b1+1),va(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var kd=n=>{if(!n)return 1;let t=n.state;return!t||t.strm!==n||t.status!==Hl&&t.status!==I1&&t.status!==y1&&t.status!==C1&&t.status!==w1&&t.status!==x1&&t.status!==mo&&t.status!==dd?1:0},WD=n=>{if(kd(n))return fo(n,Gr);n.total_in=n.total_out=0,n.data_type=h8;let t=n.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?I1:t.wrap?Hl:mo,n.adler=t.wrap===2?0:1,t.last_flush=-2,t8(t),Ti},qD=n=>{let t=WD(n);return t===Ti&&E8(n.state),t},A8=(n,t)=>kd(n)||n.state.wrap!==2?Gr:(n.state.gzhead=t,Ti),GD=(n,t,e,i,r,s)=>{if(!n)return Gr;let a=1;if(t===o8&&(t=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),r<1||r>m8||e!==$p||i<8||i>15||t<0||t>9||s<0||s>u8||i===8&&a!==1)return fo(n,Gr);i===8&&(i=9);let o=new I8;return n.state=o,o.strm=n,o.status=Hl,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<GD(n,t,$p,f8,p8,d8),R8=(n,t)=>{if(kd(n)||t>YA||t<0)return n?fo(n,Gr):Gr;let e=n.state;if(!n.output||n.avail_in!==0&&!n.input||e.status===dd&&t!==Qn)return fo(n,n.avail_out===0?a1:Gr);let i=e.last_flush;if(e.last_flush=t,e.pending!==0){if(Sn(n),n.avail_out===0)return e.last_flush=-1,Ti}else if(n.avail_in===0&&ZA(t)<=ZA(i)&&t!==Qn)return fo(n,a1);if(e.status===dd&&n.avail_in!==0)return fo(n,a1);if(e.status===Hl&&e.wrap===0&&(e.status=mo),e.status===Hl){let r=$p+(e.w_bits-8<<4)<<8,s=-1;if(e.strategy>=Ap||e.level<2?s=0:e.level<6?s=1:e.level===6?s=2:s=3,r|=s<<6,e.strstart!==0&&(r|=w8),r+=31-r%31,ud(e,r),e.strstart!==0&&(ud(e,n.adler>>>16),ud(e,n.adler&65535)),n.adler=1,e.status=mo,Sn(n),e.pending!==0)return e.last_flush=-1,Ti}if(e.status===I1){if(n.adler=0,yt(e,31),yt(e,139),yt(e,8),e.gzhead)yt(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),yt(e,e.gzhead.time&255),yt(e,e.gzhead.time>>8&255),yt(e,e.gzhead.time>>16&255),yt(e,e.gzhead.time>>24&255),yt(e,e.level===9?2:e.strategy>=Ap||e.level<2?4:0),yt(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(yt(e,e.gzhead.extra.length&255),yt(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=fi(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=y1;else if(yt(e,0),yt(e,0),yt(e,0),yt(e,0),yt(e,0),yt(e,e.level===9?2:e.strategy>=Ap||e.level<2?4:0),yt(e,x8),e.status=mo,Sn(n),e.pending!==0)return e.last_flush=-1,Ti}if(e.status===y1){if(e.gzhead.extra){let r=e.pending,s=(e.gzhead.extra.length&65535)-e.gzindex;for(;e.pending+s>e.pending_buf_size;){let o=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+o),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=o,Sn(n),e.pending!==0)return e.last_flush=-1,Ti;r=0,s-=o}let a=new Uint8Array(e.gzhead.extra);e.pending_buf.set(a.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending+=s,e.gzhead.hcrc&&e.pending>r&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=C1}if(e.status===C1){if(e.gzhead.name){let r=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),Sn(n),e.pending!==0)return e.last_flush=-1,Ti;r=0}e.gzindexr&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=w1}if(e.status===w1){if(e.gzhead.comment){let r=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),Sn(n),e.pending!==0)return e.last_flush=-1,Ti;r=0}e.gzindexr&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r))}e.status=x1}if(e.status===x1){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(Sn(n),e.pending!==0))return e.last_flush=-1,Ti;yt(e,n.adler&255),yt(e,n.adler>>8&255),n.adler=0}if(e.status=mo,Sn(n),e.pending!==0)return e.last_flush=-1,Ti}if(n.avail_in!==0||e.lookahead!==0||t!==Ca&&e.status!==dd){let r=e.level===0?jD(e,t):e.strategy===Ap?T8(e,t):e.strategy===c8?M8(e,t):hd[e.level].func(e,t);if((r===go||r===Gl)&&(e.status=dd),r===Ki||r===go)return n.avail_out===0&&(e.last_flush=-1),Ti;if(r===ql&&(t===r8?n8(e):t!==YA&&(v1(e,0,0,!1),t===s8&&(va(e.head),e.lookahead===0&&(e.strstart=0,e.block_start=0,e.insert=0))),Sn(n),n.avail_out===0))return e.last_flush=-1,Ti}return t!==Qn?Ti:e.wrap<=0?QA:(e.wrap===2?(yt(e,n.adler&255),yt(e,n.adler>>8&255),yt(e,n.adler>>16&255),yt(e,n.adler>>24&255),yt(e,n.total_in&255),yt(e,n.total_in>>8&255),yt(e,n.total_in>>16&255),yt(e,n.total_in>>24&255)):(ud(e,n.adler>>>16),ud(e,n.adler&65535)),Sn(n),e.wrap>0&&(e.wrap=-e.wrap),e.pending!==0?Ti:QA)},L8=n=>{if(kd(n))return Gr;let t=n.state.status;return n.state=null,t===mo?fo(n,a8):Ti},O8=(n,t)=>{let e=t.length;if(kd(n))return Gr;let i=n.state,r=i.wrap;if(r===2||r===1&&i.status!==Hl||i.lookahead)return Gr;if(r===1&&(n.adler=yd(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){r===0&&(va(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(e-i.w_size,e),0),t=l,e=i.w_size}let s=n.avail_in,a=n.next_in,o=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,jl(i);i.lookahead>=ut;){let l=i.strstart,c=i.lookahead-(ut-1);do i.ins_h=wa(i,i.ins_h,i.window[l+ut-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=ut-1,jl(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=ut-1,i.match_available=0,n.next_in=a,n.input=o,n.avail_in=s,i.wrap=r,Ti},N8=D8,F8=GD,P8=qD,U8=WD,$8=A8,V8=R8,B8=L8,z8=O8,H8="pako deflate (from Nodeca project)",fd={deflateInit:N8,deflateInit2:F8,deflateReset:P8,deflateResetKeep:U8,deflateSetHeader:$8,deflate:V8,deflateEnd:B8,deflateSetDictionary:z8,deflateInfo:H8},j8=(n,t)=>Object.prototype.hasOwnProperty.call(n,t),W8=function(n){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let e=t.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let i in e)j8(e,i)&&(n[i]=e[i])}}return n},q8=n=>{let t=0;for(let i=0,r=n.length;i=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Cd[254]=Cd[254]=1;var G8=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let t,e,i,r,s,a=n.length,o=0;for(r=0;r>>6,t[s++]=128|e&63):e<65536?(t[s++]=224|e>>>12,t[s++]=128|e>>>6&63,t[s++]=128|e&63):(t[s++]=240|e>>>18,t[s++]=128|e>>>12&63,t[s++]=128|e>>>6&63,t[s++]=128|e&63);return t},K8=(n,t)=>{if(t<65534&&n.subarray&&KD)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let i=0;i{let e=t||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,t));let i,r,s=new Array(e*2);for(r=0,i=0;i4){s[r++]=65533,i+=o-1;continue}for(a&=o===2?31:o===3?15:7;o>1&&i1){s[r++]=65533;continue}a<65536?s[r++]=a:(a-=65536,s[r++]=55296|a>>10&1023,s[r++]=56320|a&1023)}return K8(s,r)},Q8=(n,t)=>{t=t||n.length,t>n.length&&(t=n.length);let e=t-1;for(;e>=0&&(n[e]&192)===128;)e--;return e<0||e===0?t:e+Cd[n[e]]>t?e:t},wd={string2buf:G8,buf2string:Y8,utf8border:Q8};function Z8(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var YD=Z8,QD=Object.prototype.toString,{Z_NO_FLUSH:X8,Z_SYNC_FLUSH:J8,Z_FULL_FLUSH:ej,Z_FINISH:tj,Z_OK:Pp,Z_STREAM_END:ij,Z_DEFAULT_COMPRESSION:nj,Z_DEFAULT_STRATEGY:rj,Z_DEFLATED:sj}=vo;function Md(n){this.options=Vp.assign({level:nj,method:sj,chunkSize:16384,windowBits:15,memLevel:8,strategy:rj},n||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new YD,this.strm.avail_out=0;let e=fd.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==Pp)throw new Error(po[e]);if(t.header&&fd.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=wd.string2buf(t.dictionary):QD.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,e=fd.deflateSetDictionary(this.strm,i),e!==Pp)throw new Error(po[e]);this._dict_set=!0}}Md.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,r,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?tj:X8,typeof n=="string"?e.input=wd.string2buf(n):QD.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){if(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(s===J8||s===ej)&&e.avail_out<=6){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(r=fd.deflate(e,s),r===ij)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=fd.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Pp;if(e.avail_out===0){this.onData(e.output);continue}if(s>0&&e.next_out>0){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(e.avail_in===0)break}return!0};Md.prototype.onData=function(n){this.chunks.push(n)};Md.prototype.onEnd=function(n){n===Pp&&(this.result=Vp.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function A1(n,t){let e=new Md(t);if(e.push(n,!0),e.err)throw e.msg||po[e.err];return e.result}function aj(n,t){return t=t||{},t.raw=!0,A1(n,t)}function oj(n,t){return t=t||{},t.gzip=!0,A1(n,t)}var lj=Md,cj=A1,uj=aj,dj=oj,hj=vo,mj={Deflate:lj,deflate:cj,deflateRaw:uj,gzip:dj,constants:hj},Dp=16209,fj=16191,pj=function(t,e){let i,r,s,a,o,l,c,u,d,h,m,f,g,v,w,C,k,x,y,E,T,M,D,_,p=t.state;i=t.next_in,D=t.input,r=i+(t.avail_in-5),s=t.next_out,_=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),l=p.dmax,c=p.wsize,u=p.whave,d=p.wnext,h=p.window,m=p.hold,f=p.bits,g=p.lencode,v=p.distcode,w=(1<>>24,m>>>=x,f-=x,x=k>>>16&255,x===0)_[s++]=k&65535;else if(x&16){y=k&65535,x&=15,x&&(f>>=x,f-=x),f<15&&(m+=D[i++]<>>24,m>>>=x,f-=x,x=k>>>16&255,x&16){if(E=k&65535,x&=15,fl){t.msg="invalid distance too far back",p.mode=Dp;break e}if(m>>>=x,f-=x,x=s-a,E>x){if(x=E-x,x>u&&p.sane){t.msg="invalid distance too far back",p.mode=Dp;break e}if(T=0,M=h,d===0){if(T+=c-x,x2;)_[s++]=M[T++],_[s++]=M[T++],_[s++]=M[T++],y-=3;y&&(_[s++]=M[T++],y>1&&(_[s++]=M[T++]))}else{T=s-E;do _[s++]=_[T++],_[s++]=_[T++],_[s++]=_[T++],y-=3;while(y>2);y&&(_[s++]=_[T++],y>1&&(_[s++]=_[T++]))}}else if(x&64){t.msg="invalid distance code",p.mode=Dp;break e}else{k=v[(k&65535)+(m&(1<>3,i-=y,f-=y<<3,m&=(1<{let l=o.bits,c=0,u=0,d=0,h=0,m=0,f=0,g=0,v=0,w=0,C=0,k,x,y,E,T,M=null,D,_=new Uint16Array(Bl+1),p=new Uint16Array(Bl+1),b=null,S,I,A;for(c=0;c<=Bl;c++)_[c]=0;for(u=0;u=1&&_[h]===0;h--);if(m>h&&(m=h),h===0)return r[s++]=1<<24|64<<16|0,r[s++]=1<<24|64<<16|0,o.bits=1,0;for(d=1;d0&&(n===eD||h!==1))return-1;for(p[1]=0,c=1;cXA||n===tD&&w>JA)return 1;for(;;){S=c-g,a[u]+1=D?(I=b[a[u]-D],A=M[a[u]-D]):(I=96,A=0),k=1<>g)+x]=S<<24|I<<16|A|0;while(x!==0);for(k=1<>=1;if(k!==0?(C&=k-1,C+=k):C=0,u++,--_[c]===0){if(c===h)break;c=t[e+a[u]]}if(c>m&&(C&E)!==y){for(g===0&&(g=m),T+=d,f=c-g,v=1<XA||n===tD&&w>JA)return 1;y=C&E,r[y]=m<<24|f<<16|T-s|0}}return C!==0&&(r[T+C]=c-g<<24|64<<16|0),o.bits=m,0},pd=yj,Cj=0,ZD=1,XD=2,{Z_FINISH:iD,Z_BLOCK:wj,Z_TREES:Rp,Z_OK:_o,Z_STREAM_END:xj,Z_NEED_DICT:Sj,Z_STREAM_ERROR:Zn,Z_DATA_ERROR:JD,Z_MEM_ERROR:eR,Z_BUF_ERROR:kj,Z_DEFLATED:nD}=vo,Bp=16180,rD=16181,sD=16182,aD=16183,oD=16184,lD=16185,cD=16186,uD=16187,dD=16188,hD=16189,Up=16190,As=16191,c1=16192,mD=16193,u1=16194,fD=16195,pD=16196,gD=16197,_D=16198,Lp=16199,Op=16200,vD=16201,bD=16202,yD=16203,CD=16204,wD=16205,d1=16206,xD=16207,SD=16208,Ht=16209,tR=16210,iR=16211,Mj=852,Tj=592,Ej=15,Ij=Ej,kD=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function Aj(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var bo=n=>{if(!n)return 1;let t=n.state;return!t||t.strm!==n||t.modeiR?1:0},nR=n=>{if(bo(n))return Zn;let t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=t.wrap&1),t.mode=Bp,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Mj),t.distcode=t.distdyn=new Int32Array(Tj),t.sane=1,t.back=-1,_o},rR=n=>{if(bo(n))return Zn;let t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,nR(n)},sR=(n,t)=>{let e;if(bo(n))return Zn;let i=n.state;return t<0?(e=0,t=-t):(e=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Zn:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,rR(n))},aR=(n,t)=>{if(!n)return Zn;let e=new Aj;n.state=e,e.strm=n,e.window=null,e.mode=Bp;let i=sR(n,t);return i!==_o&&(n.state=null),i},Dj=n=>aR(n,Ij),MD=!0,h1,m1,Rj=n=>{if(MD){h1=new Int32Array(512),m1=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(pd(ZD,n.lens,0,288,h1,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;pd(XD,n.lens,0,32,m1,0,n.work,{bits:5}),MD=!1}n.lencode=h1,n.lenbits=9,n.distcode=m1,n.distbits=5},oR=(n,t,e,i)=>{let r,s=n.state;return s.window===null&&(s.wsize=1<=s.wsize?(s.window.set(t.subarray(e-s.wsize,e),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>i&&(r=i),s.window.set(t.subarray(e-i,e-i+r),s.wnext),i-=r,i?(s.window.set(t.subarray(e-i,e),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whave{let e,i,r,s,a,o,l,c,u,d,h,m,f,g,v=0,w,C,k,x,y,E,T,M,D=new Uint8Array(4),_,p,b=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(bo(n)||!n.output||!n.input&&n.avail_in!==0)return Zn;e=n.state,e.mode===As&&(e.mode=c1),a=n.next_out,r=n.output,l=n.avail_out,s=n.next_in,i=n.input,o=n.avail_in,c=e.hold,u=e.bits,d=o,h=l,M=_o;e:for(;;)switch(e.mode){case Bp:if(e.wrap===0){e.mode=c1;break}for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,e.check=fi(e.check,D,2,0),c=0,u=0,e.mode=rD;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((c&255)<<8)+(c>>8))%31){n.msg="incorrect header check",e.mode=Ht;break}if((c&15)!==nD){n.msg="unknown compression method",e.mode=Ht;break}if(c>>>=4,u-=4,T=(c&15)+8,e.wbits===0&&(e.wbits=T),T>15||T>e.wbits){n.msg="invalid window size",e.mode=Ht;break}e.dmax=1<>8&1),e.flags&512&&e.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,e.check=fi(e.check,D,2,0)),c=0,u=0,e.mode=sD;case sD:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>8&255,D[2]=c>>>16&255,D[3]=c>>>24&255,e.check=fi(e.check,D,4,0)),c=0,u=0,e.mode=aD;case aD:for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>8),e.flags&512&&e.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,e.check=fi(e.check,D,2,0)),c=0,u=0,e.mode=oD;case oD:if(e.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,e.check=fi(e.check,D,2,0)),c=0,u=0}else e.head&&(e.head.extra=null);e.mode=lD;case lD:if(e.flags&1024&&(m=e.length,m>o&&(m=o),m&&(e.head&&(T=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(s,s+m),T)),e.flags&512&&e.wrap&4&&(e.check=fi(e.check,i,m,s)),o-=m,s+=m,e.length-=m),e.length))break e;e.length=0,e.mode=cD;case cD:if(e.flags&2048){if(o===0)break e;m=0;do T=i[s+m++],e.head&&T&&e.length<65536&&(e.head.name+=String.fromCharCode(T));while(T&&m>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=As;break;case hD:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>=u&7,u-=u&7,e.mode=d1;break}for(;u<3;){if(o===0)break e;o--,c+=i[s++]<>>=1,u-=1,c&3){case 0:e.mode=mD;break;case 1:if(Rj(e),e.mode=Lp,t===Rp){c>>>=2,u-=2;break e}break;case 2:e.mode=pD;break;case 3:n.msg="invalid block type",e.mode=Ht}c>>>=2,u-=2;break;case mD:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=i[s++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Ht;break}if(e.length=c&65535,c=0,u=0,e.mode=u1,t===Rp)break e;case u1:e.mode=fD;case fD:if(m=e.length,m){if(m>o&&(m=o),m>l&&(m=l),m===0)break e;r.set(i.subarray(s,s+m),a),o-=m,s+=m,l-=m,a+=m,e.length-=m;break}e.mode=As;break;case pD:for(;u<14;){if(o===0)break e;o--,c+=i[s++]<>>=5,u-=5,e.ndist=(c&31)+1,c>>>=5,u-=5,e.ncode=(c&15)+4,c>>>=4,u-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Ht;break}e.have=0,e.mode=gD;case gD:for(;e.have>>=3,u-=3}for(;e.have<19;)e.lens[b[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,_={bits:e.lenbits},M=pd(Cj,e.lens,0,19,e.lencode,0,e.work,_),e.lenbits=_.bits,M){n.msg="invalid code lengths set",e.mode=Ht;break}e.have=0,e.mode=_D;case _D:for(;e.have>>24,C=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=w,u-=w,e.lens[e.have++]=k;else{if(k===16){for(p=w+2;u>>=w,u-=w,e.have===0){n.msg="invalid bit length repeat",e.mode=Ht;break}T=e.lens[e.have-1],m=3+(c&3),c>>>=2,u-=2}else if(k===17){for(p=w+3;u>>=w,u-=w,T=0,m=3+(c&7),c>>>=3,u-=3}else{for(p=w+7;u>>=w,u-=w,T=0,m=11+(c&127),c>>>=7,u-=7}if(e.have+m>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Ht;break}for(;m--;)e.lens[e.have++]=T}}if(e.mode===Ht)break;if(e.lens[256]===0){n.msg="invalid code -- missing end-of-block",e.mode=Ht;break}if(e.lenbits=9,_={bits:e.lenbits},M=pd(ZD,e.lens,0,e.nlen,e.lencode,0,e.work,_),e.lenbits=_.bits,M){n.msg="invalid literal/lengths set",e.mode=Ht;break}if(e.distbits=6,e.distcode=e.distdyn,_={bits:e.distbits},M=pd(XD,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,_),e.distbits=_.bits,M){n.msg="invalid distances set",e.mode=Ht;break}if(e.mode=Lp,t===Rp)break e;case Lp:e.mode=Op;case Op:if(o>=6&&l>=258){n.next_out=a,n.avail_out=l,n.next_in=s,n.avail_in=o,e.hold=c,e.bits=u,pj(n,h),a=n.next_out,r=n.output,l=n.avail_out,s=n.next_in,i=n.input,o=n.avail_in,c=e.hold,u=e.bits,e.mode===As&&(e.back=-1);break}for(e.back=0;v=e.lencode[c&(1<>>24,C=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],w=v>>>24,C=v>>>16&255,k=v&65535,!(x+w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,e.back+=x}if(c>>>=w,u-=w,e.back+=w,e.length=k,C===0){e.mode=wD;break}if(C&32){e.back=-1,e.mode=As;break}if(C&64){n.msg="invalid literal/length code",e.mode=Ht;break}e.extra=C&15,e.mode=vD;case vD:if(e.extra){for(p=e.extra;u>>=e.extra,u-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=bD;case bD:for(;v=e.distcode[c&(1<>>24,C=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],w=v>>>24,C=v>>>16&255,k=v&65535,!(x+w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,e.back+=x}if(c>>>=w,u-=w,e.back+=w,C&64){n.msg="invalid distance code",e.mode=Ht;break}e.offset=k,e.extra=C&15,e.mode=yD;case yD:if(e.extra){for(p=e.extra;u>>=e.extra,u-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Ht;break}e.mode=CD;case CD:if(l===0)break e;if(m=h-l,e.offset>m){if(m=e.offset-m,m>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Ht;break}m>e.wnext?(m-=e.wnext,f=e.wsize-m):f=e.wnext-m,m>e.length&&(m=e.length),g=e.window}else g=r,f=a-e.offset,m=e.length;m>l&&(m=l),l-=m,e.length-=m;do r[a++]=g[f++];while(--m);e.length===0&&(e.mode=Op);break;case wD:if(l===0)break e;r[a++]=e.length,l--,e.mode=Op;break;case d1:if(e.wrap){for(;u<32;){if(o===0)break e;o--,c|=i[s++]<{if(bo(n))return Zn;let t=n.state;return t.window&&(t.window=null),n.state=null,_o},Nj=(n,t)=>{if(bo(n))return Zn;let e=n.state;return e.wrap&2?(e.head=t,t.done=!1,_o):Zn},Fj=(n,t)=>{let e=t.length,i,r,s;return bo(n)||(i=n.state,i.wrap!==0&&i.mode!==Up)?Zn:i.mode===Up&&(r=1,r=yd(r,t,e,0),r!==i.check)?JD:(s=oR(n,t,e,e),s?(i.mode=tR,eR):(i.havedict=1,_o))},Pj=rR,Uj=sR,$j=nR,Vj=Dj,Bj=aR,zj=Lj,Hj=Oj,jj=Nj,Wj=Fj,qj="pako inflate (from Nodeca project)",Rs={inflateReset:Pj,inflateReset2:Uj,inflateResetKeep:$j,inflateInit:Vj,inflateInit2:Bj,inflate:zj,inflateEnd:Hj,inflateGetHeader:jj,inflateSetDictionary:Wj,inflateInfo:qj};function Gj(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Kj=Gj,lR=Object.prototype.toString,{Z_NO_FLUSH:Yj,Z_FINISH:Qj,Z_OK:xd,Z_STREAM_END:f1,Z_NEED_DICT:p1,Z_STREAM_ERROR:Zj,Z_DATA_ERROR:TD,Z_MEM_ERROR:Xj}=vo;function Td(n){this.options=Vp.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new YD,this.strm.avail_out=0;let e=Rs.inflateInit2(this.strm,t.windowBits);if(e!==xd)throw new Error(po[e]);if(this.header=new Kj,Rs.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=wd.string2buf(t.dictionary):lR.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Rs.inflateSetDictionary(this.strm,t.dictionary),e!==xd)))throw new Error(po[e])}Td.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,r=this.options.dictionary,s,a,o;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?Qj:Yj,lR.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),s=Rs.inflate(e,a),s===p1&&r&&(s=Rs.inflateSetDictionary(e,r),s===xd?s=Rs.inflate(e,a):s===TD&&(s=p1));e.avail_in>0&&s===f1&&e.state.wrap>0&&n[e.next_in]!==0;)Rs.inflateReset(e),s=Rs.inflate(e,a);switch(s){case Zj:case TD:case p1:case Xj:return this.onEnd(s),this.ended=!0,!1}if(o=e.avail_out,e.next_out&&(e.avail_out===0||s===f1))if(this.options.to==="string"){let l=wd.utf8border(e.output,e.next_out),c=e.next_out-l,u=wd.buf2string(e.output,l);e.next_out=c,e.avail_out=i-c,c&&e.output.set(e.output.subarray(l,l+c),0),this.onData(u)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(s===xd&&o===0)){if(s===f1)return s=Rs.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};Td.prototype.onData=function(n){this.chunks.push(n)};Td.prototype.onEnd=function(n){n===xd&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Vp.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function D1(n,t){let e=new Td(t);if(e.push(n),e.err)throw e.msg||po[e.err];return e.result}function Jj(n,t){return t=t||{},t.raw=!0,D1(n,t)}var e9=Td,t9=D1,i9=Jj,n9=D1,r9=vo,s9={Inflate:e9,inflate:t9,inflateRaw:i9,ungzip:n9,constants:r9},{Deflate:a9,deflate:o9,deflateRaw:l9,gzip:c9}=mj,{Inflate:u9,inflate:d9,inflateRaw:h9,ungzip:m9}=s9,f9=a9,p9=o9,g9=l9,_9=c9,v9=u9,b9=d9,y9=h9,C9=m9,w9=vo,cR={Deflate:f9,deflate:p9,deflateRaw:g9,gzip:_9,Inflate:v9,inflate:b9,inflateRaw:y9,ungzip:C9,constants:w9};var FR=Os(dR()),PR=Os(m_());var yo=class{constructor(t,e,i,r=[],s=null){this.extractedProfiles=[],this.validationParameters=[],this.loading=!1,this.filename=t,this.resource=e,this.validationParameters=r,i?this.mimetype=i:t.endsWith(".json")?this.mimetype="application/fhir+json":this.mimetype="application/fhir+xml",this.date=new Date,this.validationProfile=s;try{this.mimetype==="application/fhir+json"?this.extractJsonInfo():this.extractXmlInfo()}catch(a){console.error("Error parsing resource to validate: ",a)}}getErrors(){if(this.result)return this.result.issues.filter(t=>t.severity==="error"||t.severity==="fatal").length}getWarnings(){if(this.result)return this.result.issues.filter(t=>t.severity==="warning").length}getInfos(){if(this.result)return this.result.issues.filter(t=>t.severity==="information").length}setOperationOutcome(t){this.result=Wt.fromOperationOutcome(t)}setAiRecommendation(t){this.aiRecommendation=t.text.div}extractJsonInfo(){let t=JSON.parse(this.resource);t?.resourceType&&(this.resourceType=t.resourceType,this.resourceId=t.id),t.meta?.profile&&this.extractedProfiles.push(...t.meta.profile)}extractXmlInfo(){let t=this.resource.indexOf("",e);if(e0&&(r=r.substring(0,s)),s=r.indexOf(":"),s>0&&(r=r.substring(s+1)),this.resourceType=r;let a=this.resource.indexOf("profile",i);if(a>0){let o=this.resource.indexOf('value="',a)+7,l=this.resource.indexOf('"',o);oi.valueString!==void 0).map(i=>i.valueString);this.formControl.setValue(e.join(` -`))}else this.formControl.setValue(t.extension[0].valueString)}},Ed=class{constructor(t,e){this.name=t,this.value=e}};var Hp=class{};var hR=["toast-component",""];function x9(n,t){if(n&1){let e=We();N(0,"button",5),J("click",function(){te(e);let r=Y();return ie(r.remove())}),N(1,"span",6),B(2,"\xD7"),F()()}}function S9(n,t){if(n&1&&(Ji(0),B(1),en()),n&2){let e=Y(2);$(),Ye("[",e.duplicatesCount+1,"]")}}function k9(n,t){if(n&1&&(N(0,"div"),B(1),le(2,S9,2,1,"ng-container",4),F()),n&2){let e=Y();bt(e.options.titleClass),Me("aria-label",e.title),$(),Ye(" ",e.title," "),$(),z("ngIf",e.duplicatesCount)}}function M9(n,t){if(n&1&&ne(0,"div",7),n&2){let e=Y();bt(e.options.messageClass),z("innerHTML",e.message,nc)}}function T9(n,t){if(n&1&&(N(0,"div",8),B(1),F()),n&2){let e=Y();bt(e.options.messageClass),Me("aria-label",e.message),$(),Ye(" ",e.message," ")}}function E9(n,t){if(n&1&&(N(0,"div"),ne(1,"div",9),F()),n&2){let e=Y();$(),ai("width",e.width()+"%")}}function I9(n,t){if(n&1){let e=We();N(0,"button",5),J("click",function(){te(e);let r=Y();return ie(r.remove())}),N(1,"span",6),B(2,"\xD7"),F()()}}function A9(n,t){if(n&1&&(Ji(0),B(1),en()),n&2){let e=Y(2);$(),Ye("[",e.duplicatesCount+1,"]")}}function D9(n,t){if(n&1&&(N(0,"div"),B(1),le(2,A9,2,1,"ng-container",4),F()),n&2){let e=Y();bt(e.options.titleClass),Me("aria-label",e.title),$(),Ye(" ",e.title," "),$(),z("ngIf",e.duplicatesCount)}}function R9(n,t){if(n&1&&ne(0,"div",7),n&2){let e=Y();bt(e.options.messageClass),z("innerHTML",e.message,nc)}}function L9(n,t){if(n&1&&(N(0,"div",8),B(1),F()),n&2){let e=Y();bt(e.options.messageClass),Me("aria-label",e.message),$(),Ye(" ",e.message," ")}}function O9(n,t){if(n&1&&(N(0,"div"),ne(1,"div",9),F()),n&2){let e=Y();$(),ai("width",e.width()+"%")}}var L1=class{_attachedHost;component;viewContainerRef;injector;constructor(t,e){this.component=t,this.injector=e}attach(t,e){return this._attachedHost=t,t.attach(this,e)}detach(){let t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},O1=class{_attachedPortal;_disposeFn;attach(t,e){return this._attachedPortal=t,this.attachComponentPortal(t,e)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(t){this._disposeFn=t}},N1=class{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new me;_activate=new me;_manualClose=new me;_resetTimeout=new me;_countDuplicate=new me;constructor(t){this._overlayRef=t}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(t,e){t&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)}},Kl=class{toastId;config;message;title;toastType;toastRef;_onTap=new me;_onAction=new me;constructor(t,e,i,r,s,a){this.toastId=t,this.config=e,this.message=i,this.title=r,this.toastType=s,this.toastRef=a,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(t){this._onAction.next(t)}onAction(){return this._onAction.asObservable()}},mR={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},fR=new ee("ToastConfig"),F1=class extends O1{_hostDomElement;_componentFactoryResolver;_appRef;constructor(t,e,i){super(),this._hostDomElement=t,this._componentFactoryResolver=e,this._appRef=i}attachComponentPortal(t,e){let i=this._componentFactoryResolver.resolveComponentFactory(t.component),r;return r=i.create(t.injector),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.detachView(r.hostView),r.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(r),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(r)),r}_getComponentRootNode(t){return t.hostView.rootNodes[0]}},N9=(()=>{class n{_document=L(it);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e=this._document.createElement("div");e.classList.add("overlay-container"),e.setAttribute("aria-live","polite"),this._document.body.appendChild(e),this._containerElement=e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),P1=class{_portalHost;constructor(t){this._portalHost=t}attach(t,e=!0){return this._portalHost.attach(t,e)}detach(){return this._portalHost.detach()}},F9=(()=>{class n{_overlayContainer=L(N9);_componentFactoryResolver=L(UC);_appRef=L(tr);_document=L(it);_paneElements=new Map;create(e,i){return this._createOverlayRef(this.getPaneElement(e,i))}getPaneElement(e="",i){return this._paneElements.get(i)||this._paneElements.set(i,{}),this._paneElements.get(i)[e]||(this._paneElements.get(i)[e]=this._createPaneElement(e,i)),this._paneElements.get(i)[e]}_createPaneElement(e,i){let r=this._document.createElement("div");return r.id="toast-container",r.classList.add(e),r.classList.add("toast-container"),i?i.getContainerElement().appendChild(r):this._overlayContainer.getContainerElement().appendChild(r),r}_createPortalHost(e){return new F1(e,this._componentFactoryResolver,this._appRef)}_createOverlayRef(e){return new P1(this._createPortalHost(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),jp=(()=>{class n{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(e,i,r,s,a){this.overlay=i,this._injector=r,this.sanitizer=s,this.ngZone=a,this.toastrConfig=j(j({},e.default),e.config),e.config.iconClasses&&(this.toastrConfig.iconClasses=j(j({},e.default.iconClasses),e.config.iconClasses))}show(e,i,r={},s=""){return this._preBuildNotification(s,e,i,this.applyConfig(r))}success(e,i,r={}){let s=this.toastrConfig.iconClasses.success||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}error(e,i,r={}){let s=this.toastrConfig.iconClasses.error||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}info(e,i,r={}){let s=this.toastrConfig.iconClasses.info||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}warning(e,i,r={}){let s=this.toastrConfig.iconClasses.warning||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}clear(e){for(let i of this.toasts)if(e!==void 0){if(i.toastId===e){i.toastRef.manualClose();return}}else i.toastRef.manualClose()}remove(e){let i=this._findToast(e);if(!i||(i.activeToast.toastRef.close(),this.toasts.splice(i.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(e,i,r,s)):this._buildNotification(e,i,r,s)}_buildNotification(e,i,r,s){if(!s.toastComponent)throw new Error("toastComponent required");let a=this.findDuplicate(r,i,this.toastrConfig.resetTimeoutOnDuplicate&&s.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&r||i)&&this.toastrConfig.preventDuplicates&&a!==null)return a;this.previousToastMessage=i;let o=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(o=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));let l=this.overlay.create(s.positionClass,this.overlayContainer);this.index=this.index+1;let c=i;i&&s.enableHtml&&(c=this.sanitizer.sanitize(wr.HTML,i));let u=new N1(l),d=new Kl(this.index,s,c,r,e,u),h=[{provide:Kl,useValue:d}],m=gt.create({providers:h,parent:this._injector}),f=new L1(s.toastComponent,m),g=l.attach(f,s.newestOnTop);u.componentInstance=g.instance;let v={toastId:this.index,title:r||"",message:i||"",toastRef:u,onShown:u.afterActivate(),onHidden:u.afterClosed(),onTap:d.onTap(),onAction:d.onAction(),portal:g};return o||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{v.toastRef.activate()})),this.toasts.push(v),v}static \u0275fac=function(i){return new(i||n)(Oe(fR),Oe(F9),Oe(gt),Oe(Ws),Oe(Ne))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),P9=(()=>{class n{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=Xi(-1);toastClasses="";state;get _state(){return this.state()}get displayStyle(){if(this.state().value==="inactive")return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,i,r){this.toastrService=e,this.toastPackage=i,this.ngZone=r,this.message=i.message,this.title=i.title,this.options=i.config,this.originalTimeout=i.config.timeOut,this.toastClasses=`${i.toastType} ${i.config.toastClass}`,this.sub=i.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=i.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=i.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=i.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s}),this.state=Xi({value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.update(e=>$e(j({},e),{value:"active"})),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),i=this.hideTime-e;this.width.set(i/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.update(e=>$e(j({},e),{value:"active"})),this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){this.state().value!=="removed"&&(clearTimeout(this.timeout),this.state.update(e=>$e(j({},e),{value:"removed"})),this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){this.state().value!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state().value!=="removed"&&this.options.disableTimeOut!=="extendedTimeOut"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state().value==="removed"||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(e,i){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(e),i)):this.timeout=setTimeout(()=>e(),i)}outsideInterval(e,i){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(e),i)):this.intervalId=setInterval(()=>e(),i)}runInsideAngular(e){this.ngZone?this.ngZone.run(()=>e()):e()}static \u0275fac=function(i){return new(i||n)(Se(jp),Se(Kl),Se(Ne))};static \u0275cmp=he({type:n,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(i,r){i&1&&J("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),i&2&&(Yd("@flyInOut",r._state),bt(r.toastClasses),ai("display",r.displayStyle))},attrs:hR,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(i,r){i&1&&le(0,x9,3,0,"button",0)(1,k9,3,5,"div",1)(2,M9,1,3,"div",2)(3,T9,2,4,"div",3)(4,E9,2,2,"div",4),i&2&&(z("ngIf",r.options.closeButton),$(),z("ngIf",r.title),$(),z("ngIf",r.message&&r.options.enableHtml),$(),z("ngIf",r.message&&!r.options.enableHtml),$(),z("ngIf",r.options.progressBar))},dependencies:[yi],encapsulation:2,data:{animation:[zi("flyInOut",[di("inactive",ht({opacity:0})),di("active",ht({opacity:1})),di("removed",ht({opacity:0})),Yt("inactive => active",ei("{{ easeTime }}ms {{ easing }}")),Yt("active => removed",ei("{{ easeTime }}ms {{ easing }}"))])]},changeDetection:0})}return n})(),U9=$e(j({},mR),{toastComponent:P9}),$9=(n={})=>Ma([{provide:fR,useValue:{default:U9,config:n}}]),pR=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[$9(e)]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var V9=(()=>{class n{toastrService;toastPackage;appRef;message;title;options;duplicatesCount;originalTimeout;width=Xi(-1);toastClasses="";get displayStyle(){return this.state()==="inactive"?"none":null}state=Xi("inactive");timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,i,r){this.toastrService=e,this.toastPackage=i,this.appRef=r,this.message=i.message,this.title=i.title,this.options=i.config,this.originalTimeout=i.config.timeOut,this.toastClasses=`${i.toastType} ${i.config.toastClass}`,this.sub=i.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=i.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=i.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=i.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.set("active"),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.timeout=setTimeout(()=>{this.remove()},this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))),this.options.onActivateTick&&this.appRef.tick()}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),i=this.hideTime-e;this.width.set(i/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.set("active"),this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(()=>this.remove(),this.originalTimeout),this.hideTime=new Date().getTime()+(this.originalTimeout||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))}remove(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.state.set("removed"),this.timeout=setTimeout(()=>this.toastrService.remove(this.toastPackage.toastId)))}tapToast(){this.state()!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state()==="removed"||(this.timeout=setTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10)))}static \u0275fac=function(i){return new(i||n)(Se(jp),Se(Kl),Se(tr))};static \u0275cmp=he({type:n,selectors:[["","toast-component",""]],hostVars:4,hostBindings:function(i,r){i&1&&J("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),i&2&&(bt(r.toastClasses),ai("display",r.displayStyle))},attrs:hR,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(i,r){i&1&&le(0,I9,3,0,"button",0)(1,D9,3,5,"div",1)(2,R9,1,3,"div",2)(3,L9,2,4,"div",3)(4,O9,2,2,"div",4),i&2&&(z("ngIf",r.options.closeButton),$(),z("ngIf",r.title),$(),z("ngIf",r.message&&r.options.enableHtml),$(),z("ngIf",r.message&&!r.options.enableHtml),$(),z("ngIf",r.options.progressBar))},dependencies:[yi],encapsulation:2,changeDetection:0})}return n})(),Eoe=$e(j({},mR),{toastComponent:V9});var Wp=class{constructor(t,e){this.editor=t,this.indentSpace=e,this.editor.setReadOnly(!0),this.editor.setTheme("ace/theme/textmate"),this.editor.commands.removeCommand("find"),this.editor.setOptions({tabSize:this.indentSpace,wrap:!0,useWorker:!1,useSvgGutterIcons:!1})}clearAnnotations(){this.editor.session.clearAnnotations()}setAnnotations(t){let e=t.filter(i=>i.line).map(i=>{let r;switch(i.severity){case"fatal":case"error":r="error";break;case"warning":r="warning";break;case"information":r="info";break}return{row:i.line-1,column:i.col,text:i.text,type:r}});this.editor.session.setAnnotations(e)}updateEditorIssues(t){this.clearAnnotations(),t?.result&&this.setAnnotations(t.result.issues)}scrollToIssueLocation(t){this.editor.gotoLine(t.line,t.col,!0),this.editor.scrollToLine(t.line,!1,!0,()=>{})}clearContent(){this.editor.setValue("",-1)}updateCodeEditorContent(t,e){if(!t){this.clearContent(),this.clearAnnotations();return}e==Yl.RESOURCE_CONTENT?(this.editor.setValue(t.resource,-1),t.mimetype==="application/fhir+json"?this.editor.getSession().setMode("ace/mode/json"):t.mimetype==="application/fhir+xml"&&this.editor.getSession().setMode("ace/mode/xml"),this.updateEditorIssues(t)):(t.result!==void 0&&"operationOutcome"in t.result?(this.editor.setValue(JSON.stringify(t.result.operationOutcome,null,this.indentSpace),-1),this.editor.getSession().setMode("ace/mode/json")):this.clearContent(),this.clearAnnotations())}};var CR="3.7.7",z9=CR,Zl=typeof Buffer=="function",gR=typeof TextDecoder=="function"?new TextDecoder:void 0,_R=typeof TextEncoder=="function"?new TextEncoder:void 0,H9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Id=Array.prototype.slice.call(H9),qp=(n=>{let t={};return n.forEach((e,i)=>t[e]=i),t})(Id),j9=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,Ei=String.fromCharCode.bind(String),vR=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):n=>new Uint8Array(Array.prototype.slice.call(n,0)),wR=n=>n.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),xR=n=>n.replace(/[^A-Za-z0-9\+\/]/g,""),SR=n=>{let t,e,i,r,s="",a=n.length%3;for(let o=0;o255||(i=n.charCodeAt(o++))>255||(r=n.charCodeAt(o++))>255)throw new TypeError("invalid character found");t=e<<16|i<<8|r,s+=Id[t>>18&63]+Id[t>>12&63]+Id[t>>6&63]+Id[t&63]}return a?s.slice(0,a-3)+"===".substring(a):s},V1=typeof btoa=="function"?n=>btoa(n):Zl?n=>Buffer.from(n,"binary").toString("base64"):SR,U1=Zl?n=>Buffer.from(n).toString("base64"):n=>{let e=[];for(let i=0,r=n.length;it?wR(U1(n)):U1(n),W9=n=>{if(n.length<2){var t=n.charCodeAt(0);return t<128?n:t<2048?Ei(192|t>>>6)+Ei(128|t&63):Ei(224|t>>>12&15)+Ei(128|t>>>6&63)+Ei(128|t&63)}else{var t=65536+(n.charCodeAt(0)-55296)*1024+(n.charCodeAt(1)-56320);return Ei(240|t>>>18&7)+Ei(128|t>>>12&63)+Ei(128|t>>>6&63)+Ei(128|t&63)}},q9=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,kR=n=>n.replace(q9,W9),bR=Zl?n=>Buffer.from(n,"utf8").toString("base64"):_R?n=>U1(_R.encode(n)):n=>V1(kR(n)),Ql=(n,t=!1)=>t?wR(bR(n)):bR(n),yR=n=>Ql(n,!0),G9=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,K9=n=>{switch(n.length){case 4:var t=(7&n.charCodeAt(0))<<18|(63&n.charCodeAt(1))<<12|(63&n.charCodeAt(2))<<6|63&n.charCodeAt(3),e=t-65536;return Ei((e>>>10)+55296)+Ei((e&1023)+56320);case 3:return Ei((15&n.charCodeAt(0))<<12|(63&n.charCodeAt(1))<<6|63&n.charCodeAt(2));default:return Ei((31&n.charCodeAt(0))<<6|63&n.charCodeAt(1))}},MR=n=>n.replace(G9,K9),TR=n=>{if(n=n.replace(/\s+/g,""),!j9.test(n))throw new TypeError("malformed base64.");n+="==".slice(2-(n.length&3));let t,e="",i,r;for(let s=0;s>16&255):r===64?Ei(t>>16&255,t>>8&255):Ei(t>>16&255,t>>8&255,t&255);return e},B1=typeof atob=="function"?n=>atob(xR(n)):Zl?n=>Buffer.from(n,"base64").toString("binary"):TR,ER=Zl?n=>vR(Buffer.from(n,"base64")):n=>vR(B1(n).split("").map(t=>t.charCodeAt(0))),IR=n=>ER(AR(n)),Y9=Zl?n=>Buffer.from(n,"base64").toString("utf8"):gR?n=>gR.decode(ER(n)):n=>MR(B1(n)),AR=n=>xR(n.replace(/[-_]/g,t=>t=="-"?"+":"/")),$1=n=>Y9(AR(n)),Q9=n=>{if(typeof n!="string")return!1;let t=n.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},DR=n=>({value:n,enumerable:!1,writable:!0,configurable:!0}),RR=function(){let n=(t,e)=>Object.defineProperty(String.prototype,t,DR(e));n("fromBase64",function(){return $1(this)}),n("toBase64",function(t){return Ql(this,t)}),n("toBase64URI",function(){return Ql(this,!0)}),n("toBase64URL",function(){return Ql(this,!0)}),n("toUint8Array",function(){return IR(this)})},LR=function(){let n=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,DR(e));n("toBase64",function(t){return Gp(this,t)}),n("toBase64URI",function(){return Gp(this,!0)}),n("toBase64URL",function(){return Gp(this,!0)})},Z9=()=>{RR(),LR()},z1={version:CR,VERSION:z9,atob:B1,atobPolyfill:TR,btoa:V1,btoaPolyfill:SR,fromBase64:$1,toBase64:Ql,encode:Ql,encodeURI:yR,encodeURL:yR,utob:kR,btou:MR,decode:$1,isValid:Q9,fromUint8Array:Gp,toUint8Array:IR,extendString:RR,extendUint8Array:LR,extendBuiltins:Z9};var OR=(()=>{class n{transform(e,...i){return e.sort((r,s)=>r.param.type==s.param.type?r.param.name.localeCompare(s.param.name):r.param.type.localeCompare(s.param.type)),console.log(e.map(r=>`${r.param.type} ${r.param.name}`)),e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=qd({name:"sortSettings",type:n,pure:!0})}}return n})();var NR=n=>({active:n}),J9=n=>({selected:n});function eW(n,t){if(n&1&&(Ji(0),N(1,"span"),B(2),F(),B(3," (from "),N(4,"em"),B(5),F(),B(6,") "),en()),n&2){let e=Y(2);$(2),Ke(e.currentResource.resourceType),$(3),Ke(e.currentResource.filename)}}function tW(n,t){n&1&&(N(0,"em"),B(1,"none"),F())}function iW(n,t){if(n&1&&(N(0,"mat-select-trigger")(1,"span",27)(2,"span",28),B(3),F(),N(4,"span",29),B(5),F()(),N(6,"span",30)(7,"span",31),B(8),F()()()),n&2){let e=t.ngIf;$(3),E0("",e.igId,"#",e.igVersion,""),$(),z("title",e.title),$(),Ke(e.title),$(3),Ke(e.canonical)}}function nW(n,t){if(n&1&&(N(0,"mat-option",21)(1,"span",27)(2,"span",28),B(3),F(),N(4,"span",29),B(5),F()(),N(6,"span",30)(7,"span",31),B(8),F()()()),n&2){let e=t.$implicit;z("value",e.canonical),$(3),E0("",e.igId,"#",e.igVersion,""),$(),z("title",e.title),$(),Ke(e.title),$(3),Ke(e.canonical)}}function rW(n,t){n&1&&(N(0,"mat-error"),B(1,"Please choose a profile"),F())}function sW(n,t){if(n&1&&(N(0,"mat-option",21),B(1),F()),n&2){let e=t.$implicit;z("value",e),$(),Ye(" ",e," ")}}function aW(n,t){if(n&1){let e=We();N(0,"span",32)(1,"mat-icon",33),J("click",function(){te(e);let r=Y(2);return ie(r.profileLocked=!r.profileLocked)}),B(2,"lock_open"),F(),N(3,"span",34),B(4,"profile unlocked"),F()()}}function oW(n,t){if(n&1){let e=We();N(0,"span",35)(1,"mat-icon",36),J("click",function(){te(e);let r=Y(2);return ie(r.profileLocked=!r.profileLocked)}),B(2,"lock_close"),F(),N(3,"span",37),B(4,"profile locked"),F()()}}function lW(n,t){if(n&1){let e=We();N(0,"button",25),J("click",function(){te(e);let r=Y(2);return ie(r.onAiAnalyzeButtonClick())}),B(1,"Analyze Operation Outcome with AI"),F()}}function cW(n,t){if(n&1){let e=We();Ji(0),N(1,"app-upload",14),J("addFiles",function(r){te(e);let s=Y();return ie(s.onFileSelected(r))}),F(),N(2,"p",15),B(3," Current resource loaded: "),le(4,eW,7,2,"ng-container",3)(5,tW,2,0,"em",3),F(),N(6,"div",16)(7,"mat-form-field")(8,"mat-label"),B(9,"Validation profile (required)"),F(),N(10,"mat-select",17),Bs("ngModelChange",function(r){te(e);let s=Y();return Vs(s.selectedProfile,r)||(s.selectedProfile=r),ie(r)}),le(11,iW,9,5,"mat-select-trigger",3),N(12,"mat-option")(13,"ngx-mat-select-search",18),Bs("ngModelChange",function(r){te(e);let s=Y();return Vs(s.profileFilter,r)||(s.profileFilter=r),ie(r)}),J("ngModelChange",function(){te(e);let r=Y();return ie(r.updateProfileFilter())}),F()(),le(14,nW,9,6,"mat-option",19),F(),le(15,rW,2,0,"mat-error",3),N(16,"mat-hint"),B(17,"A profile is required to validate against."),F()()(),N(18,"div",16)(19,"mat-form-field")(20,"mat-label"),B(21,"Validation IG"),F(),N(22,"mat-select",20),Bs("ngModelChange",function(r){te(e);let s=Y();return Vs(s.selectedIg,r)||(s.selectedIg=r),ie(r)}),N(23,"mat-option",21)(24,"em"),B(25,"Automatic selection"),F()(),le(26,sW,2,2,"mat-option",19),F(),N(27,"mat-hint"),B(28,"A specific IG version may be specified."),F()()(),N(29,"div",22),le(30,aW,5,0,"span",23)(31,oW,5,0,"span",24),N(32,"button",25),J("click",function(){te(e);let r=Y();return ie(r.onValidationButtonClick())}),B(33,"Validate"),F(),le(34,lW,2,0,"button",26),F(),en()}if(n&2){let e=Y();$(4),z("ngIf",e.currentResource),$(),z("ngIf",!e.currentResource),$(5),$s("ngModel",e.selectedProfile),$(),z("ngIf",e.supportedProfiles.get(e.selectedProfile)),$(2),$s("ngModel",e.profileFilter),$(),z("ngForOf",e.filteredProfiles),$(),z("ngIf",e.profileControl.hasError("required")),$(7),$s("ngModel",e.selectedIg),$(),z("value",e.AUTO_IG_SELECTION),$(3),z("ngForOf",e.installedIgs),$(4),z("ngIf",!e.profileLocked),$(),z("ngIf",e.profileLocked),$(3),z("ngIf",e.showAIAnalyzeButton)}}function uW(n,t){if(n&1&&(N(0,"mat-form-field",41)(1,"mat-label"),B(2),F(),ne(3,"input",42),F()),n&2){let e=Y().$implicit;$(2),Ke(e.param.name),$(),z("formControl",e.formControl)}}function dW(n,t){if(n&1&&(N(0,"mat-form-field",41)(1,"mat-label"),B(2),F(),ne(3,"textarea",43),F()),n&2){let e=Y().$implicit;$(2),Ke(e.param.name),$(),z("formControl",e.formControl)}}function hW(n,t){if(n&1&&(N(0,"mat-checkbox",44),B(1),F()),n&2){let e=Y().$implicit;z("formControl",e.formControl),$(),Ye(" ",e.param.name," ")}}function mW(n,t){if(n&1&&(N(0,"div",16),le(1,uW,4,2,"mat-form-field",39)(2,dW,4,2,"mat-form-field",39)(3,hW,2,2,"mat-checkbox",40),F()),n&2){let e=t.$implicit;$(),z("ngIf",e.param.type==="string"&&e.param.max==="1"),$(),z("ngIf",e.param.type==="string"&&e.param.max==="*"),$(),z("ngIf",e.param.type==="boolean")}}function fW(n,t){if(n&1&&(Ji(0),le(1,mW,4,3,"div",38),Ln(2,"sortSettings"),en()),n&2){let e=Y();$(),z("ngForOf",ir(2,1,e.Array.from(e.validatorSettings.values())))}}function pW(n,t){n&1&&ne(0,"mat-spinner",52)}function gW(n,t){if(n&1&&(Ji(0),N(1,"mat-icon",53),B(2,"error"),F(),B(3),ne(4,"br"),N(5,"mat-icon",54),B(6,"warning"),F(),B(7),ne(8,"br"),N(9,"mat-icon",55),B(10,"info"),F(),B(11),en()),n&2){let e=Y().$implicit;$(3),Ye(" ",e.result?e.getErrors():"-",""),$(4),Ye(" ",e.result?e.getWarnings():"-",""),$(4),Ye(" ",e.result?e.getInfos():"-"," ")}}function _W(n,t){if(n&1){let e=We();N(0,"tr",45),J("click",function(){let r=te(e).$implicit,s=Y();return ie(s.show(r))}),N(1,"td",46),B(2),ne(3,"br"),N(4,"time"),B(5),Ln(6,"date"),F(),ne(7,"at"),F(),N(8,"td",46),B(9),ne(10,"br"),B(11),F(),N(12,"td",47),le(13,pW,1,0,"mat-spinner",11)(14,gW,12,3,"ng-container",3),F(),N(15,"td",48)(16,"mat-icon",49),J("click",function(){let r=te(e).$implicit,s=Y();return ie(s.removeEntryFromHistory(r))}),B(17,"delete"),F(),N(18,"a",50),J("click",function(r){let s=te(e).$implicit,a=Y();return ie(a.copyDirectLink(r,s))}),N(19,"mat-icon",51),B(20,"content_copy"),F()()()()}if(n&2){let e=t.$implicit,i=Y();z("ngClass",zs(11,J9,e===i.selectedEntry)),$(2),Ye(" ",e.filename,""),$(3),Ke(KC(6,8,e.date,"HH:mm:ss")),$(4),Ye(" ",e.validationProfile,""),$(2),Ye(" ",e.ig," "),$(2),z("ngIf",e.loading),$(),z("ngIf",!e.loading),$(4),z("href",i.getDirectLink(e),FC)}}function vW(n,t){if(n&1&&(N(0,"dl")(1,"dt"),B(2,"Filename"),F(),N(3,"dd"),B(4),F(),N(5,"dt"),B(6,"Profile"),F(),N(7,"dd"),B(8),F(),N(9,"dt"),B(10,"IG"),F(),N(11,"dd"),B(12),F()()),n&2){let e=Y();$(4),Ke(e.selectedEntry.filename),$(4),Ke(e.selectedEntry.validationProfile),$(4),Ke(e.selectedEntry.ig)}}function bW(n,t){if(n&1){let e=We();N(0,"app-operation-result",56),J("select",function(r){te(e);let s=Y();return ie(s.scrollToIssueLocation(r))}),F()}if(n&2){let e=Y();z("operationResult",e.selectedEntry.result)}}function yW(n,t){n&1&&ne(0,"mat-spinner",52)}var CW=2,UR=(()=>{class n{constructor(e,i,r){this.cd=i,this.toastr=r,this.AUTO_IG_SELECTION="AUTOMATIC",this.CodeEditorContent=Yl,this.Array=Array,this.validationEntries=[],this.selectedEntry=null,this.installedIgs=new Set,this.supportedProfiles=new Map,this.validatorSettings=new Map,this.filteredProfiles=new Set,this.profileFilter="",this.selectedIg=this.AUTO_IG_SELECTION,this.profileControl=new Or(null,Cn.required),this.profileLocked=!1,this.editorContent=Yl.RESOURCE_CONTENT,this.showSettings=!1,this.currentResource=null,this.showAIAnalyzeButton=!1,this.client=e.getFhirClient();let s=this.client.read({resourceType:"OperationDefinition",id:"-s-validate"}),a=this.client.search({resourceType:"ImplementationGuide",searchParams:{_sort:"title",_count:1e3}});Promise.all([s,a]).then(o=>{this.analyzeValidateOperationDefinition(o[0]),o[1].entry?.map(l=>l.resource).map(l=>`${l.packageId}#${l.version}`).sort().forEach(l=>this.installedIgs.add(l))}).catch(o=>{this.showErrorToast("Network error",o.message),console.error(o)})}ngAfterViewInit(){this.editor=new Wp(PR.default.edit("editor"),CW),this.analyzeUrlForValidation().then()}onFileSelected(e){if(e.name.endsWith(".tgz")){try{this.validateExamplesInPackage(e.blob)}catch(i){this.showErrorToast("Unexpected error",i.message),console.error(i)}return}try{this.selectedIg=this.AUTO_IG_SELECTION;let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.cd.markForCheck(),this.validateResource(e.blob.name,i.result,e.contentType,!this.profileLocked)}}catch(i){this.showErrorToast("Unexpected error",i.message),console.error(i)}}validateResource(e,i,r,s){let a;try{if(a=new yo(e,i,r,this.getCurrentValidationSettings()),this.currentResource=new Kp(e,r,i,a.resourceType),s){var o=!1;for(let l of a.extractedProfiles)if(this.supportedProfiles.has(l)){this.selectedProfile=l,o=!0;break}o||(this.selectedProfile="http://hl7.org/fhir/StructureDefinition/"+a.resourceType)}a.validationProfile=this.selectedProfile,a.validationProfile?(this.validationEntries.unshift(a),this.show(a),this.runValidation(a)):this.showWarnToast("No profile selected","Please select a profile for validation")}catch(l){this.showErrorToast("Error parsing the file",l.message),console.error(l),a&&(a.result=Wt.fromMatchboxError("Error while processing the resource for validation: "+l.message));return}}validateExamplesInPackage(e){this.selectedProfile=null,this.selectedIg=this.AUTO_IG_SELECTION;let i=new FileReader;i.readAsArrayBuffer(e),i.onload=()=>{if(this.package=i.result,this.cd.markForCheck(),this.package!=null){let r=cR.inflate(new Uint8Array(this.package)),s=new Array,a=this;(0,FR.default)(r.buffer).then(o=>{s.forEach(l=>{a.validationEntries.unshift(l),a.runValidation(l)})},o=>{this.showErrorToast("Unexpected error",o),console.error(o)},o=>{if(o.name?.indexOf("package.json")>=0,o.name?.indexOf("example")>=0&&o.name?.indexOf(".index.json")==-1){let l=o.name;l.startsWith("package/example/")&&(l=l.substring(16)),l.startsWith("example/")&&(l=l.substring(8));let c=new TextDecoder("utf-8"),u=new yo(l,c.decode(o.buffer),"application/fhir+json",this.getCurrentValidationSettings());s.push(u)}})}}}clearAllEntries(){this.selectedProfile=null,this.selectedIg=this.AUTO_IG_SELECTION,this.show(void 0),this.validationEntries.splice(0,this.validationEntries.length)}runValidation(e){if(this.selectedProfile!=null&&!this.profileLocked&&(e.extractedProfiles.includes(this.selectedProfile)||e.extractedProfiles.push(this.selectedProfile),e.validationProfile=this.selectedProfile),this.selectedIg!=this.AUTO_IG_SELECTION&&(this.selectedIg.endsWith(" (last)")?e.ig=this.selectedIg.substring(0,this.selectedIg.length-7):e.ig=this.selectedIg),!e.validationProfile){this.showErrorToast("Validation failed","No profile was selected"),console.error("No profile selected, won't run validation");return}let i=new URLSearchParams;i.set("profile",e.validationProfile),e.ig&&i.set("ig",e.ig);for(let r of e.validationParameters)i.append(r.name,r.value);e.loading=!0,this.client.operation({name:"validate?"+i.toString(),resourceType:void 0,input:e.resource,options:{headers:{accept:"application/fhir+json","content-type":e.mimetype}}}).then(r=>{e.loading=!1,e.setOperationOutcome(r),e===this.selectedEntry&&this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent)}).catch(r=>{console.error(r),e.loading=!1,r?.response?.data?.resourceType==="OperationOutcome"?(e.setOperationOutcome(r?.response?.data),e===this.selectedEntry&&this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent)):"message"in r?(this.showErrorToast("Unexpected error",r.message),e.result=Wt.fromMatchboxError("Error while sending the validation request: "+r.message),console.error(r)):(this.showErrorToast("Unknown error","Unknown error while sending the validation request"),e.result=Wt.fromMatchboxError("Unknown error while sending the validation request"),console.error(r))})}show(e){this.selectedEntry=e,this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent),e!=null&&(this.currentResource=new Kp(e.filename,e.mimetype,e.resource,e.resourceType))}removeEntryFromHistory(e){e===this.selectedEntry&&this.show(null);let i=this.validationEntries.indexOf(e);this.validationEntries.splice(i,1)}onValidationButtonClick(){let e=new yo(this.currentResource.filename,this.currentResource.content,this.currentResource.contentType,this.getCurrentValidationSettings(),this.selectedProfile);this.selectedIg!=this.AUTO_IG_SELECTION&&(e.ig=this.selectedIg),this.validationEntries.unshift(e),this.show(e),this.runValidation(e)}onAiAnalyzeButtonClick(){let e={name:"analyzeOutcomeWithAI",value:"true"},i=this.getCurrentValidationSettings();i.push(e);let r=new yo(this.currentResource.filename,this.currentResource.content,this.currentResource.contentType,i,this.selectedProfile);this.selectedIg!=this.AUTO_IG_SELECTION&&(r.ig=this.selectedIg),this.validationEntries.unshift(r),this.show(r),this.runValidation(r)}toggleSettings(){this.showSettings=!this.showSettings}scrollToIssueLocation(e){e.line&&this.editorContent==Yl.RESOURCE_CONTENT&&this.editor.scrollToIssueLocation(e)}updateProfileFilter(){let e=this.profileFilter.toLowerCase();this.filteredProfiles=new Set([...this.supportedProfiles.values()].filter(i=>i.title.toLocaleLowerCase().includes(e)||i.canonical.toLocaleLowerCase().includes(e)).values())}getDirectLink(e){let i=new URL(document.location.href);i.searchParams.forEach(s=>{i.searchParams.delete(s)});let r=new URLSearchParams;r.set("resource",z1.encodeURI(e.resource)),r.set("profile",e.validationProfile),e.ig&&r.set("ig",e.ig);for(let s of e.validationParameters)r.set(s.name,s.value);return i.hash=r.toString(),i.toString()}copyDirectLink(e,i){if("clipboard"in navigator){e.preventDefault();let r=this.getDirectLink(i);navigator.clipboard.writeText(r).then(()=>{})}}getExtensionStringValue(e,i){return this.getExtension(e,i)?.valueString??""}getExtensionBoolValue(e,i){return this.getExtension(e,i)?.valueBoolean??!1}getExtension(e,i){for(let r=0;r0)if(r.param.type==="string"&&r.param.max==="*"){let o=r.formControl.value.toString().split(` -`).filter(l=>l.trim().length>0);for(let l of o)e.push(new Ed(r.param.name,l.trim()))}else e.push(new Ed(r.param.name,r.formControl.value.toString()));return e}showErrorToast(e,i){this.toastr.error(i,e,{closeButton:!0,timeOut:5e3})}showWarnToast(e,i){this.toastr.warning(i,e,{closeButton:!0,timeOut:5e3})}analyzeValidateOperationDefinition(e){e.parameter?.forEach(i=>{i.name=="profile"&&(i._targetProfile?.forEach(r=>{let s=new Hp;s.canonical=this.getExtensionStringValue(r,"sd-canonical"),s.title=this.getExtensionStringValue(r,"sd-title"),s.igId=this.getExtensionStringValue(r,"ig-id"),s.igVersion=this.getExtensionStringValue(r,"ig-version"),s.isCurrent=!1,this.getExtensionBoolValue(r,"ig-current")?s.isCurrent=!0:s.canonical+=`|${s.igVersion}`,this.supportedProfiles.set(s.canonical,s)}),this.updateProfileFilter()),i.name=="llmProvider"&&i.extension&&(this.showAIAnalyzeButton=!0)}),e.parameter.filter(i=>i.use=="in"&&i.name!="resource"&&i.name!="profile"&&i.name!="ig"&&i.name!="llmProvider").forEach(i=>{this.validatorSettings.set(i.name,new zp(i))})}analyzeUrlForValidation(){return Pt(this,null,function*(){if(!window.location.hash)return;let e=new URLSearchParams(window.location.hash.substring(1));if(e.has("resource")){let i=!1;e.has("profile")&&(this.selectedProfile=e.get("profile"),i=!0);let r=z1.decode(e.get("resource")),s="application/fhir+json";r.startsWith("<")&&(s="application/fhir+xml");let a;e.has("filename")?a=e.get("filename"):a=`provided.${s.split("+")[1]}`;for(let[o,l]of e)o==="resource"||o==="profile"||o==="filename"||this.validatorSettings.has(o)&&this.validatorSettings.get(o).formControl.setValue(l);this.validateResource(a,r,s,!i&&!this.profileLocked),this.toastr.info("Validation","The validation of your resource has started",{closeButton:!0,timeOut:3e3})}})}static{this.\u0275fac=function(i){return new(i||n)(Se(Fn),Se(Xe),Se(jp))}}static{this.\u0275cmp=he({type:n,selectors:[["app-validate"]],standalone:!1,decls:39,vars:12,consts:[[1,"row"],[1,"card-maps","white-block"],["mat-menu-item","","title","Edit validation parameters",1,"setting",3,"click"],[4,"ngIf"],[1,"mat-table"],[1,"mat-header-row"],[1,"mat-header-cell"],["class","mat-row",3,"ngClass","click",4,"ngFor","ngForOf"],["mat-raised-button","","type","submit",3,"click"],[1,"row","row-full-height"],[3,"operationResult","select",4,"ngIf"],["diameter","30",4,"ngIf"],[1,"editor-content-selector",3,"click","ngClass"],["id","editor"],[3,"addFiles"],[1,"current"],[1,"form-field-group"],["id","select-profile","name","selectProfile","placeholder","Validate against specific Profile",3,"ngModelChange","ngModel"],["placeholderLabel","Find a profile\u2026","noEntriesFoundLabel","'no matching profile found'",3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],["name","selectIg","placeholder","Validate against specific Implementation Guide",3,"ngModelChange","ngModel"],[3,"value"],[1,"buttons"],["class","profile-lock unlocked",4,"ngIf"],["class","profile-lock locked",4,"ngIf"],["color","primary","mat-raised-button","",3,"click"],["color","primary","mat-raised-button","",3,"click",4,"ngIf"],[1,"profile-select-option-line1"],[1,"ig"],[1,"title",3,"title"],[1,"profile-select-option-line2"],[1,"canonical"],[1,"profile-lock","unlocked"],["title","Lock the profile",3,"click"],["title","The profile will be updated automatically when validating a new resource"],[1,"profile-lock","locked"],["title","Unlock the profile",3,"click"],["title","The profile won't be updated when validating a new resource"],["class","form-field-group",4,"ngFor","ngForOf"],["class","column50",4,"ngIf"],[3,"formControl",4,"ngIf"],[1,"column50"],["matInput","",3,"formControl"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","3","cdkAutosizeMaxRows","10",3,"formControl"],[3,"formControl"],[1,"mat-row",3,"click","ngClass"],[1,"mat-cell"],[1,"issues","mat-cell"],[1,"actions","mat-cell"],["aria-label","Remove","title","Remove from history",1,"delete",3,"click"],["target","_blank","title","Copy a direct link to this validation",3,"click","href"],["aria-label","Copy",1,"copy"],["diameter","30"],["inline","",1,"error"],["inline","",1,"warning"],["inline","",1,"info"],[3,"select","operationResult"]],template:function(i,r){i&1&&(N(0,"div",0)(1,"div",1)(2,"button",2),J("click",function(){return r.toggleSettings()}),N(3,"mat-icon"),B(4,"settings"),F()(),N(5,"h2"),B(6,"Validate FHIR Resource"),F(),le(7,cW,35,13,"ng-container",3)(8,fW,3,3,"ng-container",3),F(),N(9,"div",1)(10,"h2"),B(11,"Validation history"),F(),N(12,"table",4)(13,"tr",5)(14,"th",6),B(15,"Resource"),F(),N(16,"th",6),B(17,"Profile/IG"),F(),N(18,"th",6),B(19,"Issues"),F(),N(20,"th",6),B(21,"Actions"),F()(),le(22,_W,21,13,"tr",7),F(),N(23,"mat-card-actions")(24,"button",8),J("click",function(){return r.clearAllEntries()}),B(25,"Clear history"),F()()()(),N(26,"div",9)(27,"div",1)(28,"h2"),B(29,"Result of the validation"),F(),le(30,vW,13,3,"dl",3)(31,bW,1,1,"app-operation-result",10)(32,yW,1,0,"mat-spinner",11),F(),N(33,"div",1)(34,"span",12),J("click",function(){return r.changeCodeEditorContent(r.CodeEditorContent.RESOURCE_CONTENT)}),B(35,"Validated resource"),F(),N(36,"span",12),J("click",function(){return r.changeCodeEditorContent(r.CodeEditorContent.OPERATION_OUTCOME)}),B(37,"Operation outcome"),F(),ne(38,"div",13),F()()),i&2&&($(7),z("ngIf",!r.showSettings),$(),z("ngIf",r.showSettings),$(14),z("ngForOf",r.validationEntries),$(8),z("ngIf",r.selectedEntry),$(),z("ngIf",r.selectedEntry&&r.selectedEntry.result),$(),z("ngIf",r.selectedEntry&&r.selectedEntry.loading),$(2),z("ngClass",zs(8,NR,r.editorContent==r.CodeEditorContent.RESOURCE_CONTENT)),$(2),z("ngClass",zs(10,NR,r.editorContent==r.CodeEditorContent.OPERATION_OUTCOME)))},dependencies:[On,kr,yi,Rr,Lr,j_,ur,ar,fs,pm,bl,zn,na,gl,_l,$n,vl,DM,km,aa,JM,Xs,Ep,cl,Ip,iw,OR],styles:["[_nghost-%COMP%]{margin:0 auto;min-width:1400px;width:100%}button.setting[_ngcontent-%COMP%]{float:right}button.setting[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}p.current[_ngcontent-%COMP%]{margin:10px 0}p.current[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-weight:500}mat-hint[_ngcontent-%COMP%]{color:#7db99e}p.error[_ngcontent-%COMP%]{color:#d9534f;margin-top:20px}p.error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}.row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-self:stretch;margin:1em auto;min-width:1400px;width:100%;justify-content:space-evenly}.row[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{width:46%}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{padding-left:.5rem;padding-right:.5rem}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:#d8f1e6}table[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{cursor:pointer}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%]{font-size:12px;line-height:12px;color:#818181}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:12px;height:12px;margin-right:2px;vertical-align:bottom}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.error[_ngcontent-%COMP%]{color:#d9534f}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.warning[_ngcontent-%COMP%]{color:#f0ad4e}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.info[_ngcontent-%COMP%]{color:#4ca8de}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:24px}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon.delete[_ngcontent-%COMP%]{color:#d9534f;margin-right:.2em}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon.copy[_ngcontent-%COMP%]{color:#4ab183}.form-field-group[_ngcontent-%COMP%]{padding-left:1rem;padding-right:1rem;display:flex;flex-direction:row}.form-field-group[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.button-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:1rem}.card-maps[_ngcontent-%COMP%]{padding:8px 16px}.row-full-height[_ngcontent-%COMP%] .card-maps[_ngcontent-%COMP%]{height:96vh;max-height:96vh;overflow-y:auto}#editor[_ngcontent-%COMP%]{height:calc(100% - 50px)}.column50[_ngcontent-%COMP%]{width:40%}.profile-select-option-line1[_ngcontent-%COMP%]{display:inline-block;white-space:nowrap;width:100%}.profile-select-option-line1[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:block;width:auto;text-overflow:ellipsis;padding-right:6px;overflow:hidden}.profile-select-option-line1[_ngcontent-%COMP%] .ig[_ngcontent-%COMP%]{display:block;float:right;width:max-content;color:#7bc7a5}.profile-select-option-line2[_ngcontent-%COMP%]{clear:right;display:inline-block;white-space:nowrap;width:100%;font-size:.8rem;line-height:.8rem}.profile-select-option-line2[_ngcontent-%COMP%] .canonical[_ngcontent-%COMP%]{font-family:monospace,serif;color:#778d9d;letter-spacing:0px}mat-option[_ngcontent-%COMP%]:nth-child(odd){background-color:#f9f9f9}mat-option[_ngcontent-%COMP%]{padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.05);line-height:normal} .mdc-list-item__primary-text{width:100%}.editor-content-selector[_ngcontent-%COMP%]{display:inline-block;font-size:1.4em;margin:.3em 1em .6em 0;border-bottom:3px solid #d2eade;cursor:pointer;color:#5a5f5c;padding-bottom:2px}.editor-content-selector.active[_ngcontent-%COMP%]{border-bottom:3px solid #97d6ba;cursor:default;color:#000}.buttons[_ngcontent-%COMP%]{margin:20px 0 10px 10px}.profile-lock[_ngcontent-%COMP%]{float:right;display:block;width:150px;line-height:3em}.profile-lock[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer;vertical-align:middle;margin-right:5px;color:#7099bd}.profile-lock[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:help;text-decoration:underline dashed}.profile-lock.locked[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#d9534f}.profile-lock.unlocked[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#6eb394}"]})}}return n})(),Kp=class{constructor(t,e,i,r){this.filename=t,this.contentType=e,this.content=i,this.resourceType=r}},Yl=function(n){return n[n.RESOURCE_CONTENT=0]="RESOURCE_CONTENT",n[n.OPERATION_OUTCOME=1]="OPERATION_OUTCOME",n}(Yl||{});var Yp=class{validateSignature(t){return Promise.resolve(null)}validateAtHash(t){return Promise.resolve(!0)}},Qp=class{};var Ad=class{},wW=(()=>{class n extends Ad{now(){return Date.now()}new(){return new Date}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})()}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})();var Zp=class{},Xp=class{},xW=(()=>{class n{constructor(){this.data=new Map}getItem(e){return this.data.get(e)}removeItem(e){this.data.delete(e)}setItem(e,i){this.data.set(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})();var Dd=class{constructor(t){this.type=t}},Yi=class extends Dd{constructor(t,e=null){super(t),this.info=e}},gr=class extends Dd{constructor(t,e=null){super(t),this.info=e}},qt=class extends Dd{constructor(t,e,i=null){super(t),this.reason=e,this.params=i}};function $R(n){let t=n.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))}function VR(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var Xl=class{constructor(t){this.clientId="",this.redirectUri="",this.postLogoutRedirectUri="",this.redirectUriAsPostLogoutRedirectUriFallback=!0,this.loginUrl="",this.scope="openid profile",this.resource="",this.rngUrl="",this.oidc=!0,this.requestAccessToken=!0,this.options=null,this.issuer="",this.logoutUrl="",this.clearHashAfterLogin=!0,this.tokenEndpoint=null,this.revocationEndpoint=null,this.customTokenParameters=[],this.userinfoEndpoint=null,this.responseType="",this.showDebugInformation=!1,this.silentRefreshRedirectUri="",this.silentRefreshMessagePrefix="",this.silentRefreshShowIFrame=!1,this.siletRefreshTimeout=1e3*20,this.silentRefreshTimeout=1e3*20,this.dummyClientSecret="",this.requireHttps="remoteOnly",this.strictDiscoveryDocumentValidation=!0,this.jwks=null,this.customQueryParams=null,this.silentRefreshIFrameName="angular-oauth-oidc-silent-refresh-iframe",this.timeoutFactor=.75,this.sessionChecksEnabled=!1,this.sessionCheckIntervall=3*1e3,this.sessionCheckIFrameUrl=null,this.sessionCheckIFrameName="angular-oauth-oidc-check-session-iframe",this.disableAtHashCheck=!1,this.skipSubjectCheck=!1,this.useIdTokenHintForSilentRefresh=!1,this.skipIssuerCheck=!1,this.nonceStateSeparator=";",this.useHttpBasicAuth=!1,this.decreaseExpirationBySec=0,this.waitForTokenInMsec=0,this.disablePKCE=!1,this.preserveRequestedRoute=!1,this.disableIdTokenTimer=!1,this.checkOrigin=!1,this.openUri=e=>{location.href=e},t&&Object.assign(this,t)}},Co=class{encodeKey(t){return encodeURIComponent(t)}encodeValue(t){return encodeURIComponent(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}},Jp=class{};var BR=(()=>{class n{getHashFragmentParams(e){let i=e||window.location.hash;if(i=decodeURIComponent(i),i.indexOf("#")!==0)return{};let r=i.indexOf("?");return r>-1?i=i.substr(r+1):i=i.substr(1),this.parseQueryString(i)}parseQueryString(e){let i={},r,s,a,o,l,c;if(e===null)return i;let u=e.split("&");for(let d=0;d=64;){for(s=t[0],a=t[1],o=t[2],l=t[3],c=t[4],u=t[5],d=t[6],h=t[7],f=0;f<16;f++)g=i+f*4,n[f]=(e[g]&255)<<24|(e[g+1]&255)<<16|(e[g+2]&255)<<8|e[g+3]&255;for(f=16;f<64;f++)m=n[f-2],v=(m>>>17|m<<15)^(m>>>19|m<<13)^m>>>10,m=n[f-15],w=(m>>>7|m<<25)^(m>>>18|m<<14)^m>>>3,n[f]=(v+n[f-7]|0)+(w+n[f-16]|0);for(f=0;f<64;f++)v=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&u^~c&d)|0)+(h+(kW[f]+n[f]|0)|0)|0,w=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&a^s&o^a&o)|0,h=d,d=u,u=c,c=l+v|0,l=o,o=a,a=s,s=v+w|0;t[0]+=s,t[1]+=a,t[2]+=o,t[3]+=l,t[4]+=c,t[5]+=u,t[6]+=d,t[7]+=h,i+=64,r-=64}return i}var j1=class{constructor(){this.digestLength=zR,this.blockSize=SW,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}reset(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this}clean(){for(let t=0;t0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[i++],e--;this.bufferLength===64&&(H1(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(i=H1(this.temp,this.state,t,i,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[i++],e--;return this}finish(t){if(!this.finished){let e=this.bytesHashed,i=this.bufferLength,r=e/536870912|0,s=e<<3,a=e%64<56?64:128;this.buffer[i]=128;for(let o=i+1;o>>24&255,this.buffer[a-7]=r>>>16&255,this.buffer[a-6]=r>>>8&255,this.buffer[a-5]=r>>>0&255,this.buffer[a-4]=s>>>24&255,this.buffer[a-3]=s>>>16&255,this.buffer[a-2]=s>>>8&255,this.buffer[a-1]=s>>>0&255,H1(this.temp,this.state,this.buffer,0,a),this.finished=!0}for(let e=0;e<8;e++)t[e*4+0]=this.state[e]>>>24&255,t[e*4+1]=this.state[e]>>>16&255,t[e*4+2]=this.state[e]>>>8&255,t[e*4+3]=this.state[e]>>>0&255;return this}digest(){let t=new Uint8Array(this.digestLength);return this.finish(t),t}_saveState(t){for(let e=0;e{class n{calcHash(e,i){return Pt(this,null,function*(){return EW(MW(TW(e)))})}toHashString2(e){let i="";for(let r of e)i+=String.fromCharCode(r);return i}toHashString(e){let i=new Uint8Array(e),r="";for(let s of i)r+=String.fromCharCode(s);return r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})(),HR=(()=>{class n extends Xl{constructor(e,i,r,s,a,o,l,c,u,d){super(),this.ngZone=e,this.http=i,this.config=a,this.urlHelper=o,this.logger=l,this.crypto=c,this.dateTimeService=d,this.discoveryDocumentLoaded=!1,this.state="",this.eventsSubject=new me,this.discoveryDocumentLoadedSubject=new me,this.grantTypesSupported=[],this.inImplicitFlow=!1,this.saveNoncesInLocalStorage=!1,this.debug("angular-oauth2-oidc v10"),this.document=u,a||(a={}),this.discoveryDocumentLoaded$=this.discoveryDocumentLoadedSubject.asObservable(),this.events=this.eventsSubject.asObservable(),s&&(this.tokenValidationHandler=s),a&&this.configure(a);try{r?this.setStorage(r):typeof sessionStorage<"u"&&this.setStorage(sessionStorage)}catch(h){console.error("No OAuthStorage provided and cannot access default (sessionStorage).Consider providing a custom OAuthStorage implementation in your module.",h)}if(this.checkLocalStorageAccessable()){let h=window?.navigator?.userAgent;(h?.includes("MSIE ")||h?.includes("Trident"))&&(this.saveNoncesInLocalStorage=!0)}this.setupRefreshTimer()}checkLocalStorageAccessable(){if(typeof window>"u")return!1;let e="test";try{return typeof window.localStorage>"u"?!1:(localStorage.setItem(e,e),localStorage.removeItem(e),!0)}catch{return!1}}configure(e){Object.assign(this,new Xl,e),this.config=Object.assign({},new Xl,e),this.sessionChecksEnabled&&this.setupSessionCheck(),this.configChanged()}configChanged(){this.setupRefreshTimer()}restartSessionChecksIfStillLoggedIn(){this.hasValidIdToken()&&this.initSessionCheck()}restartRefreshTimerIfStillLoggedIn(){this.setupExpirationTimers()}setupSessionCheck(){this.events.pipe(st(e=>e.type==="token_received")).subscribe(()=>{this.initSessionCheck()})}setupAutomaticSilentRefresh(e={},i,r=!0){let s=!0;this.clearAutomaticRefreshTimer(),this.automaticRefreshSubscription=this.events.pipe(Et(a=>{a.type==="token_received"?s=!0:a.type==="logout"&&(s=!1)}),st(a=>a.type==="token_expires"&&(i==null||i==="any"||a.info===i)),Ui(1e3)).subscribe(()=>{s&&this.refreshInternal(e,r).catch(()=>{this.debug("Automatic silent refresh did not work")})}),this.restartRefreshTimerIfStillLoggedIn()}refreshInternal(e,i){return!this.useSilentRefresh&&this.responseType==="code"?this.refreshToken():this.silentRefresh(e,i)}loadDiscoveryDocumentAndTryLogin(e=null){return this.loadDiscoveryDocument().then(()=>this.tryLogin(e))}loadDiscoveryDocumentAndLogin(e=null){return e=e||{},this.loadDiscoveryDocumentAndTryLogin(e).then(()=>{if(!this.hasValidIdToken()||!this.hasValidAccessToken()){let i=typeof e.state=="string"?e.state:"";return this.initLoginFlow(i),!1}else return!0})}debug(...e){this.showDebugInformation&&this.logger.debug(...e)}validateUrlFromDiscoveryDocument(e){let i=[],r=this.validateUrlForHttps(e),s=this.validateUrlAgainstIssuer(e);return r||i.push("https for all urls required. Also for urls received by discovery."),s||i.push("Every url in discovery document has to start with the issuer url.Also see property strictDiscoveryDocumentValidation."),i}validateUrlForHttps(e){if(!e)return!0;let i=e.toLowerCase();return this.requireHttps===!1||(i.match(/^http:\/\/localhost($|[:/])/)||i.match(/^http:\/\/localhost($|[:/])/))&&this.requireHttps==="remoteOnly"?!0:i.startsWith("https://")}assertUrlNotNullAndCorrectProtocol(e,i){if(!e)throw new Error(`'${i}' should not be null`);if(!this.validateUrlForHttps(e))throw new Error(`'${i}' must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).`)}validateUrlAgainstIssuer(e){return!this.strictDiscoveryDocumentValidation||!e?!0:e.toLowerCase().startsWith(this.issuer.toLowerCase())}setupRefreshTimer(){if(typeof window>"u"){this.debug("timer not supported on this plattform");return}(this.hasValidIdToken()||this.hasValidAccessToken())&&(this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.setupExpirationTimers()),this.tokenReceivedSubscription&&this.tokenReceivedSubscription.unsubscribe(),this.tokenReceivedSubscription=this.events.pipe(st(e=>e.type==="token_received")).subscribe(()=>{this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.setupExpirationTimers()})}setupExpirationTimers(){this.hasValidAccessToken()&&this.setupAccessTokenTimer(),!this.disableIdTokenTimer&&this.hasValidIdToken()&&this.setupIdTokenTimer()}setupAccessTokenTimer(){let e=this.getAccessTokenExpiration(),i=this.getAccessTokenStoredAt(),r=this.calcTimeout(i,e);this.ngZone.runOutsideAngular(()=>{this.accessTokenTimeoutSubscription=_e(new gr("token_expires","access_token")).pipe(Eo(r)).subscribe(s=>{this.ngZone.run(()=>{this.eventsSubject.next(s)})})})}setupIdTokenTimer(){let e=this.getIdTokenExpiration(),i=this.getIdTokenStoredAt(),r=this.calcTimeout(i,e);this.ngZone.runOutsideAngular(()=>{this.idTokenTimeoutSubscription=_e(new gr("token_expires","id_token")).pipe(Eo(r)).subscribe(s=>{this.ngZone.run(()=>{this.eventsSubject.next(s)})})})}stopAutomaticRefresh(){this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.clearAutomaticRefreshTimer()}clearAccessTokenTimer(){this.accessTokenTimeoutSubscription&&this.accessTokenTimeoutSubscription.unsubscribe()}clearIdTokenTimer(){this.idTokenTimeoutSubscription&&this.idTokenTimeoutSubscription.unsubscribe()}clearAutomaticRefreshTimer(){this.automaticRefreshSubscription&&this.automaticRefreshSubscription.unsubscribe()}calcTimeout(e,i){let r=this.dateTimeService.now(),s=(i-e)*this.timeoutFactor-(r-e),a=Math.max(0,s),o=2147483647;return a>o?o:a}setStorage(e){this._storage=e,this.configChanged()}loadDiscoveryDocument(e=null){return new Promise((i,r)=>{if(e||(e=this.issuer||"",e.endsWith("/")||(e+="/"),e+=".well-known/openid-configuration"),!this.validateUrlForHttps(e)){r("issuer must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");return}this.http.get(e).subscribe(s=>{if(!this.validateDiscoveryDocument(s)){this.eventsSubject.next(new qt("discovery_document_validation_error",null)),r("discovery_document_validation_error");return}this.loginUrl=s.authorization_endpoint,this.logoutUrl=s.end_session_endpoint||this.logoutUrl,this.grantTypesSupported=s.grant_types_supported,this.issuer=s.issuer,this.tokenEndpoint=s.token_endpoint,this.userinfoEndpoint=s.userinfo_endpoint||this.userinfoEndpoint,this.jwksUri=s.jwks_uri,this.sessionCheckIFrameUrl=s.check_session_iframe||this.sessionCheckIFrameUrl,this.discoveryDocumentLoaded=!0,this.discoveryDocumentLoadedSubject.next(s),this.revocationEndpoint=s.revocation_endpoint||this.revocationEndpoint,this.sessionChecksEnabled&&this.restartSessionChecksIfStillLoggedIn(),this.loadJwks().then(a=>{let o={discoveryDocument:s,jwks:a},l=new Yi("discovery_document_loaded",o);this.eventsSubject.next(l),i(l)}).catch(a=>{this.eventsSubject.next(new qt("discovery_document_load_error",a)),r(a)})},s=>{this.logger.error("error loading discovery document",s),this.eventsSubject.next(new qt("discovery_document_load_error",s)),r(s)})})}loadJwks(){return new Promise((e,i)=>{this.jwksUri?this.http.get(this.jwksUri).subscribe(r=>{this.jwks=r,e(r)},r=>{this.logger.error("error loading jwks",r),this.eventsSubject.next(new qt("jwks_load_error",r)),i(r)}):e(null)})}validateDiscoveryDocument(e){let i;return!this.skipIssuerCheck&&e.issuer!==this.issuer?(this.logger.error("invalid issuer in discovery document","expected: "+this.issuer,"current: "+e.issuer),!1):(i=this.validateUrlFromDiscoveryDocument(e.authorization_endpoint),i.length>0?(this.logger.error("error validating authorization_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.end_session_endpoint),i.length>0?(this.logger.error("error validating end_session_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.token_endpoint),i.length>0&&this.logger.error("error validating token_endpoint in discovery document",i),i=this.validateUrlFromDiscoveryDocument(e.revocation_endpoint),i.length>0&&this.logger.error("error validating revocation_endpoint in discovery document",i),i=this.validateUrlFromDiscoveryDocument(e.userinfo_endpoint),i.length>0?(this.logger.error("error validating userinfo_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.jwks_uri),i.length>0?(this.logger.error("error validating jwks_uri in discovery document",i),!1):(this.sessionChecksEnabled&&!e.check_session_iframe&&this.logger.warn("sessionChecksEnabled is activated but discovery document does not contain a check_session_iframe field"),!0)))))}fetchTokenUsingPasswordFlowAndLoadUserProfile(e,i,r=new Hs){return this.fetchTokenUsingPasswordFlow(e,i,r).then(()=>this.loadUserProfile())}loadUserProfile(){if(!this.hasValidAccessToken())throw new Error("Can not load User Profile without access_token");if(!this.validateUrlForHttps(this.userinfoEndpoint))throw new Error("userinfoEndpoint must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");return new Promise((e,i)=>{let r=new Hs().set("Authorization","Bearer "+this.getAccessToken());this.http.get(this.userinfoEndpoint,{headers:r,observe:"response",responseType:"text"}).subscribe(s=>{if(this.debug("userinfo received",JSON.stringify(s)),s.headers.get("content-type").startsWith("application/json")){let a=JSON.parse(s.body),o=this.getIdentityClaims()||{};if(!this.skipSubjectCheck&&this.oidc&&(!o.sub||a.sub!==o.sub)){i(`if property oidc is true, the received user-id (sub) has to be the user-id of the user that has logged in with oidc. -if you are not using oidc but just oauth2 password flow set oidc to false`);return}a=Object.assign({},o,a),this._storage.setItem("id_token_claims_obj",JSON.stringify(a)),this.eventsSubject.next(new Yi("user_profile_loaded")),e({info:a})}else this.debug("userinfo is not JSON, treating it as JWE/JWS"),this.eventsSubject.next(new Yi("user_profile_loaded")),e(JSON.parse(s.body))},s=>{this.logger.error("error loading user info",s),this.eventsSubject.next(new qt("user_profile_load_error",s)),i(s)})})}fetchTokenUsingPasswordFlow(e,i,r=new Hs){let s={username:e,password:i};return this.fetchTokenUsingGrant("password",s,r)}fetchTokenUsingGrant(e,i,r=new Hs){this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint");let s=new Oo({encoder:new Co}).set("grant_type",e).set("scope",this.scope);if(this.useHttpBasicAuth){let a=btoa(`${this.clientId}:${this.dummyClientSecret}`);r=r.set("Authorization","Basic "+a)}if(this.useHttpBasicAuth||(s=s.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(s=s.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let a of Object.getOwnPropertyNames(this.customQueryParams))s=s.set(a,this.customQueryParams[a]);for(let a of Object.keys(i))s=s.set(a,i[a]);return r=r.set("Content-Type","application/x-www-form-urlencoded"),new Promise((a,o)=>{this.http.post(this.tokenEndpoint,s,{headers:r}).subscribe(l=>{this.debug("tokenResponse",l),this.storeAccessTokenResponse(l.access_token,l.refresh_token,l.expires_in||this.fallbackAccessTokenExpirationTimeInSec,l.scope,this.extractRecognizedCustomParameters(l)),this.oidc&&l.id_token&&this.processIdToken(l.id_token,l.access_token).then(c=>{this.storeIdToken(c),a(l)}),this.eventsSubject.next(new Yi("token_received")),a(l)},l=>{this.logger.error("Error performing ${grantType} flow",l),this.eventsSubject.next(new qt("token_error",l)),o(l)})})}refreshToken(){return this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint"),new Promise((e,i)=>{let r=new Oo({encoder:new Co}).set("grant_type","refresh_token").set("scope",this.scope).set("refresh_token",this._storage.getItem("refresh_token")),s=new Hs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let a=btoa(`${this.clientId}:${this.dummyClientSecret}`);s=s.set("Authorization","Basic "+a)}if(this.useHttpBasicAuth||(r=r.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(r=r.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let a of Object.getOwnPropertyNames(this.customQueryParams))r=r.set(a,this.customQueryParams[a]);this.http.post(this.tokenEndpoint,r,{headers:s}).pipe(Dt(a=>this.oidc&&a.id_token?_i(this.processIdToken(a.id_token,a.access_token,!0)).pipe(Et(o=>this.storeIdToken(o)),Le(()=>a)):_e(a))).subscribe(a=>{this.debug("refresh tokenResponse",a),this.storeAccessTokenResponse(a.access_token,a.refresh_token,a.expires_in||this.fallbackAccessTokenExpirationTimeInSec,a.scope,this.extractRecognizedCustomParameters(a)),this.eventsSubject.next(new Yi("token_received")),this.eventsSubject.next(new Yi("token_refreshed")),e(a)},a=>{this.logger.error("Error refreshing token",a),this.eventsSubject.next(new qt("token_refresh_error",a)),i(a)})})}removeSilentRefreshEventListener(){this.silentRefreshPostMessageEventListener&&(window.removeEventListener("message",this.silentRefreshPostMessageEventListener),this.silentRefreshPostMessageEventListener=null)}setupSilentRefreshEventListener(){this.removeSilentRefreshEventListener(),this.silentRefreshPostMessageEventListener=e=>{let i=this.processMessageEventMessage(e);this.checkOrigin&&e.origin!==location.origin&&console.error("wrong origin requested silent refresh!"),this.tryLogin({customHashFragment:i,preventClearHashAfterLogin:!0,customRedirectUri:this.silentRefreshRedirectUri||this.redirectUri}).catch(r=>this.debug("tryLogin during silent refresh failed",r))},window.addEventListener("message",this.silentRefreshPostMessageEventListener)}silentRefresh(e={},i=!0){let r=this.getIdentityClaims()||{};if(this.useIdTokenHintForSilentRefresh&&this.hasValidIdToken()&&(e.id_token_hint=this.getIdToken()),!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");if(typeof this.document>"u")throw new Error("silent refresh is not supported on this platform");let s=this.document.getElementById(this.silentRefreshIFrameName);s&&this.document.body.removeChild(s),this.silentRefreshSubject=r.sub;let a=this.document.createElement("iframe");a.id=this.silentRefreshIFrameName,this.setupSilentRefreshEventListener();let o=this.silentRefreshRedirectUri||this.redirectUri;this.createLoginUrl(null,null,o,i,e).then(d=>{a.setAttribute("src",d),this.silentRefreshShowIFrame||(a.style.display="none"),this.document.body.appendChild(a)});let l=this.events.pipe(st(d=>d instanceof qt),hn()),c=this.events.pipe(st(d=>d.type==="token_received"),hn()),u=_e(new qt("silent_refresh_timeout",null)).pipe(Eo(this.silentRefreshTimeout));return MC([l,c,u]).pipe(Le(d=>{if(d instanceof qt)throw d.type==="silent_refresh_timeout"?this.eventsSubject.next(d):(d=new qt("silent_refresh_error",d),this.eventsSubject.next(d)),d;return d.type==="token_received"&&(d=new Yi("silently_refreshed"),this.eventsSubject.next(d)),d})).toPromise()}initImplicitFlowInPopup(e){return this.initLoginFlowInPopup(e)}initLoginFlowInPopup(e){return e=e||{},this.createLoginUrl(null,null,this.silentRefreshRedirectUri,!1,{display:"popup"}).then(i=>new Promise((r,s)=>{let o=null;e.windowRef?e.windowRef&&!e.windowRef.closed&&(o=e.windowRef,o.location.href=i):o=window.open(i,"ngx-oauth2-oidc-login",this.calculatePopupFeatures(e));let l,c=f=>{this.tryLogin({customHashFragment:f,preventClearHashAfterLogin:!0,customRedirectUri:this.silentRefreshRedirectUri}).then(()=>{d(),r(!0)},g=>{d(),s(g)})},u=()=>{(!o||o.closed)&&(d(),s(new qt("popup_closed",{})))};o?l=window.setInterval(u,500):s(new qt("popup_blocked",{}));let d=()=>{window.clearInterval(l),window.removeEventListener("storage",m),window.removeEventListener("message",h),o!==null&&o.close(),o=null},h=f=>{let g=this.processMessageEventMessage(f);g&&g!==null?(window.removeEventListener("storage",m),c(g)):console.log("false event firing")},m=f=>{f.key==="auth_hash"&&(window.removeEventListener("message",h),c(f.newValue))};window.addEventListener("message",h),window.addEventListener("storage",m)}))}calculatePopupFeatures(e){let i=e.height||470,r=e.width||500,s=window.screenLeft+(window.outerWidth-r)/2,a=window.screenTop+(window.outerHeight-i)/2;return`location=no,toolbar=no,width=${r},height=${i},top=${a},left=${s}`}processMessageEventMessage(e){let i="#";if(this.silentRefreshMessagePrefix&&(i+=this.silentRefreshMessagePrefix),!e||!e.data||typeof e.data!="string")return;let r=e.data;if(r.startsWith(i))return"#"+r.substr(i.length)}canPerformSessionCheck(){return this.sessionChecksEnabled?this.sessionCheckIFrameUrl?this.getSessionState()?!(typeof this.document>"u"):(console.warn("sessionChecksEnabled is activated but there is no session_state"),!1):(console.warn("sessionChecksEnabled is activated but there is no sessionCheckIFrameUrl"),!1):!1}setupSessionCheckEventListener(){this.removeSessionCheckEventListener(),this.sessionCheckEventListener=e=>{let i=e.origin.toLowerCase(),r=this.issuer.toLowerCase();if(this.debug("sessionCheckEventListener"),!r.startsWith(i)){this.debug("sessionCheckEventListener","wrong origin",i,"expected",r,"event",e);return}switch(e.data){case"unchanged":this.ngZone.run(()=>{this.handleSessionUnchanged()});break;case"changed":this.ngZone.run(()=>{this.handleSessionChange()});break;case"error":this.ngZone.run(()=>{this.handleSessionError()});break}this.debug("got info from session check inframe",e)},this.ngZone.runOutsideAngular(()=>{window.addEventListener("message",this.sessionCheckEventListener)})}handleSessionUnchanged(){this.debug("session check","session unchanged"),this.eventsSubject.next(new gr("session_unchanged"))}handleSessionChange(){this.eventsSubject.next(new gr("session_changed")),this.stopSessionCheckTimer(),!this.useSilentRefresh&&this.responseType==="code"?this.refreshToken().then(()=>{this.debug("token refresh after session change worked")}).catch(()=>{this.debug("token refresh did not work after session changed"),this.eventsSubject.next(new gr("session_terminated")),this.logOut(!0)}):this.silentRefreshRedirectUri?(this.silentRefresh().catch(()=>this.debug("silent refresh failed after session changed")),this.waitForSilentRefreshAfterSessionChange()):(this.eventsSubject.next(new gr("session_terminated")),this.logOut(!0))}waitForSilentRefreshAfterSessionChange(){this.events.pipe(st(e=>e.type==="silently_refreshed"||e.type==="silent_refresh_timeout"||e.type==="silent_refresh_error"),hn()).subscribe(e=>{e.type!=="silently_refreshed"&&(this.debug("silent refresh did not work after session changed"),this.eventsSubject.next(new gr("session_terminated")),this.logOut(!0))})}handleSessionError(){this.stopSessionCheckTimer(),this.eventsSubject.next(new gr("session_error"))}removeSessionCheckEventListener(){this.sessionCheckEventListener&&(window.removeEventListener("message",this.sessionCheckEventListener),this.sessionCheckEventListener=null)}initSessionCheck(){if(!this.canPerformSessionCheck())return;let e=this.document.getElementById(this.sessionCheckIFrameName);e&&this.document.body.removeChild(e);let i=this.document.createElement("iframe");i.id=this.sessionCheckIFrameName,this.setupSessionCheckEventListener();let r=this.sessionCheckIFrameUrl;i.setAttribute("src",r),i.style.display="none",this.document.body.appendChild(i),this.startSessionCheckTimer()}startSessionCheckTimer(){this.stopSessionCheckTimer(),this.ngZone.runOutsideAngular(()=>{this.sessionCheckTimer=setInterval(this.checkSession.bind(this),this.sessionCheckIntervall)})}stopSessionCheckTimer(){this.sessionCheckTimer&&(clearInterval(this.sessionCheckTimer),this.sessionCheckTimer=null)}checkSession(){let e=this.document.getElementById(this.sessionCheckIFrameName);e||this.logger.warn("checkSession did not find iframe",this.sessionCheckIFrameName);let i=this.getSessionState();i||this.stopSessionCheckTimer();let r=this.clientId+" "+i;e.contentWindow.postMessage(r,this.issuer)}createLoginUrl(){return Pt(this,arguments,function*(e="",i="",r="",s=!1,a={}){let o=this,l;r?l=r:l=this.redirectUri;let c=yield this.createAndSaveNonce();if(e?e=c+this.config.nonceStateSeparator+encodeURIComponent(e):e=c,!this.requestAccessToken&&!this.oidc)throw new Error("Either requestAccessToken or oidc or both must be true");this.config.responseType?this.responseType=this.config.responseType:this.oidc&&this.requestAccessToken?this.responseType="id_token token":this.oidc&&!this.requestAccessToken?this.responseType="id_token":this.responseType="token";let u=o.loginUrl.indexOf("?")>-1?"&":"?",d=o.scope;this.oidc&&!d.match(/(^|\s)openid($|\s)/)&&(d="openid "+d);let h=o.loginUrl+u+"response_type="+encodeURIComponent(o.responseType)+"&client_id="+encodeURIComponent(o.clientId)+"&state="+encodeURIComponent(e)+"&redirect_uri="+encodeURIComponent(l)+"&scope="+encodeURIComponent(d);if(this.responseType.includes("code")&&!this.disablePKCE){let[m,f]=yield this.createChallangeVerifierPairForPKCE();this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?localStorage.setItem("PKCE_verifier",f):this._storage.setItem("PKCE_verifier",f),h+="&code_challenge="+m,h+="&code_challenge_method=S256"}i&&(h+="&login_hint="+encodeURIComponent(i)),o.resource&&(h+="&resource="+encodeURIComponent(o.resource)),o.oidc&&(h+="&nonce="+encodeURIComponent(c)),s&&(h+="&prompt=none");for(let m of Object.keys(a))h+="&"+encodeURIComponent(m)+"="+encodeURIComponent(a[m]);if(this.customQueryParams)for(let m of Object.getOwnPropertyNames(this.customQueryParams))h+="&"+m+"="+encodeURIComponent(this.customQueryParams[m]);return h})}initImplicitFlowInternal(e="",i=""){if(this.inImplicitFlow)return;if(this.inImplicitFlow=!0,!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");let r={},s=null;typeof i=="string"?s=i:typeof i=="object"&&(r=i),this.createLoginUrl(e,s,null,!1,r).then(this.config.openUri).catch(a=>{console.error("Error in initImplicitFlow",a),this.inImplicitFlow=!1})}initImplicitFlow(e="",i=""){this.loginUrl!==""?this.initImplicitFlowInternal(e,i):this.events.pipe(st(r=>r.type==="discovery_document_loaded")).subscribe(()=>this.initImplicitFlowInternal(e,i))}resetImplicitFlow(){this.inImplicitFlow=!1}callOnTokenReceivedIfExists(e){let i=this;if(e.onTokenReceived){let r={idClaims:i.getIdentityClaims(),idToken:i.getIdToken(),accessToken:i.getAccessToken(),state:i.state};e.onTokenReceived(r)}}storeAccessTokenResponse(e,i,r,s,a){if(this._storage.setItem("access_token",e),s&&!Array.isArray(s)?this._storage.setItem("granted_scopes",JSON.stringify(s.split(" "))):s&&Array.isArray(s)&&this._storage.setItem("granted_scopes",JSON.stringify(s)),this._storage.setItem("access_token_stored_at",""+this.dateTimeService.now()),r){let o=r*1e3,c=this.dateTimeService.new().getTime()+o;this._storage.setItem("expires_at",""+c)}i&&this._storage.setItem("refresh_token",i),a&&a.forEach((o,l)=>{this._storage.setItem(l,o)})}tryLogin(e=null){return this.config.responseType==="code"?this.tryLoginCodeFlow(e).then(()=>!0):this.tryLoginImplicitFlow(e)}parseQueryString(e){return!e||e.length===0?{}:(e.charAt(0)==="?"&&(e=e.substr(1)),this.urlHelper.parseQueryString(e))}tryLoginCodeFlow(e=null){return Pt(this,null,function*(){e=e||{};let i=e.customHashFragment?e.customHashFragment.substring(1):window.location.search,r=this.getCodePartsFromUrl(i),s=r.code,a=r.state,o=r.session_state;if(!e.preventClearHashAfterLogin){let u=location.origin+location.pathname+location.search.replace(/code=[^&$]*/,"").replace(/scope=[^&$]*/,"").replace(/state=[^&$]*/,"").replace(/session_state=[^&$]*/,"").replace(/^\?&/,"?").replace(/&$/,"").replace(/^\?$/,"").replace(/&+/g,"&").replace(/\?&/,"?").replace(/\?$/,"")+location.hash;history.replaceState(null,window.name,u)}let[l,c]=this.parseState(a);if(this.state=c,r.error){this.debug("error trying to login"),this.handleLoginError(e,r);let u=new qt("code_error",{},r);return this.eventsSubject.next(u),Promise.reject(u)}if(!e.disableNonceCheck){if(!l)return this.saveRequestedRoute(),Promise.resolve();if(!e.disableOAuth2StateCheck&&!this.validateNonce(l)){let d=new qt("invalid_nonce_in_state",null);return this.eventsSubject.next(d),Promise.reject(d)}}return this.storeSessionState(o),s&&(yield this.getTokenFromCode(s,e),this.restoreRequestedRoute()),Promise.resolve()})}saveRequestedRoute(){this.config.preserveRequestedRoute&&this._storage.setItem("requested_route",window.location.pathname+window.location.search)}restoreRequestedRoute(){let e=this._storage.getItem("requested_route");e&&history.replaceState(null,"",window.location.origin+e)}getCodePartsFromUrl(e){return!e||e.length===0?this.urlHelper.getHashFragmentParams():(e.charAt(0)==="?"&&(e=e.substr(1)),this.urlHelper.parseQueryString(e))}getTokenFromCode(e,i){let r=new Oo({encoder:new Co}).set("grant_type","authorization_code").set("code",e).set("redirect_uri",i.customRedirectUri||this.redirectUri);if(!this.disablePKCE){let s;this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?s=localStorage.getItem("PKCE_verifier"):s=this._storage.getItem("PKCE_verifier"),s?r=r.set("code_verifier",s):console.warn("No PKCE verifier found in oauth storage!")}return this.fetchAndProcessToken(r,i)}fetchAndProcessToken(e,i){i=i||{},this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint");let r=new Hs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let s=btoa(`${this.clientId}:${this.dummyClientSecret}`);r=r.set("Authorization","Basic "+s)}return this.useHttpBasicAuth||(e=e.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(e=e.set("client_secret",this.dummyClientSecret)),new Promise((s,a)=>{if(this.customQueryParams)for(let o of Object.getOwnPropertyNames(this.customQueryParams))e=e.set(o,this.customQueryParams[o]);this.http.post(this.tokenEndpoint,e,{headers:r}).subscribe(o=>{this.debug("refresh tokenResponse",o),this.storeAccessTokenResponse(o.access_token,o.refresh_token,o.expires_in||this.fallbackAccessTokenExpirationTimeInSec,o.scope,this.extractRecognizedCustomParameters(o)),this.oidc&&o.id_token?this.processIdToken(o.id_token,o.access_token,i.disableNonceCheck).then(l=>{this.storeIdToken(l),this.eventsSubject.next(new Yi("token_received")),this.eventsSubject.next(new Yi("token_refreshed")),s(o)}).catch(l=>{this.eventsSubject.next(new qt("token_validation_error",l)),console.error("Error validating tokens"),console.error(l),a(l)}):(this.eventsSubject.next(new Yi("token_received")),this.eventsSubject.next(new Yi("token_refreshed")),s(o))},o=>{console.error("Error getting token",o),this.eventsSubject.next(new qt("token_refresh_error",o)),a(o)})})}tryLoginImplicitFlow(e=null){e=e||{};let i;e.customHashFragment?i=this.urlHelper.getHashFragmentParams(e.customHashFragment):i=this.urlHelper.getHashFragmentParams(),this.debug("parsed url",i);let r=i.state,[s,a]=this.parseState(r);if(this.state=a,i.error){this.debug("error trying to login"),this.handleLoginError(e,i);let d=new qt("token_error",{},i);return this.eventsSubject.next(d),Promise.reject(d)}let o=i.access_token,l=i.id_token,c=i.session_state,u=i.scope;if(!this.requestAccessToken&&!this.oidc)return Promise.reject("Either requestAccessToken or oidc (or both) must be true.");if(this.requestAccessToken&&!o||this.requestAccessToken&&!e.disableOAuth2StateCheck&&!r||this.oidc&&!l)return Promise.resolve(!1);if(this.sessionChecksEnabled&&!c&&this.logger.warn("session checks (Session Status Change Notification) were activated in the configuration but the id_token does not contain a session_state claim"),this.requestAccessToken&&!e.disableNonceCheck&&!this.validateNonce(s)){let h=new qt("invalid_nonce_in_state",null);return this.eventsSubject.next(h),Promise.reject(h)}return this.requestAccessToken&&this.storeAccessTokenResponse(o,null,i.expires_in||this.fallbackAccessTokenExpirationTimeInSec,u),this.oidc?this.processIdToken(l,o,e.disableNonceCheck).then(d=>e.validationHandler?e.validationHandler({accessToken:o,idClaims:d.idTokenClaims,idToken:d.idToken,state:r}).then(()=>d):d).then(d=>(this.storeIdToken(d),this.storeSessionState(c),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash(),this.eventsSubject.next(new Yi("token_received")),this.callOnTokenReceivedIfExists(e),this.inImplicitFlow=!1,!0)).catch(d=>(this.eventsSubject.next(new qt("token_validation_error",d)),this.logger.error("Error validating tokens"),this.logger.error(d),Promise.reject(d))):(this.eventsSubject.next(new Yi("token_received")),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash(),this.callOnTokenReceivedIfExists(e),Promise.resolve(!0))}parseState(e){let i=e,r="";if(e){let s=e.indexOf(this.config.nonceStateSeparator);s>-1&&(i=e.substr(0,s),r=e.substr(s+this.config.nonceStateSeparator.length))}return[i,r]}validateNonce(e){let i;return this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?i=localStorage.getItem("nonce"):i=this._storage.getItem("nonce"),i!==e?(console.error("Validating access_token failed, wrong state/nonce.",i,e),!1):!0}storeIdToken(e){this._storage.setItem("id_token",e.idToken),this._storage.setItem("id_token_claims_obj",e.idTokenClaimsJson),this._storage.setItem("id_token_expires_at",""+e.idTokenExpiresAt),this._storage.setItem("id_token_stored_at",""+this.dateTimeService.now())}storeSessionState(e){this._storage.setItem("session_state",e)}getSessionState(){return this._storage.getItem("session_state")}handleLoginError(e,i){e.onLoginError&&e.onLoginError(i),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash()}getClockSkewInMsec(e=6e5){return!this.clockSkewInSec&&this.clockSkewInSec!==0?e:this.clockSkewInSec*1e3}processIdToken(e,i,r=!1){let s=e.split("."),a=this.padBase64(s[0]),o=$R(a),l=JSON.parse(o),c=this.padBase64(s[1]),u=$R(c),d=JSON.parse(u),h;if(this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?h=localStorage.getItem("nonce"):h=this._storage.getItem("nonce"),Array.isArray(d.aud)){if(d.aud.every(C=>C!==this.clientId)){let C="Wrong audience: "+d.aud.join(",");return this.logger.warn(C),Promise.reject(C)}}else if(d.aud!==this.clientId){let C="Wrong audience: "+d.aud;return this.logger.warn(C),Promise.reject(C)}if(!d.sub){let C="No sub claim in id_token";return this.logger.warn(C),Promise.reject(C)}if(this.sessionChecksEnabled&&this.silentRefreshSubject&&this.silentRefreshSubject!==d.sub){let C=`After refreshing, we got an id_token for another user (sub). Expected sub: ${this.silentRefreshSubject}, received sub: ${d.sub}`;return this.logger.warn(C),Promise.reject(C)}if(!d.iat){let C="No iat claim in id_token";return this.logger.warn(C),Promise.reject(C)}if(!this.skipIssuerCheck&&d.iss!==this.issuer){let C="Wrong issuer: "+d.iss;return this.logger.warn(C),Promise.reject(C)}if(!r&&d.nonce!==h){let C="Wrong nonce: "+d.nonce;return this.logger.warn(C),Promise.reject(C)}if(Object.prototype.hasOwnProperty.call(this,"responseType")&&(this.responseType==="code"||this.responseType==="id_token")&&(this.disableAtHashCheck=!0),!this.disableAtHashCheck&&this.requestAccessToken&&!d.at_hash){let C="An at_hash is needed!";return this.logger.warn(C),Promise.reject(C)}let m=this.dateTimeService.now(),f=d.iat*1e3,g=d.exp*1e3,v=this.getClockSkewInMsec();if(f-v>=m||g+v-this.decreaseExpirationBySec<=m){let C="Token has expired";return console.error(C),console.error({now:m,issuedAtMSec:f,expiresAtMSec:g}),Promise.reject(C)}let w={accessToken:i,idToken:e,jwks:this.jwks,idTokenClaims:d,idTokenHeader:l,loadKeys:()=>this.loadJwks()};return this.disableAtHashCheck?this.checkSignature(w).then(()=>({idToken:e,idTokenClaims:d,idTokenClaimsJson:u,idTokenHeader:l,idTokenHeaderJson:o,idTokenExpiresAt:g})):this.checkAtHash(w).then(C=>{if(!this.disableAtHashCheck&&this.requestAccessToken&&!C){let k="Wrong at_hash";return this.logger.warn(k),Promise.reject(k)}return this.checkSignature(w).then(()=>{let k=!this.disableAtHashCheck,x={idToken:e,idTokenClaims:d,idTokenClaimsJson:u,idTokenHeader:l,idTokenHeaderJson:o,idTokenExpiresAt:g};return k?this.checkAtHash(w).then(y=>{if(this.requestAccessToken&&!y){let E="Wrong at_hash";return this.logger.warn(E),Promise.reject(E)}else return x}):x})})}getIdentityClaims(){let e=this._storage.getItem("id_token_claims_obj");return e?JSON.parse(e):null}getGrantedScopes(){let e=this._storage.getItem("granted_scopes");return e?JSON.parse(e):null}getIdToken(){return this._storage?this._storage.getItem("id_token"):null}padBase64(e){for(;e.length%4!==0;)e+="=";return e}getAccessToken(){return this._storage?this._storage.getItem("access_token"):null}getRefreshToken(){return this._storage?this._storage.getItem("refresh_token"):null}getAccessTokenExpiration(){return this._storage.getItem("expires_at")?parseInt(this._storage.getItem("expires_at"),10):null}getAccessTokenStoredAt(){return parseInt(this._storage.getItem("access_token_stored_at"),10)}getIdTokenStoredAt(){return parseInt(this._storage.getItem("id_token_stored_at"),10)}getIdTokenExpiration(){return this._storage.getItem("id_token_expires_at")?parseInt(this._storage.getItem("id_token_expires_at"),10):null}hasValidAccessToken(){if(this.getAccessToken()){let e=this._storage.getItem("expires_at"),i=this.dateTimeService.new();return!(e&&parseInt(e,10)-this.decreaseExpirationBySec=0&&this._storage.getItem(e)!==null?JSON.parse(this._storage.getItem(e)):null}authorizationHeader(){return"Bearer "+this.getAccessToken()}logOut(e={},i=""){let r=!1;typeof e=="boolean"&&(r=e,e={});let s=this.getIdToken();if(this._storage.removeItem("access_token"),this._storage.removeItem("id_token"),this._storage.removeItem("refresh_token"),this.saveNoncesInLocalStorage?(localStorage.removeItem("nonce"),localStorage.removeItem("PKCE_verifier")):(this._storage.removeItem("nonce"),this._storage.removeItem("PKCE_verifier")),this._storage.removeItem("expires_at"),this._storage.removeItem("id_token_claims_obj"),this._storage.removeItem("id_token_expires_at"),this._storage.removeItem("id_token_stored_at"),this._storage.removeItem("access_token_stored_at"),this._storage.removeItem("granted_scopes"),this._storage.removeItem("session_state"),this.config.customTokenParameters&&this.config.customTokenParameters.forEach(o=>this._storage.removeItem(o)),this.silentRefreshSubject=null,this.eventsSubject.next(new gr("logout")),!this.logoutUrl||r)return;let a;if(!this.validateUrlForHttps(this.logoutUrl))throw new Error("logoutUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");if(this.logoutUrl.indexOf("{{")>-1)a=this.logoutUrl.replace(/\{\{id_token\}\}/,encodeURIComponent(s)).replace(/\{\{client_id\}\}/,encodeURIComponent(this.clientId));else{let o=new Oo({encoder:new Co});s&&(o=o.set("id_token_hint",s));let l=this.postLogoutRedirectUri||this.redirectUriAsPostLogoutRedirectUriFallback&&this.redirectUri||"";l&&(o=o.set("post_logout_redirect_uri",l),i&&(o=o.set("state",i)));for(let c in e)o=o.set(c,e[c]);a=this.logoutUrl+(this.logoutUrl.indexOf("?")>-1?"&":"?")+o.toString()}this.config.openUri(a)}createAndSaveNonce(){let e=this;return this.createNonce().then(function(i){return e.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?localStorage.setItem("nonce",i):e._storage.setItem("nonce",i),i})}ngOnDestroy(){this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.removeSilentRefreshEventListener();let e=this.document.getElementById(this.silentRefreshIFrameName);e&&e.remove(),this.stopSessionCheckTimer(),this.removeSessionCheckEventListener();let i=this.document.getElementById(this.sessionCheckIFrameName);i&&i.remove()}createNonce(){return new Promise(e=>{if(this.rngUrl)throw new Error("createNonce with rng-web-api has not been implemented so far");let i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=45,s="",a=typeof self>"u"?null:self.crypto||self.msCrypto;if(a){let o=new Uint8Array(r);a.getRandomValues(o),o.map||(o.map=Array.prototype.map),o=o.map(l=>i.charCodeAt(l%i.length)),s=String.fromCharCode.apply(null,o)}else for(;0r.type==="discovery_document_loaded")).subscribe(()=>this.initCodeFlowInternal(e,i))}initCodeFlowInternal(e="",i={}){if(!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");let r={},s=null;typeof i=="string"?s=i:typeof i=="object"&&(r=i),this.createLoginUrl(e,s,null,!1,r).then(this.config.openUri).catch(a=>{console.error("Error in initAuthorizationCodeFlow"),console.error(a)})}createChallangeVerifierPairForPKCE(){return Pt(this,null,function*(){if(!this.crypto)throw new Error("PKCE support for code flow needs a CryptoHander. Did you import the OAuthModule using forRoot() ?");let e=yield this.createNonce(),i=yield this.crypto.calcHash(e,"sha-256");return[VR(i),e]})}extractRecognizedCustomParameters(e){let i=new Map;return this.config.customTokenParameters&&this.config.customTokenParameters.forEach(r=>{e[r]&&i.set(r,JSON.stringify(e[r]))}),i}revokeTokenAndLogout(e={},i=!1){let r=this.revocationEndpoint,s=this.getAccessToken(),a=this.getRefreshToken();if(!s)return Promise.resolve();let o=new Oo({encoder:new Co}),l=new Hs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let c=btoa(`${this.clientId}:${this.dummyClientSecret}`);l=l.set("Authorization","Basic "+c)}if(this.useHttpBasicAuth||(o=o.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(o=o.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let c of Object.getOwnPropertyNames(this.customQueryParams))o=o.set(c,this.customQueryParams[c]);return new Promise((c,u)=>{let d,h;if(s){let m=o.set("token",s).set("token_type_hint","access_token");d=this.http.post(r,m,{headers:l})}else d=_e(null);if(a){let m=o.set("token",a).set("token_type_hint","refresh_token");h=this.http.post(r,m,{headers:l})}else h=_e(null);i&&(d=d.pipe(Zi(m=>m.status===0?_e(null):er(m))),h=h.pipe(Zi(m=>m.status===0?_e(null):er(m)))),yr([d,h]).subscribe(m=>{this.logOut(e),c(m),this.logger.info("Token successfully revoked")},m=>{this.logger.error("Error revoking token",m),this.eventsSubject.next(new qt("token_revoke_error",m)),u(m)})})}clearLocationHash(){location.hash!=""&&(location.hash="")}static{this.\u0275fac=function(i){return new(i||n)(Oe(Ne),Oe(js),Oe(Xp,8),Oe(Jp,8),Oe(Xl,8),Oe(BR),Oe(Zp),Oe(e0,8),Oe(it),Oe(Ad))}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})(),t0=class{},W1=class{handleError(t){return er(t)}},AW=(()=>{class n{constructor(e,i,r){this.oAuthService=e,this.errorHandler=i,this.moduleConfig=r}checkUrl(e){return this.moduleConfig.resourceServer.customUrlValidation?this.moduleConfig.resourceServer.customUrlValidation(e):this.moduleConfig.resourceServer.allowedUrls?!!this.moduleConfig.resourceServer.allowedUrls.find(i=>e.toLowerCase().startsWith(i.toLowerCase())):!0}intercept(e,i){let r=e.url.toLowerCase();return!this.moduleConfig||!this.moduleConfig.resourceServer||!this.checkUrl(r)?i.handle(e):this.moduleConfig.resourceServer.sendAccessToken?ti(_e(this.oAuthService.getAccessToken()).pipe(st(a=>!!a)),this.oAuthService.events.pipe(st(a=>a.type==="token_received"),kC(this.oAuthService.waitForTokenInMsec||0),Zi(()=>_e(null)),Le(()=>this.oAuthService.getAccessToken()))).pipe(jt(1),Pi(a=>{if(a){let o="Bearer "+a,l=e.headers.set("Authorization",o);e=e.clone({headers:l})}return i.handle(e).pipe(Zi(o=>this.errorHandler.handleError(o)))})):i.handle(e).pipe(Zi(a=>this.errorHandler.handleError(a)))}static{this.\u0275fac=function(i){return new(i||n)(Oe(HR),Oe(t0),Oe(Qp,8))}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})();function DW(){return console}function RW(){return typeof sessionStorage<"u"?sessionStorage:new xW}function LW(n=null,t=Yp){return Ma([HR,BR,{provide:Zp,useFactory:DW},{provide:Xp,useFactory:RW},{provide:Jp,useClass:t},{provide:e0,useClass:IW},{provide:t0,useClass:W1},{provide:Qp,useValue:n},{provide:sw,useClass:AW,multi:!0},{provide:Ad,useClass:wW}])}var jR=(()=>{class n{static forRoot(e=null,i=Yp){return{ngModule:n,providers:[LW(e,i)]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=ge({type:n})}static{this.\u0275inj=pe({imports:[es]})}}return n})();var tle=new ee("AUTH_CONFIG");function WR(n){return new je(3e3,!1)}function OW(){return new je(3100,!1)}function NW(){return new je(3101,!1)}function FW(n){return new je(3001,!1)}function PW(n){return new je(3003,!1)}function UW(n){return new je(3004,!1)}function $W(n,t){return new je(3005,!1)}function VW(){return new je(3006,!1)}function BW(){return new je(3007,!1)}function zW(n,t){return new je(3008,!1)}function HW(n){return new je(3002,!1)}function jW(n,t,e,i,r){return new je(3010,!1)}function WW(){return new je(3011,!1)}function qW(){return new je(3012,!1)}function GW(){return new je(3200,!1)}function KW(){return new je(3202,!1)}function YW(){return new je(3013,!1)}function QW(n){return new je(3014,!1)}function ZW(n){return new je(3015,!1)}function XW(n){return new je(3016,!1)}function JW(n,t){return new je(3404,!1)}function eq(n){return new je(3502,!1)}function tq(n){return new je(3503,!1)}function iq(){return new je(3300,!1)}function nq(n){return new je(3504,!1)}function rq(n){return new je(3301,!1)}function sq(n,t){return new je(3302,!1)}function aq(n){return new je(3303,!1)}function oq(n,t){return new je(3400,!1)}function lq(n){return new je(3401,!1)}function cq(n){return new je(3402,!1)}function uq(n,t){return new je(3505,!1)}function xa(n){switch(n.length){case 0:return new Js;case 1:return n[0];default:return new Qc(n)}}function sL(n,t,e=new Map,i=new Map){let r=[],s=[],a=-1,o=null;if(t.forEach(l=>{let c=l.get("offset"),u=c==a,d=u&&o||new Map;l.forEach((h,m)=>{let f=m,g=h;if(m!=="offset")switch(f=n.normalizePropertyName(f,r),g){case Cm:g=e.get(m);break;case Ar:g=i.get(m);break;default:g=n.normalizeStyleValue(m,f,g,r);break}d.set(f,g)}),u||s.push(d),o=d,a=c}),r.length)throw eq(r);return s}function mC(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&q1(e,"start",n)));break;case"done":n.onDone(()=>i(e&&q1(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&q1(e,"destroy",n)));break}}function q1(n,t,e){let i=e.totalTime,r=!!e.disabled,s=fC(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,i??n.totalTime,r),a=n._data;return a!=null&&(s._data=a),s}function fC(n,t,e,i,r="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:s,disabled:!!a}}function Tn(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function qR(n){let t=n.indexOf(":"),e=n.substring(1,t),i=n.slice(t+1);return[e,i]}var dq=typeof document>"u"?null:document.documentElement;function pC(n){let t=n.parentNode||n.host||null;return t===dq?null:t}function hq(n){return n.substring(1,6)=="ebkit"}var wo=null,GR=!1;function mq(n){wo||(wo=fq()||{},GR=wo.style?"WebkitAppearance"in wo.style:!1);let t=!0;return wo.style&&!hq(n)&&(t=n in wo.style,!t&&GR&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in wo.style)),t}function fq(){return typeof document<"u"?document.body:null}function aL(n,t){for(;t;){if(t===n)return!0;t=pC(t)}return!1}function oL(n,t,e){if(e)return Array.from(n.querySelectorAll(t));let i=n.querySelector(t);return i?[i]:[]}var gC=(()=>{class n{validateStyleProperty(e){return mq(e)}containsElement(e,i){return aL(e,i)}getParentElement(e){return pC(e)}query(e,i,r){return oL(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,s,a,o=[],l){return new Js(r,s)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),ko=class{static NOOP=new gC},Mo=class{};var pq=1e3,lL="{{",gq="}}",cL="ng-enter",X1="ng-leave",i0="ng-trigger",o0=".ng-trigger",KR="ng-animating",J1=".ng-animating";function Ls(n){if(typeof n=="number")return n;let t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:eC(parseFloat(t[1]),t[2])}function eC(n,t){switch(t){case"s":return n*pq;default:return n}}function l0(n,t,e){return n.hasOwnProperty("duration")?n:_q(n,t,e)}function _q(n,t,e){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,r,s=0,a="";if(typeof n=="string"){let o=n.match(i);if(o===null)return t.push(WR(n)),{duration:0,delay:0,easing:""};r=eC(parseFloat(o[1]),o[2]);let l=o[3];l!=null&&(s=eC(parseFloat(l),o[4]));let c=o[5];c&&(a=c)}else r=n;if(!e){let o=!1,l=t.length;r<0&&(t.push(OW()),o=!0),s<0&&(t.push(NW()),o=!0),o&&t.splice(l,0,WR(n))}return{duration:r,delay:s,easing:a}}function vq(n){return n.length?n[0]instanceof Map?n:n.map(t=>new Map(Object.entries(t))):[]}function Yr(n,t,e){t.forEach((i,r)=>{let s=_C(r);e&&!e.has(r)&&e.set(r,n.style[s]),n.style[s]=i})}function So(n,t){t.forEach((e,i)=>{let r=_C(i);n.style[r]=""})}function Rd(n){return Array.isArray(n)?n.length==1?n[0]:Ik(n):n}function bq(n,t,e){let i=t.params||{},r=uL(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||e.push(FW(s))})}var tC=new RegExp(`${lL}\\s*(.+?)\\s*${gq}`,"g");function uL(n){let t=[];if(typeof n=="string"){let e;for(;e=tC.exec(n);)t.push(e[1]);tC.lastIndex=0}return t}function Od(n,t,e){let i=`${n}`,r=i.replace(tC,(s,a)=>{let o=t[a];return o==null&&(e.push(PW(a)),o=""),o.toString()});return r==i?n:r}var yq=/-+([a-z0-9])/g;function _C(n){return n.replace(yq,(...t)=>t[1].toUpperCase())}function Cq(n,t){return n===0||t===0}function wq(n,t,e){if(e.size&&t.length){let i=t[0],r=[];if(e.forEach((s,a)=>{i.has(a)||r.push(a),i.set(a,s)}),r.length)for(let s=1;sa.set(o,vC(n,o)))}}return t}function Mn(n,t,e){switch(t.type){case Ze.Trigger:return n.visitTrigger(t,e);case Ze.State:return n.visitState(t,e);case Ze.Transition:return n.visitTransition(t,e);case Ze.Sequence:return n.visitSequence(t,e);case Ze.Group:return n.visitGroup(t,e);case Ze.Animate:return n.visitAnimate(t,e);case Ze.Keyframes:return n.visitKeyframes(t,e);case Ze.Style:return n.visitStyle(t,e);case Ze.Reference:return n.visitReference(t,e);case Ze.AnimateChild:return n.visitAnimateChild(t,e);case Ze.AnimateRef:return n.visitAnimateRef(t,e);case Ze.Query:return n.visitQuery(t,e);case Ze.Stagger:return n.visitStagger(t,e);default:throw UW(t.type)}}function vC(n,t){return window.getComputedStyle(n)[t]}var xq=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),c0=class extends Mo{normalizePropertyName(t,e){return _C(t)}normalizeStyleValue(t,e,i,r){let s="",a=i.toString().trim();if(xq.has(e)&&i!==0&&i!=="0")if(typeof i=="number")s="px";else{let o=i.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&o[1].length==0&&r.push($W(t,i))}return a+s}};var u0="*";function Sq(n,t){let e=[];return typeof n=="string"?n.split(/\s*,\s*/).forEach(i=>kq(i,e,t)):e.push(n),e}function kq(n,t,e){if(n[0]==":"){let l=Mq(n,e);if(typeof l=="function"){t.push(l);return}n=l}let i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return e.push(ZW(n)),t;let r=i[1],s=i[2],a=i[3];t.push(YR(r,a));let o=r==u0&&a==u0;s[0]=="<"&&!o&&t.push(YR(a,r))}function Mq(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}var n0=new Set(["true","1"]),r0=new Set(["false","0"]);function YR(n,t){let e=n0.has(n)||r0.has(n),i=n0.has(t)||r0.has(t);return(r,s)=>{let a=n==u0||n==r,o=t==u0||t==s;return!a&&e&&typeof r=="boolean"&&(a=r?n0.has(n):r0.has(n)),!o&&i&&typeof s=="boolean"&&(o=s?n0.has(t):r0.has(t)),a&&o}}var dL=":self",Tq=new RegExp(`s*${dL}s*,?`,"g");function hL(n,t,e,i){return new iC(n).build(t,e,i)}var QR="",iC=class{_driver;constructor(t){this._driver=t}build(t,e,i){let r=new nC(e);return this._resetContextStyleTimingState(r),Mn(this,Rd(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector=QR,t.collectedStyles=new Map,t.collectedStyles.set(QR,new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0,s=[],a=[];return t.name.charAt(0)=="@"&&e.errors.push(VW()),t.definitions.forEach(o=>{if(this._resetContextStyleTimingState(e),o.type==Ze.State){let l=o,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,s.push(this.visitState(l,e))}),l.name=c}else if(o.type==Ze.Transition){let l=this.visitTransition(o,e);i+=l.queryCount,r+=l.depCount,a.push(l)}else e.errors.push(BW())}),{type:Ze.Trigger,name:t.name,states:s,transitions:a,queryCount:i,depCount:r,options:null}}visitState(t,e){let i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){let s=new Set,a=r||{};i.styles.forEach(o=>{o instanceof Map&&o.forEach(l=>{uL(l).forEach(c=>{a.hasOwnProperty(c)||s.add(c)})})}),s.size&&e.errors.push(zW(t.name,[...s.values()]))}return{type:Ze.State,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;let i=Mn(this,Rd(t.animation),e),r=Sq(t.expr,e.errors);return{type:Ze.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:xo(t.options)}}visitSequence(t,e){return{type:Ze.Sequence,steps:t.steps.map(i=>Mn(this,i,e)),options:xo(t.options)}}visitGroup(t,e){let i=e.currentTime,r=0,s=t.steps.map(a=>{e.currentTime=i;let o=Mn(this,a,e);return r=Math.max(r,e.currentTime),o});return e.currentTime=r,{type:Ze.Group,steps:s,options:xo(t.options)}}visitAnimate(t,e){let i=Dq(t.timings,e.errors);e.currentAnimateTimings=i;let r,s=t.styles?t.styles:ht({});if(s.type==Ze.Keyframes)r=this.visitKeyframes(s,e);else{let a=t.styles,o=!1;if(!a){o=!0;let c={};i.easing&&(c.easing=i.easing),a=ht(c)}e.currentTime+=i.duration+i.delay;let l=this.visitStyle(a,e);l.isEmptyStep=o,r=l}return e.currentAnimateTimings=null,{type:Ze.Animate,timings:i,style:r,options:null}}visitStyle(t,e){let i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){let i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let o of r)typeof o=="string"?o===Ar?i.push(o):e.errors.push(HW(o)):i.push(new Map(Object.entries(o)));let s=!1,a=null;return i.forEach(o=>{if(o instanceof Map&&(o.has("easing")&&(a=o.get("easing"),o.delete("easing")),!s)){for(let l of o.values())if(l.toString().indexOf(lL)>=0){s=!0;break}}}),{type:Ze.Style,styles:i,easing:a,offset:t.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(t,e){let i=e.currentAnimateTimings,r=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{typeof a!="string"&&a.forEach((o,l)=>{let c=e.collectedStyles.get(e.currentQuerySelector),u=c.get(l),d=!0;u&&(s!=r&&s>=u.startTime&&r<=u.endTime&&(e.errors.push(jW(l,u.startTime,u.endTime,s,r)),d=!1),s=u.startTime),d&&c.set(l,{startTime:s,endTime:r}),e.options&&bq(o,e.options,e.errors)})})}visitKeyframes(t,e){let i={type:Ze.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(WW()),i;let r=1,s=0,a=[],o=!1,l=!1,c=0,u=t.steps.map(w=>{let C=this._makeStyleAst(w,e),k=C.offset!=null?C.offset:Aq(C.styles),x=0;return k!=null&&(s++,x=C.offset=k),l=l||x<0||x>1,o=o||x0&&s{let k=h>0?C==m?1:h*C:a[C],x=k*v;e.currentTime=f+g.delay+x,g.duration=x,this._validateStyleAst(w,e),w.offset=k,i.styles.push(w)}),i}visitReference(t,e){return{type:Ze.Reference,animation:Mn(this,Rd(t.animation),e),options:xo(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:Ze.AnimateChild,options:xo(t.options)}}visitAnimateRef(t,e){return{type:Ze.AnimateRef,animation:this.visitReference(t.animation,e),options:xo(t.options)}}visitQuery(t,e){let i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;let[s,a]=Eq(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,Tn(e.collectedStyles,e.currentQuerySelector,new Map);let o=Mn(this,Rd(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Ze.Query,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:a,animation:o,originalSelector:t.selector,options:xo(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(YW());let i=t.timings==="full"?{duration:0,delay:0,easing:"full"}:l0(t.timings,e.errors,!0);return{type:Ze.Stagger,animation:Mn(this,Rd(t.animation),e),timings:i,options:null}}};function Eq(n){let t=!!n.split(/\s*,\s*/).find(e=>e==dL);return t&&(n=n.replace(Tq,"")),n=n.replace(/@\*/g,o0).replace(/@\w+/g,e=>o0+"-"+e.slice(1)).replace(/:animating/g,J1),[n,t]}function Iq(n){return n?j({},n):null}var nC=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(t){this.errors=t}};function Aq(n){if(typeof n=="string")return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){let i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){let e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}function Dq(n,t){if(n.hasOwnProperty("duration"))return n;if(typeof n=="number"){let s=l0(n,t).duration;return G1(s,0,"")}let e=n;if(e.split(/\s+/).some(s=>s.charAt(0)=="{"&&s.charAt(1)=="{")){let s=G1(0,0,"");return s.dynamic=!0,s.strValue=e,s}let r=l0(e,t);return G1(r.duration,r.delay,r.easing)}function xo(n){return n?(n=j({},n),n.params&&(n.params=Iq(n.params))):n={},n}function G1(n,t,e){return{duration:n,delay:t,easing:e}}function bC(n,t,e,i,r,s,a=null,o=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:a,subTimeline:o}}var Nd=class{_map=new Map;get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}},Rq=1,Lq=":enter",Oq=new RegExp(Lq,"g"),Nq=":leave",Fq=new RegExp(Nq,"g");function mL(n,t,e,i,r,s=new Map,a=new Map,o,l,c=[]){return new rC().buildKeyframes(n,t,e,i,r,s,a,o,l,c)}var rC=class{buildKeyframes(t,e,i,r,s,a,o,l,c,u=[]){c=c||new Nd;let d=new sC(t,e,c,r,s,u,[]);d.options=l;let h=l.delay?Ls(l.delay):0;d.currentTimeline.delayNextStep(h),d.currentTimeline.setStyles([a],null,d.errors,l),Mn(this,i,d);let m=d.timelines.filter(f=>f.containsAnimation());if(m.length&&o.size){let f;for(let g=m.length-1;g>=0;g--){let v=m[g];if(v.element===e){f=v;break}}f&&!f.allowOnlyTimelineStyles()&&f.setStyles([o],null,d.errors,l)}return m.length?m.map(f=>f.buildKeyframes()):[bC(e,[],[],[],0,h,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){let i=e.subInstructions.get(e.element);if(i){let r=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,r,r.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){let i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(let r of t){let s=r?.delay;if(s){let a=typeof s=="number"?s:Ls(Od(s,r?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime,a=i.duration!=null?Ls(i.duration):null,o=i.delay!=null?Ls(i.delay):null;return a!==0&&t.forEach(l=>{let c=e.appendInstructionToTimeline(l,a,o);s=Math.max(s,c.duration+c.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),Mn(this,t.animation,e),e.previousNode=t}visitSequence(t,e){let i=e.subContextCount,r=e,s=t.options;if(s&&(s.params||s.delay)&&(r=e.createSubContext(s),r.transformIntoNewTimeline(),s.delay!=null)){r.previousNode.type==Ze.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=d0);let a=Ls(s.delay);r.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>Mn(this,a,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){let i=[],r=e.currentTimeline.currentTime,s=t.options&&t.options.delay?Ls(t.options.delay):0;t.steps.forEach(a=>{let o=e.createSubContext(t.options);s&&o.delayNextStep(s),Mn(this,a,o),r=Math.max(r,o.currentTimeline.currentTime),i.push(o.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){let i=t.strValue,r=e.params?Od(i,e.params,e.errors):i;return l0(r,e.errors)}else return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){let i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());let s=t.style;s.type==Ze.Keyframes?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){let i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();let s=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){let i=e.currentAnimateTimings,r=e.currentTimeline.duration,s=i.duration,o=e.createSubContext().currentTimeline;o.easing=i.easing,t.styles.forEach(l=>{let c=l.offset||0;o.forwardTime(c*s),o.setStyles(l.styles,l.easing,e.errors,e.options),o.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(o),e.transformIntoNewTimeline(r+s),e.previousNode=t}visitQuery(t,e){let i=e.currentTimeline.currentTime,r=t.options||{},s=r.delay?Ls(r.delay):0;s&&(e.previousNode.type===Ze.Style||i==0&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=d0);let a=i,o=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=o.length;let l=null;o.forEach((c,u)=>{e.currentQueryIndex=u;let d=e.createSubContext(t.options,c);s&&d.delayNextStep(s),c===e.element&&(l=d.currentTimeline),Mn(this,t.animation,d),d.currentTimeline.applyStylesToKeyframe();let h=d.currentTimeline.currentTime;a=Math.max(a,h)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){let i=e.parentContext,r=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),o=a*(e.currentQueryTotal-1),l=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":l=o-l;break;case"full":l=i.currentStaggerTime;break}let u=e.currentTimeline;l&&u.delayNextStep(l);let d=u.currentTime;Mn(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-d+(r.startTime-i.currentTimeline.startTime)}},d0={},sC=class n{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=d0;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(t,e,i,r,s,a,o,l){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=a,this.timelines=o,this.currentTimeline=l||new h0(this._driver,e,0),o.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;let i=t,r=this.options;i.duration!=null&&(r.duration=Ls(i.duration)),i.delay!=null&&(r.delay=Ls(i.delay));let s=i.params;if(s){let a=r.params;a||(a=this.options.params={}),Object.keys(s).forEach(o=>{(!e||!a.hasOwnProperty(o))&&(a[o]=Od(s[o],a,this.errors))})}}_copyOptions(){let t={};if(this.options){let e=this.options.params;if(e){let i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){let r=e||this.element,s=new n(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=d0,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){let r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new aC(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,s,a){let o=[];if(r&&o.push(this.element),t.length>0){t=t.replace(Oq,"."+this._enterClassName),t=t.replace(Fq,"."+this._leaveClassName);let l=i!=1,c=this._driver.query(this.element,t,l);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),o.push(...c)}return!s&&o.length==0&&a.push(QW(e)),o}},h0=class n{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){let e=this._keyframes.size===1&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new n(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=Rq,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||Ar),this._currentKeyframe.set(e,Ar);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);let s=r&&r.params||{},a=Pq(t,this._globalTimelineStyles);for(let[o,l]of a){let c=Od(l,s,i);this._pendingStyles.set(o,c),this._localTimelineStyles.has(o)||this._backFill.set(o,this._globalTimelineStyles.get(o)??Ar),this._updateStyle(o,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{let r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();let t=new Set,e=new Set,i=this._keyframes.size===1&&this.duration===0,r=[];this._keyframes.forEach((o,l)=>{let c=new Map([...this._backFill,...o]);c.forEach((u,d)=>{u===Cm?t.add(d):u===Ar&&e.add(d)}),i||c.set("offset",l/this.duration),r.push(c)});let s=[...t.values()],a=[...e.values()];if(i){let o=r[0],l=new Map(o);o.set("offset",0),l.set("offset",1),r=[o,l]}return bC(this.element,r,s,a,this.duration,this.startTime,this.easing,!1)}},aC=class extends h0{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(t,e,i,r,s,a,o=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=o,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){let s=[],a=i+e,o=e/a,l=new Map(t[0]);l.set("offset",0),s.push(l);let c=new Map(t[0]);c.set("offset",ZR(o)),s.push(c);let u=t.length-1;for(let d=1;d<=u;d++){let h=new Map(t[d]),m=h.get("offset"),f=e+m*i;h.set("offset",ZR(f/a)),s.push(h)}i=a,e=0,r="",t=s}return bC(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}};function ZR(n,t=3){let e=Math.pow(10,t-1);return Math.round(n*e)/e}function Pq(n,t){let e=new Map,i;return n.forEach(r=>{if(r==="*"){i??=t.keys();for(let s of i)e.set(s,Ar)}else for(let[s,a]of r)e.set(s,a)}),e}function XR(n,t,e,i,r,s,a,o,l,c,u,d,h){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:o,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:d,errors:h}}var K1={},m0=class{_triggerName;ast;_stateStyles;constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return Uq(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return t!==void 0&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,s,a,o,l,c,u){let d=[],h=this.ast.options&&this.ast.options.params||K1,m=o&&o.params||K1,f=this.buildStyles(i,m,d),g=l&&l.params||K1,v=this.buildStyles(r,g,d),w=new Set,C=new Map,k=new Map,x=r==="void",y={params:fL(g,h),delay:this.ast.options?.delay},E=u?[]:mL(t,e,this.ast.animation,s,a,f,v,y,c,d),T=0;return E.forEach(M=>{T=Math.max(M.duration+M.delay,T)}),d.length?XR(e,this._triggerName,i,r,x,f,v,[],[],C,k,T,d):(E.forEach(M=>{let D=M.element,_=Tn(C,D,new Set);M.preStyleProps.forEach(b=>_.add(b));let p=Tn(k,D,new Set);M.postStyleProps.forEach(b=>p.add(b)),D!==e&&w.add(D)}),XR(e,this._triggerName,i,r,x,f,v,E,[...w.values()],C,k,T))}};function Uq(n,t,e,i,r){return n.some(s=>s(t,e,i,r))}function fL(n,t){let e=j({},t);return Object.entries(n).forEach(([i,r])=>{r!=null&&(e[i]=r)}),e}var oC=class{styles;defaultParams;normalizer;constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){let i=new Map,r=fL(t,this.defaultParams);return this.styles.styles.forEach(s=>{typeof s!="string"&&s.forEach((a,o)=>{a&&(a=Od(a,r,e));let l=this.normalizer.normalizePropertyName(o,e);a=this.normalizer.normalizeStyleValue(o,l,a,e),i.set(o,a)})}),i}};function $q(n,t,e){return new lC(n,t,e)}var lC=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,e.states.forEach(r=>{let s=r.options&&r.options.params||{};this.states.set(r.name,new oC(r.style,s,i))}),JR(this.states,"true","1"),JR(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new m0(t,r,this.states))}),this.fallbackTransition=Vq(t,this.states,this._normalizer)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(a=>a.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}};function Vq(n,t,e){let i=[(a,o)=>!0],r={type:Ze.Sequence,steps:[],options:null},s={type:Ze.Transition,animation:r,matchers:i,options:null,queryCount:0,depCount:0};return new m0(n,s,t)}function JR(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}var Bq=new Nd,cC=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i}register(t,e){let i=[],r=[],s=hL(this._driver,e,i,r);if(i.length)throw tq(i);r.length&&void 0,this._animations.set(t,s)}_buildPlayer(t,e,i){let r=t.element,s=sL(this._normalizer,t.keyframes,e,i);return this._driver.animate(r,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){let r=[],s=this._animations.get(t),a,o=new Map;if(s?(a=mL(this._driver,e,s,cL,X1,new Map,new Map,i,Bq,r),a.forEach(u=>{let d=Tn(o,u.element,new Map);u.postStyleProps.forEach(h=>d.set(h,null))})):(r.push(iq()),a=[]),r.length)throw nq(r);o.forEach((u,d)=>{u.forEach((h,m)=>{u.set(m,this._driver.computeStyle(d,m,Ar))})});let l=a.map(u=>{let d=o.get(u.element);return this._buildPlayer(u,new Map,d)}),c=xa(l);return this._playersById.set(t,c),c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){let e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);let i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){let e=this._playersById.get(t);if(!e)throw rq(t);return e}listen(t,e,i,r){let s=fC(e,"","","");return mC(this._getPlayer(t),i,s,r),()=>{}}command(t,e,i,r){if(i=="register"){this.register(t,r[0]);return}if(i=="create"){let a=r[0]||{};this.create(t,e,a);return}let s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t);break}}},eL="ng-animate-queued",zq=".ng-animate-queued",Y1="ng-animate-disabled",Hq=".ng-animate-disabled",jq="ng-star-inserted",Wq=".ng-star-inserted",qq=[],pL={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Gq={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},_r="__ng_removed",Fd=class{namespaceId;value;options;get params(){return this.options.params}constructor(t,e=""){this.namespaceId=e;let i=t&&t.hasOwnProperty("value"),r=i?t.value:t;if(this.value=Yq(r),i){let s=t,{value:a}=s,o=wC(s,["value"]);this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){let e=t.params;if(e){let i=this.options.params;Object.keys(e).forEach(r=>{i[r]==null&&(i[r]=e[r])})}}},Ld="void",Q1=new Fd(Ld),uC=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+t,Xn(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw sq(i,e);if(i==null||i.length==0)throw aq(e);if(!Qq(i))throw oq(i,e);let s=Tn(this._elementListeners,t,[]),a={name:e,phase:i,callback:r};s.push(a);let o=Tn(this._engine.statesByElement,t,new Map);return o.has(e)||(Xn(t,i0),Xn(t,i0+"-"+e),o.set(e,Q1)),()=>{this._engine.afterFlush(()=>{let l=s.indexOf(a);l>=0&&s.splice(l,1),this._triggers.has(e)||o.delete(e)})}}register(t,e){return this._triggers.has(t)?!1:(this._triggers.set(t,e),!0)}_getTrigger(t){let e=this._triggers.get(t);if(!e)throw lq(t);return e}trigger(t,e,i,r=!0){let s=this._getTrigger(e),a=new Pd(this.id,e,t),o=this._engine.statesByElement.get(t);o||(Xn(t,i0),Xn(t,i0+"-"+e),this._engine.statesByElement.set(t,o=new Map));let l=o.get(e),c=new Fd(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),o.set(e,c),l||(l=Q1),!(c.value===Ld)&&l.value===c.value){if(!Jq(l.params,c.params)){let g=[],v=s.matchStyles(l.value,l.params,g),w=s.matchStyles(c.value,c.params,g);g.length?this._engine.reportError(g):this._engine.afterFlush(()=>{So(t,v),Yr(t,w)})}return}let h=Tn(this._engine.playersByElement,t,[]);h.forEach(g=>{g.namespaceId==this.id&&g.triggerName==e&&g.queued&&g.destroy()});let m=s.matchTransition(l.value,c.value,t,c.params),f=!1;if(!m){if(!r)return;m=s.fallbackTransition,f=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:m,fromState:l,toState:c,player:a,isFallbackTransition:f}),f||(Xn(t,eL),a.onStart(()=>{Jl(t,eL)})),a.onDone(()=>{let g=this.players.indexOf(a);g>=0&&this.players.splice(g,1);let v=this._engine.playersByElement.get(t);if(v){let w=v.indexOf(a);w>=0&&v.splice(w,1)}}),this.players.push(a),h.push(a),a}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);let e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){let i=this._engine.driver.query(t,o0,!0);i.forEach(r=>{if(r[_r])return;let s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(a=>a.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){let s=this._engine.statesByElement.get(t),a=new Map;if(s){let o=[];if(s.forEach((l,c)=>{if(a.set(c,l.value),this._triggers.has(c)){let u=this.trigger(t,c,Ld,r);u&&o.push(u)}}),o.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&xa(o).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){let e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){let r=new Set;e.forEach(s=>{let a=s.name;if(r.has(a))return;r.add(a);let l=this._triggers.get(a).fallbackTransition,c=i.get(a)||Q1,u=new Fd(Ld),d=new Pd(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:l,fromState:c,toState:u,player:d,isFallbackTransition:!0})})}}removeNode(t,e){let i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){let s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)r=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{let s=t[_r];(!s||s===pL)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Xn(t,this._hostClassName)}drainQueuedTransitions(t){let e=[];return this._queue.forEach(i=>{let r=i.player;if(r.destroyed)return;let s=i.element,a=this._elementListeners.get(s);a&&a.forEach(o=>{if(o.name==i.triggerName){let l=fC(s,i.triggerName,i.fromState.value,i.toState.value);l._data=t,mC(i.player,o.phase,l,o.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{let s=i.transition.ast.depCount,a=r.transition.ast.depCount;return s==0||a==0?s-a:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}},dC=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(t,e)=>{};_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i}get queuedPlayers(){let t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){let i=new uC(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){let i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,o=this.driver.getParentElement(e);for(;o;){let l=r.get(o);if(l){let c=i.indexOf(l);i.splice(c+1,0,t),a=!0;break}o=this.driver.getParentElement(o)}a||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);let r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){let e=new Set,i=this.statesByElement.get(t);if(i){for(let r of i.values())if(r.namespaceId){let s=this._fetchNamespace(r.namespaceId);s&&e.add(s)}}return e}trigger(t,e,i,r){if(s0(e)){let s=this._fetchNamespace(t);if(s)return s.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!s0(e))return;let s=e[_r];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;let a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(t){let a=this._fetchNamespace(t);a&&a.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Xn(t,Y1)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Jl(t,Y1))}removeNode(t,e,i){if(s0(e)){let r=t?this._fetchNamespace(t):null;r?r.removeNode(e,i):this.markElementAsRemoved(t,e,!1,i);let s=this.namespacesByHostElement.get(e);s&&s.id!==t&&s.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(t,e,i,r,s){this.collectedLeaveElements.push(e),e[_r]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,r,s){return s0(e)?this._fetchNamespace(t).listen(e,i,r,s):()=>{}}_buildInstruction(t,e,i,r,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,o0,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(e=this.driver.query(t,J1,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){let e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){let e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return xa(this.players).onDone(()=>t());t()})}processLeaveNode(t){let e=t[_r];if(e&&e.setForRemoval){if(t[_r]=pL,e.namespaceId){this.destroyInnerAnimations(t);let i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(Y1)&&this.markElementAsDisabled(t,!1),this.driver.query(t,Hq,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],e.length?xa(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw cq(t)}_flushAnimations(t,e){let i=new Nd,r=[],s=new Map,a=[],o=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(R=>{u.add(R);let O=this.driver.query(R,zq,!0);for(let U=0;U{let U=cL+g++;f.set(O,U),R.forEach(P=>Xn(P,U))});let v=[],w=new Set,C=new Set;for(let R=0;Rw.add(P)):C.add(O))}let k=new Map,x=nL(h,Array.from(w));x.forEach((R,O)=>{let U=X1+g++;k.set(O,U),R.forEach(P=>Xn(P,U))}),t.push(()=>{m.forEach((R,O)=>{let U=f.get(O);R.forEach(P=>Jl(P,U))}),x.forEach((R,O)=>{let U=k.get(O);R.forEach(P=>Jl(P,U))}),v.forEach(R=>{this.processLeaveNode(R)})});let y=[],E=[];for(let R=this._namespaceList.length-1;R>=0;R--)this._namespaceList[R].drainQueuedTransitions(e).forEach(U=>{let P=U.player,W=U.element;if(y.push(P),this.collectedEnterElements.length){let ve=W[_r];if(ve&&ve.setForMove){if(ve.previousTriggersValues&&ve.previousTriggersValues.has(U.triggerName)){let ae=ve.previousTriggersValues.get(U.triggerName),we=this.statesByElement.get(U.element);if(we&&we.has(U.triggerName)){let Ie=we.get(U.triggerName);Ie.value=ae,we.set(U.triggerName,Ie)}}P.destroy();return}}let V=!d||!this.driver.containsElement(d,W),K=k.get(W),Q=f.get(W),q=this._buildInstruction(U,i,Q,K,V);if(q.errors&&q.errors.length){E.push(q);return}if(V){P.onStart(()=>So(W,q.fromStyles)),P.onDestroy(()=>Yr(W,q.toStyles)),r.push(P);return}if(U.isFallbackTransition){P.onStart(()=>So(W,q.fromStyles)),P.onDestroy(()=>Yr(W,q.toStyles)),r.push(P);return}let ce=[];q.timelines.forEach(ve=>{ve.stretchStartingKeyframe=!0,this.disabledNodes.has(ve.element)||ce.push(ve)}),q.timelines=ce,i.append(W,q.timelines);let Re={instruction:q,player:P,element:W};a.push(Re),q.queriedElements.forEach(ve=>Tn(o,ve,[]).push(P)),q.preStyleProps.forEach((ve,ae)=>{if(ve.size){let we=l.get(ae);we||l.set(ae,we=new Set),ve.forEach((Ie,rt)=>we.add(rt))}}),q.postStyleProps.forEach((ve,ae)=>{let we=c.get(ae);we||c.set(ae,we=new Set),ve.forEach((Ie,rt)=>we.add(rt))})});if(E.length){let R=[];E.forEach(O=>{R.push(uq(O.triggerName,O.errors))}),y.forEach(O=>O.destroy()),this.reportError(R)}let T=new Map,M=new Map;a.forEach(R=>{let O=R.element;i.has(O)&&(M.set(O,O),this._beforeAnimationBuild(R.player.namespaceId,R.instruction,T))}),r.forEach(R=>{let O=R.element;this._getPreviousPlayers(O,!1,R.namespaceId,R.triggerName,null).forEach(P=>{Tn(T,O,[]).push(P),P.destroy()})});let D=v.filter(R=>rL(R,l,c)),_=new Map;iL(_,this.driver,C,c,Ar).forEach(R=>{rL(R,l,c)&&D.push(R)});let b=new Map;m.forEach((R,O)=>{iL(b,this.driver,new Set(R),l,Cm)}),D.forEach(R=>{let O=_.get(R),U=b.get(R);_.set(R,new Map([...O?.entries()??[],...U?.entries()??[]]))});let S=[],I=[],A={};a.forEach(R=>{let{element:O,player:U,instruction:P}=R;if(i.has(O)){if(u.has(O)){U.onDestroy(()=>Yr(O,P.toStyles)),U.disabled=!0,U.overrideTotalTime(P.totalTime),r.push(U);return}let W=A;if(M.size>1){let K=O,Q=[];for(;K=K.parentNode;){let q=M.get(K);if(q){W=q;break}Q.push(K)}Q.forEach(q=>M.set(q,W))}let V=this._buildAnimation(U.namespaceId,P,T,s,b,_);if(U.setRealPlayer(V),W===A)S.push(U);else{let K=this.playersByElement.get(W);K&&K.length&&(U.parentPlayer=xa(K)),r.push(U)}}else So(O,P.fromStyles),U.onDestroy(()=>Yr(O,P.toStyles)),I.push(U),u.has(O)&&r.push(U)}),I.forEach(R=>{let O=s.get(R.element);if(O&&O.length){let U=xa(O);R.setRealPlayer(U)}}),r.forEach(R=>{R.parentPlayer?R.syncPlayerEvents(R.parentPlayer):R.destroy()});for(let R=0;R!V.destroyed);W.length?Zq(this,O,W):this.processLeaveNode(O)}return v.length=0,S.forEach(R=>{this.players.push(R),R.onDone(()=>{R.destroy();let O=this.players.indexOf(R);this.players.splice(O,1)}),R.play()}),S}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,s){let a=[];if(e){let o=this.playersByQueriedElement.get(t);o&&(a=o)}else{let o=this.playersByElement.get(t);if(o){let l=!s||s==Ld;o.forEach(c=>{c.queued||!l&&c.triggerName!=r||a.push(c)})}}return(i||r)&&(a=a.filter(o=>!(i&&i!=o.namespaceId||r&&r!=o.triggerName))),a}_beforeAnimationBuild(t,e,i){let r=e.triggerName,s=e.element,a=e.isRemovalTransition?void 0:t,o=e.isRemovalTransition?void 0:r;for(let l of e.timelines){let c=l.element,u=c!==s,d=Tn(i,c,[]);this._getPreviousPlayers(c,u,a,o,e.toState).forEach(m=>{let f=m.getRealPlayer();f.beforeDestroy&&f.beforeDestroy(),m.destroy(),d.push(m)})}So(s,e.fromStyles)}_buildAnimation(t,e,i,r,s,a){let o=e.triggerName,l=e.element,c=[],u=new Set,d=new Set,h=e.timelines.map(f=>{let g=f.element;u.add(g);let v=g[_r];if(v&&v.removedBeforeQueried)return new Js(f.duration,f.delay);let w=g!==l,C=Xq((i.get(g)||qq).map(T=>T.getRealPlayer())).filter(T=>{let M=T;return M.element?M.element===g:!1}),k=s.get(g),x=a.get(g),y=sL(this._normalizer,f.keyframes,k,x),E=this._buildPlayer(f,y,C);if(f.subTimeline&&r&&d.add(g),w){let T=new Pd(t,o,g);T.setRealPlayer(E),c.push(T)}return E});c.forEach(f=>{Tn(this.playersByQueriedElement,f.element,[]).push(f),f.onDone(()=>Kq(this.playersByQueriedElement,f.element,f))}),u.forEach(f=>Xn(f,KR));let m=xa(h);return m.onDestroy(()=>{u.forEach(f=>Jl(f,KR)),Yr(l,e.toStyles)}),d.forEach(f=>{Tn(r,f,[]).push(m)}),m}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new Js(t.duration,t.delay)}},Pd=class{namespaceId;triggerName;element;_player=new Js;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>mC(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){let e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){Tn(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){let e=this._player;e.triggerCallback&&e.triggerCallback(t)}};function Kq(n,t,e){let i=n.get(t);if(i){if(i.length){let r=i.indexOf(e);i.splice(r,1)}i.length==0&&n.delete(t)}return i}function Yq(n){return n??null}function s0(n){return n&&n.nodeType===1}function Qq(n){return n=="start"||n=="done"}function tL(n,t){let e=n.style.display;return n.style.display=t??"none",e}function iL(n,t,e,i,r){let s=[];e.forEach(l=>s.push(tL(l)));let a=[];i.forEach((l,c)=>{let u=new Map;l.forEach(d=>{let h=t.computeStyle(c,d,r);u.set(d,h),(!h||h.length==0)&&(c[_r]=Gq,a.push(c))}),n.set(c,u)});let o=0;return e.forEach(l=>tL(l,s[o++])),a}function nL(n,t){let e=new Map;if(n.forEach(o=>e.set(o,[])),t.length==0)return e;let i=1,r=new Set(t),s=new Map;function a(o){if(!o)return i;let l=s.get(o);if(l)return l;let c=o.parentNode;return e.has(c)?l=c:r.has(c)?l=i:l=a(c),s.set(o,l),l}return t.forEach(o=>{let l=a(o);l!==i&&e.get(l).push(o)}),e}function Xn(n,t){n.classList?.add(t)}function Jl(n,t){n.classList?.remove(t)}function Zq(n,t,e){xa(e).onDone(()=>n.processLeaveNode(t))}function Xq(n){let t=[];return gL(n,t),t}function gL(n,t){for(let e=0;er.add(s)):t.set(n,i),e.delete(n),!0}var ec=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(t,e)=>{};constructor(t,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new dC(t.body,e,i),this._timelineEngine=new cC(t.body,e,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(t,e,i,r,s){let a=t+"-"+r,o=this._triggerCache[a];if(!o){let l=[],c=[],u=hL(this._driver,s,l,c);if(l.length)throw JW(r,l);c.length&&void 0,o=$q(r,u,this._normalizer),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(e,r,o)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i){this._transitionEngine.removeNode(t,e,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if(i.charAt(0)=="@"){let[s,a]=qR(i),o=r;this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,s){if(i.charAt(0)=="@"){let[a,o]=qR(i);return this._timelineEngine.listen(a,e,o,s)}return this._transitionEngine.listen(t,e,i,r,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}};function eG(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=Z1(t[0]),t.length>1&&(i=Z1(t[t.length-1]))):t instanceof Map&&(e=Z1(t)),e||i?new tG(n,e,i):null}var tG=(()=>{class n{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&Yr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Yr(this._element,this._initialStyles),this._endStyles&&(Yr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(So(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(So(this._element,this._endStyles),this._endStyles=null),Yr(this._element,this._initialStyles),this._state=3)}}return n})();function Z1(n){let t=null;return n.forEach((e,i)=>{iG(i)&&(t=t||new Map,t.set(i,e))}),t}function iG(n){return n==="display"||n==="position"}var f0=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(t,e,i,r){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=r,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map;let e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){let e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{r!=="offset"&&t.set(r,this._finished?i:vC(this.element,r))}),this.currentSnapshot=t}triggerCallback(t){let e=t==="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},p0=class{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}containsElement(t,e){return aL(t,e)}getParentElement(t){return pC(t)}query(t,e,i){return oL(t,e,i)}computeStyle(t,e,i){return vC(t,e)}animate(t,e,i,r,s,a=[]){let o=r==0?"both":"forwards",l={duration:i,delay:r,fill:o};s&&(l.easing=s);let c=new Map,u=a.filter(m=>m instanceof f0);Cq(i,r)&&u.forEach(m=>{m.currentSnapshot.forEach((f,g)=>c.set(g,f))});let d=vq(e).map(m=>new Map(m));d=wq(t,d,c);let h=eG(t,d);return new f0(t,d,l,h)}};var a0="@",_L="@.disabled",g0=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.parentNode(e)&&this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){e.charAt(0)==a0&&e==_L?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}},hC=class extends g0{factory;constructor(t,e,i,r,s){super(e,i,r,s),this.factory=t,this.namespaceId=e}setProperty(t,e,i){e.charAt(0)==a0?e.charAt(1)=="."&&e==_L?(i=i===void 0?!0:!!i,this.disableAnimations(t,i)):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if(e.charAt(0)==a0){let r=nG(t),s=e.slice(1),a="";return s.charAt(0)!=a0&&([s,a]=rG(s)),this.engine.listen(this.namespaceId,r,s,a,o=>{let l=o._data||-1;this.factory.scheduleListenerCallback(l,i,o)})}return this.delegate.listen(t,e,i)}};function nG(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}function rG(n){let t=n.indexOf("."),e=n.substring(0,t),i=n.slice(t+1);return[e,i]}var _0=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,e.onRemovalComplete=(r,s)=>{s?.removeChild(null,r)}}createRenderer(t,e){let i="",r=this.delegate.createRenderer(t,e);if(!t||!e?.data?.animation){let c=this._rendererCache,u=c.get(r);if(!u){let d=()=>c.delete(r);u=new g0(i,r,this.engine,d),c.set(r,u)}return u}let s=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,t);let o=c=>{Array.isArray(c)?c.forEach(o):this.engine.registerTrigger(s,a,t,c.name,c)};return e.data.animation.forEach(o),new hC(this,a,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){if(t>=0&&te(i));return}let r=this._animationCallbacksBuffer;r.length==0&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(s=>{let[a,o]=s;a(o)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}};var aG=(()=>{class n extends ec{constructor(e,i,r){super(e,i,r)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||n)(Oe(it),Oe(ko),Oe(Mo))};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function oG(){return new c0}function lG(n,t,e){return new _0(n,t,e)}var bL=[{provide:Mo,useFactory:oG},{provide:ec,useClass:aG},{provide:VC,useFactory:lG,deps:[lw,ec,Ne]}],vL=[{provide:ko,useFactory:()=>new p0},{provide:Ot,useValue:"BrowserAnimations"},...bL],cG=[{provide:ko,useClass:gC},{provide:Ot,useValue:"NoopAnimations"},...bL],yL=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?cG:vL}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:vL,imports:[oc]})}return n})();var uG=[{path:"",component:qk},{path:"mappinglanguage",component:Bm},{path:"CapabilityStatement",component:kk},{path:"igs",component:$A},{path:"settings",component:OM},{path:"transform",component:HA},{path:"validate",component:UR}];function dG(n){return new Eh(n,"./assets/i18n/",".json")}var CL=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=ge({type:n,bootstrap:[ZS]})}static{this.\u0275inj=pe({providers:[ux({loader:{provide:rs,useFactory:dG,deps:[js]}}),{provide:dw,useValue:{coreLibraryLoader:()=>import("./chunk-I6QVUCPC.js"),lineNumbersLoader:()=>import("./chunk-JS5THRTJ.js"),languages:{json:()=>import("./chunk-L46DWUZA.js"),xml:()=>import("./chunk-DY3RCVMQ.js")}}},aw(ow()),Nh,{provide:XC,useValue:window.MATCHBOX_BASE_PATH}],imports:[fT,mw,ox.forRoot(uG,{useHash:!1}),jR.forRoot(),VA,yL,pR.forRoot(),Ck.forRoot()]})}}return n})();var wL={production:!0};wL.production&&void 0;cw().bootstrapModule(CL).catch(n=>console.log(n)); diff --git a/matchbox-server/src/main/resources/static/browser/main-M5IISGXR.js b/matchbox-server/src/main/resources/static/browser/main-M5IISGXR.js new file mode 100644 index 00000000000..6cbc1106e4c --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/main-M5IISGXR.js @@ -0,0 +1,1175 @@ +import{$ as bw,$a as xe,$b as Pw,A as vc,Aa as Di,Ab as Dw,Ac as qw,B as Ai,Ba as Do,Bb as X,Bc as Gw,C as Zr,Ca as lh,Cb as Y,Cc as Jr,D as Ii,Da as ch,Db as Qe,Dc as es,E as rg,Ea as ot,Eb as Fe,Ec as Kw,F as Vt,Fa as xw,Fb as Rw,Fc as Yw,G as mw,Ga as lg,Gb as Et,Gc as Qw,H as To,Ha as uh,Hb as Pe,Hc as kc,I as mr,Ia as Yt,Ib as ke,Ic as zs,J as Eo,Ja as pr,Jb as Me,Jc as Fo,K as ln,Ka as wc,Kb as Lw,Kc as yr,L as sg,La as Sw,Lb as Ow,Lc as Zw,M as fw,Ma as kw,Mb as jt,Mc as Xw,N as ag,Na as $,Nb as B,Nc as Jw,O as pw,Oa as Mn,Ob as He,Oc as ex,P as gw,Pa as Mw,Pb as je,Pc as Hs,Q as Ps,Qa as Ri,Qb as Lo,Qc as tx,R as Ao,Ra as Rt,Rb as Us,Rc as ix,S as Bt,Sa as Ae,Sb as $s,Sc as nx,T as Mt,Ta as dh,Tb as Vs,U as Ye,Ua as ui,Ub as Nw,Uc as rx,V as _w,Va as Tw,Vb as rt,W as kt,Wa as cg,Wb as dg,X as Be,Xa as Ew,Xb as Oo,Y as Ci,Ya as hh,Yb as Fw,Z as ee,Za as le,Zb as En,_ as de,_a as he,_b as Kn,a as St,aa as J,ab as mh,ac as Ma,b as cw,ba as og,bb as Tt,bc as hg,c as dr,ca as Re,cb as oe,cc as Uw,d as tg,da as R,db as Aw,dc as $w,e as ig,ea as Io,eb as fh,ec as Ge,f as ue,fa as yc,fb as ug,fc as _e,g as ci,ga as Sa,gb as Iw,gc as Ft,h as ah,ha as cn,hb as Gn,hc as Yn,i as on,ia as fr,ib as Se,ic as br,j as si,ja as mt,jb as j,jc as gh,k as ge,ka as re,kb as Jt,kc as _h,l as qn,la as se,lb as ye,lc as Vw,m as Ns,ma as Ht,mb as ft,mc as Ze,n as uw,na as Xr,nb as ph,nc as mg,o as dw,oa as Dt,ob as Je,oc as Bw,p as Ne,pa as vw,pb as xc,pc as Sc,q as hr,qa as ut,qb as gr,qc as zw,r as yi,ra as un,rb as _r,rc as Hw,s as ng,sa as yw,sb as P,sc as Bs,t as xa,ta as Cw,tb as U,tc as jw,u as Fs,ua as ce,ub as te,uc as An,v as Mo,va as De,vb as qi,vc as vr,w as oh,wa as Cc,wb as Gi,wc as di,x as Kt,xa as ww,xb as Ro,xc as Ww,y as it,ya as Te,yb as ze,yc as bh,z as hw,za as ka,zb as Tn,zc as No}from"./chunk-JL4BMBRH.js";import{a as H,b as Le,c as ow,d as lw,e as Q,f as Os,g as Lt}from"./chunk-TSRGIXR5.js";var oS=Q((VK,aS)=>{"use strict";aS.exports=n=>encodeURIComponent(n).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)});var hS=Q((BK,dS)=>{"use strict";var uS="%[a-f0-9]{2}",lS=new RegExp("("+uS+")|([^%]+?)","gi"),cS=new RegExp("("+uS+")+","gi");function Xg(n,t){try{return[decodeURIComponent(n.join(""))]}catch{}if(n.length===1)return n;t=t||1;var e=n.slice(0,t),i=n.slice(t);return Array.prototype.concat.call([],Xg(e),Xg(i))}function ZF(n){try{return decodeURIComponent(n)}catch{for(var t=n.match(lS)||[],e=1;e{"use strict";mS.exports=(n,t)=>{if(!(typeof n=="string"&&typeof t=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(t==="")return[n];let e=n.indexOf(t);return e===-1?[n]:[n.slice(0,e),n.slice(e+t.length)]}});var gS=Q((HK,pS)=>{"use strict";pS.exports=function(n,t){for(var e={},i=Object.keys(n),r=Array.isArray(t),s=0;s{"use strict";var JF=oS(),eP=hS(),bS=fS(),tP=gS(),iP=n=>n==null,Jg=Symbol("encodeFragmentIdentifier");function nP(n){switch(n.arrayFormat){case"index":return t=>(e,i)=>{let r=e.length;return i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Wt(t,n),"[",r,"]"].join("")]:[...e,[Wt(t,n),"[",Wt(r,n),"]=",Wt(i,n)].join("")]};case"bracket":return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Wt(t,n),"[]"].join("")]:[...e,[Wt(t,n),"[]=",Wt(i,n)].join("")];case"colon-list-separator":return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Wt(t,n),":list="].join("")]:[...e,[Wt(t,n),":list=",Wt(i,n)].join("")];case"comma":case"separator":case"bracket-separator":{let t=n.arrayFormat==="bracket-separator"?"[]=":"=";return e=>(i,r)=>r===void 0||n.skipNull&&r===null||n.skipEmptyString&&r===""?i:(r=r===null?"":r,i.length===0?[[Wt(e,n),t,Wt(r,n)].join("")]:[[i,Wt(r,n)].join(n.arrayFormatSeparator)])}default:return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,Wt(t,n)]:[...e,[Wt(t,n),"=",Wt(i,n)].join("")]}}function rP(n){let t;switch(n.arrayFormat){case"index":return(e,i,r)=>{if(t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),!t){r[e]=i;return}r[e]===void 0&&(r[e]={}),r[e][t[1]]=i};case"bracket":return(e,i,r)=>{if(t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),!t){r[e]=i;return}if(r[e]===void 0){r[e]=[i];return}r[e]=[].concat(r[e],i)};case"colon-list-separator":return(e,i,r)=>{if(t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),!t){r[e]=i;return}if(r[e]===void 0){r[e]=[i];return}r[e]=[].concat(r[e],i)};case"comma":case"separator":return(e,i,r)=>{let s=typeof i=="string"&&i.includes(n.arrayFormatSeparator),a=typeof i=="string"&&!s&&rs(i,n).includes(n.arrayFormatSeparator);i=a?rs(i,n):i;let o=s||a?i.split(n.arrayFormatSeparator).map(l=>rs(l,n)):i===null?i:rs(i,n);r[e]=o};case"bracket-separator":return(e,i,r)=>{let s=/(\[\])$/.test(e);if(e=e.replace(/\[\]$/,""),!s){r[e]=i&&rs(i,n);return}let a=i===null?[]:i.split(n.arrayFormatSeparator).map(o=>rs(o,n));if(r[e]===void 0){r[e]=a;return}r[e]=[].concat(r[e],a)};default:return(e,i,r)=>{if(r[e]===void 0){r[e]=i;return}r[e]=[].concat(r[e],i)}}}function vS(n){if(typeof n!="string"||n.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Wt(n,t){return t.encode?t.strict?JF(n):encodeURIComponent(n):n}function rs(n,t){return t.decode?eP(n):n}function yS(n){return Array.isArray(n)?n.sort():typeof n=="object"?yS(Object.keys(n)).sort((t,e)=>Number(t)-Number(e)).map(t=>n[t]):n}function CS(n){let t=n.indexOf("#");return t!==-1&&(n=n.slice(0,t)),n}function sP(n){let t="",e=n.indexOf("#");return e!==-1&&(t=n.slice(e)),t}function wS(n){n=CS(n);let t=n.indexOf("?");return t===-1?"":n.slice(t+1)}function _S(n,t){return t.parseNumbers&&!Number.isNaN(Number(n))&&typeof n=="string"&&n.trim()!==""?n=Number(n):t.parseBooleans&&n!==null&&(n.toLowerCase()==="true"||n.toLowerCase()==="false")&&(n=n.toLowerCase()==="true"),n}function xS(n,t){t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t),vS(t.arrayFormatSeparator);let e=rP(t),i=Object.create(null);if(typeof n!="string"||(n=n.trim().replace(/^[?#&]/,""),!n))return i;for(let r of n.split("&")){if(r==="")continue;let[s,a]=bS(t.decode?r.replace(/\+/g," "):r,"=");a=a===void 0?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?a:rs(a,t),e(rs(s,t),a,i)}for(let r of Object.keys(i)){let s=i[r];if(typeof s=="object"&&s!==null)for(let a of Object.keys(s))s[a]=_S(s[a],t);else i[r]=_S(s,t)}return t.sort===!1?i:(t.sort===!0?Object.keys(i).sort():Object.keys(i).sort(t.sort)).reduce((r,s)=>{let a=i[s];return a&&typeof a=="object"&&!Array.isArray(a)?r[s]=yS(a):r[s]=a,r},Object.create(null))}Yi.extract=wS;Yi.parse=xS;Yi.stringify=(n,t)=>{if(!n)return"";t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t),vS(t.arrayFormatSeparator);let e=a=>t.skipNull&&iP(n[a])||t.skipEmptyString&&n[a]==="",i=nP(t),r={};for(let a of Object.keys(n))e(a)||(r[a]=n[a]);let s=Object.keys(r);return t.sort!==!1&&s.sort(t.sort),s.map(a=>{let o=n[a];return o===void 0?"":o===null?Wt(a,t):Array.isArray(o)?o.length===0&&t.arrayFormat==="bracket-separator"?Wt(a,t)+"[]":o.reduce(i(a),[]).join("&"):Wt(a,t)+"="+Wt(o,t)}).filter(a=>a.length>0).join("&")};Yi.parseUrl=(n,t)=>{t=Object.assign({decode:!0},t);let[e,i]=bS(n,"#");return Object.assign({url:e.split("?")[0]||"",query:xS(wS(n),t)},t&&t.parseFragmentIdentifier&&i?{fragmentIdentifier:rs(i,t)}:{})};Yi.stringifyUrl=(n,t)=>{t=Object.assign({encode:!0,strict:!0,[Jg]:!0},t);let e=CS(n.url).split("?")[0]||"",i=Yi.extract(n.url),r=Yi.parse(i,{sort:!1}),s=Object.assign(r,n.query),a=Yi.stringify(s,t);a&&(a=`?${a}`);let o=sP(n.url);return n.fragmentIdentifier&&(o=`#${t[Jg]?Wt(n.fragmentIdentifier,t):n.fragmentIdentifier}`),`${e}${a}${o}`};Yi.pick=(n,t,e)=>{e=Object.assign({parseFragmentIdentifier:!0,[Jg]:!1},e);let{url:i,query:r,fragmentIdentifier:s}=Yi.parseUrl(n,e);return Yi.stringifyUrl({url:i,query:tP(r,t),fragmentIdentifier:s},e)};Yi.exclude=(n,t,e)=>{let i=Array.isArray(t)?r=>!t.includes(r):(r,s)=>!t(r,s);return Yi.pick(n,i,e)}});var MS=Q((t_,kS)=>{t_=kS.exports=aP;t_.getSerialize=SS;function aP(n,t,e,i){return JSON.stringify(n,SS(t,i),e)}function SS(n,t){var e=[],i=[];return t==null&&(t=function(r,s){return e[0]===s?"[Circular ~]":"[Circular ~."+i.slice(0,e.indexOf(s)).join(".")+"]"}),function(r,s){if(e.length>0){var a=e.indexOf(this);~a?e.splice(a+1):e.push(this),~a?i.splice(a,1/0,r):i.push(r),~e.indexOf(s)&&(s=t.call(this,r,s))}else e.push(s);return n==null?s:n.call(this,r,s)}}});var ES=Q((WK,TS)=>{var Xo=1e3,Jo=Xo*60,el=Jo*60,Pa=el*24,oP=Pa*7,lP=Pa*365.25;TS.exports=function(n,t){t=t||{};var e=typeof n;if(e==="string"&&n.length>0)return cP(n);if(e==="number"&&isFinite(n))return t.long?dP(n):uP(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))};function cP(n){if(n=String(n),!(n.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(t){var e=parseFloat(t[1]),i=(t[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return e*lP;case"weeks":case"week":case"w":return e*oP;case"days":case"day":case"d":return e*Pa;case"hours":case"hour":case"hrs":case"hr":case"h":return e*el;case"minutes":case"minute":case"mins":case"min":case"m":return e*Jo;case"seconds":case"second":case"secs":case"sec":case"s":return e*Xo;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function uP(n){var t=Math.abs(n);return t>=Pa?Math.round(n/Pa)+"d":t>=el?Math.round(n/el)+"h":t>=Jo?Math.round(n/Jo)+"m":t>=Xo?Math.round(n/Xo)+"s":n+"ms"}function dP(n){var t=Math.abs(n);return t>=Pa?em(n,t,Pa,"day"):t>=el?em(n,t,el,"hour"):t>=Jo?em(n,t,Jo,"minute"):t>=Xo?em(n,t,Xo,"second"):n+" ms"}function em(n,t,e,i){var r=t>=e*1.5;return Math.round(n/e)+" "+i+(r?"s":"")}});var IS=Q((qK,AS)=>{function hP(n){e.debug=e,e.default=e,e.coerce=l,e.disable=a,e.enable=r,e.enabled=o,e.humanize=ES(),e.destroy=c,Object.keys(n).forEach(u=>{e[u]=n[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let d=0;for(let h=0;h{if(A==="%%")return"%";x++;let E=e.formatters[T];if(typeof E=="function"){let L=g[x];A=E.call(y,L),g.splice(x,1),x--}return A}),e.formatArgs.call(y,g),(y.log||e.log).apply(y,g)}return p.namespace=u,p.useColors=e.useColors(),p.color=e.selectColor(u),p.extend=i,p.destroy=e.destroy,Object.defineProperty(p,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(m!==e.namespaces&&(m=e.namespaces,f=e.enabled(u)),f),set:g=>{h=g}}),typeof e.init=="function"&&e.init(p),p}function i(u,d){let h=e(this.namespace+(typeof d>"u"?":":d)+u);return h.log=this.log,h}function r(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let d=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let h of d)h[0]==="-"?e.skips.push(h.slice(1)):e.names.push(h)}function s(u,d){let h=0,m=0,f=-1,p=0;for(;h"-"+d)].join(",");return e.enable(""),u}function o(u){for(let d of e.skips)if(s(u,d))return!1;for(let d of e.names)if(s(u,d))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return e.enable(e.load()),e}AS.exports=hP});var im=Q((Qi,tm)=>{Qi.formatArgs=fP;Qi.save=pP;Qi.load=gP;Qi.useColors=mP;Qi.storage=_P();Qi.destroy=(()=>{let n=!1;return()=>{n||(n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Qi.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function mP(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function fP(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+tm.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;n.splice(1,0,t,"color: inherit");let e=0,i=0;n[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(e++,r==="%c"&&(i=e))}),n.splice(i,0,t)}Qi.log=console.debug||console.log||(()=>{});function pP(n){try{n?Qi.storage.setItem("debug",n):Qi.storage.removeItem("debug")}catch{}}function gP(){let n;try{n=Qi.storage.getItem("debug")||Qi.storage.getItem("DEBUG")}catch{}return!n&&typeof process<"u"&&"env"in process&&(n=process.env.DEBUG),n}function _P(){try{return localStorage}catch{}}tm.exports=IS()(Qi);var{formatters:bP}=tm.exports;bP.j=function(n){try{return JSON.stringify(n)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var i_=Q((GK,RS)=>{var vP=MS(),ss=im()("fhir-kit-client:error"),tl=im()("fhir-kit-client:info");function nm(n){return vP(n)}function DS(n){return n.raw&&typeof n.raw=="function"?nm(n.raw()):nm(n)}function yP(n){ss.enabled&&(ss("!!! Error"),n.response&&ss(` Status: ${n.response.status}`),n.config&&(ss(` ${n.config.method.toUpperCase()}: ${n.config.url}`),ss(` Headers: ${DS(n.config.headers)}`)),n.response&&n.response.data&&ss(nm(n.response.data)),ss("!!! Request Error"))}function CP(n,t,e){tl.enabled&&(t&&tl(`Request: ${n.toUpperCase()} ${t.toString()}`),tl(`Request Headers: ${DS(e)}`))}function wP(n){tl.enabled&&(tl(`Response: ${n.status}`),n.data&&tl(nm(n.data)))}function xP(n){ss.enabled&&ss(n)}RS.exports={logRequestError:yP,logRequestInfo:CP,logResponseInfo:wP,logError:xP}});var OS=Q((KK,LS)=>{var SP="http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris",{logError:kP}=i_();function MP(n){let t={};try{return n.rest.forEach(e=>{e.security.extension.find(r=>r.url===SP).extension.forEach(r=>{switch(r.url){case"authorize":t.authorizeUrl=new URL(r.valueUri);break;case"token":t.tokenUrl=new URL(r.valueUri);break;case"register":t.registerUrl=new URL(r.valueUri);break;case"manage":t.manageUrl=new URL(r.valueUri);break;default:}})}),t}catch(e){return kP(e),t}}function TP(n){let{authorization_endpoint:t,token_endpoint:e,registration_endpoint:i}=n;return{authorizeUrl:t&&new URL(t),tokenUrl:e&&new URL(e),registerUrl:i&&new URL(i)}}LS.exports={authFromCapability:MP,authFromWellKnown:TP}});var NS=Q((n_,r_)=>{(function(n,t){typeof n_=="object"&&typeof r_<"u"?r_.exports=t():typeof define=="function"&&define.amd?define(t):n.ES6Promise=t()})(n_,function(){"use strict";function n(Z){var me=typeof Z;return Z!==null&&(me==="object"||me==="function")}function t(Z){return typeof Z=="function"}var e=void 0;Array.isArray?e=Array.isArray:e=function(Z){return Object.prototype.toString.call(Z)==="[object Array]"};var i=e,r=0,s=void 0,a=void 0,o=function(me,ve){x[r]=me,x[r+1]=ve,r+=2,r===2&&(a?a(C):T())};function l(Z){a=Z}function c(Z){o=Z}var u=typeof window<"u"?window:void 0,d=u||{},h=d.MutationObserver||d.WebKitMutationObserver,m=typeof self>"u"&&typeof process<"u"&&{}.toString.call(process)==="[object process]",f=typeof Uint8ClampedArray<"u"&&typeof importScripts<"u"&&typeof MessageChannel<"u";function p(){return function(){return process.nextTick(C)}}function g(){return typeof s<"u"?function(){s(C)}:k()}function y(){var Z=0,me=new h(C),ve=document.createTextNode("");return me.observe(ve,{characterData:!0}),function(){ve.data=Z=++Z%2}}function w(){var Z=new MessageChannel;return Z.port1.onmessage=C,function(){return Z.port2.postMessage(0)}}function k(){var Z=setTimeout;return function(){return Z(C,1)}}var x=new Array(1e3);function C(){for(var Z=0;Z{(function(n){var t=function(e){var i=typeof globalThis<"u"&&globalThis||typeof n<"u"&&n||typeof global<"u"&&global||{},r={searchParams:"URLSearchParams"in i,iterable:"Symbol"in i&&"iterator"in Symbol,blob:"FileReader"in i&&"Blob"in i&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in i,arrayBuffer:"ArrayBuffer"in i};function s(v){return v&&DataView.prototype.isPrototypeOf(v)}if(r.arrayBuffer)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],o=ArrayBuffer.isView||function(v){return v&&a.indexOf(Object.prototype.toString.call(v))>-1};function l(v){if(typeof v!="string"&&(v=String(v)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(v)||v==="")throw new TypeError('Invalid character in header field name: "'+v+'"');return v.toLowerCase()}function c(v){return typeof v!="string"&&(v=String(v)),v}function u(v){var _={next:function(){var b=v.shift();return{done:b===void 0,value:b}}};return r.iterable&&(_[Symbol.iterator]=function(){return _}),_}function d(v){this.map={},v instanceof d?v.forEach(function(_,b){this.append(b,_)},this):Array.isArray(v)?v.forEach(function(_){if(_.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+_.length);this.append(_[0],_[1])},this):v&&Object.getOwnPropertyNames(v).forEach(function(_){this.append(_,v[_])},this)}d.prototype.append=function(v,_){v=l(v),_=c(_);var b=this.map[v];this.map[v]=b?b+", "+_:_},d.prototype.delete=function(v){delete this.map[l(v)]},d.prototype.get=function(v){return v=l(v),this.has(v)?this.map[v]:null},d.prototype.has=function(v){return this.map.hasOwnProperty(l(v))},d.prototype.set=function(v,_){this.map[l(v)]=c(_)},d.prototype.forEach=function(v,_){for(var b in this.map)this.map.hasOwnProperty(b)&&v.call(_,this.map[b],b,this)},d.prototype.keys=function(){var v=[];return this.forEach(function(_,b){v.push(b)}),u(v)},d.prototype.values=function(){var v=[];return this.forEach(function(_){v.push(_)}),u(v)},d.prototype.entries=function(){var v=[];return this.forEach(function(_,b){v.push([b,_])}),u(v)},r.iterable&&(d.prototype[Symbol.iterator]=d.prototype.entries);function h(v){if(!v._noBody){if(v.bodyUsed)return Promise.reject(new TypeError("Already read"));v.bodyUsed=!0}}function m(v){return new Promise(function(_,b){v.onload=function(){_(v.result)},v.onerror=function(){b(v.error)}})}function f(v){var _=new FileReader,b=m(_);return _.readAsArrayBuffer(v),b}function p(v){var _=new FileReader,b=m(_),M=/charset=([A-Za-z0-9_-]+)/.exec(v.type),I=M?M[1]:"utf-8";return _.readAsText(v,I),b}function g(v){for(var _=new Uint8Array(v),b=new Array(_.length),M=0;M<_.length;M++)b[M]=String.fromCharCode(_[M]);return b.join("")}function y(v){if(v.slice)return v.slice(0);var _=new Uint8Array(v.byteLength);return _.set(new Uint8Array(v)),_.buffer}function w(){return this.bodyUsed=!1,this._initBody=function(v){this.bodyUsed=this.bodyUsed,this._bodyInit=v,v?typeof v=="string"?this._bodyText=v:r.blob&&Blob.prototype.isPrototypeOf(v)?this._bodyBlob=v:r.formData&&FormData.prototype.isPrototypeOf(v)?this._bodyFormData=v:r.searchParams&&URLSearchParams.prototype.isPrototypeOf(v)?this._bodyText=v.toString():r.arrayBuffer&&r.blob&&s(v)?(this._bodyArrayBuffer=y(v.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):r.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(v)||o(v))?this._bodyArrayBuffer=y(v):this._bodyText=v=Object.prototype.toString.call(v):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||(typeof v=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r.searchParams&&URLSearchParams.prototype.isPrototypeOf(v)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},r.blob&&(this.blob=function(){var v=h(this);if(v)return v;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var v=h(this);return v||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(r.blob)return this.blob().then(f);throw new Error("could not read as ArrayBuffer")}},this.text=function(){var v=h(this);if(v)return v;if(this._bodyBlob)return p(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(g(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},r.formData&&(this.formData=function(){return this.text().then(A)}),this.json=function(){return this.text().then(JSON.parse)},this}var k=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function x(v){var _=v.toUpperCase();return k.indexOf(_)>-1?_:v}function C(v,_){if(!(this instanceof C))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');_=_||{};var b=_.body;if(v instanceof C){if(v.bodyUsed)throw new TypeError("Already read");this.url=v.url,this.credentials=v.credentials,_.headers||(this.headers=new d(v.headers)),this.method=v.method,this.mode=v.mode,this.signal=v.signal,!b&&v._bodyInit!=null&&(b=v._bodyInit,v.bodyUsed=!0)}else this.url=String(v);if(this.credentials=_.credentials||this.credentials||"same-origin",(_.headers||!this.headers)&&(this.headers=new d(_.headers)),this.method=x(_.method||this.method||"GET"),this.mode=_.mode||this.mode||null,this.signal=_.signal||this.signal||function(){if("AbortController"in i){var D=new AbortController;return D.signal}}(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&b)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(b),(this.method==="GET"||this.method==="HEAD")&&(_.cache==="no-store"||_.cache==="no-cache")){var M=/([?&])_=[^&]*/;if(M.test(this.url))this.url=this.url.replace(M,"$1_="+new Date().getTime());else{var I=/\?/;this.url+=(I.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}C.prototype.clone=function(){return new C(this,{body:this._bodyInit})};function A(v){var _=new FormData;return v.trim().split("&").forEach(function(b){if(b){var M=b.split("="),I=M.shift().replace(/\+/g," "),D=M.join("=").replace(/\+/g," ");_.append(decodeURIComponent(I),decodeURIComponent(D))}}),_}function T(v){var _=new d,b=v.replace(/\r?\n[\t ]+/g," ");return b.split("\r").map(function(M){return M.indexOf(` +`)===0?M.substr(1,M.length):M}).forEach(function(M){var I=M.split(":"),D=I.shift().trim();if(D){var O=I.join(":").trim();try{_.append(D,O)}catch(N){console.warn("Response "+N.message)}}}),_}w.call(C.prototype);function E(v,_){if(!(this instanceof E))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(_||(_={}),this.type="default",this.status=_.status===void 0?200:_.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=_.statusText===void 0?"":""+_.statusText,this.headers=new d(_.headers),this.url=_.url||"",this._initBody(v)}w.call(E.prototype),E.prototype.clone=function(){return new E(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},E.error=function(){var v=new E(null,{status:200,statusText:""});return v.ok=!1,v.status=0,v.type="error",v};var L=[301,302,303,307,308];E.redirect=function(v,_){if(L.indexOf(_)===-1)throw new RangeError("Invalid status code");return new E(null,{status:_,headers:{location:v}})},e.DOMException=i.DOMException;try{new e.DOMException}catch{e.DOMException=function(_,b){this.message=_,this.name=b;var M=Error(_);this.stack=M.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function S(v,_){return new Promise(function(b,M){var I=new C(v,_);if(I.signal&&I.signal.aborted)return M(new e.DOMException("Aborted","AbortError"));var D=new XMLHttpRequest;function O(){D.abort()}D.onload=function(){var z={statusText:D.statusText,headers:T(D.getAllResponseHeaders()||"")};I.url.indexOf("file://")===0&&(D.status<200||D.status>599)?z.status=200:z.status=D.status,z.url="responseURL"in D?D.responseURL:z.headers.get("X-Request-URL");var V="response"in D?D.response:D.responseText;setTimeout(function(){b(new E(V,z))},0)},D.onerror=function(){setTimeout(function(){M(new TypeError("Network request failed"))},0)},D.ontimeout=function(){setTimeout(function(){M(new TypeError("Network request timed out"))},0)},D.onabort=function(){setTimeout(function(){M(new e.DOMException("Aborted","AbortError"))},0)};function N(z){try{return z===""&&i.location.href?i.location.href:z}catch{return z}}if(D.open(I.method,N(I.url),!0),I.credentials==="include"?D.withCredentials=!0:I.credentials==="omit"&&(D.withCredentials=!1),"responseType"in D&&(r.blob?D.responseType="blob":r.arrayBuffer&&(D.responseType="arraybuffer")),_&&typeof _.headers=="object"&&!(_.headers instanceof d||i.Headers&&_.headers instanceof i.Headers)){var F=[];Object.getOwnPropertyNames(_.headers).forEach(function(z){F.push(l(z)),D.setRequestHeader(z,c(_.headers[z]))}),I.headers.forEach(function(z,V){F.indexOf(V)===-1&&D.setRequestHeader(V,z)})}else I.headers.forEach(function(z,V){D.setRequestHeader(V,z)});I.signal&&(I.signal.addEventListener("abort",O),D.onreadystatechange=function(){D.readyState===4&&I.signal.removeEventListener("abort",O)}),D.send(typeof I._bodyInit>"u"?null:I._bodyInit)})}return S.polyfill=!0,i.fetch||(i.fetch=S,i.Headers=d,i.Request=C,i.Response=E),e.Headers=d,e.Request=C,e.Response=E,e.fetch=S,Object.defineProperty(e,"__esModule",{value:!0}),e}({})})(typeof self<"u"?self:FS)});var a_=Q((ZK,s_)=>{s_.exports=US;s_.exports.HttpsAgent=US;function US(){}});var qS=Q((XK,WS)=>{NS().polyfill();PS();var{logRequestError:EP,logRequestInfo:zS,logResponseInfo:AP}=i_(),IP={accept:"application/fhir+json"},$S="__response",VS="__request",o_=!1,HS,jS;try{HS=a_(),jS=a_().HttpsAgent,o_=!0}catch{zS("HTTP Agent is not available")}var Kc=new WeakMap;function DP(n,t={}){let e={baseUrl:n,agentOptions:t};return o_?(Kc.get(e)||(n.startsWith("https")?Kc.set(e,{agent:new jS(t)}):Kc.set(e,{agent:new HS(t)})),Kc.get(e)):{}}function BS({status:n,data:t,method:e,headers:i,url:r}){let s={response:{status:n,data:t},config:{method:e,url:r,headers:i}};return EP(s),s}function RP(n){return typeof n=="string"?n:JSON.stringify(n)}WS.exports=class rm{static lcKeys(t){return t&&Object.keys(t).reduce((e,i)=>(e[i.toLowerCase()]=t[i],e),{})}constructor({baseUrl:t,customHeaders:e={},requestOptions:i={},requestSigner:r=void 0}){this.baseUrl=t,this.customHeaders=e,this.baseRequestOptions=i,this.requestSigner=r}set baseUrl(t){if(!t)throw new Error("baseUrl cannot be blank");if(typeof t!="string")throw new Error("baseUrl must be a string");this.baseUrlValue=t}get baseUrl(){return this.baseUrlValue}static responseFor(t){return t[$S]}static requestFor(t){return t[VS]}set bearerToken(t){let e=`Bearer ${t}`;this.authHeader={authorization:e}}requestBuilder(t,e,i,r){let s=Le(H(H({},this.baseRequestOptions),i),{method:t,body:RP(r)}),a={};return o_||(a={keepalive:Object.prototype.hasOwnProperty.call(s,"keepalive")?s.keepalive:!0}),Object.assign(s,a,{headers:new Headers(this.mergeHeaders(i.headers))},DP(this.baseUrl,s)),this.requestSigner&&this.requestSigner(e,s),new Request(e,s)}request(s,a){return Lt(this,arguments,function*(t,e,i={},r){let o=this.expandUrl(e),l=this.requestBuilder(t,o,i,r);zS(t,o,l.headers);let c=yield fetch(l),{status:u,headers:d}=c;AP({status:u,response:c});let h=yield c.text(),m={};if(h)try{m=JSON.parse(h)}catch{throw m=h,BS({status:u,data:m,method:t,headers:d,url:o})}if(!c.ok)throw BS({status:u,data:m,method:t,headers:d,url:o});return Object.defineProperty(m,$S,{writable:!1,enumerable:!1,value:c}),Object.defineProperty(m,VS,{writable:!1,enumerable:!1,value:l}),m})}get(t,e){return Lt(this,null,function*(){return this.request("GET",t,e)})}delete(t,e){return Lt(this,null,function*(){return this.request("DELETE",t,e)})}put(r,s){return Lt(this,arguments,function*(t,e,i={}){let a=H({"content-type":"application/fhir+json"},rm.lcKeys(i.headers)),o=Le(H({},i),{headers:a});return this.request("PUT",t,o,e)})}post(r,s){return Lt(this,arguments,function*(t,e,i={}){let a=H({"content-type":"application/fhir+json"},rm.lcKeys(i.headers)),o=Le(H({},i),{headers:a});return this.request("POST",t,o,e)})}patch(t,e,i){return Lt(this,null,function*(){return this.request("PATCH",t,i,e)})}expandUrl(t=""){return t.toLowerCase().startsWith("http")?t:this.baseUrl.endsWith("/")&&t.startsWith("/")?this.baseUrl+t.slice(1):this.baseUrl.endsWith("/")||t.startsWith("/")?this.baseUrl+t:`${this.baseUrl}/${t}`}mergeHeaders(t){let{lcKeys:e}=rm;return H(H(H(H({},e(IP)),e(this.authHeader)),e(this.customHeaders)),e(t))}}});var KS=Q((eY,GS)=>{GS.exports={fhirReferenceRegEx:/^((http|https):\/\/([A-Za-z0-9\\.:%$]*\/)*)?(Account|ActivityDefinition|AdverseEvent|AllergyIntolerance|Appointment|AppointmentResponse|AuditEvent|Basic|Binary|BiologicallyDerivedProduct|BodySite|BodyStructure|Bundle|CapabilityStatement|CarePlan|CareTeam|CatalogEntry|ChargeItem|ChargeItemDefinition|Claim|ClaimResponse|ClinicalImpression|CodeSystem|Communication|CommunicationRequest|CompartmentDefinition|Composition|ConceptMap|Condition|Conformance|Consent|Contract|Coverage|CoverageEligibilityRequest|CoverageEligibilityResponse|DataElement|DecisionSupportRule|DecisionSupportServiceModule|DetectedIssue|Device|DeviceComponent|DeviceDefinition|DeviceMetric|DeviceRequest|DeviceUseRequest|DeviceUseStatement|DiagnosticOrder|DiagnosticReport|DiagnosticRequest|DocumentManifest|DocumentReference|EffectEvidenceSynthesis|EligibilityRequest|EligibilityResponse|Encounter|Endpoint|EnrollmentRequest|EnrollmentResponse|EntryDefinition|EpisodeOfCare|EventDefinition|Evidence|EvidenceVariable|ExampleScenario|ExpansionProfile|ExplanationOfBenefit|FamilyMemberHistory|Flag|Goal|GraphDefinition|Group|GuidanceRequest|GuidanceResponse|HealthcareService|ImagingExcerpt|ImagingManifest|ImagingObjectSelection|ImagingStudy|Immunization|ImmunizationEvaluation|ImmunizationRecommendation|ImplementationGuide|ImplementationGuideInput|ImplementationGuideOutput|InsurancePlan|Invoice|ItemInstance|Library|Linkage|List|Location|Measure|MeasureReport|Media|Medication|MedicationAdministration|MedicationDispense|MedicationKnowledge|MedicationOrder|MedicationRequest|MedicationStatement|MedicinalProduct|MedicinalProductAuthorization|MedicinalProductClinicals|MedicinalProductContraindication|MedicinalProductDeviceSpec|MedicinalProductIndication|MedicinalProductIngredient|MedicinalProductInteraction|MedicinalProductManufactured|MedicinalProductPackaged|MedicinalProductPharmaceutical|MedicinalProductUndesirableEffect|MessageDefinition|MessageHeader|ModuleDefinition|ModuleMetadata|MolecularSequence|NamingSystem|NutritionOrder|NutritionRequest|Observation|ObservationDefinition|OccupationalData|OperationDefinition|OperationOutcome|Order|OrderResponse|OrderSet|Organization|OrganizationAffiliation|OrganizationRole|Patient|PaymentNotice|PaymentReconciliation|Person|PlanDefinition|Practitioner|PractitionerRole|Procedure|ProcedureRequest|ProcessRequest|ProcessResponse|ProductPlan|Protocol|Provenance|Questionnaire|QuestionnaireResponse|ReferralRequest|RelatedPerson|RequestGroup|ResearchDefinition|ResearchElementDefinition|ResearchStudy|ResearchSubject|RiskAssessment|RiskEvidenceSynthesis|Schedule|SearchParameter|Sequence|ServiceDefinition|ServiceRequest|Slot|Specimen|SpecimenDefinition|StructureDefinition|StructureMap|Subscription|Substance|SubstanceNucleicAcid|SubstancePolymer|SubstanceProtein|SubstanceReferenceInformation|SubstanceSourceMaterial|SubstanceSpecification|SupplyDelivery|SupplyRequest|Task|TerminologyCapabilities|TestReport|TestScript|UserSession|ValueSet|VerificationResult|VisionPrescription)\/[A-Za-z0-9\-.]{1,256}(\/_history\/[A-Za-z0-9\-.]{1,256})?$/}});var l_=Q((tY,QS)=>{var LP=e_(),{fhirReferenceRegEx:YS}=KS();function OP(n){if(!n.match(YS))throw new Error(`${n} is not a recognized FHIR reference`);let t,e=n;n.startsWith("http")&&([,t]=YS.exec(n),e=n.slice(t.length),t.endsWith("/")&&(t=t.slice(0,-1)));let[i,r]=e.split("/");return{baseUrl:t,resourceType:i,id:r}}function NP(n){return!n.startsWith("/")&&!n.includes(":")&&/\S/.test(n)}function FP(n){if(n instanceof Object&&Object.keys(n).length>0)return LP.stringify(n)}QS.exports={createQueryString:FP,splitReference:OP,validResourceType:NP}});var c_=Q((iY,ZS)=>{var PP=(n,t)=>{if(Object.prototype.hasOwnProperty.call(n,"resourceType")){console.warn("WARNING: positional parameters for pagination methods are deprecated and will be removed in the next major version. Call with ({ bundle, options }) rather than (bundle, headers)");let e={bundle:n};return t&&(e.options={headers:t}),e}return n},UP=(n,t)=>t?(console.warn("WARNING: headers is deprecated and will be removed in the next major version. Use options.headers instead."),console.warn(JSON.stringify(t,null," ")),H({headers:t},n)):n;ZS.exports={deprecateHeaders:UP,deprecatePaginationArgs:PP}});var JS=Q((rY,XS)=>{var{splitReference:$P}=l_(),{deprecateHeaders:u_}=c_();XS.exports=class{constructor(n){this.client=n}resolve(){return Lt(this,arguments,function*({reference:n,context:t,headers:e,options:i={}}={}){return t===void 0?n.startsWith("http")?this.resolveAbsoluteReference(n,u_(i,e)):this.client.httpClient.get(n,u_(i,e)):n.startsWith("#")?this.resolveContainedReference(n,t):this.resolveBundleReference(n,t,u_(i,e))})}resolveAbsoluteReference(n,t){return Lt(this,null,function*(){if(n.startsWith(this.client.baseUrl))return this.client.httpClient.get(n,t);let{baseUrl:e,resourceType:i,id:r}=$P(n),s=d_();return new s({baseUrl:e}).read({resourceType:i,id:r,options:t})})}resolveContainedReference(n,t){if(t.contained){let e=n.slice(1),i=t.contained.find(r=>r.id===e);if(i)return i}throw new Error(`Unable to resolve contained reference: ${n}`)}resolveBundleReference(n,t,e){return Lt(this,null,function*(){let i=new RegExp(`(^|/)${n}$`),r=t.entry.find(s=>i.test(s.fullUrl));return r?r.resource:this.resolve({reference:n,options:e})})}}});var tk=Q((oY,ek)=>{var h_=class{constructor(t){this.httpClient=t}nextPage(t,{headers:e}={}){let i=t.link.find(r=>r.relation==="next");return i?this.httpClient.get(i.url,{headers:e}):void 0}prevPage(t,{headers:e}={}){let i=t.link.find(r=>r.relation.match(/^prev(ious)?$/));return i?this.httpClient.get(i.url,{headers:e}):void 0}};ek.exports=h_});var nk=Q((lY,ik)=>{"use strict";var m_=typeof self<"u"?self:typeof window<"u"?window:void 0;if(!m_)throw new Error("Unable to find global scope. Are you sure this is running in the browser?");if(!m_.AbortController)throw new Error('Could not find "AbortController" in the global scope. You need to polyfill it first');ik.exports.AbortController=m_.AbortController});var sk=Q((cY,rk)=>{var{AbortController:VP}=nk(),sm=class{constructor(){this.controller=new VP,this.resolving=!1}addSignalOption(t){return H({signal:this.controller.signal},t)}safeAbort(){this.resolving||this.controller.abort()}},f_=class{constructor(){this.jobs=[],this.numJobs=0}buildJob(){let t=new sm;return this.numJobs=this.jobs.push(t),t}safeAbortOthers(t){t.resolving=!0;for(let e=0,i=this.numJobs;e{var p_=class{constructor(t){this.capabilityStatement=t}serverCan(t){return this.supportFor({capabilityType:"interaction",where:{code:t}})}resourceCan(t,e){return this.supportFor({resourceType:t,capabilityType:"interaction",where:{code:e}})}serverSearch(t){return this.supportFor({capabilityType:"searchParam",where:{name:t}})}resourceSearch(t,e){return this.supportFor({resourceType:t,capabilityType:"searchParam",where:{name:e}})}supportFor({resourceType:t,capabilityType:e,where:i}={}){let r;if(t?r=this.resourceCapabilities({resourceType:t}):r=this.serverCapabilities(),!r)return!1;let s=r[e];if(i&&s){let a=Object.keys(i)[0];return s.find(l=>l[a]===i[a])!==void 0}return s!==void 0}interactionsFor({resourceType:t}={}){let e=this.resourceCapabilities({resourceType:t});return e===void 0?[]:e.interaction.map(i=>i.code)}searchParamsFor({resourceType:t}={}){let e=this.resourceCapabilities({resourceType:t});return e===void 0?[]:e.searchParam===void 0?[]:e.searchParam.map(i=>i.name)}resourceCapabilities({resourceType:t}={}){return this.serverCapabilities().resource.find(r=>r.type===t)}capabilityContents({resourceType:t,capabilityType:e}={}){let i=this.resourceCapabilities({resourceType:t});if(i!==void 0)return i[e]}serverCapabilities(){return this.capabilityStatement.rest.find(t=>t.mode==="server")}};ak.exports=p_});var d_=Q((hY,b_)=>{var BP=e_(),{authFromCapability:zP,authFromWellKnown:lk}=OS(),g_=qS(),HP=JS(),jP=tk(),{createQueryString:ck,validResourceType:Zi}=l_(),{FetchQueue:WP}=sk(),{deprecatePaginationArgs:uk,deprecateHeaders:zt}=c_(),qP=ok(),__=class{constructor({baseUrl:t,customHeaders:e,requestOptions:i,requestSigner:r,bearerToken:s}={}){this.httpClient=new g_({baseUrl:t,customHeaders:e,requestOptions:i,requestSigner:r}),s&&(this.httpClient.bearerToken=s),this.resolver=new HP(this),this.pagination=new jP(this.httpClient)}static httpFor(t){return{request:g_.requestFor(t),response:g_.responseFor(t)}}get baseUrl(){return this.httpClient&&this.httpClient.baseUrl}set baseUrl(t){this.httpClient&&(this.httpClient.baseUrl=t)}get customHeaders(){return this.httpClient.customHeaders}set customHeaders(t){this.httpClient.customHeaders=t}set bearerToken(t){this.httpClient.bearerToken=t}resolve({reference:t,context:e,headers:i,options:r={}}={}){return this.resolver.resolve({reference:t,context:e,options:zt(r,i)})}smartAuthMetadata(){return Lt(this,arguments,function*({headers:t,options:e={}}={}){let i={options:zt(e,t)};i.options.headers||(i.options.headers={}),i.options.headers.accept="application/fhir+json,application/json";let r=this.baseUrl.replace(/\/*$/,"/"),s=new WP,a=s.buildJob(),o=s.buildJob(),l=s.buildJob(),c=[];return new Promise((u,d)=>{function h(m){c.push(m)===s.numJobs&&d(new Error(c.map(f=>f.message).join("; ")))}this.httpClient.request("GET",`${r}.well-known/smart-configuration`,o.addSignalOption(i)).then(m=>(s.safeAbortOthers(o),u(lk(m)))).catch(m=>h(m)),this.capabilityStatement(a.addSignalOption(i)).then(m=>(s.safeAbortOthers(a),u(zP(m)))).catch(m=>h(m)),this.httpClient.request("GET",`${r}.well-known/openid-configuration`,l.addSignalOption(i)).then(m=>(s.safeAbortOthers(l),u(lk(m)))).catch(m=>h(m))})})}capabilityStatement({headers:t,options:e={}}={}){return this.metadata||(this.metadata=this.httpClient.get("metadata",zt(e,t))),this.metadata}request(t,{method:e="GET",options:i={},body:r}={}){return i.method&&i.method!==e&&console.warn(`WARNING: 'options.method' has been specified: ${i.method} but will be ignored. Use 'method' instead.`),this.httpClient.request(e,t,i,r)}read({resourceType:t,id:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}`,zt(r,i))}vread({resourceType:t,id:e,version:i,headers:r,options:s={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}/_history/${i}`,zt(s,r))}create({resourceType:t,body:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.post(t,e,zt(r,i))}delete({resourceType:t,id:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.delete(`${t}/${e}`,zt(r,i))}update({resourceType:t,id:e,searchParams:i,body:r,headers:s,options:a={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);if(e&&i)throw new Error("Conditional update with search params cannot be with id",t);if(i){let o=ck(i);return this.httpClient.put(`${t}?${o}`,r,zt(a,s))}return this.httpClient.put(`${t}/${e}`,r,zt(a,s))}patch({resourceType:t,id:e,JSONPatch:i,headers:r,options:s={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);let a=zt(s,r).headers||{},o=Le(H({},a),{"Content-Type":"application/json-patch+json"});return this.httpClient.patch(`${t}/${e}`,i,Le(H({},s),{headers:o}))}batch({body:t,headers:e,options:i={}}={}){return this.httpClient.post("/",t,zt(i,e))}transaction({body:t,headers:e,options:i={}}={}){return this.httpClient.post("/",t,zt(i,e))}operation({name:t,resourceType:e,id:i,method:r="POST",input:s,options:a={}}={}){let o=["/"];if(e){if(!Zi(e))throw new Error("Invalid resourceType",e);o.push(`${e}/`)}if(i&&o.push(`${i}/`),o.push(`${t.startsWith("$")?t:`$${t}`}`),r.toUpperCase()==="POST")return this.httpClient.post(o.join(""),s,a);if(r.toUpperCase()==="GET")return s&&o.push(`?${BP.stringify(s)}`),this.httpClient.get(o.join(""),a)}nextPage(t,e){let{bundle:i,options:r={}}=uk(t,e);return this.pagination.nextPage(i,r)}prevPage(t,e){let{bundle:i,options:r={}}=uk(t,e);return this.pagination.prevPage(i,r)}search({resourceType:t,compartment:e,searchParams:i,headers:r,options:s={}}={}){if(t&&!Zi(t))throw new Error("Invalid resourceType",t);if(e&&t)return this.compartmentSearch({resourceType:t,compartment:e,searchParams:i,options:zt(s,r)});if(t)return this.resourceSearch({resourceType:t,searchParams:i,options:zt(s,r)});if(i instanceof Object&&Object.keys(i).length>0)return this.systemSearch({searchParams:i,options:zt(s,r)});throw new Error("search requires either searchParams or a resourceType")}resourceSearch({resourceType:t,searchParams:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);let s=t;return r.postSearch&&(s+="/_search"),this.baseSearch({searchPath:s,searchParams:e,headers:i,options:r})}systemSearch({searchParams:t,headers:e,options:i={}}={}){return this.baseSearch({searchPath:"/_search",searchParams:t,headers:e,options:i})}compartmentSearch({resourceType:t,compartment:e,searchParams:i,headers:r,options:s={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);let{resourceType:a,id:o}=e;if(!Zi(a))throw new Error("Invalid compartmentType",a);let l=`/${a}/${o}/${t}`;return s.postSearch&&(l+="/_search"),this.baseSearch({searchPath:l,searchParams:i,headers:r,options:s})}baseSearch({searchPath:t,searchParams:e,headers:i,options:r}){let s=ck(e),a=zt(r,i),o=r.postSearch?"postSearch":"getSearch";return this[o](t,s,a)}postSearch(t,e,i){let s=H(H({},{"Content-Type":"application/x-www-form-urlencoded"}),i.headers),a=Le(H({},i),{headers:s});return this.httpClient.post(t,e,a)}getSearch(t,e,i){let r=t;return e&&(r+=`?${e}`),this.httpClient.get(r,i)}history({resourceType:t,id:e,headers:i,options:r={}}={}){if(t&&!Zi(t))throw new Error("Invalid resourceType",t);return e&&t?this.resourceHistory({resourceType:t,id:e,options:zt(r,i)}):t?this.typeHistory({resourceType:t,options:zt(r,i)}):this.systemHistory({options:zt(r,i)})}resourceHistory({resourceType:t,id:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}/_history`,zt(r,i))}typeHistory({resourceType:t,headers:e,options:i={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/_history`,zt(i,e))}systemHistory({headers:t,options:e={}}={}){return this.httpClient.get("_history",zt(e,t))}};b_.exports=__;b_.exports.CapabilityTool=qP});var D_=Q((Gk,Cm)=>{(function(){var n="ace",t=function(){return this}();if(!t&&typeof window<"u"&&(t=window),!n&&typeof requirejs<"u")return;var e=function(l,c,u){if(typeof l!="string"){e.original?e.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(u=c),e.modules[l]||(e.payloads[l]=u,e.modules[l]=null)};e.modules={},e.payloads={};var i=function(l,c,u){if(typeof c=="string"){var d=a(l,c);if(d!=null)return u&&u(),d}else if(Object.prototype.toString.call(c)==="[object Array]"){for(var h=[],m=0,f=c.length;ma.length)&&(s=a.length),s-=r.length;var o=a.indexOf(r,s);return o!==-1&&o===s}),String.prototype.repeat||i(String.prototype,"repeat",function(r){for(var s="",a=this;r>0;)r&1&&(s+=a),(r>>=1)&&(a+=a);return s}),String.prototype.includes||i(String.prototype,"includes",function(r,s){return this.indexOf(r,s)!=-1}),Object.assign||(Object.assign=function(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");for(var s=Object(r),a=1;a>>0,o=arguments[1],l=o>>0,c=l<0?Math.max(a+l,0):Math.min(l,a),u=arguments[2],d=u===void 0?a:u>>0,h=d<0?Math.max(a+d,0):Math.min(d,a);c0;)a&1&&(o+=s),(a>>=1)&&(s+=s);return o};var i=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(s){return s.replace(i,"")},t.stringTrimRight=function(s){return s.replace(r,"")},t.copyObject=function(s){var a={};for(var o in s)a[o]=s[o];return a},t.copyArray=function(s){for(var a=[],o=0,l=s.length;o65535?2:1}});ace.define("ace/lib/useragent",["require","exports","module"],function(n,t,e){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var i=typeof navigator=="object"?navigator:{},r=(/mac|win|linux/i.exec(i.platform)||["other"])[0].toLowerCase(),s=i.userAgent||"",a=i.appName||"";t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=a=="Microsoft Internet Explorer"||a.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(s.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(s.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(s.split(" Edge/")[1])||void 0,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid});ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(n,t,e){"use strict";var i=n("./useragent"),r="http://www.w3.org/1999/xhtml";t.buildDom=function u(d,h,m){if(typeof d=="string"&&d){var f=document.createTextNode(d);return h&&h.appendChild(f),f}if(!Array.isArray(d))return d&&d.appendChild&&h&&h.appendChild(d),d;if(typeof d[0]!="string"||!d[0]){for(var p=[],g=0;g"u")){if(a){if(h)o();else if(h===!1)return a.push([u,d])}if(!s){var m=h;!h||!h.getRootNode?m=document:(m=h.getRootNode(),(!m||m==h)&&(m=document));var f=m.ownerDocument||m;if(d&&t.hasCssString(d,m))return null;d&&(u+=` +/*# sourceURL=ace/css/`+d+" */");var p=t.createElement("style");p.appendChild(f.createTextNode(u)),d&&(p.id=d),m==f&&(m=t.getDocumentHead(f)),m.insertBefore(p,m.firstChild)}}}if(t.importCssString=l,t.importCssStylsheet=function(u,d){t.buildDom(["link",{rel:"stylesheet",href:u}],t.getDocumentHead(d))},t.$fixPositionBug=function(u){var d=u.getBoundingClientRect();if(u.style.left){var h=parseFloat(u.style.left),m=+d.left;Math.abs(h-m)>1&&(u.style.left=2*h-m+"px")}if(u.style.right){var h=parseFloat(u.style.right),m=window.innerWidth-d.right;Math.abs(h-m)>1&&(u.style.right=2*h-m+"px")}if(u.style.top){var h=parseFloat(u.style.top),m=+d.top;Math.abs(h-m)>1&&(u.style.top=2*h-m+"px")}if(u.style.bottom){var h=parseFloat(u.style.bottom),m=window.innerHeight-d.bottom;Math.abs(h-m)>1&&(u.style.bottom=2*h-m+"px")}},t.scrollbarWidth=function(u){var d=t.createElement("ace_inner");d.style.width="100%",d.style.minWidth="0px",d.style.height="200px",d.style.display="block";var h=t.createElement("ace_outer"),m=h.style;m.position="absolute",m.left="-10000px",m.overflow="hidden",m.width="200px",m.minWidth="0px",m.height="150px",m.display="block",h.appendChild(d);var f=u&&u.documentElement||document&&document.documentElement;if(!f)return 0;f.appendChild(h);var p=d.offsetWidth;m.overflow="scroll";var g=d.offsetWidth;return p===g&&(g=h.clientWidth),f.removeChild(h),p-g},t.computedStyle=function(u,d){return window.getComputedStyle(u,"")||{}},t.setStyle=function(u,d,h){u[d]!==h&&(u[d]=h)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=i.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,i.isChromeOS&&(t.HI_DPI=!1),typeof document<"u"){var c=document.createElement("div");t.HI_DPI&&c.style.transform!==void 0&&(t.HAS_CSS_TRANSFORMS=!0),!i.isEdge&&typeof c.style.animationName<"u"&&(t.HAS_CSS_ANIMATION=!0),c=null}t.HAS_CSS_TRANSFORMS?t.translate=function(u,d,h){u.style.transform="translate("+Math.round(d)+"px, "+Math.round(h)+"px)"}:t.translate=function(u,d,h){u.style.top=Math.round(h)+"px",u.style.left=Math.round(d)+"px"}});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("./dom");t.get=function(r,s){var a=new XMLHttpRequest;a.open("GET",r,!0),a.onreadystatechange=function(){a.readyState===4&&s(a.responseText)},a.send(null)},t.loadScript=function(r,s){var a=i.getDocumentHead(),o=document.createElement("script");o.src=r,a.appendChild(o),o.onload=o.onreadystatechange=function(l,c){(c||!o.readyState||o.readyState=="loaded"||o.readyState=="complete")&&(o=o.onload=o.onreadystatechange=null,c||s())}},t.qualifyURL=function(r){var s=document.createElement("a");return s.href=r,s.href}});ace.define("ace/lib/oop",["require","exports","module"],function(n,t,e){"use strict";t.inherits=function(i,r){i.super_=r,i.prototype=Object.create(r.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(i,r){for(var s in r)i[s]=r[s];return i},t.implement=function(i,r){t.mixin(i,r)}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(n,t,e){"use strict";var i={},r=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(a,o){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var l=this._eventRegistry[a]||[],c=this._defaultHandlers[a];if(!(!l.length&&!c)){(typeof o!="object"||!o)&&(o={}),o.type||(o.type=a),o.stopPropagation||(o.stopPropagation=r),o.preventDefault||(o.preventDefault=s),l=l.slice();for(var u=0;u1&&(p=m[m.length-2]);var y=o[h+"Path"];return y==null?y=o.basePath:f=="/"&&(h=f=""),y&&y.slice(-1)!="/"&&(y+="/"),y+h+f+p+this.get("suffix")},t.setModuleUrl=function(d,h){return o.$moduleUrls[d]=h};var l=function(d,h){if(d==="ace/theme/textmate"||d==="./theme/textmate")return h(null,n("./theme/textmate"));if(c)return c(d,h);console.error("loader is not configured")},c;t.setLoader=function(d){c=d},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(d,h){var m;if(Array.isArray(d))var f=d[0],p=d[1];else if(typeof d=="string")var p=d;var g=function(y){if(y&&!t.$loading[p])return h&&h(y);if(t.$loading[p]||(t.$loading[p]=[]),t.$loading[p].push(h),!(t.$loading[p].length>1)){var w=function(){l(p,function(k,x){x&&(t.$loaded[p]=x),t._emit("load.module",{name:p,module:x});var C=t.$loading[p];t.$loading[p]=null,C.forEach(function(A){A&&A(x)})})};if(!t.get("packaged"))return w();r.loadScript(t.moduleUrl(p,f),w),u()}};if(t.dynamicModules[p])t.dynamicModules[p]().then(function(y){y.default?g(y.default):g(y)});else{try{m=this.$require(p)}catch{}g(m||t.$loaded[p])}},t.$require=function(d){if(typeof e.require=="function"){var h="require";return e[h](d)}},t.setModuleLoader=function(d,h){t.dynamicModules[d]=h};var u=function(){!o.basePath&&!o.workerPath&&!o.modePath&&!o.themePath&&!Object.keys(o.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),u=function(){})};t.version="1.43.5"});ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(n,t,e){"use strict";n("./lib/fixoldbrowsers");var i=n("./config");i.setLoader(function(o,l){n([o],function(c){l(null,c)})});var r=function(){return this||typeof window<"u"&&window}();e.exports=function(o){i.init=s,i.$require=n,o.require=n,typeof define=="function"&&(o.define=define)},s(!0);function s(o){if(!(!r||!r.document)){i.set("packaged",o||n.packaged||e.packaged||r.define&&define.packaged);var l={},c="",u=document.currentScript||document._currentScript,d=u&&u.ownerDocument||document;u&&u.src&&(c=u.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var h=d.getElementsByTagName("script"),m=0;m ["+this.end.row+"/"+this.end.column+"]"},r.prototype.contains=function(s,a){return this.compare(s,a)==0},r.prototype.compareRange=function(s){var a,o=s.end,l=s.start;return a=this.compare(o.row,o.column),a==1?(a=this.compare(l.row,l.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(l.row,l.column),a==-1?-1:a==1?42:0)},r.prototype.comparePoint=function(s){return this.compare(s.row,s.column)},r.prototype.containsRange=function(s){return this.comparePoint(s.start)==0&&this.comparePoint(s.end)==0},r.prototype.intersects=function(s){var a=this.compareRange(s);return a==-1||a==0||a==1},r.prototype.isEnd=function(s,a){return this.end.row==s&&this.end.column==a},r.prototype.isStart=function(s,a){return this.start.row==s&&this.start.column==a},r.prototype.setStart=function(s,a){typeof s=="object"?(this.start.column=s.column,this.start.row=s.row):(this.start.row=s,this.start.column=a)},r.prototype.setEnd=function(s,a){typeof s=="object"?(this.end.column=s.column,this.end.row=s.row):(this.end.row=s,this.end.column=a)},r.prototype.inside=function(s,a){return this.compare(s,a)==0?!(this.isEnd(s,a)||this.isStart(s,a)):!1},r.prototype.insideStart=function(s,a){return this.compare(s,a)==0?!this.isEnd(s,a):!1},r.prototype.insideEnd=function(s,a){return this.compare(s,a)==0?!this.isStart(s,a):!1},r.prototype.compare=function(s,a){return!this.isMultiLine()&&s===this.start.row?athis.end.column?1:0:sthis.end.row?1:this.start.row===s?a>=this.start.column?0:-1:this.end.row===s?a<=this.end.column?0:1:0},r.prototype.compareStart=function(s,a){return this.start.row==s&&this.start.column==a?-1:this.compare(s,a)},r.prototype.compareEnd=function(s,a){return this.end.row==s&&this.end.column==a?1:this.compare(s,a)},r.prototype.compareInside=function(s,a){return this.end.row==s&&this.end.column==a?1:this.start.row==s&&this.start.column==a?-1:this.compare(s,a)},r.prototype.clipRows=function(s,a){if(this.end.row>a)var o={row:a+1,column:0};else if(this.end.rowa)var l={row:a+1,column:0};else if(this.start.row1?(A++,A>4&&(A=1)):A=1,r.isIE){var b=Math.abs(_.clientX-T)>5||Math.abs(_.clientY-E)>5;(!L||b)&&(A=1),L&&clearTimeout(L),L=setTimeout(function(){L=null},w[A-1]||600),A==1&&(T=_.clientX,E=_.clientY)}if(_._clicks=A,k[x]("mousedown",_),A>4)A=0;else if(A>1)return k[x](S[A],_)}Array.isArray(y)||(y=[y]),y.forEach(function(_){d(_,"mousedown",v,C)})};function m(y){return 0|(y.ctrlKey?1:0)|(y.altKey?2:0)|(y.shiftKey?4:0)|(y.metaKey?8:0)}t.getModifierString=function(y){return i.KEY_MODS[m(y)]};function f(y,w,k){var x=m(w);if(!k&&w.code&&(k=i.$codeToKeyCode[w.code]||k),!r.isMac&&s){if(w.getModifierState&&(w.getModifierState("OS")||w.getModifierState("Win"))&&(x|=8),s.altGr)if((3&x)!=3)s.altGr=0;else return;if(k===18||k===17){var C=w.location;if(k===17&&C===1)s[k]==1&&(a=w.timeStamp);else if(k===18&&x===3&&C===2){var A=w.timeStamp-a;A<50&&(s.altGr=!0)}}}if(k in i.MODIFIER_KEYS&&(k=-1),!(!x&&k===13&&w.location===3&&(y(w,x,-k),w.defaultPrevented))){if(r.isChromeOS&&x&8){if(y(w,x,k),w.defaultPrevented)return;x&=-9}return!x&&!(k in i.FUNCTION_KEYS)&&!(k in i.PRINTABLE_KEYS)?!1:y(w,x,k)}}t.addCommandKeyListener=function(y,w,k){var x=null;d(y,"keydown",function(C){s[C.keyCode]=(s[C.keyCode]||0)+1;var A=f(w,C,C.keyCode);return x=C.defaultPrevented,A},k),d(y,"keypress",function(C){x&&(C.ctrlKey||C.altKey||C.shiftKey||C.metaKey)&&(t.stopEvent(C),x=null)},k),d(y,"keyup",function(C){s[C.keyCode]=null},k),s||(p(),d(window,"focus",p))};function p(){s=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!r.isOldIE){var g=1;t.nextTick=function(y,w){w=w||window;var k="zero-timeout-message-"+g++,x=function(C){C.data==k&&(t.stopPropagation(C),h(w,"message",x),y())};d(w,"message",x),w.postMessage(k,"*")}}t.$idleBlocked=!1,t.onIdle=function(y,w){return setTimeout(function k(){t.$idleBlocked?setTimeout(k,100):y()},w)},t.$idleBlockId=null,t.blockIdle=function(y){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},y||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(y){setTimeout(y,17)}});ace.define("ace/clipboard",["require","exports","module"],function(n,t,e){"use strict";var i;e.exports={lineMode:!1,pasteCancelled:function(){return i&&i>Date.now()-50?!0:i=!1},cancel:function(){i=Date.now()}}});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(n,t,e){"use strict";var i=n("../lib/event"),r=n("../config").nls,s=n("../lib/useragent"),a=n("../lib/dom"),o=n("../lib/lang"),l=n("../clipboard"),c=s.isChrome<18,u=s.isIE,d=s.isChrome>63,h=400,m=n("../lib/keys"),f=m.KEY_MODS,p=s.isIOS,g=p?/\s/:/\n/,y=s.isMobile,w=function(){function k(x,C){var A=this;this.host=C,this.text=a.createElement("textarea"),this.text.className="ace_text-input",this.text.setAttribute("wrap","off"),this.text.setAttribute("autocomplete","off"),this.text.setAttribute("autocorrect","off"),this.text.setAttribute("autocapitalize","off"),this.text.setAttribute("spellcheck","false"),this.text.style.opacity="0",x.insertBefore(this.text,x.firstChild),this.copied=!1,this.pasted=!1,this.inComposition=!1,this.sendingText=!1,this.tempStyle="",y||(this.text.style.fontSize="1px"),this.commandMode=!1,this.ignoreFocusEvents=!1,this.lastValue="",this.lastSelectionStart=0,this.lastSelectionEnd=0,this.lastRestoreEnd=0,this.rowStart=Number.MAX_SAFE_INTEGER,this.rowEnd=Number.MIN_SAFE_INTEGER,this.numberOfExtraLines=0;try{this.$isFocused=document.activeElement===this.text}catch{}this.cancelComposition=this.cancelComposition.bind(this),this.setAriaOptions({role:"textbox"}),i.addListener(this.text,"blur",function(T){A.ignoreFocusEvents||(C.onBlur(T),A.$isFocused=!1)},C),i.addListener(this.text,"focus",function(T){if(!A.ignoreFocusEvents){if(A.$isFocused=!0,s.isEdge)try{if(!document.hasFocus())return}catch{}C.onFocus(T),s.isEdge?setTimeout(A.resetSelection.bind(A)):A.resetSelection()}},C),this.$focusScroll=!1,C.on("beforeEndOperation",function(){var T=C.curOp,E=T&&T.command&&T.command.name;if(E!="insertstring"){var L=E&&(T.docChanged||T.selectionChanged);A.inComposition&&L&&(A.lastValue=A.text.value="",A.onCompositionEnd()),A.resetSelection()}}),C.on("changeSelection",this.setAriaLabel.bind(this)),this.resetSelection=p?this.$resetSelectionIOS:this.$resetSelection,this.$isFocused&&C.onFocus(),this.inputHandler=null,this.afterContextMenu=!1,i.addCommandKeyListener(this.text,function(T,E,L){if(!A.inComposition)return C.onCommandKey(T,E,L)},C),i.addListener(this.text,"select",this.onSelect.bind(this),C),i.addListener(this.text,"input",this.onInput.bind(this),C),i.addListener(this.text,"cut",this.onCut.bind(this),C),i.addListener(this.text,"copy",this.onCopy.bind(this),C),i.addListener(this.text,"paste",this.onPaste.bind(this),C),(!("oncut"in this.text)||!("oncopy"in this.text)||!("onpaste"in this.text))&&i.addListener(x,"keydown",function(T){if(!(s.isMac&&!T.metaKey||!T.ctrlKey))switch(T.keyCode){case 67:A.onCopy(T);break;case 86:A.onPaste(T);break;case 88:A.onCut(T);break}},C),this.syncComposition=o.delayedCall(this.onCompositionUpdate.bind(this),50).schedule.bind(null,null),i.addListener(this.text,"compositionstart",this.onCompositionStart.bind(this),C),i.addListener(this.text,"compositionupdate",this.onCompositionUpdate.bind(this),C),i.addListener(this.text,"keyup",this.onKeyup.bind(this),C),i.addListener(this.text,"keydown",this.syncComposition.bind(this),C),i.addListener(this.text,"compositionend",this.onCompositionEnd.bind(this),C),this.closeTimeout,i.addListener(this.text,"mouseup",this.$onContextMenu.bind(this),C),i.addListener(this.text,"mousedown",function(T){T.preventDefault(),A.onContextMenuClose()},C),i.addListener(C.renderer.scroller,"contextmenu",this.$onContextMenu.bind(this),C),i.addListener(this.text,"contextmenu",this.$onContextMenu.bind(this),C),p&&this.addIosSelectionHandler(x,C,this.text)}return k.prototype.addIosSelectionHandler=function(x,C,A){var T=this,E=null,L=!1;A.addEventListener("keydown",function(v){E&&clearTimeout(E),L=!0},!0),A.addEventListener("keyup",function(v){E=setTimeout(function(){L=!1},100)},!0);var S=function(v){if(document.activeElement===A&&!(L||T.inComposition||C.$mouseHandler.isMousePressed)&&!T.copied){var _=A.selectionStart,b=A.selectionEnd,M=null,I=0;if(_==0?M=m.up:_==1?M=m.home:b>T.lastSelectionEnd&&T.lastValue[b]==` +`?M=m.end:_T.lastSelectionEnd&&T.lastValue.slice(0,b).split(` +`).length>2?M=m.down:b>T.lastSelectionEnd&&T.lastValue[b-1]==" "?(M=m.right,I=f.option):(b>T.lastSelectionEnd||b==T.lastSelectionEnd&&T.lastSelectionEnd!=T.lastSelectionStart&&_==b)&&(M=m.right),_!==b&&(I|=f.shift),M){var D=C.onCommandKey({},I,M);if(!D&&C.commands){M=m.keyCodeToString(M);var O=C.commands.findKeyCommand(I,M);O&&C.execCommand(O)}T.lastSelectionStart=_,T.lastSelectionEnd=b,T.resetSelection("")}}};document.addEventListener("selectionchange",S),C.on("destroy",function(){document.removeEventListener("selectionchange",S)})},k.prototype.onContextMenuClose=function(){var x=this;clearTimeout(this.closeTimeout),this.closeTimeout=setTimeout(function(){x.tempStyle&&(x.text.style.cssText=x.tempStyle,x.tempStyle=""),x.host.renderer.$isMousePressed=!1,x.host.renderer.$keepTextAreaAtCursor&&x.host.renderer.$moveTextAreaToCursor()},0)},k.prototype.$onContextMenu=function(x){this.host.textInput.onContextMenu(x),this.onContextMenuClose()},k.prototype.onKeyup=function(x){x.keyCode==27&&this.text.value.lengthh+100||g.test(A)||y&&this.lastSelectionStart<1&&this.lastSelectionStart==this.lastSelectionEnd)&&this.resetSelection()},k.prototype.sendText=function(x,C){if(this.afterContextMenu&&(this.afterContextMenu=!1),this.pasted)return this.resetSelection(),x&&this.host.onPaste(x),this.pasted=!1,"";for(var A=this.text.selectionStart,T=this.text.selectionEnd,E=this.lastSelectionStart,L=this.lastValue.length-this.lastSelectionEnd,S=x,v=x.length-A,_=x.length-T,b=0;E>0&&this.lastValue[b]==x[b];)b++,E--;for(S=S.slice(b),b=1;L>0&&this.lastValue.length-b>this.lastSelectionStart-1&&this.lastValue[this.lastValue.length-b]==x[x.length-b];)b++,L--;v-=b-1,_-=b-1;var M=S.length-b+1;if(M<0&&(E=-M,M=0),S=S.slice(0,M),!C&&!S&&!v&&!E&&!L&&!_)return"";this.sendingText=!0;var I=!1;return s.isAndroid&&S==". "&&(S=" ",I=!0),S&&!E&&!L&&!v&&!_||this.commandMode?this.host.onTextInput(S):this.host.onTextInput(S,{extendLeft:E,extendRight:L,restoreStart:v,restoreEnd:_}),this.sendingText=!1,this.lastValue=x,this.lastSelectionStart=A,this.lastSelectionEnd=T,this.lastRestoreEnd=_,I?` +`:S},k.prototype.onSelect=function(x){var C=this;if(!this.inComposition){var A=function(T){return T.selectionStart===0&&T.selectionEnd>=C.lastValue.length&&T.value===C.lastValue&&C.lastValue&&T.selectionEnd!==C.lastSelectionEnd};this.copied?this.copied=!1:A(this.text)?(this.host.selectAll(),this.resetSelection()):y&&this.text.selectionStart!=this.lastSelectionStart&&this.resetSelection()}},k.prototype.$resetSelectionIOS=function(x){if(!(!this.$isFocused||this.copied&&!x||this.sendingText)){x||(x="");var C=` + ab`+x+`cde fg +`;C!=this.text.value&&(this.text.value=this.lastValue=C);var A=4,T=4+(x.length||(this.host.selection.isEmpty()?0:1));(this.lastSelectionStart!=A||this.lastSelectionEnd!=T)&&this.text.setSelectionRange(A,T),this.lastSelectionStart=A,this.lastSelectionEnd=T}},k.prototype.$resetSelection=function(){var x=this;if(!(this.inComposition||this.sendingText)&&!(!this.$isFocused&&!this.afterContextMenu)){this.inComposition=!0;var C=0,A=0,T="",E=function(O,N){for(var F=N,z=1;z<=O-x.rowStart&&z<2*x.numberOfExtraLines+1;z++)F+=x.host.session.getLine(O-z).length+1;return F};if(this.host.session){var L=this.host.selection,S=L.getRange(),v=L.cursor.row;v===this.rowEnd+1?(this.rowStart=this.rowEnd+1,this.rowEnd=this.rowStart+2*this.numberOfExtraLines):v===this.rowStart-1?(this.rowEnd=this.rowStart-1,this.rowStart=this.rowEnd-2*this.numberOfExtraLines):(vthis.rowEnd+1)&&(this.rowStart=v>this.numberOfExtraLines?v-this.numberOfExtraLines:0,this.rowEnd=v>this.numberOfExtraLines?v+this.numberOfExtraLines:2*this.numberOfExtraLines);for(var _=[],b=this.rowStart;b<=this.rowEnd;b++)_.push(this.host.session.getLine(b));if(T=_.join(` +`),C=E(S.start.row,S.start.column),A=E(S.end.row,S.end.column),S.start.rowthis.rowEnd){var I=this.host.session.getLine(this.rowEnd+1);A=S.end.row>this.rowEnd+1?I.length:S.end.column,A+=T.length+1,T=T+` +`+I}else y&&v>0&&(T=` +`+T,A+=1,C+=1);T.length>h&&(C1),u.preventDefault()},c.prototype.startSelect=function(u,d){u=u||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var h=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?h.selection.selectToPosition(u):d||h.selection.moveToPosition(u),d||this.select(),h.setStyle("ace_selecting"),this.setState("select"))},c.prototype.select=function(){var u,d=this.editor,h=d.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(h);if(m==-1)u=this.$clickSelection.end;else if(m==1)u=this.$clickSelection.start;else{var f=l(this.$clickSelection,h,d.session);h=f.cursor,u=f.anchor}d.selection.setSelectionAnchor(u.row,u.column)}d.selection.selectToPosition(h),d.renderer.scrollCursorIntoView()},c.prototype.extendSelectionBy=function(u){var d,h=this.editor,m=h.renderer.screenToTextCoordinates(this.x,this.y),f=h.selection[u](m.row,m.column);if(this.$clickSelection){var p=this.$clickSelection.comparePoint(f.start),g=this.$clickSelection.comparePoint(f.end);if(p==-1&&g<=0)d=this.$clickSelection.end,(f.end.row!=m.row||f.end.column!=m.column)&&(m=f.start);else if(g==1&&p>=0)d=this.$clickSelection.start,(f.start.row!=m.row||f.start.column!=m.column)&&(m=f.end);else if(p==-1&&g==1)m=f.end,d=f.start;else{var y=l(this.$clickSelection,m,h.session);m=y.cursor,d=y.anchor}h.selection.setSelectionAnchor(d.row,d.column)}h.selection.selectToPosition(m),h.renderer.scrollCursorIntoView()},c.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},c.prototype.focusWait=function(){var u=o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),d=Date.now();(u>r||d-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},c.prototype.onDoubleClick=function(u){var d=u.getDocumentPosition(),h=this.editor,m=h.session,f=m.getBracketRange(d);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=h.selection.getWordRange(d.row,d.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},c.prototype.onTripleClick=function(u){var d=u.getDocumentPosition(),h=this.editor;this.setState("selectByLines");var m=h.getSelectionRange();m.isMultiLine()&&m.contains(d.row,d.column)?(this.$clickSelection=h.selection.getLineRange(m.start.row),this.$clickSelection.end=h.selection.getLineRange(m.end.row).end):this.$clickSelection=h.selection.getLineRange(d.row),this.select()},c.prototype.onQuadClick=function(u){var d=this.editor;d.selectAll(),this.$clickSelection=d.getSelectionRange(),this.setState("selectAll")},c.prototype.onMouseWheel=function(u){if(!u.getAccelKey()){u.getShiftKey()&&u.wheelY&&!u.wheelX&&(u.wheelX=u.wheelY,u.wheelY=0);var d=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var h=this.$lastScroll,m=u.domEvent.timeStamp,f=m-h.t,p=f?u.wheelX/f:h.vx,g=f?u.wheelY/f:h.vy;f=1&&d.renderer.isScrollableBy(u.wheelX*u.speed,0)&&(w=!0),y<=1&&d.renderer.isScrollableBy(0,u.wheelY*u.speed)&&(w=!0),w)h.allowed=m;else if(m-h.alloweds.clientHeight;a||r.preventDefault()}});ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var f=function(p,g){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,w){y.__proto__=w}||function(y,w){for(var k in w)Object.prototype.hasOwnProperty.call(w,k)&&(y[k]=w[k])},f(p,g)};return function(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");f(p,g);function y(){this.constructor=p}p.prototype=g===null?Object.create(g):(y.prototype=g.prototype,new y)}}(),r=this&&this.__values||function(f){var p=typeof Symbol=="function"&&Symbol.iterator,g=p&&f[p],y=0;if(g)return g.call(f);if(f&&typeof f.length=="number")return{next:function(){return f&&y>=f.length&&(f=void 0),{value:f&&f[y++],done:!f}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("./lib/dom"),a=n("./lib/event"),o=n("./range").Range,l=n("./lib/scroll").preventParentScroll,c="ace_tooltip",u=function(){function f(p){this.isOpen=!1,this.$element=null,this.$parentNode=p}return f.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},f.prototype.getElement=function(){return this.$element||this.$init()},f.prototype.setText=function(p){this.getElement().textContent=p},f.prototype.setHtml=function(p){this.getElement().innerHTML=p},f.prototype.setPosition=function(p,g){this.getElement().style.left=p+"px",this.getElement().style.top=g+"px"},f.prototype.setClassName=function(p){s.addCssClass(this.getElement(),p)},f.prototype.setTheme=function(p){this.theme&&(this.theme.isDark&&s.removeCssClass(this.getElement(),"ace_dark"),this.theme.cssClass&&s.removeCssClass(this.getElement(),this.theme.cssClass)),p.isDark&&s.addCssClass(this.getElement(),"ace_dark"),p.cssClass&&s.addCssClass(this.getElement(),p.cssClass),this.theme={isDark:p.isDark,cssClass:p.cssClass}},f.prototype.show=function(p,g,y){p!=null&&this.setText(p),g!=null&&y!=null&&this.setPosition(g,y),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},f.prototype.hide=function(p){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},f.prototype.getHeight=function(){return this.getElement().offsetHeight},f.prototype.getWidth=function(){return this.getElement().offsetWidth},f.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},f}(),d=function(){function f(){this.popups=[]}return f.prototype.addPopup=function(p){this.popups.push(p),this.updatePopups()},f.prototype.removePopup=function(p){var g=this.popups.indexOf(p);g!==-1&&(this.popups.splice(g,1),this.updatePopups())},f.prototype.updatePopups=function(){var p,g,y,w;this.popups.sort(function(v,_){return _.priority-v.priority});var k=[];try{for(var x=r(this.popups),C=x.next();!C.done;C=x.next()){var A=C.value,T=!0;try{for(var E=(y=void 0,r(k)),L=E.next();!L.done;L=E.next()){var S=L.value;if(this.doPopupsOverlap(S,A)){T=!1;break}}}catch(v){y={error:v}}finally{try{L&&!L.done&&(w=E.return)&&w.call(E)}finally{if(y)throw y.error}}T?k.push(A):A.hide()}}catch(v){p={error:v}}finally{try{C&&!C.done&&(g=x.return)&&g.call(x)}finally{if(p)throw p.error}}},f.prototype.doPopupsOverlap=function(p,g){var y=p.getElement().getBoundingClientRect(),w=g.getElement().getBoundingClientRect();return y.leftw.left&&y.topw.top},f}(),h=new d;t.popupManager=h,t.Tooltip=u;var m=function(f){i(p,f);function p(g){g===void 0&&(g=document.body);var y=f.call(this,g)||this;y.timeout=void 0,y.lastT=0,y.idleTime=350,y.lastEvent=void 0,y.onMouseOut=y.onMouseOut.bind(y),y.onMouseMove=y.onMouseMove.bind(y),y.waitForHover=y.waitForHover.bind(y),y.hide=y.hide.bind(y);var w=y.getElement();return w.style.whiteSpace="pre-wrap",w.style.pointerEvents="auto",w.addEventListener("mouseout",y.onMouseOut),w.tabIndex=-1,w.addEventListener("blur",function(){w.contains(document.activeElement)||this.hide()}.bind(y)),w.addEventListener("wheel",l),y}return p.prototype.addToEditor=function(g){g.on("mousemove",this.onMouseMove),g.on("mousedown",this.hide);var y=g.renderer.getMouseEventTarget();y&&typeof y.removeEventListener=="function"&&y.addEventListener("mouseout",this.onMouseOut,!0)},p.prototype.removeFromEditor=function(g){g.off("mousemove",this.onMouseMove),g.off("mousedown",this.hide);var y=g.renderer.getMouseEventTarget();y&&typeof y.removeEventListener=="function"&&y.removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},p.prototype.onMouseMove=function(g,y){this.lastEvent=g,this.lastT=Date.now();var w=y.$mouseHandler.isMousePressed;if(this.isOpen){var k=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(k.row,k.column)||w||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||w||(this.lastEvent=g,this.timeout=setTimeout(this.waitForHover,this.idleTime))},p.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var g=Date.now()-this.lastT;if(this.idleTime-g>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-g);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},p.prototype.isOutsideOfText=function(g){var y=g.editor,w=g.getDocumentPosition(),k=y.session.getLine(w.row);if(w.column==k.length){var x=y.renderer.pixelToScreenCoordinates(g.clientX,g.clientY),C=y.session.documentToScreenPosition(w.row,w.column);if(C.column!=x.column||C.row!=x.row)return!0}return!1},p.prototype.setDataProvider=function(g){this.$gatherData=g},p.prototype.showForRange=function(g,y,w,k){if(!(k&&k!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var x=g.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(x.theme)),this.isOpen=!0,this.range=o.fromPoints(y.start,y.end);var C=x.textToScreenCoordinates(y.start.row,y.start.column),A=x.scroller.getBoundingClientRect();C.pageX=h.length&&(h=void 0),{value:h&&h[p++],done:!h}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("../lib/dom"),a=n("./mouse_event").MouseEvent,o=n("../tooltip").HoverTooltip,l=n("../config").nls,c=n("../range").Range;function u(h){var m=h.editor,f=m.renderer.$gutterLayer;h.$tooltip=new d(m),h.$tooltip.addToEditor(m),h.$tooltip.setDataProvider(function(p,g){var y=p.getDocumentPosition().row;h.$tooltip.showTooltip(y)}),h.editor.setDefaultHandler("guttermousedown",function(p){if(!(!m.isFocused()||p.getButton()!=0)){var g=f.getRegion(p);if(g!="foldWidgets"){var y=p.getDocumentPosition().row,w=m.session.selection;if(p.getShiftKey())w.selectTo(y,0);else{if(p.domEvent.detail==2)return m.selectAll(),p.preventDefault();h.$clickSelection=m.selection.getLineRange(y)}return h.setState("selectByLines"),h.captureMouse(p),p.preventDefault()}}})}t.GutterHandler=u;var d=function(h){i(m,h);function m(f){var p=h.call(this,f.container)||this;p.id="gt"+ ++m.$uid,p.editor=f,p.visibleTooltipRow;var g=p.getElement();return g.setAttribute("role","tooltip"),g.setAttribute("id",p.id),g.style.pointerEvents="auto",p.idleTime=50,p.onDomMouseMove=p.onDomMouseMove.bind(p),p.onDomMouseOut=p.onDomMouseOut.bind(p),p.setClassName("ace_gutter-tooltip"),p}return m.prototype.onDomMouseMove=function(f){var p=new a(f,this.editor);this.onMouseMove(p,this.editor)},m.prototype.onDomMouseOut=function(f){var p=new a(f,this.editor);this.onMouseOut(p)},m.prototype.addToEditor=function(f){var p=f.renderer.$gutter;p.addEventListener("mousemove",this.onDomMouseMove),p.addEventListener("mouseout",this.onDomMouseOut),h.prototype.addToEditor.call(this,f)},m.prototype.removeFromEditor=function(f){var p=f.renderer.$gutter;p.removeEventListener("mousemove",this.onDomMouseMove),p.removeEventListener("mouseout",this.onDomMouseOut),h.prototype.removeFromEditor.call(this,f)},m.prototype.destroy=function(){this.editor&&this.removeFromEditor(this.editor),h.prototype.destroy.call(this)},Object.defineProperty(m,"annotationLabels",{get:function(){return{error:{singular:l("gutter-tooltip.aria-label.error.singular","error"),plural:l("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:l("gutter-tooltip.aria-label.security.singular","security finding"),plural:l("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:l("gutter-tooltip.aria-label.warning.singular","warning"),plural:l("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:l("gutter-tooltip.aria-label.info.singular","information message"),plural:l("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:l("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:l("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),m.prototype.showTooltip=function(f){var p,g=this.editor.renderer.$gutterLayer,y=g.$annotations[f],w;y?w={displayText:Array.from(y.displayText),type:Array.from(y.type)}:w={displayText:[],type:[]};var k=g.session.getFoldLine(f);if(k&&g.$showFoldedAnnotations){for(var x={error:[],security:[],warning:[],info:[],hint:[]},C={error:1,security:2,warning:3,info:4,hint:5},A,T=f+1;T<=k.end.row;T++)if(g.$annotations[T])for(var E=0;E2)return g.childNodes[2]}},m.prototype.$findCellByRow=function(f){return this.editor.renderer.$gutterLayer.$lines.cells.find(function(p){return p.row===f})},m.prototype.hide=function(f){if(this.isOpen){if(this.$element.removeAttribute("aria-live"),this.visibleTooltipRow!=null){var p=this.$findLinkedAnnotationNode(this.visibleTooltipRow);p&&p.removeAttribute("aria-describedby")}this.visibleTooltipRow=void 0,this.editor._signal("hideGutterTooltip",this),h.prototype.hide.call(this,f)}},m.annotationsToSummaryString=function(f){var p,g,y=[],w=["error","security","warning","info","hint"];try{for(var k=r(w),x=k.next();!x.done;x=k.next()){var C=x.value;if(f[C].length){var A=f[C].length===1?m.annotationLabels[C].singular:m.annotationLabels[C].plural;y.push("".concat(f[C].length," ").concat(A))}}}catch(T){p={error:T}}finally{try{x&&!x.done&&(g=k.return)&&g.call(k)}finally{if(p)throw p.error}}return y.join(", ")},m.prototype.isOutsideOfText=function(f){var p=f.editor,g=p.renderer.$gutter.getBoundingClientRect();return!(f.clientX>=g.left&&f.clientX<=g.right&&f.clientY>=g.top&&f.clientY<=g.bottom)},m}(o);d.$uid=0,t.GutterTooltip=d});ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../lib/event"),s=n("../lib/useragent"),a=200,o=200,l=5;function c(d){var h=d.editor,m=i.createElement("div");m.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",m.textContent="\xA0";var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(V){d[V]=this[V]},this),h.on("mousedown",this.onMouseDown.bind(d));var p=h.container,g,y,w,k,x,C,A=0,T,E,L,S,v;this.onDragStart=function(V){if(this.cancelDrag||!p.draggable){var K=this;return setTimeout(function(){K.startSelect(),K.captureMouse(V)},0),V.preventDefault()}x=h.getSelectionRange();var W=V.dataTransfer;W.effectAllowed=h.getReadOnly()?"copy":"copyMove",h.container.appendChild(m),W.setDragImage&&W.setDragImage(m,0,0),setTimeout(function(){h.container.removeChild(m)}),W.clearData(),W.setData("Text",h.session.getTextRange()),E=!0,this.setState("drag")},this.onDragEnd=function(V){if(p.draggable=!1,E=!1,this.setState(null),!h.getReadOnly()){var K=V.dataTransfer.dropEffect;!T&&K=="move"&&h.session.remove(h.getSelectionRange()),h.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(V){if(!(h.getReadOnly()||!F(V.dataTransfer)))return y=V.clientX,w=V.clientY,g||I(),A++,V.dataTransfer.dropEffect=T=z(V),r.preventDefault(V)},this.onDragOver=function(V){if(!(h.getReadOnly()||!F(V.dataTransfer)))return y=V.clientX,w=V.clientY,g||(I(),A++),O!==null&&(O=null),V.dataTransfer.dropEffect=T=z(V),r.preventDefault(V)},this.onDragLeave=function(V){if(A--,A<=0&&g)return D(),T=null,r.preventDefault(V)},this.onDrop=function(V){if(C){var K=V.dataTransfer;if(E)switch(T){case"move":x.contains(C.row,C.column)?x={start:C,end:C}:x=h.moveText(x,C);break;case"copy":x=h.moveText(x,C,!0);break}else{var W=K.getData("Text");x={start:C,end:h.session.insert(C,W)},h.focus(),T=null}return D(),r.preventDefault(V)}},r.addListener(p,"dragstart",this.onDragStart.bind(d),h),r.addListener(p,"dragend",this.onDragEnd.bind(d),h),r.addListener(p,"dragenter",this.onDragEnter.bind(d),h),r.addListener(p,"dragover",this.onDragOver.bind(d),h),r.addListener(p,"dragleave",this.onDragLeave.bind(d),h),r.addListener(p,"drop",this.onDrop.bind(d),h);function _(V,K){var W=Date.now(),q=!K||V.row!=K.row,ae=!K||V.column!=K.column;if(!S||q||ae)h.moveCursorToPosition(V),S=W,v={x:y,y:w};else{var pe=u(v.x,v.y,y,w);pe>l?S=null:W-S>=o&&(h.renderer.scrollCursorIntoView(),S=null)}}function b(V,K){var W=Date.now(),q=h.renderer.layerConfig.lineHeight,ae=h.renderer.layerConfig.characterWidth,pe=h.renderer.scroller.getBoundingClientRect(),ie={x:{left:y-pe.left,right:pe.right-y},y:{top:w-pe.top,bottom:pe.bottom-w}},ne=Math.min(ie.x.left,ie.x.right),Ee=Math.min(ie.y.top,ie.y.bottom),we={row:V.row,column:V.column};ne/ae<=2&&(we.column+=ie.x.left=a&&h.renderer.scrollCursorIntoView(we):L=W:L=null}function M(){var V=C;C=h.renderer.screenToTextCoordinates(y,w),_(C,V),b(C,V)}function I(){x=h.selection.toOrientedRange(),g=h.session.addMarker(x,"ace_selection",h.getSelectionStyle()),h.clearSelection(),h.isFocused()&&h.renderer.$cursorLayer.setBlinking(!1),clearInterval(k),M(),k=setInterval(M,20),A=0,r.addListener(document,"mousemove",N)}function D(){clearInterval(k),h.session.removeMarker(g),g=null,h.selection.fromOrientedRange(x),h.isFocused()&&!E&&h.$resetCursorStyle(),x=null,C=null,A=0,L=null,S=null,r.removeListener(document,"mousemove",N)}var O=null;function N(){O==null&&(O=setTimeout(function(){O!=null&&g&&D()},20))}function F(V){var K=V.types;return!K||Array.prototype.some.call(K,function(W){return W=="text/plain"||W=="Text"})}function z(V){var K=["copy","copymove","all","uninitialized"],W=["move","copymove","linkmove","all","uninitialized"],q=s.isMac?V.altKey:V.ctrlKey,ae="uninitialized";try{ae=V.dataTransfer.effectAllowed.toLowerCase()}catch{}var pe="none";return q&&K.indexOf(ae)>=0?pe="copy":W.indexOf(ae)>=0?pe="move":K.indexOf(ae)>=0&&(pe="copy"),pe}}(function(){this.dragWait=function(){var d=Date.now()-this.mousedownEvent.time;d>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var d=this.editor.container;d.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(d){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var d=this.editor,h=d.container;h.draggable=!0,d.renderer.$cursorLayer.setBlinking(!1),d.setStyle("ace_dragging");var m=s.isWin?"default":"move";d.renderer.setCursorStyle(m),this.setState("dragReady")},this.onMouseDrag=function(d){var h=this.editor.container;if(s.isIE&&this.state=="dragReady"){var m=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>3&&h.dragDrop()}if(this.state==="dragWait"){var m=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>0&&(h.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(d){if(this.$dragEnabled){this.mousedownEvent=d;var h=this.editor,m=d.inSelection(),f=d.getButton(),p=d.domEvent.detail||1;if(p===1&&f===0&&m){if(d.editor.inMultiSelectMode&&(d.getAccelKey()||d.getShiftKey()))return;this.mousedownEvent.time=Date.now();var g=d.domEvent.target||d.domEvent.srcElement;if("unselectable"in g&&(g.unselectable="on"),h.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var y=h.container;y.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(d,this.onMouseDrag.bind(this)),d.defaultPrevented=!0}}}}).call(c.prototype);function u(d,h,m,f){return Math.sqrt(Math.pow(m-d,2)+Math.pow(f-h,2))}t.DragdropHandler=c});ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(n,t,e){"use strict";var i=n("./mouse_event").MouseEvent,r=n("../lib/event"),s=n("../lib/dom");t.addTouchListeners=function(a,o){var l="scroll",c,u,d,h,m,f,p=0,g,y=0,w=0,k=0,x,C;function A(){var _=window.navigator&&window.navigator.clipboard,b=!1,M=function(){var O=o.getCopyText(),N=o.session.getUndoManager().hasUndo();C.replaceChild(s.buildDom(b?["span",!O&&I("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],O&&I("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],O&&I("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],_&&I("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],N&&I("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],I("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],I("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),C.firstChild)},I=function(O){return o.commands.canExecute(O,o)},D=function(O){var N=O.target.getAttribute("action");if(N=="more"||!b)return b=!b,M();N=="paste"?_.readText().then(function(F){o.execCommand(N,F)}):N&&((N=="cut"||N=="copy")&&(_?_.writeText(o.getCopyText()):document.execCommand("copy")),o.execCommand(N)),C.firstChild.style.display="none",b=!1,N!="openCommandPalette"&&o.focus()};C=s.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(O){l="menu",O.stopPropagation(),O.preventDefault(),o.textInput.focus()},ontouchend:function(O){O.stopPropagation(),O.preventDefault(),D(O)},onclick:D},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],o.container)}function T(){if(!o.getOption("enableMobileMenu")){C&&E();return}C||A();var _=o.selection.cursor,b=o.renderer.textToScreenCoordinates(_.row,_.column),M=o.renderer.textToScreenCoordinates(0,0).pageX,I=o.renderer.scrollLeft,D=o.container.getBoundingClientRect();C.style.top=b.pageY-D.top-3+"px",b.pageX-D.left=2?o.selection.getLineRange(g.row):o.session.getBracketRange(g);_&&!_.isEmpty()?o.selection.setRange(_):o.selection.selectWord(),l="wait"}r.addListener(a,"contextmenu",function(_){if(x){var b=o.textInput.getElement();b.focus()}},o),r.addListener(a,"touchstart",function(_){var b=_.touches;if(m||b.length>1){clearTimeout(m),m=null,d=-1,l="zoom";return}x=o.$mouseHandler.isMousePressed=!0;var M=o.renderer.layerConfig.lineHeight,I=o.renderer.layerConfig.lineHeight,D=_.timeStamp;h=D;var O=b[0],N=O.clientX,F=O.clientY;Math.abs(c-N)+Math.abs(u-F)>M&&(d=-1),c=_.clientX=N,u=_.clientY=F,w=k=0;var z=new i(_,o);if(g=z.getDocumentPosition(),D-d<500&&b.length==1&&!p)y++,_.preventDefault(),_.button=0,S();else{y=0;var V=o.selection.cursor,K=o.selection.isEmpty()?V:o.selection.anchor,W=o.renderer.$cursorLayer.getPixelPosition(V,!0),q=o.renderer.$cursorLayer.getPixelPosition(K,!0),ae=o.renderer.scroller.getBoundingClientRect(),pe=o.renderer.layerConfig.offset,ie=o.renderer.scrollLeft,ne=function(qe,_t){return qe=qe/I,_t=_t/M-.75,qe*qe+_t*_t};if(_.clientXwe?"cursor":"anchor"),we<3.5?l="anchor":Ee<3.5?l="cursor":l="scroll",m=setTimeout(L,450)}d=D},o),r.addListener(a,"touchend",function(_){x=o.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),l=="zoom"?(l="",p=0):m?(o.selection.moveToPosition(g),p=0,T()):l=="scroll"?(v(),E()):T(),clearTimeout(m),m=null},o),r.addListener(a,"touchmove",function(_){m&&(clearTimeout(m),m=null);var b=_.touches;if(!(b.length>1||l=="zoom")){var M=b[0],I=c-M.clientX,D=u-M.clientY;if(l=="wait")if(I*I+D*D>4)l="cursor";else return _.preventDefault();c=M.clientX,u=M.clientY,_.clientX=M.clientX,_.clientY=M.clientY;var O=_.timeStamp,N=O-h;if(h=O,l=="scroll"){var F=new i(_,o);F.speed=1,F.wheelX=I,F.wheelY=D,10*Math.abs(I)0)if(Qr==16){for(ct=ur;ct-1){for(ct=ur;ct=0&&we[me]==L;me--)ne[me]=s}}}function W(ie,ne,Ee){if(!(a=ie){for(_t=qe+1;_t=ie;)_t++;for(Ct=qe,We=_t-1;Ct=ne.length||(_t=Ee[we-1])!=k&&_t!=x||(Ct=ne[we+1])!=k&&Ct!=x?C:(o&&(Ct=x),Ct==_t?Ct:C);case v:return _t=we>0?Ee[we-1]:A,_t==k&&we+10&&Ee[we-1]==k)return k;if(o)return C;for(Nt=we+1,We=ne.length;Nt=1425&&Qr<=2303||Qr==64286;if(_t=ne[Nt],So&&(_t==w||_t==E))return w}return we<1||(_t=ne[we-1])==A?C:Ee[we-1];case A:return o=!1,c=!0,s;case T:return u=!0,C;case M:case I:case O:case N:case D:o=!1;case F:return C}}function ae(ie){var ne=ie.charCodeAt(0),Ee=ne>>8;return Ee==0?ne>191?y:z[ne]:Ee==5?/[\u0591-\u05f4]/.test(ie)?w:y:Ee==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(ie)?b:/[\u0660-\u0669\u066b-\u066c]/.test(ie)?x:ne==1642?_:/[\u06f0-\u06f9]/.test(ie)?k:E:Ee==32&&ne<=8287?V[ne&255]:Ee==254&&ne>=65136?E:C}function pe(ie){return ie>="\u064B"&&ie<="\u0655"}t.L=y,t.R=w,t.EN=k,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\xB7",t.doBidiReorder=function(ie,ne,Ee){if(ie.length<2)return{};var we=ie.split(""),qe=new Array(we.length),_t=new Array(we.length),Ct=[];s=Ee?g:p,K(we,Ct,we.length,ne);for(var We=0;WeE&&ne[We]0&&we[We-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(we[We])&&(Ct[We-1]=Ct[We]=t.R_H,We++);we[we.length-1]===t.DOT&&(Ct[we.length-1]=t.B),we[0]==="\u202B"&&(Ct[0]=t.RLE);for(var We=0;We=0&&(l=this.session.$docRowCache[u])}return l},o.prototype.getSplitIndex=function(){var l=0,c=this.session.$screenRowCache;if(c.length)for(var u,d=this.session.$getRowCacheIndex(c,this.currentRow);this.currentRow-l>0&&(u=this.session.$getRowCacheIndex(c,this.currentRow-l-1),u===d);)d=u,l++;else l=this.currentRow;return l},o.prototype.updateRowLine=function(l,c){l===void 0&&(l=this.getDocumentRow());var u=l===this.session.getLength()-1,d=u?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(l),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var h=this.session.$wrapData[l];h&&(c===void 0&&(c=this.getSplitIndex()),c>0&&h.length?(this.wrapIndent=h.indent,this.wrapOffset=this.wrapIndent*this.charWidths[i.L],this.line=cc?this.session.getOverwrite()?l:l-1:c,d=i.getVisualFromLogicalIdx(u,this.bidiMap),h=this.bidiMap.bidiLevels,m=0;!this.session.getOverwrite()&&l<=c&&h[d]%2!==0&&d++;for(var f=0;fc&&h[d]%2===0&&(m+=this.charWidths[h[d]]),this.wrapIndent&&(m+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(m+=this.rtlLineOffset),m},o.prototype.getSelections=function(l,c){var u=this.bidiMap,d=u.bidiLevels,h,m=[],f=0,p=Math.min(l,c)-this.wrapIndent,g=Math.max(l,c)-this.wrapIndent,y=!1,w=!1,k=0;this.wrapIndent&&(f+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var x,C=0;C=p&&xd+f/2;){if(d+=f,h===m.length-1){f=0;break}f=this.charWidths[m[++h]]}return h>0&&m[h-1]%2!==0&&m[h]%2===0?(u0&&m[h-1]%2===0&&m[h]%2!==0?c=1+(u>d?this.bidiMap.logicalFromVisual[h]:this.bidiMap.logicalFromVisual[h-1]):this.isRtlDir&&h===m.length-1&&f===0&&m[h-1]%2===0||!this.isRtlDir&&h===0&&m[h]%2!==0?c=1+this.bidiMap.logicalFromVisual[h]:(h>0&&m[h-1]%2!==0&&f!==0&&h--,c=this.bidiMap.logicalFromVisual[h]),c===0&&this.isRtlDir&&c++,c+this.wrapIndent},o}();t.BidiHandler=a});ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/lang"),s=n("./lib/event_emitter").EventEmitter,a=n("./range").Range,o=function(){function l(c){this.session=c,this.doc=c.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var u=this;this.cursor.on("change",function(d){u.$cursorChanged=!0,u.$silent||u._emit("changeCursor"),!u.$isEmpty&&!u.$silent&&u._emit("changeSelection"),!u.$keepDesiredColumnOnChange&&d.old.column!=d.value.column&&(u.$desiredColumn=null)}),this.anchor.on("change",function(){u.$anchorChanged=!0,!u.$isEmpty&&!u.$silent&&u._emit("changeSelection")})}return l.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},l.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},l.prototype.getCursor=function(){return this.lead.getPosition()},l.prototype.setAnchor=function(c,u){this.$isEmpty=!1,this.anchor.setPosition(c,u)},l.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},l.prototype.getSelectionLead=function(){return this.lead.getPosition()},l.prototype.isBackwards=function(){var c=this.anchor,u=this.lead;return c.row>u.row||c.row==u.row&&c.column>u.column},l.prototype.getRange=function(){var c=this.anchor,u=this.lead;return this.$isEmpty?a.fromPoints(u,u):this.isBackwards()?a.fromPoints(u,c):a.fromPoints(c,u)},l.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},l.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},l.prototype.setRange=function(c,u){var d=u?c.end:c.start,h=u?c.start:c.end;this.$setSelection(d.row,d.column,h.row,h.column)},l.prototype.$setSelection=function(c,u,d,h){if(!this.$silent){var m=this.$isEmpty,f=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(c,u),this.cursor.setPosition(d,h),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||m!=this.$isEmpty||f)&&this._emit("changeSelection")}},l.prototype.$moveSelection=function(c){var u=this.lead;this.$isEmpty&&this.setSelectionAnchor(u.row,u.column),c.call(this)},l.prototype.selectTo=function(c,u){this.$moveSelection(function(){this.moveCursorTo(c,u)})},l.prototype.selectToPosition=function(c){this.$moveSelection(function(){this.moveCursorToPosition(c)})},l.prototype.moveTo=function(c,u){this.clearSelection(),this.moveCursorTo(c,u)},l.prototype.moveToPosition=function(c){this.clearSelection(),this.moveCursorToPosition(c)},l.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},l.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},l.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},l.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},l.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},l.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},l.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},l.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},l.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},l.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},l.prototype.getWordRange=function(c,u){if(typeof u>"u"){var d=c||this.lead;c=d.row,u=d.column}return this.session.getWordRange(c,u)},l.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},l.prototype.selectAWord=function(){var c=this.getCursor(),u=this.session.getAWordRange(c.row,c.column);this.setSelectionRange(u)},l.prototype.getLineRange=function(c,u){var d=typeof c=="number"?c:this.lead.row,h,m=this.session.getFoldLine(d);return m?(d=m.start.row,h=m.end.row):h=d,u===!0?new a(d,0,h,this.session.getLine(h).length):new a(d,0,h+1,0)},l.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},l.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},l.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},l.prototype.wouldMoveIntoSoftTab=function(c,u,d){var h=c.column,m=c.column+u;return d<0&&(h=c.column-u,m=c.column),this.session.isTabStop(c)&&this.doc.getLine(c.row).slice(h,m).split(" ").length-1==u},l.prototype.moveCursorLeft=function(){var c=this.lead.getPosition(),u;if(u=this.session.getFoldAt(c.row,c.column,-1))this.moveCursorTo(u.start.row,u.start.column);else if(c.column===0)c.row>0&&this.moveCursorTo(c.row-1,this.doc.getLine(c.row-1).length);else{var d=this.session.getTabSize();this.wouldMoveIntoSoftTab(c,d,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-d):this.moveCursorBy(0,-1)}},l.prototype.moveCursorRight=function(){var c=this.lead.getPosition(),u;if(u=this.session.getFoldAt(c.row,c.column,1))this.moveCursorTo(u.end.row,u.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(u.column=h)}}this.moveCursorTo(u.row,u.column)},l.prototype.moveCursorFileEnd=function(){var c=this.doc.getLength()-1,u=this.doc.getLine(c).length;this.moveCursorTo(c,u)},l.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},l.prototype.moveCursorLongWordRight=function(){var c=this.lead.row,u=this.lead.column,d=this.doc.getLine(c),h=d.substring(u);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var m=this.session.getFoldAt(c,u,1);if(m){this.moveCursorTo(m.end.row,m.end.column);return}if(this.session.nonTokenRe.exec(h)&&(u+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,h=d.substring(u)),u>=d.length){this.moveCursorTo(c,d.length),this.moveCursorRight(),c0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(m)&&(u-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(c,u)},l.prototype.$shortWordEndIndex=function(c){var u=0,d,h=/\s/,m=this.session.tokenRe;if(m.lastIndex=0,this.session.tokenRe.exec(c))u=this.session.tokenRe.lastIndex;else{for(;(d=c[u])&&h.test(d);)u++;if(u<1){for(m.lastIndex=0;(d=c[u])&&!m.test(d);)if(m.lastIndex=0,u++,h.test(d))if(u>2){u--;break}else{for(;(d=c[u])&&h.test(d);)u++;if(u>2)break}}}return m.lastIndex=0,u},l.prototype.moveCursorShortWordRight=function(){var c=this.lead.row,u=this.lead.column,d=this.doc.getLine(c),h=d.substring(u),m=this.session.getFoldAt(c,u,1);if(m)return this.moveCursorTo(m.end.row,m.end.column);if(u==d.length){var f=this.doc.getLength();do c++,h=this.doc.getLine(c);while(c0&&/^\s*$/.test(h));u=h.length,/\s+$/.test(h)||(h="")}var m=r.stringReverse(h),f=this.$shortWordEndIndex(m);return this.moveCursorTo(c,u-f)},l.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},l.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},l.prototype.moveCursorBy=function(c,u){var d=this.session.documentToScreenPosition(this.lead.row,this.lead.column),h;if(u===0&&(c!==0&&(this.session.$bidiHandler.isBidiRow(d.row,this.lead.row)?(h=this.session.$bidiHandler.getPosLeft(d.column),d.column=Math.round(h/this.session.$bidiHandler.charWidths[0])):h=d.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?d.column=this.$desiredColumn:this.$desiredColumn=d.column),c!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var m=this.session.lineWidgets[this.lead.row];c<0?c-=m.rowsAbove||0:c>0&&(c+=m.rowCount-(m.rowsAbove||0))}var f=this.session.screenToDocumentPosition(d.row+c,d.column,h);c!==0&&u===0&&f.row===this.lead.row&&(f.column,this.lead.column),this.moveCursorTo(f.row,f.column+u,u===0)},l.prototype.moveCursorToPosition=function(c){this.moveCursorTo(c.row,c.column)},l.prototype.moveCursorTo=function(c,u,d){var h=this.session.getFoldAt(c,u,1);h&&(c=h.start.row,u=h.start.column),this.$keepDesiredColumnOnChange=!0;var m=this.session.getLine(c);/[\uDC00-\uDFFF]/.test(m.charAt(u))&&m.charAt(u-1)&&(this.lead.row==c&&this.lead.column==u+1?u=u-1:u=u+1),this.lead.setPosition(c,u),this.$keepDesiredColumnOnChange=!1,d||(this.$desiredColumn=null)},l.prototype.moveCursorToScreen=function(c,u,d){var h=this.session.screenToDocumentPosition(c,u);this.moveCursorTo(h.row,h.column,d)},l.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},l.prototype.fromOrientedRange=function(c){this.setSelectionRange(c,c.cursor==c.start),this.$desiredColumn=c.desiredColumn||this.$desiredColumn},l.prototype.toOrientedRange=function(c){var u=this.getRange();return c?(c.start.column=u.start.column,c.start.row=u.start.row,c.end.column=u.end.column,c.end.row=u.end.row):c=u,c.cursor=this.isBackwards()?c.start:c.end,c.desiredColumn=this.$desiredColumn,c},l.prototype.getRangeOfMovements=function(c){var u=this.getCursor();try{c(this);var d=this.getCursor();return a.fromPoints(u,d)}catch{return a.fromPoints(u,u)}finally{this.moveCursorToPosition(u)}},l.prototype.toJSON=function(){if(this.rangeCount)var c=this.ranges.map(function(u){var d=u.clone();return d.isBackwards=u.cursor==u.start,d});else{var c=this.getRange();c.isBackwards=this.isBackwards()}return c},l.prototype.fromJSON=function(c){if(c.start==null)if(this.rangeList&&c.length>1){this.toSingleRange(c[0]);for(var u=c.length;u--;){var d=a.fromPoints(c[u].start,c[u].end);c[u].isBackwards&&(d.cursor=d.start),this.addRange(d,!0)}return}else c=c[0];this.rangeList&&this.toSingleRange(c),this.setSelectionRange(c,c.isBackwards)},l.prototype.isEqual=function(c){if((c.length||this.rangeCount)&&c.length!=this.rangeCount)return!1;if(!c.length||!this.ranges)return this.getRange().isEqual(c);for(var u=this.ranges.length;u--;)if(!this.ranges[u].isEqual(c[u]))return!1;return!0},l}();o.prototype.setSelectionAnchor=o.prototype.setAnchor,o.prototype.getSelectionAnchor=o.prototype.getAnchor,o.prototype.setSelectionRange=o.prototype.setRange,i.implement(o.prototype,s),t.Selection=o});ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(n,t,e){"use strict";var i=n("./lib/report_error").reportError,r=2e3,s=function(){function a(o){this.splitRegex,this.states=o,this.regExps={},this.matchMappings={};for(var l in this.states){for(var c=this.states[l],u=[],d=0,h=this.matchMappings[l]={defaultToken:"text"},m="g",f=[],p=0;p1?g.onMatch=this.$applyToken:g.onMatch=g.token),w>1&&(/\\\d/.test(g.regex)?y=g.regex.replace(/\\([0-9]+)/g,function(k,x){return"\\"+(parseInt(x,10)+d+1)}):(w=1,y=this.removeCapturingGroups(g.regex)),!g.splitRegex&&typeof g.token!="string"&&f.push(g)),h[d]=p,d+=w,u.push(y),g.onMatch||(g.onMatch=null)}}u.length||(h[0]=0,u.push("$")),f.forEach(function(k){k.splitRegex=this.createSplitterRegexp(k.regex,m)},this),this.regExps[l]=new RegExp("("+u.join(")|(")+")|($)",m)}}return a.prototype.$setMaxTokenCount=function(o){r=o|0},a.prototype.$applyToken=function(o){var l=this.splitRegex.exec(o).slice(1),c=this.token.apply(this,l);if(typeof c=="string")return[{type:c,value:o}];for(var u=[],d=0,h=c.length;dg){var T=o.substring(g,A-C.length);w.type==k?w.value+=T:(w.type&&p.push(w),w={type:k,value:T})}for(var E=0;Er){for(y>2*o.length&&this.reportError("infinite loop with in ace tokenizer",{startState:l,line:o});g1&&c[0]!==u&&c.unshift("#tmp",u),{tokens:p,state:c.length?c:u}},a}();s.prototype.reportError=i,t.Tokenizer=s});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(n,t,e){"use strict";var i=n("../lib/deep_copy").deepCopy,r;r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(o,l){if(!l){for(var c in o)this.$rules[c]=o[c];return}for(var c in o){for(var u=o[c],d=0;d=this.$rowTokens.length;){if(this.$row+=1,a||(a=this.$session.getLength()),this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},s.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},s.prototype.getCurrentTokenRow=function(){return this.$row},s.prototype.getCurrentTokenColumn=function(){var a=this.$rowTokens,o=this.$tokenIndex,l=a[o].start;if(l!==void 0)return l;for(l=0;o>0;)o-=1,l+=a[o].value.length;return l},s.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},s.prototype.getCurrentTokenRange=function(){var a=this.$rowTokens[this.$tokenIndex],o=this.getCurrentTokenColumn();return new i(this.$row,o,this.$row,o+a.value.length)},s}();t.TokenIterator=r});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(n,t,e){"use strict";var i=n("../../lib/oop"),r=n("../behaviour").Behaviour,s=n("../../token_iterator").TokenIterator,a=n("../../lib/lang"),o=["text","paren.rparen","rparen","paren","punctuation.operator"],l=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],c,u={},d={'"':'"',"'":"'"},h=function(p){var g=-1;if(p.multiSelect&&(g=p.selection.index,u.rangeCount!=p.multiSelect.rangeCount&&(u={rangeCount:p.multiSelect.rangeCount})),u[g])return c=u[g];c=u[g]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},m=function(p,g,y,w){var k=p.end.row-p.start.row;return{text:y+g+w,selection:[0,p.start.column+1,k,p.end.column+(k?0:1)]}},f;f=function(p){p=p||{},this.add("braces","insertion",function(g,y,w,k,x){var C=w.getCursorPosition(),A=k.doc.getLine(C.row);if(x=="{"){h(w);var T=w.getSelectionRange(),E=k.doc.getTextRange(T),L=k.getTokenAt(C.row,C.column);if(E!==""&&E!=="{"&&w.getWrapBehavioursEnabled())return m(T,E,"{","}");if(L&&/(?:string)\.quasi|\.xml/.test(L.type)){var S=[/tag\-(?:open|name)/,/attribute\-name/];return S.some(function(O){return O.test(L.type)})||/(string)\.quasi/.test(L.type)&&L.value[C.column-L.start-1]!=="$"?void 0:(f.recordAutoInsert(w,k,"}"),{text:"{}",selection:[1,1]})}else if(f.isSaneInsertion(w,k))return/[\]\}\)]/.test(A[C.column])||w.inMultiSelectMode||p.braces?(f.recordAutoInsert(w,k,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(w,k,"{"),{text:"{",selection:[1,1]})}else if(x=="}"){h(w);var v=A.substring(C.column,C.column+1);if(v=="}"){var _=k.$findOpeningBracket("}",{column:C.column+1,row:C.row});if(_!==null&&f.isAutoInsertedClosing(C,A,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(x==` +`||x==`\r +`){h(w);var b="";f.isMaybeInsertedClosing(C,A)&&(b=a.stringRepeat("}",c.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var v=A.substring(C.column,C.column+1);if(v==="}"){var M=k.findMatchingBracket({row:C.row,column:C.column+1},"}");if(!M)return null;var I=this.$getIndent(k.getLine(M.row))}else if(b)var I=this.$getIndent(A);else{f.clearMaybeInsertedClosing();return}var D=I+k.getTabString();return{text:` +`+D+` +`+I+b,selection:[1,D.length,1,D.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(g,y,w,k,x){var C=k.doc.getTextRange(x);if(!x.isMultiLine()&&C=="{"){h(w);var A=k.doc.getLine(x.start.row),T=A.substring(x.end.column,x.end.column+1);if(T=="}")return x.end.column++,x;c.maybeInsertedBrackets--}}),this.add("parens","insertion",function(g,y,w,k,x){if(x=="("){h(w);var C=w.getSelectionRange(),A=k.doc.getTextRange(C);if(A!==""&&w.getWrapBehavioursEnabled())return m(C,A,"(",")");if(f.isSaneInsertion(w,k))return f.recordAutoInsert(w,k,")"),{text:"()",selection:[1,1]}}else if(x==")"){h(w);var T=w.getCursorPosition(),E=k.doc.getLine(T.row),L=E.substring(T.column,T.column+1);if(L==")"){var S=k.$findOpeningBracket(")",{column:T.column+1,row:T.row});if(S!==null&&f.isAutoInsertedClosing(T,E,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(g,y,w,k,x){var C=k.doc.getTextRange(x);if(!x.isMultiLine()&&C=="("){h(w);var A=k.doc.getLine(x.start.row),T=A.substring(x.start.column+1,x.start.column+2);if(T==")")return x.end.column++,x}}),this.add("brackets","insertion",function(g,y,w,k,x){if(x=="["){h(w);var C=w.getSelectionRange(),A=k.doc.getTextRange(C);if(A!==""&&w.getWrapBehavioursEnabled())return m(C,A,"[","]");if(f.isSaneInsertion(w,k))return f.recordAutoInsert(w,k,"]"),{text:"[]",selection:[1,1]}}else if(x=="]"){h(w);var T=w.getCursorPosition(),E=k.doc.getLine(T.row),L=E.substring(T.column,T.column+1);if(L=="]"){var S=k.$findOpeningBracket("]",{column:T.column+1,row:T.row});if(S!==null&&f.isAutoInsertedClosing(T,E,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(g,y,w,k,x){var C=k.doc.getTextRange(x);if(!x.isMultiLine()&&C=="["){h(w);var A=k.doc.getLine(x.start.row),T=A.substring(x.start.column+1,x.start.column+2);if(T=="]")return x.end.column++,x}}),this.add("string_dquotes","insertion",function(g,y,w,k,x){var C=k.$mode.$quotes||d;if(x.length==1&&C[x]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(x)!=-1)return;h(w);var A=x,T=w.getSelectionRange(),E=k.doc.getTextRange(T);if(E!==""&&(E.length!=1||!C[E])&&w.getWrapBehavioursEnabled())return m(T,E,A,A);if(!E){var L=w.getCursorPosition(),S=k.doc.getLine(L.row),v=S.substring(L.column-1,L.column),_=S.substring(L.column,L.column+1),b=k.getTokenAt(L.row,L.column),M=k.getTokenAt(L.row,L.column+1);if(v=="\\"&&b&&/escape/.test(b.type))return null;var I=b&&/string|escape/.test(b.type),D=!M||/string|escape/.test(M.type),O;if(_==A)O=I!==D,O&&/string\.end/.test(M.type)&&(O=!1);else{if(I&&!D||I&&D)return null;var N=k.$mode.tokenRe;N.lastIndex=0;var F=N.test(v);N.lastIndex=0;var z=N.test(_),V=k.$mode.$pairQuotesAfter,K=V&&V[A]&&V[A].test(v);if(!K&&F||z||_&&!/[\s;,.})\]\\]/.test(_))return null;var W=S[L.column-2];if(v==A&&(W==A||N.test(W)))return null;O=!0}return{text:O?A+A:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(g,y,w,k,x){var C=k.$mode.$quotes||d,A=k.doc.getTextRange(x);if(!x.isMultiLine()&&C.hasOwnProperty(A)){h(w);var T=k.doc.getLine(x.start.row),E=T.substring(x.start.column+1,x.start.column+2);if(E==A)return x.end.column++,x}}),p.closeDocComment!==!1&&this.add("doc comment end","insertion",function(g,y,w,k,x){if(g==="doc-start"&&(x===` +`||x===`\r +`)&&w.selection.isEmpty()){var C=w.getCursorPosition();if(C.column===0)return;for(var A=k.doc.getLine(C.row),T=k.doc.getLine(C.row+1),E=k.getTokens(C.row),L=0,S=0;S=C.column){if(L===C.column){if(!/\.doc/.test(v.type))return;if(/\*\//.test(v.value)){var _=E[S+1];if(!_||!/\.doc/.test(_.type))return}}var b=C.column-(L-v.value.length),M=v.value.indexOf("*/"),I=v.value.indexOf("/**",M>-1?M+2:0);if(I!==-1&&b>I&&b=M&&b<=I||!/\.doc/.test(v.type))return;break}}var D=this.$getIndent(A);if(/\s*\*/.test(T))return/^\s*\*/.test(A)?{text:x+D+"* ",selection:[1,2+D.length,1,2+D.length]}:{text:x+D+" * ",selection:[1,3+D.length,1,3+D.length]};if(/\/\*\*/.test(A.substring(0,C.column)))return{text:x+D+" * "+x+" "+D+"*/",selection:[1,4+D.length,1,4+D.length]}}})},f.isSaneInsertion=function(p,g){var y=p.getCursorPosition(),w=new s(g,y.row,y.column);if(!this.$matchTokenType(w.getCurrentToken()||"text",o)){if(/[)}\]]/.test(p.session.getLine(y.row)[y.column]))return!0;var k=new s(g,y.row,y.column+1);if(!this.$matchTokenType(k.getCurrentToken()||"text",o))return!1}return w.stepForward(),w.getCurrentTokenRow()!==y.row||this.$matchTokenType(w.getCurrentToken()||"text",l)},f.$matchTokenType=function(p,g){return g.indexOf(p.type||p)>-1},f.recordAutoInsert=function(p,g,y){var w=p.getCursorPosition(),k=g.doc.getLine(w.row);this.isAutoInsertedClosing(w,k,c.autoInsertedLineEnd[0])||(c.autoInsertedBrackets=0),c.autoInsertedRow=w.row,c.autoInsertedLineEnd=y+k.substr(w.column),c.autoInsertedBrackets++},f.recordMaybeInsert=function(p,g,y){var w=p.getCursorPosition(),k=g.doc.getLine(w.row);this.isMaybeInsertedClosing(w,k)||(c.maybeInsertedBrackets=0),c.maybeInsertedRow=w.row,c.maybeInsertedLineStart=k.substr(0,w.column)+y,c.maybeInsertedLineEnd=k.substr(w.column),c.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(p,g,y){return c.autoInsertedBrackets>0&&p.row===c.autoInsertedRow&&y===c.autoInsertedLineEnd[0]&&g.substr(p.column)===c.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(p,g){return c.maybeInsertedBrackets>0&&p.row===c.maybeInsertedRow&&g.substr(p.column)===c.maybeInsertedLineEnd&&g.substr(0,p.column)==c.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){c.autoInsertedLineEnd=c.autoInsertedLineEnd.substr(1),c.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){c&&(c.maybeInsertedBrackets=0,c.maybeInsertedRow=-1)},i.inherits(f,r),t.CstyleBehaviour=f});ace.define("ace/unicode",["require","exports","module"],function(n,t,e){"use strict";for(var i=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],r=0,s=[],a=0;a2?W%x!=x-1:W%x==0}}else{if(!this.blockComment)return!1;var A=this.blockComment.start,T=this.blockComment.end,E=new RegExp("^(\\s*)(?:"+l.escapeRegExp(A)+")"),L=new RegExp("(?:"+l.escapeRegExp(T)+")\\s*$"),S=function(O,N){_(O,N)||(!y||/\S/.test(O))&&(g.insertInLine({row:N,column:O.length},T),g.insertInLine({row:N,column:k},A))},v=function(O,N){var F;(F=O.match(L))&&g.removeInLine(N,O.length-F[0].length,O.length),(F=O.match(E))&&g.removeInLine(N,F[1].length,F[0].length)},_=function(O,N){if(E.test(O))return!0;for(var F=m.getTokens(N),z=0;zO.length&&(D=O.length)}),k==1/0&&(k=D,y=!1,w=!1),C&&k%x!=0&&(k=Math.floor(k/x)*x),I(w?v:S)},this.toggleBlockComment=function(h,m,f,p){var g=this.blockComment;if(g){!g.start&&g[0]&&(g=g[0]);var y=new c(m,p.row,p.column),w=y.getCurrentToken(),k=m.selection,x=m.selection.toOrientedRange(),C,A;if(w&&/comment/.test(w.type)){for(var T,E;w&&/comment/.test(w.type);){var L=w.value.indexOf(g.start);if(L!=-1){var S=y.getCurrentTokenRow(),v=y.getCurrentTokenColumn()+L;T=new u(S,v,S,v+g.start.length);break}w=y.stepBackward()}for(var y=new c(m,p.row,p.column),w=y.getCurrentToken();w&&/comment/.test(w.type);){var L=w.value.indexOf(g.end);if(L!=-1){var S=y.getCurrentTokenRow(),v=y.getCurrentTokenColumn()+L;E=new u(S,v,S,v+g.end.length);break}w=y.stepForward()}E&&m.remove(E),T&&(m.remove(T),C=T.start.row,A=-g.start.length)}else A=g.start.length,C=f.start.row,m.insert(f.end,g.end),m.insert(f.start,g.start);x.start.row==C&&(x.start.column+=A),x.end.row==C&&(x.end.column+=A),m.selection.fromOrientedRange(x)}},this.getNextLineIndent=function(h,m,f){return this.$getIndent(m)},this.checkOutdent=function(h,m,f){return!1},this.autoOutdent=function(h,m,f){},this.$getIndent=function(h){return h.match(/^\s*/)[0]},this.createWorker=function(h){return null},this.createModeDelegates=function(h){this.$embeds=[],this.$modes={};for(var m in h)if(h[m]){var f=h[m],p=f.prototype.$id,g=i.$modes[p];g||(i.$modes[p]=g=new f),i.$modes[m]||(i.$modes[m]=g),this.$embeds.push(m),this.$modes[m]=g}for(var y=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],w=function(x){(function(C){var A=y[x],T=C[A];C[y[x]]=function(){return this.$delegator(A,arguments,T)}})(k)},k=this,m=0;mo[l].column&&l++,d.unshift(l,0),o.splice.apply(o,d),this.$updateRows()}}},s.prototype.$updateRows=function(){var a=this.session.lineWidgets;if(a){var o=!0;a.forEach(function(l,c){if(l)for(o=!1,l.row=c;l.$oldWidget;)l.$oldWidget.row=c,l=l.$oldWidget}),o&&(this.session.lineWidgets=null)}},s.prototype.$registerLineWidget=function(a){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var o=this.session.lineWidgets[a.row];return o&&(a.$oldWidget=o,o.el&&o.el.parentNode&&(o.el.parentNode.removeChild(o.el),o._inDocument=!1)),this.session.lineWidgets[a.row]=a,a},s.prototype.addLineWidget=function(a){if(this.$registerLineWidget(a),a.session=this.session,!this.editor)return a;var o=this.editor.renderer;a.html&&!a.el&&(a.el=i.createElement("div"),a.el.innerHTML=a.html),a.text&&!a.el&&(a.el=i.createElement("div"),a.el.textContent=a.text),a.el&&(i.addCssClass(a.el,"ace_lineWidgetContainer"),a.className&&i.addCssClass(a.el,a.className),a.el.style.position="absolute",a.el.style.zIndex="5",o.container.appendChild(a.el),a._inDocument=!0,a.coverGutter||(a.el.style.zIndex="3"),a.pixelHeight==null&&(a.pixelHeight=a.el.offsetHeight)),a.rowCount==null&&(a.rowCount=a.pixelHeight/o.layerConfig.lineHeight);var l=this.session.getFoldAt(a.row,0);if(a.$fold=l,l){var c=this.session.lineWidgets;a.row==l.end.row&&!c[l.start.row]?c[l.start.row]=a:a.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows(),this.renderWidgets(null,o),this.onWidgetChanged(a),a},s.prototype.removeLineWidget=function(a){if(a._inDocument=!1,a.session=null,a.el&&a.el.parentNode&&a.el.parentNode.removeChild(a.el),a.editor&&a.editor.destroy)try{a.editor.destroy()}catch{}if(this.session.lineWidgets){var o=this.session.lineWidgets[a.row];if(o==a)this.session.lineWidgets[a.row]=a.$oldWidget,a.$oldWidget&&this.onWidgetChanged(a.$oldWidget);else for(;o;){if(o.$oldWidget==a){o.$oldWidget=a.$oldWidget;break}o=o.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows()},s.prototype.getWidgetsAtRow=function(a){for(var o=this.session.lineWidgets,l=o&&o[a],c=[];l;)c.push(l),l=l.$oldWidget;return c},s.prototype.onWidgetChanged=function(a){this.session._changedWidgets.push(a),this.editor&&this.editor.renderer.updateFull()},s.prototype.measureWidgets=function(a,o){var l=this.session._changedWidgets,c=o.layerConfig;if(!(!l||!l.length)){for(var u=1/0,d=0;d0&&!c[u];)u--;this.firstRow=l.firstRow,this.lastRow=l.lastRow,o.$cursorLayer.config=l;for(var h=u;h<=d;h++){var m=c[h];if(!(!m||!m.el)){if(m.hidden){m.el.style.top=-100-(m.pixelHeight||0)+"px";continue}m._inDocument||(m._inDocument=!0,o.container.appendChild(m.el));var f=o.$cursorLayer.getPixelPosition({row:h,column:0},!0).top;m.coverLine||(f+=l.lineHeight*this.session.getRowLineCount(m.row)),m.el.style.top=f-l.offset+"px";var p=m.coverGutter?0:o.gutterWidth;m.fixedWidth||(p-=o.scrollLeft),m.el.style.left=p+"px",m.fullWidth&&m.screenWidth&&(m.el.style.minWidth=l.width+2*l.padding+"px"),m.fixedWidth?m.el.style.right=o.scrollBar.getWidth()+"px":m.el.style.right=""}}}},s}();t.LineWidgets=r});ace.define("ace/apply_delta",["require","exports","module"],function(n,t,e){"use strict";function i(a,o){throw console.log("Invalid Delta:",a),"Invalid Delta: "+o}function r(a,o){return o.row>=0&&o.row=0&&o.column<=a[o.row].length}function s(a,o){o.action!="insert"&&o.action!="remove"&&i(o,"delta.action must be 'insert' or 'remove'"),o.lines instanceof Array||i(o,"delta.lines must be an Array"),(!o.start||!o.end)&&i(o,"delta.start/end must be an present");var l=o.start;r(a,o.start)||i(o,"delta.start must be contained in document");var c=o.end;o.action=="remove"&&!r(a,c)&&i(o,"delta.end must contained in document for 'remove' actions");var u=c.row-l.row,d=c.column-(u==0?l.column:0);(u!=o.lines.length-1||o.lines[u].length!=d)&&i(o,"delta.range must match delta lines")}t.applyDelta=function(a,o,l){var c=o.start.row,u=o.start.column,d=a[c]||"";switch(o.action){case"insert":var h=o.lines;if(h.length===1)a[c]=d.substring(0,u)+o.lines[0]+d.substring(u);else{var m=[c,1].concat(o.lines);a.splice.apply(a,m),a[c]=d.substring(0,u)+a[c],a[c+o.lines.length-1]+=d.substring(u)}break;case"remove":var f=o.end.column,p=o.end.row;c===p?a[c]=d.substring(0,u)+d.substring(f):a.splice(c,p-c+1,d.substring(0,u)+a[p].substring(f));break}}});ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/event_emitter").EventEmitter,s=function(){function l(c,u,d){this.$onChange=this.onChange.bind(this),this.attach(c),typeof u!="number"?this.setPosition(u.row,u.column):this.setPosition(u,d)}return l.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},l.prototype.getDocument=function(){return this.document},l.prototype.onChange=function(c){if(!(c.start.row==c.end.row&&c.start.row!=this.row)&&!(c.start.row>this.row)){var u=o(c,{row:this.row,column:this.column},this.$insertRight);this.setPosition(u.row,u.column,!0)}},l.prototype.setPosition=function(c,u,d){var h;if(d?h={row:c,column:u}:h=this.$clipPositionToDocument(c,u),!(this.row==h.row&&this.column==h.column)){var m={row:this.row,column:this.column};this.row=h.row,this.column=h.column,this._signal("change",{old:m,value:h})}},l.prototype.detach=function(){this.document.off("change",this.$onChange)},l.prototype.attach=function(c){this.document=c||this.document,this.document.on("change",this.$onChange)},l.prototype.$clipPositionToDocument=function(c,u){var d={};return c>=this.document.getLength()?(d.row=Math.max(0,this.document.getLength()-1),d.column=this.document.getLine(d.row).length):c<0?(d.row=0,d.column=0):(d.row=c,d.column=Math.min(this.document.getLine(d.row).length,Math.max(0,u))),u<0&&(d.column=0),d},l}();s.prototype.$insertRight=!1,i.implement(s.prototype,r);function a(l,c,u){var d=u?l.column<=c.column:l.column=h&&(u=h-1,d=void 0);var m=this.getLine(u);return d==null&&(d=m.length),d=Math.min(Math.max(d,0),m.length),{row:u,column:d}},c.prototype.clonePos=function(u){return{row:u.row,column:u.column}},c.prototype.pos=function(u,d){return{row:u,column:d}},c.prototype.$clipPosition=function(u){var d=this.getLength();return u.row>=d?(u.row=Math.max(0,d-1),u.column=this.getLine(d-1).length):(u.row=Math.max(0,u.row),u.column=Math.min(Math.max(u.column,0),this.getLine(u.row).length)),u},c.prototype.insertFullLines=function(u,d){u=Math.min(Math.max(u,0),this.getLength());var h=0;u0,m=d=0&&this.applyDelta({start:this.pos(u,this.getLine(u).length),end:this.pos(u+1,0),action:"remove",lines:["",""]})},c.prototype.replace=function(u,d){if(u instanceof a||(u=a.fromPoints(u.start,u.end)),d.length===0&&u.isEmpty())return u.start;if(d==this.getTextRange(u))return u.end;this.remove(u);var h;return d?h=this.insert(u.start,d):h=u.start,h},c.prototype.applyDeltas=function(u){for(var d=0;d=0;d--)this.revertDelta(u[d])},c.prototype.applyDelta=function(u,d){var h=u.action=="insert";(h?u.lines.length<=1&&!u.lines[0]:!a.comparePoints(u.start,u.end))||(h&&u.lines.length>2e4?this.$splitAndapplyLargeDelta(u,2e4):(r(this.$lines,u,d),this._signal("change",u)))},c.prototype.$safeApplyDelta=function(u){var d=this.$lines.length;(u.action=="remove"&&u.start.row20){c.running=setTimeout(c.$worker,20);break}}c.currentLine=d,h==-1&&(h=d),f<=h&&c.fireUpdateEvent(f,h)}}}return a.prototype.setTokenizer=function(o){this.tokenizer=o,this.lines=[],this.states=[],this.start(0)},a.prototype.setDocument=function(o){this.doc=o,this.lines=[],this.states=[],this.stop()},a.prototype.fireUpdateEvent=function(o,l){var c={first:o,last:l};this._signal("update",{data:c})},a.prototype.start=function(o){this.currentLine=Math.min(o||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},a.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},a.prototype.$updateOnChange=function(o){var l=o.start.row,c=o.end.row-l;if(c===0)this.lines[l]=null;else if(o.action=="remove")this.lines.splice(l,c+1,null),this.states.splice(l,c+1,null);else{var u=Array(c+1);u.unshift(l,1),this.lines.splice.apply(this.lines,u),this.states.splice.apply(this.states,u)}this.currentLine=Math.min(l,this.currentLine,this.doc.getLength()),this.stop()},a.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},a.prototype.getTokens=function(o){return this.lines[o]||this.$tokenizeRow(o)},a.prototype.getState=function(o){return this.currentLine==o&&this.$tokenizeRow(o),this.states[o]||"start"},a.prototype.$tokenizeRow=function(o){var l=this.doc.getLine(o),c=this.states[o-1],u=this.tokenizer.getLineTokens(l,c,o);return this.states[o]+""!=u.state+""?(this.states[o]=u.state,this.lines[o+1]=null,this.currentLine>o+1&&(this.currentLine=o+1)):this.currentLine==o&&(this.currentLine=o+1),this.lines[o]=u.tokens},a.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},a}();i.implement(s.prototype,r),t.BackgroundTokenizer=s});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(n,t,e){"use strict";var i=n("./lib/lang"),r=n("./range").Range,s=function(){function a(o,l,c){c===void 0&&(c="text"),this.setRegexp(o),this.clazz=l,this.type=c,this.docLen=0}return a.prototype.setRegexp=function(o){this.regExp+""!=o+""&&(this.regExp=o,this.cache=[])},a.prototype.update=function(o,l,c,u){if(this.regExp){for(var d=u.firstRow,h=u.lastRow,m={},f=c.$editor&&c.$editor.$search,p=f&&f.$isMultilineSearch(c.$editor.getLastSearchOptions()),g=d;g<=h;g++){var y=this.cache[g];if(y==null||c.getValue().length!=this.docLen){if(p){y=[];var w=f.$multiLineForward(c,this.regExp,g,h);if(w){var k=w.endRow<=h?w.endRow-1:h;k>g&&(g=k),y.push(new r(w.startRow,w.startCol,w.endRow,w.endCol))}y.length>this.MAX_RANGES&&(y=y.slice(0,this.MAX_RANGES))}else y=i.getMatchOffsets(c.getLine(g),this.regExp),y.length>this.MAX_RANGES&&(y=y.slice(0,this.MAX_RANGES)),y=y.map(function(T){return new r(g,T.offset,g,T.offset+T.length)});this.cache[g]=y.length?y:""}if(y.length!==0)for(var x=y.length;x--;){var C=y[x].toScreenRange(c),A=C.toString();m[A]||(m[A]=!0,l.drawSingleLineMarker(o,C,this.clazz,u))}}this.docLen=c.getValue().length}},a}();s.prototype.MAX_RANGES=500,t.SearchHighlight=s});ace.define("ace/undomanager",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=function(){function C(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return C.prototype.addSession=function(A){this.$session=A},C.prototype.add=function(A,T,E){if(!this.$fromUndo&&A!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),T===!1||!this.lastDeltas){this.lastDeltas=[];var L=this.$undoStack.length;L>this.$undoDepth-1&&this.$undoStack.splice(0,L-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),A.id=this.$rev=++this.$maxRev}(A.action=="remove"||A.action=="insert")&&(this.$lastDelta=A),this.lastDeltas.push(A)}},C.prototype.addSelection=function(A,T){this.selections.push({value:A,rev:T||this.$rev})},C.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},C.prototype.markIgnored=function(A,T){T==null&&(T=this.$rev+1);for(var E=this.$undoStack,L=E.length;L--;){var S=E[L][0];if(S.id<=A)break;S.id0},C.prototype.canRedo=function(){return this.$redoStack.length>0},C.prototype.bookmark=function(A){A==null&&(A=this.$rev),this.mark=A},C.prototype.isAtBookmark=function(){return this.$rev===this.mark},C.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},C.prototype.fromJSON=function(A){this.reset(),this.$undoStack=A.$undoStack,this.$redoStack=A.$redoStack},C.prototype.$prettyPrint=function(A){return A?d(A):d(this.$undoStack)+` +--- +`+d(this.$redoStack)},C}();i.prototype.hasUndo=i.prototype.canUndo,i.prototype.hasRedo=i.prototype.canRedo,i.prototype.isClean=i.prototype.isAtBookmark,i.prototype.markClean=i.prototype.bookmark;function r(C,A){for(var T=A;T--;){var E=C[T];if(E&&!E[0].ignore){for(;T0){_.row+=L,_.column+=_.row==E.row?S:0;continue}!A&&M<=0&&(_.row=T.row,_.column=T.column,M===0&&(_.bias=1))}}}function c(C){return{row:C.row,column:C.column}}function u(C){return{start:c(C.start),end:c(C.end),action:C.action,lines:C.lines.slice()}}function d(C){if(C=C||this,Array.isArray(C))return C.map(d).join(` +`);var A="";return C.action?(A=C.action=="insert"?"+":"-",A+="["+C.lines+"]"):C.value&&(Array.isArray(C.value)?A=C.value.map(h).join(` +`):A=h(C.value)),C.start&&(A+=h(C)),(C.id||C.rev)&&(A+=" ("+(C.id||C.rev)+")"),A}function h(C){return C.start.row+":"+C.start.column+"=>"+C.end.row+":"+C.end.column}function m(C,A){var T=C.action=="insert",E=A.action=="insert";if(T&&E)if(a(A.start,C.end)>=0)g(A,C,-1);else if(a(A.start,C.start)<=0)g(C,A,1);else return null;else if(T&&!E)if(a(A.start,C.end)>=0)g(A,C,-1);else if(a(A.end,C.start)<=0)g(C,A,-1);else return null;else if(!T&&E)if(a(A.start,C.start)>=0)g(A,C,1);else if(a(A.start,C.start)<=0)g(C,A,1);else return null;else if(!T&&!E)if(a(A.start,C.start)>=0)g(A,C,1);else if(a(A.end,C.start)<=0)g(C,A,-1);else return null;return[A,C]}function f(C,A){for(var T=C.length;T--;)for(var E=0;E=0?g(C,A,-1):(a(C.start,A.start)<=0||g(C,s.fromPoints(A.start,C.start),-1),g(A,C,1));else if(!T&&E)a(A.start,C.end)>=0?g(A,C,-1):(a(A.start,C.start)<=0||g(A,s.fromPoints(C.start,A.start),-1),g(C,A,1));else if(!T&&!E)if(a(A.start,C.end)>=0)g(A,C,-1);else if(a(A.end,C.start)<=0)g(C,A,-1);else{var L,S;return a(C.start,A.start)<0&&(L=C,C=w(C,A.start)),a(C.end,A.end)>0&&(S=w(C,A.end)),y(A.end,C.start,C.end,-1),S&&!L&&(C.lines=S.lines,C.start=S.start,C.end=S.end,S=C),[A,L,S].filter(Boolean)}return[A,C]}function g(C,A,T){y(C.start,A.start,A.end,T),y(C.end,A.start,A.end,T)}function y(C,A,T,E){C.row==(E==1?A:T).row&&(C.column+=E*(T.column-A.column)),C.row+=E*(T.row-A.row)}function w(C,A){var T=C.lines,E=C.end;C.end=c(A);var L=C.end.row-C.start.row,S=T.splice(L,T.length),v=L?A.column:A.column-C.start.column;T.push(S[0].substring(0,v)),S[0]=S[0].substr(v);var _={start:c(A),end:E,lines:S,action:C.action};return _}function k(C,A){A=u(A);for(var T=C.length;T--;){for(var E=C[T],L=0;Lthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(a),this.folds.sort(function(o,l){return-o.range.compareEnd(l.start.row,l.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");a.foldLine=this},s.prototype.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},s.prototype.walk=function(a,o,l){var c=0,u=this.folds,d,h,m,f=!0;o==null&&(o=this.end.row,l=this.end.column);for(var p=0;p0)){var f=r(o,h.start);return m===0?l&&f!==0?-d-2:d:f>0||f===0&&!l?d:-d-1}}return-d-1},a.prototype.add=function(o){var l=!o.isEmpty(),c=this.pointIndex(o.start,l);c<0&&(c=-c-1);var u=this.pointIndex(o.end,l,c);return u<0?u=-u-1:u++,this.ranges.splice(c,u-c,o)},a.prototype.addList=function(o){for(var l=[],c=o.length;c--;)l.push.apply(l,this.add(o[c]));return l},a.prototype.substractPoint=function(o){var l=this.pointIndex(o);if(l>=0)return this.ranges.splice(l,1)},a.prototype.merge=function(){var o=[],l=this.ranges;l=l.sort(function(m,f){return r(m.start,f.start)});for(var c=l[0],u,d=1;d=0},a.prototype.containsPoint=function(o){return this.pointIndex(o)>=0},a.prototype.rangeAtPoint=function(o){var l=this.pointIndex(o);if(l>=0)return this.ranges[l]},a.prototype.clipRows=function(o,l){var c=this.ranges;if(c[0].start.row>l||c[c.length-1].start.row=u)break}if(o.action=="insert")for(var g=d-u,y=-l.column+c.column;mu)break;if(p.start.row==u&&p.start.column>=l.column&&(p.start.column==l.column&&this.$bias<=0||(p.start.column+=y,p.start.row+=g)),p.end.row==u&&p.end.column>=l.column){if(p.end.column==l.column&&this.$bias<0)continue;p.end.column==l.column&&y>0&&mp.start.column&&p.end.column==h[m+1].start.column&&(p.end.column-=y),p.end.column+=y,p.end.row+=g}}else for(var g=u-d,y=l.column-c.column;md)break;p.end.rowl.column)&&(p.end.column=l.column,p.end.row=l.row):(p.end.column+=y,p.end.row+=g):p.end.row>d&&(p.end.row+=g),p.start.rowl.column)&&(p.start.column=l.column,p.start.row=l.row):(p.start.column+=y,p.start.row+=g):p.start.row>d&&(p.start.row+=g)}if(g!=0&&m=c)return m;if(m.end.row>c)return null}return null},this.getNextFoldLine=function(c,u){var d=this.$foldData,h=0;for(u&&(h=d.indexOf(u)),h==-1&&(h=0),h;h=c)return m}return null},this.getFoldedRowCount=function(c,u){for(var d=this.$foldData,h=u-c+1,m=0;m=u){g=c?h-=u-g:h=0);break}else p>=c&&(g>=c?h-=p-g:h-=p-c+1)}return h},this.$addFoldLine=function(c){return this.$foldData.push(c),this.$foldData.sort(function(u,d){return u.start.row-d.start.row}),c},this.addFold=function(c,u){var d=this.$foldData,h=!1,m;c instanceof s?m=c:(m=new s(u,c),m.collapseChildren=u.collapseChildren),this.$clipRangeToDocument(m.range);var f=m.start.row,p=m.start.column,g=m.end.row,y=m.end.column,w=this.getFoldAt(f,p,1),k=this.getFoldAt(g,y,-1);if(w&&k==w)return w.addSubFold(m);w&&!w.range.isStart(f,p)&&this.removeFold(w),k&&!k.range.isEnd(g,y)&&this.removeFold(k);var x=this.getFoldsInRange(m.range);x.length>0&&(this.removeFolds(x),m.collapseChildren||x.forEach(function(E){m.addSubFold(E)}));for(var C=0;C0&&this.foldAll(c.start.row+1,c.end.row,c.collapseChildren-1),c.subFolds=[]},this.expandFolds=function(c){c.forEach(function(u){this.expandFold(u)},this)},this.unfold=function(c,u){var d,h;if(c==null)d=new i(0,0,this.getLength(),0),u==null&&(u=!0);else if(typeof c=="number")d=new i(c,0,c,this.getLine(c).length);else if("row"in c)d=i.fromPoints(c,c);else{if(Array.isArray(c))return h=[],c.forEach(function(f){h=h.concat(this.unfold(f))},this),h;d=c}h=this.getFoldsInRangeList(d);for(var m=h;h.length==1&&i.comparePoints(h[0].start,d.start)<0&&i.comparePoints(h[0].end,d.end)>0;)this.expandFolds(h),h=this.getFoldsInRangeList(d);if(u!=!1?this.removeFolds(h):this.expandFolds(h),m.length)return m},this.isRowFolded=function(c,u){return!!this.getFoldLine(c,u)},this.getRowFoldEnd=function(c,u){var d=this.getFoldLine(c,u);return d?d.end.row:c},this.getRowFoldStart=function(c,u){var d=this.getFoldLine(c,u);return d?d.start.row:c},this.getFoldDisplayLine=function(c,u,d,h,m){h==null&&(h=c.start.row),m==null&&(m=0),u==null&&(u=c.end.row),d==null&&(d=this.getLine(u).length);var f=this.doc,p="";return c.walk(function(g,y,w,k){if(!(yw)break;while(m&&p.test(m.type));m=h.stepBackward()}else m=h.getCurrentToken();return g.end.row=h.getCurrentTokenRow(),g.end.column=h.getCurrentTokenColumn(),g.start.row==g.end.row&&g.start.column>g.end.column?void 0:g}},this.foldAll=function(c,u,d,h){d==null&&(d=1e5);var m=this.foldWidgets;if(m){u=u||this.getLength(),c=c||0;for(var f=c;f=c&&(f=p.end.row,p.collapseChildren=d,this.addFold("...",p))}}},this.foldToLevel=function(c){for(this.foldAll();c-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var c=this;this.foldAll(null,null,null,function(u){for(var d=c.getTokens(u),h=0;h=0;){var f=d[h];if(f==null&&(f=d[h]=this.getFoldWidget(h)),f=="start"){var p=this.getFoldWidgetRange(h);if(m||(m=p),p&&p.end.row>=c)break}h--}return{range:h!==-1&&p,firstRange:m}},this.onFoldWidgetClick=function(c,u){u instanceof o&&(u=u.domEvent);var d={children:u.shiftKey,all:u.ctrlKey||u.metaKey,siblings:u.altKey},h=this.$toggleFoldWidget(c,d);if(!h){var m=u.target||u.srcElement;m&&/ace_fold-widget/.test(m.className)&&(m.className+=" ace_invalid")}},this.$toggleFoldWidget=function(c,u){if(this.getFoldWidget){var d=this.getFoldWidget(c),h=this.getLine(c),m=d==="end"?-1:1,f=this.getFoldAt(c,m===-1?0:h.length,m);if(f)return u.children||u.all?this.removeFold(f):this.expandFold(f),f;var p=this.getFoldWidgetRange(c,!0);if(p&&!p.isMultiLine()&&(f=this.getFoldAt(p.start.row,p.start.column,1),f&&p.isEqual(f.range)))return this.removeFold(f),f;if(u.siblings){var g=this.getParentFoldRangeData(c);if(g.range)var y=g.range.start.row+1,w=g.range.end.row;this.foldAll(y,w,u.all?1e4:0)}else u.children?(w=p?p.end.row:this.getLength(),this.foldAll(c+1,w,u.all?1e4:0)):p&&(u.all&&(p.collapseChildren=1e4),this.addFold("...",p));return p}},this.toggleFoldWidget=function(c){var u=this.selection.getCursor().row;u=this.getRowFoldStart(u);var d=this.$toggleFoldWidget(u,{});if(!d){var h=this.getParentFoldRangeData(u,!0);if(d=h.range||h.firstRange,d){u=d.start.row;var m=this.getFoldAt(u,this.getLine(u).length,1);m?this.removeFold(m):this.addFold("...",d)}}},this.updateFoldWidgets=function(c){var u=c.start.row,d=c.end.row-u;if(d===0)this.foldWidgets[u]=null;else if(c.action=="remove")this.foldWidgets.splice(u,d+1,null);else{var h=Array(d+1);h.unshift(u,1),this.foldWidgets.splice.apply(this.foldWidgets,h)}},this.tokenizerUpdateFoldWidgets=function(c){var u=c.data;u.first!=u.last&&this.foldWidgets.length>u.first&&this.foldWidgets.splice(u.first,this.foldWidgets.length)}}t.Folding=l});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(n,t,e){"use strict";var i=n("../token_iterator").TokenIterator,r=n("../range").Range;function s(){this.findMatchingBracket=function(a,o){if(a.column==0)return null;var l=o||this.getLine(a.row).charAt(a.column-1);if(l=="")return null;var c=l.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.getBracketRange=function(a){var o=this.getLine(a.row),l=!0,c,u=o.charAt(a.column-1),d=u&&u.match(/([\(\[\{])|([\)\]\}])/);if(d||(u=o.charAt(a.column),a={row:a.row,column:a.column+1},d=u&&u.match(/([\(\[\{])|([\)\]\}])/),l=!1),!d)return null;if(d[1]){var h=this.$findClosingBracket(d[1],a);if(!h)return null;c=r.fromPoints(a,h),l||(c.end.column++,c.start.column--),c.cursor=c.end}else{var h=this.$findOpeningBracket(d[2],a);if(!h)return null;c=r.fromPoints(h,a),l||(c.start.column++,c.end.column--),c.cursor=c.start}return c},this.getMatchingBracketRanges=function(a,o){var l=this.getLine(a.row),c=/([\(\[\{])|([\)\]\}])/,u=!o&&l.charAt(a.column-1),d=u&&u.match(c);if(d||(u=(o===void 0||o)&&l.charAt(a.column),a={row:a.row,column:a.column+1},d=u&&u.match(c)),!d)return null;var h=new r(a.row,a.column-1,a.row,a.column),m=d[1]?this.$findClosingBracket(d[1],a):this.$findOpeningBracket(d[2],a);if(!m)return[h];var f=new r(m.row,m.column,m.row,m.column+1);return[h,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,o,l){var c=this.$brackets[a],u=1,d=new i(this,o.row,o.column),h=d.getCurrentToken();if(h||(h=d.stepForward()),!!h){l||(l=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var m=o.column-d.getCurrentTokenColumn()-2,f=h.value;;){for(;m>=0;){var p=f.charAt(m);if(p==c){if(u-=1,u==0)return{row:d.getCurrentTokenRow(),column:m+d.getCurrentTokenColumn()}}else p==a&&(u+=1);m-=1}do h=d.stepBackward();while(h&&!l.test(h.type));if(h==null)break;f=h.value,m=f.length-1}return null}},this.$findClosingBracket=function(a,o,l){var c=this.$brackets[a],u=1,d=new i(this,o.row,o.column),h=d.getCurrentToken();if(h||(h=d.stepForward()),!!h){l||(l=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var m=o.column-d.getCurrentTokenColumn();;){for(var f=h.value,p=f.length;m"?c=!0:o.type.indexOf("tag-name")!==-1&&(l=!0));while(o&&!l);return o},this.$findClosingTag=function(a,o){var l,c=o.value,u=o.value,d=0,h=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);o=a.stepForward();var m=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+o.value.length),f=!1;do{if(l=o,l.type.indexOf("tag-close")!==-1&&!f){var p=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(o=a.stepForward(),o){if(o.value===">"&&!f){var p=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(o.type.indexOf("tag-name")!==-1){if(c=o.value,u===c){if(l.value==="<")d++;else if(l.value==="")var w=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);else return}}}else if(u===c&&o.value==="/>"&&(d--,d<0))var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),y=g,w=y,p=new r(m.end.row,m.end.column,m.end.row,m.end.column+1)}}while(o&&d>=0);if(h&&p&&g&&w&&m&&y)return{openTag:new r(h.start.row,h.start.column,p.end.row,p.end.column),closeTag:new r(g.start.row,g.start.column,w.end.row,w.end.column),openTagName:m,closeTagName:y}},this.$findOpeningTag=function(a,o){var l=a.getCurrentToken(),c=o.value,u=0,d=a.getCurrentTokenRow(),h=a.getCurrentTokenColumn(),m=h+2,f=new r(d,h,d,m);a.stepForward();var p=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+o.value.length);if(o.type.indexOf("tag-close")===-1&&(o=a.stepForward()),!(!o||o.value!==">")){var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do if(o=l,d=a.getCurrentTokenRow(),h=a.getCurrentTokenColumn(),m=h+o.value.length,l=a.stepBackward(),o){if(o.type.indexOf("tag-name")!==-1){if(c===o.value)if(l.value==="<"){if(u++,u>0){var y=new r(d,h,d,m),w=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do o=a.stepForward();while(o&&o.value!==">");var k=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else l.value===""){for(var x=0,C=l;C;){if(C.type.indexOf("tag-name")!==-1&&C.value===c){u--;break}else if(C.value==="<")break;C=a.stepBackward(),x++}for(var A=0;Ab&&(this.$docRowCache.splice(b,_),this.$screenRowCache.splice(b,_))},S.prototype.$getRowCacheIndex=function(v,_){for(var b=0,M=v.length-1;b<=M;){var I=b+M>>1,D=v[I];if(_>D)b=I+1;else if(_=_));D++);return M=b[D],M?(M.index=D,M.start=I-M.value.length,M):null},S.prototype.setUndoManager=function(v){if(this.$undoManager=v,this.$informUndoManager&&this.$informUndoManager.cancel(),v){var _=this;v.addSession(this),this.$syncInformUndoManager=function(){_.$informUndoManager.cancel(),_.mergeUndoDeltas=!1},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},S.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},S.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},S.prototype.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):" "},S.prototype.setUseSoftTabs=function(v){this.setOption("useSoftTabs",v)},S.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},S.prototype.setTabSize=function(v){this.setOption("tabSize",v)},S.prototype.getTabSize=function(){return this.$tabSize},S.prototype.isTabStop=function(v){return this.$useSoftTabs&&v.column%this.$tabSize===0},S.prototype.setNavigateWithinSoftTabs=function(v){this.setOption("navigateWithinSoftTabs",v)},S.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},S.prototype.setOverwrite=function(v){this.setOption("overwrite",v)},S.prototype.getOverwrite=function(){return this.$overwrite},S.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},S.prototype.addGutterDecoration=function(v,_){this.$decorations[v]||(this.$decorations[v]=""),this.$decorations[v]+=" "+_,this._signal("changeBreakpoint",{})},S.prototype.removeGutterCustomWidget=function(v){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget(v)},S.prototype.addGutterCustomWidget=function(v,_){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget(v,_)},S.prototype.removeGutterDecoration=function(v,_){this.$decorations[v]=(this.$decorations[v]||"").replace(" "+_,""),this._signal("changeBreakpoint",{})},S.prototype.getBreakpoints=function(){return this.$breakpoints},S.prototype.setBreakpoints=function(v){this.$breakpoints=[];for(var _=0;_0&&(M=!!b.charAt(_-1).match(this.tokenRe)),M||(M=!!b.charAt(_).match(this.tokenRe)),M)var I=this.tokenRe;else if(/^\s+$/.test(b.slice(_-1,_+1)))var I=/\s/;else var I=this.nonTokenRe;var D=_;if(D>0){do D--;while(D>=0&&b.charAt(D).match(I));D++}for(var O=_;Ov&&(v=_.screenWidth)}),this.lineWidgetWidth=v},S.prototype.$computeWidth=function(v){if(this.$modified||v){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var _=this.doc.getAllLines(),b=this.$rowLengthCache,M=0,I=0,D=this.$foldData[I],O=D?D.start.row:1/0,N=_.length,F=0;FO){if(F=D.end.row+1,F>=N)break;D=this.$foldData[I++],O=D?D.start.row:1/0}b[F]==null&&(b[F]=this.$getStringScreenWidth(_[F])[0]),b[F]>M&&(M=b[F])}this.screenWidth=M}},S.prototype.getLine=function(v){return this.doc.getLine(v)},S.prototype.getLines=function(v,_){return this.doc.getLines(v,_)},S.prototype.getLength=function(){return this.doc.getLength()},S.prototype.getTextRange=function(v){return this.doc.getTextRange(v||this.selection.getRange())},S.prototype.insert=function(v,_){return this.doc.insert(v,_)},S.prototype.remove=function(v){return this.doc.remove(v)},S.prototype.removeFullLines=function(v,_){return this.doc.removeFullLines(v,_)},S.prototype.undoChanges=function(v,_){if(v.length){this.$fromUndo=!0;for(var b=v.length-1;b!=-1;b--){var M=v[b];M.action=="insert"||M.action=="remove"?this.doc.revertDelta(M):M.folds&&this.addFolds(M.folds)}!_&&this.$undoSelect&&(v.selectionBefore?this.selection.fromJSON(v.selectionBefore):this.selection.setRange(this.$getUndoSelection(v,!0))),this.$fromUndo=!1}},S.prototype.redoChanges=function(v,_){if(v.length){this.$fromUndo=!0;for(var b=0;bv.end.column&&(D.start.column+=N),D.end.row==v.end.row&&D.end.column>v.end.column&&(D.end.column+=N)),O&&D.start.row>=v.end.row&&(D.start.row+=O,D.end.row+=O)}if(D.end=this.insert(D.start,M),I.length){var F=v.start,z=D.start,O=z.row-F.row,N=z.column-F.column;this.addFolds(I.map(function(W){return W=W.clone(),W.start.row==F.row&&(W.start.column+=N),W.end.row==F.row&&(W.end.column+=N),W.start.row+=O,W.end.row+=O,W}))}return D},S.prototype.indentRows=function(v,_,b){b=b.replace(/\t/g,this.getTabString());for(var M=v;M<=_;M++)this.doc.insertInLine({row:M,column:0},b)},S.prototype.outdentRows=function(v){for(var _=v.collapseRows(),b=new u(0,0,0,0),M=this.getTabSize(),I=_.start.row;I<=_.end.row;++I){var D=this.getLine(I);b.start.row=I,b.end.row=I;for(var O=0;O0){var M=this.getRowFoldEnd(_+b);if(M>this.doc.getLength()-1)return 0;var I=M-_}else{v=this.$clipRowToDocument(v),_=this.$clipRowToDocument(_);var I=_-v+1}var D=new u(v,0,_,Number.MAX_VALUE),O=this.getFoldsInRange(D).map(function(F){return F=F.clone(),F.start.row+=I,F.end.row+=I,F}),N=b==0?this.doc.getLines(v,_):this.doc.removeFullLines(v,_);return this.doc.insertFullLines(v+I,N),O.length&&this.addFolds(O),I},S.prototype.moveLinesUp=function(v,_){return this.$moveLines(v,_,-1)},S.prototype.moveLinesDown=function(v,_){return this.$moveLines(v,_,1)},S.prototype.duplicateLines=function(v,_){return this.$moveLines(v,_,0)},S.prototype.$clipRowToDocument=function(v){return Math.max(0,Math.min(v,this.doc.getLength()-1))},S.prototype.$clipColumnToRow=function(v,_){return _<0?0:Math.min(this.doc.getLine(v).length,_)},S.prototype.$clipPositionToDocument=function(v,_){if(_=Math.max(0,_),v<0)v=0,_=0;else{var b=this.doc.getLength();v>=b?(v=b-1,_=this.doc.getLine(b-1).length):_=Math.min(this.doc.getLine(v).length,_)}return{row:v,column:_}},S.prototype.$clipRangeToDocument=function(v){v.start.row<0?(v.start.row=0,v.start.column=0):v.start.column=this.$clipColumnToRow(v.start.row,v.start.column);var _=this.doc.getLength()-1;return v.end.row>_?(v.end.row=_,v.end.column=this.doc.getLine(_).length):v.end.column=this.$clipColumnToRow(v.end.row,v.end.column),v},S.prototype.setUseWrapMode=function(v){if(v!=this.$useWrapMode){if(this.$useWrapMode=v,this.$modified=!0,this.$resetRowCache(0),v){var _=this.getLength();this.$wrapData=Array(_),this.$updateWrapData(0,_-1)}this._signal("changeWrapMode")}},S.prototype.getUseWrapMode=function(){return this.$useWrapMode},S.prototype.setWrapLimitRange=function(v,_){(this.$wrapLimitRange.min!==v||this.$wrapLimitRange.max!==_)&&(this.$wrapLimitRange={min:v,max:_},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},S.prototype.adjustWrapLimit=function(v,_){var b=this.$wrapLimitRange;b.max<0&&(b={min:_,max:_});var M=this.$constrainWrapLimit(v,b.min,b.max);return M!=this.$wrapLimit&&M>1?(this.$wrapLimit=M,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},S.prototype.$constrainWrapLimit=function(v,_,b){return _&&(v=Math.max(_,v)),b&&(v=Math.min(b,v)),v},S.prototype.getWrapLimit=function(){return this.$wrapLimit},S.prototype.setWrapLimit=function(v){this.setWrapLimitRange(v,v)},S.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},S.prototype.$updateInternalDataOnChange=function(v){var _=this.$useWrapMode,b=v.action,M=v.start,I=v.end,D=M.row,O=I.row,N=O-D,F=null;if(this.$updating=!0,N!=0)if(b==="remove"){this[_?"$wrapData":"$rowLengthCache"].splice(D,N);var z=this.$foldData;F=this.getFoldsInRange(v),this.removeFolds(F);var V=this.getFoldLine(I.row),K=0;if(V){V.addRemoveChars(I.row,I.column,M.column-I.column),V.shiftRow(-N);var W=this.getFoldLine(D);W&&W!==V&&(W.merge(V),V=W),K=z.indexOf(V)+1}for(K;K=I.row&&V.shiftRow(-N)}O=D}else{var q=Array(N);q.unshift(D,0);var ae=_?this.$wrapData:this.$rowLengthCache;ae.splice.apply(ae,q);var z=this.$foldData,V=this.getFoldLine(D),K=0;if(V){var pe=V.range.compareInside(M.row,M.column);pe==0?(V=V.split(M.row,M.column),V&&(V.shiftRow(N),V.addRemoveChars(O,0,I.column-M.column))):pe==-1&&(V.addRemoveChars(D,0,I.column-M.column),V.shiftRow(N)),K=z.indexOf(V)+1}for(K;K=D&&V.shiftRow(N)}}else{N=Math.abs(v.start.column-v.end.column),b==="remove"&&(F=this.getFoldsInRange(v),this.removeFolds(F),N=-N);var V=this.getFoldLine(D);V&&V.addRemoveChars(D,M.column,N)}return _&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,_?this.$updateWrapData(D,O):this.$updateRowLengthCache(D,O),F},S.prototype.$updateRowLengthCache=function(v,_){this.$rowLengthCache[v]=null,this.$rowLengthCache[_]=null},S.prototype.$updateWrapData=function(v,_){var b=this.doc.getAllLines(),M=this.getTabSize(),I=this.$wrapData,D=this.$wrapLimit,O,N,F=v;for(_=Math.min(_,b.length-1);F<=_;)N=this.getFoldLine(F,N),N?(O=[],N.walk(function(z,V,K,W){var q;if(z!=null){q=this.$getDisplayTokens(z,O.length),q[0]=k;for(var ae=1;ae_-W;){var q=D+_-W;if(v[q-1]>=A&&v[q]>=A){K(q);continue}if(v[q]==k||v[q]==x){for(q;q!=D-1&&v[q]!=k;q--);if(q>D){K(q);continue}for(q=D+_,q;q>2)),D-1);q>ae&&v[q]ae&&v[q]ae&&v[q]==C;)q--}else for(;q>ae&&v[q]ae){K(++q);continue}q=D+_,v[q]==w&&q--,K(q-W)}return M},S.prototype.$getDisplayTokens=function(v,_){var b=[],M;_=_||0;for(var I=0;I39&&D<48||D>57&&D<64?b.push(C):D>=4352&&L(D)?b.push(y,w):b.push(y)}return b},S.prototype.$getStringScreenWidth=function(v,_,b){if(_==0)return[0,0];_==null&&(_=1/0),b=b||0;var M,I;for(I=0;I=4352&&L(M)?b+=2:b+=1,!(b>_));I++);return[b,I]},S.prototype.getRowLength=function(v){var _=1;return this.lineWidgets&&(_+=this.lineWidgets[v]&&this.lineWidgets[v].rowCount||0),!this.$useWrapMode||!this.$wrapData[v]?_:this.$wrapData[v].length+_},S.prototype.getRowLineCount=function(v){return!this.$useWrapMode||!this.$wrapData[v]?1:this.$wrapData[v].length+1},S.prototype.getRowWrapIndent=function(v){if(this.$useWrapMode){var _=this.screenToDocumentPosition(v,Number.MAX_VALUE),b=this.$wrapData[_.row];return b.length&&b[0]<_.column?b.indent:0}else return 0},S.prototype.getScreenLastRowColumn=function(v){var _=this.screenToDocumentPosition(v,Number.MAX_VALUE);return this.documentToScreenColumn(_.row,_.column)},S.prototype.getDocumentLastRowColumn=function(v,_){var b=this.documentToScreenRow(v,_);return this.getScreenLastRowColumn(b)},S.prototype.getDocumentLastRowColumnPosition=function(v,_){var b=this.documentToScreenRow(v,_);return this.screenToDocumentPosition(b,Number.MAX_VALUE/10)},S.prototype.getRowSplitData=function(v){if(this.$useWrapMode)return this.$wrapData[v]},S.prototype.getScreenTabSize=function(v){return this.$tabSize-(v%this.$tabSize|0)},S.prototype.screenToDocumentRow=function(v,_){return this.screenToDocumentPosition(v,_).row},S.prototype.screenToDocumentColumn=function(v,_){return this.screenToDocumentPosition(v,_).column},S.prototype.screenToDocumentPosition=function(v,_,b){if(v<0)return{row:0,column:0};var M,I=0,D=0,O,N=0,F=0,z=this.$screenRowCache,V=this.$getRowCacheIndex(z,v),K=z.length;if(K&&V>=0)var N=z[V],I=this.$docRowCache[V],W=v>z[K-1];else var W=!K;for(var q=this.getLength()-1,ae=this.getNextFoldLine(I),pe=ae?ae.start.row:1/0;N<=v&&(F=this.getRowLength(I),!(N+F>v||I>=q));)N+=F,I++,I>pe&&(I=ae.end.row+1,ae=this.getNextFoldLine(I,ae),pe=ae?ae.start.row:1/0),W&&(this.$docRowCache.push(I),this.$screenRowCache.push(N));if(ae&&ae.start.row<=I)M=this.getFoldDisplayLine(ae),I=ae.start.row;else{if(N+F<=v||I>q)return{row:q,column:this.getLine(q).length};M=this.getLine(I),ae=null}var ie=0,ne=Math.floor(v-N);if(this.$useWrapMode){var Ee=this.$wrapData[I];Ee&&(O=Ee[ne],ne>0&&Ee.length&&(ie=Ee.indent,D=Ee[ne-1]||Ee[Ee.length-1],M=M.substring(D)))}return b!==void 0&&this.$bidiHandler.isBidiRow(N+ne,I,ne)&&(_=this.$bidiHandler.offsetToCol(b)),D+=this.$getStringScreenWidth(M,_-ie)[1],this.$useWrapMode&&D>=O&&(D=O-1),ae?ae.idxToPosition(D):{row:I,column:D}},S.prototype.documentToScreenPosition=function(v,_){if(typeof _>"u")var b=this.$clipPositionToDocument(v.row,v.column);else b=this.$clipPositionToDocument(v,_);v=b.row,_=b.column;var M=0,I=null,D=null;D=this.getFoldAt(v,_,1),D&&(v=D.start.row,_=D.start.column);var O,N=0,F=this.$docRowCache,z=this.$getRowCacheIndex(F,v),V=F.length;if(V&&z>=0)var N=F[z],M=this.$screenRowCache[z],K=v>F[V-1];else var K=!V;for(var W=this.getNextFoldLine(N),q=W?W.start.row:1/0;N=q){if(O=W.end.row+1,O>v)break;W=this.getNextFoldLine(O,W),q=W?W.start.row:1/0}else O=N+1;M+=this.getRowLength(N),N=O,K&&(this.$docRowCache.push(N),this.$screenRowCache.push(M))}var ae="";W&&N>=q?(ae=this.getFoldDisplayLine(W,v,_),I=W.start.row):(ae=this.getLine(v).substring(0,_),I=v);var pe=0;if(this.$useWrapMode){var ie=this.$wrapData[I];if(ie){for(var ne=0;ae.length>=ie[ne];)M++,ne++;ae=ae.substring(ie[ne-1]||0,ae.length),pe=ne>0?ie.indent:0}}return this.lineWidgets&&this.lineWidgets[N]&&this.lineWidgets[N].rowsAbove&&(M+=this.lineWidgets[N].rowsAbove),{row:M,column:pe+this.$getStringScreenWidth(ae)[0]}},S.prototype.documentToScreenColumn=function(v,_){return this.documentToScreenPosition(v,_).column},S.prototype.documentToScreenRow=function(v,_){return this.documentToScreenPosition(v,_).row},S.prototype.getScreenLength=function(){var v=0,_=null;if(this.$useWrapMode)for(var I=this.$wrapData.length,D=0,M=0,_=this.$foldData[M++],O=_?_.start.row:1/0;DO&&(D=_.end.row+1,_=this.$foldData[M++],O=_?_.start.row:1/0)}else{v=this.getLength();for(var b=this.$foldData,M=0;Mb));D++);return[M,D]})},S.prototype.getPrecedingCharacter=function(){var v=this.selection.getCursor();if(v.column===0)return v.row===0?"":this.doc.getNewLineCharacter();var _=this.getLine(v.row);return _[v.column-1]},S.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},S}();g.$uid=0,g.prototype.$modes=a.$modes,g.prototype.getValue=g.prototype.toString,g.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},g.prototype.$overwrite=!1,g.prototype.$mode=null,g.prototype.$modeId=null,g.prototype.$scrollTop=0,g.prototype.$scrollLeft=0,g.prototype.$wrapLimit=80,g.prototype.$useWrapMode=!1,g.prototype.$wrapLimitRange={min:null,max:null},g.prototype.lineWidgets=null,g.prototype.isFullWidth=L,i.implement(g.prototype,o);var y=1,w=2,k=3,x=4,C=9,A=10,T=11,E=12;function L(S){return S<4352?!1:S>=4352&&S<=4447||S>=4515&&S<=4519||S>=4602&&S<=4607||S>=9001&&S<=9002||S>=11904&&S<=11929||S>=11931&&S<=12019||S>=12032&&S<=12245||S>=12272&&S<=12283||S>=12288&&S<=12350||S>=12353&&S<=12438||S>=12441&&S<=12543||S>=12549&&S<=12589||S>=12593&&S<=12686||S>=12688&&S<=12730||S>=12736&&S<=12771||S>=12784&&S<=12830||S>=12832&&S<=12871||S>=12880&&S<=13054||S>=13056&&S<=19903||S>=19968&&S<=42124||S>=42128&&S<=42182||S>=43360&&S<=43388||S>=44032&&S<=55203||S>=55216&&S<=55238||S>=55243&&S<=55291||S>=63744&&S<=64255||S>=65040&&S<=65049||S>=65072&&S<=65106||S>=65108&&S<=65126||S>=65128&&S<=65131||S>=65281&&S<=65376||S>=65504&&S<=65510}n("./edit_session/folding").Folding.call(g.prototype),n("./edit_session/bracket_match").BracketMatch.call(g.prototype),a.defineOptions(g.prototype,"session",{wrap:{set:function(S){if(!S||S=="off"?S=!1:S=="free"?S=!0:S=="printMargin"?S=-1:typeof S=="string"&&(S=parseInt(S,10)||!1),this.$wrap!=S)if(this.$wrap=S,!S)this.setUseWrapMode(!1);else{var v=typeof S=="number"?S:null;this.setWrapLimitRange(v,v),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(S){S=S=="auto"?this.$mode.type!="text":S!="text",S!=this.$wrapAsCode&&(this.$wrapAsCode=S,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(S){this.$useWorker=S,this.$stopWorker(),S&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(S){S=parseInt(S),S>0&&this.$tabSize!==S&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=S,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(S){this.setFoldStyle(S)},handlesSet:!0},overwrite:{set:function(S){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(S){this.doc.setNewLineMode(S)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(S){this.setMode(S)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=g});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(n,t,e){"use strict";var i=n("./lib/lang"),r=n("./lib/oop"),s=n("./range").Range,a=function(){function u(){this.$options={}}return u.prototype.set=function(d){return r.mixin(this.$options,d),this},u.prototype.getOptions=function(){return i.copyObject(this.$options)},u.prototype.setOptions=function(d){this.$options=d},u.prototype.find=function(d){var h=this.$options,m=this.$matchIterator(d,h);if(!m)return!1;var f=null;return m.forEach(function(p,g,y,w){return f=new s(p,g,y,w),g==w&&h.start&&h.start.start&&h.skipCurrent!=!1&&f.isEqual(h.start)?(f=null,!1):!0}),f},u.prototype.findAll=function(d){var h=this.$options;if(!h.needle)return[];this.$assembleRegExp(h);var m=h.range,f=m?d.getLines(m.start.row,m.end.row):d.doc.getAllLines(),p=[],g=h.re;if(h.$isMultiLine){var y=g.length,w=f.length-y,k;e:for(var x=g.offset||0;x<=w;x++){for(var C=0;CE||(p.push(k=new s(x,E,x+y-1,L)),y>2&&(x=x+y-2))}}else for(var S,v=0;vv&&(v=b),p.push(new s(S.startRow,S.startCol,S.endRow,S.endCol))}}else{S=i.getMatchOffsets(f[v],g);for(var C=0;CD&&p[C].end.row==O;)C--;for(p=p.slice(v,C+1),v=0,C=p.length;v=p){m+="\\";break}var y=d.charCodeAt(f);switch(y){case h.Backslash:m+="\\";break;case h.n:m+=` +`;break;case h.t:m+=" ";break}continue}if(g===h.DollarSign){if(f++,f>=p){m+="$";break}var w=d.charCodeAt(f);if(w===h.DollarSign){m+="$$";continue}if(w===h.Digit0||w===h.Ampersand){m+="$&";continue}if(h.Digit1<=w&&w<=h.Digit9){m+="$"+d[f];continue}}m+=d[f]}return m||d},u.prototype.replace=function(d,h){var m=this.$options,f=this.$assembleRegExp(m);if(m.$isMultiLine)return h;if(f){var p=this.$isMultilineSearch(m);p&&(d=d.replace(/\r\n|\r|\n/g,` +`));var g=f.exec(d);if(!g||!p&&g[0].length!=d.length)return null;if(h=m.regExp?this.parseReplaceString(h):h.replace(/\$/g,"$$$$"),h=d.replace(f,h),m.preserveCase){h=h.split("");for(var y=Math.min(d.length,d.length);y--;){var w=d[y];w&&w.toLowerCase()!=w?h[y]=h[y].toUpperCase():h[y]=h[y].toLowerCase()}h=h.join("")}return h}},u.prototype.$assembleRegExp=function(d,h){if(d.needle instanceof RegExp)return d.re=d.needle;var m=d.needle;if(!d.needle)return d.re=!1;d.regExp||(m=i.escapeRegExp(m));var f=d.caseSensitive?"gm":"gmi";try{new RegExp(m,"u"),d.$supportsUnicodeFlag=!0,f+="u"}catch{d.$supportsUnicodeFlag=!1}if(d.wholeWord&&(m=o(m,d)),d.$isMultiLine=!h&&/[\n\r]/.test(m),d.$isMultiLine)return d.re=this.$assembleMultilineRegExp(m,f);try{var p=new RegExp(m,f)}catch{p=!1}return d.re=p},u.prototype.$assembleMultilineRegExp=function(d,h){for(var m=d.replace(/\r\n|\r|\n/g,`$ +^`).split(` +`),f=[],p=0;pf);w++){var k=d.getLine(y++);p=p==null?k:p+` +`+k}var x=h.exec(p);if(h.lastIndex=0,x){var C=p.slice(0,x.index).split(` +`),A=x[0].split(` +`),T=m+C.length-1,E=C[C.length-1].length,L=T+A.length-1,S=A.length==1?E+A[0].length:A[A.length-1].length;return{startRow:T,startCol:E,endRow:L,endCol:S}}}return null},u.prototype.$multiLineBackward=function(d,h,m,f,p){for(var g,y=c(d,f),w=d.getLine(f).length-m,k=f;k>=p;){for(var x=0;x=p;x++){var C=d.getLine(k--);g=g==null?C:C+` +`+g}var A=l(g,h,w);if(A){var T=g.slice(0,A.index).split(` +`),E=A[0].split(` +`),L=k+T.length,S=T[T.length-1].length,v=L+E.length-1,_=E.length==1?S+E[0].length:E[E.length-1].length;return{startRow:L,startCol:S,endRow:v,endCol:_}}}return null},u.prototype.$matchIterator=function(d,h){var m=this.$assembleRegExp(h);if(!m)return!1;var f=this.$isMultilineSearch(h),p=this.$multiLineForward,g=this.$multiLineBackward,y=h.backwards==!0,w=h.skipCurrent!=!1,k=m.unicode,x=h.range,C=h.start;C||(C=x?x[y?"end":"start"]:d.selection.getRange()),C.start&&(C=C[w!=y?"end":"start"]);var A=x?x.start.row:0,T=x?x.end.row:d.getLength()-1;if(y)var E=function(v){var _=C.row;if(!S(_,C.column,v)){for(_--;_>=A;_--)if(S(_,Number.MAX_VALUE,v))return;if(h.wrap!=!1){for(_=T,A=C.row;_>=A;_--)if(S(_,Number.MAX_VALUE,v))return}}};else var E=function(_){var b=C.row;if(!S(b,C.column,_)){for(b=b+1;b<=T;b++)if(S(b,0,_))return;if(h.wrap!=!1){for(b=A,T=C.row;b<=T;b++)if(S(b,0,_))return}}};if(h.$isMultiLine)var L=m.length,S=function(v,_,b){var M=y?v-L+1:v;if(!(M<0||M+L>d.getLength())){var I=d.getLine(M),D=I.search(m[0]);if(!(!y&&D<_||D===-1)){for(var O=1;O_)&&b(M,D,M+L-1,N))return!0}}};else if(y)var S=function(_,b,M){if(f){var I=g(d,m,b,_,A);if(!I)return!1;if(M(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else{var D=d.getLine(_),O=[],N,F=0;for(m.lastIndex=0;N=m.exec(D);){var z=N[0].length;if(F=N.index,!z){if(F>=D.length)break;m.lastIndex=F+=i.skipEmptyMatch(D,F,k)}if(N.index+z>b)break;O.push(N.index,z)}for(var V=O.length-1;V>=0;V-=2){var K=O[V-1],z=O[V];if(M(_,K,_,K+z))return!0}}};else var S=function(_,b,M){if(m.lastIndex=b,f){var I=p(d,m,_,T);if(I){var D=I.endRow<=T?I.endRow-1:T;D>_&&(_=D)}if(!I)return!1;if(M(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else for(var O=d.getLine(_),N,F;F=m.exec(O);){var z=F[0].length;if(N=F.index,M(_,N,_,N+z))return!0;if(!z&&(m.lastIndex=N+=i.skipEmptyMatch(O,N,k),N>=O.length))return!1}};return{forEach:E}},u}();function o(u,d){var h=i.supportsLookbehind();function m(y,w){w===void 0&&(w=!0);var k=h&&d.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return k.test(y)||d.regExp?h&&d.$supportsUnicodeFlag?w?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var f=Array.from(u),p=f[0],g=f[f.length-1];return m(p)+u+m(g,!1)}function l(u,d,h){for(var m=null,f=0;f<=u.length;){d.lastIndex=f;var p=d.exec(u);if(!p)break;var g=p.index+p[0].length;if(g>u.length-h)break;(!m||g>m.index+m[0].length)&&(m=p),f=p.index+1}return m}function c(u,d){var h=5e3,m={row:d,column:0},f=u.doc.positionToIndex(m),p=f+h,g=u.doc.indexToPosition(p),y=g.row;return y+1}t.Search=a});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var u=function(d,h){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var p in f)Object.prototype.hasOwnProperty.call(f,p)&&(m[p]=f[p])},u(d,h)};return function(d,h){if(typeof h!="function"&&h!==null)throw new TypeError("Class extends value "+String(h)+" is not a constructor or null");u(d,h);function m(){this.constructor=d}d.prototype=h===null?Object.create(h):(m.prototype=h.prototype,new m)}}(),r=n("../lib/keys"),s=n("../lib/useragent"),a=r.KEY_MODS,o=function(){function u(d,h){this.$init(d,h,!1)}return u.prototype.$init=function(d,h,m){this.platform=h||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(d),this.$singleCommand=m},u.prototype.addCommand=function(d){this.commands[d.name]&&this.removeCommand(d),this.commands[d.name]=d,d.bindKey&&this._buildKeyHash(d)},u.prototype.removeCommand=function(d,h){var m=d&&(typeof d=="string"?d:d.name);d=this.commands[m],h||delete this.commands[m];var f=this.commandKeyBinding;for(var p in f){var g=f[p];if(g==d)delete f[p];else if(Array.isArray(g)){var y=g.indexOf(d);y!=-1&&(g.splice(y,1),g.length==1&&(f[p]=g[0]))}}},u.prototype.bindKey=function(d,h,m){if(typeof d=="object"&&d&&(m==null&&(m=d.position),d=d[this.platform]),!!d){if(typeof h=="function")return this.addCommand({exec:h,bindKey:d,name:h.name||d});d.split("|").forEach(function(f){var p="";if(f.indexOf(" ")!=-1){var g=f.split(/\s+/);f=g.pop(),g.forEach(function(k){var x=this.parseKeys(k),C=a[x.hashId]+x.key;p+=(p?" ":"")+C,this._addCommandToBinding(p,"chainKeys")},this),p+=" "}var y=this.parseKeys(f),w=a[y.hashId]+y.key;this._addCommandToBinding(p+w,h,m)},this)}},u.prototype._addCommandToBinding=function(d,h,m){var f=this.commandKeyBinding,p;if(!h)delete f[d];else if(!f[d]||this.$singleCommand)f[d]=h;else{Array.isArray(f[d])?(p=f[d].indexOf(h))!=-1&&f[d].splice(p,1):f[d]=[f[d]],typeof m!="number"&&(m=l(h));var g=f[d];for(p=0;pm)break}g.splice(p,0,h)}},u.prototype.addCommands=function(d){d&&Object.keys(d).forEach(function(h){var m=d[h];if(m){if(typeof m=="string")return this.bindKey(m,h);typeof m=="function"&&(m={exec:m}),typeof m=="object"&&(m.name||(m.name=h),this.addCommand(m))}},this)},u.prototype.removeCommands=function(d){Object.keys(d).forEach(function(h){this.removeCommand(d[h])},this)},u.prototype.bindKeys=function(d){Object.keys(d).forEach(function(h){this.bindKey(h,d[h])},this)},u.prototype._buildKeyHash=function(d){this.bindKey(d.bindKey,d)},u.prototype.parseKeys=function(d){var h=d.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(w){return w}),m=h.pop(),f=r[m];if(r.FUNCTION_KEYS[f])m=r.FUNCTION_KEYS[f].toLowerCase();else if(h.length){if(h.length==1&&h[0]=="shift")return{key:m.toUpperCase(),hashId:-1}}else return{key:m,hashId:-1};for(var p=0,g=h.length;g--;){var y=r.KEY_MODS[h[g]];if(y==null)return typeof console<"u"&&console.error("invalid modifier "+h[g]+" in "+d),!1;p|=y}return{key:m,hashId:p}},u.prototype.findKeyCommand=function(d,h){var m=a[d]+h;return this.commandKeyBinding[m]},u.prototype.handleKeyboard=function(d,h,m,f){if(!(f<0)){var p=a[h]+m,g=this.commandKeyBinding[p];return d.$keyChain&&(d.$keyChain+=" "+p,g=this.commandKeyBinding[d.$keyChain]||g),g&&(g=="chainKeys"||g[g.length-1]=="chainKeys")?(d.$keyChain=d.$keyChain||p,{command:"null"}):(d.$keyChain&&((!h||h==4)&&m.length==1?d.$keyChain=d.$keyChain.slice(0,-p.length-1):(h==-1||f>0)&&(d.$keyChain="")),{command:g})}},u.prototype.getStatusText=function(d,h){return h.$keyChain||""},u}();function l(u){return typeof u=="object"&&u.bindKey&&u.bindKey.position||(u.isDefault?-100:0)}var c=function(u){i(d,u);function d(h,m){var f=u.call(this,h,m)||this;return f.$singleCommand=!0,f}return d}(o);c.call=function(u,d,h){o.prototype.$init.call(u,d,h,!0)},o.call=function(u,d,h){o.prototype.$init.call(u,d,h,!1)},t.HashHandler=c,t.MultiHashHandler=o});ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var l=function(c,u){return l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var m in h)Object.prototype.hasOwnProperty.call(h,m)&&(d[m]=h[m])},l(c,u)};return function(c,u){if(typeof u!="function"&&u!==null)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");l(c,u);function d(){this.constructor=c}c.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)}}(),r=n("../lib/oop"),s=n("../keyboard/hash_handler").MultiHashHandler,a=n("../lib/event_emitter").EventEmitter,o=function(l){i(c,l);function c(u,d){var h=l.call(this,d,u)||this;return h.byName=h.commands,h.setDefaultHandler("exec",function(m){return m.args?m.command.exec(m.editor,m.args,m.event,!1):m.command.exec(m.editor,{},m.event,!0)}),h}return c.prototype.exec=function(u,d,h){if(Array.isArray(u)){for(var m=u.length;m--;)if(this.exec(u[m],d,h))return!0;return!1}typeof u=="string"&&(u=this.commands[u]);var f={editor:d,command:u,args:h};return this.canExecute(u,d)?(f.returnValue=this._emit("exec",f),this._signal("afterExec",f),f.returnValue!==!1):(this._signal("commandUnavailable",f),!1)},c.prototype.canExecute=function(u,d){return typeof u=="string"&&(u=this.commands[u]),!(!u||d&&d.$readOnly&&!u.readOnly||this.$checkCommandState!=!1&&u.isAvailable&&!u.isAvailable(d))},c.prototype.toggleRecording=function(u){if(!this.$inReplay)return u&&u._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(d){this.macro.push([d.command,d.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},c.prototype.replay=function(u){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(u);try{this.$inReplay=!0,this.macro.forEach(function(d){typeof d=="string"?this.exec(d,u):this.exec(d[0],u,d[1])},this)}finally{this.$inReplay=!1}}},c.prototype.trimMacro=function(u){return u.map(function(d){return typeof d[0]!="string"&&(d[0]=d[0].name),d[1]||(d=d[0]),d})},c}(s);r.implement(o.prototype,a),t.CommandManager=o});ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(n,t,e){"use strict";var i=n("../lib/lang"),r=n("../config"),s=n("../range").Range;function a(l,c){return{win:l,mac:c}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(l){r.loadModule("ace/ext/settings_menu",function(c){c.init(l),l.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(l){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(l,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(l){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(l,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(l){l.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(l){l.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(l,c){typeof c=="number"&&!isNaN(c)&&l.gotoLine(c),l.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(l){l.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(l){l.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(l){l.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(l){l.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(l){l.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(l){l.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(l){l.session.foldAll(),l.session.unfold(l.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(l){l.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(l){l.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(l){l.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(l){l.selection.isEmpty()?l.selection.selectWord():l.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(l){l.selection.isEmpty()?l.selection.selectWord():l.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(l){r.loadModule("ace/ext/searchbox",function(c){c.Search(l)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(l){l.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(l){l.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(l){l.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(l){l.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(l,c){l.navigateUp(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(l){l.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(l){l.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(l){l.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(l,c){l.navigateDown(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(l){l.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(l){l.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(l){l.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(l){l.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(l){l.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(l,c){l.navigateLeft(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(l){l.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(l){l.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(l){l.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(l){l.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(l){l.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(l,c){l.navigateRight(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(l){l.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(l){l.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(l){l.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(l){l.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(l){l.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(l){l.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(l){l.renderer.scrollBy(0,-2*l.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(l){l.renderer.scrollBy(0,2*l.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(l){l.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(l){l.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(l){l.commands.toggleRecording(l)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(l){l.commands.replay(l)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(l){l.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(l){l.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(l){l.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(l){},readOnly:!0},{name:"cut",description:"Cut",exec:function(l){var c=l.$copyWithEmptySelection&&l.selection.isEmpty(),u=c?l.selection.getLineRange():l.selection.getRange();l._emit("cut",u),u.isEmpty()||l.session.remove(u),l.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(l,c){l.$handlePaste(c)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(l){l.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(l){l.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(l){l.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(l){l.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(l){l.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(l){l.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(l){l.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(l){r.loadModule("ace/ext/searchbox",function(c){c.Search(l,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(l){l.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(l){l.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(l){l.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(l){l.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(l){l.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(l){l.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(l){l.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(l){l.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(l){if(l.selection.isEmpty())l.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(l){l.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(l){l.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(l){var c=l.selection.getRange();c.start.column=0,l.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(l){var c=l.selection.getRange();c.end.column=Number.MAX_VALUE,l.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(l){l.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(l){l.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(l){l.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(l){l.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(l){l.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(l){l.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(l,c){l.insert(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(l,c){l.insert(i.stringRepeat(c.text||"",c.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(l){l.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(l){l.transposeLetters()},multiSelectAction:function(l){l.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(l){l.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(l){l.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(l){l.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(l){var c=l.selection.getRange();c.start.column=c.end.column=0,c.end.row++,l.selection.setRange(c,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(l){l.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(l){for(var c=l.selection.isBackwards(),u=c?l.selection.getSelectionLead():l.selection.getSelectionAnchor(),d=c?l.selection.getSelectionAnchor():l.selection.getSelectionLead(),h=l.session.doc.getLine(u.row).length,m=l.session.doc.getTextRange(l.selection.getRange()),f=m.replace(/\n\s*/," ").length,p=l.session.doc.getLine(u.row),g=u.row+1;g<=d.row+1;g++){var y=i.stringTrimLeft(i.stringTrimRight(l.session.doc.getLine(g)));y.length!==0&&(y=" "+y),p+=y}d.row+10?(l.selection.moveCursorTo(u.row,u.column),l.selection.selectTo(u.row,u.column+f)):(h=l.session.doc.getLine(u.row).length>h?h+1:h,l.selection.moveCursorTo(u.row,h))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(l){var c=l.session.doc.getLength()-1,u=l.session.doc.getLine(c).length,d=l.selection.rangeList.ranges,h=[];d.length<1&&(d=[l.selection.getRange()]);for(var m=0;m0||o+l=0&&this.$isCustomWidgetVisible(o-l))return o-l;if(o+l<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(o+l))return o+l;if(o-l>=0&&this.$isFoldWidgetVisible(o-l))return o-l;if(o+l<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(o+l))return o+l}return null},a.prototype.$findNearestAnnotation=function(o){if(this.$isAnnotationVisible(o))return o;for(var l=0;o-l>0||o+l=0&&this.$isAnnotationVisible(o-l))return o-l;if(o+l<=this.lines.getLength()-1&&this.$isAnnotationVisible(o+l))return o+l}return null},a.prototype.$focusFoldWidget=function(o){if(o!=null){var l=this.$getFoldWidget(o);l.classList.add(this.editor.renderer.keyboardFocusClassName),l.focus()}},a.prototype.$focusCustomWidget=function(o){if(o!=null){var l=this.$getCustomWidget(o);l&&(l.classList.add(this.editor.renderer.keyboardFocusClassName),l.focus())}},a.prototype.$focusAnnotation=function(o){if(o!=null){var l=this.$getAnnotation(o);l.classList.add(this.editor.renderer.keyboardFocusClassName),l.focus()}},a.prototype.$blurFoldWidget=function(o){var l=this.$getFoldWidget(o);l.classList.remove(this.editor.renderer.keyboardFocusClassName),l.blur()},a.prototype.$blurCustomWidget=function(o){var l=this.$getCustomWidget(o);l&&(l.classList.remove(this.editor.renderer.keyboardFocusClassName),l.blur())},a.prototype.$blurAnnotation=function(o){var l=this.$getAnnotation(o);l.classList.remove(this.editor.renderer.keyboardFocusClassName),l.blur()},a.prototype.$moveFoldWidgetUp=function(){for(var o=this.activeRowIndex;o>0;)if(o--,this.$isFoldWidgetVisible(o)||this.$isCustomWidgetVisible(o)){this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=o,this.$isFoldWidgetVisible(o)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex);return}},a.prototype.$moveFoldWidgetDown=function(){for(var o=this.activeRowIndex;o0;)if(o--,this.$isAnnotationVisible(o)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=o,this.$focusAnnotation(this.activeRowIndex);return}},a.prototype.$moveAnnotationDown=function(){for(var o=this.activeRowIndex;o=_.length&&(_=void 0),{value:_&&_[I++],done:!_}}};throw new TypeError(b?"Object is not iterable.":"Symbol.iterator is not defined.")},r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/lang"),o=n("./lib/useragent"),l=n("./keyboard/textinput").TextInput,c=n("./mouse/mouse_handler").MouseHandler,u=n("./mouse/fold_handler").FoldHandler,d=n("./keyboard/keybinding").KeyBinding,h=n("./edit_session").EditSession,m=n("./search").Search,f=n("./range").Range,p=n("./lib/event_emitter").EventEmitter,g=n("./commands/command_manager").CommandManager,y=n("./commands/default_commands").commands,w=n("./config"),k=n("./token_iterator").TokenIterator,x=n("./keyboard/gutter_handler").GutterKeyboardHandler,C=n("./config").nls,A=n("./clipboard"),T=n("./lib/keys"),E=n("./lib/event"),L=n("./tooltip").HoverTooltip,S=function(){function _(b,M,I){this.id="editor"+ ++_.$uid,this.session,this.$toDestroy=[];var D=b.getContainerElement();this.container=D,this.renderer=b,this.commands=new g(o.isMac?"mac":"win",y),typeof document=="object"&&(this.textInput=new l(b.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new d(this),this.$search=new m().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(O,N){N._$emitInputEvent.schedule(31)}),this.setSession(M||I&&I.session||new h("")),w.resetOptions(this),I&&this.setOptions(I),w._signal("editor",this)}return _.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},_.prototype.startOperation=function(b){this.session.startOperation(b)},_.prototype.endOperation=function(b){this.session.endOperation(b)},_.prototype.onStartOperation=function(b){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,b||(this.previousCommand=null)},_.prototype.onEndOperation=function(b){if(this.curOp&&this.session){if(b&&b.returnValue===!1){this.curOp=null;return}if(this._signal("beforeEndOperation"),!this.curOp)return;var M=this.curOp.command,I=M&&M.scrollIntoView;if(I){switch(I){case"center-animate":I="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var D=this.selection.getRange(),O=this.renderer.layerConfig;(D.start.row>=O.lastRow||D.end.row<=O.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:break}I=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},_.prototype.$historyTracker=function(b){if(this.$mergeUndoDeltas){var M=this.prevOp,I=this.$mergeableCommands,D=M.command&&b.command.name==M.command.name;if(b.command.name=="insertstring"){var O=b.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),D=D&&this.mergeNextCommand&&(!/\s/.test(O)||/\s/.test(M.args)),this.mergeNextCommand=!0}else D=D&&I.indexOf(b.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(D=!1),D?this.session.mergeUndoDeltas=!0:I.indexOf(b.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},_.prototype.setKeyboardHandler=function(b,M){if(b&&typeof b=="string"&&b!="ace"){this.$keybindingId=b;var I=this;w.loadModule(["keybinding",b],function(D){I.$keybindingId==b&&I.keyBinding.setKeyboardHandler(D&&D.handler),M&&M()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(b),M&&M()},_.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},_.prototype.setSession=function(b){if(this.session!=b){this.curOp&&this.endOperation(),this.curOp={};var M=this.session;if(M){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var I=this.session.getSelection();I.off("changeCursor",this.$onCursorChange),I.off("changeSelection",this.$onSelectionChange)}this.session=b,b?(this.$onDocumentChange=this.onDocumentChange.bind(this),b.on("change",this.$onDocumentChange),this.renderer.setSession(b),this.$onChangeMode=this.onChangeMode.bind(this),b.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),b.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),b.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),b.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),b.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),b.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=b.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(b)),this._signal("changeSession",{session:b,oldSession:M}),this.curOp=null,M&&M._signal("changeEditor",{oldEditor:this}),M&&(M.$editor=null),b&&b._signal("changeEditor",{editor:this}),b&&(b.$editor=this),b&&!b.destroyed&&b.bgTokenizer.scheduleStart()}},_.prototype.getSession=function(){return this.session},_.prototype.setValue=function(b,M){return this.session.doc.setValue(b),M?M==1?this.navigateFileEnd():M==-1&&this.navigateFileStart():this.selectAll(),b},_.prototype.getValue=function(){return this.session.getValue()},_.prototype.getSelection=function(){return this.selection},_.prototype.resize=function(b){this.renderer.onResize(b)},_.prototype.setTheme=function(b,M){this.renderer.setTheme(b,M)},_.prototype.getTheme=function(){return this.renderer.getTheme()},_.prototype.setStyle=function(b,M){this.renderer.setStyle(b,M)},_.prototype.unsetStyle=function(b){this.renderer.unsetStyle(b)},_.prototype.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},_.prototype.setFontSize=function(b){this.setOption("fontSize",b)},_.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var b=this;this.$highlightPending=!0,setTimeout(function(){b.$highlightPending=!1;var M=b.session;if(!(!M||M.destroyed)){M.$bracketHighlight&&(M.$bracketHighlight.markerIds.forEach(function(W){M.removeMarker(W)}),M.$bracketHighlight=null);var I=b.getCursorPosition(),D=b.getKeyboardHandler(),O=D&&D.$getDirectionForHighlight&&D.$getDirectionForHighlight(b),N=M.getMatchingBracketRanges(I,O);if(!N){var F=new k(M,I.row,I.column),z=F.getCurrentToken();if(z&&/\b(?:tag-open|tag-name)/.test(z.type)){var V=M.getMatchingTags(I);V&&(N=[V.openTagName.isEmpty()?V.openTag:V.openTagName,V.closeTagName.isEmpty()?V.closeTag:V.closeTagName])}}if(!N&&M.$mode.getMatching&&(N=M.$mode.getMatching(b.session)),!N){b.getHighlightIndentGuides()&&b.renderer.$textLayer.$highlightIndentGuide();return}var K="ace_bracket";Array.isArray(N)?N.length==1&&(K="ace_error_bracket"):N=[N],N.length==2&&(f.comparePoints(N[0].end,N[1].start)==0?N=[f.fromPoints(N[0].start,N[1].end)]:f.comparePoints(N[0].start,N[1].end)==0&&(N=[f.fromPoints(N[1].start,N[0].end)])),M.$bracketHighlight={ranges:N,markerIds:N.map(function(W){return M.addMarker(W,K,"text")})},b.getHighlightIndentGuides()&&b.renderer.$textLayer.$highlightIndentGuide()}},50)}},_.prototype.focus=function(){this.textInput.focus()},_.prototype.isFocused=function(){return this.textInput.isFocused()},_.prototype.blur=function(){this.textInput.blur()},_.prototype.onFocus=function(b){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",b))},_.prototype.onBlur=function(b){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",b))},_.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},_.prototype.onDocumentChange=function(b){var M=this.session.$useWrapMode,I=b.start.row==b.end.row?b.end.row:1/0;this.renderer.updateLines(b.start.row,I,M),this._signal("change",b),this.$cursorChange()},_.prototype.onTokenizerUpdate=function(b){var M=b.data;this.renderer.updateLines(M.first,M.last)},_.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},_.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},_.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},_.prototype.$updateHighlightActiveLine=function(){var b=this.getSession(),M;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(M=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(M=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(M=!1)),b.$highlightLineMarker&&!M)b.removeMarker(b.$highlightLineMarker.id),b.$highlightLineMarker=null;else if(!b.$highlightLineMarker&&M){var I=new f(M.row,M.column,M.row,1/0);I.id=b.addMarker(I,"ace_active-line","screenLine"),b.$highlightLineMarker=I}else M&&(b.$highlightLineMarker.start.row=M.row,b.$highlightLineMarker.end.row=M.row,b.$highlightLineMarker.start.column=M.column,b._signal("changeBackMarker"))},_.prototype.onSelectionChange=function(b){var M=this.session;if(M.$selectionMarker&&M.removeMarker(M.$selectionMarker),M.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var I=this.selection.getRange(),D=this.getSelectionStyle();M.$selectionMarker=M.addMarker(I,"ace_selection",D)}var O=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(O),this._signal("changeSelection")},_.prototype.$getSelectionHighLightRegexp=function(){var b=this.session,M=this.getSelectionRange();if(!(M.isEmpty()||M.isMultiLine())){var I=M.start.column,D=M.end.column,O=b.getLine(M.start.row),N=O.substring(I,D);if(!(N.length>5e3||!/[\w\d]/.test(N))){var F=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:N}),z=O.substring(I-1,D+1);if(F.test(z))return F}}},_.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},_.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},_.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},_.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},_.prototype.onChangeMode=function(b){this.renderer.updateText(),this._emit("changeMode",b)},_.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},_.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},_.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},_.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},_.prototype.getCopyText=function(){var b=this.getSelectedText(),M=this.session.doc.getNewLineCharacter(),I=!1;if(!b&&this.$copyWithEmptySelection){I=!0;for(var D=this.selection.getAllRanges(),O=0;OW.search(/\S|$/)){var z=W.substr(O.column).search(/\S|$/);I.doc.removeInLine(O.row,O.column,O.column+z)}}this.clearSelection();var V=O.column,K=I.getState(O.row),W=I.getLine(O.row),q=D.checkOutdent(K,W,b);if(I.insert(O,b),N&&N.selection&&(N.selection.length==2?this.selection.setSelectionRange(new f(O.row,V+N.selection[0],O.row,V+N.selection[1])):this.selection.setSelectionRange(new f(O.row+N.selection[0],N.selection[1],O.row+N.selection[2],N.selection[3]))),this.$enableAutoIndent){if(I.getDocument().isNewLine(b)){var ae=D.getNextLineIndent(K,W.slice(0,O.column),I.getTabString());I.insert({row:O.row+1,column:0},ae)}q&&D.autoOutdent(K,I,O.row)}},_.prototype.autoIndent=function(){for(var b=this.session,M=b.getMode(),I=this.selection.isEmpty()?[new f(0,0,b.doc.getLength()-1,0)]:this.selection.getAllRanges(),D="",O="",N="",F=b.getTabString(),z=0;z0&&(D=b.getState(W-1),O=b.getLine(W-1),N=M.getNextLineIndent(D,O,F));var q=b.getLine(W),ae=M.$getIndent(q);if(N!==ae){if(ae.length>0){var pe=new f(W,0,W,ae.length);b.remove(pe)}N.length>0&&b.insert({row:W,column:0},N)}M.autoOutdent(D,b,W)}},_.prototype.onTextInput=function(b,M){if(!M)return this.keyBinding.onTextInput(b);this.startOperation({command:{name:"insertstring"}});var I=this.applyComposition.bind(this,b,M);this.selection.rangeCount?this.forEachSelection(I):I(),this.endOperation()},_.prototype.applyComposition=function(b,M){if(M.extendLeft||M.extendRight){var I=this.selection.getRange();I.start.column-=M.extendLeft,I.end.column+=M.extendRight,I.start.column<0&&(I.start.row--,I.start.column+=this.session.getLine(I.start.row).length+1),this.selection.setRange(I),!b&&!I.isEmpty()&&this.remove()}if((b||!this.selection.isEmpty())&&this.insert(b,!0),M.restoreStart||M.restoreEnd){var I=this.selection.getRange();I.start.column-=M.restoreStart,I.end.column-=M.restoreEnd,this.selection.setRange(I)}},_.prototype.onCommandKey=function(b,M,I){return this.keyBinding.onCommandKey(b,M,I)},_.prototype.setOverwrite=function(b){this.session.setOverwrite(b)},_.prototype.getOverwrite=function(){return this.session.getOverwrite()},_.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},_.prototype.setScrollSpeed=function(b){this.setOption("scrollSpeed",b)},_.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},_.prototype.setDragDelay=function(b){this.setOption("dragDelay",b)},_.prototype.getDragDelay=function(){return this.getOption("dragDelay")},_.prototype.setSelectionStyle=function(b){this.setOption("selectionStyle",b)},_.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},_.prototype.setHighlightActiveLine=function(b){this.setOption("highlightActiveLine",b)},_.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},_.prototype.setHighlightGutterLine=function(b){this.setOption("highlightGutterLine",b)},_.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},_.prototype.setHighlightSelectedWord=function(b){this.setOption("highlightSelectedWord",b)},_.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},_.prototype.setAnimatedScroll=function(b){this.renderer.setAnimatedScroll(b)},_.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},_.prototype.setShowInvisibles=function(b){this.renderer.setShowInvisibles(b)},_.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},_.prototype.setDisplayIndentGuides=function(b){this.renderer.setDisplayIndentGuides(b)},_.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},_.prototype.setHighlightIndentGuides=function(b){this.renderer.setHighlightIndentGuides(b)},_.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},_.prototype.setShowPrintMargin=function(b){this.renderer.setShowPrintMargin(b)},_.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},_.prototype.setPrintMarginColumn=function(b){this.renderer.setPrintMarginColumn(b)},_.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},_.prototype.setReadOnly=function(b){this.setOption("readOnly",b)},_.prototype.getReadOnly=function(){return this.getOption("readOnly")},_.prototype.setBehavioursEnabled=function(b){this.setOption("behavioursEnabled",b)},_.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},_.prototype.setWrapBehavioursEnabled=function(b){this.setOption("wrapBehavioursEnabled",b)},_.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},_.prototype.setShowFoldWidgets=function(b){this.setOption("showFoldWidgets",b)},_.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},_.prototype.setFadeFoldWidgets=function(b){this.setOption("fadeFoldWidgets",b)},_.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},_.prototype.remove=function(b){this.selection.isEmpty()&&(b=="left"?this.selection.selectLeft():this.selection.selectRight());var M=this.getSelectionRange();if(this.getBehavioursEnabled()){var I=this.session,D=I.getState(M.start.row),O=I.getMode().transformAction(D,"deletion",this,I,M);if(M.end.column===0){var N=I.getTextRange(M);if(N[N.length-1]==` +`){var F=I.getLine(M.end.row);/^\s+$/.test(F)&&(M.end.column=F.length)}}O&&(M=O)}this.session.remove(M),this.clearSelection()},_.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var b=this.getSelectionRange();b.start.column==b.end.column&&b.start.row==b.end.row&&(b.end.column=0,b.end.row++),this.session.remove(b),this.clearSelection()},_.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var b=this.getCursorPosition();this.insert(` +`),this.moveCursorToPosition(b)},_.prototype.setGhostText=function(b,M){this.renderer.setGhostText(b,M)},_.prototype.removeGhostText=function(){this.renderer.removeGhostText()},_.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var b=this.getCursorPosition(),M=b.column;if(M!==0){var I=this.session.getLine(b.row),D,O;Mz.toLowerCase()?1:0});for(var O=new f(0,0,0,0),D=b.first;D<=b.last;D++){var N=M.getLine(D);O.start.row=D,O.end.row=D,O.end.column=N.length,M.replace(O,I[D-b.first])}},_.prototype.toggleCommentLines=function(){var b=this.session.getState(this.getCursorPosition().row),M=this.$getSelectedRows();this.session.getMode().toggleCommentLines(b,this.session,M.first,M.last)},_.prototype.toggleBlockComment=function(){var b=this.getCursorPosition(),M=this.session.getState(b.row),I=this.getSelectionRange();this.session.getMode().toggleBlockComment(M,this.session,I,b)},_.prototype.getNumberAt=function(b,M){var I=/[\-]?[0-9]+(?:\.[0-9]+)?/g;I.lastIndex=0;for(var D=this.session.getLine(b);I.lastIndex=M){var N={value:O[0],start:O.index,end:O.index+O[0].length};return N}}return null},_.prototype.modifyNumber=function(b){var M=this.selection.getCursor().row,I=this.selection.getCursor().column,D=new f(M,I-1,M,I),O=this.session.getTextRange(D);if(!isNaN(parseFloat(O))&&isFinite(O)){var N=this.getNumberAt(M,I);if(N){var F=N.value.indexOf(".")>=0?N.start+N.value.indexOf(".")+1:N.end,z=N.start+N.value.length-F,V=parseFloat(N.value);V*=Math.pow(10,z),F!==N.end&&I=F&&N<=z&&(I=we,V.selection.clearSelection(),V.moveCursorTo(b,F+D),V.selection.selectTo(b,z+D)),F=z});for(var K=this.$toggleWordPairs,W,q=0;q=z&&F<=V&&ae.match(/((?:https?|ftp):\/\/[\S]+)/)){K=ae.replace(/[\s:.,'";}\]]+$/,"");break}z=V}}catch(pe){I={error:pe}}finally{try{q&&!q.done&&(D=W.return)&&D.call(W)}finally{if(I)throw I.error}}return K},_.prototype.openLink=function(){var b=this.selection.getCursor(),M=this.findLinkAt(b.row,b.column);return M&&window.open(M,"_blank"),M!=null},_.prototype.removeLines=function(){var b=this.$getSelectedRows();this.session.removeFullLines(b.first,b.last),this.clearSelection()},_.prototype.duplicateSelection=function(){var b=this.selection,M=this.session,I=b.getRange(),D=b.isBackwards();if(I.isEmpty()){var O=I.start.row;M.duplicateLines(O,O)}else{var N=D?I.start:I.end,F=M.insert(N,M.getTextRange(I));I.start=N,I.end=F,b.setSelectionRange(I,D)}},_.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},_.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},_.prototype.moveText=function(b,M,I){return this.session.moveText(b,M,I)},_.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},_.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},_.prototype.$moveLines=function(b,M){var I,D,O=this.selection;if(!O.inMultiSelectMode||this.inVirtualSelectionMode){var N=O.toOrientedRange();I=this.$getSelectedRows(N),D=this.session.$moveLines(I.first,I.last,M?0:b),M&&b==-1&&(D=0),N.moveBy(D,0),O.fromOrientedRange(N)}else{var F=O.rangeList.ranges;O.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var z=0,V=0,K=F.length,W=0;Wpe+1)break;pe=ie.last}for(W--,z=this.session.$moveLines(ae,pe,M?0:b),M&&b==-1&&(q=W+1);q<=W;)F[q].moveBy(z,0),q++;M||(z=0),V+=z}O.fromOrientedRange(O.ranges[0]),O.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},_.prototype.$getSelectedRows=function(b){return b=(b||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(b.start.row),last:this.session.getRowFoldEnd(b.end.row)}},_.prototype.onCompositionStart=function(b){this.renderer.showComposition(b)},_.prototype.onCompositionUpdate=function(b){this.renderer.setCompositionText(b)},_.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},_.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},_.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},_.prototype.isRowVisible=function(b){return b>=this.getFirstVisibleRow()&&b<=this.getLastVisibleRow()},_.prototype.isRowFullyVisible=function(b){return b>=this.renderer.getFirstFullyVisibleRow()&&b<=this.renderer.getLastFullyVisibleRow()},_.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},_.prototype.$moveByPage=function(b,M){var I=this.renderer,D=this.renderer.layerConfig,O=b*Math.floor(D.height/D.lineHeight);M===!0?this.selection.$moveSelection(function(){this.moveCursorBy(O,0)}):M===!1&&(this.selection.moveCursorBy(O,0),this.selection.clearSelection());var N=I.scrollTop;I.scrollBy(0,O*D.lineHeight),M!=null&&I.scrollCursorIntoView(null,.5),I.animateScrolling(N)},_.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},_.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},_.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},_.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},_.prototype.scrollPageDown=function(){this.$moveByPage(1)},_.prototype.scrollPageUp=function(){this.$moveByPage(-1)},_.prototype.scrollToRow=function(b){this.renderer.scrollToRow(b)},_.prototype.scrollToLine=function(b,M,I,D){this.renderer.scrollToLine(b,M,I,D)},_.prototype.centerSelection=function(){var b=this.getSelectionRange(),M={row:Math.floor(b.start.row+(b.end.row-b.start.row)/2),column:Math.floor(b.start.column+(b.end.column-b.start.column)/2)};this.renderer.alignCursor(M,.5)},_.prototype.getCursorPosition=function(){return this.selection.getCursor()},_.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},_.prototype.getSelectionRange=function(){return this.selection.getRange()},_.prototype.selectAll=function(){this.selection.selectAll()},_.prototype.clearSelection=function(){this.selection.clearSelection()},_.prototype.moveCursorTo=function(b,M){this.selection.moveCursorTo(b,M)},_.prototype.moveCursorToPosition=function(b){this.selection.moveCursorToPosition(b)},_.prototype.jumpToMatching=function(b,M){var I=this.getCursorPosition(),D=new k(this.session,I.row,I.column),O=D.getCurrentToken(),N=0;O&&O.type.indexOf("tag-name")!==-1&&(O=D.stepBackward());var F=O||D.stepForward();if(F){var z,V=!1,K={},W=I.column-F.start,q,ae={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(F.value.match(/[{}()\[\]]/g)){for(;W1?K[F.value]++:O.value==="=0;--N)this.$tryReplace(I[N],b)&&D++;return this.selection.setSelectionRange(O),D},_.prototype.$tryReplace=function(b,M){var I=this.session.getTextRange(b);return M=this.$search.replace(I,M),M!==null?(b.end=this.session.replace(b,M),b):null},_.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},_.prototype.find=function(b,M,I){M||(M={}),typeof b=="string"||b instanceof RegExp?M.needle=b:typeof b=="object"&&r.mixin(M,b);var D=this.selection.getRange();M.needle==null&&(b=this.session.getTextRange(D)||this.$search.$options.needle,b||(D=this.session.getWordRange(D.start.row,D.start.column),b=this.session.getTextRange(D)),this.$search.set({needle:b})),this.$search.set(M),M.start||this.$search.set({start:D});var O=this.$search.find(this.session);if(M.preventScroll)return O;if(O)return this.revealRange(O,I),O;M.backwards?D.start=D.end:D.end=D.start,this.selection.setRange(D)},_.prototype.findNext=function(b,M){this.find({skipCurrent:!0,backwards:!1},b,M)},_.prototype.findPrevious=function(b,M){this.find(b,{skipCurrent:!0,backwards:!0},M)},_.prototype.revealRange=function(b,M){this.session.unfold(b),this.selection.setSelectionRange(b);var I=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(b.start,b.end,.5),M!==!1&&this.renderer.animateScrolling(I)},_.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},_.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},_.prototype.destroy=function(){this.destroyed=!0,this.$toDestroy&&(this.$toDestroy.forEach(function(b){b.destroy()}),this.$toDestroy=[]),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},_.prototype.setAutoScrollEditorIntoView=function(b){if(b){var M,I=this,D=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var O=this.$scrollAnchor;O.style.cssText="position:absolute",this.container.insertBefore(O,this.container.firstChild);var N=this.on("changeSelection",function(){D=!0}),F=this.renderer.on("beforeRender",function(){D&&(M=I.renderer.container.getBoundingClientRect())}),z=this.renderer.on("afterRender",function(){if(D&&M&&(I.isFocused()||I.searchBox&&I.searchBox.isFocused())){var V=I.renderer,K=V.$cursorLayer.$pixelPos,W=V.layerConfig,q=K.top-W.offset;K.top>=0&&q+M.top<0?D=!0:K.topwindow.innerHeight?D=!1:D=null,D!=null&&(O.style.top=q+"px",O.style.left=K.left+"px",O.style.height=W.lineHeight+"px",O.scrollIntoView(D)),D=M=null}});this.setAutoScrollEditorIntoView=function(V){V||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",N),this.renderer.off("afterRender",z),this.renderer.off("beforeRender",F))}}},_.prototype.$resetCursorStyle=function(){var b=this.$cursorStyle||"ace",M=this.renderer.$cursorLayer;M&&(M.setSmoothBlinking(/smooth/.test(b)),M.isBlinking=!this.$readOnly&&b!="wide",s.setCssClass(M.element,"ace_slim-cursors",/slim/.test(b)))},_.prototype.prompt=function(b,M,I){var D=this;w.loadModule("ace/ext/prompt",function(O){O.prompt(D,b,M,I)})},_}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],r.implement(S.prototype,p),w.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(_){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:_})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(_){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(_){var b=this;if(this.textInput.setReadOnly(_),!this.destroyed){this.$resetCursorStyle(),this.$readOnlyCallback||(this.$readOnlyCallback=function(I){var D=!1;if(I&&I.type=="keydown"){if(I&&I.key&&!I.ctrlKey&&!I.metaKey&&(I.key==" "&&I.preventDefault(),D=I.key.length==1),!D)return}else I&&I.type!=="exec"&&(D=!0);if(D){b.hoverTooltip||(b.hoverTooltip=new L);var O=s.createElement("div");O.textContent=C("editor.tooltip.disable-editing","Editing is disabled"),b.hoverTooltip.isOpen||b.hoverTooltip.showForRange(b,b.getSelectionRange(),O)}else b.hoverTooltip&&b.hoverTooltip.isOpen&&b.hoverTooltip.hide()});var M=this.textInput.getElement();_?(E.addListener(M,"keydown",this.$readOnlyCallback,this),this.commands.on("exec",this.$readOnlyCallback),this.commands.on("commandUnavailable",this.$readOnlyCallback)):(E.removeListener(M,"keydown",this.$readOnlyCallback),this.commands.off("exec",this.$readOnlyCallback),this.commands.off("commandUnavailable",this.$readOnlyCallback),this.hoverTooltip&&(this.hoverTooltip.destroy(),this.hoverTooltip=null))}},initialValue:!1},copyWithEmptySelection:{set:function(_){this.textInput.setCopyWithEmptySelection(_)},initialValue:!1},cursorStyle:{set:function(_){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(_){this.setAutoScrollEditorIntoView(_)}},keyboardHandler:{set:function(_){this.setKeyboardHandler(_)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(_){this.session.setValue(_)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(_){this.setSession(_)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(_){this.renderer.$gutterLayer.setShowLineNumbers(_),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),_&&this.$relativeLineNumbers?v.attach(this):v.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(_){this.$showLineNumbers&&_?v.attach(this):v.detach(this)}},placeholder:{set:function(_){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var b=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(b&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!b&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var M=s.createElement("div");M.className="ace_placeholder",M.textContent=this.$placeholder||"",this.renderer.placeholderNode=M,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!b&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(_){var b={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(D){D.blur(),D.renderer.scroller.focus()},readOnly:!0},M=function(D){if(D.target==this.renderer.scroller&&D.keyCode===T.enter){D.preventDefault();var O=this.getCursorPosition().row;this.isRowVisible(O)||this.scrollToLine(O,!0,!0),this.focus()}},I;_?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(o.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",C("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",C("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",M.bind(this)),this.commands.addCommand(b),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",C("editor.gutter.aria-roledescription","editor gutter")),this.renderer.$gutter.setAttribute("aria-label",C("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),I||(I=new x(this)),I.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",M.bind(this)),this.commands.removeCommand(b),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),I&&I.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(_){this.$textInputAriaLabel=_},initialValue:""},enableMobileMenu:{set:function(_){this.$enableMobileMenu=_},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var v={getText:function(_,b){return(Math.abs(_.selection.lead.row-b)||b+1+(b<9?"\xB7":""))+""},getWidth:function(_,b,M){return Math.max(b.toString().length,(M.lastRow+1).toString().length,2)*M.characterWidth},update:function(_,b){b.renderer.$loop.schedule(b.renderer.CHANGE_GUTTER)},attach:function(_){_.renderer.$gutterLayer.$renderer=this,_.on("changeSelection",this.update),this.update(null,_)},detach:function(_){_.renderer.$gutterLayer.$renderer==this&&(_.renderer.$gutterLayer.$renderer=null),_.off("changeSelection",this.update),this.update(null,_)}};t.Editor=S});ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=function(){function s(a,o){this.element=a,this.canvasHeight=o||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return s.prototype.moveContainer=function(a){i.translate(this.element,0,-(a.firstRowScreen*a.lineHeight%this.canvasHeight)-a.offset*this.$offsetCoefficient)},s.prototype.pageChanged=function(a,o){return Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)!==Math.floor(o.firstRowScreen*o.lineHeight/this.canvasHeight)},s.prototype.computeLineTop=function(a,o,l){var c=o.firstRowScreen*o.lineHeight,u=Math.floor(c/this.canvasHeight),d=l.documentToScreenRow(a,0)*o.lineHeight;return d-u*this.canvasHeight},s.prototype.computeLineHeight=function(a,o,l){return o.lineHeight*l.getRowLineCount(a)},s.prototype.getLength=function(){return this.cells.length},s.prototype.get=function(a){return this.cells[a]},s.prototype.shift=function(){this.$cacheCell(this.cells.shift())},s.prototype.pop=function(){this.$cacheCell(this.cells.pop())},s.prototype.push=function(a){if(Array.isArray(a)){this.cells.push.apply(this.cells,a);for(var o=i.createFragment(this.element),l=0;ly&&(x=g.end.row+1,g=m.getNextFoldLine(x,g),y=g?g.start.row:1/0),x>p){for(;this.$lines.getLength()>k+1;)this.$lines.pop();break}w=this.$lines.get(++k),w?w.row=x:(w=this.$lines.createCell(x,h,this.session,u),this.$lines.push(w)),this.$renderCell(w,h,g,x),x++}this._signal("afterRender"),this.$updateGutterWidth(h),this.$showCursorMarker&&this.$highlightGutterLine&&this.$updateCursorMarker()},d.prototype.$updateGutterWidth=function(h){var m=this.session,f=m.gutterRenderer||this.$renderer,p=m.$firstLineNumber,g=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||m.$useWrapMode)&&(g=m.getLength()+p-1);var y=f?f.getWidth(m,g,h):g.toString().length*h.characterWidth,w=this.$padding||this.$computePadding();y+=w.left+w.right,y!==this.gutterWidth&&!isNaN(y)&&(this.gutterWidth=y,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",y))},d.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var h=this.session.selection.getCursor();this.$cursorRow!==h.row&&(this.$cursorRow=h.row)}},d.prototype.updateLineHighlight=function(){if(this.$showCursorMarker&&this.$updateCursorMarker(),!!this.$highlightGutterLine){var h=this.session.selection.cursor.row;if(this.$cursorRow=h,!(this.$cursorCell&&this.$cursorCell.row==h)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var m=this.$lines.cells;this.$cursorCell=null;for(var f=0;f=this.$cursorRow){if(p.row>this.$cursorRow){var g=this.session.getFoldLine(this.$cursorRow);if(f>0&&g&&g.start.row==m[f-1].row)p=m[f-1];else break}p.element.className="ace_gutter-active-line "+p.element.className,this.$cursorCell=p;break}}}}},d.prototype.$updateCursorMarker=function(){if(this.session){var h=this.session;this.$highlightElement||(this.$highlightElement=i.createElement("div"),this.$highlightElement.className="ace_gutter-cursor",this.$highlightElement.style.pointerEvents="none",this.element.appendChild(this.$highlightElement));var m=h.selection.cursor,f=this.config,p=this.$lines,g=f.firstRowScreen*f.lineHeight,y=Math.floor(g/p.canvasHeight),w=h.documentToScreenRow(m)*f.lineHeight,k=w-y*p.canvasHeight;i.setStyle(this.$highlightElement.style,"height",f.lineHeight+"px"),i.setStyle(this.$highlightElement.style,"top",k+"px")}},d.prototype.scrollLines=function(h){var m=this.config;if(this.config=h,this.$updateCursorRow(),this.$lines.pageChanged(m,h))return this.update(h);this.$lines.moveContainer(h);var f=Math.min(h.lastRow+h.gutterOffset,this.session.getLength()-1),p=this.oldLastRow;if(this.oldLastRow=f,!m||p0;g--)this.$lines.shift();if(p>f)for(var g=this.session.getFoldedRowCount(f+1,p);g>0;g--)this.$lines.pop();h.firstRowp&&this.$lines.push(this.$renderLines(h,p+1,f)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(h)},d.prototype.$renderLines=function(h,m,f){for(var p=[],g=m,y=this.session.getNextFoldLine(g),w=y?y.start.row:1/0;g>w&&(g=y.end.row+1,y=this.session.getNextFoldLine(g,y),w=y?y.start.row:1/0),!(g>f);){var k=this.$lines.createCell(g,h,this.session,u);this.$renderCell(k,h,y,g),p.push(k),g++}return p},d.prototype.$renderCell=function(h,m,f,p){var g=h.element,y=this.session,w=g.childNodes[0],k=g.childNodes[1],x=g.childNodes[2],C=g.childNodes[3],A=x.firstChild,T=y.$firstLineNumber,E=y.$breakpoints,L=y.$decorations,S=y.gutterRenderer||this.$renderer,v=this.$showFoldWidgets&&y.foldWidgets,_=f?f.start.row:Number.MAX_VALUE,b=m.lineHeight+"px",M=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",I=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",D=(S?S.getText(y,p):p+T).toString();if(this.$highlightGutterLine&&(p==this.$cursorRow||f&&p=_&&this.$cursorRow<=f.end.row)&&(M+="ace_gutter-active-line ",this.$cursorCell!=h&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=h)),E[p]&&(M+=E[p]),L[p]&&(M+=L[p]),this.$annotations[p]&&p!==_&&(M+=this.$annotations[p].className),v){var O=v[p];O==null&&(O=v[p]=y.getFoldWidget(p))}if(O){var N="ace_fold-widget ace_"+O,F=O=="start"&&p==_&&pm[p].row)){for(;f<=p;){var g=Math.floor((f+p)/2),y=m[g];if(y.row>h)p=g-1;else if(y.rowf.right-m.right)return"foldWidgets"},d}();c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer=void 0,c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,r.implement(c.prototype,a);function u(d){var h=document.createTextNode("");d.appendChild(h);var m=i.createElement("span");d.appendChild(m);var f=i.createElement("span");d.appendChild(f);var p=i.createElement("span");return f.appendChild(p),d}t.Gutter=c});ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../range").Range,r=n("../lib/dom"),s=function(){function o(l){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",l.appendChild(this.element)}return o.prototype.setPadding=function(l){this.$padding=l},o.prototype.setSession=function(l){this.session=l},o.prototype.setMarkers=function(l){this.markers=l},o.prototype.elt=function(l,c){var u=this.i!=-1&&this.element.childNodes[this.i];u?this.i++:(u=document.createElement("div"),this.element.appendChild(u),this.i=-1),u.style.cssText=c,u.className=l},o.prototype.update=function(l){if(l){this.config=l,this.i=0;var c;for(var u in this.markers){var d=this.markers[u];if(!d.range){d.update(c,this,this.session,l);continue}var h=d.range.clipRows(l.firstRow,l.lastRow);if(!h.isEmpty())if(h=h.toScreenRange(this.session),d.renderer){var m=this.$getTop(h.start.row,l),f=this.$padding+h.start.column*l.characterWidth;d.renderer(c,h,f,m,l)}else d.type=="fullLine"?this.drawFullLineMarker(c,h,d.clazz,l):d.type=="screenLine"?this.drawScreenLineMarker(c,h,d.clazz,l):h.isMultiLine()?d.type=="text"?this.drawTextMarker(c,h,d.clazz,l):this.drawMultiLineMarker(c,h,d.clazz,l):this.drawSingleLineMarker(c,h,d.clazz+" ace_start ace_br15",l)}if(this.i!=-1)for(;this.ik,g==p),d,g==p?0:1,h)},o.prototype.drawMultiLineMarker=function(l,c,u,d,h){var m=this.$padding,f=d.lineHeight,p=this.$getTop(c.start.row,d),g=m+c.start.column*d.characterWidth;if(h=h||"",this.session.$bidiHandler.isBidiRow(c.start.row)){var y=c.clone();y.end.row=y.start.row,y.end.column=this.session.getLine(y.start.row).length,this.drawBidiSingleLineMarker(l,y,u+" ace_br1 ace_start",d,null,h)}else this.elt(u+" ace_br1 ace_start","height:"+f+"px;right:"+m+"px;top:"+p+"px;left:"+g+"px;"+(h||""));if(this.session.$bidiHandler.isBidiRow(c.end.row)){var y=c.clone();y.start.row=y.end.row,y.start.column=0,this.drawBidiSingleLineMarker(l,y,u+" ace_br12",d,null,h)}else{p=this.$getTop(c.end.row,d);var w=c.end.column*d.characterWidth;this.elt(u+" ace_br12","height:"+f+"px;width:"+w+"px;top:"+p+"px;left:"+m+"px;"+(h||""))}if(f=(c.end.row-c.start.row-1)*d.lineHeight,!(f<=0)){p=this.$getTop(c.start.row+1,d);var k=(c.start.column?1:0)|(c.end.column?0:8);this.elt(u+(k?" ace_br"+k:""),"height:"+f+"px;right:"+m+"px;top:"+p+"px;left:"+m+"px;"+(h||""))}},o.prototype.drawSingleLineMarker=function(l,c,u,d,h,m){if(this.session.$bidiHandler.isBidiRow(c.start.row))return this.drawBidiSingleLineMarker(l,c,u,d,h,m);var f=d.lineHeight,p=(c.end.column+(h||0)-c.start.column)*d.characterWidth,g=this.$getTop(c.start.row,d),y=this.$padding+c.start.column*d.characterWidth;this.elt(u,"height:"+f+"px;width:"+p+"px;top:"+g+"px;left:"+y+"px;"+(m||""))},o.prototype.drawBidiSingleLineMarker=function(l,c,u,d,h,m){var f=d.lineHeight,p=this.$getTop(c.start.row,d),g=this.$padding,y=this.session.$bidiHandler.getSelections(c.start.column,c.end.column);y.forEach(function(w){this.elt(u,"height:"+f+"px;width:"+(w.width+(h||0))+"px;top:"+p+"px;left:"+(g+w.left)+"px;"+(m||""))},this)},o.prototype.drawFullLineMarker=function(l,c,u,d,h){var m=this.$getTop(c.start.row,d),f=d.lineHeight;c.start.row!=c.end.row&&(f+=this.$getTop(c.end.row,d)-m),this.elt(u,"height:"+f+"px;top:"+m+"px;left:0;right:0;"+(h||""))},o.prototype.drawScreenLineMarker=function(l,c,u,d,h){var m=this.$getTop(c.start.row,d),f=d.lineHeight;this.elt(u,"height:"+f+"px;top:"+m+"px;left:0;right:0;"+(h||""))},o}();s.prototype.$padding=0;function a(o,l,c,u){return(o?1:0)|(l?2:0)|(c?4:0)|(u?8:0)}t.Marker=s});ace.define("ace/layer/text_util",["require","exports","module"],function(n,t,e){var i=new Set(["text","rparen","lparen"]);t.isTextToken=function(r){return i.has(r)}});ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("../lib/dom"),s=n("../lib/lang"),a=n("./lines").Lines,o=n("../lib/event_emitter").EventEmitter,l=n("../config").nls,c=n("./text_util").isTextToken,u=function(){function d(h){this.dom=r,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",h.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)}return d.prototype.$updateEolChar=function(){var h=this.session.doc,m=h.getNewLineCharacter()==` +`&&h.getNewLineMode()!="windows",f=m?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=f)return this.EOL_CHAR=f,!0},d.prototype.setPadding=function(h){this.$padding=h,this.element.style.margin="0 "+h+"px"},d.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},d.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},d.prototype.$setFontMetrics=function(h){this.$fontMetrics=h,this.$fontMetrics.on("changeCharacterSize",function(m){this._signal("changeCharacterSize",m)}.bind(this)),this.$pollSizeChanges()},d.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},d.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},d.prototype.setSession=function(h){this.session=h,h&&this.$computeTabString()},d.prototype.setShowInvisibles=function(h){return this.showInvisibles==h?!1:(this.showInvisibles=h,typeof h=="string"?(this.showSpaces=/tab/i.test(h),this.showTabs=/space/i.test(h),this.showEOL=/eol/i.test(h)):this.showSpaces=this.showTabs=this.showEOL=h,this.$computeTabString(),!0)},d.prototype.setDisplayIndentGuides=function(h){return this.displayIndentGuides==h?!1:(this.displayIndentGuides=h,this.$computeTabString(),!0)},d.prototype.setHighlightIndentGuides=function(h){return this.$highlightIndentGuides===h?!1:(this.$highlightIndentGuides=h,h)},d.prototype.$computeTabString=function(){var h=this.session.getTabSize();this.tabSize=h;for(var m=this.$tabStrings=[0],f=1;fA&&(x=C.end.row+1,C=this.session.getNextFoldLine(x,C),A=C?C.start.row:1/0),!(x>g);){var T=y[w++];if(T){this.dom.removeChildren(T),this.$renderLine(T,x,x==A?C:!1),k&&(T.style.top=this.$lines.computeLineTop(x,h,this.session)+"px");var E=h.lineHeight*this.session.getRowLength(x)+"px";T.style.height!=E&&(k=!0,T.style.height=E)}x++}if(k)for(;w0;g--)this.$lines.shift();if(m.lastRow>h.lastRow)for(var g=this.session.getFoldedRowCount(h.lastRow+1,m.lastRow);g>0;g--)this.$lines.pop();h.firstRowm.lastRow&&this.$lines.push(this.$renderLinesFragment(h,m.lastRow+1,h.lastRow)),this.$highlightIndentGuide()},d.prototype.$renderLinesFragment=function(h,m,f){for(var p=[],g=m,y=this.session.getNextFoldLine(g),w=y?y.start.row:1/0;g>w&&(g=y.end.row+1,y=this.session.getNextFoldLine(g,y),w=y?y.start.row:1/0),!(g>f);){var k=this.$lines.createCell(g,h,this.session),x=k.element;this.dom.removeChildren(x),r.setStyle(x.style,"height",this.$lines.computeLineHeight(g,h,this.session)+"px"),r.setStyle(x.style,"top",this.$lines.computeLineTop(g,h,this.session)+"px"),this.$renderLine(x,g,g==w?y:!1),this.$useLineGroups()?x.className="ace_line_group":x.className="ace_line",p.push(k),g++}return p},d.prototype.update=function(h){this.$lines.moveContainer(h),this.config=h;for(var m=h.firstRow,f=h.lastRow,p=this.$lines;p.getLength();)p.pop();p.push(this.$renderLinesFragment(h,m,f))},d.prototype.$renderToken=function(h,m,f,p){for(var g=this,y=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,w=this.dom.createFragment(this.element),k,x=0;k=y.exec(p);){var C=k[1],A=k[2],T=k[3],E=k[4],L=k[5];if(!(!g.showSpaces&&A)){var S=x!=k.index?p.slice(x,k.index):"";if(x=k.index+k[0].length,S&&w.appendChild(this.dom.createTextNode(S,this.element)),C){var v=g.session.getScreenTabSize(m+k.index),_=g.$tabStrings[v].cloneNode(!0);_.charCount=1,w.appendChild(_),m+=v-1}else if(A)if(g.showSpaces){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space",b.textContent=s.stringRepeat(g.SPACE_CHAR,A.length),w.appendChild(b)}else w.appendChild(this.dom.createTextNode(A,this.element));else if(T){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space ace_invalid",b.textContent=s.stringRepeat(g.SPACE_CHAR,T.length),w.appendChild(b)}else if(E){m+=1;var b=this.dom.createElement("span");b.style.width=g.config.characterWidth*2+"px",b.className=g.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",b.textContent=g.showSpaces?g.SPACE_CHAR:E,w.appendChild(b)}else if(L){m+=1;var b=this.dom.createElement("span");b.style.width=g.config.characterWidth*2+"px",b.className="ace_cjk",b.textContent=L,w.appendChild(b)}}}if(w.appendChild(this.dom.createTextNode(x?p.slice(x):p,this.element)),c(f.type))h.appendChild(w);else{var M="ace_"+f.type.replace(/\./g," ace_"),b=this.dom.createElement("span");f.type=="fold"&&(b.style.width=f.value.length*this.config.characterWidth+"px",b.setAttribute("title",l("inline-fold.closed.title","Unfold code"))),b.className=M,b.appendChild(w),h.appendChild(b)}return m+p.length},d.prototype.renderIndentGuide=function(h,m,f){var p=m.search(this.$indentGuideRe);if(p<=0||p>=f)return m;if(m[0]==" "){p-=p%this.tabSize;for(var g=p/this.tabSize,y=0;yy[w].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&h[m.row]!==""&&m.column===h[m.row].length){this.$highlightIndentGuideMarker.dir=1;for(var w=m.row+1;w0)p=h.element.childNodes[0];else return;var g=p.childNodes;if(g){var y=g[m-1];y&&y.classList&&y.classList.contains("ace_indent-guide")&&y.classList.add("ace_indent-guide-active")}}},d.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var h=this.$lines.cells;this.$clearActiveIndentGuide();var m=this.$highlightIndentGuideMarker.indentLevel;if(m!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var f=0;f=this.$highlightIndentGuideMarker.start+1){if(p.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(p,m)}}else for(var f=h.length-1;f>=0;f--){var p=h[f];if(this.$highlightIndentGuideMarker.end&&p.row=y;){w=this.$renderToken(k,w,C,A.substring(0,y-p)),A=A.substring(y-p),p=y,k=this.$createLineElement(),h.appendChild(k);var T=this.dom.createTextNode(s.stringRepeat("\xA0",f.indent),this.element);T.charCount=0,k.appendChild(T),g++,w=0,y=f[g]||Number.MAX_VALUE}A.length!=0&&(p+=A.length,w=this.$renderToken(k,w,C,A))}}f[f.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(k,w,null,"",!0)},d.prototype.$renderSimpleLine=function(h,m){for(var f=0,p=0;pthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(h,f,g,y);f=this.$renderToken(h,f,g,y)}}},d.prototype.$renderOverflowMessage=function(h,m,f,p,g){f&&this.$renderToken(h,m,f,p.slice(0,this.MAX_LINE_LENGTH-m));var y=this.dom.createElement("span");y.className="ace_inline_button ace_keyword ace_toggle_wrap",y.textContent=g?"":"",h.appendChild(y)},d.prototype.$renderLine=function(h,m,f){if(!f&&f!=!1&&(f=this.session.getFoldLine(m)),f)var p=this.$getFoldLineTokens(m,f);else var p=this.session.getTokens(m);var g=h;if(p.length){var y=this.session.getRowSplitData(m);if(y&&y.length){this.$renderWrappedLine(h,p,y);var g=h.lastChild}else{var g=h;this.$useLineGroups()&&(g=this.$createLineElement(),h.appendChild(g)),this.$renderSimpleLine(g,p)}}else this.$useLineGroups()&&(g=this.$createLineElement(),h.appendChild(g));if(this.showEOL&&g){f&&(m=f.end.row);var w=this.dom.createElement("span");w.className="ace_invisible ace_invisible_eol",w.textContent=m==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,g.appendChild(w)}},d.prototype.$getFoldLineTokens=function(h,m){var f=this.session,p=[];function g(w,k,x){for(var C=0,A=0;A+w[C].value.lengthx-k&&(T=T.substring(0,x-k)),p.push({type:w[C].type,value:T}),A=k+T.length,C+=1}for(;Ax?p.push({type:w[C].type,value:T.substring(0,x-A)}):p.push(w[C]),A+=T.length,C+=1}}var y=f.getTokens(h);return m.walk(function(w,k,x,C,A){w!=null?p.push({type:"fold",value:w}):(A&&(y=f.getTokens(k)),y.length&&g(y,C,x))},m.end.row,this.session.getLine(m.end.row).length),p},d.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},d}();u.prototype.EOF_CHAR="\xB6",u.prototype.EOL_CHAR_LF="\xAC",u.prototype.EOL_CHAR_CRLF="\xA4",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="\u2014",u.prototype.SPACE_CHAR="\xB7",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,i.implement(u.prototype,o),t.Text=u});ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=function(){function s(a){this.element=i.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),i.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return s.prototype.$updateOpacity=function(a){for(var o=this.cursors,l=o.length;l--;)i.setStyle(o[l].style,"opacity",a?"":"0")},s.prototype.$startCssAnimation=function(){for(var a=this.cursors,o=a.length;o--;)a[o].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&i.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},s.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,i.removeCssClass(this.element,"ace_animate-blinking")},s.prototype.setPadding=function(a){this.$padding=a},s.prototype.setSession=function(a){this.session=a},s.prototype.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},s.prototype.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},s.prototype.setSmoothBlinking=function(a){a!=this.smoothBlinking&&(this.smoothBlinking=a,i.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.restartTimer())},s.prototype.addCursor=function(){var a=i.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},s.prototype.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},s.prototype.hideCursor=function(){this.isVisible=!1,i.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},s.prototype.showCursor=function(){this.isVisible=!0,i.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},s.prototype.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,i.removeCssClass(this.element,"ace_smooth-blinking")),a(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&i.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),i.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var o=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),o()},this.blinkInterval),o()}},s.prototype.getPixelPosition=function(a,o){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var l=this.session.documentToScreenPosition(a),c=this.$padding+(this.session.$bidiHandler.isBidiRow(l.row,a.row)?this.session.$bidiHandler.getPosLeft(l.column):l.column*this.config.characterWidth),u=(l.row-(o?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:c,top:u}},s.prototype.isCursorInView=function(a,o){return a.top>=0&&a.topa.height+a.offset||d.top<0)&&l>1)){var h=this.cursors[c++]||this.addCursor(),m=h.style;this.drawCursor?this.drawCursor(h,d,a,o[l],this.session):this.isCursorInView(d,a)?(i.setStyle(m,"display","block"),i.translate(h,d.left,d.top),i.setStyle(m,"width",Math.round(a.characterWidth)+"px"),i.setStyle(m,"height",a.lineHeight+"px")):i.setStyle(m,"display","none")}}for(;this.cursors.length>c;)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=d,this.restartTimer()},s.prototype.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?i.addCssClass(this.element,"ace_overwrite-cursors"):i.removeCssClass(this.element,"ace_overwrite-cursors"))},s.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},s}();r.prototype.$padding=0,r.prototype.drawCursor=null,t.Cursor=r});ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var h=function(m,f){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(p,g){p.__proto__=g}||function(p,g){for(var y in g)Object.prototype.hasOwnProperty.call(g,y)&&(p[y]=g[y])},h(m,f)};return function(m,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");h(m,f);function p(){this.constructor=m}m.prototype=f===null?Object.create(f):(p.prototype=f.prototype,new p)}}(),r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/event"),o=n("./lib/event_emitter").EventEmitter,l=32768,c=function(){function h(m,f){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+f,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\xA0",this.element.appendChild(this.inner),m.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return h.prototype.setVisible=function(m){this.element.style.display=m?"":"none",this.isVisible=m,this.coeff=1},h}();r.implement(c.prototype,o);var u=function(h){i(m,h);function m(f,p){var g=h.call(this,f,"-v")||this;return g.scrollTop=0,g.scrollHeight=0,p.$scrollbarWidth=g.width=s.scrollbarWidth(f.ownerDocument),g.inner.style.width=g.element.style.width=(g.width||15)+5+"px",g.$minWidth=0,g}return m.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var f=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-f)/(this.coeff-f)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},m.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},m.prototype.setHeight=function(f){this.element.style.height=f+"px"},m.prototype.setScrollHeight=function(f){this.scrollHeight=f,f>l?(this.coeff=l/f,f=l):this.coeff!=1&&(this.coeff=1),this.inner.style.height=f+"px"},m.prototype.setScrollTop=function(f){this.scrollTop!=f&&(this.skipEvent=!0,this.scrollTop=f,this.element.scrollTop=f*this.coeff)},m}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var d=function(h){i(m,h);function m(f,p){var g=h.call(this,f,"-h")||this;return g.scrollLeft=0,g.height=p.$scrollbarWidth,g.inner.style.height=g.element.style.height=(g.height||15)+5+"px",g}return m.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},m.prototype.getHeight=function(){return this.isVisible?this.height:0},m.prototype.setWidth=function(f){this.element.style.width=f+"px"},m.prototype.setInnerWidth=function(f){this.inner.style.width=f+"px"},m.prototype.setScrollWidth=function(f){this.inner.style.width=f+"px"},m.prototype.setScrollLeft=function(f){this.scrollLeft!=f&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=f)},m}(c);t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=d,t.VScrollBar=u,t.HScrollBar=d});ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var d=function(h,m){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,p){f.__proto__=p}||function(f,p){for(var g in p)Object.prototype.hasOwnProperty.call(p,g)&&(f[g]=p[g])},d(h,m)};return function(h,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");d(h,m);function f(){this.constructor=h}h.prototype=m===null?Object.create(m):(f.prototype=m.prototype,new f)}}(),r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/event"),o=n("./lib/event_emitter").EventEmitter;s.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ + position: absolute; + background: rgba(128, 128, 128, 0.6); + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #bbb; + border-radius: 2px; + z-index: 8; +} +.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h { + position: absolute; + z-index: 6; + background: none; + overflow: hidden!important; +} +.ace_editor>.ace_sb-v { + z-index: 6; + right: 0; + top: 0; + width: 12px; +} +.ace_editor>.ace_sb-v div { + z-index: 8; + right: 0; + width: 100%; +} +.ace_editor>.ace_sb-h { + bottom: 0; + left: 0; + height: 12px; +} +.ace_editor>.ace_sb-h div { + bottom: 0; + height: 100%; +} +.ace_editor>.ace_sb_grabbed { + z-index: 8; + background: #000; +}`,"ace_scrollbar.css",!1);var l=function(){function d(h,m){this.element=s.createElement("div"),this.element.className="ace_sb"+m,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,h.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return d.prototype.setVisible=function(h){this.element.style.display=h?"":"none",this.isVisible=h,this.coeff=1},d}();r.implement(l.prototype,o);var c=function(d){i(h,d);function h(m,f){var p=d.call(this,m,"-v")||this;return p.scrollTop=0,p.scrollHeight=0,p.parent=m,p.width=p.VScrollWidth,p.renderer=f,p.inner.style.width=p.element.style.width=(p.width||15)+"px",p.$minWidth=0,p}return h.prototype.onMouseDown=function(m,f){if(m==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var p=this,g=f.clientY,y=function(E){g=E.clientY},w=function(){clearInterval(A)},k=f.clientY,x=this.thumbTop,C=function(){if(g!==void 0){var E=p.scrollTopFromThumbTop(x+g-k);E!==p.scrollTop&&p._emit("scroll",{data:E})}};a.capture(this.inner,y,w);var A=setInterval(C,20);return a.preventDefault(f)}var T=f.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(T)}),a.preventDefault(f)}},h.prototype.getHeight=function(){return this.height},h.prototype.scrollTopFromThumbTop=function(m){var f=m*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return f=f>>0,f<0?f=0:f>this.pageHeight-this.viewHeight&&(f=this.pageHeight-this.viewHeight),f},h.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},h.prototype.setHeight=function(m){this.height=Math.max(0,m),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},h.prototype.setScrollHeight=function(m,f){this.pageHeight===m&&!f||(this.pageHeight=m,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},h.prototype.setScrollTop=function(m){this.scrollTop=m,m<0&&(m=0),this.thumbTop=m*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},h}(l);c.prototype.setInnerHeight=c.prototype.setScrollHeight;var u=function(d){i(h,d);function h(m,f){var p=d.call(this,m,"-h")||this;return p.scrollLeft=0,p.scrollWidth=0,p.height=p.HScrollHeight,p.inner.style.height=p.element.style.height=(p.height||12)+"px",p.renderer=f,p}return h.prototype.onMouseDown=function(m,f){if(m==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var p=this,g=f.clientX,y=function(E){g=E.clientX},w=function(){clearInterval(A)},k=f.clientX,x=this.thumbLeft,C=function(){if(g!==void 0){var E=p.scrollLeftFromThumbLeft(x+g-k);E!==p.scrollLeft&&p._emit("scroll",{data:E})}};a.capture(this.inner,y,w);var A=setInterval(C,20);return a.preventDefault(f)}var T=f.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(T)}),a.preventDefault(f)}},h.prototype.getHeight=function(){return this.isVisible?this.height:0},h.prototype.scrollLeftFromThumbLeft=function(m){var f=m*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return f=f>>0,f<0?f=0:f>this.pageWidth-this.viewWidth&&(f=this.pageWidth-this.viewWidth),f},h.prototype.setWidth=function(m){this.width=Math.max(0,m),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},h.prototype.setScrollWidth=function(m,f){this.pageWidth===m&&!f||(this.pageWidth=m,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},h.prototype.setScrollLeft=function(m){this.scrollLeft=m,m<0&&(m=0),this.thumbLeft=m*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},h}(l);u.prototype.setInnerWidth=u.prototype.setScrollWidth,t.ScrollBar=c,t.ScrollBarV=c,t.ScrollBarH=u,t.VScrollBar=c,t.HScrollBar=u});ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(n,t,e){"use strict";var i=n("./lib/event"),r=function(){function s(a,o){this.onRender=a,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=o||window;var l=this;this._flush=function(c){l.pending=!1;var u=l.changes;if(u&&(i.blockIdle(100),l.changes=0,l.onRender(u)),l.changes){if(l.$recursionLimit--<0)return;l.schedule()}else l.$recursionLimit=2}}return s.prototype.schedule=function(a){this.changes=this.changes|a,this.changes&&!this.pending&&(i.nextFrame(this._flush),this.pending=!0)},s.prototype.clear=function(a){var o=this.changes;return this.changes=0,o},s}();t.RenderLoop=r});ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(n,t,e){var i=n("../lib/oop"),r=n("../lib/dom"),s=n("../lib/lang"),a=n("../lib/event"),o=n("../lib/useragent"),l=n("../lib/event_emitter").EventEmitter,c=512,u=typeof ResizeObserver=="function",d=200,h=function(){function m(f){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return m.prototype.$setMeasureNodeStyles=function(f,p){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",o.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=p?"hidden":"visible"},m.prototype.checkForSizeChanges=function(f){if(f===void 0&&(f=this.$measureSizes()),f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var p=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=p&&p.width===f.width&&p.height===f.height,this._emit("changeCharacterSize",{data:f})}},m.prototype.$addObserver=function(){var f=this;this.$observer=new window.ResizeObserver(function(p){f.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},m.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=a.onIdle(function p(){f.checkForSizeChanges(),a.onIdle(p,500)},500)},m.prototype.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},m.prototype.$measureSizes=function(f){var p={height:(f||this.$measureNode).clientHeight,width:(f||this.$measureNode).clientWidth/c};return p.width===0||p.height===0?null:p},m.prototype.$measureCharWidth=function(f){this.$main.textContent=s.stringRepeat(f,c);var p=this.$main.getBoundingClientRect();return p.width/c},m.prototype.getCharacterWidth=function(f){var p=this.charSizes[f];return p===void 0&&(p=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),p},m.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},m.prototype.$getZoom=function(f){return!f||!f.parentElement?1:(Number(window.getComputedStyle(f).zoom)||1)*this.$getZoom(f.parentElement)},m.prototype.$initTransformMeasureNodes=function(){var f=function(p,g){return["div",{style:"position: absolute;top:"+p+"px;left:"+g+"px;"}]};this.els=r.buildDom([f(0,0),f(d,0),f(0,d),f(d,d)],this.el)},m.prototype.transformCoordinates=function(f,p){if(f){var g=this.$getZoom(this.el);f=x(1/g,f)}function y(N,F,z){var V=N[1]*F[0]-N[0]*F[1];return[(-F[1]*z[0]+F[0]*z[1])/V,(+N[1]*z[0]-N[0]*z[1])/V]}function w(N,F){return[N[0]-F[0],N[1]-F[1]]}function k(N,F){return[N[0]+F[0],N[1]+F[1]]}function x(N,F){return[N*F[0],N*F[1]]}this.els||this.$initTransformMeasureNodes();function C(N){var F=N.getBoundingClientRect();return[F.left,F.top]}var A=C(this.els[0]),T=C(this.els[1]),E=C(this.els[2]),L=C(this.els[3]),S=y(w(L,T),w(L,E),w(k(T,E),k(L,A))),v=x(1+S[0],w(T,A)),_=x(1+S[1],w(E,A));if(p){var b=p,M=S[0]*b[0]/d+S[1]*b[1]/d+1,I=k(x(b[0],v),x(b[1],_));return k(x(1/M/d,I),A)}var D=w(f,A),O=y(w(v,x(S[0],D)),w(_,x(S[1],D)),D);return x(d,O)},m}();h.prototype.$characterSize={width:0,height:0},i.implement(h.prototype,l),t.FontMetrics=h});ace.define("ace/css/editor-css",["require","exports","module"],function(n,t,e){e.exports=` +.ace_br1 {border-top-left-radius : 3px;} +.ace_br2 {border-top-right-radius : 3px;} +.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} +.ace_br4 {border-bottom-right-radius: 3px;} +.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} +.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} +.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} +.ace_br8 {border-bottom-left-radius : 3px;} +.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} +.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} +.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} + + +.ace_editor { + position: relative; + overflow: hidden; + padding: 0; + font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace; + direction: ltr; + text-align: left; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + forced-color-adjust: none; +} + +.ace_scroller { + position: absolute; + overflow: hidden; + top: 0; + bottom: 0; + background-color: inherit; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + cursor: text; +} + +.ace_content { + position: absolute; + box-sizing: border-box; + min-width: 100%; + contain: style size layout; + font-variant-ligatures: no-common-ligatures; +} +.ace_invisible { + font-variant-ligatures: none; +} + +.ace_keyboard-focus:focus { + box-shadow: inset 0 0 0 2px #5E9ED6; + outline: none; +} + +.ace_dragging .ace_scroller:before{ + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + content: ''; + background: rgba(250, 250, 250, 0.01); + z-index: 1000; +} +.ace_dragging.ace_dark .ace_scroller:before{ + background: rgba(0, 0, 0, 0.01); +} + +.ace_gutter { + position: absolute; + overflow : hidden; + width: auto; + top: 0; + bottom: 0; + left: 0; + cursor: default; + z-index: 4; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + contain: style size layout; +} + +.ace_gutter-active-line { + position: absolute; + left: 0; + right: 0; +} + +.ace_scroller.ace_scroll-left:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; + pointer-events: none; +} + +.ace_gutter-cell, .ace_gutter-cell_svg-icons { + position: absolute; + top: 0; + left: 0; + right: 0; + padding-left: 19px; + padding-right: 6px; + background-repeat: no-repeat; +} + +.ace_gutter-cell_svg-icons .ace_gutter_annotation { + margin-left: -14px; + float: left; +} + +.ace_gutter-cell .ace_gutter_annotation { + margin-left: -19px; + float: left; +} + +.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold, .ace_gutter-cell.ace_security, .ace_icon.ace_security, .ace_icon.ace_security_fold { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_gutter-cell.ace_info, .ace_icon.ace_info, .ace_gutter-cell.ace_hint, .ace_icon.ace_hint { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info, .ace_dark .ace_gutter-cell.ace_hint, .ace_dark .ace_icon.ace_hint { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); +} + +.ace_icon_svg.ace_error { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+"); + background-color: crimson; +} +.ace_icon_svg.ace_security { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iZGFya29yYW5nZSIgZmlsbD0ibm9uZSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogICAgICAgIDxwYXRoIGNsYXNzPSJzdHJva2UtbGluZWpvaW4tcm91bmQiIGQ9Ik04IDE0LjgzMDdDOCAxNC44MzA3IDIgMTIuOTA0NyAyIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOEM3Ljk4OTk5IDEuMzQ5MTggMTAuNjkgMy4yNjU0OCAxNCAzLjI2NTQ4VjguMDg5OTJDMTQgMTIuOTA0NyA4IDE0LjgzMDcgOCAxNC44MzA3WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMy45OSA4LjA4OTkyVjMuMjY1NDhDMTAuNjggMy4yNjU0OCA4IDEuMzQ5MTggOCAxLjM0OTE4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggNFY5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggMTBWMTIiLz4KICAgIDwvZz4KPC9zdmc+"); + background-color: crimson; +} +.ace_icon_svg.ace_warning { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg=="); + background-color: darkorange; +} +.ace_icon_svg.ace_info { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg=="); + background-color: royalblue; +} +.ace_icon_svg.ace_hint { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0ic2lsdmVyIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTYgMTRIMTAiLz4KICAgICAgICA8cGF0aCBkPSJNOCAxMUg5QzkgOS40NzAwMiAxMiA4LjU0MDAyIDEyIDUuNzYwMDJDMTIuMDIgNC40MDAwMiAxMS4zOSAzLjM2MDAyIDEwLjQzIDIuNjcwMDJDOSAxLjY0MDAyIDcuMDAwMDEgMS42NDAwMiA1LjU3MDAxIDIuNjcwMDJDNC42MTAwMSAzLjM2MDAyIDMuOTggNC40MDAwMiA0IDUuNzYwMDJDNCA4LjU0MDAyIDcuMDAwMDEgOS40NzAwMiA3LjAwMDAxIDExSDhaIi8+CiAgICA8L2c+Cjwvc3ZnPg=="); + background-color: silver; +} + +.ace_icon_svg.ace_error_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); + background-color: crimson; +} +.ace_icon_svg.ace_security_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTQiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTEwLjAwMDEgMTMuNjk5MkMxMC4wMDAxIDEzLjY5OTIgMTEuOTI0MSAxMy40NzYzIDEzIDEyLjY5OTJDMTQuNDEzOSAxMS42NzgxIDE2IDEwLjUgMTYuMTI1MSA2LjgxMTI2VjIuNTg5ODdDMTYuMTI1MSAyLjU0NzY4IDE2LjEyMjEgMi41MDYxOSAxNi4xMTY0IDIuNDY1NTlWMS43MTQ4NUgxNS4yNDE0TDE1LjIzMDcgMS43MTQ4NEwxNC42MjUxIDEuNjk5MjJWNi44MTEyM0MxNC42MjUxIDguNTEwNjEgMTQuNjI1MSA5LjQ2NDYxIDEyLjc4MjQgMTEuNzIxQzEyLjE1ODYgMTIuNDg0OCAxMC4wMDAxIDEzLjY5OTIgMTAuMDAwMSAxMy42OTkyWiIgZmlsbD0iY3JpbXNvbiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMzM2MDkgMC4zNjc0NzVDNy4wMzIxNCAwLjE1MjY1MiA2LjYyNTQ4IDAuMTUzNjE0IDYuMzIyNTMgMC4zNjk5OTdMNi4zMDg2OSAwLjM3OTU1NEM2LjI5NTUzIDAuMzg4NTg4IDYuMjczODggMC40MDMyNjYgNi4yNDQxNyAwLjQyMjc4OUM2LjE4NDcxIDAuNDYxODYgNi4wOTMyMSAwLjUyMDE3MSA1Ljk3MzEzIDAuNTkxMzczQzUuNzMyNTEgMC43MzQwNTkgNS4zNzk5IDAuOTI2ODY0IDQuOTQyNzkgMS4xMjAwOUM0LjA2MTQ0IDEuNTA5NyAyLjg3NTQxIDEuODgzNzcgMS41ODk4NCAxLjg4Mzc3SDAuNzE0ODQ0VjIuNzU4NzdWNi45ODAxNUMwLjcxNDg0NCA5LjQ5Mzc0IDIuMjg4NjYgMTEuMTk3MyAzLjcwMjU0IDEyLjIxODVDNC40MTg0NSAxMi43MzU1IDUuMTI4NzQgMTMuMTA1MyA1LjY1NzMzIDEzLjM0NTdDNS45MjI4NCAxMy40NjY0IDYuMTQ1NjYgMTMuNTU1OSA2LjMwNDY1IDEzLjYxNjFDNi4zODQyMyAxMy42NDYyIDYuNDQ4MDUgMTMuNjY5IDYuNDkzNDkgMTMuNjg0OEM2LjUxNjIyIDEzLjY5MjcgNi41MzQzOCAxMy42OTg5IDYuNTQ3NjQgMTMuNzAzM0w2LjU2MzgyIDEzLjcwODdMNi41NjkwOCAxMy43MTA0TDYuNTcwOTkgMTMuNzExTDYuODM5ODQgMTMuNzUzM0w2LjU3MjQyIDEzLjcxMTVDNi43NDYzMyAxMy43NjczIDYuOTMzMzUgMTMuNzY3MyA3LjEwNzI3IDEzLjcxMTVMNy4xMDg3IDEzLjcxMUw3LjExMDYxIDEzLjcxMDRMNy4xMTU4NyAxMy43MDg3TDcuMTMyMDUgMTMuNzAzM0M3LjE0NTMxIDEzLjY5ODkgNy4xNjM0NiAxMy42OTI3IDcuMTg2MTkgMTMuNjg0OEM3LjIzMTY0IDEzLjY2OSA3LjI5NTQ2IDEzLjY0NjIgNy4zNzUwMyAxMy42MTYxQzcuNTM0MDMgMTMuNTU1OSA3Ljc1Njg1IDEzLjQ2NjQgOC4wMjIzNiAxMy4zNDU3QzguNTUwOTUgMTMuMTA1MyA5LjI2MTIzIDEyLjczNTUgOS45NzcxNSAxMi4yMTg1QzExLjM5MSAxMS4xOTczIDEyLjk2NDggOS40OTM3NyAxMi45NjQ4IDYuOTgwMThWMi43NTg4QzEyLjk2NDggMi43MTY2IDEyLjk2MTkgMi42NzUxMSAxMi45NTYxIDIuNjM0NTFWMS44ODM3N0gxMi4wODExQzEyLjA3NzUgMS44ODM3NyAxMi4wNzQgMS44ODM3NyAxMi4wNzA0IDEuODgzNzdDMTAuNzk3OSAxLjg4MDA0IDkuNjE5NjIgMS41MTEwMiA4LjczODk0IDEuMTI0ODZDOC43MzUzNCAxLjEyMzI3IDguNzMxNzQgMS4xMjE2OCA4LjcyODE0IDEuMTIwMDlDOC4yOTEwMyAwLjkyNjg2NCA3LjkzODQyIDAuNzM0MDU5IDcuNjk3NzkgMC41OTEzNzNDNy41Nzc3MiAwLjUyMDE3MSA3LjQ4NjIyIDAuNDYxODYgNy40MjY3NiAwLjQyMjc4OUM3LjM5NzA1IDAuNDAzMjY2IDcuMzc1MzkgMC4zODg1ODggNy4zNjIyNCAwLjM3OTU1NEw3LjM0ODk2IDAuMzcwMzVDNy4zNDg5NiAwLjM3MDM1IDcuMzQ4NDcgMC4zNzAwMiA3LjM0NTYzIDAuMzc0MDU0TDcuMzM3NzkgMC4zNjg2NTlMNy4zMzYwOSAwLjM2NzQ3NVpNOC4wMzQ3MSAyLjcyNjkxQzguODYwNCAzLjA5MDYzIDkuOTYwNjYgMy40NjMwOSAxMS4yMDYxIDMuNTg5MDdWNi45ODAxNUgxMS4yMTQ4QzExLjIxNDggOC42Nzk1MyAxMC4xNjM3IDkuOTI1MDcgOC45NTI1NCAxMC43OTk4QzguMzU1OTUgMTEuMjMwNiA3Ljc1Mzc0IDExLjU0NTQgNy4yOTc5NiAxMS43NTI3QzcuMTE2NzEgMTEuODM1MSA2Ljk2MDYyIDExLjg5OTYgNi44Mzk4NCAxMS45NDY5QzYuNzE5MDYgMTEuODk5NiA2LjU2Mjk3IDExLjgzNTEgNi4zODE3MyAxMS43NTI3QzUuOTI1OTUgMTEuNTQ1NCA1LjMyMzczIDExLjIzMDYgNC43MjcxNSAxMC43OTk4QzMuNTE2MDMgOS45MjUwNyAyLjQ2NDg0IDguNjc5NTUgMi40NjQ4NCA2Ljk4MDE4VjMuNTg5MDlDMy43MTczOCAzLjQ2MjM5IDQuODIzMDggMy4wODYzOSA1LjY1MDMzIDIuNzIwNzFDNi4xNDIyOCAyLjUwMzI0IDYuNTQ0ODUgMi4yODUzNyA2LjgzMjU0IDIuMTE2MjRDNy4xMjE4MSAyLjI4NTM1IDcuNTI3IDIuNTAzNTIgOC4wMjE5NiAyLjcyMTMxQzguMDI2MiAyLjcyMzE3IDguMDMwNDUgMi43MjUwNCA4LjAzNDcxIDIuNzI2OTFaTTUuOTY0ODQgMy40MDE0N1Y3Ljc3NjQ3SDcuNzE0ODRWMy40MDE0N0g1Ljk2NDg0Wk01Ljk2NDg0IDEwLjQwMTVWOC42NTE0N0g3LjcxNDg0VjEwLjQwMTVINS45NjQ4NFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); + background-color: crimson; +} +.ace_icon_svg.ace_warning_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4="); + background-color: darkorange; +} + +.ace_scrollbar { + contain: strict; + position: absolute; + right: 0; + bottom: 0; + z-index: 6; +} + +.ace_scrollbar-inner { + position: absolute; + cursor: text; + left: 0; + top: 0; +} + +.ace_scrollbar-v{ + overflow-x: hidden; + overflow-y: scroll; + top: 0; +} + +.ace_scrollbar-h { + overflow-x: scroll; + overflow-y: hidden; + left: 0; +} + +.ace_print-margin { + position: absolute; + height: 100%; +} + +.ace_text-input { + position: absolute; + z-index: 0; + width: 0.5em; + height: 1em; + opacity: 0; + background: transparent; + -moz-appearance: none; + appearance: none; + border: none; + resize: none; + outline: none; + overflow: hidden; + font: inherit; + padding: 0 1px; + margin: 0 -1px; + contain: strict; + -ms-user-select: text; + -moz-user-select: text; + -webkit-user-select: text; + user-select: text; + /*with \`pre-line\` chrome inserts   instead of space*/ + white-space: pre!important; +} +.ace_text-input.ace_composition { + background: transparent; + color: inherit; + z-index: 1000; + opacity: 1; +} +.ace_composition_placeholder { color: transparent } +.ace_composition_marker { + border-bottom: 1px solid; + position: absolute; + border-radius: 0; + margin-top: 1px; +} + +[ace_nocontext=true] { + transform: none!important; + filter: none!important; + clip-path: none!important; + mask : none!important; + contain: none!important; + perspective: none!important; + mix-blend-mode: initial!important; + z-index: auto; +} + +.ace_layer { + z-index: 1; + position: absolute; + overflow: hidden; + /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/ + word-wrap: normal; + white-space: pre; + height: 100%; + width: 100%; + box-sizing: border-box; + /* setting pointer-events: auto; on node under the mouse, which changes + during scroll, will break mouse wheel scrolling in Safari */ + pointer-events: none; +} + +.ace_gutter-layer { + position: relative; + width: auto; + text-align: right; + pointer-events: auto; + height: 1000000px; + contain: style size layout; +} + +.ace_text-layer { + font: inherit !important; + position: absolute; + height: 1000000px; + width: 1000000px; + contain: style size layout; +} + +.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group { + contain: style size layout; + position: absolute; + top: 0; + left: 0; + right: 0; +} + +.ace_hidpi .ace_text-layer, +.ace_hidpi .ace_gutter-layer, +.ace_hidpi .ace_content, +.ace_hidpi .ace_gutter { + contain: strict; +} +.ace_hidpi .ace_text-layer > .ace_line, +.ace_hidpi .ace_text-layer > .ace_line_group { + contain: strict; +} + +.ace_cjk { + display: inline-block; + text-align: center; +} + +.ace_cursor-layer { + z-index: 4; +} + +.ace_cursor { + z-index: 4; + position: absolute; + box-sizing: border-box; + border-left: 2px solid; + /* workaround for smooth cursor repaintng whole screen in chrome */ + transform: translatez(0); +} + +.ace_multiselect .ace_cursor { + border-left-width: 1px; +} + +.ace_slim-cursors .ace_cursor { + border-left-width: 1px; +} + +.ace_overwrite-cursors .ace_cursor { + border-left-width: 0; + border-bottom: 1px solid; +} + +.ace_hidden-cursors .ace_cursor { + opacity: 0.2; +} + +.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor { + opacity: 0; +} + +.ace_smooth-blinking .ace_cursor { + transition: opacity 0.18s; +} + +.ace_animate-blinking .ace_cursor { + animation-duration: 1000ms; + animation-timing-function: step-end; + animation-name: blink-ace-animate; + animation-iteration-count: infinite; +} + +.ace_animate-blinking.ace_smooth-blinking .ace_cursor { + animation-duration: 1000ms; + animation-timing-function: ease-in-out; + animation-name: blink-ace-animate-smooth; +} + +@keyframes blink-ace-animate { + from, to { opacity: 1; } + 60% { opacity: 0; } +} + +@keyframes blink-ace-animate-smooth { + from, to { opacity: 1; } + 45% { opacity: 1; } + 60% { opacity: 0; } + 85% { opacity: 0; } +} + +.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { + position: absolute; + z-index: 3; +} + +.ace_marker-layer .ace_selection { + position: absolute; + z-index: 5; +} + +.ace_marker-layer .ace_bracket { + position: absolute; + z-index: 6; +} + +.ace_marker-layer .ace_error_bracket { + position: absolute; + border-bottom: 1px solid #DE5555; + border-radius: 0; +} + +.ace_marker-layer .ace_active-line { + position: absolute; + z-index: 2; +} + +.ace_marker-layer .ace_selected-word { + position: absolute; + z-index: 4; + box-sizing: border-box; +} + +.ace_line .ace_fold { + box-sizing: border-box; + + display: inline-block; + height: 11px; + margin-top: -2px; + vertical-align: middle; + + background-image: + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); + background-repeat: no-repeat, repeat-x; + background-position: center center, top left; + color: transparent; + + border: 1px solid black; + border-radius: 2px; + + cursor: pointer; + pointer-events: auto; +} + +.ace_dark .ace_fold { +} + +.ace_fold:hover{ + background-image: + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); +} + +.ace_tooltip { + background-color: #f5f5f5; + border: 1px solid gray; + border-radius: 1px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); + color: black; + padding: 3px 4px; + position: fixed; + z-index: 999999; + box-sizing: border-box; + cursor: default; + white-space: pre-wrap; + word-wrap: break-word; + line-height: normal; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + pointer-events: none; + overflow: auto; + max-width: min(33em, 66vw); + overscroll-behavior: contain; +} +.ace_tooltip pre { + white-space: pre-wrap; +} + +.ace_tooltip.ace_dark { + background-color: #636363; + color: #fff; +} + +.ace_tooltip:focus { + outline: 1px solid #5E9ED6; +} + +.ace_icon { + display: inline-block; + width: 18px; + vertical-align: top; +} + +.ace_icon_svg { + display: inline-block; + width: 12px; + vertical-align: top; + -webkit-mask-repeat: no-repeat; + -webkit-mask-size: 12px; + -webkit-mask-position: center; +} + +.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons { + padding-right: 13px; +} + +.ace_fold-widget, .ace_custom-widget { + box-sizing: border-box; + + margin: 0 -12px 0 1px; + display: none; + width: 11px; + vertical-align: top; + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: center; + + border-radius: 3px; + + border: 1px solid transparent; + cursor: pointer; + pointer-events: auto; +} + +.ace_custom-widget { + background: none; +} + +.ace_folding-enabled .ace_fold-widget { + display: inline-block; +} + +.ace_fold-widget.ace_end { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); +} + +.ace_fold-widget.ace_closed { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); +} + +.ace_fold-widget:hover { + border: 1px solid rgba(0, 0, 0, 0.3); + background-color: rgba(255, 255, 255, 0.2); + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); +} + +.ace_fold-widget:active { + border: 1px solid rgba(0, 0, 0, 0.4); + background-color: rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); +} +/** + * Dark version for fold widgets + */ +.ace_dark .ace_fold-widget { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); +} +.ace_dark .ace_fold-widget.ace_end { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); +} +.ace_dark .ace_fold-widget.ace_closed { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); +} +.ace_dark .ace_fold-widget:hover { + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); + background-color: rgba(255, 255, 255, 0.1); +} +.ace_dark .ace_fold-widget:active { + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); +} + +.ace_inline_button { + border: 1px solid lightgray; + display: inline-block; + margin: -1px 8px; + padding: 0 5px; + pointer-events: auto; + cursor: pointer; +} +.ace_inline_button:hover { + border-color: gray; + background: rgba(200,200,200,0.2); + display: inline-block; + pointer-events: auto; +} + +.ace_fold-widget.ace_invalid { + background-color: #FFB4B4; + border-color: #DE5555; +} + +.ace_fade-fold-widgets .ace_fold-widget { + transition: opacity 0.4s ease 0.05s; + opacity: 0; +} + +.ace_fade-fold-widgets:hover .ace_fold-widget { + transition: opacity 0.05s ease 0.05s; + opacity:1; +} + +.ace_underline { + text-decoration: underline; +} + +.ace_bold { + font-weight: bold; +} + +.ace_nobold .ace_bold { + font-weight: normal; +} + +.ace_italic { + font-style: italic; +} + + +.ace_error-marker { + background-color: rgba(255, 0, 0,0.2); + position: absolute; + z-index: 9; +} + +.ace_highlight-marker { + background-color: rgba(255, 255, 0,0.2); + position: absolute; + z-index: 8; +} + +.ace_mobile-menu { + position: absolute; + line-height: 1.5; + border-radius: 4px; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + background: white; + box-shadow: 1px 3px 2px grey; + border: 1px solid #dcdcdc; + color: black; +} +.ace_dark > .ace_mobile-menu { + background: #333; + color: #ccc; + box-shadow: 1px 3px 2px grey; + border: 1px solid #444; + +} +.ace_mobile-button { + padding: 2px; + cursor: pointer; + overflow: hidden; +} +.ace_mobile-button:hover { + background-color: #eee; + opacity:1; +} +.ace_mobile-button:active { + background-color: #ddd; +} + +.ace_placeholder { + position: relative; + font-family: arial; + transform: scale(0.9); + transform-origin: left; + white-space: pre; + opacity: 0.7; + margin: 0 10px; + z-index: 1; +} + +.ace_ghost_text { + opacity: 0.5; + font-style: italic; +} + +.ace_ghost_text_container > div { + white-space: pre; +} + +.ghost_text_line_wrapped::after { + content: "\u21A9"; + position: absolute; +} + +.ace_lineWidgetContainer.ace_ghost_text { + margin: 0px 4px +} + +.ace_screenreader-only { + position:absolute; + left:-10000px; + top:auto; + width:1px; + height:1px; + overflow:hidden; +} + +.ace_hidden_token { + display: none; +}`});ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../lib/oop"),s=n("../lib/event_emitter").EventEmitter,a=function(){function o(l,c){this.renderer=c,this.pixelRatio=1,this.maxHeight=c.layerConfig.maxHeight,this.lineHeight=c.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},this.setScrollBarV(l)}return o.prototype.$createCanvas=function(){this.canvas=i.createElement("canvas"),this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7",this.canvas.style.position="absolute"},o.prototype.setScrollBarV=function(l){this.$createCanvas(),this.scrollbarV=l,l.element.appendChild(this.canvas),this.setDimensions()},o.prototype.$updateDecorators=function(l){if(typeof this.canvas.getContext!="function")return;var c=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;this.setDimensions(l);var u=this.canvas.getContext("2d");function d(v,_){return v.priority<_.priority?-1:v.priority>_.priority?1:0}var h=this.renderer.session.$annotations;if(u.clearRect(0,0,this.canvas.width,this.canvas.height),h){var m={info:1,warning:2,error:3};h.forEach(function(v){v.priority=m[v.type]||null}),h=h.sort(d);for(var f=0;fthis.canvasHeight&&(x=this.canvasHeight-C);var A=x-C,T=x+C,E=T-A;u.fillStyle=c[h[f].type]||null,u.fillRect(0,A,Math.round(this.oneZoneWidth-1),E)}}var L=this.renderer.session.selection.getCursor();if(L){var S=Math.round(this.getVerticalOffsetForRow(L.row)*this.heightRatio);u.fillStyle="rgba(0, 0, 0, 0.5)",u.fillRect(0,S,this.canvasWidth,2)}},o.prototype.getVerticalOffsetForRow=function(l){l=l|0;var c=this.renderer.session.documentToScreenRow(l,0)*this.lineHeight;return c},o.prototype.setDimensions=function(l){l=l||this.renderer.layerConfig,this.maxHeight=l.maxHeight,this.lineHeight=l.lineHeight,this.canvasHeight=l.height,this.canvasWidth=this.scrollbarV.width||this.canvasWidth,this.setZoneWidth(),this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.maxHeightE&&(this.$changedLines.firstRow=E),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},T.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},T.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},T.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},T.prototype.updateFull=function(E){E?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},T.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},T.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},T.prototype.onResize=function(E,L,S,v){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=E?1:0;var _=this.container;v||(v=_.clientHeight||_.scrollHeight),!v&&this.$maxLines&&this.lineHeight>1&&(!_.style.height||_.style.height=="0px")&&(_.style.height="1px",v=_.clientHeight||_.scrollHeight),S||(S=_.clientWidth||_.scrollWidth);var b=this.$updateCachedSize(E,L,S,v);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!S&&!v)return this.resizing=0;E&&(this.$gutterLayer.$padding=null),E?this.$renderChanges(b|this.$changes,!0):this.$loop.schedule(b|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},T.prototype.$updateCachedSize=function(E,L,S,v){v-=this.$extraHeight||0;var _=0,b=this.$size,M={width:b.width,height:b.height,scrollerHeight:b.scrollerHeight,scrollerWidth:b.scrollerWidth};if(v&&(E||b.height!=v)&&(b.height=v,_|=this.CHANGE_SIZE,b.scrollerHeight=b.height,this.$horizScroll&&(b.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(b.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",_=_|this.CHANGE_SCROLL),S&&(E||b.width!=S)){_|=this.CHANGE_SIZE,b.width=S,L==null&&(L=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=L,r.setStyle(this.scrollBarH.element.style,"left",L+"px"),r.setStyle(this.scroller.style,"left",L+this.margin.left+"px"),b.scrollerWidth=Math.max(0,S-L-this.scrollBarV.getWidth()-this.margin.h),r.setStyle(this.$gutter.style,"left",this.margin.left+"px");var I=this.scrollBarV.getWidth()+"px";r.setStyle(this.scrollBarH.element.style,"right",I),r.setStyle(this.scroller.style,"right",I),r.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(b.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||E)&&(_|=this.CHANGE_FULL)}return b.$dirty=!S||!v,_&&this._signal("resize",M),_},T.prototype.onGutterResize=function(E){var L=this.$showGutter?E:0;L!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,L,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},T.prototype.adjustWrapLimit=function(){var E=this.$size.scrollerWidth-this.$padding*2,L=Math.floor(E/this.characterWidth);return this.session.adjustWrapLimit(L,this.$showPrintMargin&&this.$printMarginColumn)},T.prototype.setAnimatedScroll=function(E){this.setOption("animatedScroll",E)},T.prototype.getAnimatedScroll=function(){return this.$animatedScroll},T.prototype.setShowInvisibles=function(E){this.setOption("showInvisibles",E),this.session.$bidiHandler.setShowInvisibles(E)},T.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},T.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},T.prototype.setDisplayIndentGuides=function(E){this.setOption("displayIndentGuides",E)},T.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},T.prototype.setHighlightIndentGuides=function(E){this.setOption("highlightIndentGuides",E)},T.prototype.setShowPrintMargin=function(E){this.setOption("showPrintMargin",E)},T.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},T.prototype.setPrintMarginColumn=function(E){this.setOption("printMarginColumn",E)},T.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},T.prototype.getShowGutter=function(){return this.getOption("showGutter")},T.prototype.setShowGutter=function(E){return this.setOption("showGutter",E)},T.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},T.prototype.setFadeFoldWidgets=function(E){this.setOption("fadeFoldWidgets",E)},T.prototype.setHighlightGutterLine=function(E){this.setOption("highlightGutterLine",E)},T.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},T.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var E=r.createElement("div");E.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",E.appendChild(this.$printMarginEl),this.content.insertBefore(E,this.content.firstChild)}var L=this.$printMarginEl.style;L.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",L.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},T.prototype.getContainerElement=function(){return this.container},T.prototype.getMouseEventTarget=function(){return this.scroller},T.prototype.getTextAreaContainer=function(){return this.container},T.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var E=this.textarea.style,L=this.$composition;if(!this.$keepTextAreaAtCursor&&!L){r.translate(this.textarea,-100,0);return}var S=this.$cursorLayer.$pixelPos;if(S){L&&L.markerRange&&(S=this.$cursorLayer.getPixelPosition(L.markerRange.start,!0));var v=this.layerConfig,_=S.top,b=S.left;_-=v.offset;var M=L&&L.useTextareaForIME||x.isMobile?this.lineHeight:1;if(_<0||_>v.height-M){r.translate(this.textarea,0,0);return}var I=1,D=this.$size.height-M;if(!L)_+=this.lineHeight;else if(L.useTextareaForIME){var O=this.textarea.value;I=this.characterWidth*this.session.$getStringScreenWidth(O)[0]}else _+=this.lineHeight+2;b-=this.scrollLeft,b>this.$size.scrollerWidth-I&&(b=this.$size.scrollerWidth-I),b+=this.gutterWidth+this.margin.left,r.setStyle(E,"height",M+"px"),r.setStyle(E,"width",I+"px"),r.translate(this.textarea,Math.min(b,this.$size.scrollerWidth-I),Math.min(_,D))}}},T.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},T.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},T.prototype.getLastFullyVisibleRow=function(){var E=this.layerConfig,L=E.lastRow,S=this.session.documentToScreenRow(L,0)*E.lineHeight;return S-this.session.getScrollTop()>E.height-E.lineHeight?L-1:L},T.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},T.prototype.setPadding=function(E){this.$padding=E,this.$textLayer.setPadding(E),this.$cursorLayer.setPadding(E),this.$markerFront.setPadding(E),this.$markerBack.setPadding(E),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},T.prototype.setScrollMargin=function(E,L,S,v){var _=this.scrollMargin;_.top=E|0,_.bottom=L|0,_.right=v|0,_.left=S|0,_.v=_.top+_.bottom,_.h=_.left+_.right,_.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-_.top),this.updateFull()},T.prototype.setMargin=function(E,L,S,v){var _=this.margin;_.top=E|0,_.bottom=L|0,_.right=v|0,_.left=S|0,_.v=_.top+_.bottom,_.h=_.left+_.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},T.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},T.prototype.setHScrollBarAlwaysVisible=function(E){this.setOption("hScrollBarAlwaysVisible",E)},T.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},T.prototype.setVScrollBarAlwaysVisible=function(E){this.setOption("vScrollBarAlwaysVisible",E)},T.prototype.$updateScrollBarV=function(){var E=this.layerConfig.maxHeight,L=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(E-=(L-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>E-L&&(E=this.scrollTop+L,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(E+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},T.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},T.prototype.freeze=function(){this.$frozen=!0},T.prototype.unfreeze=function(){this.$frozen=!1},T.prototype.$renderChanges=function(E,L){if(this.$changes&&(E|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!E&&!L){this.$changes|=E;return}if(this.$size.$dirty)return this.$changes|=E,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",E),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var S=this.layerConfig;if(E&this.CHANGE_FULL||E&this.CHANGE_SIZE||E&this.CHANGE_TEXT||E&this.CHANGE_LINES||E&this.CHANGE_SCROLL||E&this.CHANGE_H_SCROLL){if(E|=this.$computeLayerConfig()|this.$loop.clear(),S.firstRow!=this.layerConfig.firstRow&&S.firstRowScreen==this.layerConfig.firstRowScreen){var v=this.scrollTop+(S.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;v>0&&(this.scrollTop=v,E=E|this.CHANGE_SCROLL,E|=this.$computeLayerConfig()|this.$loop.clear())}S=this.layerConfig,this.$updateScrollBarV(),E&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),r.translate(this.content,-this.scrollLeft,-S.offset);var _=S.width+2*this.$padding+"px",b=S.minHeight+"px";r.setStyle(this.content.style,"width",_),r.setStyle(this.content.style,"height",b)}if(E&this.CHANGE_H_SCROLL&&(r.translate(this.content,-this.scrollLeft,-S.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),E&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(S),this.$showGutter&&this.$gutterLayer.update(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S),this.$markerBack.update(S),this.$markerFront.update(S),this.$cursorLayer.update(S),this.$moveTextAreaToCursor(),this._signal("afterRender",E);return}if(E&this.CHANGE_SCROLL){this.$changedLines=null,E&this.CHANGE_TEXT||E&this.CHANGE_LINES?this.$textLayer.update(S):this.$textLayer.scrollLines(S),this.$showGutter&&(E&this.CHANGE_GUTTER||E&this.CHANGE_LINES?this.$gutterLayer.update(S):this.$gutterLayer.scrollLines(S)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S),this.$markerBack.update(S),this.$markerFront.update(S),this.$cursorLayer.update(S),this.$moveTextAreaToCursor(),this._signal("afterRender",E);return}E&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(S),this.$showGutter&&this.$gutterLayer.update(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S)):E&this.CHANGE_LINES?((this.$updateLines()||E&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S)):E&this.CHANGE_TEXT||E&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S)):E&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S)),E&this.CHANGE_CURSOR&&(this.$cursorLayer.update(S),this.$moveTextAreaToCursor()),E&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(S),E&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(S),this._signal("afterRender",E)},T.prototype.$autosize=function(){var E=this.session.getScreenLength()*this.lineHeight,L=this.$maxLines*this.lineHeight,S=Math.min(L,Math.max((this.$minLines||1)*this.lineHeight,E))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(S+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&S>this.$maxPixelHeight&&(S=this.$maxPixelHeight);var v=S<=2*this.lineHeight,_=!v&&E>L;if(S!=this.desiredHeight||this.$size.height!=this.desiredHeight||_!=this.$vScroll){_!=this.$vScroll&&(this.$vScroll=_,this.scrollBarV.setVisible(_));var b=this.container.clientWidth;this.container.style.height=S+"px",this.$updateCachedSize(!0,this.$gutterWidth,b,S),this.desiredHeight=S,this._signal("autosize")}},T.prototype.$computeLayerConfig=function(){var E=this.session,L=this.$size,S=L.height<=2*this.lineHeight,v=this.session.getScreenLength(),_=v*this.lineHeight,b=this.$getLongestLine(),M=!S&&(this.$hScrollBarAlwaysVisible||L.scrollerWidth-b-2*this.$padding<0),I=this.$horizScroll!==M;I&&(this.$horizScroll=M,this.scrollBarH.setVisible(M));var D=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),S=L.height<=2*this.lineHeight);var O=L.scrollerHeight+this.lineHeight,N=!this.$maxLines&&this.$scrollPastEnd?(L.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;_+=N;var F=this.scrollMargin;this.session.setScrollTop(Math.max(-F.top,Math.min(this.scrollTop,_-L.scrollerHeight+F.bottom))),this.session.setScrollLeft(Math.max(-F.left,Math.min(this.scrollLeft,b+2*this.$padding-L.scrollerWidth+F.right)));var z=!S&&(this.$vScrollBarAlwaysVisible||L.scrollerHeight-_+N<0||this.scrollTop>F.top),V=D!==z;V&&(this.$vScroll=z,this.scrollBarV.setVisible(z));var K=this.scrollTop%this.lineHeight,W=Math.ceil(O/this.lineHeight)-1,q=Math.max(0,Math.round((this.scrollTop-K)/this.lineHeight)),ae=q+W,pe,ie,ne=this.lineHeight;q=E.screenToDocumentRow(q,0);var Ee=E.getFoldLine(q);Ee&&(q=Ee.start.row),pe=E.documentToScreenRow(q,0),ie=E.getRowLength(q)*ne,ae=Math.min(E.screenToDocumentRow(ae,0),E.getLength()-1),O=L.scrollerHeight+E.getRowLength(ae)*ne+ie,K=this.scrollTop-pe*ne,K<0&&pe>0&&(pe=Math.max(0,pe+Math.floor(K/ne)),K=this.scrollTop-pe*ne);var we=0;return(this.layerConfig.width!=b||I)&&(we=this.CHANGE_H_SCROLL),(I||V)&&(we|=this.$updateCachedSize(!0,this.gutterWidth,L.width,L.height),this._signal("scrollbarVisibilityChanged"),V&&(b=this.$getLongestLine())),this.layerConfig={width:b,padding:this.$padding,firstRow:q,firstRowScreen:pe,lastRow:ae,lineHeight:ne,characterWidth:this.characterWidth,minHeight:O,maxHeight:_,offset:K,gutterOffset:ne?Math.max(0,Math.ceil((K+L.height-L.scrollerHeight)/ne)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(b-this.$padding),we},T.prototype.$updateLines=function(){if(this.$changedLines){var E=this.$changedLines.firstRow,L=this.$changedLines.lastRow;this.$changedLines=null;var S=this.layerConfig;if(!(E>S.lastRow+1)&&!(Lthis.$textLayer.MAX_LINE_LENGTH&&(E=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(E*this.characterWidth))},T.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},T.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},T.prototype.addGutterDecoration=function(E,L){this.$gutterLayer.addGutterDecoration(E,L)},T.prototype.removeGutterDecoration=function(E,L){this.$gutterLayer.removeGutterDecoration(E,L)},T.prototype.updateBreakpoints=function(E){this._rows=E,this.$loop.schedule(this.CHANGE_GUTTER)},T.prototype.setAnnotations=function(E){this.$gutterLayer.setAnnotations(E),this.$loop.schedule(this.CHANGE_GUTTER)},T.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},T.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},T.prototype.showCursor=function(){this.$cursorLayer.showCursor()},T.prototype.scrollSelectionIntoView=function(E,L,S){this.scrollCursorIntoView(E,S),this.scrollCursorIntoView(L,S)},T.prototype.scrollCursorIntoView=function(E,L,S){if(this.$size.scrollerHeight!==0){var v=this.$cursorLayer.getPixelPosition(E),_=v.left,b=v.top,M=S&&S.top||0,I=S&&S.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var D=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;D+M>b?(L&&D+M>b+this.lineHeight&&(b-=L*this.$size.scrollerHeight),b===0&&(b=-this.scrollMargin.top),this.session.setScrollTop(b)):D+this.$size.scrollerHeight-I=1-this.scrollMargin.top||L>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||E<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||E>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},T.prototype.pixelToScreenCoordinates=function(E,L){var S;if(this.$hasCssTransforms){S={top:0,left:0};var v=this.$fontMetrics.transformCoordinates([E,L]);E=v[1]-this.gutterWidth-this.margin.left,L=v[0]}else S=this.scroller.getBoundingClientRect();var _=E+this.scrollLeft-S.left-this.$padding,b=_/this.characterWidth,M=Math.floor((L+this.scrollTop-S.top)/this.lineHeight),I=this.$blockCursor?Math.floor(b):Math.round(b);return{row:M,column:I,side:b-I>0?1:-1,offsetX:_}},T.prototype.screenToTextCoordinates=function(E,L){var S;if(this.$hasCssTransforms){S={top:0,left:0};var v=this.$fontMetrics.transformCoordinates([E,L]);E=v[1]-this.gutterWidth-this.margin.left,L=v[0]}else S=this.scroller.getBoundingClientRect();var _=E+this.scrollLeft-S.left-this.$padding,b=_/this.characterWidth,M=this.$blockCursor?Math.floor(b):Math.round(b),I=Math.floor((L+this.scrollTop-S.top)/this.lineHeight);return this.session.screenToDocumentPosition(I,Math.max(M,0),_)},T.prototype.textToScreenCoordinates=function(E,L){var S=this.scroller.getBoundingClientRect(),v=this.session.documentToScreenPosition(E,L),_=this.$padding+(this.session.$bidiHandler.isBidiRow(v.row,E)?this.session.$bidiHandler.getPosLeft(v.column):Math.round(v.column*this.characterWidth)),b=v.row*this.lineHeight;return{pageX:S.left+_-this.scrollLeft,pageY:S.top+b-this.scrollTop}},T.prototype.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},T.prototype.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},T.prototype.showComposition=function(E){this.$composition=E,E.cssText||(E.cssText=this.textarea.style.cssText),E.useTextareaForIME==null&&(E.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):E.markerId=this.session.addMarker(E.markerRange,"ace_composition_marker","text")},T.prototype.setCompositionText=function(E){var L=this.session.selection.cursor;this.addToken(E,"composition_placeholder",L.row,L.column),this.$moveTextAreaToCursor()},T.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),r.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var E=this.session.selection.cursor;this.removeExtraToken(E.row,E.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},T.prototype.setGhostText=function(E,L){var S=this.session.selection.cursor,v=L||{row:S.row,column:S.column};this.removeGhostText();var _=this.$calculateWrappedTextChunks(E,v);this.addToken(_[0].text,"ghost_text",v.row,v.column),this.$ghostText={text:E,position:{row:v.row,column:v.column}};var b=r.createElement("div");if(_.length>1){var M=this.hideTokensAfterPosition(v.row,v.column),I;_.slice(1).forEach(function(V){var K=r.createElement("div"),W=r.createElement("span");W.className="ace_ghost_text",V.wrapped&&(K.className="ghost_text_line_wrapped"),V.text.length===0&&(V.text=" "),W.appendChild(r.createTextNode(V.text)),K.appendChild(W),b.appendChild(K),I=K}),M.forEach(function(V){var K=r.createElement("span");C(V.type)||(K.className="ace_"+V.type.replace(/\./g," ace_")),K.appendChild(r.createTextNode(V.value)),I.appendChild(K)}),this.$ghostTextWidget={el:b,row:v.row,column:v.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var D=this.$cursorLayer.getPixelPosition(v,!0),O=this.container,N=O.getBoundingClientRect().height,F=_.length*this.lineHeight,z=F0){var O=0;D.push(_[M].length);for(var N=0;N1||Math.abs(E.$size.height-v)>1?E.$resizeTimer.delay():E.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},T}();A.prototype.CHANGE_CURSOR=1,A.prototype.CHANGE_MARKER=2,A.prototype.CHANGE_GUTTER=4,A.prototype.CHANGE_SCROLL=8,A.prototype.CHANGE_LINES=16,A.prototype.CHANGE_TEXT=32,A.prototype.CHANGE_SIZE=64,A.prototype.CHANGE_MARKER_BACK=128,A.prototype.CHANGE_MARKER_FRONT=256,A.prototype.CHANGE_FULL=512,A.prototype.CHANGE_H_SCROLL=1024,A.prototype.$changes=0,A.prototype.$padding=null,A.prototype.$frozen=!1,A.prototype.STEPS=8,i.implement(A.prototype,y),a.defineOptions(A.prototype,"renderer",{useResizeObserver:{set:function(T){!T&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):T&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(T){this.$textLayer.setShowInvisibles(T)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(T){typeof T=="number"&&(this.$printMarginColumn=T),this.$showPrintMargin=!!T,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(T){this.$gutter.style.display=T?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(T){this.$gutterLayer.$useSvgGutterIcons=T},initialValue:!1},showFoldedAnnotations:{set:function(T){this.$gutterLayer.$showFoldedAnnotations=T},initialValue:!1},fadeFoldWidgets:{set:function(T){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",T)},initialValue:!1},showFoldWidgets:{set:function(T){this.$gutterLayer.setShowFoldWidgets(T),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(T){this.$textLayer.setDisplayIndentGuides(T)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(T){this.$textLayer.setHighlightIndentGuides(T)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(T){this.$gutterLayer.setHighlightGutterLine(T),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(T){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(T){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(T){typeof T=="number"&&(T=T+"px"),this.container.style.fontSize=T,this.updateFontSize()},initialValue:12},fontFamily:{set:function(T){this.container.style.fontFamily=T,this.updateFontSize()}},maxLines:{set:function(T){this.updateFull()}},minLines:{set:function(T){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(T){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(T){T=+T||0,this.$scrollPastEnd!=T&&(this.$scrollPastEnd=T,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(T){this.$gutterLayer.$fixedWidth=!!T,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(T){this.$updateCustomScrollbar(T)},initialValue:!1},theme:{set:function(T){this.setTheme(T)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!x.isMobile&&!x.isIE}}),t.VirtualRenderer=A});ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("../lib/net"),s=n("../lib/event_emitter").EventEmitter,a=n("../config");function o(d){var h="importScripts('"+r.qualifyURL(d)+"');";try{return new Blob([h],{type:"application/javascript"})}catch{var m=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new m;return f.append(h),f.getBlob("application/javascript")}}function l(d){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var h=o(d),m=window.URL||window.webkitURL,f=m.createObjectURL(h);return new Worker(f)}return new Worker(d)}var c=function(d){d.postMessage||(d=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=d,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){i.implement(this,s),this.$createWorkerFromOldConfig=function(d,h,m,f,p){if(n.nameToUrl&&!n.toUrl&&(n.toUrl=n.nameToUrl),a.get("packaged")||!n.toUrl)f=f||a.moduleUrl(h,"worker");else{var g=this.$normalizePath;f=f||g(n.toUrl("ace/worker/worker.js",null,"_"));var y={};d.forEach(function(w){y[w]=g(n.toUrl(w,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=l(f),p&&this.send("importScripts",p),this.$worker.postMessage({init:!0,tlns:y,module:h,classname:m}),this.$worker},this.onMessage=function(d){var h=d.data;switch(h.type){case"event":this._signal(h.name,{data:h.data});break;case"call":var m=this.callbacks[h.id];m&&(m(h.data),delete this.callbacks[h.id]);break;case"error":this.reportError(h.data);break;case"log":window.console&&console.log&&console.log.apply(console,h.data);break}},this.reportError=function(d){window.console&&console.error&&console.error(d)},this.$normalizePath=function(d){return r.qualifyURL(d)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(d){d.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(d,h){this.$worker.postMessage({command:d,args:h})},this.call=function(d,h,m){if(m){var f=this.callbackId++;this.callbacks[f]=m,h.push(f)}this.send(d,h)},this.emit=function(d,h){try{h.data&&h.data.err&&(h.data.err={message:h.data.err.message,stack:h.data.err.stack,code:h.data.err.code}),this.$worker&&this.$worker.postMessage({event:d,data:{data:h.data}})}catch(m){console.error(m.stack)}},this.attachToDocument=function(d){this.$doc&&this.terminate(),this.$doc=d,this.call("setValue",[d.getValue()]),d.on("change",this.changeListener,!0)},this.changeListener=function(d){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),d.action=="insert"?this.deltaQueue.push(d.start,d.lines):this.deltaQueue.push(d.start,d.end)},this.$sendDeltaQueue=function(){var d=this.deltaQueue;d&&(this.deltaQueue=null,d.length>50&&d.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:d}))}}).call(c.prototype);var u=function(d,h,m){var f=null,p=!1,g=Object.create(s),y=[],w=new c({messageBuffer:y,terminate:function(){},postMessage:function(x){y.push(x),f&&(p?setTimeout(k):k())}});w.setEmitSync=function(x){p=x};var k=function(){var x=y.shift();x.command?f[x.command].apply(f,x.args):x.event&&g._signal(x.event,x.data)};return g.postMessage=function(x){w.onMessage({data:x})},g.callback=function(x,C){this.postMessage({type:"call",id:C,data:x})},g.emit=function(x,C){this.postMessage({type:"event",name:x,data:C})},a.loadModule(["worker",h],function(x){for(f=new x[m](g);y.length;)k()}),w};t.UIWorkerClient=u,t.WorkerClient=c,t.createWorker=l});ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(n,t,e){"use strict";var i=n("./range").Range,r=n("./lib/event_emitter").EventEmitter,s=n("./lib/oop"),a=function(){function o(l,c,u,d,h,m){var f=this;this.length=c,this.session=l,this.doc=l.getDocument(),this.mainClass=h,this.othersClass=m,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=d,this.$onCursorChange=function(){setTimeout(function(){f.onCursorChange()})},this.$pos=u;var p=l.getUndoManager().$undoStack||l.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=p.length,this.setup(),l.selection.on("changeCursor",this.$onCursorChange)}return o.prototype.setup=function(){var l=this,c=this.doc,u=this.session;this.selectionBefore=u.selection.toJSON(),u.selection.inMultiSelectMode&&u.selection.toSingleRange(),this.pos=c.createAnchor(this.$pos.row,this.$pos.column);var d=this.pos;d.$insertRight=!0,d.detach(),d.markerId=u.addMarker(new i(d.row,d.column,d.row,d.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(h){var m=c.createAnchor(h.row,h.column);m.$insertRight=!0,m.detach(),l.others.push(m)}),u.setUndoSelect(!1)},o.prototype.showOtherMarkers=function(){if(!this.othersActive){var l=this.session,c=this;this.othersActive=!0,this.others.forEach(function(u){u.markerId=l.addMarker(new i(u.row,u.column,u.row,u.column+c.length),c.othersClass,null,!1)})}},o.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var l=0;l=this.pos.column&&c.start.column<=this.pos.column+this.length+1,h=c.start.column-this.pos.column;if(this.updateAnchors(l),d&&(this.length+=u),d&&!this.session.$fromUndo){if(l.action==="insert")for(var m=this.others.length-1;m>=0;m--){var f=this.others[m],p={row:f.row,column:f.column+h};this.doc.insertMergedLines(p,l.lines)}else if(l.action==="remove")for(var m=this.others.length-1;m>=0;m--){var f=this.others[m],p={row:f.row,column:f.column+h};this.doc.remove(new i(p.row,p.column,p.row,p.column-u))}}this.$updating=!1,this.updateMarkers()}},o.prototype.updateAnchors=function(l){this.pos.onChange(l);for(var c=this.others.length;c--;)this.others[c].onChange(l);this.updateMarkers()},o.prototype.updateMarkers=function(){if(!this.$updating){var l=this,c=this.session,u=function(h,m){c.removeMarker(h.markerId),h.markerId=c.addMarker(new i(h.row,h.column,h.row,h.column+l.length),m,null,!1)};u(this.pos,this.mainClass);for(var d=this.others.length;d--;)u(this.others[d],this.othersClass)}},o.prototype.onCursorChange=function(l){if(!(this.$updating||!this.session)){var c=this.session.selection.getCursor();c.row===this.pos.row&&c.column>=this.pos.column&&c.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",l)):(this.hideOtherMarkers(),this._emit("cursorLeave",l))}},o.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},o.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var l=this.session.getUndoManager(),c=(l.$undoStack||l.$undostack).length-this.$undoStackDepth,u=0;u1?r.multiSelect.joinSelections():r.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(r){r.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(r){r.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(r){r.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(r){r.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(r){return r&&r.inMultiSelectMode}}];var i=n("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new i(t.multiSelectCommands)});ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(n,t,e){var i=n("./range_list").RangeList,r=n("./range").Range,s=n("./selection").Selection,a=n("./mouse/multi_select_handler").onMouseDown,o=n("./lib/event"),l=n("./lib/lang"),c=n("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=n("./search").Search,d=new u;function h(w,k,x){return d.$options.wrap=!0,d.$options.needle=k,d.$options.backwards=x==-1,d.find(w)}var m=n("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(m.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(w,k){if(w){if(!this.inMultiSelectMode&&this.rangeCount===0){var x=this.toOrientedRange();if(this.rangeList.add(x),this.rangeList.add(w),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),k||this.fromOrientedRange(w);this.rangeList.removeAll(),this.rangeList.add(x),this.$onAddRange(x)}w.cursor||(w.cursor=w.end);var C=this.rangeList.add(w);return this.$onAddRange(w),C.length&&this.$onRemoveRange(C),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),k||this.fromOrientedRange(w)}},this.toSingleRange=function(w){w=w||this.ranges[0];var k=this.rangeList.removeAll();k.length&&this.$onRemoveRange(k),w&&this.fromOrientedRange(w)},this.substractPoint=function(w){var k=this.rangeList.substractPoint(w);if(k)return this.$onRemoveRange(k),k[0]},this.mergeOverlappingRanges=function(){var w=this.rangeList.merge();w.length&&this.$onRemoveRange(w)},this.$onAddRange=function(w){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(w),this._signal("addRange",{range:w})},this.$onRemoveRange=function(w){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var k=this.rangeList.ranges.pop();w.push(k),this.rangeCount=0}for(var x=w.length;x--;){var C=this.ranges.indexOf(w[x]);this.ranges.splice(C,1)}this._signal("removeRange",{ranges:w}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),k=k||this.ranges[0],k&&!k.isEqual(this.getRange())&&this.fromOrientedRange(k)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new i,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var w=this.ranges.length?this.ranges:[this.getRange()],k=[],x=0;x1){var w=this.rangeList.ranges,k=w[w.length-1],x=r.fromPoints(w[0].start,k.end);this.toSingleRange(),this.setSelectionRange(x,k.cursor==k.start)}else{var C=this.session.documentToScreenPosition(this.cursor),A=this.session.documentToScreenPosition(this.anchor),T=this.rectangularRangeBlock(C,A);T.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(w,k,x){var C=[],A=w.column0;)O--;if(O>0)for(var N=0;C[N].isEmpty();)N++;for(var F=O;F>=N;F--)C[F].isEmpty()&&C.splice(F,1)}return C}}.call(s.prototype);var f=n("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(w){w.cursor||(w.cursor=w.end);var k=this.getSelectionStyle();return w.marker=this.session.addMarker(w,"ace_selection",k),this.session.$selectionMarkers.push(w),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,w},this.removeSelectionMarker=function(w){if(w.marker){this.session.removeMarker(w.marker);var k=this.session.$selectionMarkers.indexOf(w);k!=-1&&this.session.$selectionMarkers.splice(k,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(w){for(var k=this.session.$selectionMarkers,x=w.length;x--;){var C=w[x];if(C.marker){this.session.removeMarker(C.marker);var A=k.indexOf(C);A!=-1&&k.splice(A,1)}}this.session.selectionMarkerCount=k.length},this.$onAddRange=function(w){this.addSelectionMarker(w.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(w){this.removeSelectionMarkers(w.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(w){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(w){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(w){var k=w.command,x=w.editor;if(x.multiSelect){if(k.multiSelectAction)k.multiSelectAction=="forEach"?C=x.forEachSelection(k,w.args):k.multiSelectAction=="forEachLine"?C=x.forEachSelection(k,w.args,!0):k.multiSelectAction=="single"?(x.exitMultiSelectMode(),C=k.exec(x,w.args||{})):C=k.multiSelectAction(x,w.args||{});else{var C=k.exec(x,w.args||{});x.multiSelect.addRange(x.multiSelect.toOrientedRange()),x.multiSelect.mergeOverlappingRanges()}return C}},this.forEachSelection=function(w,k,x){if(!this.inVirtualSelectionMode){var C=x&&x.keepOrder,A=x==!0||x&&x.$byLines,T=this.session,E=this.selection,L=E.rangeList,S=(C?E:L).ranges,v;if(!S.length)return w.exec?w.exec(this,k||{}):w(this,k||{});var _=E._eventRegistry;E._eventRegistry={};var b=new s(T);this.inVirtualSelectionMode=!0;for(var M=S.length;M--;){if(A)for(;M>0&&S[M].start.row==S[M-1].end.row;)M--;b.fromOrientedRange(S[M]),b.index=M,this.selection=T.selection=b;var I=w.exec?w.exec(this,k||{}):w(this,k||{});!v&&I!==void 0&&(v=I),b.toOrientedRange(S[M])}b.detach(),this.selection=T.selection=E,this.inVirtualSelectionMode=!1,E._eventRegistry=_,E.mergeOverlappingRanges(),E.ranges[0]&&E.fromOrientedRange(E.ranges[0]);var D=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),D&&D.from==D.to&&this.renderer.animateScrolling(D.from),v}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var w="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var k=this.multiSelect.rangeList.ranges,x=[],C=0;C0);E<0&&(E=0),L>=v&&(L=v-1)}var b=this.session.removeFullLines(E,L);b=this.$reAlignText(b,S),this.session.insert({row:E,column:0},b.join(` +`)+` +`),S||(T.start.column=0,T.end.column=b[b.length-1].length),this.selection.setRange(T)}else{A.forEach(function(O){k.substractPoint(O.cursor)});var M=0,I=1/0,D=x.map(function(O){var N=O.cursor,F=w.getLine(N.row),z=F.substr(N.column).search(/\S/g);return z==-1&&(z=0),N.column>M&&(M=N.column),zV?w.insert(F,l.stringRepeat(" ",z-V)):w.remove(new r(F.row,F.column,F.row,F.column-z+V)),O.start.column=O.end.column=M,O.start.row=O.end.row=F.row,O.cursor=O.end}),k.fromOrientedRange(x[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(w,k){var x=!0,C=!0,A,T,E;return w.map(function(b){var M=b.match(/(\s*)(.*?)(\s*)([=:].*)/);return M?A==null?(A=M[1].length,T=M[2].length,E=M[3].length,M):(A+T+E!=M[1].length+M[2].length+M[3].length&&(C=!1),A!=M[1].length&&(x=!1),A>M[1].length&&(A=M[1].length),TM[3].length&&(E=M[3].length),M):[b]}).map(k?S:x?C?v:S:_);function L(b){return l.stringRepeat(" ",b)}function S(b){return b[2]?L(A)+b[2]+L(T-b[2].length+E)+b[4].replace(/^([=:])\s+/,"$1 "):b[0]}function v(b){return b[2]?L(A+T-b[2].length)+b[2]+L(E)+b[4].replace(/^([=:])\s+/,"$1 "):b[0]}function _(b){return b[2]?L(A)+b[2]+L(E)+b[4].replace(/^([=:])\s+/,"$1 "):b[0]}}}).call(f.prototype);function p(w,k){return w.row==k.row&&w.column==k.column}t.onSessionChange=function(w){var k=w.session;k&&!k.multiSelect&&(k.$selectionMarkers=[],k.selection.$initRangeList(),k.multiSelect=k.selection),this.multiSelect=k&&k.multiSelect;var x=w.oldSession;x&&(x.multiSelect.off("addRange",this.$onAddRange),x.multiSelect.off("removeRange",this.$onRemoveRange),x.multiSelect.off("multiSelect",this.$onMultiSelect),x.multiSelect.off("singleSelect",this.$onSingleSelect),x.multiSelect.lead.off("change",this.$checkMultiselectChange),x.multiSelect.anchor.off("change",this.$checkMultiselectChange)),k&&(k.multiSelect.on("addRange",this.$onAddRange),k.multiSelect.on("removeRange",this.$onRemoveRange),k.multiSelect.on("multiSelect",this.$onMultiSelect),k.multiSelect.on("singleSelect",this.$onSingleSelect),k.multiSelect.lead.on("change",this.$checkMultiselectChange),k.multiSelect.anchor.on("change",this.$checkMultiselectChange)),k&&this.inMultiSelectMode!=k.selection.inMultiSelectMode&&(k.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function g(w){w.$multiselectOnSessionChange||(w.$onAddRange=w.$onAddRange.bind(w),w.$onRemoveRange=w.$onRemoveRange.bind(w),w.$onMultiSelect=w.$onMultiSelect.bind(w),w.$onSingleSelect=w.$onSingleSelect.bind(w),w.$multiselectOnSessionChange=t.onSessionChange.bind(w),w.$checkMultiselectChange=w.$checkMultiselectChange.bind(w),w.$multiselectOnSessionChange(w),w.on("changeSession",w.$multiselectOnSessionChange),w.on("mousedown",a),w.commands.addCommands(c.defaultCommands),y(w))}function y(w){if(!w.textInput)return;var k=w.textInput.getElement(),x=!1;o.addListener(k,"keydown",function(A){var T=A.keyCode==18&&!(A.ctrlKey||A.shiftKey||A.metaKey);w.$blockSelectEnabled&&T?x||(w.renderer.setMouseCursor("crosshair"),x=!0):x&&C()},w),o.addListener(k,"keyup",C,w),o.addListener(k,"blur",C,w);function C(A){x&&(w.renderer.setMouseCursor(""),x=!1)}}t.MultiSelect=g,n("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(w){g(this),w?this.on("mousedown",a):this.off("mousedown",a)},value:!0},enableBlockSelect:{set:function(w){this.$blockSelectEnabled=w},value:!0}})});ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=n("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(s,a,o){var l=s.getLine(o);return this.foldingStartMarker.test(l)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(l)?"end":""},this.getFoldWidgetRange=function(s,a,o){return null},this.indentationBlock=function(s,a,o){var l=/\S/,c=s.getLine(a),u=c.search(l);if(u!=-1){for(var d=o||c.length,h=s.getLength(),m=a,f=a;++am){var y=s.getLine(f).length;return new i(m,d,f,y)}}},this.openingBracketBlock=function(s,a,o,l,c){var u={row:o,column:l+1},d=s.$findClosingBracket(a,u,c);if(d){var h=s.foldWidgets[d.row];return h==null&&(h=s.getFoldWidget(d.row)),h=="start"&&d.row>u.row&&(d.row--,d.column=s.getLine(d.row).length),i.fromPoints(u,d)}},this.closingBracketBlock=function(s,a,o,l,c){var u={row:o,column:l},d=s.$findOpeningBracket(a,u);if(d)return d.column++,u.column--,i.fromPoints(d,u)}}).call(r.prototype)});ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../range").Range,s=n("../config").nls;function a(l,c,u){for(var d=0,h=l.length-1;d<=h;){var m=d+h>>1,f=u(c,l[m]);if(f>0)d=m+1;else if(f<0)h=m-1;else return m}return-(d+1)}function o(l,c,u){var d=l.getAnnotations().sort(r.comparePoints);if(d.length){var h=a(d,{row:c,column:-1},r.comparePoints);h<0&&(h=-h-1),h>=d.length?h=u>0?0:d.length-1:h===0&&u<0&&(h=d.length-1);var m=d[h];if(!(!m||!u)){if(m.row===c){do m=d[h+=u];while(m&&m.row===c);if(!m)return d.slice()}var f=[];c=m.row;do f[u<0?"unshift":"push"](m),m=d[h+=u];while(m&&m.row==c);return f.length&&f}}}t.showErrorMarker=function(l,c){var u=l.session,d=l.getCursorPosition(),h=d.row,m=u.widgetManager.getWidgetsAtRow(h).filter(function(A){return A.type=="errorMarker"})[0];m?m.destroy():h-=c;var f=o(u,h,c),p;if(f){var g=f[0];d.column=(g.pos&&typeof g.column!="number"?g.pos.sc:g.column)||0,d.row=g.row,p=l.renderer.$gutterLayer.$annotations[d.row]}else{if(m)return;p={displayText:[s("error-marker.good-state","Looks good!")],className:"ace_ok"}}l.session.unfold(d.row),l.selection.moveToPosition(d);var y={row:d.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},w=y.el.appendChild(i.createElement("div")),k=y.el.appendChild(i.createElement("div"));k.className="error_widget_arrow "+p.className;var x=l.renderer.$cursorLayer.getPixelPosition(d).left;k.style.left=x+l.renderer.gutterWidth-5+"px",y.el.className="error_widget_wrapper",w.className="error_widget "+p.className,p.displayText.forEach(function(A,T){w.appendChild(i.createTextNode(A)),T{ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(s,r),t.JsonHighlightRules=s});ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=n("../range").Range,r=function(){};(function(){this.checkOutdent=function(s,a){return/^\s+$/.test(s)?/^\s*\}/.test(a):!1},this.autoOutdent=function(s,a){var o=s.getLine(a),l=o.match(/^(\s*\})/);if(!l)return 0;var c=l[1].length,u=s.findMatchingBracket({row:a,column:c});if(!u||u.row==a)return 0;var d=this.$getIndent(s.getLine(u.row));s.replace(new i(a,0,a,c-1),d)},this.$getIndent=function(s){return s.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r});ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(n,t,e){"use strict";var i=n("../../lib/oop"),r=n("../../range").Range,s=n("./fold_mode").FoldMode,a=t.FoldMode=function(o){o&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+o.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+o.end)))};i.inherits(a,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(o,l,c){var u=o.getLine(c);if(this.singleLineBlockCommentRe.test(u)&&!this.startRegionRe.test(u)&&!this.tripleStarBlockCommentRe.test(u))return"";var d=this._getFoldWidgetBase(o,l,c);return!d&&this.startRegionRe.test(u)?"start":d},this.getFoldWidgetRange=function(o,l,c,u){var d=o.getLine(c);if(this.startRegionRe.test(d))return this.getCommentRegionBlock(o,d,c);var f=d.match(this.foldingStartMarker);if(f){var h=f.index;if(f[1])return this.openingBracketBlock(o,f[1],c,h);var m=o.getCommentFoldRange(c,h+f[0].length,1);return m&&!m.isMultiLine()&&(u?m=this.getSectionRange(o,c):l!="all"&&(m=null)),m}if(l!=="markbegin"){var f=d.match(this.foldingStopMarker);if(f){var h=f.index+f[0].length;return f[1]?this.closingBracketBlock(o,f[1],c,h):o.getCommentFoldRange(c,h,-1)}}},this.getSectionRange=function(o,l){var c=o.getLine(l),u=c.search(/\S/),d=l,h=c.length;l=l+1;for(var m=l,f=o.getLength();++lp)break;var g=this.getFoldWidgetRange(o,"all",l);if(g){if(g.start.row<=d)break;if(g.isMultiLine())l=g.end.row;else if(u==p)break}m=l}}return new r(d,h,m,o.getLine(m).length)},this.getCommentRegionBlock=function(o,l,c){for(var u=l.search(/\s*$/),d=o.getLength(),h=c,m=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ch)return new r(h,u,g,l.length)}}.call(a.prototype)});ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("./text").Mode,s=n("./json_highlight_rules").JsonHighlightRules,a=n("./matching_brace_outdent").MatchingBraceOutdent,o=n("./folding/cstyle").FoldMode,l=n("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new o};i.inherits(c,r),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(u,d,h){var m=this.$getIndent(d);if(u=="start"){var f=d.match(/^.*[\{\(\[]\s*$/);f&&(m+=h)}return m},this.checkOutdent=function(u,d,h){return this.$outdent.checkOutdent(d,h)},this.autoOutdent=function(u,d,h){this.$outdent.autoOutdent(d,h)},this.createWorker=function(u){var d=new l(["ace"],"ace/mode/json_worker","JsonWorker");return d.attachToDocument(u.getDocument()),d.on("annotate",function(h){u.setAnnotations(h.data)}),d.on("terminate",function(){u.clearAnnotations()}),d},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c});(function(){ace.require(["ace/mode/json"],function(n){typeof wm=="object"&&typeof Kk=="object"&&wm&&(wm.exports=n)})})()});var Zk=Q((Qk,xm)=>{ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"],function(n,t,e){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText=n("./textmate-css"),t.$id="ace/theme/textmate";var i=n("../lib/dom");i.importCssString(t.cssText,t.cssClass,!1)});(function(){ace.require(["ace/theme/textmate"],function(n){typeof xm=="object"&&typeof Qk=="object"&&xm&&(xm.exports=n)})})()});var SE=Q((ice,jB)=>{jB.exports={name:"fhirpath",version:"3.18.0",description:"A FHIRPath engine",main:"src/fhirpath.js",types:"src/fhirpath.d.ts",dependencies:{"@lhncbc/ucum-lhc":"^5.0.0",antlr4:"~4.9.3",commander:"^2.18.0","date-fns":"^1.30.1","js-yaml":"^3.13.1"},devDependencies:{"@babel/core":"^7.21.4","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","babel-loader":"^8.2.3",benny:"github:caderek/benny#0ad058d3c7ef0b488a8fe9ae3519159fc7f36bb6",bestzip:"^2.2.0","copy-webpack-plugin":"^12.0.2",cypress:"^13.7.2",eslint:"^8.10.0",fhir:"^4.10.3",grunt:"^1.5.2","grunt-cli":"^1.4.3","grunt-text-replace":"^0.4.0","jasmine-spec-reporter":"^4.2.1",jest:"^29.7.0","jit-grunt":"^0.10.0",lodash:"^4.17.21",open:"^8.4.0",rimraf:"^3.0.0",tmp:"0.0.33",tsd:"^0.31.1",webpack:"^5.11.1","webpack-bundle-analyzer":"^4.4.2","webpack-cli":"^4.9.1",xml2js:"^0.5.0",yargs:"^15.1.0"},engines:{node:">=8.9.0"},tsd:{directory:"test/typescript"},scripts:{preinstall:"node bin/install-demo.js",postinstall:`echo "Building the Benny package based on a pull request which fixes an issue with 'statusShift'... " && (cd node_modules/benny && npm i && npm run build > /dev/null) || echo "Building the Benny package is completed."`,generateParser:'cd src/parser; rimraf ./generated/*; java -Xmx500M -cp "../../antlr-4.9.3-complete.jar:$CLASSPATH" org.antlr.v4.Tool -o generated -Dlanguage=JavaScript FHIRPath.g4; grunt updateParserRequirements',build:"cd browser-build && webpack && rimraf fhirpath.zip && bestzip fhirpath.zip LICENSE.md fhirpath.min.js fhirpath.r5.min.js fhirpath.r4.min.js fhirpath.stu3.min.js fhirpath.dstu2.min.js && rimraf LICENSE.md","test:unit":"node --use_strict node_modules/.bin/jest && TZ=America/New_York node --use_strict node_modules/.bin/jest && TZ=Europe/Paris node --use_strict node_modules/.bin/jest","test:unit:debug":"echo 'open chrome chrome://inspect/' && node --inspect node_modules/.bin/jest --runInBand","build:demo":"npm run build && cd demo && npm run build","test:e2e":"npm run build:demo && cypress run","test:tsd":"tsd",test:'npm run lint && npm run test:tsd && npm run test:unit && npm run test:e2e && echo "For tests specific to IE 11, open browser-build/test/index.html in IE 11, and confirm that the tests on that page pass."',lint:"eslint src/parser/index.js src/*.js converter/","compare-performance":"node ./test/benchmark.js"},bin:{fhirpath:"bin/fhirpath"},files:["CHANGELOG.md","bin","fhir-context","src"],repository:"github:HL7/fhirpath.js",license:"SEE LICENSE in LICENSE.md"}});var ki=Q((nce,EE)=>{function WB(n){return n===null?"null":n}function kE(n){return Array.isArray(n)?"["+n.map(WB).join(", ")+"]":"null"}String.prototype.seed=String.prototype.seed||Math.round(Math.random()*Math.pow(2,32));String.prototype.hashCode=function(){let n=this.toString(),t,e,i=n.length&3,r=n.length-i,s=String.prototype.seed,a=3432918353,o=461845907,l=0;for(;l>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(e&65535)*o+(((e>>>16)*o&65535)<<16)&4294967295,s^=e,s=s<<13|s>>>19,t=(s&65535)*5+(((s>>>16)*5&65535)<<16)&4294967295,s=(t&65535)+27492+(((t>>>16)+58964&65535)<<16);switch(e=0,i){case 3:e^=(n.charCodeAt(l+2)&255)<<16;case 2:e^=(n.charCodeAt(l+1)&255)<<8;case 1:e^=n.charCodeAt(l)&255,e=(e&65535)*a+(((e>>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(e&65535)*o+(((e>>>16)*o&65535)<<16)&4294967295,s^=e}return s^=n.length,s^=s>>>16,s=(s&65535)*2246822507+(((s>>>16)*2246822507&65535)<<16)&4294967295,s^=s>>>13,s=(s&65535)*3266489909+(((s>>>16)*3266489909&65535)<<16)&4294967295,s^=s>>>16,s>>>0};function ME(n,t){return n?n.equals(t):n==t}function TE(n){return n?n.hashCode():-1}var Jb=class{constructor(t,e){this.data={},this.hashFunction=t||TE,this.equalsFunction=e||ME}add(t){let i="hash_"+this.hashFunction(t);if(i in this.data){let r=this.data[i];for(let s=0;s>>17,i=i*461845907,this.count=this.count+1;let r=this.hash^i;r=r<<13|r>>>19,r=r*5+3864292196,this.hash=r}}}finish(){let t=this.hash^this.count*4;return t=t^t>>>16,t=t*2246822507,t=t^t>>>13,t=t*3266489909,t=t^t>>>16,t}};function qB(){let n=new Fu;return n.update.apply(n,arguments),n.finish()}function GB(n,t){return n=n.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),t&&(n=n.replace(/ /g,"\xB7")),n}function KB(n){return n.replace(/\w\S*/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1)})}function YB(n,t){if(!Array.isArray(n)||!Array.isArray(t))return!1;if(n===t)return!0;if(n.length!==t.length)return!1;for(let e=0;e{var nv=(()=>{class n{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.tokenIndex=null,this.line=null,this.column=null,this._text=null}getTokenSource(){return this.source[0]}getInputStream(){return this.source[1]}get text(){return this._text}set text(e){this._text=e}}return n.INVALID_TYPE=0,n.EPSILON=-2,n.MIN_USER_TOKEN_TYPE=1,n.EOF=-1,n.DEFAULT_CHANNEL=0,n.HIDDEN_CHANNEL=1,n})(),QB=(()=>{class n extends nv{constructor(e,i,r,s,a){super(),this.source=e!==void 0?e:n.EMPTY_SOURCE,this.type=i!==void 0?i:null,this.channel=r!==void 0?r:nv.DEFAULT_CHANNEL,this.start=s!==void 0?s:-1,this.stop=a!==void 0?a:-1,this.tokenIndex=-1,this.source[0]!==null?(this.line=e[0].line,this.column=e[0].column):this.column=-1}clone(){let e=new n(this.source,this.type,this.channel,this.start,this.stop);return e.tokenIndex=this.tokenIndex,e.line=this.line,e.column=this.column,e.text=this.text,e}toString(){let e=this.text;return e!==null?e=e.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t"):e="","[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+e+"',<"+this.type+">"+(this.channel>0?",channel="+this.channel:"")+","+this.line+":"+this.column+"]"}get text(){if(this._text!==null)return this._text;let e=this.getInputStream();if(e===null)return null;let i=e.size;return this.start"}set text(e){this._text=e}}return n.EMPTY_SOURCE=[null,null],n})();AE.exports={Token:nv,CommonToken:QB}});var gs=Q((sce,IE)=>{var Zt=(()=>{class n{constructor(){this.atn=null,this.stateNumber=n.INVALID_STATE_NUMBER,this.stateType=null,this.ruleIndex=0,this.epsilonOnlyTransitions=!1,this.transitions=[],this.nextTokenWithinRule=null}toString(){return this.stateNumber}equals(e){return e instanceof n?this.stateNumber===e.stateNumber:!1}isNonGreedyExitState(){return!1}addTransition(e,i){i===void 0&&(i=-1),this.transitions.length===0?this.epsilonOnlyTransitions=e.isEpsilon:this.epsilonOnlyTransitions!==e.isEpsilon&&(this.epsilonOnlyTransitions=!1),i===-1?this.transitions.push(e):this.transitions.splice(i,1,e)}}return n.INVALID_TYPE=0,n.BASIC=1,n.RULE_START=2,n.BLOCK_START=3,n.PLUS_BLOCK_START=4,n.STAR_BLOCK_START=5,n.TOKEN_START=6,n.RULE_STOP=7,n.BLOCK_END=8,n.STAR_LOOP_BACK=9,n.STAR_LOOP_ENTRY=10,n.PLUS_LOOP_BACK=11,n.LOOP_END=12,n.serializationNames=["INVALID","BASIC","RULE_START","BLOCK_START","PLUS_BLOCK_START","STAR_BLOCK_START","TOKEN_START","RULE_STOP","BLOCK_END","STAR_LOOP_BACK","STAR_LOOP_ENTRY","PLUS_LOOP_BACK","LOOP_END"],n.INVALID_STATE_NUMBER=-1,n})(),rv=class extends Zt{constructor(){super(),this.stateType=Zt.BASIC}},Qa=class extends Zt{constructor(){return super(),this.decision=-1,this.nonGreedy=!1,this}},Ol=class extends Qa{constructor(){return super(),this.endState=null,this}},sv=class extends Ol{constructor(){return super(),this.stateType=Zt.BLOCK_START,this}},av=class extends Zt{constructor(){return super(),this.stateType=Zt.BLOCK_END,this.startState=null,this}},ov=class extends Zt{constructor(){return super(),this.stateType=Zt.RULE_STOP,this}},lv=class extends Zt{constructor(){return super(),this.stateType=Zt.RULE_START,this.stopState=null,this.isPrecedenceRule=!1,this}},cv=class extends Qa{constructor(){return super(),this.stateType=Zt.PLUS_LOOP_BACK,this}},uv=class extends Ol{constructor(){return super(),this.stateType=Zt.PLUS_BLOCK_START,this.loopBackState=null,this}},dv=class extends Ol{constructor(){return super(),this.stateType=Zt.STAR_BLOCK_START,this}},hv=class extends Zt{constructor(){return super(),this.stateType=Zt.STAR_LOOP_BACK,this}},mv=class extends Qa{constructor(){return super(),this.stateType=Zt.STAR_LOOP_ENTRY,this.loopBackState=null,this.isPrecedenceDecision=null,this}},fv=class extends Zt{constructor(){return super(),this.stateType=Zt.LOOP_END,this.loopBackState=null,this}},pv=class extends Qa{constructor(){return super(),this.stateType=Zt.TOKEN_START,this}};IE.exports={ATNState:Zt,BasicState:rv,DecisionState:Qa,BlockStartState:Ol,BlockEndState:av,LoopEndState:fv,RuleStartState:lv,RuleStopState:ov,TokensStartState:pv,PlusLoopbackState:cv,StarLoopbackState:hv,StarLoopEntryState:mv,PlusBlockStartState:uv,StarBlockStartState:dv,BasicBlockStartState:sv}});var Nl=Q((oce,LE)=>{var{Set:DE,Hash:ZB,equalArrays:RE}=ki(),Fi=class n{hashCode(){let t=new ZB;return this.updateHashCode(t),t.finish()}evaluate(t,e){}evalPrecedence(t,e){return this}static andContext(t,e){if(t===null||t===n.NONE)return e;if(e===null||e===n.NONE)return t;let i=new gv(t,e);return i.opnds.length===1?i.opnds[0]:i}static orContext(t,e){if(t===null)return e;if(e===null)return t;if(t===n.NONE||e===n.NONE)return n.NONE;let i=new _v(t,e);return i.opnds.length===1?i.opnds[0]:i}},Sf=class n extends Fi{constructor(t,e,i){super(),this.ruleIndex=t===void 0?-1:t,this.predIndex=e===void 0?-1:e,this.isCtxDependent=i===void 0?!1:i}evaluate(t,e){let i=this.isCtxDependent?e:null;return t.sempred(i,this.ruleIndex,this.predIndex)}updateHashCode(t){t.update(this.ruleIndex,this.predIndex,this.isCtxDependent)}equals(t){return this===t?!0:t instanceof n?this.ruleIndex===t.ruleIndex&&this.predIndex===t.predIndex&&this.isCtxDependent===t.isCtxDependent:!1}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}};Fi.NONE=new Sf;var Pu=class n extends Fi{constructor(t){super(),this.precedence=t===void 0?0:t}evaluate(t,e){return t.precpred(e,this.precedence)}evalPrecedence(t,e){return t.precpred(e,this.precedence)?Fi.NONE:null}compareTo(t){return this.precedence-t.precedence}updateHashCode(t){t.update(this.precedence)}equals(t){return this===t?!0:t instanceof n?this.precedence===t.precedence:!1}toString(){return"{"+this.precedence+">=prec}?"}static filterPrecedencePredicates(t){let e=[];return t.values().map(function(i){i instanceof n&&e.push(i)}),e}},gv=class n extends Fi{constructor(t,e){super();let i=new DE;t instanceof n?t.opnds.map(function(s){i.add(s)}):i.add(t),e instanceof n?e.opnds.map(function(s){i.add(s)}):i.add(e);let r=Pu.filterPrecedencePredicates(i);if(r.length>0){let s=null;r.map(function(a){(s===null||a.precedencee.toString());return(t.length>3?t.slice(3):t).join("&&")}},_v=class n extends Fi{constructor(t,e){super();let i=new DE;t instanceof n?t.opnds.map(function(s){i.add(s)}):i.add(t),e instanceof n?e.opnds.map(function(s){i.add(s)}):i.add(e);let r=Pu.filterPrecedencePredicates(i);if(r.length>0){let s=r.sort(function(o,l){return o.compareTo(l)}),a=s[s.length-1];i.add(a)}this.opnds=Array.from(i.values())}equals(t){return this===t?!0:t instanceof n?RE(this.opnds,t.opnds):!1}updateHashCode(t){t.update(this.opnds,"OR")}evaluate(t,e){for(let i=0;ie.toString());return(t.length>3?t.slice(3):t).join("||")}};LE.exports={SemanticContext:Fi,PrecedencePredicate:Pu,Predicate:Sf}});var Uu=Q((lce,vv)=>{var{DecisionState:XB}=gs(),{SemanticContext:OE}=Nl(),{Hash:NE}=ki();function FE(n,t){if(n===null){let e={state:null,alt:null,context:null,semanticContext:null};return t&&(e.reachesIntoOuterContext=0),e}else{let e={};return e.state=n.state||null,e.alt=n.alt===void 0?null:n.alt,e.context=n.context||null,e.semanticContext=n.semanticContext||null,t&&(e.reachesIntoOuterContext=n.reachesIntoOuterContext||0,e.precedenceFilterSuppressed=n.precedenceFilterSuppressed||!1),e}}var kf=class n{constructor(t,e){this.checkContext(t,e),t=FE(t),e=FE(e,!0),this.state=t.state!==null?t.state:e.state,this.alt=t.alt!==null?t.alt:e.alt,this.context=t.context!==null?t.context:e.context,this.semanticContext=t.semanticContext!==null?t.semanticContext:e.semanticContext!==null?e.semanticContext:OE.NONE,this.reachesIntoOuterContext=e.reachesIntoOuterContext,this.precedenceFilterSuppressed=e.precedenceFilterSuppressed}checkContext(t,e){(t.context===null||t.context===void 0)&&(e===null||e.context===null||e.context===void 0)&&(this.context=null)}hashCode(){let t=new NE;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext)}equals(t){return this===t?!0:t instanceof n?this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&(this.context===null?t.context===null:this.context.equals(t.context))&&this.semanticContext.equals(t.semanticContext)&&this.precedenceFilterSuppressed===t.precedenceFilterSuppressed:!1}hashCodeForConfigSet(){let t=new NE;return t.update(this.state.stateNumber,this.alt,this.semanticContext),t.finish()}equalsForConfigSet(t){return this===t?!0:t instanceof n?this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&this.semanticContext.equals(t.semanticContext):!1}toString(){return"("+this.state+","+this.alt+(this.context!==null?",["+this.context.toString()+"]":"")+(this.semanticContext!==OE.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext>0?",up="+this.reachesIntoOuterContext:"")+")"}},bv=class n extends kf{constructor(t,e){super(t,e);let i=t.lexerActionExecutor||null;return this.lexerActionExecutor=i||(e!==null?e.lexerActionExecutor:null),this.passedThroughNonGreedyDecision=e!==null?this.checkNonGreedyDecision(e,this.state):!1,this.hashCodeForConfigSet=n.prototype.hashCode,this.equalsForConfigSet=n.prototype.equals,this}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext,this.passedThroughNonGreedyDecision,this.lexerActionExecutor)}equals(t){return this===t||t instanceof n&&this.passedThroughNonGreedyDecision===t.passedThroughNonGreedyDecision&&(this.lexerActionExecutor?this.lexerActionExecutor.equals(t.lexerActionExecutor):!t.lexerActionExecutor)&&super.equals(t)}checkNonGreedyDecision(t,e){return t.passedThroughNonGreedyDecision||e instanceof XB&&e.nonGreedy}};vv.exports.ATNConfig=kf;vv.exports.LexerATNConfig=bv});var Ji=Q((cce,PE)=>{var{Token:$u}=Qt(),Mi=class n{constructor(t,e){this.start=t,this.stop=e}clone(){return new n(this.start,this.stop)}contains(t){return t>=this.start&&tthis.addInterval(e),this),this}reduce(t){if(t=i.stop?(this.intervals.splice(t+1,1),this.reduce(t)):e.stop>=i.start&&(this.intervals[t]=new Mi(e.start,i.stop),this.intervals.splice(t+1,1))}}complement(t,e){let i=new n;return i.addInterval(new Mi(t,e+1)),this.intervals!==null&&this.intervals.forEach(r=>i.removeRange(r)),i}contains(t){if(this.intervals===null)return!1;for(let e=0;er.start&&t.stop=r.stop?(this.intervals.splice(e,1),e=e-1):t.start"):t.push("'"+String.fromCharCode(i.start)+"'"):t.push("'"+String.fromCharCode(i.start)+"'..'"+String.fromCharCode(i.stop-1)+"'")}return t.length>1?"{"+t.join(", ")+"}":t[0]}toIndexString(){let t=[];for(let e=0;e"):t.push(i.start.toString()):t.push(i.start.toString()+".."+(i.stop-1).toString())}return t.length>1?"{"+t.join(", ")+"}":t[0]}toTokenString(t,e){let i=[];for(let r=0;r1?"{"+i.join(", ")+"}":i[0]}elementName(t,e,i){return i===$u.EOF?"":i===$u.EPSILON?"":t[i]||e[i]}get length(){return this.intervals.map(t=>t.length).reduce((t,e)=>t+e)}};PE.exports={Interval:Mi,IntervalSet:yv}});var Fl=Q((uce,UE)=>{var{Token:JB}=Qt(),{IntervalSet:Iv}=Ji(),{Predicate:e6,PrecedencePredicate:t6}=Nl(),Xe=class{constructor(t){if(t==null)throw"target cannot be null.";this.target=t,this.isEpsilon=!1,this.label=null}};Xe.EPSILON=1;Xe.RANGE=2;Xe.RULE=3;Xe.PREDICATE=4;Xe.ATOM=5;Xe.ACTION=6;Xe.SET=7;Xe.NOT_SET=8;Xe.WILDCARD=9;Xe.PRECEDENCE=10;Xe.serializationNames=["INVALID","EPSILON","RANGE","RULE","PREDICATE","ATOM","ACTION","SET","NOT_SET","WILDCARD","PRECEDENCE"];Xe.serializationTypes={EpsilonTransition:Xe.EPSILON,RangeTransition:Xe.RANGE,RuleTransition:Xe.RULE,PredicateTransition:Xe.PREDICATE,AtomTransition:Xe.ATOM,ActionTransition:Xe.ACTION,SetTransition:Xe.SET,NotSetTransition:Xe.NOT_SET,WildcardTransition:Xe.WILDCARD,PrecedencePredicateTransition:Xe.PRECEDENCE};var Cv=class extends Xe{constructor(t,e){super(t),this.label_=e,this.label=this.makeLabel(),this.serializationType=Xe.ATOM}makeLabel(){let t=new Iv;return t.addOne(this.label_),t}matches(t,e,i){return this.label_===t}toString(){return this.label_}},wv=class extends Xe{constructor(t,e,i,r){super(t),this.ruleIndex=e,this.precedence=i,this.followState=r,this.serializationType=Xe.RULE,this.isEpsilon=!0}matches(t,e,i){return!1}},xv=class extends Xe{constructor(t,e){super(t),this.serializationType=Xe.EPSILON,this.isEpsilon=!0,this.outermostPrecedenceReturn=e}matches(t,e,i){return!1}toString(){return"epsilon"}},Sv=class extends Xe{constructor(t,e,i){super(t),this.serializationType=Xe.RANGE,this.start=e,this.stop=i,this.label=this.makeLabel()}makeLabel(){let t=new Iv;return t.addRange(this.start,this.stop),t}matches(t,e,i){return t>=this.start&&t<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}},Vu=class extends Xe{constructor(t){super(t)}},kv=class extends Vu{constructor(t,e,i,r){super(t),this.serializationType=Xe.PREDICATE,this.ruleIndex=e,this.predIndex=i,this.isCtxDependent=r,this.isEpsilon=!0}matches(t,e,i){return!1}getPredicate(){return new e6(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}},Mv=class extends Xe{constructor(t,e,i,r){super(t),this.serializationType=Xe.ACTION,this.ruleIndex=e,this.actionIndex=i===void 0?-1:i,this.isCtxDependent=r===void 0?!1:r,this.isEpsilon=!0}matches(t,e,i){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}},Mf=class extends Xe{constructor(t,e){super(t),this.serializationType=Xe.SET,e!=null?this.label=e:(this.label=new Iv,this.label.addOne(JB.INVALID_TYPE))}matches(t,e,i){return this.label.contains(t)}toString(){return this.label.toString()}},Tv=class extends Mf{constructor(t,e){super(t,e),this.serializationType=Xe.NOT_SET}matches(t,e,i){return t>=e&&t<=i&&!super.matches(t,e,i)}toString(){return"~"+super.toString()}},Ev=class extends Xe{constructor(t){super(t),this.serializationType=Xe.WILDCARD}matches(t,e,i){return t>=e&&t<=i}toString(){return"."}},Av=class extends Vu{constructor(t,e){super(t),this.serializationType=Xe.PRECEDENCE,this.precedence=e,this.isEpsilon=!0}matches(t,e,i){return!1}getPredicate(){return new t6(this.precedence)}toString(){return this.precedence+" >= _p"}};UE.exports={Transition:Xe,AtomTransition:Cv,SetTransition:Mf,NotSetTransition:Tv,RuleTransition:wv,ActionTransition:Mv,EpsilonTransition:xv,RangeTransition:Sv,WildcardTransition:Ev,PredicateTransition:kv,PrecedencePredicateTransition:Av,AbstractPredicateTransition:Vu}});var Za=Q((dce,BE)=>{var{Token:i6}=Qt(),{Interval:$E}=Ji(),VE=new $E(-1,-2),Dv=class{},Rv=class extends Dv{constructor(){super()}},Tf=class extends Rv{constructor(){super()}},Lv=class extends Tf{constructor(){super()}getRuleContext(){throw new Error("missing interface implementation")}},Pl=class extends Tf{constructor(){super()}},Ef=class extends Pl{constructor(){super()}},Ov=class{visit(t){return Array.isArray(t)?t.map(function(e){return e.accept(this)},this):t.accept(this)}visitChildren(t){return t.children?this.visit(t.children):null}visitTerminal(t){}visitErrorNode(t){}},Nv=class{visitTerminal(t){}visitErrorNode(t){}enterEveryRule(t){}exitEveryRule(t){}},Af=class extends Pl{constructor(t){super(),this.parentCtx=null,this.symbol=t}getChild(t){return null}getSymbol(){return this.symbol}getParent(){return this.parentCtx}getPayload(){return this.symbol}getSourceInterval(){if(this.symbol===null)return VE;let t=this.symbol.tokenIndex;return new $E(t,t)}getChildCount(){return 0}accept(t){return t.visitTerminal(this)}getText(){return this.symbol.text}toString(){return this.symbol.type===i6.EOF?"":this.symbol.text}},Fv=class extends Af{constructor(t){super(t)}isErrorNode(){return!0}accept(t){return t.visitErrorNode(this)}},Bu=class{walk(t,e){if(e instanceof Ef||e.isErrorNode!==void 0&&e.isErrorNode())t.visitErrorNode(e);else if(e instanceof Pl)t.visitTerminal(e);else{this.enterRule(t,e);for(let r=0;r{var n6=ki(),{Token:r6}=Qt(),{ErrorNode:s6,TerminalNode:zE,RuleNode:HE}=Za(),_s={toStringTree:function(n,t,e){t=t||null,e=e||null,e!==null&&(t=e.ruleNames);let i=_s.getNodeText(n,t);i=n6.escapeWhitespace(i,!1);let r=n.getChildCount();if(r===0)return i;let s="("+i+" ";r>0&&(i=_s.toStringTree(n.getChild(0),t),s=s.concat(i));for(let a=1;a{var{RuleNode:a6}=Za(),{INVALID_INTERVAL:o6}=Za(),l6=Pv(),Uv=class extends a6{constructor(t,e){super(),this.parentCtx=t||null,this.invokingState=e||-1}depth(){let t=0,e=this;for(;e!==null;)e=e.parentCtx,t+=1;return t}isEmpty(){return this.invokingState===-1}getSourceInterval(){return o6}getRuleContext(){return this}getPayload(){return this}getText(){return this.getChildCount()===0?"":this.children.map(function(t){return t.getText()}).join("")}getAltNumber(){return 0}setAltNumber(t){}getChild(t){return null}getChildCount(){return 0}accept(t){return t.visitChildren(this)}toStringTree(t,e){return l6.toStringTree(this,t,e)}toString(t,e){t=t||null,e=e||null;let i=this,r="[";for(;i!==null&&i!==e;){if(t===null)i.isEmpty()||(r+=i.invokingState);else{let s=i.ruleIndex,a=s>=0&&s{var qE=If(),{Hash:KE,Map:YE,equalArrays:GE}=ki(),ht=class n{constructor(t){this.cachedHashCode=t}isEmpty(){return this===n.EMPTY}hasEmptyPath(){return this.getReturnState(this.length-1)===n.EMPTY_RETURN_STATE}hashCode(){return this.cachedHashCode}updateHashCode(t){t.update(this.cachedHashCode)}};ht.EMPTY=null;ht.EMPTY_RETURN_STATE=2147483647;ht.globalNodeCount=1;ht.id=ht.globalNodeCount;var $v=class{constructor(){this.cache=new YE}add(t){if(t===ht.EMPTY)return ht.EMPTY;let e=this.cache.get(t)||null;return e!==null?e:(this.cache.put(t,t),t)}get(t){return this.cache.get(t)||null}get length(){return this.cache.length}},Pn=class n extends ht{constructor(t,e){let i=0,r=new KE;t!==null?r.update(t,e):r.update(1),i=r.finish(),super(i),this.parentCtx=t,this.returnState=e}getParent(t){return this.parentCtx}getReturnState(t){return this.returnState}equals(t){return this===t?!0:t instanceof n?this.hashCode()!==t.hashCode()||this.returnState!==t.returnState?!1:this.parentCtx==null?t.parentCtx==null:this.parentCtx.equals(t.parentCtx):!1}toString(){let t=this.parentCtx===null?"":this.parentCtx.toString();return t.length===0?this.returnState===ht.EMPTY_RETURN_STATE?"$":""+this.returnState:""+this.returnState+" "+t}get length(){return 1}static create(t,e){return e===ht.EMPTY_RETURN_STATE&&t===null?ht.EMPTY:new n(t,e)}},zu=class extends Pn{constructor(){super(null,ht.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(t){return null}getReturnState(t){return this.returnState}equals(t){return this===t}toString(){return"$"}};ht.EMPTY=new zu;var Lr=class n extends ht{constructor(t,e){let i=new KE;i.update(t,e);let r=i.finish();return super(r),this.parents=t,this.returnStates=e,this}isEmpty(){return this.returnStates[0]===ht.EMPTY_RETURN_STATE}getParent(t){return this.parents[t]}getReturnState(t){return this.returnStates[t]}equals(t){return this===t?!0:t instanceof n?this.hashCode()!==t.hashCode()?!1:GE(this.returnStates,t.returnStates)&&GE(this.parents,t.parents):!1}toString(){if(this.isEmpty())return"[]";{let t="[";for(let e=0;e0&&(t=t+", "),this.returnStates[e]===ht.EMPTY_RETURN_STATE){t=t+"$";continue}t=t+this.returnStates[e],this.parents[e]!==null?t=t+" "+this.parents[e]:t=t+"null"}return t+"]"}}get length(){return this.returnStates.length}};function QE(n,t){if(t==null&&(t=qE.EMPTY),t.parentCtx===null||t===qE.EMPTY)return ht.EMPTY;let e=QE(n,t.parentCtx),r=n.states[t.invokingState].transitions[0];return Pn.create(e,r.followState.stateNumber)}function Vv(n,t,e,i){if(n===t)return n;if(n instanceof Pn&&t instanceof Pn)return c6(n,t,e,i);if(e){if(n instanceof zu)return n;if(t instanceof zu)return t}return n instanceof Pn&&(n=new Lr([n.getParent()],[n.returnState])),t instanceof Pn&&(t=new Lr([t.getParent()],[t.returnState])),d6(n,t,e,i)}function c6(n,t,e,i){if(i!==null){let s=i.get(n,t);if(s!==null||(s=i.get(t,n),s!==null))return s}let r=u6(n,t,e);if(r!==null)return i!==null&&i.set(n,t,r),r;if(n.returnState===t.returnState){let s=Vv(n.parentCtx,t.parentCtx,e,i);if(s===n.parentCtx)return n;if(s===t.parentCtx)return t;let a=Pn.create(s,n.returnState);return i!==null&&i.set(n,t,a),a}else{let s=null;if((n===t||n.parentCtx!==null&&n.parentCtx===t.parentCtx)&&(s=n.parentCtx),s!==null){let c=[n.returnState,t.returnState];n.returnState>t.returnState&&(c[0]=t.returnState,c[1]=n.returnState);let u=[s,s],d=new Lr(u,c);return i!==null&&i.set(n,t,d),d}let a=[n.returnState,t.returnState],o=[n.parentCtx,t.parentCtx];n.returnState>t.returnState&&(a[0]=t.returnState,a[1]=n.returnState,o=[t.parentCtx,n.parentCtx]);let l=new Lr(o,a);return i!==null&&i.set(n,t,l),l}}function u6(n,t,e){if(e){if(n===ht.EMPTY||t===ht.EMPTY)return ht.EMPTY}else{if(n===ht.EMPTY&&t===ht.EMPTY)return ht.EMPTY;if(n===ht.EMPTY){let i=[t.returnState,ht.EMPTY_RETURN_STATE],r=[t.parentCtx,null];return new Lr(r,i)}else if(t===ht.EMPTY){let i=[n.returnState,ht.EMPTY_RETURN_STATE],r=[n.parentCtx,null];return new Lr(r,i)}}return null}function d6(n,t,e,i){if(i!==null){let u=i.get(n,t);if(u!==null||(u=i.get(t,n),u!==null))return u}let r=0,s=0,a=0,o=[],l=[];for(;r{var{Set:JE,BitSet:e2}=ki(),{Token:Xa}=Qt(),{ATNConfig:m6}=Uu(),{IntervalSet:t2}=Ji(),{RuleStopState:f6}=gs(),{RuleTransition:p6,NotSetTransition:g6,WildcardTransition:_6,AbstractPredicateTransition:b6}=Fl(),{predictionContextFromRuleContext:v6,PredictionContext:i2,SingletonPredictionContext:y6}=bs(),Df=class n{constructor(t){this.atn=t}getDecisionLookahead(t){if(t===null)return null;let e=t.transitions.length,i=[];for(let r=0;r{var C6=Bv(),{IntervalSet:w6}=Ji(),{Token:Ul}=Qt(),x6=(()=>{class n{constructor(e,i){this.grammarType=e,this.maxTokenType=i,this.states=[],this.decisionToState=[],this.ruleToStartState=[],this.ruleToStopState=null,this.modeNameToStartState={},this.ruleToTokenType=null,this.lexerActions=null,this.modeToStartState=[]}nextTokensInContext(e,i){return new C6(this).LOOK(e,null,i)}nextTokensNoContext(e){return e.nextTokenWithinRule!==null||(e.nextTokenWithinRule=this.nextTokensInContext(e,null),e.nextTokenWithinRule.readOnly=!0),e.nextTokenWithinRule}nextTokens(e,i){return i===void 0?this.nextTokensNoContext(e):this.nextTokensInContext(e,i)}addState(e){e!==null&&(e.atn=this,e.stateNumber=this.states.length),this.states.push(e)}removeState(e){this.states[e.stateNumber]=null}defineDecisionState(e){return this.decisionToState.push(e),e.decision=this.decisionToState.length-1,e.decision}getDecisionState(e){return this.decisionToState.length===0?null:this.decisionToState[e]}getExpectedTokens(e,i){if(e<0||e>=this.states.length)throw"Invalid state number.";let r=this.states[e],s=this.nextTokens(r);if(!s.contains(Ul.EPSILON))return s;let a=new w6;for(a.addSet(s),a.removeOne(Ul.EPSILON);i!==null&&i.invokingState>=0&&s.contains(Ul.EPSILON);){let l=this.states[i.invokingState].transitions[0];s=this.nextTokens(l.followState),a.addSet(s),a.removeOne(Ul.EPSILON),i=i.parentCtx}return s.contains(Ul.EPSILON)&&a.addOne(Ul.EOF),a}}return n.INVALID_ALT_NUMBER=0,n})();r2.exports=x6});var a2=Q((_ce,s2)=>{s2.exports={LEXER:0,PARSER:1}});var zv=Q((bce,o2)=>{var $l=class{constructor(t){t===void 0&&(t=null),this.readOnly=!1,this.verifyATN=t===null?!0:t.verifyATN,this.generateRuleBypassTransitions=t===null?!1:t.generateRuleBypassTransitions}};$l.defaultOptions=new $l;$l.defaultOptions.readOnly=!0;o2.exports=$l});var Yv=Q((vce,l2)=>{var vs={CHANNEL:0,CUSTOM:1,MODE:2,MORE:3,POP_MODE:4,PUSH_MODE:5,SKIP:6,TYPE:7},tr=class{constructor(t){this.actionType=t,this.isPositionDependent=!1}hashCode(){let t=new Hash;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.actionType)}equals(t){return this===t}},Hu=class extends tr{constructor(){super(vs.SKIP)}execute(t){t.skip()}toString(){return"skip"}};Hu.INSTANCE=new Hu;var Hv=class n extends tr{constructor(t){super(vs.TYPE),this.type=t}execute(t){t.type=this.type}updateHashCode(t){t.update(this.actionType,this.type)}equals(t){return this===t?!0:t instanceof n?this.type===t.type:!1}toString(){return"type("+this.type+")"}},jv=class n extends tr{constructor(t){super(vs.PUSH_MODE),this.mode=t}execute(t){t.pushMode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t?!0:t instanceof n?this.mode===t.mode:!1}toString(){return"pushMode("+this.mode+")"}},ju=class extends tr{constructor(){super(vs.POP_MODE)}execute(t){t.popMode()}toString(){return"popMode"}};ju.INSTANCE=new ju;var Wu=class extends tr{constructor(){super(vs.MORE)}execute(t){t.more()}toString(){return"more"}};Wu.INSTANCE=new Wu;var Wv=class n extends tr{constructor(t){super(vs.MODE),this.mode=t}execute(t){t.mode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t?!0:t instanceof n?this.mode===t.mode:!1}toString(){return"mode("+this.mode+")"}},qv=class n extends tr{constructor(t,e){super(vs.CUSTOM),this.ruleIndex=t,this.actionIndex=e,this.isPositionDependent=!0}execute(t){t.action(null,this.ruleIndex,this.actionIndex)}updateHashCode(t){t.update(this.actionType,this.ruleIndex,this.actionIndex)}equals(t){return this===t?!0:t instanceof n?this.ruleIndex===t.ruleIndex&&this.actionIndex===t.actionIndex:!1}},Gv=class n extends tr{constructor(t){super(vs.CHANNEL),this.channel=t}execute(t){t._channel=this.channel}updateHashCode(t){t.update(this.actionType,this.channel)}equals(t){return this===t?!0:t instanceof n?this.channel===t.channel:!1}toString(){return"channel("+this.channel+")"}},Kv=class n extends tr{constructor(t,e){super(e.actionType),this.offset=t,this.action=e,this.isPositionDependent=!0}execute(t){this.action.execute(t)}updateHashCode(t){t.update(this.actionType,this.offset,this.action)}equals(t){return this===t?!0:t instanceof n?this.offset===t.offset&&this.action===t.action:!1}};l2.exports={LexerActionType:vs,LexerSkipAction:Hu,LexerChannelAction:Gv,LexerCustomAction:qv,LexerIndexedCustomAction:Kv,LexerMoreAction:Wu,LexerTypeAction:Hv,LexerPushModeAction:jv,LexerPopModeAction:ju,LexerModeAction:Wv}});var ay=Q((yce,_2)=>{var{Token:Qv}=Qt(),S6=Ja(),Rf=a2(),{ATNState:Pi,BasicState:c2,DecisionState:k6,BlockStartState:Zv,BlockEndState:Xv,LoopEndState:Vl,RuleStartState:u2,RuleStopState:qu,TokensStartState:M6,PlusLoopbackState:d2,StarLoopbackState:Jv,StarLoopEntryState:Bl,PlusBlockStartState:ey,StarBlockStartState:ty,BasicBlockStartState:h2}=gs(),{Transition:Or,AtomTransition:iy,SetTransition:T6,NotSetTransition:E6,RuleTransition:m2,RangeTransition:f2,ActionTransition:A6,EpsilonTransition:Gu,WildcardTransition:I6,PredicateTransition:D6,PrecedencePredicateTransition:R6}=Fl(),{IntervalSet:L6}=Ji(),O6=zv(),{LexerActionType:sa,LexerSkipAction:N6,LexerChannelAction:F6,LexerCustomAction:P6,LexerMoreAction:U6,LexerTypeAction:$6,LexerPushModeAction:V6,LexerPopModeAction:B6,LexerModeAction:z6}=Yv(),H6="AADB8D7E-AEEF-4415-AD2B-8204D6CF042E",sy="59627784-3BE5-417A-B9EB-8131A7286089",ny=[H6,sy],p2=3,g2=sy;function Lf(n,t){let e=[];return e[n-1]=t,e.map(function(i){return t})}var ry=class{constructor(t){t==null&&(t=O6.defaultOptions),this.deserializationOptions=t,this.stateFactories=null,this.actionFactories=null}isFeatureSupported(t,e){let i=ny.indexOf(t);return i<0?!1:ny.indexOf(e)>=i}deserialize(t){this.reset(t),this.checkVersion(),this.checkUUID();let e=this.readATN();this.readStates(e),this.readRules(e),this.readModes(e);let i=[];return this.readSets(e,i,this.readInt.bind(this)),this.isFeatureSupported(sy,this.uuid)&&this.readSets(e,i,this.readInt32.bind(this)),this.readEdges(e,i),this.readDecisions(e),this.readLexerActions(e),this.markPrecedenceDecisions(e),this.verifyATN(e),this.deserializationOptions.generateRuleBypassTransitions&&e.grammarType===Rf.PARSER&&(this.generateRuleBypassTransitions(e),this.verifyATN(e)),e}reset(t){let e=function(r){let s=r.charCodeAt(0);return s>1?s-2:s+65534},i=t.split("").map(e);i[0]=t.charCodeAt(0),this.data=i,this.pos=0}checkVersion(){let t=this.readInt();if(t!==p2)throw"Could not deserialize ATN with version "+t+" (expected "+p2+")."}checkUUID(){let t=this.readUUID();if(ny.indexOf(t)<0)throw""+t+g2,g2;this.uuid=t}readATN(){let t=this.readInt(),e=this.readInt();return new S6(t,e)}readStates(t){let e,i,r,s=[],a=[],o=this.readInt();for(let u=0;u0;)s.addTransition(c.transitions[u-1]),c.transitions=c.transitions.slice(-1);t.ruleToStartState[e].addTransition(new Gu(s)),a.addTransition(new Gu(l));let d=new c2;t.addState(d),d.addTransition(new iy(a,t.ruleToTokenType[e])),s.addTransition(new Gu(d))}stateIsEndStateFor(t,e){if(t.ruleIndex!==e||!(t instanceof Bl))return null;let i=t.transitions[t.transitions.length-1].target;return i instanceof Vl&&i.epsilonOnlyTransitions&&i.transitions[0].target instanceof qu?t:null}markPrecedenceDecisions(t){for(let e=0;e=0):this.checkCondition(i.transitions.length<=1||i instanceof qu)}}checkCondition(t,e){if(!t)throw e==null&&(e="IllegalState"),e}readInt(){return this.data[this.pos++]}readInt32(){let t=this.readInt(),e=this.readInt();return t|e<<16}readLong(){let t=this.readInt32(),e=this.readInt32();return t&4294967295|e<<32}readUUID(){let t=[];for(let e=7;e>=0;e--){let i=this.readInt();t[2*e+1]=i&255,t[2*e]=i>>8&255}return Ti[t[0]]+Ti[t[1]]+Ti[t[2]]+Ti[t[3]]+"-"+Ti[t[4]]+Ti[t[5]]+"-"+Ti[t[6]]+Ti[t[7]]+"-"+Ti[t[8]]+Ti[t[9]]+"-"+Ti[t[10]]+Ti[t[11]]+Ti[t[12]]+Ti[t[13]]+Ti[t[14]]+Ti[t[15]]}edgeFactory(t,e,i,r,s,a,o,l){let c=t.states[r];switch(e){case Or.EPSILON:return new Gu(c);case Or.RANGE:return o!==0?new f2(c,Qv.EOF,a):new f2(c,s,a);case Or.RULE:return new m2(t.states[s],a,o,c);case Or.PREDICATE:return new D6(c,s,a,o!==0);case Or.PRECEDENCE:return new R6(c,s);case Or.ATOM:return o!==0?new iy(c,Qv.EOF):new iy(c,s);case Or.ACTION:return new A6(c,s,a,o!==0);case Or.SET:return new T6(c,l[s]);case Or.NOT_SET:return new E6(c,l[s]);case Or.WILDCARD:return new I6(c);default:throw"The specified transition type: "+e+" is not valid."}}stateFactory(t,e){if(this.stateFactories===null){let i=[];i[Pi.INVALID_TYPE]=null,i[Pi.BASIC]=()=>new c2,i[Pi.RULE_START]=()=>new u2,i[Pi.BLOCK_START]=()=>new h2,i[Pi.PLUS_BLOCK_START]=()=>new ey,i[Pi.STAR_BLOCK_START]=()=>new ty,i[Pi.TOKEN_START]=()=>new M6,i[Pi.RULE_STOP]=()=>new qu,i[Pi.BLOCK_END]=()=>new Xv,i[Pi.STAR_LOOP_BACK]=()=>new Jv,i[Pi.STAR_LOOP_ENTRY]=()=>new Bl,i[Pi.PLUS_LOOP_BACK]=()=>new d2,i[Pi.LOOP_END]=()=>new Vl,this.stateFactories=i}if(t>this.stateFactories.length||this.stateFactories[t]===null)throw"The specified state type "+t+" is not valid.";{let i=this.stateFactories[t]();if(i!==null)return i.ruleIndex=e,i}}lexerActionFactory(t,e,i){if(this.actionFactories===null){let r=[];r[sa.CHANNEL]=(s,a)=>new F6(s),r[sa.CUSTOM]=(s,a)=>new P6(s,a),r[sa.MODE]=(s,a)=>new z6(s),r[sa.MORE]=(s,a)=>U6.INSTANCE,r[sa.POP_MODE]=(s,a)=>B6.INSTANCE,r[sa.PUSH_MODE]=(s,a)=>new V6(s),r[sa.SKIP]=(s,a)=>N6.INSTANCE,r[sa.TYPE]=(s,a)=>new $6(s),this.actionFactories=r}if(t>this.actionFactories.length||this.actionFactories[t]===null)throw"The specified lexer action type "+t+" is not valid.";return this.actionFactories[t](e,i)}};function j6(){let n=[];for(let t=0;t<256;t++)n[t]=(t+256).toString(16).substr(1).toUpperCase();return n}var Ti=j6();_2.exports=ry});var Qu=Q((Cce,b2)=>{var Ku=class{syntaxError(t,e,i,r,s,a){}reportAmbiguity(t,e,i,r,s,a,o){}reportAttemptingFullContext(t,e,i,r,s,a){}reportContextSensitivity(t,e,i,r,s,a){}},Yu=class extends Ku{constructor(){super()}syntaxError(t,e,i,r,s,a){console.error("line "+i+":"+r+" "+s)}};Yu.INSTANCE=new Yu;var oy=class extends Ku{constructor(t){if(super(),t===null)throw"delegates";return this.delegates=t,this}syntaxError(t,e,i,r,s,a){this.delegates.map(o=>o.syntaxError(t,e,i,r,s,a))}reportAmbiguity(t,e,i,r,s,a,o){this.delegates.map(l=>l.reportAmbiguity(t,e,i,r,s,a,o))}reportAttemptingFullContext(t,e,i,r,s,a){this.delegates.map(o=>o.reportAttemptingFullContext(t,e,i,r,s,a))}reportContextSensitivity(t,e,i,r,s,a){this.delegates.map(o=>o.reportContextSensitivity(t,e,i,r,s,a))}};b2.exports={ErrorListener:Ku,ConsoleErrorListener:Yu,ProxyErrorListener:oy}});var cy=Q((wce,v2)=>{var{Token:ly}=Qt(),{ConsoleErrorListener:W6}=Qu(),{ProxyErrorListener:q6}=Qu(),G6=(()=>{class n{constructor(){this._listeners=[W6.INSTANCE],this._interp=null,this._stateNumber=-1}checkVersion(e){let i="4.9.3";i!==e&&console.log("ANTLR runtime and generated code versions disagree: "+i+"!="+e)}addErrorListener(e){this._listeners.push(e)}removeErrorListeners(){this._listeners=[]}getLiteralNames(){return Object.getPrototypeOf(this).constructor.literalNames||[]}getSymbolicNames(){return Object.getPrototypeOf(this).constructor.symbolicNames||[]}getTokenNames(){if(!this.tokenNames){let e=this.getLiteralNames(),i=this.getSymbolicNames(),r=e.length>i.length?e.length:i.length;this.tokenNames=[];for(let s=0;s";let i=e.text;return i===null&&(e.type===ly.EOF?i="":i="<"+e.type+">"),i=i.replace(` +`,"\\n").replace("\r","\\r").replace(" ","\\t"),"'"+i+"'"}getErrorListenerDispatch(){return new q6(this._listeners)}sempred(e,i,r){return!0}precpred(e,i){return!0}get state(){return this._stateNumber}set state(e){this._stateNumber=e}}return n.tokenTypeMapCache={},n.ruleIndexMapCache={},n})();v2.exports=G6});var w2=Q((xce,C2)=>{var y2=Qt().CommonToken,uy=class{},Zu=class extends uy{constructor(t){super(),this.copyText=t===void 0?!1:t}create(t,e,i,r,s,a,o,l){let c=new y2(t,e,r,s,a);return c.line=o,c.column=l,i!==null?c.text=i:this.copyText&&t[1]!==null&&(c.text=t[1].getText(s,a)),c}createThin(t,e){let i=new y2(null,t);return i.text=e,i}};Zu.DEFAULT=new Zu;C2.exports=Zu});var ir=Q((Sce,x2)=>{var{PredicateTransition:K6}=Fl(),{Interval:Y6}=Ji().Interval,eo=class n extends Error{constructor(t){if(super(t.message),Error.captureStackTrace)Error.captureStackTrace(this,n);else var e=new Error().stack;this.message=t.message,this.recognizer=t.recognizer,this.input=t.input,this.ctx=t.ctx,this.offendingToken=null,this.offendingState=-1,this.recognizer!==null&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return this.recognizer!==null?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}},dy=class extends eo{constructor(t,e,i,r){super({message:"",recognizer:t,input:e,ctx:null}),this.startIndex=i,this.deadEndConfigs=r}toString(){let t="";return this.startIndex>=0&&this.startIndex{var{Token:Ui}=Qt(),Z6=cy(),X6=w2(),{RecognitionException:J6}=ir(),{LexerNoViableAltException:ez}=ir(),Nr=class n extends Z6{constructor(t){super(),this._input=t,this._factory=X6.DEFAULT,this._tokenFactorySourcePair=[this,t],this._interp=null,this._token=null,this._tokenStartCharIndex=-1,this._tokenStartLine=-1,this._tokenStartColumn=-1,this._hitEOF=!1,this._channel=Ui.DEFAULT_CHANNEL,this._type=Ui.INVALID_TYPE,this._modeStack=[],this._mode=n.DEFAULT_MODE,this._text=null}reset(){this._input!==null&&this._input.seek(0),this._token=null,this._type=Ui.INVALID_TYPE,this._channel=Ui.DEFAULT_CHANNEL,this._tokenStartCharIndex=-1,this._tokenStartColumn=-1,this._tokenStartLine=-1,this._text=null,this._hitEOF=!1,this._mode=n.DEFAULT_MODE,this._modeStack=[],this._interp.reset()}nextToken(){if(this._input===null)throw"nextToken requires a non-null input stream.";let t=this._input.mark();try{for(;;){if(this._hitEOF)return this.emitEOF(),this._token;this._token=null,this._channel=Ui.DEFAULT_CHANNEL,this._tokenStartCharIndex=this._input.index,this._tokenStartColumn=this._interp.column,this._tokenStartLine=this._interp.line,this._text=null;let e=!1;for(;;){this._type=Ui.INVALID_TYPE;let i=n.SKIP;try{i=this._interp.match(this._input,this._mode)}catch(r){if(r instanceof J6)this.notifyListeners(r),this.recover(r);else throw console.log(r.stack),r}if(this._input.LA(1)===Ui.EOF&&(this._hitEOF=!0),this._type===Ui.INVALID_TYPE&&(this._type=i),this._type===n.SKIP){e=!0;break}if(this._type!==n.MORE)break}if(!e)return this._token===null&&this.emit(),this._token}}finally{this._input.release(t)}}skip(){this._type=n.SKIP}more(){this._type=n.MORE}mode(t){this._mode=t}pushMode(t){this._interp.debug&&console.log("pushMode "+t),this._modeStack.push(this._mode),this.mode(t)}popMode(){if(this._modeStack.length===0)throw"Empty Stack";return this._interp.debug&&console.log("popMode back to "+this._modeStack.slice(0,-1)),this.mode(this._modeStack.pop()),this._mode}emitToken(t){this._token=t}emit(){let t=this._factory.create(this._tokenFactorySourcePair,this._type,this._text,this._channel,this._tokenStartCharIndex,this.getCharIndex()-1,this._tokenStartLine,this._tokenStartColumn);return this.emitToken(t),t}emitEOF(){let t=this.column,e=this.line,i=this._factory.create(this._tokenFactorySourcePair,Ui.EOF,null,Ui.DEFAULT_CHANNEL,this._input.index,this._input.index-1,e,t);return this.emitToken(i),i}getCharIndex(){return this._input.index}getAllTokens(){let t=[],e=this.nextToken();for(;e.type!==Ui.EOF;)t.push(e),e=this.nextToken();return t}notifyListeners(t){let e=this._tokenStartCharIndex,i=this._input.index,r=this._input.getText(e,i),s="token recognition error at: '"+this.getErrorDisplay(r)+"'";this.getErrorListenerDispatch().syntaxError(this,null,this._tokenStartLine,this._tokenStartColumn,s,t)}getErrorDisplay(t){let e=[];for(let i=0;i":t===` +`?"\\n":t===" "?"\\t":t==="\r"?"\\r":t}getCharErrorDisplay(t){return"'"+this.getErrorDisplayForChar(t)+"'"}recover(t){this._input.LA(1)!==Ui.EOF&&(t instanceof ez?this._interp.consume(this._input):this._input.consume())}get inputStream(){return this._input}set inputStream(t){this._input=null,this._tokenFactorySourcePair=[this,this._input],this.reset(),this._input=t,this._tokenFactorySourcePair=[this,this._input]}get sourceName(){return this._input.sourceName}get type(){return this._type}set type(t){this._type=t}get line(){return this._interp.line}set line(t){this._interp.line=t}get column(){return this._interp.column}set column(t){this._interp.column=t}get text(){return this._text!==null?this._text:this._interp.getText(this._input)}set text(t){this._text=t}};Nr.DEFAULT_MODE=0;Nr.MORE=-2;Nr.SKIP=-3;Nr.DEFAULT_TOKEN_CHANNEL=Ui.DEFAULT_CHANNEL;Nr.HIDDEN=Ui.HIDDEN_CHANNEL;Nr.MIN_CHAR_VALUE=0;Nr.MAX_CHAR_VALUE=1114111;S2.exports=Nr});var io=Q((Mce,M2)=>{var tz=Ja(),to=ki(),{SemanticContext:k2}=Nl(),{merge:iz}=bs();function nz(n){return n.hashCodeForConfigSet()}function rz(n,t){return n===t?!0:n===null||t===null?!1:n.equalsForConfigSet(t)}var Of=class n{constructor(t){this.configLookup=new to.Set(nz,rz),this.fullCtx=t===void 0?!0:t,this.readOnly=!1,this.configs=[],this.uniqueAlt=0,this.conflictingAlts=null,this.hasSemanticContext=!1,this.dipsIntoOuterContext=!1,this.cachedHashCode=-1}add(t,e){if(e===void 0&&(e=null),this.readOnly)throw"This set is readonly";t.semanticContext!==k2.NONE&&(this.hasSemanticContext=!0),t.reachesIntoOuterContext>0&&(this.dipsIntoOuterContext=!0);let i=this.configLookup.add(t);if(i===t)return this.cachedHashCode=-1,this.configs.push(t),!0;let r=!this.fullCtx,s=iz(i.context,t.context,r,e);return i.reachesIntoOuterContext=Math.max(i.reachesIntoOuterContext,t.reachesIntoOuterContext),t.precedenceFilterSuppressed&&(i.precedenceFilterSuppressed=!0),i.context=s,!0}getStates(){let t=new to.Set;for(let e=0;e{var{ATNConfigSet:sz}=io(),{Hash:az,Set:oz}=ki(),_y=class{constructor(t,e){this.alt=e,this.pred=t}toString(){return"("+this.pred+", "+this.alt+")"}},by=class n{constructor(t,e){return t===null&&(t=-1),e===null&&(e=new sz),this.stateNumber=t,this.configs=e,this.edges=null,this.isAcceptState=!1,this.prediction=0,this.lexerActionExecutor=null,this.requiresFullContext=!1,this.predicates=null,this}getAltSet(){let t=new oz;if(this.configs!==null)for(let e=0;e",this.predicates!==null?t=t+this.predicates:t=t+this.prediction),t}hashCode(){let t=new az;return t.update(this.configs),t.finish()}};T2.exports={DFAState:by,PredPrediction:_y}});var vy=Q((Ece,E2)=>{var{DFAState:lz}=zl(),{ATNConfigSet:cz}=io(),{getCachedPredictionContext:uz}=bs(),{Map:dz}=ki(),Nf=class{constructor(t,e){return this.atn=t,this.sharedContextCache=e,this}getCachedContext(t){if(this.sharedContextCache===null)return t;let e=new dz;return uz(t,this.sharedContextCache,e)}};Nf.ERROR=new lz(2147483647,new cz);E2.exports=Nf});var I2=Q((Ace,A2)=>{var{hashStuff:hz}=ki(),{LexerIndexedCustomAction:yy}=Yv(),Cy=class n{constructor(t){return this.lexerActions=t===null?[]:t,this.cachedHashCode=hz(t),this}fixOffsetBeforeMatch(t){let e=null;for(let i=0;i{var{Token:Hl}=Qt(),Ff=Xu(),mz=Ja(),Pf=vy(),{DFAState:fz}=zl(),{OrderedATNConfigSet:D2}=io(),{PredictionContext:wy}=bs(),{SingletonPredictionContext:pz}=bs(),{RuleStopState:R2}=gs(),{LexerATNConfig:Fr}=Uu(),{Transition:aa}=Fl(),gz=I2(),{LexerNoViableAltException:_z}=ir();function L2(n){n.index=-1,n.line=0,n.column=-1,n.dfaState=null}var xy=class{constructor(){L2(this)}reset(){L2(this)}},bz=(()=>{class n extends Pf{constructor(e,i,r,s){super(i,s),this.decisionToDFA=r,this.recog=e,this.startIndex=-1,this.line=1,this.column=0,this.mode=Ff.DEFAULT_MODE,this.prevAccept=new xy}copyState(e){this.column=e.column,this.line=e.line,this.mode=e.mode,this.startIndex=e.startIndex}match(e,i){this.match_calls+=1,this.mode=i;let r=e.mark();try{this.startIndex=e.index,this.prevAccept.reset();let s=this.decisionToDFA[i];return s.s0===null?this.matchATN(e):this.execATN(e,s.s0)}finally{e.release(r)}}reset(){this.prevAccept.reset(),this.startIndex=-1,this.line=1,this.column=0,this.mode=Ff.DEFAULT_MODE}matchATN(e){let i=this.atn.modeToStartState[this.mode];n.debug&&console.log("matchATN mode "+this.mode+" start: "+i);let r=this.mode,s=this.computeStartState(e,i),a=s.hasSemanticContext;s.hasSemanticContext=!1;let o=this.addDFAState(s);a||(this.decisionToDFA[this.mode].s0=o);let l=this.execATN(e,o);return n.debug&&console.log("DFA after matchATN: "+this.decisionToDFA[r].toLexerString()),l}execATN(e,i){n.debug&&console.log("start state closure="+i.configs),i.isAcceptState&&this.captureSimState(this.prevAccept,e,i);let r=e.LA(1),s=i;for(;;){n.debug&&console.log("execATN loop starting closure: "+s.configs);let a=this.getExistingTargetState(s,r);if(a===null&&(a=this.computeTargetState(e,s,r)),a===Pf.ERROR||(r!==Hl.EOF&&this.consume(e),a.isAcceptState&&(this.captureSimState(this.prevAccept,e,a),r===Hl.EOF)))break;r=e.LA(1),s=a}return this.failOrAccept(this.prevAccept,e,s.configs,r)}getExistingTargetState(e,i){if(e.edges===null||in.MAX_DFA_EDGE)return null;let r=e.edges[i-n.MIN_DFA_EDGE];return r===void 0&&(r=null),n.debug&&r!==null&&console.log("reuse state "+e.stateNumber+" edge to "+r.stateNumber),r}computeTargetState(e,i,r){let s=new D2;return this.getReachableConfigSet(e,i.configs,s,r),s.items.length===0?(s.hasSemanticContext||this.addDFAEdge(i,r,Pf.ERROR),Pf.ERROR):this.addDFAEdge(i,r,null,s)}failOrAccept(e,i,r,s){if(this.prevAccept.dfaState!==null){let a=e.dfaState.lexerActionExecutor;return this.accept(i,a,this.startIndex,e.index,e.line,e.column),e.dfaState.prediction}else{if(s===Hl.EOF&&i.index===this.startIndex)return Hl.EOF;throw new _z(this.recog,i,this.startIndex,r)}}getReachableConfigSet(e,i,r,s){let a=mz.INVALID_ALT_NUMBER;for(let o=0;on.MAX_DFA_EDGE||(n.debug&&console.log("EDGE "+e+" -> "+r+" upon "+i),e.edges===null&&(e.edges=[]),e.edges[i-n.MIN_DFA_EDGE]=r),r}addDFAState(e){let i=new fz(null,e),r=null;for(let l=0;l{var{Map:vz,BitSet:Sy,AltDict:yz,hashStuff:Cz}=ki(),F2=Ja(),{RuleStopState:P2}=gs(),{ATNConfigSet:wz}=io(),{ATNConfig:xz}=Uu(),{SemanticContext:Sz}=Nl(),Pr={SLL:0,LL:1,LL_EXACT_AMBIG_DETECTION:2,hasSLLConflictTerminatingPrediction:function(n,t){if(Pr.allConfigsInRuleStopStates(t))return!0;if(n===Pr.SLL&&t.hasSemanticContext){let i=new wz;for(let r=0;r1)return!0;return!1},allSubsetsEqual:function(n){let t=null;for(let e=0;e{var B2=If(),$f=Za(),kz=$f.INVALID_INTERVAL,$2=$f.TerminalNode,Mz=$f.TerminalNodeImpl,V2=$f.ErrorNodeImpl,Tz=Ji().Interval,Uf=class extends B2{constructor(t,e){t=t||null,e=e||null,super(t,e),this.ruleIndex=-1,this.children=null,this.start=null,this.stop=null,this.exception=null}copyFrom(t){this.parentCtx=t.parentCtx,this.invokingState=t.invokingState,this.children=null,this.start=t.start,this.stop=t.stop,t.children&&(this.children=[],t.children.map(function(e){e instanceof V2&&(this.children.push(e),e.parentCtx=this)},this))}enterRule(t){}exitRule(t){}addChild(t){return this.children===null&&(this.children=[]),this.children.push(t),t}removeLastChild(){this.children!==null&&this.children.pop()}addTokenNode(t){let e=new Mz(t);return this.addChild(e),e.parentCtx=this,e}addErrorNode(t){let e=new V2(t);return this.addChild(e),e.parentCtx=this,e}getChild(t,e){if(e=e||null,this.children===null||t<0||t>=this.children.length)return null;if(e===null)return this.children[t];for(let i=0;i=this.children.length)return null;for(let i=0;i{var td=ki(),{Set:H2,BitSet:j2,DoubleDict:Ez}=td,hi=Ja(),{ATNState:Vf,RuleStopState:Ju}=gs(),{ATNConfig:Ei}=Uu(),{ATNConfigSet:no}=io(),{Token:ys}=Qt(),{DFAState:Ty,PredPrediction:Az}=zl(),ed=vy(),mi=ky(),W2=If(),Lce=My(),{SemanticContext:oa}=Nl(),{PredictionContext:q2}=bs(),{Interval:Ey}=Ji(),{Transition:la,SetTransition:Iz,NotSetTransition:Dz,RuleTransition:Rz,ActionTransition:Lz}=Fl(),{NoViableAltException:Oz}=ir(),{SingletonPredictionContext:Nz,predictionContextFromRuleContext:Fz}=bs(),Ay=class extends ed{constructor(t,e,i,r){super(e,r),this.parser=t,this.decisionToDFA=i,this.predictionMode=mi.LL,this._input=null,this._startIndex=0,this._outerContext=null,this._dfa=null,this.mergeCache=null,this.debug=!1,this.debug_closure=!1,this.debug_add=!1,this.debug_list_atn_decisions=!1,this.dfa_debug=!1,this.retry_debug=!1}reset(){}adaptivePredict(t,e,i){(this.debug||this.debug_list_atn_decisions)&&console.log("adaptivePredict decision "+e+" exec LA(1)=="+this.getLookaheadName(t)+" line "+t.LT(1).line+":"+t.LT(1).column),this._input=t,this._startIndex=t.index,this._outerContext=i;let r=this.decisionToDFA[e];this._dfa=r;let s=t.mark(),a=t.index;try{let o;if(r.precedenceDfa?o=r.getPrecedenceStartState(this.parser.getPrecedence()):o=r.s0,o===null){i===null&&(i=W2.EMPTY),(this.debug||this.debug_list_atn_decisions)&&console.log("predictATN decision "+r.decision+" exec LA(1)=="+this.getLookaheadName(t)+", outerContext="+i.toString(this.parser.ruleNames));let u=this.computeStartState(r.atnStartState,W2.EMPTY,!1);r.precedenceDfa?(r.s0.configs=u,u=this.applyPrecedenceFilter(u),o=this.addDFAState(r,new Ty(null,u)),r.setPrecedenceStartState(this.parser.getPrecedence(),o)):(o=this.addDFAState(r,new Ty(null,u)),r.s0=o)}let l=this.execATN(r,o,t,a,i);return this.debug&&console.log("DFA after predictATN: "+r.toString(this.parser.literalNames,this.parser.symbolicNames)),l}finally{this._dfa=null,this.mergeCache=null,t.seek(a),t.release(s)}}execATN(t,e,i,r,s){(this.debug||this.debug_list_atn_decisions)&&console.log("execATN decision "+t.decision+" exec LA(1)=="+this.getLookaheadName(i)+" line "+i.LT(1).line+":"+i.LT(1).column);let a,o=e;this.debug&&console.log("s0 = "+e);let l=i.LA(1);for(;;){let c=this.getExistingTargetState(o,l);if(c===null&&(c=this.computeTargetState(t,o,l)),c===ed.ERROR){let u=this.noViableAlt(i,s,o.configs,r);if(i.seek(r),a=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(o.configs,s),a!==hi.INVALID_ALT_NUMBER)return a;throw u}if(c.requiresFullContext&&this.predictionMode!==mi.SLL){let u=null;if(c.predicates!==null){this.debug&&console.log("DFA state has preds in DFA sim LL failover");let m=i.index;if(m!==r&&i.seek(r),u=this.evalSemanticContext(c.predicates,s,!0),u.length===1)return this.debug&&console.log("Full LL avoided"),u.minValue();m!==r&&i.seek(m)}this.dfa_debug&&console.log("ctx sensitive state "+s+" in "+c);let h=this.computeStartState(t.atnStartState,s,!0);return this.reportAttemptingFullContext(t,u,c.configs,r,i.index),a=this.execATNWithFullContext(t,c,h,i,r,s),a}if(c.isAcceptState){if(c.predicates===null)return c.prediction;let u=i.index;i.seek(r);let d=this.evalSemanticContext(c.predicates,s,!0);if(d.length===0)throw this.noViableAlt(i,s,c.configs,r);return d.length===1||this.reportAmbiguity(t,c,r,u,!1,d,c.configs),d.minValue()}o=c,l!==ys.EOF&&(i.consume(),l=i.LA(1))}}getExistingTargetState(t,e){let i=t.edges;return i===null?null:i[e+1]||null}computeTargetState(t,e,i){let r=this.computeReachSet(e.configs,i,!1);if(r===null)return this.addDFAEdge(t,e,i,ed.ERROR),ed.ERROR;let s=new Ty(null,r),a=this.getUniqueAlt(r);if(this.debug){let o=mi.getConflictingAltSubsets(r);console.log("SLL altSubSets="+td.arrayToString(o)+", configs="+r+", predict="+a+", allSubsetsConflict="+mi.allSubsetsConflict(o)+", conflictingAlts="+this.getConflictingAlts(r))}return a!==hi.INVALID_ALT_NUMBER?(s.isAcceptState=!0,s.configs.uniqueAlt=a,s.prediction=a):mi.hasSLLConflictTerminatingPrediction(this.predictionMode,r)&&(s.configs.conflictingAlts=this.getConflictingAlts(r),s.requiresFullContext=!0,s.isAcceptState=!0,s.prediction=s.configs.conflictingAlts.minValue()),s.isAcceptState&&s.configs.hasSemanticContext&&(this.predicateDFAState(s,this.atn.getDecisionState(t.decision)),s.predicates!==null&&(s.prediction=hi.INVALID_ALT_NUMBER)),s=this.addDFAEdge(t,e,i,s),s}predicateDFAState(t,e){let i=e.transitions.length,r=this.getConflictingAltsOrUniqueAlt(t.configs),s=this.getPredsForAmbigAlts(r,t.configs,i);s!==null?(t.predicates=this.getPredicatePredictions(r,s),t.prediction=hi.INVALID_ALT_NUMBER):t.prediction=r.minValue()}execATNWithFullContext(t,e,i,r,s,a){(this.debug||this.debug_list_atn_decisions)&&console.log("execATNWithFullContext "+i);let o=!0,l=!1,c,u=i;r.seek(s);let d=r.LA(1),h=-1;for(;;){if(c=this.computeReachSet(u,d,o),c===null){let f=this.noViableAlt(r,a,u,s);r.seek(s);let p=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(u,a);if(p!==hi.INVALID_ALT_NUMBER)return p;throw f}let m=mi.getConflictingAltSubsets(c);if(this.debug&&console.log("LL altSubSets="+m+", predict="+mi.getUniqueAlt(m)+", resolvesToJustOneViableAlt="+mi.resolvesToJustOneViableAlt(m)),c.uniqueAlt=this.getUniqueAlt(c),c.uniqueAlt!==hi.INVALID_ALT_NUMBER){h=c.uniqueAlt;break}else if(this.predictionMode!==mi.LL_EXACT_AMBIG_DETECTION){if(h=mi.resolvesToJustOneViableAlt(m),h!==hi.INVALID_ALT_NUMBER)break}else if(mi.allSubsetsConflict(m)&&mi.allSubsetsEqual(m)){l=!0,h=mi.getSingleViableAlt(m);break}u=c,d!==ys.EOF&&(r.consume(),d=r.LA(1))}return c.uniqueAlt!==hi.INVALID_ALT_NUMBER?(this.reportContextSensitivity(t,h,c,s,r.index),h):(this.reportAmbiguity(t,e,s,r.index,l,null,c),h)}computeReachSet(t,e,i){this.debug&&console.log("in computeReachSet, starting closure: "+t),this.mergeCache===null&&(this.mergeCache=new Ez);let r=new no(i),s=null;for(let o=0;o0&&(a=this.getAltThatFinishedDecisionEntryRule(s),a!==hi.INVALID_ALT_NUMBER)?a:hi.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(t){let e=[];for(let i=0;i0||r.state instanceof Ju&&r.context.hasEmptyPath())&&e.indexOf(r.alt)<0&&e.push(r.alt)}return e.length===0?hi.INVALID_ALT_NUMBER:Math.min.apply(null,e)}splitAccordingToSemanticValidity(t,e){let i=new no(t.fullCtx),r=new no(t.fullCtx);for(let s=0;s50))throw"problem";if(t.state instanceof Ju)if(t.context.isEmpty())if(s){e.add(t,this.mergeCache);return}else this.debug&&console.log("FALLING off rule "+this.getRuleName(t.state.ruleIndex));else{for(let l=0;l=0&&(m+=1)}this.closureCheckingStopState(h,e,i,d,s,m,o)}}}canDropLoopEntryEdgeInLeftRecursiveRule(t){let e=t.state;if(e.stateType!==Vf.STAR_LOOP_ENTRY||e.stateType!==Vf.STAR_LOOP_ENTRY||!e.isPrecedenceDecision||t.context.isEmpty()||t.context.hasEmptyPath())return!1;let i=t.context.length;for(let o=0;o=0?this.parser.ruleNames[t]:""}getEpsilonTarget(t,e,i,r,s,a){switch(e.serializationType){case la.RULE:return this.ruleTransition(t,e);case la.PRECEDENCE:return this.precedenceTransition(t,e,i,r,s);case la.PREDICATE:return this.predTransition(t,e,i,r,s);case la.ACTION:return this.actionTransition(t,e);case la.EPSILON:return new Ei({state:e.target},t);case la.ATOM:case la.RANGE:case la.SET:return a&&e.matches(ys.EOF,0,1)?new Ei({state:e.target},t):null;default:return null}}actionTransition(t,e){if(this.debug){let i=e.actionIndex===-1?65535:e.actionIndex;console.log("ACTION edge "+e.ruleIndex+":"+i)}return new Ei({state:e.target},t)}precedenceTransition(t,e,i,r,s){this.debug&&(console.log("PRED (collectPredicates="+i+") "+e.precedence+">=_p, ctx dependent=true"),this.parser!==null&&console.log("context surrounding pred is "+td.arrayToString(this.parser.getRuleInvocationStack())));let a=null;if(i&&r)if(s){let o=this._input.index;this._input.seek(this._startIndex);let l=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(o),l&&(a=new Ei({state:e.target},t))}else{let o=oa.andContext(t.semanticContext,e.getPredicate());a=new Ei({state:e.target,semanticContext:o},t)}else a=new Ei({state:e.target},t);return this.debug&&console.log("config from pred transition="+a),a}predTransition(t,e,i,r,s){this.debug&&(console.log("PRED (collectPredicates="+i+") "+e.ruleIndex+":"+e.predIndex+", ctx dependent="+e.isCtxDependent),this.parser!==null&&console.log("context surrounding pred is "+td.arrayToString(this.parser.getRuleInvocationStack())));let a=null;if(i&&(e.isCtxDependent&&r||!e.isCtxDependent))if(s){let o=this._input.index;this._input.seek(this._startIndex);let l=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(o),l&&(a=new Ei({state:e.target},t))}else{let o=oa.andContext(t.semanticContext,e.getPredicate());a=new Ei({state:e.target,semanticContext:o},t)}else a=new Ei({state:e.target},t);return this.debug&&console.log("config from pred transition="+a),a}ruleTransition(t,e){this.debug&&console.log("CALL rule "+this.getRuleName(e.target.ruleIndex)+", ctx="+t.context);let i=e.followState,r=Nz.create(t.context,i.stateNumber);return new Ei({state:e.target,context:r},t)}getConflictingAlts(t){let e=mi.getConflictingAltSubsets(t);return mi.getAlts(e)}getConflictingAltsOrUniqueAlt(t){let e=null;return t.uniqueAlt!==hi.INVALID_ALT_NUMBER?(e=new j2,e.add(t.uniqueAlt)):e=t.conflictingAlts,e}getTokenName(t){if(t===ys.EOF)return"EOF";if(this.parser!==null&&this.parser.literalNames!==null)if(t>=this.parser.literalNames.length&&t>=this.parser.symbolicNames.length)console.log(""+t+" ttype out of range: "+this.parser.literalNames),console.log(""+this.parser.getInputStream().getTokens());else return(this.parser.literalNames[t]||this.parser.symbolicNames[t])+"<"+t+">";return""+t}getLookaheadName(t){return this.getTokenName(t.LA(1))}dumpDeadEndConfigs(t){console.log("dead end configs: ");let e=t.getDeadEndConfigs();for(let i=0;i0){let a=r.state.transitions[0];a instanceof AtomTransition?s="Atom "+this.getTokenName(a.label):a instanceof Iz&&(s=(a instanceof Dz?"~":"")+"Set "+a.set)}console.error(r.toString(this.parser,!0)+":"+s)}}noViableAlt(t,e,i,r){return new Oz(this.parser,t,t.get(r),t.LT(1),i,e)}getUniqueAlt(t){let e=hi.INVALID_ALT_NUMBER;for(let i=0;i "+r+" upon "+this.getTokenName(i)),r===null)return null;if(r=this.addDFAState(t,r),e===null||i<-1||i>this.atn.maxTokenType)return r;if(e.edges===null&&(e.edges=[]),e.edges[i+1]=r,this.debug){let s=this.parser===null?null:this.parser.literalNames,a=this.parser===null?null:this.parser.symbolicNames;console.log(`DFA= +`+t.toString(s,a))}return r}addDFAState(t,e){if(e===ed.ERROR)return e;let i=t.states.get(e);return i!==null?i:(e.stateNumber=t.states.length,e.configs.readOnly||(e.configs.optimizeConfigs(this),e.configs.setReadonly(!0)),t.states.add(e),this.debug&&console.log("adding new DFA state: "+e),e)}reportAttemptingFullContext(t,e,i,r,s){if(this.debug||this.retry_debug){let a=new Ey(r,s+1);console.log("reportAttemptingFullContext decision="+t.decision+":"+i+", input="+this.parser.getTokenStream().getText(a))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportAttemptingFullContext(this.parser,t,r,s,e,i)}reportContextSensitivity(t,e,i,r,s){if(this.debug||this.retry_debug){let a=new Ey(r,s+1);console.log("reportContextSensitivity decision="+t.decision+":"+i+", input="+this.parser.getTokenStream().getText(a))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportContextSensitivity(this.parser,t,r,s,e,i)}reportAmbiguity(t,e,i,r,s,a,o){if(this.debug||this.retry_debug){let l=new Ey(i,r+1);console.log("reportAmbiguity "+a+":"+o+", input="+this.parser.getTokenStream().getText(l))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportAmbiguity(this.parser,t,i,r,s,a,o)}};G2.exports=Ay});var Y2=Q(jl=>{jl.ATN=Ja();jl.ATNDeserializer=ay();jl.LexerATNSimulator=N2();jl.ParserATNSimulator=K2();jl.PredictionMode=ky()});var Iy=Q(()=>{String.prototype.codePointAt||function(){"use strict";var n=function(){let e;try{let i={},r=Object.defineProperty;e=r(i,i,i)&&r}catch{}return e}();let t=function(e){if(this==null)throw TypeError();let i=String(this),r=i.length,s=e?Number(e):0;if(s!==s&&(s=0),s<0||s>=r)return;let a=i.charCodeAt(s),o;return a>=55296&&a<=56319&&r>s+1&&(o=i.charCodeAt(s+1),o>=56320&&o<=57343)?(a-55296)*1024+o-56320+65536:a};n?n(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}()});var id=Q((Uce,Q2)=>{var Pz=ki(),Bf=class{constructor(t,e,i){this.dfa=t,this.literalNames=e||[],this.symbolicNames=i||[]}toString(){if(this.dfa.s0===null)return null;let t="",e=this.dfa.sortedStates();for(let i=0;i"),t=t.concat(this.getStateString(o)),t=t.concat(` +`))}}}return t.length===0?null:t}getEdgeLabel(t){return t===0?"EOF":this.literalNames!==null||this.symbolicNames!==null?this.literalNames[t-1]||this.symbolicNames[t-1]:String.fromCharCode(t-1)}getStateString(t){let e=(t.isAcceptState?":":"")+"s"+t.stateNumber+(t.requiresFullContext?"^":"");return t.isAcceptState?t.predicates!==null?e+"=>"+Pz.arrayToString(t.predicates):e+"=>"+t.prediction.toString():e}},Dy=class extends Bf{constructor(t){super(t,null)}getEdgeLabel(t){return"'"+String.fromCharCode(t)+"'"}};Q2.exports={DFASerializer:Bf,LexerDFASerializer:Dy}});var tA=Q(($ce,eA)=>{var{Set:Z2}=ki(),{DFAState:X2}=zl(),{StarLoopEntryState:Uz}=gs(),{ATNConfigSet:J2}=io(),{DFASerializer:$z}=id(),{LexerDFASerializer:Vz}=id(),Ry=class{constructor(t,e){if(e===void 0&&(e=0),this.atnStartState=t,this.decision=e,this._states=new Z2,this.s0=null,this.precedenceDfa=!1,t instanceof Uz&&t.isPrecedenceDecision){this.precedenceDfa=!0;let i=new X2(null,new J2);i.edges=[],i.isAcceptState=!1,i.requiresFullContext=!1,this.s0=i}}getPrecedenceStartState(t){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";return t<0||t>=this.s0.edges.length?null:this.s0.edges[t]||null}setPrecedenceStartState(t,e){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";t<0||(this.s0.edges[t]=e)}setPrecedenceDfa(t){if(this.precedenceDfa!==t){if(this._states=new Z2,t){let e=new X2(null,new J2);e.edges=[],e.isAcceptState=!1,e.requiresFullContext=!1,this.s0=e}else this.s0=null;this.precedenceDfa=t}}sortedStates(){return this._states.values().sort(function(e,i){return e.stateNumber-i.stateNumber})}toString(t,e){return t=t||null,e=e||null,this.s0===null?"":new $z(this,t,e).toString()}toLexerString(){return this.s0===null?"":new Vz(this).toString()}get states(){return this._states}};eA.exports=Ry});var iA=Q(nd=>{nd.DFA=tA();nd.DFASerializer=id().DFASerializer;nd.LexerDFASerializer=id().LexerDFASerializer;nd.PredPrediction=zl().PredPrediction});var Ly=Q(()=>{String.fromCodePoint||function(){let n=function(){let r;try{let s={},a=Object.defineProperty;r=a(s,s,s)&&a}catch{}return r}(),t=String.fromCharCode,e=Math.floor,i=function(r){let a=[],o,l,c=-1,u=arguments.length;if(!u)return"";let d="";for(;++c1114111||e(h)!==h)throw RangeError("Invalid code point: "+h);h<=65535?a.push(h):(h-=65536,o=(h>>10)+55296,l=h%1024+56320,a.push(o,l)),(c+1===u||a.length>16384)&&(d+=t.apply(null,a),a.length=0)}return d};n?n(String,"fromCodePoint",{value:i,configurable:!0,writable:!0}):String.fromCodePoint=i}()});var rA=Q((Hce,nA)=>{var Bz=Za(),zz=Pv();nA.exports=Le(H({},Bz),{Trees:zz})});var aA=Q((Wce,sA)=>{var{BitSet:Hz}=ki(),{ErrorListener:jz}=Qu(),{Interval:Oy}=Ji(),Ny=class extends jz{constructor(t){super(),t=t||!0,this.exactOnly=t}reportAmbiguity(t,e,i,r,s,a,o){if(this.exactOnly&&!s)return;let l="reportAmbiguity d="+this.getDecisionDescription(t,e)+": ambigAlts="+this.getConflictingAlts(a,o)+", input='"+t.getTokenStream().getText(new Oy(i,r))+"'";t.notifyErrorListeners(l)}reportAttemptingFullContext(t,e,i,r,s,a){let o="reportAttemptingFullContext d="+this.getDecisionDescription(t,e)+", input='"+t.getTokenStream().getText(new Oy(i,r))+"'";t.notifyErrorListeners(o)}reportContextSensitivity(t,e,i,r,s,a){let o="reportContextSensitivity d="+this.getDecisionDescription(t,e)+", input='"+t.getTokenStream().getText(new Oy(i,r))+"'";t.notifyErrorListeners(o)}getDecisionDescription(t,e){let i=e.decision,r=e.atnStartState.ruleIndex,s=t.ruleNames;if(r<0||r>=s.length)return""+i;let a=s[r]||null;return a===null||a.length===0?""+i:`${i} (${a})`}getConflictingAlts(t,e){if(t!==null)return t;let i=new Hz;for(let r=0;r{var{Token:ca}=Qt(),{NoViableAltException:Wz,InputMismatchException:zf,FailedPredicateException:qz,ParseCancellationException:Gz}=ir(),{ATNState:ro}=gs(),{Interval:Kz,IntervalSet:oA}=Ji(),Fy=class{reset(t){}recoverInline(t){}recover(t,e){}sync(t){}inErrorRecoveryMode(t){}reportError(t){}},Hf=class extends Fy{constructor(){super(),this.errorRecoveryMode=!1,this.lastErrorIndex=-1,this.lastErrorStates=null,this.nextTokensContext=null,this.nextTokenState=0}reset(t){this.endErrorCondition(t)}beginErrorCondition(t){this.errorRecoveryMode=!0}inErrorRecoveryMode(t){return this.errorRecoveryMode}endErrorCondition(t){this.errorRecoveryMode=!1,this.lastErrorStates=null,this.lastErrorIndex=-1}reportMatch(t){this.endErrorCondition(t)}reportError(t,e){this.inErrorRecoveryMode(t)||(this.beginErrorCondition(t),e instanceof Wz?this.reportNoViableAlternative(t,e):e instanceof zf?this.reportInputMismatch(t,e):e instanceof qz?this.reportFailedPredicate(t,e):(console.log("unknown recognition error type: "+e.constructor.name),console.log(e.stack),t.notifyErrorListeners(e.getOffendingToken(),e.getMessage(),e)))}recover(t,e){this.lastErrorIndex===t.getInputStream().index&&this.lastErrorStates!==null&&this.lastErrorStates.indexOf(t.state)>=0&&t.consume(),this.lastErrorIndex=t._input.index,this.lastErrorStates===null&&(this.lastErrorStates=[]),this.lastErrorStates.push(t.state);let i=this.getErrorRecoverySet(t);this.consumeUntil(t,i)}sync(t){if(this.inErrorRecoveryMode(t))return;let e=t._interp.atn.states[t.state],i=t.getTokenStream().LA(1),r=t.atn.nextTokens(e);if(r.contains(i)){this.nextTokensContext=null,this.nextTokenState=ro.INVALID_STATE_NUMBER;return}else if(r.contains(ca.EPSILON)){this.nextTokensContext===null&&(this.nextTokensContext=t._ctx,this.nextTokensState=t._stateNumber);return}switch(e.stateType){case ro.BLOCK_START:case ro.STAR_BLOCK_START:case ro.PLUS_BLOCK_START:case ro.STAR_LOOP_ENTRY:if(this.singleTokenDeletion(t)!==null)return;throw new zf(t);case ro.PLUS_LOOP_BACK:case ro.STAR_LOOP_BACK:this.reportUnwantedToken(t);let s=new oA;s.addSet(t.getExpectedTokens());let a=s.addSet(this.getErrorRecoverySet(t));this.consumeUntil(t,a);break;default:}}reportNoViableAlternative(t,e){let i=t.getTokenStream(),r;i!==null?e.startToken.type===ca.EOF?r="":r=i.getText(new Kz(e.startToken.tokenIndex,e.offendingToken.tokenIndex)):r="";let s="no viable alternative at input "+this.escapeWSAndQuote(r);t.notifyErrorListeners(s,e.offendingToken,e)}reportInputMismatch(t,e){let i="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(i,e.offendingToken,e)}reportFailedPredicate(t,e){let r="rule "+t.ruleNames[t._ctx.ruleIndex]+" "+e.message;t.notifyErrorListeners(r,e.offendingToken,e)}reportUnwantedToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);let e=t.getCurrentToken(),i=this.getTokenErrorDisplay(e),r=this.getExpectedTokens(t),s="extraneous input "+i+" expecting "+r.toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(s,e,null)}reportMissingToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);let e=t.getCurrentToken(),r="missing "+this.getExpectedTokens(t).toString(t.literalNames,t.symbolicNames)+" at "+this.getTokenErrorDisplay(e);t.notifyErrorListeners(r,e,null)}recoverInline(t){let e=this.singleTokenDeletion(t);if(e!==null)return t.consume(),e;if(this.singleTokenInsertion(t))return this.getMissingSymbol(t);throw new zf(t)}singleTokenInsertion(t){let e=t.getTokenStream().LA(1),i=t._interp.atn,s=i.states[t.state].transitions[0].target;return i.nextTokens(s,t._ctx).contains(e)?(this.reportMissingToken(t),!0):!1}singleTokenDeletion(t){let e=t.getTokenStream().LA(2);if(this.getExpectedTokens(t).contains(e)){this.reportUnwantedToken(t),t.consume();let r=t.getCurrentToken();return this.reportMatch(t),r}else return null}getMissingSymbol(t){let e=t.getCurrentToken(),r=this.getExpectedTokens(t).first(),s;r===ca.EOF?s="":s="";let a=e,o=t.getTokenStream().LT(-1);return a.type===ca.EOF&&o!==null&&(a=o),t.getTokenFactory().create(a.source,r,s,ca.DEFAULT_CHANNEL,-1,-1,a.line,a.column)}getExpectedTokens(t){return t.getExpectedTokens()}getTokenErrorDisplay(t){if(t===null)return"";let e=t.text;return e===null&&(t.type===ca.EOF?e="":e="<"+t.type+">"),this.escapeWSAndQuote(e)}escapeWSAndQuote(t){return t=t.replace(/\n/g,"\\n"),t=t.replace(/\r/g,"\\r"),t=t.replace(/\t/g,"\\t"),"'"+t+"'"}getErrorRecoverySet(t){let e=t._interp.atn,i=t._ctx,r=new oA;for(;i!==null&&i.invokingState>=0;){let a=e.states[i.invokingState].transitions[0],o=e.nextTokens(a.followState);r.addSet(o),i=i.parentCtx}return r.removeOne(ca.EPSILON),r}consumeUntil(t,e){let i=t.getTokenStream().LA(1);for(;i!==ca.EOF&&!e.contains(i);)t.consume(),i=t.getTokenStream().LA(1)}},Py=class extends Hf{constructor(){super()}recover(t,e){let i=t._ctx;for(;i!==null;)i.exception=e,i=i.parentCtx;throw new Gz(e)}recoverInline(t){this.recover(t,new zf(t))}sync(t){}};lA.exports={BailErrorStrategy:Py,DefaultErrorStrategy:Hf}});var cA=Q((Gce,Ur)=>{Ur.exports.RecognitionException=ir().RecognitionException;Ur.exports.NoViableAltException=ir().NoViableAltException;Ur.exports.LexerNoViableAltException=ir().LexerNoViableAltException;Ur.exports.InputMismatchException=ir().InputMismatchException;Ur.exports.FailedPredicateException=ir().FailedPredicateException;Ur.exports.DiagnosticErrorListener=aA();Ur.exports.BailErrorStrategy=jf().BailErrorStrategy;Ur.exports.DefaultErrorStrategy=jf().DefaultErrorStrategy;Ur.exports.ErrorListener=Qu().ErrorListener});var dA=Q((Kce,uA)=>{var{Token:Yz}=Qt();Iy();Ly();var Uy=class{constructor(t,e){if(this.name="",this.strdata=t,this.decodeToUnicodeCodePoints=e||!1,this._index=0,this.data=[],this.decodeToUnicodeCodePoints)for(let i=0;i=this._size)throw"cannot consume EOF";this._index+=1}LA(t){if(t===0)return 0;t<0&&(t+=1);let e=this._index+t-1;return e<0||e>=this._size?Yz.EOF:this.data[e]}LT(t){return this.LA(t)}mark(){return-1}release(t){}seek(t){if(t<=this._index){this._index=t;return}this._index=Math.min(t,this._size)}getText(t,e){if(e>=this._size&&(e=this._size-1),t>=this._size)return"";if(this.decodeToUnicodeCodePoints){let i="";for(let r=t;r<=e;r++)i+=String.fromCodePoint(this.data[r]);return i}else return this.strdata.slice(t,e+1)}toString(){return this.strdata}get index(){return this._index}get size(){return this._size}};uA.exports=Uy});var mA=Q((Yce,hA)=>{var{Token:so}=Qt(),$y=Xu(),{Interval:Qz}=Ji(),Vy=class{},By=class extends Vy{constructor(t){super(),this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}mark(){return 0}release(t){}reset(){this.seek(0)}seek(t){this.lazyInit(),this.index=this.adjustSeekIndex(t)}get(t){return this.lazyInit(),this.tokens[t]}consume(){let t=!1;if(this.index>=0?this.fetchedEOF?t=this.index0?this.fetch(e)>=e:!0}fetch(t){if(this.fetchedEOF)return 0;for(let e=0;e=this.tokens.length&&(e=this.tokens.length-1);for(let s=t;s=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[e]}adjustSeekIndex(t){return t}lazyInit(){this.index===-1&&this.setup()}setup(){this.sync(0),this.index=this.adjustSeekIndex(0)}setTokenSource(t){this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}nextTokenOnChannel(t,e){if(this.sync(t),t>=this.tokens.length)return-1;let i=this.tokens[t];for(;i.channel!==this.channel;){if(i.type===so.EOF)return-1;t+=1,this.sync(t),i=this.tokens[t]}return t}previousTokenOnChannel(t,e){for(;t>=0&&this.tokens[t].channel!==e;)t-=1;return t}getHiddenTokensToRight(t,e){if(e===void 0&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw""+t+" not in 0.."+this.tokens.length-1;let i=this.nextTokenOnChannel(t+1,$y.DEFAULT_TOKEN_CHANNEL),r=t+1,s=i===-1?this.tokens.length-1:i;return this.filterForChannel(r,s,e)}getHiddenTokensToLeft(t,e){if(e===void 0&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw""+t+" not in 0.."+this.tokens.length-1;let i=this.previousTokenOnChannel(t-1,$y.DEFAULT_TOKEN_CHANNEL);if(i===t-1)return null;let r=i+1,s=t-1;return this.filterForChannel(r,s,e)}filterForChannel(t,e,i){let r=[];for(let s=t;s=this.tokens.length&&(i=this.tokens.length-1);let r="";for(let s=e;s{var fA=Qt().Token,Zz=mA(),zy=class extends Zz{constructor(t,e){super(t),this.channel=e===void 0?fA.DEFAULT_CHANNEL:e}adjustSeekIndex(t){return this.nextTokenOnChannel(t,this.channel)}LB(t){if(t===0||this.index-t<0)return null;let e=this.index,i=1;for(;i<=t;)e=this.previousTokenOnChannel(e-1,this.channel),i+=1;return e<0?null:this.tokens[e]}LT(t){if(this.lazyInit(),t===0)return null;if(t<0)return this.LB(-t);let e=this.index,i=1;for(;i{var{Token:rd}=Qt(),{ParseTreeListener:Xz,TerminalNode:Jz,ErrorNode:e5}=Za(),t5=cy(),{DefaultErrorStrategy:i5}=jf(),n5=ay(),r5=zv(),s5=Xu(),Hy=class extends Xz{constructor(t){super(),this.parser=t}enterEveryRule(t){console.log("enter "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+this.parser._input.LT(1).text)}visitTerminal(t){console.log("consume "+t.symbol+" rule "+this.parser.ruleNames[this.parser._ctx.ruleIndex])}exitEveryRule(t){console.log("exit "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+this.parser._input.LT(1).text)}},a5=(()=>{class n extends t5{constructor(e){super(),this._input=null,this._errHandler=new i5,this._precedenceStack=[],this._precedenceStack.push(0),this._ctx=null,this.buildParseTrees=!0,this._tracer=null,this._parseListeners=null,this._syntaxErrors=0,this.setInputStream(e)}reset(){this._input!==null&&this._input.seek(0),this._errHandler.reset(this),this._ctx=null,this._syntaxErrors=0,this.setTrace(!1),this._precedenceStack=[],this._precedenceStack.push(0),this._interp!==null&&this._interp.reset()}match(e){let i=this.getCurrentToken();return i.type===e?(this._errHandler.reportMatch(this),this.consume()):(i=this._errHandler.recoverInline(this),this.buildParseTrees&&i.tokenIndex===-1&&this._ctx.addErrorNode(i)),i}matchWildcard(){let e=this.getCurrentToken();return e.type>0?(this._errHandler.reportMatch(this),this.consume()):(e=this._errHandler.recoverInline(this),this._buildParseTrees&&e.tokenIndex===-1&&this._ctx.addErrorNode(e)),e}getParseListeners(){return this._parseListeners||[]}addParseListener(e){if(e===null)throw"listener";this._parseListeners===null&&(this._parseListeners=[]),this._parseListeners.push(e)}removeParseListener(e){if(this._parseListeners!==null){let i=this._parseListeners.indexOf(e);i>=0&&this._parseListeners.splice(i,1),this._parseListeners.length===0&&(this._parseListeners=null)}}removeParseListeners(){this._parseListeners=null}triggerEnterRuleEvent(){if(this._parseListeners!==null){let e=this._ctx;this._parseListeners.forEach(function(i){i.enterEveryRule(e),e.enterRule(i)})}}triggerExitRuleEvent(){if(this._parseListeners!==null){let e=this._ctx;this._parseListeners.slice(0).reverse().forEach(function(i){e.exitRule(i),i.exitEveryRule(e)})}}getTokenFactory(){return this._input.tokenSource._factory}setTokenFactory(e){this._input.tokenSource._factory=e}getATNWithBypassAlts(){let e=this.getSerializedATN();if(e===null)throw"The current parser does not support an ATN with bypass alternatives.";let i=this.bypassAltsAtnCache[e];if(i===null){let r=new r5;r.generateRuleBypassTransitions=!0,i=new n5(r).deserialize(e),this.bypassAltsAtnCache[e]=i}return i}compileParseTreePattern(e,i,r){if(r=r||null,r===null&&this.getTokenStream()!==null){let a=this.getTokenStream().tokenSource;a instanceof s5&&(r=a)}if(r===null)throw"Parser can't discover a lexer to use";return new ParseTreePatternMatcher(r,this).compile(e,i)}getInputStream(){return this.getTokenStream()}setInputStream(e){this.setTokenStream(e)}getTokenStream(){return this._input}setTokenStream(e){this._input=null,this.reset(),this._input=e}getCurrentToken(){return this._input.LT(1)}notifyErrorListeners(e,i,r){i=i||null,r=r||null,i===null&&(i=this.getCurrentToken()),this._syntaxErrors+=1;let s=i.line,a=i.column;this.getErrorListenerDispatch().syntaxError(this,i,s,a,e,r)}consume(){let e=this.getCurrentToken();e.type!==rd.EOF&&this.getInputStream().consume();let i=this._parseListeners!==null&&this._parseListeners.length>0;if(this.buildParseTrees||i){let r;this._errHandler.inErrorRecoveryMode(this)?r=this._ctx.addErrorNode(e):r=this._ctx.addTokenNode(e),r.invokingState=this.state,i&&this._parseListeners.forEach(function(s){r instanceof e5||r.isErrorNode!==void 0&&r.isErrorNode()?s.visitErrorNode(r):r instanceof Jz&&s.visitTerminal(r)})}return e}addContextToParseTree(){this._ctx.parentCtx!==null&&this._ctx.parentCtx.addChild(this._ctx)}enterRule(e,i,r){this.state=i,this._ctx=e,this._ctx.start=this._input.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this._ctx.stop=this._input.LT(-1),this.triggerExitRuleEvent(),this.state=this._ctx.invokingState,this._ctx=this._ctx.parentCtx}enterOuterAlt(e,i){e.setAltNumber(i),this.buildParseTrees&&this._ctx!==e&&this._ctx.parentCtx!==null&&(this._ctx.parentCtx.removeLastChild(),this._ctx.parentCtx.addChild(e)),this._ctx=e}getPrecedence(){return this._precedenceStack.length===0?-1:this._precedenceStack[this._precedenceStack.length-1]}enterRecursionRule(e,i,r,s){this.state=i,this._precedenceStack.push(s),this._ctx=e,this._ctx.start=this._input.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(e,i,r){let s=this._ctx;s.parentCtx=e,s.invokingState=i,s.stop=this._input.LT(-1),this._ctx=e,this._ctx.start=s.start,this.buildParseTrees&&this._ctx.addChild(s),this.triggerEnterRuleEvent()}unrollRecursionContexts(e){this._precedenceStack.pop(),this._ctx.stop=this._input.LT(-1);let i=this._ctx,r=this.getParseListeners();if(r!==null&&r.length>0)for(;this._ctx!==e;)this.triggerExitRuleEvent(),this._ctx=this._ctx.parentCtx;else this._ctx=e;i.parentCtx=e,this.buildParseTrees&&e!==null&&e.addChild(i)}getInvokingContext(e){let i=this._ctx;for(;i!==null;){if(i.ruleIndex===e)return i;i=i.parentCtx}return null}precpred(e,i){return i>=this._precedenceStack[this._precedenceStack.length-1]}inContext(e){return!1}isExpectedToken(e){let i=this._interp.atn,r=this._ctx,s=i.states[this.state],a=i.nextTokens(s);if(a.contains(e))return!0;if(!a.contains(rd.EPSILON))return!1;for(;r!==null&&r.invokingState>=0&&a.contains(rd.EPSILON);){let l=i.states[r.invokingState].transitions[0];if(a=i.nextTokens(l.followState),a.contains(e))return!0;r=r.parentCtx}return!!(a.contains(rd.EPSILON)&&e===rd.EOF)}getExpectedTokens(){return this._interp.atn.getExpectedTokens(this.state,this._ctx)}getExpectedTokensWithinCurrentRule(){let e=this._interp.atn,i=e.states[this.state];return e.nextTokens(i)}getRuleIndex(e){let i=this.getRuleIndexMap()[e];return i!==null?i:-1}getRuleInvocationStack(e){e=e||null,e===null&&(e=this._ctx);let i=[];for(;e!==null;){let r=e.ruleIndex;r<0?i.push("n/a"):i.push(this.ruleNames[r]),e=e.parentCtx}return i}getDFAStrings(){return this._interp.decisionToDFA.toString()}dumpDFA(){let e=!1;for(let i=0;i0&&(e&&console.log(),this.printer.println("Decision "+r.decision+":"),this.printer.print(r.toString(this.literalNames,this.symbolicNames)),e=!0)}}getSourceName(){return this._input.sourceName}setTrace(e){e?(this._tracer!==null&&this.removeParseListener(this._tracer),this._tracer=new Hy(this),this.addParseListener(this._tracer)):(this.removeParseListener(this._tracer),this._tracer=null)}}return n.bypassAltsAtnCache={},n})();_A.exports=a5});var sd=Q(ii=>{ii.atn=Y2();ii.codepointat=Iy();ii.dfa=iA();ii.fromcodepoint=Ly();ii.tree=rA();ii.error=cA();ii.Token=Qt().Token;ii.CommonToken=Qt().CommonToken;ii.InputStream=dA();ii.CommonTokenStream=gA();ii.Lexer=Xu();ii.Parser=bA();var o5=bs();ii.PredictionContextCache=o5.PredictionContextCache;ii.ParserRuleContext=My();ii.Interval=Ji().Interval;ii.IntervalSet=Ji().IntervalSet;ii.Utils=ki();ii.LL1Analyzer=Bv().LL1Analyzer});var yA=Q((Jce,vA)=>{var Wl=sd(),l5=["\u608B\uA72A\u8133\uB9ED\u417C\u3BE7\u7786","\u5964A\u0203\b  ","   \x07",` \x07\b \b  + +\v \v`,"\f \f\r \r  ","    ","   ","    ","\x1B \x1B  ",'   ! !" "#'," #$ $% %& &' '( () )","* *+ +, ,- -. ./ /0 0","1 12 23 34 45 56 67 7","8 89 9: :; ;< <= => >","? ?@ @A AB BC CD D","","\x07\x07\b",`\b     + + + +`,"\v\v\f\f\r\r\r","","","","","","","\x1B","\x1B\x1B\x1B",""," ",' !!!!!"""','"""##$$$$$',"$%%%%%%%&","&&&&&&''((","((())))))*","****++++,,",",,,-------",".......///","/////////0","0000011111","1122222233","3334444445","5555555666","6666677777","7777777788","8888888888",`88\u0183 +88\u0185 +88\u0187 +888\u018A`,` +89999:::::`,`::::::\u019A +:\r::\u019B`,`:\u019E +::\u01A0 +::\u01A2 +::::`,`:::::\u01AB +:;;\u01AE +;`,`;\x07;\u01B1 +;\f;;\u01B4\v;<<<\x07`,`<\u01B9 +<\f<<\u01BC\v<<<==`,`=\x07=\u01C3 +=\f==\u01C6\v===>`,`>\u01CB +>\r>>\u01CC>>>\u01D1 +>\r>>\u01D2`,`>\u01D5 +>??\u01D8 +?\r??\u01D9?`,`?@@@@\x07@\u01E2 +@\f@@\u01E5\v`,"@@@@@@AAAA\x07",`A\u01F0 +A\fAA\u01F3\vAAABB`,`BB\u01FA +BCCCCCCD`,"D\u01E3E\x07 \v",`\x07\r\b  +\v\f\r\x1B`,"!#%')+","-/13\x1B579;= ?!A",`"C#E$G%I&K'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:su;w}`,"?\x7F@\x81A\x83\x85\x87\f","2;--//C\\aac|2;C\\aac|",'^^bb))\v\f""',`\f\f +))11^^bbhhppttvv2;CHch\u0214`,"","\x07 ","\v\r","","","","\x1B","!","#%","')+","-/","13","57","9;","=?A","CE","GI","KM","OQ","SUW","Y[","]_","ac","eg","ikm","oq","uw","y{","}\x7F","\x81\x89","\x8B\x07\x8D"," \x8F\v\x91","\r\x93\x95","\x97\x9B","\x9F\xA1","\xA3\x1B\xA6","\xA8\xAA","!\xAD#\xB0%\xB3","'\xB5)\xB7","+\xBA-\xBD","/\xC01\xC9","3\xCD5\xD0","7\xD49\xDC;\xDE","=\xE0?\xE2","A\xE4C\xE9","E\xEFG\xF1","I\xF7K\xFE","M\u0105O\u0107Q\u010C","S\u0112U\u0117","W\u011BY\u0120","[\u0127]\u012E","_\u013Aa\u0140","c\u0147e\u014Dg\u0152","i\u0158k\u0160","m\u0168o\u0175","q\u018Bs\u018F","u\u01ADw\u01B5","y\u01BF{\u01CA}\u01D7","\x7F\u01DD\x81\u01EB","\x83\u01F6\x85\u01FB","\x87\u0201\x89\x8A","\x070\x8A\x8B\x8C","\x07]\x8C\x8D\x8E","\x07_\x8E\b\x8F\x90\x07",`-\x90 +\x91\x92\x07/`,"\x92\f\x93\x94\x07,","\x94\x95\x96\x071","\x96\x97\x98\x07f","\x98\x99\x07k\x99\x9A\x07x\x9A","\x9B\x9C\x07o\x9C","\x9D\x07q\x9D\x9E\x07f\x9E","\x9F\xA0\x07(\xA0","\xA1\xA2\x07~\xA2","\xA3\xA4\x07>\xA4\xA5","\x07?\xA5\xA6\xA7","\x07>\xA7\xA8\xA9","\x07@\xA9\xAA\xAB","\x07@\xAB\xAC\x07?\xAC ","\xAD\xAE\x07k\xAE\xAF\x07u",'\xAF"\xB0\xB1\x07c',"\xB1\xB2\x07u\xB2$\xB3","\xB4\x07?\xB4&\xB5\xB6","\x07\x80\xB6(\xB7\xB8","\x07#\xB8\xB9\x07?\xB9*","\xBA\xBB\x07#\xBB\xBC\x07\x80","\xBC,\xBD\xBE\x07k","\xBE\xBF\x07p\xBF.","\xC0\xC1\x07e\xC1\xC2\x07q\xC2","\xC3\x07p\xC3\xC4\x07v\xC4\xC5","\x07c\xC5\xC6\x07k\xC6\xC7\x07","p\xC7\xC8\x07u\xC80","\xC9\xCA\x07c\xCA\xCB\x07p","\xCB\xCC\x07f\xCC2\xCD","\xCE\x07q\xCE\xCF\x07t\xCF4","\xD0\xD1\x07z\xD1\xD2\x07","q\xD2\xD3\x07t\xD36","\xD4\xD5\x07k\xD5\xD6\x07o","\xD6\xD7\x07r\xD7\xD8\x07n\xD8","\xD9\x07k\xD9\xDA\x07g\xDA\xDB","\x07u\xDB8\xDC\xDD\x07","*\xDD:\xDE\xDF\x07+","\xDF<\xE0\xE1\x07}","\xE1>\xE2\xE3\x07\x7F","\xE3@\xE4\xE5\x07v\xE5","\xE6\x07t\xE6\xE7\x07w\xE7\xE8","\x07g\xE8B\xE9\xEA\x07","h\xEA\xEB\x07c\xEB\xEC\x07n","\xEC\xED\x07u\xED\xEE\x07g","\xEED\xEF\xF0\x07'\xF0","F\xF1\xF2\x07&\xF2\xF3","\x07v\xF3\xF4\x07j\xF4\xF5\x07","k\xF5\xF6\x07u\xF6H","\xF7\xF8\x07&\xF8\xF9\x07k","\xF9\xFA\x07p\xFA\xFB\x07f\xFB","\xFC\x07g\xFC\xFD\x07z\xFDJ","\xFE\xFF\x07&\xFF\u0100\x07","v\u0100\u0101\x07q\u0101\u0102\x07v","\u0102\u0103\x07c\u0103\u0104\x07n","\u0104L\u0105\u0106\x07.\u0106","N\u0107\u0108\x07{\u0108\u0109","\x07g\u0109\u010A\x07c\u010A\u010B\x07","t\u010BP\u010C\u010D\x07o","\u010D\u010E\x07q\u010E\u010F\x07p","\u010F\u0110\x07v\u0110\u0111\x07j\u0111","R\u0112\u0113\x07y\u0113\u0114","\x07g\u0114\u0115\x07g\u0115\u0116\x07","m\u0116T\u0117\u0118\x07f","\u0118\u0119\x07c\u0119\u011A\x07{","\u011AV\u011B\u011C\x07j\u011C","\u011D\x07q\u011D\u011E\x07w\u011E\u011F","\x07t\u011FX\u0120\u0121\x07","o\u0121\u0122\x07k\u0122\u0123\x07p","\u0123\u0124\x07w\u0124\u0125\x07v","\u0125\u0126\x07g\u0126Z\u0127","\u0128\x07u\u0128\u0129\x07g\u0129\u012A","\x07e\u012A\u012B\x07q\u012B\u012C\x07","p\u012C\u012D\x07f\u012D\\","\u012E\u012F\x07o\u012F\u0130\x07k","\u0130\u0131\x07n\u0131\u0132\x07n\u0132","\u0133\x07k\u0133\u0134\x07u\u0134\u0135","\x07g\u0135\u0136\x07e\u0136\u0137\x07","q\u0137\u0138\x07p\u0138\u0139\x07f","\u0139^\u013A\u013B\x07{","\u013B\u013C\x07g\u013C\u013D\x07c\u013D","\u013E\x07t\u013E\u013F\x07u\u013F`","\u0140\u0141\x07o\u0141\u0142\x07","q\u0142\u0143\x07p\u0143\u0144\x07v","\u0144\u0145\x07j\u0145\u0146\x07u","\u0146b\u0147\u0148\x07y\u0148","\u0149\x07g\u0149\u014A\x07g\u014A\u014B","\x07m\u014B\u014C\x07u\u014Cd","\u014D\u014E\x07f\u014E\u014F\x07c","\u014F\u0150\x07{\u0150\u0151\x07u","\u0151f\u0152\u0153\x07j\u0153","\u0154\x07q\u0154\u0155\x07w\u0155\u0156","\x07t\u0156\u0157\x07u\u0157h","\u0158\u0159\x07o\u0159\u015A\x07k","\u015A\u015B\x07p\u015B\u015C\x07w","\u015C\u015D\x07v\u015D\u015E\x07g\u015E","\u015F\x07u\u015Fj\u0160\u0161","\x07u\u0161\u0162\x07g\u0162\u0163\x07","e\u0163\u0164\x07q\u0164\u0165\x07p","\u0165\u0166\x07f\u0166\u0167\x07u","\u0167l\u0168\u0169\x07o\u0169","\u016A\x07k\u016A\u016B\x07n\u016B\u016C","\x07n\u016C\u016D\x07k\u016D\u016E\x07","u\u016E\u016F\x07g\u016F\u0170\x07e","\u0170\u0171\x07q\u0171\u0172\x07p","\u0172\u0173\x07f\u0173\u0174\x07u\u0174","n\u0175\u0176\x07B\u0176\u0177"," \u0177\u0178 \u0178\u0179 ","\u0179\u0186 \u017A\u017B\x07/","\u017B\u017C \u017C\u0184 ","\u017D\u017E\x07/\u017E\u017F \u017F","\u0182 \u0180\u0181\x07V\u0181\u0183","s:\u0182\u0180\u0182\u0183","\u0183\u0185\u0184\u017D","\u0184\u0185\u0185\u0187","\u0186\u017A\u0186\u0187","\u0187\u0189\u0188\u018A\x07","\\\u0189\u0188\u0189\u018A","\u018Ap\u018B\u018C\x07","B\u018C\u018D\x07V\u018D\u018Es:","\u018Er\u018F\u0190 \u0190","\u01A1 \u0191\u0192\x07<\u0192\u0193"," \u0193\u019F \u0194\u0195\x07","<\u0195\u0196 \u0196\u019D ","\u0197\u0199\x070\u0198\u019A ","\u0199\u0198\u019A\u019B","\u019B\u0199\u019B\u019C","\u019C\u019E\u019D\u0197","\u019D\u019E\u019E\u01A0","\u019F\u0194\u019F\u01A0","\u01A0\u01A2\u01A1\u0191","\u01A1\u01A2\u01A2\u01AA","\u01A3\u01AB\x07\\\u01A4\u01A5 \u01A5","\u01A6 \u01A6\u01A7 \u01A7\u01A8","\x07<\u01A8\u01A9 \u01A9\u01AB ","\u01AA\u01A3\u01AA\u01A4","\u01AA\u01AB\u01ABt","\u01AC\u01AE \u01AD\u01AC","\u01AE\u01B2\u01AF\u01B1 ","\u01B0\u01AF\u01B1\u01B4","\u01B2\u01B0\u01B2\u01B3","\u01B3v\u01B4\u01B2","\u01B5\u01BA\x07b\u01B6\u01B9\x83",`B\u01B7\u01B9 +\u01B8\u01B6`,"\u01B8\u01B7\u01B9\u01BC","\u01BA\u01B8\u01BA\u01BB","\u01BB\u01BD\u01BC\u01BA","\u01BD\u01BE\x07b\u01BEx","\u01BF\u01C4\x07)\u01C0\u01C3\x83B\u01C1",`\u01C3 +\x07\u01C2\u01C0\u01C2`,"\u01C1\u01C3\u01C6\u01C4","\u01C2\u01C4\u01C5\u01C5","\u01C7\u01C6\u01C4\u01C7","\u01C8\x07)\u01C8z\u01C9\u01CB"," \u01CA\u01C9\u01CB\u01CC","\u01CC\u01CA\u01CC\u01CD","\u01CD\u01D4\u01CE\u01D0","\x070\u01CF\u01D1 \u01D0\u01CF","\u01D1\u01D2\u01D2\u01D0","\u01D2\u01D3\u01D3\u01D5","\u01D4\u01CE\u01D4\u01D5","\u01D5|\u01D6\u01D8 \b","\u01D7\u01D6\u01D8\u01D9","\u01D9\u01D7\u01D9\u01DA","\u01DA\u01DB\u01DB\u01DC\b?","\u01DC~\u01DD\u01DE\x071\u01DE","\u01DF\x07,\u01DF\u01E3\u01E0","\u01E2\v\u01E1\u01E0\u01E2","\u01E5\u01E3\u01E4\u01E3","\u01E1\u01E4\u01E6\u01E5","\u01E3\u01E6\u01E7\x07,\u01E7","\u01E8\x071\u01E8\u01E9\u01E9","\u01EA\b@\u01EA\x80\u01EB\u01EC","\x071\u01EC\u01ED\x071\u01ED\u01F1",`\u01EE\u01F0 + \u01EF\u01EE`,"\u01F0\u01F3\u01F1\u01EF","\u01F1\u01F2\u01F2\u01F4","\u01F3\u01F1\u01F4\u01F5\bA","\u01F5\x82\u01F6\u01F9\x07^",`\u01F7\u01FA +\u01F8\u01FA\x85C\u01F9`,"\u01F7\u01F9\u01F8\u01FA","\x84\u01FB\u01FC\x07w\u01FC","\u01FD\x87D\u01FD\u01FE\x87D\u01FE\u01FF","\x87D\u01FF\u0200\x87D\u0200\x86","\u0201\u0202 \v\u0202\x88","\u0182\u0184\u0186\u0189\u019B\u019D\u019F","\u01A1\u01AA\u01AD\u01B0\u01B2\u01B8\u01BA\u01C2\u01C4\u01CC\u01D2\u01D4","\u01D9\u01E3\u01F1\u01F9"].join(""),jy=new Wl.atn.ATNDeserializer().deserialize(l5),c5=jy.decisionToState.map((n,t)=>new Wl.dfa.DFA(n,t)),Ie=class extends Wl.Lexer{static grammarFileName="FHIRPath.g4";static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static modeNames=["DEFAULT_MODE"];static literalNames=[null,"'.'","'['","']'","'+'","'-'","'*'","'/'","'div'","'mod'","'&'","'|'","'<='","'<'","'>'","'>='","'is'","'as'","'='","'~'","'!='","'!~'","'in'","'contains'","'and'","'or'","'xor'","'implies'","'('","')'","'{'","'}'","'true'","'false'","'%'","'$this'","'$index'","'$total'","','","'year'","'month'","'week'","'day'","'hour'","'minute'","'second'","'millisecond'","'years'","'months'","'weeks'","'days'","'hours'","'minutes'","'seconds'","'milliseconds'"];static symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"DATETIME","TIME","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT"];static ruleNames=["T__0","T__1","T__2","T__3","T__4","T__5","T__6","T__7","T__8","T__9","T__10","T__11","T__12","T__13","T__14","T__15","T__16","T__17","T__18","T__19","T__20","T__21","T__22","T__23","T__24","T__25","T__26","T__27","T__28","T__29","T__30","T__31","T__32","T__33","T__34","T__35","T__36","T__37","T__38","T__39","T__40","T__41","T__42","T__43","T__44","T__45","T__46","T__47","T__48","T__49","T__50","T__51","T__52","T__53","DATETIME","TIME","TIMEFORMAT","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT","ESC","UNICODE","HEX"];constructor(t){super(t),this._interp=new Wl.atn.LexerATNSimulator(this,jy,c5,new Wl.PredictionContextCache)}get atn(){return jy}};Ie.EOF=Wl.Token.EOF;Ie.T__0=1;Ie.T__1=2;Ie.T__2=3;Ie.T__3=4;Ie.T__4=5;Ie.T__5=6;Ie.T__6=7;Ie.T__7=8;Ie.T__8=9;Ie.T__9=10;Ie.T__10=11;Ie.T__11=12;Ie.T__12=13;Ie.T__13=14;Ie.T__14=15;Ie.T__15=16;Ie.T__16=17;Ie.T__17=18;Ie.T__18=19;Ie.T__19=20;Ie.T__20=21;Ie.T__21=22;Ie.T__22=23;Ie.T__23=24;Ie.T__24=25;Ie.T__25=26;Ie.T__26=27;Ie.T__27=28;Ie.T__28=29;Ie.T__29=30;Ie.T__30=31;Ie.T__31=32;Ie.T__32=33;Ie.T__33=34;Ie.T__34=35;Ie.T__35=36;Ie.T__36=37;Ie.T__37=38;Ie.T__38=39;Ie.T__39=40;Ie.T__40=41;Ie.T__41=42;Ie.T__42=43;Ie.T__43=44;Ie.T__44=45;Ie.T__45=46;Ie.T__46=47;Ie.T__47=48;Ie.T__48=49;Ie.T__49=50;Ie.T__50=51;Ie.T__51=52;Ie.T__52=53;Ie.T__53=54;Ie.DATETIME=55;Ie.TIME=56;Ie.IDENTIFIER=57;Ie.DELIMITEDIDENTIFIER=58;Ie.STRING=59;Ie.NUMBER=60;Ie.WS=61;Ie.COMMENT=62;Ie.LINE_COMMENT=63;vA.exports=Ie});var qy=Q((eue,CA)=>{var u5=sd(),Wy=class extends u5.tree.ParseTreeListener{enterEntireExpression(t){}exitEntireExpression(t){}enterIndexerExpression(t){}exitIndexerExpression(t){}enterPolarityExpression(t){}exitPolarityExpression(t){}enterAdditiveExpression(t){}exitAdditiveExpression(t){}enterMultiplicativeExpression(t){}exitMultiplicativeExpression(t){}enterUnionExpression(t){}exitUnionExpression(t){}enterOrExpression(t){}exitOrExpression(t){}enterAndExpression(t){}exitAndExpression(t){}enterMembershipExpression(t){}exitMembershipExpression(t){}enterInequalityExpression(t){}exitInequalityExpression(t){}enterInvocationExpression(t){}exitInvocationExpression(t){}enterEqualityExpression(t){}exitEqualityExpression(t){}enterImpliesExpression(t){}exitImpliesExpression(t){}enterTermExpression(t){}exitTermExpression(t){}enterTypeExpression(t){}exitTypeExpression(t){}enterInvocationTerm(t){}exitInvocationTerm(t){}enterLiteralTerm(t){}exitLiteralTerm(t){}enterExternalConstantTerm(t){}exitExternalConstantTerm(t){}enterParenthesizedTerm(t){}exitParenthesizedTerm(t){}enterNullLiteral(t){}exitNullLiteral(t){}enterBooleanLiteral(t){}exitBooleanLiteral(t){}enterStringLiteral(t){}exitStringLiteral(t){}enterNumberLiteral(t){}exitNumberLiteral(t){}enterDateTimeLiteral(t){}exitDateTimeLiteral(t){}enterTimeLiteral(t){}exitTimeLiteral(t){}enterQuantityLiteral(t){}exitQuantityLiteral(t){}enterExternalConstant(t){}exitExternalConstant(t){}enterMemberInvocation(t){}exitMemberInvocation(t){}enterFunctionInvocation(t){}exitFunctionInvocation(t){}enterThisInvocation(t){}exitThisInvocation(t){}enterIndexInvocation(t){}exitIndexInvocation(t){}enterTotalInvocation(t){}exitTotalInvocation(t){}enterFunctn(t){}exitFunctn(t){}enterParamList(t){}exitParamList(t){}enterQuantity(t){}exitQuantity(t){}enterUnit(t){}exitUnit(t){}enterDateTimePrecision(t){}exitDateTimePrecision(t){}enterPluralDateTimePrecision(t){}exitPluralDateTimePrecision(t){}enterTypeSpecifier(t){}exitTypeSpecifier(t){}enterQualifiedIdentifier(t){}exitQualifiedIdentifier(t){}enterIdentifier(t){}exitIdentifier(t){}};CA.exports=Wy});var xA=Q((tue,wA)=>{var Ve=sd(),be=qy(),d5=["\u608B\uA72A\u8133\uB9ED\u417C\u3BE7\u7786","\u5964A\x9C  ","   \x07 \x07",`\b \b  + +\v \v\f \f`,"\r \r   ","",`( +`,"","","","","","\x07",`P +\fS\v`,"\\",` +`,`f +`,`k +\x07\x07`,`\x07\x07\x07\x07r +\x07\b`,`\b\b\bw +\b\b\b   \x07`,` ~ + \f  \x81\v  + + +\x85 + +`,`\v\v\v\v\x8A +\v`,"\f\f\r\r",`\x07\x95 +\f\x98`,"\v",`\b +\f`,"\x07\b\v","\x07\f\f","\x1B",'"#)018',";<\xAD '","[\be",` +g\fqs`,"z\x82","\x89\x8B","\x8D\x8F","\x91\x99",' !!"\x07','"#$\b$(',"%& &(\r'#","'%(Q",")*\f\f*+ +P\r,-\f\v",`-. .P\f/0\f +`,"01\x07\r1P\v23\f ",`34 4P +56\f\x076`,"7 7P\b89\f9:"," \x07:P\x07;<\f","<=\x07=P>?\f","?@ \b@PAB\f","BC\x07CPDE\f","EF\x07FP\f\x07GH\f","HI\x07IJJK\x07","KPLM\f\bMN ","NPO)O,","O/O2O5","O8O;","O>OAOD","OGOLPS","QOQRR","SQT\\\f\x07",`U\\\bV\\ +WX\x07`,"XYYZ\x07Z\\","[T[U","[V[W\\\x07",`]^\x07 ^f\x07!_f +`,"`f\x07=af\x07>bf\x079cf\x07",`:df +e]e_`,"e`ea","ebeced","f gj\x07$hk","ik\x07=jhji","k\vlr","mr\bnr\x07%or\x07&","pr\x07'qlqm","qnqoqp","r\rsttv","\x07uw vu","vwwxxy\x07","yz\x7F","{|\x07(|~}{","~\x81\x7F}","\x7F\x80\x80","\x81\x7F\x82\x84\x07>","\x83\x85\v\x84\x83","\x84\x85\x85","\x86\x8A\f\x87\x8A\r\x88","\x8A\x07=\x89\x86\x89","\x87\x89\x88\x8A","\x8B\x8C \v\x8C","\x8D\x8E \f\x8E","\x8F\x90\x90\x1B","\x91\x96\x92\x93","\x07\x93\x95\x94\x92","\x95\x98\x96\x94","\x96\x97\x97","\x98\x96\x99\x9A"," \r\x9A'OQ[ejqv","\x7F\x84\x89\x96"].join(""),Gy=new Ve.atn.ATNDeserializer().deserialize(d5),h5=Gy.decisionToState.map((n,t)=>new Ve.dfa.DFA(n,t)),m5=new Ve.PredictionContextCache,G=class n extends Ve.Parser{static grammarFileName="FHIRPath.g4";static literalNames=[null,"'.'","'['","']'","'+'","'-'","'*'","'/'","'div'","'mod'","'&'","'|'","'<='","'<'","'>'","'>='","'is'","'as'","'='","'~'","'!='","'!~'","'in'","'contains'","'and'","'or'","'xor'","'implies'","'('","')'","'{'","'}'","'true'","'false'","'%'","'$this'","'$index'","'$total'","','","'year'","'month'","'week'","'day'","'hour'","'minute'","'second'","'millisecond'","'years'","'months'","'weeks'","'days'","'hours'","'minutes'","'seconds'","'milliseconds'"];static symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"DATETIME","TIME","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT"];static ruleNames=["entireExpression","expression","term","literal","externalConstant","invocation","functn","paramList","quantity","unit","dateTimePrecision","pluralDateTimePrecision","typeSpecifier","qualifiedIdentifier","identifier"];constructor(t){super(t),this._interp=new Ve.atn.ParserATNSimulator(this,Gy,h5,m5),this.ruleNames=n.ruleNames,this.literalNames=n.literalNames,this.symbolicNames=n.symbolicNames}get atn(){return Gy}sempred(t,e,i){switch(e){case 1:return this.expression_sempred(t,i);default:throw"No predicate with index:"+e}}expression_sempred(t,e){switch(e){case 0:return this.precpred(this._ctx,10);case 1:return this.precpred(this._ctx,9);case 2:return this.precpred(this._ctx,8);case 3:return this.precpred(this._ctx,7);case 4:return this.precpred(this._ctx,5);case 5:return this.precpred(this._ctx,4);case 6:return this.precpred(this._ctx,3);case 7:return this.precpred(this._ctx,2);case 8:return this.precpred(this._ctx,1);case 9:return this.precpred(this._ctx,13);case 10:return this.precpred(this._ctx,12);case 11:return this.precpred(this._ctx,6);default:throw"No predicate with index:"+e}}entireExpression(){let t=new Wf(this,this._ctx,this.state);this.enterRule(t,0,n.RULE_entireExpression);try{this.enterOuterAlt(t,1),this.state=30,this.expression(0),this.state=31,this.match(n.EOF)}catch(e){if(e instanceof Ve.error.RecognitionException)t.exception=e,this._errHandler.reportError(this,e),this._errHandler.recover(this,e);else throw e}finally{this.exitRule()}return t}expression(t){t===void 0&&(t=0);let e=this._ctx,i=this.state,r=new Ue(this,this._ctx,i),s=r,a=2;this.enterRecursionRule(r,2,n.RULE_expression,t);var o=0;try{switch(this.enterOuterAlt(r,1),this.state=37,this._errHandler.sync(this),this._input.LA(1)){case n.T__15:case n.T__16:case n.T__21:case n.T__22:case n.T__27:case n.T__29:case n.T__31:case n.T__32:case n.T__33:case n.T__34:case n.T__35:case n.T__36:case n.DATETIME:case n.TIME:case n.IDENTIFIER:case n.DELIMITEDIDENTIFIER:case n.STRING:case n.NUMBER:r=new rp(this,r),this._ctx=r,s=r,this.state=34,this.term();break;case n.T__3:case n.T__4:r=new Gf(this,r),this._ctx=r,s=r,this.state=35,o=this._input.LA(1),o===n.T__3||o===n.T__4?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this),this.state=36,this.expression(11);break;default:throw new Ve.error.NoViableAltException(this)}this._ctx.stop=this._input.LT(-1),this.state=79,this._errHandler.sync(this);for(var l=this._interp.adaptivePredict(this._input,2,this._ctx);l!=2&&l!=Ve.atn.ATN.INVALID_ALT_NUMBER;){if(l===1){this._parseListeners!==null&&this.triggerExitRuleEvent(),s=r,this.state=77,this._errHandler.sync(this);var c=this._interp.adaptivePredict(this._input,1,this._ctx);switch(c){case 1:if(r=new Yf(this,new Ue(this,e,i)),this.pushNewRecursionContext(r,a,n.RULE_expression),this.state=39,!this.precpred(this._ctx,10))throw new Ve.error.FailedPredicateException(this,"this.precpred(this._ctx, 10)");this.state=40,o=this._input.LA(1),(o&-32)==0&&(1<{var wp=sd(),f5=yA(),p5=xA(),SA=qy(),Ky=class extends wp.error.ErrorListener{constructor(t){super(),this.errors=t}syntaxError(t,e,i,r,s,a){this.errors.push([t,e,i,r,s,a])}},g5=function(n){var t=new wp.InputStream(n),e=new f5(t),i=new wp.CommonTokenStream(e),r=new p5(i);r.buildParseTrees=!0;var s=[],a=new Ky(s);e.removeErrorListeners(),e.addErrorListener(a),r.removeErrorListeners(),r.addErrorListener(a);var o=r.entireExpression();class l extends SA{constructor(){super()}}var c={},u,d=[c];for(let f of Object.getOwnPropertyNames(SA.prototype))f.startsWith("enter")?l.prototype[f]=function(p){let g=d[d.length-1];u={type:f.slice(5)},u.text=p.getText(),g.children||(g.children=[]),g.children.push(u),d.push(u),u.terminalNodeText=[];for(let w of p.children)w.symbol&&u.terminalNodeText.push(w.getText())}:f.startsWith("exit")&&(l.prototype[f]=function(){d.pop()});var h=new l;if(wp.tree.ParseTreeWalker.DEFAULT.walk(h,o),s.length>0){let f=[];for(let p=0,g=s.length;p{var TA=6e4;EA.exports=function(t){var e=new Date(t.getTime()),i=e.getTimezoneOffset();e.setSeconds(0,0);var r=e.getTime()%TA;return i*TA+r}});var DA=Q((rue,IA)=>{function _5(n){return n instanceof Date}IA.exports=_5});var pd=Q((sue,LA)=>{var Yy=AA(),b5=DA(),Qy=36e5,Zy=6e4,v5=2,y5=/[T ]/,C5=/:/,w5=/^(\d{2})$/,x5=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],S5=/^(\d{4})/,k5=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],M5=/^-(\d{2})$/,T5=/^-?(\d{3})$/,E5=/^-?(\d{2})-?(\d{2})$/,A5=/^-?W(\d{2})$/,I5=/^-?W(\d{2})-?(\d{1})$/,D5=/^(\d{2}([.,]\d*)?)$/,R5=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,L5=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,O5=/([Z+-].*)$/,N5=/^(Z)$/,F5=/^([+-])(\d{2})$/,P5=/^([+-])(\d{2}):?(\d{2})$/;function U5(n,t){if(b5(n))return new Date(n.getTime());if(typeof n!="string")return new Date(n);var e=t||{},i=e.additionalDigits;i==null?i=v5:i=Number(i);var r=$5(n),s=V5(r.date,i),a=s.year,o=s.restDateString,l=B5(o,a);if(l){var c=l.getTime(),u=0,d;if(r.time&&(u=z5(r.time)),r.timezone)d=H5(r.timezone)*Zy;else{var h=c+u,m=new Date(h);d=Yy(m);var f=new Date(h);f.setDate(m.getDate()+1);var p=Yy(f)-Yy(m);p>0&&(d+=p)}return new Date(c+u+d)}else return new Date(n)}function $5(n){var t={},e=n.split(y5),i;if(C5.test(e[0])?(t.date=null,i=e[0]):(t.date=e[0],i=e[1]),i){var r=O5.exec(i);r?(t.time=i.replace(r[1],""),t.timezone=r[1]):t.time=i}return t}function V5(n,t){var e=x5[t],i=k5[t],r;if(r=S5.exec(n)||i.exec(n),r){var s=r[1];return{year:parseInt(s,10),restDateString:n.slice(s.length)}}if(r=w5.exec(n)||e.exec(n),r){var a=r[1];return{year:parseInt(a,10)*100,restDateString:n.slice(a.length)}}return{year:null}}function B5(n,t){if(t===null)return null;var e,i,r,s;if(n.length===0)return i=new Date(0),i.setUTCFullYear(t),i;if(e=M5.exec(n),e)return i=new Date(0),r=parseInt(e[1],10)-1,i.setUTCFullYear(t,r),i;if(e=T5.exec(n),e){i=new Date(0);var a=parseInt(e[1],10);return i.setUTCFullYear(t,0,a),i}if(e=E5.exec(n),e){i=new Date(0),r=parseInt(e[1],10)-1;var o=parseInt(e[2],10);return i.setUTCFullYear(t,r,o),i}if(e=A5.exec(n),e)return s=parseInt(e[1],10)-1,RA(t,s);if(e=I5.exec(n),e){s=parseInt(e[1],10)-1;var l=parseInt(e[2],10)-1;return RA(t,s,l)}return null}function z5(n){var t,e,i;if(t=D5.exec(n),t)return e=parseFloat(t[1].replace(",",".")),e%24*Qy;if(t=R5.exec(n),t)return e=parseInt(t[1],10),i=parseFloat(t[2].replace(",",".")),e%24*Qy+i*Zy;if(t=L5.exec(n),t){e=parseInt(t[1],10),i=parseInt(t[2],10);var r=parseFloat(t[3].replace(",","."));return e%24*Qy+i*Zy+r*1e3}return null}function H5(n){var t,e;return t=N5.exec(n),t?0:(t=F5.exec(n),t?(e=parseInt(t[2],10)*60,t[1]==="+"?-e:e):(t=P5.exec(n),t?(e=parseInt(t[2],10)*60+parseInt(t[3],10),t[1]==="+"?-e:e):0))}function RA(n,t,e){t=t||0,e=e||0;var i=new Date(0);i.setUTCFullYear(n,0,4);var r=i.getUTCDay()||7,s=t*7+e+1-r;return i.setUTCDate(i.getUTCDate()+s),i}LA.exports=U5});var gd=Q((aue,OA)=>{var j5=pd();function W5(n,t){var e=j5(n).getTime(),i=Number(t);return new Date(e+i)}OA.exports=W5});var Xy=Q((oue,NA)=>{var q5=gd(),G5=6e4;function K5(n,t){var e=Number(t);return q5(n,e*G5)}NA.exports=K5});var ua=Q(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.Ucum=void 0;var Y5={dimLen_:7,validOps_:[".","/"],codeSep_:": ",valMsgStart_:"Did you mean ",valMsgEnd_:"?",cnvMsgStart_:"We assumed you meant ",cnvMsgEnd_:".",openEmph_:" ->",closeEmph_:"<- ",openEmphHTML_:' ',closeEmphHTML_:" ",bracesMsg_:"FYI - annotations (text in curly braces {}) are ignored, except that an annotation without a leading symbol implies the default unit 1 (the unity).",needMoleWeightMsg_:"Did you wish to convert between mass and moles? The molecular weight of the substance represented by the units is required to perform the conversion.",csvCols_:{"case-sensitive code":"csCode_","LOINC property":"loincProperty_","name (display)":"name_",synonyms:"synonyms_",source:"source_",category:"category_",Guidance:"guidance_"},inputKey_:"case-sensitive code",specUnits_:{"B[10.nV]":"specialUnitOne","[m/s2/Hz^(1/2)]":"specialUnitTwo"}};xp.Ucum=Y5});var FA=Q(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});Sp.Prefix=void 0;var cue=ua(),Jy=class{constructor(t){if(t.code_===void 0||t.code_===null||t.name_===void 0||t.name_===null||t.value_===void 0||t.value_===null||t.exp_===void 0)throw new Error("Prefix constructor called missing one or more parameters. Prefix codes (cs or ci), name, value and exponent must all be specified and all but the exponent must not be null.");this.code_=t.code_,this.ciCode_=t.ciCode_,this.name_=t.name_,this.printSymbol_=t.printSymbol_,typeof t.value_=="string"?this.value_=parseFloat(t.value_):this.value_=t.value_,this.exp_=t.exp_}getValue(){return this.value_}getCode(){return this.code_}getCiCode(){return this.ciCode_}getName(){return this.name_}getPrintSymbol(){return this.printSymbol_}getExp(){return this.exp_}equals(t){return this.code_===t.code_&&this.ciCode_===t.ciCode_&&this.name_===t.name_&&this.printSymbol_===t.printSymbol_&&this.value_===t.value_&&this.exp_===t.exp_}};Sp.Prefix=Jy});var e1=Q(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.PrefixTables=ql.PrefixTablesFactory=void 0;var kp=class{constructor(){this.byCode_={},this.byValue_={}}prefixCount(){return Object.keys(this.byCode_).length}allPrefixesByValue(){let t="",e=Object.keys(this.byValue_),i=e.length;for(let r=0;r{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});Mp.default=void 0;var t1=class{constructor(){this.funcs={},this.funcs.cel={cnvTo:function(t){return t-273.15},cnvFrom:function(t){return t+273.15}},this.funcs.degf={cnvTo:function(t){return t-459.67},cnvFrom:function(t){return t+459.67}},this.funcs.degre={cnvTo:function(t){return t-273.15},cnvFrom:function(t){return t+273.15}},this.funcs.ph={cnvTo:function(t){return-Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,-t)}},this.funcs.ln={cnvTo:function(t){return Math.log(t)},cnvFrom:function(t){return Math.exp(t)}},this.funcs["2ln"]={cnvTo:function(t){return 2*Math.log(t)},cnvFrom:function(t){return Math.exp(t/2)}},this.funcs.lg={cnvTo:function(t){return Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t)}},this.funcs["10lg"]={cnvTo:function(t){return 10*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/10)}},this.funcs["20lg"]={cnvTo:function(t){return 20*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/20)}},this.funcs["2lg"]={cnvTo:function(t){return 2*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/2)}},this.funcs.lgtimes2=this.funcs["2lg"],this.funcs.ld={cnvTo:function(t){return Math.log(t)/Math.LN2},cnvFrom:function(t){return Math.pow(2,t)}},this.funcs["100tan"]={cnvTo:function(t){return Math.tan(t)*100},cnvFrom:function(t){return Math.atan(t/100)}},this.funcs.tanTimes100=this.funcs["100tan"],this.funcs.sqrt={cnvTo:function(t){return Math.sqrt(t)},cnvFrom:function(t){return t*t}},this.funcs.inv={cnvTo:function(t){return 1/t},cnvFrom:function(t){return 1/t}},this.funcs.hpX={cnvTo:function(t){return-this.funcs.lg(t)},cnvFrom:function(t){return Math.pow(10,-t)}},this.funcs.hpC={cnvTo:function(t){return-this.func.ln(t)/this.funcs.ln(100)},cnvFrom:function(t){return Math.pow(100,-t)}},this.funcs.hpM={cnvTo:function(t){return-this.funcs.ln(t)/this.funcs.ln(1e3)},cnvFrom:function(t){return Math.pow(1e3,-t)}},this.funcs.hpQ={cnvTo:function(t){return-this.funcs.ln(t)/this.funcs.ln(5e4)},cnvFrom:function(t){return Math.pow(5e4,-t)}}}forName(t){t=t.toLowerCase();let e=this.funcs[t];if(e===null)throw new Error(`Requested function ${t} is not defined`);return e}isDefined(t){return t=t.toLowerCase(),this.funcs[t]!==null}},X5=new t1;Mp.default=X5});var ao=Q(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});Ep.UnitTables=void 0;var Tp=ua().Ucum,i1=class{constructor(){this.unitNames_={},this.unitCodes_={},this.codeOrder_=[],this.unitStrings_={},this.unitDimensions_={},this.unitSynonyms_={},this.massDimIndex_=0,this.dimVecIndexToBaseUnit_={}}unitsCount(){return Object.keys(this.unitCodes_).length}addUnit(t){t.name_&&this.addUnitName(t),this.addUnitCode(t),this.addUnitString(t);try{t.dim_.getProperty("dimVec_")&&this.addUnitDimension(t)}catch{}if(t.isBase_){let i=t.dim_.dimVec_,r;for(let s=0,a=i.length;r==null&&s=1&&(i=t.substr(e+Tp.codeSep_.length),t=t.substr(0,e));let r=this.unitNames_[t];if(r){let s=r.length;if(i&&s>1){let a=0;for(;r[a].csCode_!==i&&a0&&(i+=e),t[d]==="dim_")u.dim_!==null&&u.dim_!==void 0&&u.dim_.dimVec_ instanceof Array?i+="["+u.dim_.dimVec_.join(",")+"]":i+="";else{let h=u[t[d]];typeof h=="string"?i+=h.replace(/[\n\r]/g," "):i+=h}i+=`\r +`}}return i}printUnits(t,e){t===void 0&&(t=!1),e===void 0&&(e="|");let i="",r=this.codeOrder_.length,s="csCode"+e;t&&(s+="ciCode"+e),s+="name"+e,t&&(s+="isBase"+e),s+="magnitude"+e+"dimension"+e+"from unit(s)"+e+"value"+e+"function"+e,t&&(s+="property"+e+"printSymbol"+e+"synonyms"+e+"source"+e+"class"+e+"isMetric"+e+"variable"+e+"isSpecial"+e+"isAbitrary"+e),s+="comment",i=s+` +`;for(let a=0;a{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.isNumericString=iH;_d.isIntegerUnit=nH;_d.getSynonyms=rH;var tH=ao().UnitTables;function iH(n){let t=""+n;return!isNaN(t)&&!isNaN(parseFloat(t))}function nH(n){return/^\d+$/.test(n)}function rH(n){let t={},e=tH.getInstance(),i={};if(i=e.getUnitBySynonym(n),!i.units)t.status=i.status,t.msg=i.msg;else{t.status="succeeded";let r=i.units.length;t.units=[];for(let s=0;s{"use strict";UA.exports=Number.isFinite||function(n){return!(typeof n!="number"||n!==n||n===1/0||n===-1/0)}});var n1=Q((gue,VA)=>{var sH=$A();VA.exports=Number.isInteger||function(n){return typeof n=="number"&&sH(n)&&Math.floor(n)===n}});var BA=Q(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});Dp.Dimension=void 0;var en=ua(),Ip=n1(),r1=class n{constructor(t){if(en.Ucum.dimLen_===0)throw new Error("Dimension.setDimensionLen must be called before Dimension constructor");if(t==null)this.assignZero();else if(t instanceof Array){if(t.length!==en.Ucum.dimLen_)throw new Error(`Parameter error, incorrect length of vector passed to Dimension constructor, vector = ${JSON.stringify(t)}`);this.dimVec_=[];for(let e=0;e=en.Ucum.dimLen_)throw new Error("Parameter error, invalid element number specified for Dimension constructor");this.assignZero(),this.dimVec_[t]=1}}setElementAt(t,e){if(!Ip(t)||t<0||t>=en.Ucum.dimLen_)throw new Error(`Dimension.setElementAt called with an invalid index position (${t})`);this.dimVec_||this.assignZero(),e==null&&(e=1),this.dimVec_[t]=e}getElementAt(t){if(!Ip(t)||t<0||t>=en.Ucum.dimLen_)throw new Error(`Dimension.getElementAt called with an invalid index position (${t})`);let e=null;return this.dimVec_&&(e=this.dimVec_[t]),e}getProperty(t){let e=t.charAt(t.length-1)==="_"?t:t+"_";return this[e]}toString(){let t=null;return this.dimVec_&&(t="["+this.dimVec_.join(", ")+"]"),t}add(t){if(!t instanceof n)throw new Error(`Dimension.add called with an invalid parameter - ${typeof t} instead of a Dimension object`);if(this.dimVec_&&t.dimVec_)for(let e=0;e{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});Rp.Unit=void 0;var zA=lH(PA()),aH=oH(Ap());function HA(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return HA=function(){return n},n}function oH(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=HA();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}function lH(n){return n&&n.__esModule?n:{default:n}}var cH=ua().Ucum,xs=BA().Dimension,s1,a1=n1(),o1=class n{constructor(t={}){this.isBase_=t.isBase_||!1,this.name_=t.name_||"",this.csCode_=t.csCode_||"",this.ciCode_=t.ciCode_||"",this.property_=t.property_||"",this.magnitude_=t.magnitude_||1,t.dim_===void 0||t.dim_===null?this.dim_=new xs:t.dim_.dimVec_!==void 0?this.dim_=new xs(t.dim_.dimVec_):t.dim_ instanceof xs?this.dim_=t.dim_:t.dim_ instanceof Array||a1(t.dim_)?this.dim_=new xs(t.dim_):this.dim_=new xs,this.printSymbol_=t.printSymbol_||null,this.class_=t.class_||null,this.isMetric_=t.isMetric_||!1,this.variable_=t.variable_||null,this.cnv_=t.cnv_||null,this.cnvPfx_=t.cnvPfx_||1,this.isSpecial_=t.isSpecial_||!1,this.isArbitrary_=t.isArbitrary_||!1,this.moleExp_=t.moleExp_||0,this.synonyms_=t.synonyms_||null,this.source_=t.source_||null,this.loincProperty_=t.loincProperty_||null,this.category_=t.category_||null,this.guidance_=t.guidance_||null,this.csUnitString_=t.csUnitString_||null,this.ciUnitString_=t.ciUnitString_||null,this.baseFactorStr_=t.baseFactorStr_||null,this.baseFactor_=t.baseFactor_||null,this.defError_=t.defError_||!1}assignUnity(){return this.name_="",this.magnitude_=1,this.dim_||(this.dim_=new xs),this.dim_.assignZero(),this.cnv_=null,this.cnvPfx_=1,this}assignVals(t){for(let e in t){let i=!e.charAt(e.length-1)==="_"?e+"_":e;if(this.hasOwnProperty(i))this[i]=t[e];else throw new Error(`Parameter error; ${e} is not a property of a Unit`)}}clone(){let t=new n;return Object.getOwnPropertyNames(this).forEach(e=>{e==="dim_"?this.dim_?t.dim_=this.dim_.clone():t.dim_=null:t[e]=this[e]}),t}assign(t){Object.getOwnPropertyNames(t).forEach(e=>{e==="dim_"?t.dim_?this.dim_=t.dim_.clone():this.dim_=null:this[e]=t[e]})}equals(t){return this.magnitude_===t.magnitude_&&this.cnv_===t.cnv_&&this.cnvPfx_===t.cnvPfx_&&(this.dim_===null&&t.dim_===null||this.dim_.equals(t.dim_))}fullEquals(t){let e=Object.keys(this).sort(),i=Object.keys(t).sort(),r=e.length,s=r===i.length;for(let a=0;a0){let e=t.replace("/","!").replace(".","/").replace("=0;c--){let u=parseInt(a[c]);if(!a1(u)){if((a[c]==="-"||a[c]==="+")&&c--,c{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});Lp.packArray=fH;Lp.unpackArray=pH;var uH=Array.prototype.push;function dH(n){return Object.prototype.toString.call(n)==="[object Object]"}function c1(n){return Object.keys(n).reduce((t,e)=>(dH(n[e])?uH.apply(t,c1(n[e]).map(i=>[e,...[].concat(i)])):t.push(e),t),[])}function u1(n){return n.map(t=>Array.isArray(t)?t:[t])}function hH(n,t){if(n.join()!==u1(c1(t)).join())throw new Error("Object of unusual structure");return n.map(e=>{let i=t;return e.forEach(r=>{if(i=i[r],i===void 0)throw new Error("Object of unusual structure")}),i})}function mH(n,t){let e={};return n.forEach((i,r)=>{let s=e;for(let a=0;a{gH.exports={license:"The following data (prefixes and units) was generated by the UCUM LHC code from the UCUM data and selected LOINC combinations of UCUM units. The license for the UCUM LHC code (demo and library code as well as the combined units) is located at https://github.com/lhncbc/ucum-lhc/blob/LICENSE.md.",prefixes:{config:["code_","ciCode_","name_","printSymbol_","value_","exp_"],data:[["E","EX","exa","E",1e18,"18"],["G","GA","giga","G",1e9,"9"],["Gi","GIB","gibi","Gi",1073741824,null],["Ki","KIB","kibi","Ki",1024,null],["M","MA","mega","M",1e6,"6"],["Mi","MIB","mebi","Mi",1048576,null],["P","PT","peta","P",1e15,"15"],["T","TR","tera","T",1e12,"12"],["Ti","TIB","tebi","Ti",1099511627776,null],["Y","YA","yotta","Y",1e24,"24"],["Z","ZA","zetta","Z",1e21,"21"],["a","A","atto","a",1e-18,"-18"],["c","C","centi","c",.01,"-2"],["d","D","deci","d",.1,"-1"],["da","DA","deka","da",10,"1"],["f","F","femto","f",1e-15,"-15"],["h","H","hecto","h",100,"2"],["k","K","kilo","k",1e3,"3"],["m","M","milli","m",.001,"-3"],["n","N","nano","n",1e-9,"-9"],["p","P","pico","p",1e-12,"-12"],["u","U","micro","\u03BC",1e-6,"-6"],["y","YO","yocto","y",1e-24,"-24"],["z","ZO","zepto","z",1e-21,"-21"]]},units:{config:["isBase_","name_","csCode_","ciCode_","property_","magnitude_",["dim_","dimVec_"],"printSymbol_","class_","isMetric_","variable_","cnv_","cnvPfx_","isSpecial_","isArbitrary_","moleExp_","synonyms_","source_","loincProperty_","category_","guidance_","csUnitString_","ciUnitString_","baseFactorStr_","baseFactor_","defError_"],data:[[!0,"meter","m","M","length",1,[1,0,0,0,0,0,0],"m",null,!1,"L",null,1,!1,!1,0,"meters; metres; distance","UCUM","Len","Clinical","unit of length = 1.09361 yards",null,null,null,null,!1],[!0,"second - time","s","S","time",1,[0,1,0,0,0,0,0],"s",null,!1,"T",null,1,!1,!1,0,"seconds","UCUM","Time","Clinical","",null,null,null,null,!1],[!0,"gram","g","G","mass",1,[0,0,1,0,0,0,0],"g",null,!1,"M",null,1,!1,!1,0,"grams; gm","UCUM","Mass","Clinical","",null,null,null,null,!1],[!0,"radian","rad","RAD","plane angle",1,[0,0,0,1,0,0,0],"rad",null,!1,"A",null,1,!1,!1,0,"radians","UCUM","Angle","Clinical","unit of angular measure where 1 radian = 1/2\u03C0 turn = 57.296 degrees. ",null,null,null,null,!1],[!0,"degree Kelvin","K","K","temperature",1,[0,0,0,0,1,0,0],"K",null,!1,"C",null,1,!1,!1,0,"Kelvin; degrees","UCUM","Temp","Clinical","absolute, thermodynamic temperature scale ",null,null,null,null,!1],[!0,"coulomb","C","C","electric charge",1,[0,0,0,0,0,1,0],"C",null,!1,"Q",null,1,!1,!1,0,"coulombs","UCUM","","Clinical","defined as amount of 1 electron charge = 6.2415093\xD710^18 e, and equivalent to 1 Ampere-second",null,null,null,null,!1],[!0,"candela","cd","CD","luminous intensity",1,[0,0,0,0,0,0,1],"cd",null,!1,"F",null,1,!1,!1,0,"candelas","UCUM","","Clinical","SI base unit of luminous intensity",null,null,null,null,!1],[!1,"the number ten for arbitrary powers","10*","10*","number",10,[0,0,0,0,0,0,0],"10","dimless",!1,null,null,1,!1,!1,0,"10^; 10 to the arbitrary powers","UCUM","Num","Clinical","10* by itself is the same as 10, but users can add digits after the *. For example, 10*3 = 1000.","1","1","10",10,!1],[!1,"the number ten for arbitrary powers","10^","10^","number",10,[0,0,0,0,0,0,0],"10","dimless",!1,null,null,1,!1,!1,0,"10*; 10 to the arbitrary power","UCUM","Num","Clinical","10* by itself is the same as 10, but users can add digits after the *. For example, 10*3 = 1000.","1","1","10",10,!1],[!1,"the number pi","[pi]","[PI]","number",3.141592653589793,[0,0,0,0,0,0,0],"\u03C0","dimless",!1,null,null,1,!1,!1,0,"\u03C0","UCUM","","Constant","a mathematical constant; the ratio of a circle's circumference to its diameter \u2248 3.14159","1","1","3.1415926535897932384626433832795028841971693993751058209749445923",3.141592653589793,!1],[!1,"","%","%","fraction",.01,[0,0,0,0,0,0,0],"%","dimless",!1,null,null,1,!1,!1,0,"percents","UCUM","FR; NFR; MFR; CFR; SFR Rto; etc. ","Clinical","","10*-2","10*-2","1",1,!1],[!1,"parts per thousand","[ppth]","[PPTH]","fraction",.001,[0,0,0,0,0,0,0],"ppth","dimless",!1,null,null,1,!1,!1,0,"ppth; 10^-3","UCUM","MCnc; MCnt","Clinical",`[ppth] is often used in solution concentrations as 1 g/L or 1 g/kg. + +Can be ambigous and would be better if the metric units was used directly. `,"10*-3","10*-3","1",1,!1],[!1,"parts per million","[ppm]","[PPM]","fraction",1e-6,[0,0,0,0,0,0,0],"ppm","dimless",!1,null,null,1,!1,!1,0,"ppm; 10^-6","UCUM","MCnt; MCnc; SFr","Clinical",`[ppm] is often used in solution concentrations as 1 mg/L or 1 mg/kg. Also used to express mole fractions as 1 mmol/mol. + +[ppm] is also used in nuclear magnetic resonance (NMR) to represent chemical shift - the difference of a measured frequency in parts per million from the reference frequency. + +Can be ambigous and would be better if the metric units was used directly. `,"10*-6","10*-6","1",1,!1],[!1,"parts per billion","[ppb]","[PPB]","fraction",1e-9,[0,0,0,0,0,0,0],"ppb","dimless",!1,null,null,1,!1,!1,0,"ppb; 10^-9","UCUM","MCnt; MCnc; SFr","Clinical",`[ppb] is often used in solution concentrations as 1 ug/L or 1 ug/kg. Also used to express mole fractions as 1 umol/mol. + +Can be ambigous and would be better if the metric units was used directly. `,"10*-9","10*-9","1",1,!1],[!1,"parts per trillion","[pptr]","[PPTR]","fraction",1e-12,[0,0,0,0,0,0,0],"pptr","dimless",!1,null,null,1,!1,!1,0,"pptr; 10^-12","UCUM","MCnt; MCnc; SFr","Clinical",`[pptr] is often used in solution concentrations as 1 ng/L or 1 ng/kg. Also used to express mole fractions as 1 nmol/mol. + +Can be ambigous and would be better if the metric units was used directly. `,"10*-12","10*-12","1",1,!1],[!1,"mole","mol","MOL","amount of substance",60221367e16,[0,0,0,0,0,0,0],"mol","si",!0,null,null,1,!1,!1,1,"moles","UCUM","Sub","Clinical","Measure the number of molecules ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"steradian - solid angle","sr","SR","solid angle",1,[0,0,0,2,0,0,0],"sr","si",!0,null,null,1,!1,!1,0,"square radian; rad2; rad^2","UCUM","Angle","Clinical","unit of solid angle in three-dimensional geometry analagous to radian; used in photometry which measures the perceived brightness of object by human eye (e.g. radiant intensity = watt/steradian)","rad2","RAD2","1",1,!1],[!1,"hertz","Hz","HZ","frequency",1,[0,-1,0,0,0,0,0],"Hz","si",!0,null,null,1,!1,!1,0,"Herz; frequency; frequencies","UCUM","Freq; Num","Clinical","equal to one cycle per second","s-1","S-1","1",1,!1],[!1,"newton","N","N","force",1e3,[1,-2,1,0,0,0,0],"N","si",!0,null,null,1,!1,!1,0,"Newtons","UCUM","Force","Clinical","unit of force with base units kg.m/s2","kg.m/s2","KG.M/S2","1",1,!1],[!1,"pascal","Pa","PAL","pressure",1e3,[-1,-2,1,0,0,0,0],"Pa","si",!0,null,null,1,!1,!1,0,"pascals","UCUM","Pres","Clinical","standard unit of pressure equal to 1 newton per square meter (N/m2)","N/m2","N/M2","1",1,!1],[!1,"joule","J","J","energy",1e3,[2,-2,1,0,0,0,0],"J","si",!0,null,null,1,!1,!1,0,"joules","UCUM","Enrg","Clinical","unit of energy defined as the work required to move an object 1 m with a force of 1 N (N.m) or an electric charge of 1 C through 1 V (C.V), or to produce 1 W for 1 s (W.s) ","N.m","N.M","1",1,!1],[!1,"watt","W","W","power",1e3,[2,-3,1,0,0,0,0],"W","si",!0,null,null,1,!1,!1,0,"watts","UCUM","EngRat","Clinical","unit of power equal to 1 Joule per second (J/s) = kg\u22C5m2\u22C5s\u22123","J/s","J/S","1",1,!1],[!1,"Ampere","A","A","electric current",1,[0,-1,0,0,0,1,0],"A","si",!0,null,null,1,!1,!1,0,"Amperes","UCUM","ElpotRat","Clinical","unit of electric current equal to flow rate of electrons equal to 6.2415\xD710^18 elementary charges moving past a boundary in one second or 1 Coulomb/second","C/s","C/S","1",1,!1],[!1,"volt","V","V","electric potential",1e3,[2,-2,1,0,0,-1,0],"V","si",!0,null,null,1,!1,!1,0,"volts","UCUM","Elpot","Clinical","unit of electric potential (voltage) = 1 Joule per Coulomb (J/C)","J/C","J/C","1",1,!1],[!1,"farad","F","F","electric capacitance",.001,[-2,2,-1,0,0,2,0],"F","si",!0,null,null,1,!1,!1,0,"farads; electric capacitance","UCUM","","Clinical","CGS unit of electric capacitance with base units C/V (Coulomb per Volt)","C/V","C/V","1",1,!1],[!1,"ohm","Ohm","OHM","electric resistance",1e3,[2,-1,1,0,0,-2,0],"\u03A9","si",!0,null,null,1,!1,!1,0,"\u03A9; resistance; ohms","UCUM","","Clinical","unit of electrical resistance with units of Volt per Ampere","V/A","V/A","1",1,!1],[!1,"siemens","S","SIE","electric conductance",.001,[-2,1,-1,0,0,2,0],"S","si",!0,null,null,1,!1,!1,0,"Reciprocal ohm; mho; \u03A9\u22121; conductance","UCUM","","Clinical","unit of electric conductance (the inverse of electrical resistance) equal to ohm^-1","Ohm-1","OHM-1","1",1,!1],[!1,"weber","Wb","WB","magnetic flux",1e3,[2,-1,1,0,0,-1,0],"Wb","si",!0,null,null,1,!1,!1,0,"magnetic flux; webers","UCUM","","Clinical","unit of magnetic flux equal to Volt second","V.s","V.S","1",1,!1],[!1,"degree Celsius","Cel","CEL","temperature",1,[0,0,0,0,1,0,0],"\xB0C","si",!0,null,"Cel",1,!0,!1,0,"\xB0C; degrees","UCUM","Temp","Clinical","","K",null,null,1,!1],[!1,"tesla","T","T","magnetic flux density",1e3,[0,-1,1,0,0,-1,0],"T","si",!0,null,null,1,!1,!1,0,"Teslas; magnetic field","UCUM","","Clinical","SI unit of magnetic field strength for magnetic field B equal to 1 Weber/square meter = 1 kg/(s2*A)","Wb/m2","WB/M2","1",1,!1],[!1,"henry","H","H","inductance",1e3,[2,0,1,0,0,-2,0],"H","si",!0,null,null,1,!1,!1,0,"henries; inductance","UCUM","","Clinical","unit of electrical inductance; usually expressed in millihenrys (mH) or microhenrys (uH).","Wb/A","WB/A","1",1,!1],[!1,"lumen","lm","LM","luminous flux",1,[0,0,0,2,0,0,1],"lm","si",!0,null,null,1,!1,!1,0,"luminous flux; lumens","UCUM","","Clinical","unit of luminous flux defined as 1 lm = 1 cd\u22C5sr (candela times sphere)","cd.sr","CD.SR","1",1,!1],[!1,"lux","lx","LX","illuminance",1,[-2,0,0,2,0,0,1],"lx","si",!0,null,null,1,!1,!1,0,"illuminance; luxes","UCUM","","Clinical","unit of illuminance equal to one lumen per square meter. ","lm/m2","LM/M2","1",1,!1],[!1,"becquerel","Bq","BQ","radioactivity",1,[0,-1,0,0,0,0,0],"Bq","si",!0,null,null,1,!1,!1,0,"activity; radiation; becquerels","UCUM","","Clinical","measure of the atomic radiation rate with units s^-1","s-1","S-1","1",1,!1],[!1,"gray","Gy","GY","energy dose",1,[2,-2,0,0,0,0,0],"Gy","si",!0,null,null,1,!1,!1,0,"absorbed doses; ionizing radiation doses; kerma; grays","UCUM","EngCnt","Clinical","unit of ionizing radiation dose with base units of 1 joule of radiation energy per kilogram of matter","J/kg","J/KG","1",1,!1],[!1,"sievert","Sv","SV","dose equivalent",1,[2,-2,0,0,0,0,0],"Sv","si",!0,null,null,1,!1,!1,0,"sieverts; radiation dose quantities; equivalent doses; effective dose; operational dose; committed dose","UCUM","","Clinical","SI unit for radiation dose equivalent equal to 1 Joule/kilogram.","J/kg","J/KG","1",1,!1],[!1,"degree - plane angle","deg","DEG","plane angle",.017453292519943295,[0,0,0,1,0,0,0],"\xB0","iso1000",!1,null,null,1,!1,!1,0,"\xB0; degree of arc; arc degree; arcdegree; angle","UCUM","Angle","Clinical","one degree is equivalent to \u03C0/180 radians.","[pi].rad/360","[PI].RAD/360","2",2,!1],[!1,"gon","gon","GON","plane angle",.015707963267948967,[0,0,0,1,0,0,0],"\u25A1g","iso1000",!1,null,null,1,!1,!1,0,"gon (grade); gons","UCUM","Angle","Nonclinical","unit of plane angle measurement equal to 1/400 circle","deg","DEG","0.9",.9,!1],[!1,"arc minute","'","'","plane angle",.0002908882086657216,[0,0,0,1,0,0,0],"'","iso1000",!1,null,null,1,!1,!1,0,"arcminutes; arcmin; arc minutes; arc mins","UCUM","Angle","Clinical","equal to 1/60 degree; used in optometry and opthamology (e.g. visual acuity tests)","deg/60","DEG/60","1",1,!1],[!1,"arc second","''","''","plane angle",484813681109536e-20,[0,0,0,1,0,0,0],"''","iso1000",!1,null,null,1,!1,!1,0,"arcseconds; arcsecs","UCUM","Angle","Clinical","equal to 1/60 arcminute = 1/3600 degree; used in optometry and opthamology (e.g. visual acuity tests)","'/60","'/60","1",1,!1],[!1,"Liters","l","L","volume",.001,[3,0,0,0,0,0,0],"l","iso1000",!0,null,null,1,!1,!1,0,"cubic decimeters; decimeters cubed; decimetres; dm3; dm^3; litres; liters, LT ","UCUM","Vol","Clinical",'Because lower case "l" can be read as the number "1", though this is a valid UCUM units. UCUM strongly reccomends using "L"',"dm3","DM3","1",1,!1],[!1,"Liters","L","L","volume",.001,[3,0,0,0,0,0,0],"L","iso1000",!0,null,null,1,!1,!1,0,"cubic decimeters; decimeters cubed; decimetres; dm3; dm^3; litres; liters, LT ","UCUM","Vol","Clinical",'Because lower case "l" can be read as the number "1", though this is a valid UCUM units. UCUM strongly reccomends using "L"',"l",null,"1",1,!1],[!1,"are","ar","AR","area",100,[2,0,0,0,0,0,0],"a","iso1000",!0,null,null,1,!1,!1,0,"100 m2; 100 m^2; 100 square meter; meters squared; metres","UCUM","Area","Clinical","metric base unit for area defined as 100 m^2","m2","M2","100",100,!1],[!1,"minute","min","MIN","time",60,[0,1,0,0,0,0,0],"min","iso1000",!1,null,null,1,!1,!1,0,"minutes","UCUM","Time","Clinical","","s","S","60",60,!1],[!1,"hour","h","HR","time",3600,[0,1,0,0,0,0,0],"h","iso1000",!1,null,null,1,!1,!1,0,"hours; hrs; age","UCUM","Time","Clinical","","min","MIN","60",60,!1],[!1,"day","d","D","time",86400,[0,1,0,0,0,0,0],"d","iso1000",!1,null,null,1,!1,!1,0,"days; age; dy; 24 hours; 24 hrs","UCUM","Time","Clinical","","h","HR","24",24,!1],[!1,"tropical year","a_t","ANN_T","time",31556925216e-3,[0,1,0,0,0,0,0],"at","iso1000",!1,null,null,1,!1,!1,0,"solar years; a tropical; years","UCUM","Time","Clinical","has an average of 365.242181 days but is constantly changing.","d","D","365.24219",365.24219,!1],[!1,"mean Julian year","a_j","ANN_J","time",31557600,[0,1,0,0,0,0,0],"aj","iso1000",!1,null,null,1,!1,!1,0,"mean Julian yr; a julian; years","UCUM","Time","Clinical","has an average of 365.25 days, and in everyday use, has been replaced by the Gregorian year. However, this unit is used in astronomy to calculate light year. ","d","D","365.25",365.25,!1],[!1,"mean Gregorian year","a_g","ANN_G","time",31556952,[0,1,0,0,0,0,0],"ag","iso1000",!1,null,null,1,!1,!1,0,"mean Gregorian yr; a gregorian; years","UCUM","Time","Clinical","has an average of 365.2425 days and is the most internationally used civil calendar.","d","D","365.2425",365.2425,!1],[!1,"year","a","ANN","time",31557600,[0,1,0,0,0,0,0],"a","iso1000",!1,null,null,1,!1,!1,0,"years; a; yr, yrs; annum","UCUM","Time","Clinical","","a_j","ANN_J","1",1,!1],[!1,"week","wk","WK","time",604800,[0,1,0,0,0,0,0],"wk","iso1000",!1,null,null,1,!1,!1,0,"weeks; wks","UCUM","Time","Clinical","","d","D","7",7,!1],[!1,"synodal month","mo_s","MO_S","time",2551442976e-3,[0,1,0,0,0,0,0],"mos","iso1000",!1,null,null,1,!1,!1,0,"Moon; synodic month; lunar month; mo-s; mo s; months; moons","UCUM","Time","Nonclinical","has an average of 29.53 days per month, unit used in astronomy","d","D","29.53059",29.53059,!1],[!1,"mean Julian month","mo_j","MO_J","time",2629800,[0,1,0,0,0,0,0],"moj","iso1000",!1,null,null,1,!1,!1,0,"mo-julian; mo Julian; months","UCUM","Time","Clinical","has an average of 30.435 days per month","a_j/12","ANN_J/12","1",1,!1],[!1,"mean Gregorian month","mo_g","MO_G","time",2629746,[0,1,0,0,0,0,0],"mog","iso1000",!1,null,null,1,!1,!1,0,"months; month-gregorian; mo-gregorian","UCUM","Time","Clinical","has an average 30.436875 days per month and is from the most internationally used civil calendar.","a_g/12","ANN_G/12","1",1,!1],[!1,"month","mo","MO","time",2629800,[0,1,0,0,0,0,0],"mo","iso1000",!1,null,null,1,!1,!1,0,"months; duration","UCUM","Time","Clinical","based on Julian calendar which has an average of 30.435 days per month (this unit is used in astronomy but not in everyday life - see mo_g)","mo_j","MO_J","1",1,!1],[!1,"metric ton","t","TNE","mass",1e6,[0,0,1,0,0,0,0],"t","iso1000",!0,null,null,1,!1,!1,0,"tonnes; megagrams; tons","UCUM","Mass","Nonclinical","equal to 1000 kg used in the US (recognized by NIST as metric ton), and internationally (recognized as tonne)","kg","KG","1e3",1e3,!1],[!1,"bar","bar","BAR","pressure",1e8,[-1,-2,1,0,0,0,0],"bar","iso1000",!0,null,null,1,!1,!1,0,"bars","UCUM","Pres","Nonclinical","unit of pressure equal to 10^5 Pascals, primarily used by meteorologists and in weather forecasting","Pa","PAL","1e5",1e5,!1],[!1,"unified atomic mass unit","u","AMU","mass",16605402e-31,[0,0,1,0,0,0,0],"u","iso1000",!0,null,null,1,!1,!1,0,"unified atomic mass units; amu; Dalton; Da","UCUM","Mass","Clinical","the mass of 1/12 of an unbound Carbon-12 atom nuclide equal to 1.6606x10^-27 kg ","g","G","1.6605402e-24",16605402e-31,!1],[!1,"astronomic unit","AU","ASU","length",149597870691,[1,0,0,0,0,0,0],"AU","iso1000",!1,null,null,1,!1,!1,0,"AU; units","UCUM","Len","Clinical","unit of length used in astronomy for measuring distance in Solar system","Mm","MAM","149597.870691",149597.870691,!1],[!1,"parsec","pc","PRS","length",3085678e10,[1,0,0,0,0,0,0],"pc","iso1000",!0,null,null,1,!1,!1,0,"parsecs","UCUM","Len","Clinical","unit of length equal to 3.26 light years, and used to measure large distances to objects outside our Solar System","m","M","3.085678e16",3085678e10,!1],[!1,"velocity of light in a vacuum","[c]","[C]","velocity",299792458,[1,-1,0,0,0,0,0],"c","const",!0,null,null,1,!1,!1,0,"speed of light","UCUM","Vel","Constant","equal to 299792458 m/s (approximately 3 x 10^8 m/s)","m/s","M/S","299792458",299792458,!1],[!1,"Planck constant","[h]","[H]","action",66260755e-38,[2,-1,1,0,0,0,0],"h","const",!0,null,null,1,!1,!1,0,"Planck's constant","UCUM","","Constant","constant = 6.62607004 \xD7 10-34 m2.kg/s; defined as quantum of action","J.s","J.S","6.6260755e-34",66260755e-41,!1],[!1,"Boltzmann constant","[k]","[K]","(unclassified)",1380658e-26,[2,-2,1,0,-1,0,0],"k","const",!0,null,null,1,!1,!1,0,"k; kB","UCUM","","Constant","physical constant relating energy at the individual particle level with temperature = 1.38064852 \xD710^\u221223 J/K","J/K","J/K","1.380658e-23",1380658e-29,!1],[!1,"permittivity of vacuum - electric","[eps_0]","[EPS_0]","electric permittivity",8854187817000001e-30,[-3,2,-1,0,0,2,0],"\u03B50","const",!0,null,null,1,!1,!1,0,"\u03B50; Electric Constant; vacuum permittivity; permittivity of free space ","UCUM","","Constant","approximately equal to 8.854\u2009\xD7 10^\u221212 F/m (farads per meter)","F/m","F/M","8.854187817e-12",8854187817e-21,!1],[!1,"permeability of vacuum - magnetic","[mu_0]","[MU_0]","magnetic permeability",.0012566370614359172,[1,0,1,0,0,-2,0],"\u03BC0","const",!0,null,null,1,!1,!1,0,"\u03BC0; vacuum permeability; permeability of free space; magnetic constant","UCUM","","Constant","equal to 4\u03C0\xD710^\u22127 N/A2 (Newtons per square ampere) \u2248 1.2566\xD710^\u22126 H/m (Henry per meter)","N/A2","4.[PI].10*-7.N/A2","1",12566370614359173e-22,!1],[!1,"elementary charge","[e]","[E]","electric charge",160217733e-27,[0,0,0,0,0,1,0],"e","const",!0,null,null,1,!1,!1,0,"e; q; electric charges","UCUM","","Constant","the magnitude of the electric charge carried by a single electron or proton \u2248 1.60217\xD710^-19 Coulombs","C","C","1.60217733e-19",160217733e-27,!1],[!1,"electronvolt","eV","EV","energy",160217733e-24,[2,-2,1,0,0,0,0],"eV","iso1000",!0,null,null,1,!1,!1,0,"Electron Volts; electronvolts","UCUM","Eng","Clinical","unit of kinetic energy = 1 V * 1.602\xD710^\u221219 C = 1.6\xD710\u221219 Joules","[e].V","[E].V","1",1,!1],[!1,"electron mass","[m_e]","[M_E]","mass",91093897e-35,[0,0,1,0,0,0,0],"me","const",!0,null,null,1,!1,!1,0,"electron rest mass; me","UCUM","Mass","Constant","approximately equal to 9.10938356 \xD7 10-31 kg; defined as the mass of a stationary electron","g","g","9.1093897e-28",91093897e-35,!1],[!1,"proton mass","[m_p]","[M_P]","mass",16726231e-31,[0,0,1,0,0,0,0],"mp","const",!0,null,null,1,!1,!1,0,"mp; masses","UCUM","Mass","Constant","approximately equal to 1.672622\xD710\u221227 kg","g","g","1.6726231e-24",16726231e-31,!1],[!1,"Newtonian constant of gravitation","[G]","[GC]","(unclassified)",667259e-19,[3,-2,-1,0,0,0,0],"G","const",!0,null,null,1,!1,!1,0,"G; gravitational constant; Newton's constant","UCUM","","Constant","gravitational constant = 6.674\xD710\u221211 N\u22C5m2/kg2","m3.kg-1.s-2","M3.KG-1.S-2","6.67259e-11",667259e-16,!1],[!1,"standard acceleration of free fall","[g]","[G]","acceleration",9.80665,[1,-2,0,0,0,0,0],"gn","const",!0,null,null,1,!1,!1,0,"standard gravity; g; \u02610; \u0261n","UCUM","Accel","Constant","defined by standard = 9.80665 m/s2","m/s2","M/S2","980665e-5",9.80665,!1],[!1,"Torr","Torr","Torr","pressure",133322,[-1,-2,1,0,0,0,0],"Torr","const",!1,null,null,1,!1,!1,0,"torrs","UCUM","Pres","Clinical","1 torr = 1 mmHg; unit used to measure blood pressure","Pa","PAL","133.322",133.322,!1],[!1,"standard atmosphere","atm","ATM","pressure",101325e3,[-1,-2,1,0,0,0,0],"atm","const",!1,null,null,1,!1,!1,0,"reference pressure; atmos; std atmosphere","UCUM","Pres","Clinical","defined as being precisely equal to 101,325 Pa","Pa","PAL","101325",101325,!1],[!1,"light-year","[ly]","[LY]","length",9460730472580800,[1,0,0,0,0,0,0],"l.y.","const",!0,null,null,1,!1,!1,0,"light years; ly","UCUM","Len","Constant","unit of astronomal distance = 5.88\xD710^12 mi","[c].a_j","[C].ANN_J","1",1,!1],[!1,"gram-force","gf","GF","force",9.80665,[1,-2,1,0,0,0,0],"gf","const",!0,null,null,1,!1,!1,0,"Newtons; gram forces","UCUM","Force","Clinical","May be specific to unit related to cardiac output","g.[g]","G.[G]","1",1,!1],[!1,"Kayser","Ky","KY","lineic number",100,[-1,0,0,0,0,0,0],"K","cgs",!0,null,null,1,!1,!1,0,"wavenumbers; kaysers","UCUM","InvLen","Clinical","unit of wavelength equal to cm^-1","cm-1","CM-1","1",1,!1],[!1,"Gal","Gal","GL","acceleration",.01,[1,-2,0,0,0,0,0],"Gal","cgs",!0,null,null,1,!1,!1,0,"galileos; Gals","UCUM","Accel","Clinical","unit of acceleration used in gravimetry; equivalent to cm/s2 ","cm/s2","CM/S2","1",1,!1],[!1,"dyne","dyn","DYN","force",.01,[1,-2,1,0,0,0,0],"dyn","cgs",!0,null,null,1,!1,!1,0,"dynes","UCUM","Force","Clinical","unit of force equal to 10^-5 Newtons","g.cm/s2","G.CM/S2","1",1,!1],[!1,"erg","erg","ERG","energy",1e-4,[2,-2,1,0,0,0,0],"erg","cgs",!0,null,null,1,!1,!1,0,"10^-7 Joules, 10-7 Joules; 100 nJ; 100 nanoJoules; 1 dyne cm; 1 g.cm2/s2","UCUM","Eng","Clinical","unit of energy = 1 dyne centimeter = 10^-7 Joules","dyn.cm","DYN.CM","1",1,!1],[!1,"Poise","P","P","dynamic viscosity",100.00000000000001,[-1,-1,1,0,0,0,0],"P","cgs",!0,null,null,1,!1,!1,0,"dynamic viscosity; poises","UCUM","Visc","Clinical","unit of dynamic viscosity where 1 Poise = 1/10 Pascal second","dyn.s/cm2","DYN.S/CM2","1",1,!1],[!1,"Biot","Bi","BI","electric current",10,[0,-1,0,0,0,1,0],"Bi","cgs",!0,null,null,1,!1,!1,0,"Bi; abamperes; abA","UCUM","ElpotRat","Clinical","equal to 10 amperes","A","A","10",10,!1],[!1,"Stokes","St","ST","kinematic viscosity",9999999999999999e-20,[2,-1,0,0,0,0,0],"St","cgs",!0,null,null,1,!1,!1,0,"kinematic viscosity","UCUM","Visc","Clinical","unit of kimematic viscosity with units cm2/s","cm2/s","CM2/S","1",1,!1],[!1,"Maxwell","Mx","MX","flux of magnetic induction",1e-5,[2,-1,1,0,0,-1,0],"Mx","cgs",!0,null,null,1,!1,!1,0,"magnetix flux; Maxwells","UCUM","","Clinical","unit of magnetic flux","Wb","WB","1e-8",1e-8,!1],[!1,"Gauss","G","GS","magnetic flux density",.1,[0,-1,1,0,0,-1,0],"Gs","cgs",!0,null,null,1,!1,!1,0,"magnetic fields; magnetic flux density; induction; B","UCUM","magnetic","Clinical","CGS unit of magnetic flux density, known as magnetic field B; defined as one maxwell unit per square centimeter (see Oersted for CGS unit for H field)","T","T","1e-4",1e-4,!1],[!1,"Oersted","Oe","OE","magnetic field intensity",79.57747154594767,[-1,-1,0,0,0,1,0],"Oe","cgs",!0,null,null,1,!1,!1,0,"H magnetic B field; Oersteds","UCUM","","Clinical","CGS unit of the auxiliary magnetic field H defined as 1 dyne per unit pole = 1000/4\u03C0 amperes per meter (see Gauss for CGS unit for B field)","A/m","/[PI].A/M","250",79.57747154594767,!1],[!1,"Gilbert","Gb","GB","magnetic tension",.7957747154594768,[0,-1,0,0,0,1,0],"Gb","cgs",!0,null,null,1,!1,!1,0,"Gi; magnetomotive force; Gilberts","UCUM","","Clinical","unit of magnetomotive force (magnetic potential)","Oe.cm","OE.CM","1",1,!1],[!1,"stilb","sb","SB","lum. intensity density",1e4,[-2,0,0,0,0,0,1],"sb","cgs",!0,null,null,1,!1,!1,0,"stilbs","UCUM","","Obsolete","unit of luminance; equal to and replaced by unit candela per square centimeter (cd/cm2)","cd/cm2","CD/CM2","1",1,!1],[!1,"Lambert","Lmb","LMB","brightness",3183.098861837907,[-2,0,0,0,0,0,1],"L","cgs",!0,null,null,1,!1,!1,0,"luminance; lamberts","UCUM","","Clinical","unit of luminance defined as 1 lambert = 1/ \u03C0 candela per square meter","cd/cm2/[pi]","CD/CM2/[PI]","1",1,!1],[!1,"phot","ph","PHT","illuminance",1e-4,[-2,0,0,2,0,0,1],"ph","cgs",!0,null,null,1,!1,!1,0,"phots","UCUM","","Clinical","CGS photometric unit of illuminance, or luminous flux through an area equal to 10000 lumens per square meter = 10000 lux","lx","LX","1e-4",1e-4,!1],[!1,"Curie","Ci","CI","radioactivity",37e9,[0,-1,0,0,0,0,0],"Ci","cgs",!0,null,null,1,!1,!1,0,"curies","UCUM","","Obsolete","unit for measuring atomic disintegration rate; replaced by the Bequerel (Bq) unit","Bq","BQ","37e9",37e9,!1],[!1,"Roentgen","R","ROE","ion dose",258e-9,[0,0,-1,0,0,1,0],"R","cgs",!0,null,null,1,!1,!1,0,"r\xF6ntgen; Roentgens","UCUM","","Clinical","unit of exposure of X-rays and gamma rays in air; unit used primarily in the US but strongly discouraged by NIST","C/kg","C/KG","2.58e-4",258e-6,!1],[!1,"radiation absorbed dose","RAD","[RAD]","energy dose",.01,[2,-2,0,0,0,0,0],"RAD","cgs",!0,null,null,1,!1,!1,0,"doses","UCUM","","Clinical","unit of radiation absorbed dose used primarily in the US with base units 100 ergs per gram of material. Also see the SI unit Gray (Gy).","erg/g","ERG/G","100",100,!1],[!1,"radiation equivalent man","REM","[REM]","dose equivalent",.01,[2,-2,0,0,0,0,0],"REM","cgs",!0,null,null,1,!1,!1,0,"Roentgen Equivalent in Man; rems; dose equivalents","UCUM","","Clinical","unit of equivalent dose which measures the effect of radiation on humans equal to 0.01 sievert. Used primarily in the US. Also see SI unit Sievert (Sv)","RAD","[RAD]","1",1,!1],[!1,"inch","[in_i]","[IN_I]","length",.025400000000000002,[1,0,0,0,0,0,0],"in","intcust",!1,null,null,1,!1,!1,0,"inches; in; international inch; body height","UCUM","Len","Clinical","standard unit for inch in the US and internationally","cm","CM","254e-2",2.54,!1],[!1,"foot","[ft_i]","[FT_I]","length",.3048,[1,0,0,0,0,0,0],"ft","intcust",!1,null,null,1,!1,!1,0,"ft; fts; foot; international foot; feet; international feet; height","UCUM","Len","Clinical","unit used in the US and internationally","[in_i]","[IN_I]","12",12,!1],[!1,"yard","[yd_i]","[YD_I]","length",.9144000000000001,[1,0,0,0,0,0,0],"yd","intcust",!1,null,null,1,!1,!1,0,"international yards; yds; distance","UCUM","Len","Clinical","standard unit used in the US and internationally","[ft_i]","[FT_I]","3",3,!1],[!1,"mile","[mi_i]","[MI_I]","length",1609.344,[1,0,0,0,0,0,0],"mi","intcust",!1,null,null,1,!1,!1,0,"international miles; mi I; statute mile","UCUM","Len","Clinical","standard unit used in the US and internationally","[ft_i]","[FT_I]","5280",5280,!1],[!1,"fathom","[fth_i]","[FTH_I]","depth of water",1.8288000000000002,[1,0,0,0,0,0,0],"fth","intcust",!1,null,null,1,!1,!1,0,"international fathoms","UCUM","Len","Nonclinical","unit used in the US and internationally to measure depth of water; same length as the US fathom","[ft_i]","[FT_I]","6",6,!1],[!1,"nautical mile","[nmi_i]","[NMI_I]","length",1852,[1,0,0,0,0,0,0],"n.mi","intcust",!1,null,null,1,!1,!1,0,"nautical mile; nautical miles; international nautical mile; international nautical miles; nm; n.m.; nmi","UCUM","Len","Nonclinical","standard unit used in the US and internationally","m","M","1852",1852,!1],[!1,"knot","[kn_i]","[KN_I]","velocity",.5144444444444445,[1,-1,0,0,0,0,0],"knot","intcust",!1,null,null,1,!1,!1,0,"kn; kt; international knots","UCUM","Vel","Nonclinical","defined as equal to one nautical mile (1.852 km) per hour","[nmi_i]/h","[NMI_I]/H","1",1,!1],[!1,"square inch","[sin_i]","[SIN_I]","area",.0006451600000000001,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"in2; in^2; inches squared; sq inch; inches squared; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[in_i]2","[IN_I]2","1",1,!1],[!1,"square foot","[sft_i]","[SFT_I]","area",.09290304,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"ft2; ft^2; ft squared; sq ft; feet; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[ft_i]2","[FT_I]2","1",1,!1],[!1,"square yard","[syd_i]","[SYD_I]","area",.8361273600000002,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"yd2; yd^2; sq. yds; yards squared; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[yd_i]2","[YD_I]2","1",1,!1],[!1,"cubic inch","[cin_i]","[CIN_I]","volume",16387064000000006e-21,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"in3; in^3; in*3; inches^3; inches*3; cu. in; cu in; cubic inches; inches cubed; cin","UCUM","Vol","Clinical","standard unit used in the US and internationally","[in_i]3","[IN_I]3","1",1,!1],[!1,"cubic foot","[cft_i]","[CFT_I]","volume",.028316846592000004,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"ft3; ft^3; ft*3; cu. ft; cubic feet; cubed; [ft_i]3; international","UCUM","Vol","Clinical","","[ft_i]3","[FT_I]3","1",1,!1],[!1,"cubic yard","[cyd_i]","[CYD_I]","volume",.7645548579840002,[3,0,0,0,0,0,0],"cu.yd","intcust",!1,null,null,1,!1,!1,0,"cubic yards; cubic yds; cu yards; CYs; yards^3; yd^3; yds^3; yd3; yds3","UCUM","Vol","Nonclinical","standard unit used in the US and internationally","[yd_i]3","[YD_I]3","1",1,!1],[!1,"board foot","[bf_i]","[BF_I]","volume",.0023597372160000006,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"BDFT; FBM; BF; board feet; international","UCUM","Vol","Nonclinical","unit of volume used to measure lumber","[in_i]3","[IN_I]3","144",144,!1],[!1,"cord","[cr_i]","[CR_I]","volume",3.6245563637760005,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"crd I; international cords","UCUM","Vol","Nonclinical","unit of measure of dry volume used to measure firewood equal 128 ft3","[ft_i]3","[FT_I]3","128",128,!1],[!1,"mil","[mil_i]","[MIL_I]","length",25400000000000004e-21,[1,0,0,0,0,0,0],"mil","intcust",!1,null,null,1,!1,!1,0,"thou, thousandth; mils; international","UCUM","Len","Clinical","equal to 0.001 international inch","[in_i]","[IN_I]","1e-3",.001,!1],[!1,"circular mil","[cml_i]","[CML_I]","area",5067074790974979e-25,[2,0,0,0,0,0,0],"circ.mil","intcust",!1,null,null,1,!1,!1,0,"circular mils; cml I; international","UCUM","Area","Clinical","","[pi]/4.[mil_i]2","[PI]/4.[MIL_I]2","1",1,!1],[!1,"hand","[hd_i]","[HD_I]","height of horses",.10160000000000001,[1,0,0,0,0,0,0],"hd","intcust",!1,null,null,1,!1,!1,0,"hands; international","UCUM","Len","Nonclinical","used to measure horse height","[in_i]","[IN_I]","4",4,!1],[!1,"foot - US","[ft_us]","[FT_US]","length",.3048006096012192,[1,0,0,0,0,0,0],"ftus","us-lengths",!1,null,null,1,!1,!1,0,"US foot; foot US; us ft; ft us; height; visual distance; feet","UCUM","Len","Obsolete","Better to use [ft_i] which refers to the length used worldwide, including in the US; [ft_us] may be confused with land survey units. ","m/3937","M/3937","1200",1200,!1],[!1,"yard - US","[yd_us]","[YD_US]","length",.9144018288036575,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US yards; us yds; distance","UCUM","Len; Nrat","Obsolete","Better to use [yd_i] which refers to the length used worldwide, including in the US; [yd_us] refers to unit used in land surveys in the US","[ft_us]","[FT_US]","3",3,!1],[!1,"inch - US","[in_us]","[IN_US]","length",.0254000508001016,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US inches; in us; us in; inch US","UCUM","Len","Obsolete","Better to use [in_i] which refers to the length used worldwide, including in the US","[ft_us]/12","[FT_US]/12","1",1,!1],[!1,"rod - US","[rd_us]","[RD_US]","length",5.029210058420117,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US rod; US rods; rd US; US rd","UCUM","Len","Obsolete","","[ft_us]","[FT_US]","16.5",16.5,!1],[!1,"Gunter's chain - US","[ch_us]","[CH_US]","length",20.116840233680467,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"surveyor's chain; Surveyor's chain USA; Gunter\u2019s measurement; surveyor\u2019s measurement; Gunter's Chain USA","UCUM","Len","Obsolete","historical unit used for land survey used only in the US","[rd_us]","[RD_US]","4",4,!1],[!1,"link for Gunter's chain - US","[lk_us]","[LK_US]","length",.20116840233680466,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Links for Gunter's Chain USA","UCUM","Len","Obsolete","","[ch_us]/100","[CH_US]/100","1",1,!1],[!1,"Ramden's chain - US","[rch_us]","[RCH_US]","length",30.480060960121918,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Ramsden's chain; engineer's chains","UCUM","Len","Obsolete","distance measuring device used for\xA0land survey","[ft_us]","[FT_US]","100",100,!1],[!1,"link for Ramden's chain - US","[rlk_us]","[RLK_US]","length",.3048006096012192,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"links for Ramsden's chain","UCUM","Len","Obsolete","","[rch_us]/100","[RCH_US]/100","1",1,!1],[!1,"fathom - US","[fth_us]","[FTH_US]","length",1.828803657607315,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US fathoms; fathom USA; fth us","UCUM","Len","Obsolete","same length as the international fathom - better to use international fathom ([fth_i])","[ft_us]","[FT_US]","6",6,!1],[!1,"furlong - US","[fur_us]","[FUR_US]","length",201.16840233680466,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US furlongs; fur us","UCUM","Len","Nonclinical","distance unit in horse racing","[rd_us]","[RD_US]","40",40,!1],[!1,"mile - US","[mi_us]","[MI_US]","length",1609.3472186944373,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"U.S. Survey Miles; US statute miles; survey mi; US mi; distance","UCUM","Len","Nonclinical","Better to use [mi_i] which refers to the length used worldwide, including in the US","[fur_us]","[FUR_US]","8",8,!1],[!1,"acre - US","[acr_us]","[ACR_US]","area",4046.872609874252,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Acre USA Survey; Acre USA; survey acres","UCUM","Area","Nonclinical","an older unit based on pre 1959 US statute lengths that is still sometimes used in the US only for land survey purposes. ","[rd_us]2","[RD_US]2","160",160,!1],[!1,"square rod - US","[srd_us]","[SRD_US]","area",25.292953811714074,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"rod2; rod^2; sq. rod; rods squared","UCUM","Area","Nonclinical","Used only in the US to measure land area, based on US statute land survey length units","[rd_us]2","[RD_US]2","1",1,!1],[!1,"square mile - US","[smi_us]","[SMI_US]","area",2589998470319521e-9,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"mi2; mi^2; sq mi; miles squared","UCUM","Area","Nonclinical","historical unit used only in the US for land survey purposes (based on the US survey mile), not the internationally recognized [mi_i]","[mi_us]2","[MI_US]2","1",1,!1],[!1,"section","[sct]","[SCT]","area",2589998470319521e-9,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"sct; sections","UCUM","Area","Nonclinical","tract of land approximately equal to 1 mile square containing 640 acres","[mi_us]2","[MI_US]2","1",1,!1],[!1,"township","[twp]","[TWP]","area",9323994493150276e-8,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"twp; townships","UCUM","Area","Nonclinical","land measurement equal to 6 mile square","[sct]","[SCT]","36",36,!1],[!1,"mil - US","[mil_us]","[MIL_US]","length",254000508001016e-19,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"thou, thousandth; mils","UCUM","Len","Obsolete","better to use [mil_i] which is based on the internationally recognized inch","[in_us]","[IN_US]","1e-3",.001,!1],[!1,"inch - British","[in_br]","[IN_BR]","length",.025399980000000003,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"imperial inches; imp in; br in; british inches","UCUM","Len","Obsolete","","cm","CM","2.539998",2.539998,!1],[!1,"foot - British","[ft_br]","[FT_BR]","length",.30479976000000003,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British Foot; Imperial Foot; feet; imp fts; br fts","UCUM","Len","Obsolete","","[in_br]","[IN_BR]","12",12,!1],[!1,"rod - British","[rd_br]","[RD_BR]","length",5.02919604,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British rods; br rd","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","16.5",16.5,!1],[!1,"Gunter's chain - British","[ch_br]","[CH_BR]","length",20.11678416,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Gunter's Chain British; Gunters Chain British; Surveyor's Chain British","UCUM","Len","Obsolete","historical unit used for land survey used only in Great Britain","[rd_br]","[RD_BR]","4",4,!1],[!1,"link for Gunter's chain - British","[lk_br]","[LK_BR]","length",.2011678416,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Links for Gunter's Chain British","UCUM","Len","Obsolete","","[ch_br]/100","[CH_BR]/100","1",1,!1],[!1,"fathom - British","[fth_br]","[FTH_BR]","length",1.82879856,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British fathoms; imperial fathoms; br fth; imp fth","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","6",6,!1],[!1,"pace - British","[pc_br]","[PC_BR]","length",.7619994000000001,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British paces; br pc","UCUM","Len","Nonclinical","traditional unit of length equal to 152.4 centimeters, or 1.52 meter. ","[ft_br]","[FT_BR]","2.5",2.5,!1],[!1,"yard - British","[yd_br]","[YD_BR]","length",.91439928,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British yards; Br yds; distance","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","3",3,!1],[!1,"mile - British","[mi_br]","[MI_BR]","length",1609.3427328000002,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"imperial miles; British miles; English statute miles; imp mi, br mi","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","5280",5280,!1],[!1,"nautical mile - British","[nmi_br]","[NMI_BR]","length",1853.1825408000002,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British nautical miles; Imperial nautical miles; Admiralty miles; n.m. br; imp nm","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","6080",6080,!1],[!1,"knot - British","[kn_br]","[KN_BR]","velocity",.5147729280000001,[1,-1,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British knots; kn br; kt","UCUM","Vel","Obsolete","based on obsolete British nautical mile ","[nmi_br]/h","[NMI_BR]/H","1",1,!1],[!1,"acre","[acr_br]","[ACR_BR]","area",4046.850049400269,[2,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Imperial acres; British; a; ac; ar; acr","UCUM","Area","Nonclinical","the standard unit for acre used in the US and internationally","[yd_br]2","[YD_BR]2","4840",4840,!1],[!1,"gallon - US","[gal_us]","[GAL_US]","fluid volume",.0037854117840000014,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US gallons; US liquid gallon; gal us; Queen Anne's wine gallon","UCUM","Vol","Nonclinical","only gallon unit used in the US; [gal_us] is only used in some other countries in South American and Africa to measure gasoline volume","[in_i]3","[IN_I]3","231",231,!1],[!1,"barrel - US","[bbl_us]","[BBL_US]","fluid volume",.15898729492800007,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"bbl","UCUM","Vol","Nonclinical","[bbl_us] is the standard unit for oil barrel, which is a unit only used in the US to measure the volume oil. ","[gal_us]","[GAL_US]","42",42,!1],[!1,"quart - US","[qt_us]","[QT_US]","fluid volume",.0009463529460000004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US quarts; us qts","UCUM","Vol","Clinical","Used only in the US","[gal_us]/4","[GAL_US]/4","1",1,!1],[!1,"pint - US","[pt_us]","[PT_US]","fluid volume",.0004731764730000002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US pints; pint US; liquid pint; pt us; us pt","UCUM","Vol","Clinical","Used only in the US","[qt_us]/2","[QT_US]/2","1",1,!1],[!1,"gill - US","[gil_us]","[GIL_US]","fluid volume",.00011829411825000005,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US gills; gil us","UCUM","Vol","Nonclinical","only used in the context of alcohol volume in the US","[pt_us]/4","[PT_US]/4","1",1,!1],[!1,"fluid ounce - US","[foz_us]","[FOZ_US]","fluid volume",2957352956250001e-20,[3,0,0,0,0,0,0],"oz fl","us-volumes",!1,null,null,1,!1,!1,0,"US fluid ounces; fl ozs; FO; fl. oz.; foz us","UCUM","Vol","Clinical","unit used only in the US","[gil_us]/4","[GIL_US]/4","1",1,!1],[!1,"fluid dram - US","[fdr_us]","[FDR_US]","fluid volume",36966911953125014e-22,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US fluid drams; fdr us","UCUM","Vol","Nonclinical","equal to 1/8 US fluid ounce = 3.69 mL; used informally to mean small amount of liquor, especially Scotch whiskey","[foz_us]/8","[FOZ_US]/8","1",1,!1],[!1,"minim - US","[min_us]","[MIN_US]","fluid volume",6161151992187503e-23,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"min US; US min; \u264F US","UCUM","Vol","Obsolete","","[fdr_us]/60","[FDR_US]/60","1",1,!1],[!1,"cord - US","[crd_us]","[CRD_US]","fluid volume",3.6245563637760005,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US cord; US cords; crd us; us crd","UCUM","Vol","Nonclinical","unit of measure of dry volume used to measure firewood equal 128 ft3 (the same as international cord [cr_i])","[ft_i]3","[FT_I]3","128",128,!1],[!1,"bushel - US","[bu_us]","[BU_US]","dry volume",.035239070166880014,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US bushels; US bsh; US bu","UCUM","Vol","Obsolete","Historical unit of dry volume that is rarely used today","[in_i]3","[IN_I]3","2150.42",2150.42,!1],[!1,"gallon - historical","[gal_wi]","[GAL_WI]","dry volume",.004404883770860002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"Corn Gallon British; Dry Gallon US; Gallons Historical; Grain Gallon British; Winchester Corn Gallon; historical winchester gallons; wi gal","UCUM","Vol","Obsolete","historical unit of dry volume no longer used","[bu_us]/8","[BU_US]/8","1",1,!1],[!1,"peck - US","[pk_us]","[PK_US]","dry volume",.008809767541720004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US pecks; US pk","UCUM","Vol","Nonclinical","unit of dry volume rarely used today (can be used to measure volume of apples)","[bu_us]/4","[BU_US]/4","1",1,!1],[!1,"dry quart - US","[dqt_us]","[DQT_US]","dry volume",.0011012209427150004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"dry quarts; dry quart US; US dry quart; dry qt; us dry qt; dqt; dqt us","UCUM","Vol","Nonclinical","historical unit of dry volume only in the US, but is rarely used today","[pk_us]/8","[PK_US]/8","1",1,!1],[!1,"dry pint - US","[dpt_us]","[DPT_US]","dry volume",.0005506104713575002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"dry pints; dry pint US; US dry pint; dry pt; dpt; dpt us","UCUM","Vol","Nonclinical","historical unit of dry volume only in the US, but is rarely used today","[dqt_us]/2","[DQT_US]/2","1",1,!1],[!1,"tablespoon - US","[tbs_us]","[TBS_US]","volume",14786764781250006e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"Tbs; tbsp; tbs us; US tablespoons","UCUM","Vol","Clinical","unit defined as 0.5 US fluid ounces or 3 teaspoons - used only in the US. See [tbs_m] for the unit used internationally and in the US for nutrional labelling. ","[foz_us]/2","[FOZ_US]/2","1",1,!1],[!1,"teaspoon - US","[tsp_us]","[TSP_US]","volume",4928921593750002e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"tsp; t; US teaspoons","UCUM","Vol","Nonclinical","unit defined as 1/6 US fluid ounces - used only in the US. See [tsp_m] for the unit used internationally and in the US for nutrional labelling. ","[tbs_us]/3","[TBS_US]/3","1",1,!1],[!1,"cup - US customary","[cup_us]","[CUP_US]","volume",.0002365882365000001,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"cup us; us cups","UCUM","Vol","Nonclinical","Unit defined as 1/2 US pint or 16 US tablespoons \u2248 236.59 mL, which is not the standard unit defined by the FDA of 240 mL - see [cup_m] (metric cup)","[tbs_us]","[TBS_US]","16",16,!1],[!1,"fluid ounce - metric","[foz_m]","[FOZ_M]","fluid volume",29999999999999997e-21,[3,0,0,0,0,0,0],"oz fl","us-volumes",!1,null,null,1,!1,!1,0,"metric fluid ounces; fozs m; fl ozs m","UCUM","Vol","Clinical","unit used only in the US for nutritional labelling, as set by the FDA","mL","ML","30",30,!1],[!1,"cup - US legal","[cup_m]","[CUP_M]","volume",.00023999999999999998,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"cup m; metric cups","UCUM","Vol","Clinical","standard unit equal to 240 mL used in the US for nutritional labelling, as defined by the FDA. Note that this is different from the US customary cup (236.59 mL) and the metric cup used in Commonwealth nations (250 mL).","mL","ML","240",240,!1],[!1,"teaspoon - metric","[tsp_m]","[TSP_M]","volume",49999999999999996e-22,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"tsp; t; metric teaspoons","UCUM","Vol","Clinical","standard unit used in the US and internationally","mL","mL","5",5,!1],[!1,"tablespoon - metric","[tbs_m]","[TBS_M]","volume",14999999999999999e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"metric tablespoons; Tbs; tbsp; T; tbs m","UCUM","Vol","Clinical","standard unit used in the US and internationally","mL","mL","15",15,!1],[!1,"gallon- British","[gal_br]","[GAL_BR]","volume",.004546090000000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial gallons, UK gallons; British gallons; br gal; imp gal","UCUM","Vol","Nonclinical","Used only in Great Britain and other Commonwealth countries","l","L","4.54609",4.54609,!1],[!1,"peck - British","[pk_br]","[PK_BR]","volume",.009092180000000002,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial pecks; British pecks; br pk; imp pk","UCUM","Vol","Nonclinical","unit of dry volume rarely used today (can be used to measure volume of apples)","[gal_br]","[GAL_BR]","2",2,!1],[!1,"bushel - British","[bu_br]","[BU_BR]","volume",.03636872000000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British bushels; imperial; br bsh; br bu; imp","UCUM","Vol","Obsolete","Historical unit of dry volume that is rarely used today","[pk_br]","[PK_BR]","4",4,!1],[!1,"quart - British","[qt_br]","[QT_BR]","volume",.0011365225000000002,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British quarts; imperial quarts; br qts","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[gal_br]/4","[GAL_BR]/4","1",1,!1],[!1,"pint - British","[pt_br]","[PT_BR]","volume",.0005682612500000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British pints; imperial pints; pt br; br pt; imp pt; pt imp","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[qt_br]/2","[QT_BR]/2","1",1,!1],[!1,"gill - British","[gil_br]","[GIL_BR]","volume",.00014206531250000003,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial gills; British gills; imp gill, br gill","UCUM","Vol","Nonclinical","only used in the context of alcohol volume in Great Britain","[pt_br]/4","[PT_BR]/4","1",1,!1],[!1,"fluid ounce - British","[foz_br]","[FOZ_BR]","volume",28413062500000005e-21,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British fluid ounces; Imperial fluid ounces; br fozs; imp fozs; br fl ozs","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[gil_br]/5","[GIL_BR]/5","1",1,!1],[!1,"fluid dram - British","[fdr_br]","[FDR_BR]","volume",35516328125000006e-22,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British fluid drams; fdr br","UCUM","Vol","Nonclinical","equal to 1/8 Imperial fluid ounce = 3.55 mL; used informally to mean small amount of liquor, especially Scotch whiskey","[foz_br]/8","[FOZ_BR]/8","1",1,!1],[!1,"minim - British","[min_br]","[MIN_BR]","volume",5919388020833334e-23,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"min br; br min; \u264F br","UCUM","Vol","Obsolete","","[fdr_br]/60","[FDR_BR]/60","1",1,!1],[!1,"grain","[gr]","[GR]","mass",.06479891,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"gr; grains","UCUM","Mass","Nonclinical","an apothecary measure of mass rarely used today","mg","MG","64.79891",64.79891,!1],[!1,"pound","[lb_av]","[LB_AV]","mass",453.59237,[0,0,1,0,0,0,0],"lb","avoirdupois",!1,null,null,1,!1,!1,0,"avoirdupois pounds, international pounds; av lbs; pounds","UCUM","Mass","Clinical","standard unit used in the US and internationally","[gr]","[GR]","7000",7e3,!1],[!1,"pound force - US","[lbf_av]","[LBF_AV]","force",4448.2216152605,[1,-2,1,0,0,0,0],"lbf","const",!1,null,null,1,!1,!1,0,"lbfs; US lbf; US pound forces","UCUM","Force","Clinical","only rarely needed in health care - see [lb_av] which is the more common unit to express weight","[lb_av].[g]","[LB_AV].[G]","1",1,!1],[!1,"ounce","[oz_av]","[OZ_AV]","mass",28.349523125,[0,0,1,0,0,0,0],"oz","avoirdupois",!1,null,null,1,!1,!1,0,"ounces; international ounces; avoirdupois ounces; av ozs","UCUM","Mass","Clinical","standard unit used in the US and internationally","[lb_av]/16","[LB_AV]/16","1",1,!1],[!1,"Dram mass unit","[dr_av]","[DR_AV]","mass",1.7718451953125,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"Dram; drams avoirdupois; avoidupois dram; international dram","UCUM","Mass","Clinical","unit from the avoirdupois system, which is used in the US and internationally","[oz_av]/16","[OZ_AV]/16","1",1,!1],[!1,"short hundredweight","[scwt_av]","[SCWT_AV]","mass",45359.237,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"hundredweights; s cwt; scwt; avoirdupois","UCUM","Mass","Nonclinical","Used only in the US to equal 100 pounds","[lb_av]","[LB_AV]","100",100,!1],[!1,"long hundredweight","[lcwt_av]","[LCWT_AV]","mass",50802.345440000005,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"imperial hundredweights; imp cwt; lcwt; avoirdupois","UCUM","Mass","Obsolete","","[lb_av]","[LB_AV]","112",112,!1],[!1,"short ton - US","[ston_av]","[STON_AV]","mass",907184.74,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"ton; US tons; avoirdupois tons","UCUM","Mass","Clinical","Used only in the US","[scwt_av]","[SCWT_AV]","20",20,!1],[!1,"long ton - British","[lton_av]","[LTON_AV]","mass",1.0160469088000001e6,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"imperial tons; weight tons; British long tons; long ton avoirdupois","UCUM","Mass","Nonclinical","Used only in Great Britain and other Commonwealth countries","[lcwt_av]","[LCWT_AV]","20",20,!1],[!1,"stone - British","[stone_av]","[STONE_AV]","mass",6350.293180000001,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"British stones; avoirdupois","UCUM","Mass","Nonclinical","Used primarily in the UK and Ireland to measure body weight","[lb_av]","[LB_AV]","14",14,!1],[!1,"pennyweight - troy","[pwt_tr]","[PWT_TR]","mass",1.5551738400000001,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"dwt; denarius weights","UCUM","Mass","Obsolete","historical unit used to measure mass and cost of precious metals","[gr]","[GR]","24",24,!1],[!1,"ounce - troy","[oz_tr]","[OZ_TR]","mass",31.103476800000003,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"troy ounces; tr ozs","UCUM","Mass","Nonclinical","unit of mass for precious metals and gemstones only","[pwt_tr]","[PWT_TR]","20",20,!1],[!1,"pound - troy","[lb_tr]","[LB_TR]","mass",373.2417216,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"troy pounds; tr lbs","UCUM","Mass","Nonclinical","only used for weighing precious metals","[oz_tr]","[OZ_TR]","12",12,!1],[!1,"scruple","[sc_ap]","[SC_AP]","mass",1.2959782,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"scruples; sc ap","UCUM","Mass","Obsolete","","[gr]","[GR]","20",20,!1],[!1,"dram - apothecary","[dr_ap]","[DR_AP]","mass",3.8879346,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"\u0292; drachm; apothecaries drams; dr ap; dram ap","UCUM","Mass","Nonclinical","unit still used in the US occasionally to measure amount of drugs in pharmacies","[sc_ap]","[SC_AP]","3",3,!1],[!1,"ounce - apothecary","[oz_ap]","[OZ_AP]","mass",31.1034768,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"apothecary ounces; oz ap; ap ozs; ozs ap","UCUM","Mass","Obsolete","","[dr_ap]","[DR_AP]","8",8,!1],[!1,"pound - apothecary","[lb_ap]","[LB_AP]","mass",373.2417216,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"apothecary pounds; apothecaries pounds; ap lb; lb ap; ap lbs; lbs ap","UCUM","Mass","Obsolete","","[oz_ap]","[OZ_AP]","12",12,!1],[!1,"ounce - metric","[oz_m]","[OZ_M]","mass",28,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"metric ounces; m ozs","UCUM","Mass","Clinical","see [oz_av] (the avoirdupois ounce) for the standard ounce used internationally; [oz_m] is equal to 28 grams and is based on the apothecaries' system of mass units which is used in some US pharmacies. ","g","g","28",28,!1],[!1,"line","[lne]","[LNE]","length",.002116666666666667,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"British lines; br L; L; l","UCUM","Len","Obsolete","","[in_i]/12","[IN_I]/12","1",1,!1],[!1,"point (typography)","[pnt]","[PNT]","length",.0003527777777777778,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"DTP points; desktop publishing point; pt; pnt","UCUM","Len","Nonclinical","typography unit for typesetter's length","[lne]/6","[LNE]/6","1",1,!1],[!1,"pica (typography)","[pca]","[PCA]","length",.004233333333333334,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"picas","UCUM","Len","Nonclinical","typography unit for typesetter's length","[pnt]","[PNT]","12",12,!1],[!1,"Printer's point (typography)","[pnt_pr]","[PNT_PR]","length",.00035145980000000004,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pnt pr","UCUM","Len","Nonclinical","typography unit for typesetter's length","[in_i]","[IN_I]","0.013837",.013837,!1],[!1,"Printer's pica (typography)","[pca_pr]","[PCA_PR]","length",.004217517600000001,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pca pr; Printer's picas","UCUM","Len","Nonclinical","typography unit for typesetter's length","[pnt_pr]","[PNT_PR]","12",12,!1],[!1,"pied","[pied]","[PIED]","length",.3248,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pieds du roi; Paris foot; royal; French; feet","UCUM","Len","Obsolete","","cm","CM","32.48",32.48,!1],[!1,"pouce","[pouce]","[POUCE]","length",.027066666666666666,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"historical French inches; French royal inches","UCUM","Len","Obsolete","","[pied]/12","[PIED]/12","1",1,!1],[!1,"ligne","[ligne]","[LIGNE]","length",.0022555555555555554,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Paris lines; lignes","UCUM","Len","Obsolete","","[pouce]/12","[POUCE]/12","1",1,!1],[!1,"didot","[didot]","[DIDOT]","length",.0003759259259259259,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Didot point; dd; Didots Point; didots; points","UCUM","Len","Obsolete","typography unit for typesetter's length","[ligne]/6","[LIGNE]/6","1",1,!1],[!1,"cicero","[cicero]","[CICERO]","length",.004511111111111111,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Didot's pica; ciceros; picas","UCUM","Len","Obsolete","typography unit for typesetter's length","[didot]","[DIDOT]","12",12,!1],[!1,"degrees Fahrenheit","[degF]","[DEGF]","temperature",.5555555555555556,[0,0,0,0,1,0,0],"\xB0F","heat",!1,null,"degF",1,!0,!1,0,"\xB0F; deg F","UCUM","Temp","Clinical","","K",null,null,.5555555555555556,!1],[!1,"degrees Rankine","[degR]","[degR]","temperature",.5555555555555556,[0,0,0,0,1,0,0],"\xB0R","heat",!1,null,null,1,!1,!1,0,"\xB0R; \xB0Ra; Rankine","UCUM","Temp","Obsolete","Replaced by Kelvin","K/9","K/9","5",5,!1],[!1,"degrees R\xE9aumur","[degRe]","[degRe]","temperature",1.25,[0,0,0,0,1,0,0],"\xB0R\xE9","heat",!1,null,"degRe",1,!0,!1,0,"\xB0R\xE9, \xB0Re, \xB0r; R\xE9aumur; degree Reaumur; Reaumur","UCUM","Temp","Obsolete","replaced by Celsius","K",null,null,1.25,!1],[!1,"calorie at 15\xB0C","cal_[15]","CAL_[15]","energy",4185.8,[2,-2,1,0,0,0,0],"cal15\xB0C","heat",!0,null,null,1,!1,!1,0,"calorie 15 C; cals 15 C; calories at 15 C","UCUM","Enrg","Nonclinical","equal to 4.1855 joules; calorie most often used in engineering","J","J","4.18580",4.1858,!1],[!1,"calorie at 20\xB0C","cal_[20]","CAL_[20]","energy",4181.9,[2,-2,1,0,0,0,0],"cal20\xB0C","heat",!0,null,null,1,!1,!1,0,"calorie 20 C; cal 20 C; calories at 20 C","UCUM","Enrg","Clinical","equal to 4.18190 joules. ","J","J","4.18190",4.1819,!1],[!1,"mean calorie","cal_m","CAL_M","energy",4190.0199999999995,[2,-2,1,0,0,0,0],"calm","heat",!0,null,null,1,!1,!1,0,"mean cals; mean calories","UCUM","Enrg","Clinical","equal to 4.19002 joules. ","J","J","4.19002",4.19002,!1],[!1,"international table calorie","cal_IT","CAL_IT","energy",4186.8,[2,-2,1,0,0,0,0],"calIT","heat",!0,null,null,1,!1,!1,0,"calories IT; IT cals; international steam table calories","UCUM","Enrg","Nonclinical","used in engineering steam tables and defined as 1/860 international watt-hour; equal to 4.1868 joules","J","J","4.1868",4.1868,!1],[!1,"thermochemical calorie","cal_th","CAL_TH","energy",4184,[2,-2,1,0,0,0,0],"calth","heat",!0,null,null,1,!1,!1,0,"thermochemical calories; th cals","UCUM","Enrg","Clinical","equal to 4.184 joules; used as the unit in medicine and biochemistry (equal to cal)","J","J","4.184",4.184,!1],[!1,"calorie","cal","CAL","energy",4184,[2,-2,1,0,0,0,0],"cal","heat",!0,null,null,1,!1,!1,0,"gram calories; small calories","UCUM","Enrg","Clinical","equal to 4.184 joules (the same value as the thermochemical calorie, which is the most common calorie used in medicine and biochemistry)","cal_th","CAL_TH","1",1,!1],[!1,"nutrition label Calories","[Cal]","[CAL]","energy",4184e3,[2,-2,1,0,0,0,0],"Cal","heat",!1,null,null,1,!1,!1,0,"food calories; Cal; kcal","UCUM","Eng","Clinical","","kcal_th","KCAL_TH","1",1,!1],[!1,"British thermal unit at 39\xB0F","[Btu_39]","[BTU_39]","energy",1059670,[2,-2,1,0,0,0,0],"Btu39\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 39F; BTU 39 F; B.T.U. 39 F; B.Th.U. 39 F; BThU 39 F; British thermal units","UCUM","Eng","Nonclinical","equal to 1.05967 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05967",1.05967,!1],[!1,"British thermal unit at 59\xB0F","[Btu_59]","[BTU_59]","energy",1054800,[2,-2,1,0,0,0,0],"Btu59\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 59 F; BTU 59F; B.T.U. 59 F; B.Th.U. 59 F; BThU 59F; British thermal units","UCUM","Eng","Nonclinical","equal to 1.05480 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05480",1.0548,!1],[!1,"British thermal unit at 60\xB0F","[Btu_60]","[BTU_60]","energy",1054680,[2,-2,1,0,0,0,0],"Btu60\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 60 F; BTU 60F; B.T.U. 60 F; B.Th.U. 60 F; BThU 60 F; British thermal units 60 F","UCUM","Eng","Nonclinical","equal to 1.05468 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05468",1.05468,!1],[!1,"mean British thermal unit","[Btu_m]","[BTU_M]","energy",1055870,[2,-2,1,0,0,0,0],"Btum","heat",!1,null,null,1,!1,!1,0,"BTU mean; B.T.U. mean; B.Th.U. mean; BThU mean; British thermal units mean; ","UCUM","Eng","Nonclinical","equal to 1.05587 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05587",1.05587,!1],[!1,"international table British thermal unit","[Btu_IT]","[BTU_IT]","energy",105505585262e-5,[2,-2,1,0,0,0,0],"BtuIT","heat",!1,null,null,1,!1,!1,0,"BTU IT; B.T.U. IT; B.Th.U. IT; BThU IT; British thermal units IT","UCUM","Eng","Nonclinical","equal to 1.055 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05505585262",1.05505585262,!1],[!1,"thermochemical British thermal unit","[Btu_th]","[BTU_TH]","energy",1054350,[2,-2,1,0,0,0,0],"Btuth","heat",!1,null,null,1,!1,!1,0,"BTU Th; B.T.U. Th; B.Th.U. Th; BThU Th; thermochemical British thermal units","UCUM","Eng","Nonclinical","equal to 1.054350 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.054350",1.05435,!1],[!1,"British thermal unit","[Btu]","[BTU]","energy",1054350,[2,-2,1,0,0,0,0],"btu","heat",!1,null,null,1,!1,!1,0,"BTU; B.T.U. ; B.Th.U.; BThU; British thermal units","UCUM","Eng","Nonclinical","equal to the thermochemical British thermal unit equal to 1.054350 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","[Btu_th]","[BTU_TH]","1",1,!1],[!1,"horsepower - mechanical","[HP]","[HP]","power",745699.8715822703,[2,-3,1,0,0,0,0],null,"heat",!1,null,null,1,!1,!1,0,"imperial horsepowers","UCUM","EngRat","Nonclinical","refers to mechanical horsepower, which is unit used to measure engine power primarily in the US. ","[ft_i].[lbf_av]/s","[FT_I].[LBF_AV]/S","550",550,!1],[!1,"tex","tex","TEX","linear mass density (of textile thread)",.001,[-1,0,1,0,0,0,0],"tex","heat",!0,null,null,1,!1,!1,0,"linear mass density; texes","UCUM","","Clinical","unit of linear mass density for fibers equal to gram per 1000 meters","g/km","G/KM","1",1,!1],[!1,"Denier (linear mass density)","[den]","[DEN]","linear mass density (of textile thread)",.0001111111111111111,[-1,0,1,0,0,0,0],"den","heat",!1,null,null,1,!1,!1,0,"den; deniers","UCUM","","Nonclinical","equal to the mass in grams per 9000 meters of the fiber (1 denier = 1 strand of silk)","g/9/km","G/9/KM","1",1,!1],[!1,"meter of water column","m[H2O]","M[H2O]","pressure",9806650,[-1,-2,1,0,0,0,0],"m\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"mH2O; m H2O; meters of water column; metres; pressure","UCUM","Pres","Clinical","","kPa","KPAL","980665e-5",9.80665,!1],[!1,"meter of mercury column","m[Hg]","M[HG]","pressure",133322e3,[-1,-2,1,0,0,0,0],"m\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"mHg; m Hg; meters of mercury column; metres; pressure","UCUM","Pres","Clinical","","kPa","KPAL","133.3220",133.322,!1],[!1,"inch of water column","[in_i'H2O]","[IN_I'H2O]","pressure",249088.91000000003,[-1,-2,1,0,0,0,0],"in\xA0HO2","clinical",!1,null,null,1,!1,!1,0,"inches WC; inAq; in H2O; inch of water gauge; iwg; pressure","UCUM","Pres","Clinical","unit of pressure, especially in respiratory and ventilation care","m[H2O].[in_i]/m","M[H2O].[IN_I]/M","1",1,!1],[!1,"inch of mercury column","[in_i'Hg]","[IN_I'HG]","pressure",3.3863788000000003e6,[-1,-2,1,0,0,0,0],"in\xA0Hg","clinical",!1,null,null,1,!1,!1,0,"inHg; in Hg; pressure; inches","UCUM","Pres","Clinical","unit of pressure used in US to measure barometric pressure and occasionally blood pressure (see mm[Hg] for unit used internationally)","m[Hg].[in_i]/m","M[HG].[IN_I]/M","1",1,!1],[!1,"peripheral vascular resistance unit","[PRU]","[PRU]","fluid resistance",133322e6,[-4,-1,1,0,0,0,0],"P.R.U.","clinical",!1,null,null,1,!1,!1,0,"peripheral vascular resistance units; peripheral resistance unit; peripheral resistance units; PRU","UCUM","FldResist","Clinical","used to assess blood flow in the capillaries; equal to 1 mmH.min/mL = 133.3 Pa\xB7min/mL","mm[Hg].s/ml","MM[HG].S/ML","1",1,!1],[!1,"Wood unit","[wood'U]","[WOOD'U]","fluid resistance",799932e4,[-4,-1,1,0,0,0,0],"Wood U.","clinical",!1,null,null,1,!1,!1,0,"hybrid reference units; HRU; mmHg.min/L; vascular resistance","UCUM","Pres","Clinical","simplified unit of measurement for for measuring pulmonary vascular resistance that uses pressure; equal to mmHg.min/L","mm[Hg].min/L","MM[HG].MIN/L","1",1,!1],[!1,"diopter (lens)","[diop]","[DIOP]","refraction of a lens",1,[1,0,0,0,0,0,0],"dpt","clinical",!1,null,"inv",1,!1,!1,0,"diopters; diop; dioptre; dpt; refractive power","UCUM","InvLen","Clinical","unit of optical power of lens represented by inverse meters (m^-1)","m","/M","1",1,!1],[!1,"prism diopter (magnifying power)","[p'diop]","[P'DIOP]","refraction of a prism",1,[0,0,0,1,0,0,0],"PD","clinical",!1,null,"tanTimes100",1,!0,!1,0,"diopters; dioptres; p diops; pdiop; dpt; pdptr; \u0394; cm/m; centimeter per meter; centimetre; metre","UCUM","Angle","Clinical","unit for prism correction in eyeglass prescriptions","rad",null,null,1,!1],[!1,"percent of slope","%[slope]","%[SLOPE]","slope",.017453292519943295,[0,0,0,1,0,0,0],"%","clinical",!1,null,"100tan",1,!0,!1,0,"% slope; %slope; percents slopes","UCUM","VelFr; ElpotRatFr; VelRtoFr; AccelFr","Clinical","","deg",null,null,1,!1],[!1,"mesh","[mesh_i]","[MESH_I]","lineic number",.025400000000000002,[1,0,0,0,0,0,0],null,"clinical",!1,null,"inv",1,!1,!1,0,"meshes","UCUM","NLen (lineic number)","Clinical","traditional unit of length defined as the number of strands or particles per inch","[in_i]","/[IN_I]","1",1,!1],[!1,"French (catheter gauge) ","[Ch]","[CH]","gauge of catheters",.0003333333333333333,[1,0,0,0,0,0,0],"Ch","clinical",!1,null,null,1,!1,!1,0,"Charri\xE8res, French scales; French gauges; Fr, Fg, Ga, FR, Ch","UCUM","Len; Circ; Diam","Clinical","","mm/3","MM/3","1",1,!1],[!1,"drop - metric (1/20 mL)","[drp]","[DRP]","volume",5e-8,[3,0,0,0,0,0,0],"drp","clinical",!1,null,null,1,!1,!1,0,"drop dosing units; metric drops; gtt","UCUM","Vol","Clinical","standard unit used in the US and internationally for clinical medicine but note that although [drp] is defined as 1/20 milliliter, in practice, drop sizes will vary due to external factors","ml/20","ML/20","1",1,!1],[!1,"Hounsfield unit","[hnsf'U]","[HNSF'U]","x-ray attenuation",1,[0,0,0,0,0,0,0],"HF","clinical",!1,null,null,1,!1,!1,0,"HU; units","UCUM","","Clinical","used to measure X-ray attenuation, especially in CT scans.","1","1","1",1,!1],[!1,"Metabolic Equivalent of Task ","[MET]","[MET]","metabolic cost of physical activity",5833333333333334e-26,[3,-1,-1,0,0,0,0],"MET","clinical",!1,null,null,1,!1,!1,0,"metabolic equivalents","UCUM","RelEngRat","Clinical","unit used to measure rate of energy expenditure per power in treadmill and other functional tests","mL/min/kg","ML/MIN/KG","3.5",3.5,!1],[!1,"homeopathic potency of decimal series (retired)","[hp'_X]","[HP'_X]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,"hpX",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of centesimal series (retired)","[hp'_C]","[HP'_C]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,"hpC",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of millesimal series (retired)","[hp'_M]","[HP'_M]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,"hpM",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of quintamillesimal series (retired)","[hp'_Q]","[HP'_Q]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,"hpQ",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of decimal hahnemannian series","[hp_X]","[HP_X]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of centesimal hahnemannian series","[hp_C]","[HP_C]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of millesimal hahnemannian series","[hp_M]","[HP_M]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of quintamillesimal hahnemannian series","[hp_Q]","[HP_Q]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of decimal korsakovian series","[kp_X]","[KP_X]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of centesimal korsakovian series","[kp_C]","[KP_C]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of millesimal korsakovian series","[kp_M]","[KP_M]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of quintamillesimal korsakovian series","[kp_Q]","[KP_Q]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"equivalent","eq","EQ","amount of substance",60221367e16,[0,0,0,0,0,0,0],"eq","chemical",!0,null,null,1,!1,!1,1,"equivalents","UCUM","Sub","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"osmole","osm","OSM","amount of substance (dissolved particles)",60221367e16,[0,0,0,0,0,0,0],"osm","chemical",!0,null,null,1,!1,!1,1,"osmoles; osmols","UCUM","Osmol","Clinical","the number of moles of solute that contribute to the osmotic pressure of a solution","mol","MOL","1",1,!1],[!1,"pH","[pH]","[PH]","acidity",60221366999999994e10,[-3,0,0,0,0,0,0],"pH","chemical",!1,null,"pH",1,!0,!1,0,"pH scale","UCUM","LogCnc","Clinical","Log concentration of H+","mol/l",null,null,1,!1],[!1,"gram percent","g%","G%","mass concentration",1e4,[-3,0,1,0,0,0,0],"g%","chemical",!0,null,null,1,!1,!1,0,"gram %; gram%; grams per deciliter; g/dL; gm per dL; gram percents","UCUM","MCnc","Clinical","equivalent to unit gram per deciliter (g/dL), a unit often used in medical tests to represent solution concentrations","g/dl","G/DL","1",1,!1],[!1,"Svedberg unit","[S]","[S]","sedimentation coefficient",1e-13,[0,1,0,0,0,0,0],"S","chemical",!1,null,null,1,!1,!1,0,"Sv; 10^-13 seconds; 100 fs; 100 femtoseconds","UCUM","Time","Clinical","unit of time used in measuring particle's sedimentation rate, usually after centrifugation. ","s","10*-13.S","1",1e-13,!1],[!1,"high power field (microscope)","[HPF]","[HPF]","view area in microscope",1,[0,0,0,0,0,0,0],"HPF","chemical",!1,null,null,1,!1,!1,0,"HPF","UCUM","Area","Clinical",`area visible under the maximum magnification power of the objective in microscopy (usually 400x) +`,"1","1","1",1,!1],[!1,"low power field (microscope)","[LPF]","[LPF]","view area in microscope",1,[0,0,0,0,0,0,0],"LPF","chemical",!1,null,null,1,!1,!1,0,"LPF; fields","UCUM","Area","Clinical",`area visible under the low magnification of the objective in microscopy (usually 100 x) +`,"1","1","100",100,!1],[!1,"katal","kat","KAT","catalytic activity",60221367e16,[0,-1,0,0,0,0,0],"kat","chemical",!0,null,null,1,!1,!1,1,"mol/secs; moles per second; mol*sec-1; mol*s-1; mol.s-1; katals; catalytic activity; enzymatic; enzyme units; activities","UCUM","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"enzyme unit","U","U","catalytic activity",100368945e8,[0,-1,0,0,0,0,0],"U","chemical",!0,null,null,1,!1,!1,1,"micromoles per minute; umol/min; umol per minute; umol min-1; enzymatic activity; enzyme activity","UCUM","CAct","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"international unit - arbitrary","[iU]","[IU]","arbitrary",1,[0,0,0,0,0,0,0],"IU","chemical",!0,null,null,1,!1,!0,0,"international units; IE; F2","UCUM","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","1","1","1",1,!1],[!1,"international unit - arbitrary","[IU]","[IU]","arbitrary",1,[0,0,0,0,0,0,0],"i.U.","chemical",!0,null,null,1,!1,!0,0,"international units; IE; F2","UCUM","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"arbitary unit","[arb'U]","[ARB'U]","arbitrary",1,[0,0,0,0,0,0,0],"arb. U","chemical",!1,null,null,1,!1,!0,0,"arbitary units; arb units; arbU","UCUM","Arb","Clinical","relative unit of measurement to show the ratio of test measurement to reference measurement","1","1","1",1,!1],[!1,"United States Pharmacopeia unit","[USP'U]","[USP'U]","arbitrary",1,[0,0,0,0,0,0,0],"U.S.P.","chemical",!1,null,null,1,!1,!0,0,"USP U; USP'U","UCUM","Arb","Clinical","a dose unit to express potency of drugs and vitamins defined by the United States Pharmacopoeia; usually 1 USP = 1 IU","1","1","1",1,!1],[!1,"GPL unit","[GPL'U]","[GPL'U]","biologic activity of anticardiolipin IgG",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"GPL Units; GPL U; IgG anticardiolipin units; IgG Phospholipid","UCUM","ACnc; AMass","Clinical","Units for an antiphospholipid test","1","1","1",1,!1],[!1,"MPL unit","[MPL'U]","[MPL'U]","biologic activity of anticardiolipin IgM",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"MPL units; MPL U; MPL'U; IgM anticardiolipin units; IgM Phospholipid Units ","UCUM","ACnc","Clinical","units for antiphospholipid test","1","1","1",1,!1],[!1,"APL unit","[APL'U]","[APL'U]","biologic activity of anticardiolipin IgA",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"APL units; APL U; IgA anticardiolipin; IgA Phospholipid; biologic activity of","UCUM","AMass; ACnc","Clinical","Units for an anti phospholipid syndrome test","1","1","1",1,!1],[!1,"Bethesda unit","[beth'U]","[BETH'U]","biologic activity of factor VIII inhibitor",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"BU","UCUM","ACnc","Clinical","measures of blood coagulation inhibitior for many blood factors","1","1","1",1,!1],[!1,"anti factor Xa unit","[anti'Xa'U]","[ANTI'XA'U]","biologic activity of factor Xa inhibitor (heparin)",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","ACnc","Clinical","[anti'Xa'U] unit is equivalent to and can be converted to IU/mL. ","1","1","1",1,!1],[!1,"Todd unit","[todd'U]","[TODD'U]","biologic activity antistreptolysin O",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","InvThres; RtoThres","Clinical","the unit for the results of the testing for antistreptolysin O (ASO)","1","1","1",1,!1],[!1,"Dye unit","[dye'U]","[DYE'U]","biologic activity of amylase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","CCnc","Obsolete","equivalent to the Somogyi unit, which is an enzyme unit for amylase but better to use U, the standard enzyme unit for measuring catalytic activity","1","1","1",1,!1],[!1,"Somogyi unit","[smgy'U]","[SMGY'U]","biologic activity of amylase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"Somogyi units; smgy U","UCUM","CAct","Clinical","measures the enzymatic activity of amylase in blood serum - better to use base units mg/mL ","1","1","1",1,!1],[!1,"Bodansky unit","[bdsk'U]","[BDSK'U]","biologic activity of phosphatase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"","UCUM","ACnc","Obsolete","Enzyme unit specific to alkaline phosphatase - better to use standard enzyme unit of U","1","1","1",1,!1],[!1,"King-Armstrong unit","[ka'U]","[KA'U]","biologic activity of phosphatase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"King-Armstrong Units; King units","UCUM","AMass","Obsolete","enzyme units for acid phosphatase - better to use enzyme unit [U]","1","1","1",1,!1],[!1,"Kunkel unit","[knk'U]","[KNK'U]","arbitrary biologic activity",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"Mac Lagan unit","[mclg'U]","[MCLG'U]","arbitrary biologic activity",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"galactose index; galactose tolerance test; thymol turbidity test unit; mclg U; units; indexes","UCUM","ACnc","Obsolete","unit for liver tests - previously used in thymol turbidity tests for liver disease diagnoses, and now is sometimes referred to in the oral galactose tolerance test","1","1","1",1,!1],[!1,"tuberculin unit","[tb'U]","[TB'U]","biologic activity of tuberculin",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"TU; units","UCUM","Arb","Clinical","amount of tuberculin antigen -usually in reference to a TB skin test ","1","1","1",1,!1],[!1,"50% cell culture infectious dose","[CCID_50]","[CCID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"CCID50","chemical",!1,null,null,1,!1,!0,0,"CCID50; 50% cell culture infective doses","UCUM","NumThres","Clinical","","1","1","1",1,!1],[!1,"50% tissue culture infectious dose","[TCID_50]","[TCID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"TCID50","chemical",!1,null,null,1,!1,!0,0,"TCID50; 50% tissue culture infective dose","UCUM","NumThres","Clinical","","1","1","1",1,!1],[!1,"50% embryo infectious dose","[EID_50]","[EID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"EID50","chemical",!1,null,null,1,!1,!0,0,"EID50; 50% embryo infective doses; EID50 Egg Infective Dosage","UCUM","thresNum","Clinical","","1","1","1",1,!1],[!1,"plaque forming units","[PFU]","[PFU]","amount of an infectious agent",1,[0,0,0,0,0,0,0],"PFU","chemical",!1,null,null,1,!1,!0,0,"PFU","UCUM","ACnc","Clinical","tests usually report unit as number of PFU per unit volume","1","1","1",1,!1],[!1,"focus forming units (cells)","[FFU]","[FFU]","amount of an infectious agent",1,[0,0,0,0,0,0,0],"FFU","chemical",!1,null,null,1,!1,!0,0,"FFU","UCUM","EntNum","Clinical","","1","1","1",1,!1],[!1,"colony forming units","[CFU]","[CFU]","amount of a proliferating organism",1,[0,0,0,0,0,0,0],"CFU","chemical",!1,null,null,1,!1,!0,0,"CFU","UCUM","Num","Clinical","","1","1","1",1,!1],[!1,"index of reactivity (allergen)","[IR]","[IR]","amount of an allergen callibrated through in-vivo testing using the Stallergenes\xAE method.",1,[0,0,0,0,0,0,0],"IR","chemical",!1,null,null,1,!1,!0,0,"IR; indexes","UCUM","Acnc","Clinical","amount of an allergen callibrated through in-vivo testing using the Stallergenes method. Usually reported in tests as IR/mL","1","1","1",1,!1],[!1,"bioequivalent allergen unit","[BAU]","[BAU]","amount of an allergen callibrated through in-vivo testing based on the ID50EAL method of (intradermal dilution for 50mm sum of erythema diameters",1,[0,0,0,0,0,0,0],"BAU","chemical",!1,null,null,1,!1,!0,0,"BAU; Bioequivalent Allergy Units; bioequivalent allergen units","UCUM","Arb","Clinical","","1","1","1",1,!1],[!1,"allergy unit","[AU]","[AU]","procedure defined amount of an allergen using some reference standard",1,[0,0,0,0,0,0,0],"AU","chemical",!1,null,null,1,!1,!0,0,"allergy units; allergen units; AU","UCUM","Arb","Clinical","Most standard test allergy units are reported as [IU] or as %. ","1","1","1",1,!1],[!1,"allergen unit for Ambrosia artemisiifolia","[Amb'a'1'U]","[AMB'A'1'U]","procedure defined amount of the major allergen of ragweed.",1,[0,0,0,0,0,0,0],"Amb a 1 U","chemical",!1,null,null,1,!1,!0,0,"Amb a 1 unit; Antigen E; AgE U; allergen units","UCUM","Arb","Clinical","Amb a 1 is the major allergen in short ragweed, and can be converted Bioequivalent allergen units (BAU) where 350 Amb a 1 U/mL = 100,000 BAU/mL","1","1","1",1,!1],[!1,"protein nitrogen unit (allergen testing)","[PNU]","[PNU]","procedure defined amount of a protein substance",1,[0,0,0,0,0,0,0],"PNU","chemical",!1,null,null,1,!1,!0,0,"protein nitrogen units; PNU","UCUM","Mass","Clinical","defined as 0.01 ug of phosphotungstic acid-precipitable protein nitrogen. Being replaced by bioequivalent allergy units (BAU).","1","1","1",1,!1],[!1,"Limit of flocculation","[Lf]","[LF]","procedure defined amount of an antigen substance",1,[0,0,0,0,0,0,0],"Lf","chemical",!1,null,null,1,!1,!0,0,"Lf doses","UCUM","Arb","Clinical","the antigen content forming 1:1 ratio against 1 unit of antitoxin","1","1","1",1,!1],[!1,"D-antigen unit (polio)","[D'ag'U]","[D'AG'U]","procedure defined amount of a poliomyelitis d-antigen substance",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"DAgU; units","UCUM","Acnc","Clinical","unit of potency of poliovirus vaccine used for poliomyelitis prevention reported as D antigen units/mL. The unit is poliovirus type-specific.","1","1","1",1,!1],[!1,"fibrinogen equivalent units","[FEU]","[FEU]","amount of fibrinogen broken down into the measured d-dimers",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"FEU","UCUM","MCnc","Clinical","Note both the FEU and DDU units are used to report D-dimer measurements. 1 DDU = 1/2 FFU","1","1","1",1,!1],[!1,"ELISA unit","[ELU]","[ELU]","arbitrary ELISA unit",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"Enzyme-Linked Immunosorbent Assay Units; ELU; EL. U","UCUM","ACnc","Clinical","","1","1","1",1,!1],[!1,"Ehrlich units (urobilinogen)","[EU]","[EU]","Ehrlich unit",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"EU/dL; mg{urobilinogen}/dL","UCUM","ACnc","Clinical","","1","1","1",1,!1],[!1,"neper","Np","NEP","level",1,[0,0,0,0,0,0,0],"Np","levels",!0,null,"ln",1,!0,!1,0,"nepers","UCUM","LogRto","Clinical","logarithmic unit for ratios of measurements of physical field and power quantities, such as gain and loss of electronic signals","1",null,null,1,!1],[!1,"bel","B","B","level",1,[0,0,0,0,0,0,0],"B","levels",!0,null,"lg",1,!0,!1,0,"bels","UCUM","LogRto","Clinical","Logarithm of the ratio of power- or field-type quantities; usually expressed in decibels ","1",null,null,1,!1],[!1,"bel sound pressure","B[SPL]","B[SPL]","pressure level",.019999999999999997,[-1,-2,1,0,0,0,0],"B(SPL)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel SPL; B SPL; sound pressure bels","UCUM","LogRto","Clinical","used to measure sound level in acoustics","Pa",null,null,19999999999999998e-21,!1],[!1,"bel volt","B[V]","B[V]","electric potential level",1e3,[2,-2,1,0,0,-1,0],"B(V)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel V; B V; volts bels","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","V",null,null,1,!1],[!1,"bel millivolt","B[mV]","B[MV]","electric potential level",1,[2,-2,1,0,0,-1,0],"B(mV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel mV; B mV; millivolt bels; 10^-3V bels; 10*-3V ","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","mV",null,null,1,!1],[!1,"bel microvolt","B[uV]","B[UV]","electric potential level",.001,[2,-2,1,0,0,-1,0],"B(\u03BCV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel uV; B uV; microvolts bels; 10^-6V bel; 10*-6V bel","UCUM","LogRto","Clinical","used to express power gain in electrical circuits","uV",null,null,1,!1],[!1,"bel 10 nanovolt","B[10.nV]","B[10.NV]","electric potential level",10000000000000003e-21,[2,-2,1,0,0,-1,0],"B(10 nV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel 10 nV; B 10 nV; 10 nanovolts bels","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","nV",null,null,10,!1],[!1,"bel watt","B[W]","B[W]","power level",1e3,[2,-3,1,0,0,0,0],"B(W)","levels",!0,null,"lg",1,!0,!1,0,"bel W; b W; b Watt; Watts bels","UCUM","LogRto","Clinical","used to express power","W",null,null,1,!1],[!1,"bel kilowatt","B[kW]","B[KW]","power level",1e6,[2,-3,1,0,0,0,0],"B(kW)","levels",!0,null,"lg",1,!0,!1,0,"bel kW; B kW; kilowatt bel; kW bel; kW B","UCUM","LogRto","Clinical","used to express power","kW",null,null,1,!1],[!1,"stere","st","STR","volume",1,[3,0,0,0,0,0,0],"st","misc",!0,null,null,1,!1,!1,0,"st\xE8re; m3; cubic meter; m^3; meters cubed; metre","UCUM","Vol","Nonclinical","equal to one cubic meter, usually used for measuring firewood","m3","M3","1",1,!1],[!1,"\xC5ngstr\xF6m","Ao","AO","length",10000000000000002e-26,[1,0,0,0,0,0,0],"\xC5","misc",!1,null,null,1,!1,!1,0,"\xC5; Angstroms; Ao; \xC5ngstr\xF6ms","UCUM","Len","Clinical","equal to 10^-10 meters; used to express wave lengths and atom scaled differences ","nm","NM","0.1",.1,!1],[!1,"barn","b","BRN","action area",10000000000000001e-44,[2,0,0,0,0,0,0],"b","misc",!1,null,null,1,!1,!1,0,"barns","UCUM","Area","Clinical","used in high-energy physics to express cross-sectional areas","fm2","FM2","100",100,!1],[!1,"technical atmosphere","att","ATT","pressure",98066500,[-1,-2,1,0,0,0,0],"at","misc",!1,null,null,1,!1,!1,0,"at; tech atm; tech atmosphere; kgf/cm2; atms; atmospheres","UCUM","Pres","Obsolete","non-SI unit of pressure equal to one kilogram-force per square centimeter","kgf/cm2","KGF/CM2","1",1,!1],[!1,"mho","mho","MHO","electric conductance",.001,[-2,1,-1,0,0,2,0],"mho","misc",!0,null,null,1,!1,!1,0,"siemens; ohm reciprocals; \u03A9^\u22121; \u03A9-1 ","UCUM","","Obsolete","unit of electric conductance (the inverse of electrical resistance) equal to ohm^-1","S","S","1",1,!1],[!1,"pound per square inch","[psi]","[PSI]","pressure",6894757293168359e-9,[-1,-2,1,0,0,0,0],"psi","misc",!1,null,null,1,!1,!1,0,"psi; lb/in2; lb per in2","UCUM","Pres","Clinical","","[lbf_av]/[in_i]2","[LBF_AV]/[IN_I]2","1",1,!1],[!1,"circle - plane angle","circ","CIRC","plane angle",6.283185307179586,[0,0,0,1,0,0,0],"circ","misc",!1,null,null,1,!1,!1,0,"angles; circles","UCUM","Angle","Clinical","","[pi].rad","[PI].RAD","2",2,!1],[!1,"spere - solid angle","sph","SPH","solid angle",12.566370614359172,[0,0,0,2,0,0,0],"sph","misc",!1,null,null,1,!1,!1,0,"speres","UCUM","Angle","Clinical","equal to the solid angle of an entire sphere = 4\u03C0sr (sr = steradian) ","[pi].sr","[PI].SR","4",4,!1],[!1,"metric carat","[car_m]","[CAR_M]","mass",.2,[0,0,1,0,0,0,0],"ctm","misc",!1,null,null,1,!1,!1,0,"carats; ct; car m","UCUM","Mass","Nonclinical","unit of mass for gemstones","g","G","2e-1",.2,!1],[!1,"carat of gold alloys","[car_Au]","[CAR_AU]","mass fraction",.041666666666666664,[0,0,0,0,0,0,0],"ctAu","misc",!1,null,null,1,!1,!1,0,"karats; k; kt; car au; carats","UCUM","MFr","Nonclinical","unit of purity for gold alloys","/24","/24","1",1,!1],[!1,"Smoot","[smoot]","[SMOOT]","length",1.7018000000000002,[1,0,0,0,0,0,0],null,"misc",!1,null,null,1,!1,!1,0,"","UCUM","Len","Nonclinical","prank unit of length from MIT","[in_i]","[IN_I]","67",67,!1],[!1,"meter per square seconds per square root of hertz","[m/s2/Hz^(1/2)]","[M/S2/HZ^(1/2)]","amplitude spectral density",1,[2,-3,0,0,0,0,0],null,"misc",!1,null,"sqrt",1,!0,!1,0,"m/s2/(Hz^.5); m/s2/(Hz^(1/2)); m per s2 per Hz^1/2","UCUM","","Constant",`measures amplitude spectral density, and is equal to the square root of power spectral density + `,"m2/s4/Hz",null,null,1,!1],[!1,"bit - logarithmic","bit_s","BIT_S","amount of information",1,[0,0,0,0,0,0,0],"bits","infotech",!1,null,"ld",1,!0,!1,0,"bit-s; bit s; bit logarithmic","UCUM","LogA","Nonclinical",`defined as the log base 2 of the number of distinct signals; cannot practically be used to express more than 1000 bits + +In information theory, the definition of the amount of self-information and information entropy is often expressed with the binary logarithm (log base 2)`,"1",null,null,1,!1],[!1,"bit","bit","BIT","amount of information",1,[0,0,0,0,0,0,0],"bit","infotech",!0,null,null,1,!1,!1,0,"bits","UCUM","","Nonclinical","dimensionless information unit of 1 used in computing and digital communications","1","1","1",1,!1],[!1,"byte","By","BY","amount of information",8,[0,0,0,0,0,0,0],"B","infotech",!0,null,null,1,!1,!1,0,"bytes","UCUM","","Nonclinical","equal to 8 bits","bit","bit","8",8,!1],[!1,"baud","Bd","BD","signal transmission rate",1,[0,1,0,0,0,0,0],"Bd","infotech",!0,null,"inv",1,!1,!1,0,"Bd; bauds","UCUM","Freq","Nonclinical","unit to express rate in symbols per second or pulses per second. ","s","/s","1",1,!1],[!1,"per twelve hour","/(12.h)","1/(12.HR)","",23148148148148147e-21,[0,-1,0,0,0,0,0],"/h",null,!1,null,null,1,!1,!1,0,"per 12 hours; 12hrs; 12 hrs; /12hrs","LOINC","Rat","Clinical","",null,null,null,null,!1],[!1,"per arbitrary unit","/[arb'U]","1/[ARB'U]","",1,[0,0,0,0,0,0,0],"/arb/ U",null,!1,null,null,1,!1,!0,0,"/arbU","LOINC","InvA ","Clinical","",null,null,null,null,!1],[!1,"per high power field","/[HPF]","1/[HPF]","",1,[0,0,0,0,0,0,0],"/HPF",null,!1,null,null,1,!1,!1,0,"/HPF; per HPF","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per international unit","/[IU]","1/[IU]","",1,[0,0,0,0,0,0,0],"/i/U.",null,!1,null,null,1,!1,!0,0,"international units; /IU; per IU","LOINC","InvA","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)",null,null,null,null,!1],[!1,"per low power field","/[LPF]","1/[LPF]","",1,[0,0,0,0,0,0,0],"/LPF",null,!1,null,null,1,!1,!1,0,"/LPF; per LPF","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per 10 billion ","/10*10","1/(10*10)","",1e-10,[0,0,0,0,0,0,0],"/1010",null,!1,null,null,1,!1,!1,0,"/10^10; per 10*10","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per trillion ","/10*12","1/(10*12)","",1e-12,[0,0,0,0,0,0,0],"/1012",null,!1,null,null,1,!1,!1,0,"/10^12; per 10*12","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per thousand","/10*3","1/(10*3)","",.001,[0,0,0,0,0,0,0],"/103",null,!1,null,null,1,!1,!1,0,"/10^3; per 10*3","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per million","/10*6","1/(10*6)","",1e-6,[0,0,0,0,0,0,0],"/106",null,!1,null,null,1,!1,!1,0,"/10^6; per 10*6;","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per billion","/10*9","1/(10*9)","",1e-9,[0,0,0,0,0,0,0],"/109",null,!1,null,null,1,!1,!1,0,"/10^9; per 10*9","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per 100","/100","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"per hundred; 10^2; 10*2","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per 100 cells","/100{cells}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 cells; /100cells; per hundred","LOINC","EntMass; EntNum; NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 neutrophils","/100{neutrophils}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 neutrophils; /100neutrophils; per hundred","LOINC","EntMass; EntNum; NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 spermatozoa","/100{spermatozoa}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 spermatozoa; /100spermatozoa; per hundred","LOINC","NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 white blood cells","/100{WBCs}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 WBCs; /100WBCs; per hundred","LOINC","Ratio; NFr","Clinical","",null,null,null,null,!1],[!1,"per year","/a","1/ANN","",3168808781402895e-23,[0,-1,0,0,0,0,0],"/a",null,!1,null,null,1,!1,!1,0,"/Years; /yrs; yearly","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per centimeter of water","/cm[H2O]","1/CM[H2O]","",10197162129779282e-21,[1,2,-1,0,0,0,0],"/cm\xA0HO2",null,!1,null,null,1,!1,!1,0,"/cmH2O; /cm H2O; centimeters; centimetres","LOINC","InvPress","Clinical","",null,null,null,null,!1],[!1,"per day","/d","1/D","",11574074074074073e-21,[0,-1,0,0,0,0,0],"/d",null,!1,null,null,1,!1,!1,0,"/dy; per day","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per deciliter","/dL","1/DL","",1e4,[-3,0,0,0,0,0,0],"/dL",null,!1,null,null,1,!1,!1,0,"per dL; /deciliter; decilitre","LOINC","NCnc","Clinical","",null,null,null,null,!1],[!1,"per gram","/g","1/G","",1,[0,0,-1,0,0,0,0],"/g",null,!1,null,null,1,!1,!1,0,"/gm; /gram; per g","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per hour","/h","1/HR","",.0002777777777777778,[0,-1,0,0,0,0,0],"/h",null,!1,null,null,1,!1,!1,0,"/hr; /hour; per hr","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per kilogram","/kg","1/KG","",.001,[0,0,-1,0,0,0,0],"/kg",null,!1,null,null,1,!1,!1,0,"per kg; per kilogram","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per liter","/L","1/L","",1e3,[-3,0,0,0,0,0,0],"/L",null,!1,null,null,1,!1,!1,0,"/liter; litre","LOINC","NCnc","Clinical","",null,null,null,null,!1],[!1,"per square meter","/m2","1/M2","",1,[-2,0,0,0,0,0,0],"/m2",null,!1,null,null,1,!1,!1,0,"/m^2; /m*2; /sq. m; per square meter; meter squared; metre","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per cubic meter","/m3","1/M3","",1,[-3,0,0,0,0,0,0],"/m3",null,!1,null,null,1,!1,!1,0,"/m^3; /m*3; /cu. m; per cubic meter; meter cubed; per m3; metre","LOINC","NCncn","Clinical","",null,null,null,null,!1],[!1,"per milligram","/mg","1/MG","",1e3,[0,0,-1,0,0,0,0],"/mg",null,!1,null,null,1,!1,!1,0,"/milligram; per mg","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per minute","/min","1/MIN","",.016666666666666666,[0,-1,0,0,0,0,0],"/min",null,!1,null,null,1,!1,!1,0,"/minute; per mins; breaths beats per minute","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per milliliter","/mL","1/ML","",1e6,[-3,0,0,0,0,0,0],"/mL",null,!1,null,null,1,!1,!1,0,"/milliliter; per mL; millilitre","LOINC","NCncn","Clinical","",null,null,null,null,!1],[!1,"per millimeter","/mm","1/MM","",1e3,[-1,0,0,0,0,0,0],"/mm",null,!1,null,null,1,!1,!1,0,"/millimeter; per mm; millimetre","LOINC","InvLen","Clinical","",null,null,null,null,!1],[!1,"per month","/mo","1/MO","",3802570537683474e-22,[0,-1,0,0,0,0,0],"/mo",null,!1,null,null,1,!1,!1,0,"/month; per mo; monthly; month","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per second","/s","1/S","",1,[0,-1,0,0,0,0,0],"/s",null,!1,null,null,1,!1,!1,0,"/second; /sec; per sec; frequency; Hertz; Herz; Hz; becquerels; Bq; s-1; s^-1","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per enzyme unit","/U","1/U","",9963241120049633e-32,[0,1,0,0,0,0,0],"/U",null,!1,null,null,1,!1,!1,-1,"/enzyme units; per U","LOINC","InvC; NCat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)",null,null,null,null,!1],[!1,"per microliter","/uL","1/UL","",9999999999999999e-7,[-3,0,0,0,0,0,0],"/\u03BCL",null,!1,null,null,1,!1,!1,0,"/microliter; microlitre; /mcl; per uL","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"per week","/wk","1/WK","",16534391534391535e-22,[0,-1,0,0,0,0,0],"/wk",null,!1,null,null,1,!1,!1,0,"/week; per wk; weekly, weeks","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"APL unit per milliliter","[APL'U]/mL","[APL'U]/ML","biologic activity of anticardiolipin IgA",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"APL/mL; APL'U/mL; APL U/mL; APL/milliliter; IgA anticardiolipin units per milliliter; IgA Phospholipid Units; millilitre; biologic activity of","LOINC","ACnc","Clinical","Units for an anti phospholipid syndrome test","1","1","1",1,!1],[!1,"arbitrary unit per milliliter","[arb'U]/mL","[ARB'U]/ML","arbitrary",1e6,[-3,0,0,0,0,0,0],"(arb. U)/mL","chemical",!1,null,null,1,!1,!0,0,"arb'U/mL; arbU/mL; arb U/mL; arbitrary units per milliliter; millilitre","LOINC","ACnc","Clinical","relative unit of measurement to show the ratio of test measurement to reference measurement","1","1","1",1,!1],[!1,"colony forming units per liter","[CFU]/L","[CFU]/L","amount of a proliferating organism",1e3,[-3,0,0,0,0,0,0],"CFU/L","chemical",!1,null,null,1,!1,!0,0,"CFU per Liter; CFU/L","LOINC","NCnc","Clinical","","1","1","1",1,!1],[!1,"colony forming units per milliliter","[CFU]/mL","[CFU]/ML","amount of a proliferating organism",1e6,[-3,0,0,0,0,0,0],"CFU/mL","chemical",!1,null,null,1,!1,!0,0,"CFU per mL; CFU/mL","LOINC","NCnc","Clinical","","1","1","1",1,!1],[!1,"foot per foot - US","[ft_us]/[ft_us]","[FT_US]/[FT_US]","length",1,[0,0,0,0,0,0,0],"(ftus)/(ftus)","us-lengths",!1,null,null,1,!1,!1,0,"ft/ft; ft per ft; feet per feet; visual acuity","","LenRto","Clinical","distance ratio to measure 20:20 vision","m/3937","M/3937","1200",1200,!1],[!1,"GPL unit per milliliter","[GPL'U]/mL","[GPL'U]/ML","biologic activity of anticardiolipin IgG",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"GPL U/mL; GPL'U/mL; GPL/mL; GPL U per mL; IgG Phospholipid Units per milliliters; IgG anticardiolipin units; millilitres ","LOINC","ACnc; AMass","Clinical","Units for an antiphospholipid test","1","1","1",1,!1],[!1,"international unit per 2 hour","[IU]/(2.h)","[IU]/(2.HR)","arbitrary",.0001388888888888889,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/2hrs; IU/2 hours; IU per 2 hrs; international units per 2 hours","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per 24 hour","[IU]/(24.h)","[IU]/(24.HR)","arbitrary",11574074074074073e-21,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/24hr; IU/24 hours; IU per 24 hrs; international units per 24 hours","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per day","[IU]/d","[IU]/D","arbitrary",11574074074074073e-21,[0,-1,0,0,0,0,0],"(i.U.)/d","chemical",!0,null,null,1,!1,!0,0,"IU/dy; IU/days; IU per dys; international units per day","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per deciliter","[IU]/dL","[IU]/DL","arbitrary",1e4,[-3,0,0,0,0,0,0],"(i.U.)/dL","chemical",!0,null,null,1,!1,!0,0,"IU/dL; IU per dL; international units per deciliters; decilitres","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per gram","[IU]/g","[IU]/G","arbitrary",1,[0,0,-1,0,0,0,0],"(i.U.)/g","chemical",!0,null,null,1,!1,!0,0,"IU/gm; IU/gram; IU per gm; IU per g; international units per gram","LOINC","ACnt","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per hour","[IU]/h","[IU]/HR","arbitrary",.0002777777777777778,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/hrs; IU per hours; international units per hour","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per kilogram","[IU]/kg","[IU]/KG","arbitrary",.001,[0,0,-1,0,0,0,0],"(i.U.)/kg","chemical",!0,null,null,1,!1,!0,0,"IU/kg; IU/kilogram; IU per kg; units","LOINC","ACnt","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per kilogram per day","[IU]/kg/d","([IU]/KG)/D","arbitrary",11574074074074074e-24,[0,-1,-1,0,0,0,0],"((i.U.)/kg)/d","chemical",!0,null,null,1,!1,!0,0,"IU/kg/dy; IU/kg/day; IU/kilogram/day; IU per kg per day; units","LOINC","ACntRat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per liter","[IU]/L","[IU]/L","arbitrary",1e3,[-3,0,0,0,0,0,0],"(i.U.)/L","chemical",!0,null,null,1,!1,!0,0,"IU/L; IU/liter; IU per liter; units; litre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per minute","[IU]/min","[IU]/MIN","arbitrary",.016666666666666666,[0,-1,0,0,0,0,0],"(i.U.)/min","chemical",!0,null,null,1,!1,!0,0,"IU/min; IU/minute; IU per minute; international units","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per milliliter","[IU]/mL","[IU]/ML","arbitrary",1e6,[-3,0,0,0,0,0,0],"(i.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"IU/mL; IU per mL; international units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"MPL unit per milliliter","[MPL'U]/mL","[MPL'U]/ML","biologic activity of anticardiolipin IgM",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"MPL/mL; MPL U/mL; MPL'U/mL; IgM anticardiolipin units; IgM Phospholipid Units; millilitre ","LOINC","ACnc","Clinical",`units for antiphospholipid test +`,"1","1","1",1,!1],[!1,"number per high power field","{#}/[HPF]","{#}/[HPF]","",1,[0,0,0,0,0,0,0],"/HPF",null,!1,null,null,1,!1,!1,0,"#/HPF; # per HPF; number/HPF; numbers per high power field","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"number per low power field","{#}/[LPF]","{#}/[LPF]","",1,[0,0,0,0,0,0,0],"/LPF",null,!1,null,null,1,!1,!1,0,"#/LPF; # per LPF; number/LPF; numbers per low power field","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"IgA antiphosphatidylserine unit ","{APS'U}","{APS'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"APS Unit; Phosphatidylserine Antibody IgA Units","LOINC","ACnc","Clinical","unit for antiphospholipid test",null,null,null,null,!1],[!1,"EIA index","{EIA_index}","{EIA_index}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"enzyme immunoassay index","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"kaolin clotting time","{KCT'U}","{KCT'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"KCT","LOINC","Time","Clinical","sensitive\xA0test to detect\xA0lupus anticoagulants; measured in seconds",null,null,null,null,!1],[!1,"IgM antiphosphatidylserine unit","{MPS'U}","{MPS'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"Phosphatidylserine Antibody IgM Measurement ","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"trillion per liter","10*12/L","(10*12)/L","number",1e15,[-3,0,0,0,0,0,0],"(1012)/L","dimless",!1,null,null,1,!1,!1,0,"10^12/L; 10*12 per Liter; trillion per liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^3 (used for cell count)","10*3","10*3","number",1e3,[0,0,0,0,0,0,0],"103","dimless",!1,null,null,1,!1,!1,0,"10^3; thousand","LOINC","Num","Clinical","usually used for counting entities (e.g. blood cells) per volume","1","1","10",10,!1],[!1,"thousand per liter","10*3/L","(10*3)/L","number",1e6,[-3,0,0,0,0,0,0],"(103)/L","dimless",!1,null,null,1,!1,!1,0,"10^3/L; 10*3 per liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"thousand per milliliter","10*3/mL","(10*3)/ML","number",1e9,[-3,0,0,0,0,0,0],"(103)/mL","dimless",!1,null,null,1,!1,!1,0,"10^3/mL; 10*3 per mL; thousand per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"thousand per microliter","10*3/uL","(10*3)/UL","number",9999999999999999e-4,[-3,0,0,0,0,0,0],"(103)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^3/uL; 10*3 per uL; thousand per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10 thousand per microliter","10*4/uL","(10*4)/UL","number",1e13,[-3,0,0,0,0,0,0],"(104)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^4/uL; 10*4 per uL; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^5 ","10*5","10*5","number",1e5,[0,0,0,0,0,0,0],"105","dimless",!1,null,null,1,!1,!1,0,"one hundred thousand","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"10^6","10*6","10*6","number",1e6,[0,0,0,0,0,0,0],"106","dimless",!1,null,null,1,!1,!1,0,"","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"million colony forming unit per liter","10*6.[CFU]/L","((10*6).[CFU])/L","number",1e9,[-3,0,0,0,0,0,0],"((106).CFU)/L","dimless",!1,null,null,1,!1,!0,0,"10*6 CFU/L; 10^6 CFU/L; 10^6CFU; 10^6 CFU per liter; million colony forming units; litre","LOINC","ACnc","Clinical","","1","1","10",10,!1],[!1,"million international unit","10*6.[IU]","(10*6).[IU]","number",1e6,[0,0,0,0,0,0,0],"(106).(i.U.)","dimless",!1,null,null,1,!1,!0,0,"10*6 IU; 10^6 IU; international units","LOINC","arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","1","1","10",10,!1],[!1,"million per 24 hour","10*6/(24.h)","(10*6)/(24.HR)","number",11.574074074074074,[0,-1,0,0,0,0,0],"(106)/h","dimless",!1,null,null,1,!1,!1,0,"10*6/24hrs; 10^6/24 hrs; 10*6 per 24 hrs; 10^6 per 24 hours","LOINC","NRat","Clinical","","1","1","10",10,!1],[!1,"million per kilogram","10*6/kg","(10*6)/KG","number",1e3,[0,0,-1,0,0,0,0],"(106)/kg","dimless",!1,null,null,1,!1,!1,0,"10^6/kg; 10*6 per kg; 10*6 per kilogram; millions","LOINC","NCnt","Clinical","","1","1","10",10,!1],[!1,"million per liter","10*6/L","(10*6)/L","number",1e9,[-3,0,0,0,0,0,0],"(106)/L","dimless",!1,null,null,1,!1,!1,0,"10^6/L; 10*6 per Liter; 10^6 per Liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"million per milliliter","10*6/mL","(10*6)/ML","number",1e12,[-3,0,0,0,0,0,0],"(106)/mL","dimless",!1,null,null,1,!1,!1,0,"10^6/mL; 10*6 per mL; 10*6 per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"million per microliter","10*6/uL","(10*6)/UL","number",1e15,[-3,0,0,0,0,0,0],"(106)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^6/uL; 10^6 per uL; 10^6/mcl; 10^6 per mcl; 10^6 per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^8","10*8","10*8","number",1e8,[0,0,0,0,0,0,0],"108","dimless",!1,null,null,1,!1,!1,0,"100 million; one hundred million; 10^8","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"billion per liter","10*9/L","(10*9)/L","number",1e12,[-3,0,0,0,0,0,0],"(109)/L","dimless",!1,null,null,1,!1,!1,0,"10^9/L; 10*9 per Liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"billion per milliliter","10*9/mL","(10*9)/ML","number",1e15,[-3,0,0,0,0,0,0],"(109)/mL","dimless",!1,null,null,1,!1,!1,0,"10^9/mL; 10*9 per mL; 10^9 per mL; 10*9 per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"billion per microliter","10*9/uL","(10*9)/UL","number",1e18,[-3,0,0,0,0,0,0],"(109)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^9/uL; 10^9 per uL; 10^9/mcl; 10^9 per mcl; 10*9 per uL; 10*9 per mcl; 10*9/mcl; 10^9 per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10 liter per minute per square meter","10.L/(min.m2)","(10.L)/(MIN.M2)","",.00016666666666666666,[1,-1,0,0,0,0,0],"L/(min.(m2))",null,!1,null,null,1,!1,!1,0,"10 liters per minutes per square meter; 10 L per min per m2; m^2; 10 L/(min*m2); 10L/(min*m^2); litres; sq. meter; metre; meters squared","LOINC","ArVRat","Clinical","",null,null,null,null,!1],[!1,"10 liter per minute","10.L/min","(10.L)/MIN","",.00016666666666666666,[3,-1,0,0,0,0,0],"L/min",null,!1,null,null,1,!1,!1,0,"10 liters per minute; 10 L per min; 10L; 10 L/min; litre","LOINC","VRat","Clinical","",null,null,null,null,!1],[!1,"10 micronewton second per centimeter to the fifth power per square meter","10.uN.s/(cm5.m2)","((10.UN).S)/(CM5.M2)","",1e8,[-6,-1,1,0,0,0,0],"(\u03BCN.s)/(cm5).(m2)",null,!1,null,null,1,!1,!1,0,"dyne seconds per centimeter5 and square meter; dyn.s/(cm5.m2); dyn.s/cm5/m2; cm^5; m^2","LOINC","","Clinical","unit to measure systemic vascular resistance per body surface area",null,null,null,null,!1],[!1,"24 hour","24.h","24.HR","",86400,[0,1,0,0,0,0,0],"h",null,!1,null,null,1,!1,!1,0,"24hrs; 24 hrs; 24 hours; days; dy","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"ampere per meter","A/m","A/M","electric current",1,[-1,-1,0,0,0,1,0],"A/m","si",!0,null,null,1,!1,!1,0,"A/m; amp/meter; magnetic field strength; H; B; amperes per meter; metre","LOINC","","Clinical","unit of magnetic field strength","C/s","C/S","1",1,!1],[!1,"centigram","cg","CG","mass",.01,[0,0,1,0,0,0,0],"cg",null,!1,"M",null,1,!1,!1,0,"centigrams; cg; cgm","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"centiliter","cL","CL","volume",1e-5,[3,0,0,0,0,0,0],"cL","iso1000",!0,null,null,1,!1,!1,0,"centiliters; centilitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"centimeter","cm","CM","length",.01,[1,0,0,0,0,0,0],"cm",null,!1,"L",null,1,!1,!1,0,"centimeters; centimetres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"centimeter of water","cm[H2O]","CM[H2O]","pressure",98066.5,[-1,-2,1,0,0,0,0],"cm\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"cm H2O; cmH2O; centimetres; pressure","LOINC","Pres","Clinical","unit of pressure mostly applies to blood pressure","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of water per liter per second","cm[H2O]/L/s","(CM[H2O]/L)/S","pressure",98066500,[-4,-3,1,0,0,0,0],"((cm\xA0HO2)/L)/s","clinical",!0,null,null,1,!1,!1,0,"cm[H2O]/(L/s); cm[H2O].s/L; cm H2O/L/sec; cmH2O/L/sec; cmH2O/Liter; cmH2O per L per secs; centimeters of water per liters per second; centimetres; litres; cm[H2O]/(L/s)","LOINC","PresRat","Clinical","unit used to measure mean pulmonary resistance","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of water per second per meter","cm[H2O]/s/m","(CM[H2O]/S)/M","pressure",98066.5,[-2,-3,1,0,0,0,0],"((cm\xA0HO2)/s)/m","clinical",!0,null,null,1,!1,!1,0,"cm[H2O]/(s.m); cm H2O/s/m; cmH2O; cmH2O/sec/m; cmH2O per secs per meters; centimeters of water per seconds per meter; centimetres; metre","LOINC","PresRat","Clinical","unit used to measure pulmonary pressure time product","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of mercury","cm[Hg]","CM[HG]","pressure",1333220,[-1,-2,1,0,0,0,0],"cm\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"centimeters of mercury; centimetres; cmHg; cm Hg","LOINC","Pres","Clinical","unit of pressure where 1 cmHg = 10 torr","kPa","KPAL","133.3220",133.322,!1],[!1,"square centimeter","cm2","CM2","length",1e-4,[2,0,0,0,0,0,0],"cm2",null,!1,"L",null,1,!1,!1,0,"cm^2; sq cm; centimeters squared; square centimeters; centimetre; area","LOINC","Area","Clinical","",null,null,null,null,!1],[!1,"square centimeter per second","cm2/s","CM2/S","length",1e-4,[2,-1,0,0,0,0,0],"(cm2)/s",null,!1,"L",null,1,!1,!1,0,"cm^2/sec; square centimeters per second; sq cm per sec; cm2; centimeters squared; centimetres","LOINC","AreaRat","Clinical","",null,null,null,null,!1],[!1,"centipoise","cP","CP","dynamic viscosity",1.0000000000000002,[-1,-1,1,0,0,0,0],"cP","cgs",!0,null,null,1,!1,!1,0,"cps; centiposes","LOINC","Visc","Clinical","unit of dynamic viscosity in the CGS system with base units: 10^\u22123 Pa.s = 1 mPa\xB7.s (1 millipascal second)","dyn.s/cm2","DYN.S/CM2","1",1,!1],[!1,"centistoke","cSt","CST","kinematic viscosity",1e-6,[2,-1,0,0,0,0,0],"cSt","cgs",!0,null,null,1,!1,!1,0,"centistokes","LOINC","Visc","Clinical","unit for kinematic viscosity with base units of mm^2/s (square millimeter per second)","cm2/s","CM2/S","1",1,!1],[!1,"dekaliter per minute","daL/min","DAL/MIN","volume",.00016666666666666666,[3,-1,0,0,0,0,0],"daL/min","iso1000",!0,null,null,1,!1,!1,0,"dekalitres; dekaliters per minute; per min","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"dekaliter per minute per square meter","daL/min/m2","(DAL/MIN)/M2","volume",.00016666666666666666,[1,-1,0,0,0,0,0],"(daL/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"daL/min/m^2; daL/minute/m2; sq. meter; dekaliters per minutes per square meter; meter squared; dekalitres; metre","LOINC","ArVRat","Clinical","The area usually is the body surface area used to normalize cardiovascular measures for patient's size","l",null,"1",1,!1],[!1,"decibel","dB","DB","level",1,[0,0,0,0,0,0,0],"dB","levels",!0,null,"lg",.1,!0,!1,0,"decibels","LOINC","LogRto","Clinical","unit most commonly used in acoustics as unit of sound pressure level. (also see B[SPL] or bel sound pressure level). ","1",null,null,1,!1],[!1,"degree per second","deg/s","DEG/S","plane angle",.017453292519943295,[0,-1,0,1,0,0,0],"\xB0/s","iso1000",!1,null,null,1,!1,!1,0,"deg/sec; deg per sec; \xB0/sec; twist rate; angular speed; rotational speed","LOINC","ARat","Clinical","unit of angular (rotational) speed used to express turning rate","[pi].rad/360","[PI].RAD/360","2",2,!1],[!1,"decigram","dg","DG","mass",.1,[0,0,1,0,0,0,0],"dg",null,!1,"M",null,1,!1,!1,0,"decigrams; dgm; 0.1 grams; 1/10 gm","LOINC","Mass","Clinical","equal to 1/10 gram",null,null,null,null,!1],[!1,"deciliter","dL","DL","volume",1e-4,[3,0,0,0,0,0,0],"dL","iso1000",!0,null,null,1,!1,!1,0,"deciliters; decilitres; 0.1 liters; 1/10 L","LOINC","Vol","Clinical","equal to 1/10 liter","l",null,"1",1,!1],[!1,"decimeter","dm","DM","length",.1,[1,0,0,0,0,0,0],"dm",null,!1,"L",null,1,!1,!1,0,"decimeters; decimetres; 0.1 meters; 1/10 m; 10 cm; centimeters","LOINC","Len","Clinical","equal to 1/10 meter or 10 centimeters",null,null,null,null,!1],[!1,"square decimeter per square second","dm2/s2","DM2/S2","length",.010000000000000002,[2,-2,0,0,0,0,0],"(dm2)/(s2)",null,!1,"L",null,1,!1,!1,0,"dm2 per s2; dm^2/s^2; decimeters squared per second squared; sq dm; sq sec","LOINC","EngMass (massic energy)","Clinical","units for energy per unit mass or Joules per kilogram (J/kg = kg.m2/s2/kg = m2/s2) ",null,null,null,null,!1],[!1,"dyne second per centimeter per square meter","dyn.s/(cm.m2)","(DYN.S)/(CM.M2)","force",1,[-2,-1,1,0,0,0,0],"(dyn.s)/(cm.(m2))","cgs",!0,null,null,1,!1,!1,0,"(dyn*s)/(cm*m2); (dyn*s)/(cm*m^2); dyn s per cm per m2; m^2; dyne seconds per centimeters per square meter; centimetres; sq. meter; squared","LOINC","","Clinical","","g.cm/s2","G.CM/S2","1",1,!1],[!1,"dyne second per centimeter","dyn.s/cm","(DYN.S)/CM","force",1,[0,-1,1,0,0,0,0],"(dyn.s)/cm","cgs",!0,null,null,1,!1,!1,0,"(dyn*s)/cm; dyn sec per cm; seconds; centimetre; dyne seconds","LOINC","","Clinical","","g.cm/s2","G.CM/S2","1",1,!1],[!1,"equivalent per liter","eq/L","EQ/L","amount of substance",60221366999999994e10,[-3,0,0,0,0,0,0],"eq/L","chemical",!0,null,null,1,!1,!1,1,"eq/liter; eq/litre; eqs; equivalents per liter; litre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per milliliter","eq/mL","EQ/ML","amount of substance",60221367e22,[-3,0,0,0,0,0,0],"eq/mL","chemical",!0,null,null,1,!1,!1,1,"equivalent/milliliter; equivalents per milliliter; eq per mL; millilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per millimole","eq/mmol","EQ/MMOL","amount of substance",1e3,[0,0,0,0,0,0,0],"eq/mmol","chemical",!0,null,null,1,!1,!1,0,"equivalent/millimole; equivalents per millimole; eq per mmol","LOINC","SRto","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per micromole","eq/umol","EQ/UMOL","amount of substance",1e6,[0,0,0,0,0,0,0],"eq/\u03BCmol","chemical",!0,null,null,1,!1,!1,0,"equivalent/micromole; equivalents per micromole; eq per umol","LOINC","SRto","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"femtogram","fg","FG","mass",1e-15,[0,0,1,0,0,0,0],"fg",null,!1,"M",null,1,!1,!1,0,"fg; fgm; femtograms; weight","LOINC","Mass","Clinical","equal to 10^-15 grams",null,null,null,null,!1],[!1,"femtoliter","fL","FL","volume",1e-18,[3,0,0,0,0,0,0],"fL","iso1000",!0,null,null,1,!1,!1,0,"femtolitres; femtoliters","LOINC","Vol; EntVol","Clinical","equal to 10^-15 liters","l",null,"1",1,!1],[!1,"femtometer","fm","FM","length",1e-15,[1,0,0,0,0,0,0],"fm",null,!1,"L",null,1,!1,!1,0,"femtometres; femtometers","LOINC","Len","Clinical","equal to 10^-15 meters",null,null,null,null,!1],[!1,"femtomole","fmol","FMOL","amount of substance",602213670,[0,0,0,0,0,0,0],"fmol","si",!0,null,null,1,!1,!1,1,"femtomoles","LOINC","EntSub","Clinical","equal to 10^-15 moles","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per gram","fmol/g","FMOL/G","amount of substance",602213670,[0,0,-1,0,0,0,0],"fmol/g","si",!0,null,null,1,!1,!1,1,"femtomoles; fmol/gm; fmol per gm","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per liter","fmol/L","FMOL/L","amount of substance",60221367e4,[-3,0,0,0,0,0,0],"fmol/L","si",!0,null,null,1,!1,!1,1,"femtomoles; fmol per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per milligram","fmol/mg","FMOL/MG","amount of substance",60221367e4,[0,0,-1,0,0,0,0],"fmol/mg","si",!0,null,null,1,!1,!1,1,"fmol per mg; femtomoles","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per milliliter","fmol/mL","FMOL/ML","amount of substance",60221367e7,[-3,0,0,0,0,0,0],"fmol/mL","si",!0,null,null,1,!1,!1,1,"femtomoles; millilitre; fmol per mL; fmol per milliliter","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"gram meter","g.m","G.M","mass",1,[1,0,1,0,0,0,0],"g.m",null,!1,"M",null,1,!1,!1,0,"g*m; gxm; meters; metres","LOINC","Enrg","Clinical","Unit for measuring stroke work (heart work)",null,null,null,null,!1],[!1,"gram per 100 gram","g/(100.g)","G/(100.G)","mass",.01,[0,0,0,0,0,0,0],"g/g",null,!1,"M",null,1,!1,!1,0,"g/100 gm; 100gm; grams per 100 grams; gm per 100 gm","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"gram per 12 hour","g/(12.h)","G/(12.HR)","mass",23148148148148147e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/12hrs; 12 hrs; gm per 12 hrs; 12hrs; grams per 12 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 24 hour","g/(24.h)","G/(24.HR)","mass",11574074074074073e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/24hrs; gm/24 hrs; gm per 24 hrs; 24hrs; grams per 24 hours; gm/dy; gm per dy; grams per day","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 3 days","g/(3.d)","G/(3.D)","mass",3858024691358025e-21,[0,-1,1,0,0,0,0],"g/d",null,!1,"M",null,1,!1,!1,0,"gm/3dy; gm/3 dy; gm per 3 days; grams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 4 hour","g/(4.h)","G/(4.HR)","mass",6944444444444444e-20,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/4hrs; gm/4 hrs; gm per 4 hrs; 4hrs; grams per 4 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 48 hour","g/(48.h)","G/(48.HR)","mass",5787037037037037e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/48hrs; gm/48 hrs; gm per 48 hrs; 48hrs; grams per 48 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 5 hour","g/(5.h)","G/(5.HR)","mass",5555555555555556e-20,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/5hrs; gm/5 hrs; gm per 5 hrs; 5hrs; grams per 5 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 6 hour","g/(6.h)","G/(6.HR)","mass",46296296296296294e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/6hrs; gm/6 hrs; gm per 6 hrs; 6hrs; grams per 6 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 72 hour","g/(72.h)","G/(72.HR)","mass",3858024691358025e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/72hrs; gm/72 hrs; gm per 72 hrs; 72hrs; grams per 72 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per cubic centimeter","g/cm3","G/CM3","mass",999999.9999999999,[-3,0,1,0,0,0,0],"g/(cm3)",null,!1,"M",null,1,!1,!1,0,"g/cm^3; gm per cm3; g per cm^3; grams per centimeter cubed; cu. cm; centimetre; g/mL; gram per milliliter; millilitre","LOINC","MCnc","Clinical","g/cm3 = g/mL",null,null,null,null,!1],[!1,"gram per day","g/d","G/D","mass",11574074074074073e-21,[0,-1,1,0,0,0,0],"g/d",null,!1,"M",null,1,!1,!1,0,"gm/dy; gm per dy; grams per day; gm/24hrs; gm/24 hrs; gm per 24 hrs; 24hrs; grams per 24 hours; serving","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per deciliter","g/dL","G/DL","mass",1e4,[-3,0,1,0,0,0,0],"g/dL",null,!1,"M",null,1,!1,!1,0,"gm/dL; gm per dL; grams per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per gram","g/g","G/G","mass",1,[0,0,0,0,0,0,0],"g/g",null,!1,"M",null,1,!1,!1,0,"gm; grams","LOINC","MRto ","Clinical","",null,null,null,null,!1],[!1,"gram per hour","g/h","G/HR","mass",.0002777777777777778,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/hr; gm per hr; grams; intake; output","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per hour per square meter","g/h/m2","(G/HR)/M2","mass",.0002777777777777778,[-2,-1,1,0,0,0,0],"(g/h)/(m2)",null,!1,"M",null,1,!1,!1,0,"gm/hr/m2; gm/h/m2; /m^2; sq. m; g per hr per m2; grams per hours per square meter; meter squared; metre","LOINC","ArMRat","Clinical","",null,null,null,null,!1],[!1,"gram per kilogram","g/kg ","G/KG","mass",.001,[0,0,0,0,0,0,0],"g/kg",null,!1,"M",null,1,!1,!1,0,"g per kg; gram per kilograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"gram per kilogram per 8 hour ","g/kg/(8.h)","(G/KG)/(8.HR)","mass",3472222222222222e-23,[0,-1,0,0,0,0,0],"(g/kg)/h",null,!1,"M",null,1,!1,!1,0,"g/(8.kg.h); gm/kg/8hrs; 8 hrs; g per kg per 8 hrs; 8hrs; grams per kilograms per 8 hours; shift","LOINC","MCntRat; RelMRat","Clinical","unit often used to describe mass in grams of protein consumed in a 8 hours, divided by the subject's body weight in kilograms. Also used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per day","g/kg/d","(G/KG)/D","mass",11574074074074074e-24,[0,-1,0,0,0,0,0],"(g/kg)/d",null,!1,"M",null,1,!1,!1,0,"g/(kg.d); gm/kg/dy; gm per kg per dy; grams per kilograms per day","LOINC","RelMRat","Clinical","unit often used to describe mass in grams of protein consumed in a day, divided by the subject's body weight in kilograms. Also used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per hour","g/kg/h","(G/KG)/HR","mass",27777777777777776e-23,[0,-1,0,0,0,0,0],"(g/kg)/h",null,!1,"M",null,1,!1,!1,0,"g/(kg.h); g/kg/hr; g per kg per hrs; grams per kilograms per hour","LOINC","MCntRat; RelMRat","Clinical","unit used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per minute","g/kg/min","(G/KG)/MIN","mass",16666666666666667e-21,[0,-1,0,0,0,0,0],"(g/kg)/min",null,!1,"M",null,1,!1,!1,0,"g/(kg.min); g/kg/min; g per kg per min; grams per kilograms per minute","LOINC","MCntRat; RelMRat","Clinical","unit used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per liter","g/L","G/L","mass",1e3,[-3,0,1,0,0,0,0],"g/L",null,!1,"M",null,1,!1,!1,0,"gm per liter; g/liter; grams per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per square meter","g/m2","G/M2","mass",1,[-2,0,1,0,0,0,0],"g/(m2)",null,!1,"M",null,1,!1,!1,0,"g/m^2; gram/square meter; g/sq m; g per m2; g per m^2; grams per square meter; meters squared; metre","LOINC","ArMass","Clinical","Tests measure myocardial mass (heart ventricle system) per body surface area; unit used to measure mass dose per body surface area",null,null,null,null,!1],[!1,"gram per milligram","g/mg","G/MG","mass",1e3,[0,0,0,0,0,0,0],"g/mg",null,!1,"M",null,1,!1,!1,0,"g per mg; grams per milligram","LOINC","MCnt; MRto","Clinical","",null,null,null,null,!1],[!1,"gram per minute","g/min","G/MIN","mass",.016666666666666666,[0,-1,1,0,0,0,0],"g/min",null,!1,"M",null,1,!1,!1,0,"g per min; grams per minute; gram/minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per milliliter","g/mL","G/ML","mass",1e6,[-3,0,1,0,0,0,0],"g/mL",null,!1,"M",null,1,!1,!1,0,"g per mL; grams per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per millimole","g/mmol","G/MMOL","mass",16605401866749388e-37,[0,0,1,0,0,0,0],"g/mmol",null,!1,"M",null,1,!1,!1,-1,"grams per millimole; g per mmol","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"joule per liter","J/L","J/L","energy",1e6,[-1,-2,1,0,0,0,0],"J/L","si",!0,null,null,1,!1,!1,0,"joules per liter; litre; J per L","LOINC","EngCnc","Clinical","","N.m","N.M","1",1,!1],[!1,"degree Kelvin per Watt","K/W","K/W","temperature",.001,[-2,3,-1,0,1,0,0],"K/W",null,!1,"C",null,1,!1,!1,0,"degree Kelvin/Watt; K per W; thermal ohm; thermal resistance; degrees","LOINC","TempEngRat","Clinical","unit for absolute thermal resistance equal to the reciprocal of thermal conductance. Unit used for tests to measure work of breathing",null,null,null,null,!1],[!1,"kilo international unit per liter","k[IU]/L","K[IU]/L","arbitrary",1e6,[-3,0,0,0,0,0,0],"(ki.U.)/L","chemical",!0,null,null,1,!1,!0,0,"kIU/L; kIU per L; kIU per liter; kilo international units; litre; allergens; allergy units","LOINC","ACnc","Clinical","IgE has an WHO reference standard so IgE allergen testing can be reported as k[IU]/L","[iU]","[IU]","1",1,!1],[!1,"kilo international unit per milliliter","k[IU]/mL","K[IU]/ML","arbitrary",1e9,[-3,0,0,0,0,0,0],"(ki.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"kIU/mL; kIU per mL; kIU per milliliter; kilo international units; millilitre; allergens; allergy units","LOINC","ACnc","Clinical","IgE has an WHO reference standard so IgE allergen testing can be reported as k[IU]/mL","[iU]","[IU]","1",1,!1],[!1,"katal per kilogram","kat/kg","KAT/KG","catalytic activity",60221367e13,[0,-1,-1,0,0,0,0],"kat/kg","chemical",!0,null,null,1,!1,!1,1,"kat per kg; katals per kilogram; mol/s/kg; moles per seconds per kilogram","LOINC","CCnt","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"katal per liter","kat/L","KAT/L","catalytic activity",60221366999999994e10,[-3,-1,0,0,0,0,0],"kat/L","chemical",!0,null,null,1,!1,!1,1,"kat per L; katals per liter; litre; mol/s/L; moles per seconds per liter","LOINC","CCnc","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"kilocalorie","kcal","KCAL","energy",4184e3,[2,-2,1,0,0,0,0],"kcal","heat",!0,null,null,1,!1,!1,0,"kilogram calories; large calories; food calories; kcals","LOINC","EngRat","Clinical","It is equal to 1000 calories (equal to 4.184 kJ). But in practical usage, kcal refers to food calories which excludes caloric content in fiber and other constitutes that is not digestible by humans. Also see nutrition label Calories ([Cal])","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per 24 hour","kcal/(24.h)","KCAL/(24.HR)","energy",48.425925925925924,[2,-3,1,0,0,0,0],"kcal/h","heat",!0,null,null,1,!1,!1,0,"kcal/24hrs; kcal/24 hrs; kcal per 24hrs; kilocalories per 24 hours; kilojoules; kJ/24hr; kJ/(24.h); kJ/dy; kilojoules per days; intake; calories burned; metabolic rate; food calories","","EngRat","Clinical","","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per ounce","kcal/[oz_av]","KCAL/[OZ_AV]","energy",147586.25679704445,[2,-2,0,0,0,0,0],"kcal/oz","heat",!0,null,null,1,!1,!1,0,"kcal/oz; kcal per ozs; large calories per ounces; food calories; servings; international","LOINC","EngCnt","Clinical","used in nutrition to represent calorie of food","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per day","kcal/d","KCAL/D","energy",48.425925925925924,[2,-3,1,0,0,0,0],"kcal/d","heat",!0,null,null,1,!1,!1,0,"kcal/dy; kcal per day; kilocalories per days; kilojoules; kJ/dy; kilojoules per days; intake; calories burned; metabolic rate; food calories","LOINC","EngRat","Clinical","unit in nutrition for food intake (measured in calories) in a day","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per hour","kcal/h","KCAL/HR","energy",1162.2222222222222,[2,-3,1,0,0,0,0],"kcal/h","heat",!0,null,null,1,!1,!1,0,"kcal/hrs; kcals per hr; intake; kilocalories per hours; kilojoules","LOINC","EngRat","Clinical","used in nutrition to represent caloric requirement or consumption","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per kilogram per 24 hour","kcal/kg/(24.h)","(KCAL/KG)/(24.HR)","energy",.04842592592592593,[2,-3,0,0,0,0,0],"(kcal/kg)/h","heat",!0,null,null,1,!1,!1,0,"kcal/kg/24hrs; 24 hrs; kcal per kg per 24hrs; kilocalories per kilograms per 24 hours; kilojoules","LOINC","EngCntRat","Clinical","used in nutrition to represent caloric requirement per day based on subject's body weight in kilograms","cal_th","CAL_TH","1",1,!1],[!1,"kilogram","kg","KG","mass",1e3,[0,0,1,0,0,0,0],"kg",null,!1,"M",null,1,!1,!1,0,"kilograms; kgs","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"kilogram meter per second","kg.m/s","(KG.M)/S","mass",1e3,[1,-1,1,0,0,0,0],"(kg.m)/s",null,!1,"M",null,1,!1,!1,0,"kg*m/s; kg.m per sec; kg*m per sec; p; momentum","LOINC","","Clinical","unit for momentum = mass times velocity",null,null,null,null,!1],[!1,"kilogram per second per square meter","kg/(s.m2)","KG/(S.M2)","mass",1e3,[-2,-1,1,0,0,0,0],"kg/(s.(m2))",null,!1,"M",null,1,!1,!1,0,"kg/(s*m2); kg/(s*m^2); kg per s per m2; per sec; per m^2; kilograms per seconds per square meter; meter squared; metre","LOINC","ArMRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per hour","kg/h","KG/HR","mass",.2777777777777778,[0,-1,1,0,0,0,0],"kg/h",null,!1,"M",null,1,!1,!1,0,"kg/hr; kg per hr; kilograms per hour","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per liter","kg/L","KG/L","mass",1e6,[-3,0,1,0,0,0,0],"kg/L",null,!1,"M",null,1,!1,!1,0,"kg per liter; litre; kilograms","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"kilogram per square meter","kg/m2","KG/M2","mass",1e3,[-2,0,1,0,0,0,0],"kg/(m2)",null,!1,"M",null,1,!1,!1,0,"kg/m^2; kg/sq. m; kg per m2; per m^2; per sq. m; kilograms; meter squared; metre; BMI","LOINC","Ratio","Clinical","units for body mass index (BMI)",null,null,null,null,!1],[!1,"kilogram per cubic meter","kg/m3","KG/M3","mass",1e3,[-3,0,1,0,0,0,0],"kg/(m3)",null,!1,"M",null,1,!1,!1,0,"kg/m^3; kg/cu. m; kg per m3; per m^3; per cu. m; kilograms; meters cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"kilogram per minute","kg/min","KG/MIN","mass",16.666666666666668,[0,-1,1,0,0,0,0],"kg/min",null,!1,"M",null,1,!1,!1,0,"kilogram/minute; kg per min; kilograms per minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per mole","kg/mol","KG/MOL","mass",16605401866749388e-37,[0,0,1,0,0,0,0],"kg/mol",null,!1,"M",null,1,!1,!1,-1,"kilogram/mole; kg per mol; kilograms per mole","LOINC","SCnt","Clinical","",null,null,null,null,!1],[!1,"kilogram per second","kg/s","KG/S","mass",1e3,[0,-1,1,0,0,0,0],"kg/s",null,!1,"M",null,1,!1,!1,0,"kg/sec; kilogram/second; kg per sec; kilograms; second","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kiloliter","kL","KL","volume",1,[3,0,0,0,0,0,0],"kL","iso1000",!0,null,null,1,!1,!1,0,"kiloliters; kilolitres; m3; m^3; meters cubed; metre","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"kilometer","km","KM","length",1e3,[1,0,0,0,0,0,0],"km",null,!1,"L",null,1,!1,!1,0,"kilometers; kilometres; distance","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"kilopascal","kPa","KPAL","pressure",1e6,[-1,-2,1,0,0,0,0],"kPa","si",!0,null,null,1,!1,!1,0,"kilopascals; pressure","LOINC","Pres; PPresDiff","Clinical","","N/m2","N/M2","1",1,!1],[!1,"kilosecond","ks","KS","time",1e3,[0,1,0,0,0,0,0],"ks",null,!1,"T",null,1,!1,!1,0,"kiloseconds; ksec","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"kilo enzyme unit","kU","KU","catalytic activity",100368945e11,[0,-1,0,0,0,0,0],"kU","chemical",!0,null,null,1,!1,!1,1,"units; mmol/min; millimoles per minute","LOINC","CAct","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per gram","kU/g","KU/G","catalytic activity",100368945e11,[0,-1,-1,0,0,0,0],"kU/g","chemical",!0,null,null,1,!1,!1,1,"units per grams; kU per gm","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per liter","kU/L","KU/L","catalytic activity",100368945e14,[-3,-1,0,0,0,0,0],"kU/L","chemical",!0,null,null,1,!1,!1,1,"units per liter; litre; enzymatic activity; enzyme activity per volume; activities","LOINC","ACnc; CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per milliliter","kU/mL","KU/ML","catalytic activity",100368945e17,[-3,-1,0,0,0,0,0],"kU/mL","chemical",!0,null,null,1,!1,!1,1,"kU per mL; units per milliliter; millilitre; enzymatic activity per volume; enzyme activities","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"Liters per 24 hour","L/(24.h)","L/(24.HR)","volume",11574074074074074e-24,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/24hrs; L/24 hrs; L per 24hrs; liters per 24 hours; day; dy; litres; volume flow rate","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per 8 hour","L/(8.h)","L/(8.HR)","volume",3472222222222222e-23,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/8hrs; L/8 hrs; L per 8hrs; liters per 8 hours; litres; volume flow rate; shift","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute per square meter","L/(min.m2) ","L/(MIN.M2)","volume",16666666666666667e-21,[1,-1,0,0,0,0,0],"L/(min.(m2))","iso1000",!0,null,null,1,!1,!1,0,"L/(min.m2); L/min/m^2; L/min/sq. meter; L per min per m2; m^2; liters per minutes per square meter; meter squared; litres; metre ","LOINC","ArVRat","Clinical","unit for tests that measure cardiac output per body surface area (cardiac index)","l",null,"1",1,!1],[!1,"Liters per day","L/d","L/D","volume",11574074074074074e-24,[3,-1,0,0,0,0,0],"L/d","iso1000",!0,null,null,1,!1,!1,0,"L/dy; L per day; 24hrs; 24 hrs; 24 hours; liters; litres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per hour","L/h","L/HR","volume",27777777777777776e-23,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/hr; L per hr; litres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per kilogram","L/kg","L/KG","volume",1e-6,[3,0,-1,0,0,0,0],"L/kg","iso1000",!0,null,null,1,!1,!1,0,"L per kg; litre","LOINC","VCnt","Clinical","","l",null,"1",1,!1],[!1,"Liters per liter","L/L","L/L","volume",1,[0,0,0,0,0,0,0],"L/L","iso1000",!0,null,null,1,!1,!1,0,"L per L; liter/liter; litre","LOINC","VFr","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute","L/min","L/MIN","volume",16666666666666667e-21,[3,-1,0,0,0,0,0],"L/min","iso1000",!0,null,null,1,!1,!1,0,"liters per minute; litre","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute per square meter","L/min/m2","(L/MIN)/M2","volume",16666666666666667e-21,[1,-1,0,0,0,0,0],"(L/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"L/(min.m2); L/min/m^2; L/min/sq. meter; L per min per m2; m^2; liters per minutes per square meter; meter squared; litres; metre ","","ArVRat","Clinical","unit for tests that measure cardiac output per body surface area (cardiac index)","l",null,"1",1,!1],[!1,"Liters per second","L/s","L/S","volume",.001,[3,-1,0,0,0,0,0],"L/s","iso1000",!0,null,null,1,!1,!1,0,"L per sec; litres","LOINC","VRat","Clinical","unit used often to measure gas flow and peak expiratory flow","l",null,"1",1,!1],[!1,"Liters per second per square second","L/s/s2","(L/S)/S2","volume",.001,[3,-3,0,0,0,0,0],"(L/s)/(s2)","iso1000",!0,null,null,1,!1,!1,0,"L/s/s^2; L/sec/sec2; L/sec/sec^2; L/sec/sq. sec; L per s per s2; L per sec per sec2; s^2; sec^2; liters per seconds per square second; second squared; litres ","LOINC","ArVRat","Clinical","unit for tests that measure cardiac output/body surface area","l",null,"1",1,!1],[!1,"lumen square meter","lm.m2","LM.M2","luminous flux",1,[2,0,0,2,0,0,1],"lm.(m2)","si",!0,null,null,1,!1,!1,0,"lm*m2; lm*m^2; lumen meters squared; lumen sq. meters; metres","LOINC","","Clinical","","cd.sr","CD.SR","1",1,!1],[!1,"meter per second","m/s","M/S","length",1,[1,-1,0,0,0,0,0],"m/s",null,!1,"L",null,1,!1,!1,0,"meter/second; m per sec; meters per second; metres; velocity; speed","LOINC","Vel","Clinical","unit of velocity",null,null,null,null,!1],[!1,"meter per square second","m/s2","M/S2","length",1,[1,-2,0,0,0,0,0],"m/(s2)",null,!1,"L",null,1,!1,!1,0,"m/s^2; m/sq. sec; m per s2; per s^2; meters per square second; second squared; sq second; metres; acceleration","LOINC","Accel","Clinical","unit of acceleration",null,null,null,null,!1],[!1,"milli international unit per liter","m[IU]/L","M[IU]/L","arbitrary",1,[-3,0,0,0,0,0,0],"(mi.U.)/L","chemical",!0,null,null,1,!1,!0,0,"mIU/L; m IU/L; mIU per liter; units; litre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"milli international unit per milliliter","m[IU]/mL","M[IU]/ML","arbitrary",1000.0000000000001,[-3,0,0,0,0,0,0],"(mi.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"mIU/mL; m IU/mL; mIU per mL; milli international units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"square meter","m2","M2","length",1,[2,0,0,0,0,0,0],"m2",null,!1,"L",null,1,!1,!1,0,"m^2; sq m; square meters; meters squared; metres","LOINC","Area","Clinical","unit often used to represent body surface area",null,null,null,null,!1],[!1,"square meter per second","m2/s","M2/S","length",1,[2,-1,0,0,0,0,0],"(m2)/s",null,!1,"L",null,1,!1,!1,0,"m^2/sec; m2 per sec; m^2 per sec; sq m/sec; meters squared/seconds; sq m per sec; meters squared; metres","LOINC","ArRat","Clinical","",null,null,null,null,!1],[!1,"cubic meter per second","m3/s","M3/S","length",1,[3,-1,0,0,0,0,0],"(m3)/s",null,!1,"L",null,1,!1,!1,0,"m^3/sec; m3 per sec; m^3 per sec; cu m/sec; cubic meters per seconds; meters cubed; metres","LOINC","VRat","Clinical","",null,null,null,null,!1],[!1,"milliampere","mA","MA","electric current",.001,[0,-1,0,0,0,1,0],"mA","si",!0,null,null,1,!1,!1,0,"mamp; milliamperes","LOINC","ElpotRat","Clinical","unit of electric current","C/s","C/S","1",1,!1],[!1,"millibar","mbar","MBAR","pressure",1e5,[-1,-2,1,0,0,0,0],"mbar","iso1000",!0,null,null,1,!1,!1,0,"millibars","LOINC","Pres","Clinical","unit of pressure","Pa","PAL","1e5",1e5,!1],[!1,"millibar second per liter","mbar.s/L","(MBAR.S)/L","pressure",1e8,[-4,-1,1,0,0,0,0],"(mbar.s)/L","iso1000",!0,null,null,1,!1,!1,0,"mbar*s/L; mbar.s per L; mbar*s per L; millibar seconds per liter; millibar second per litre","LOINC","","Clinical","unit to measure expiratory resistance","Pa","PAL","1e5",1e5,!1],[!1,"millibar per liter per second","mbar/L/s","(MBAR/L)/S","pressure",1e8,[-4,-3,1,0,0,0,0],"(mbar/L)/s","iso1000",!0,null,null,1,!1,!1,0,"mbar/(L.s); mbar/L/sec; mbar/liter/second; mbar per L per sec; mbar per liter per second; millibars per liters per seconds; litres","LOINC","PresCncRat","Clinical","unit to measure expiratory resistance","Pa","PAL","1e5",1e5,!1],[!1,"milliequivalent","meq","MEQ","amount of substance",60221367e13,[0,0,0,0,0,0,0],"meq","chemical",!0,null,null,1,!1,!1,1,"milliequivalents; meqs","LOINC","Sub","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 2 hour","meq/(2.h)","MEQ/(2.HR)","amount of substance",836407875e8,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/2hrs; meq/2 hrs; meq per 2 hrs; milliequivalents per 2 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 24 hour","meq/(24.h)","MEQ/(24.HR)","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/24hrs; meq/24 hrs; meq per 24 hrs; milliequivalents per 24 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 8 hour","meq/(8.h)","MEQ/(8.HR)","amount of substance",20910196875e6,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/8hrs; meq/8 hrs; meq per 8 hrs; milliequivalents per 8 hours; shift","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per day","meq/d","MEQ/D","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"meq/d","chemical",!0,null,null,1,!1,!1,1,"meq/dy; meq per day; milliquivalents per days; meq/24hrs; meq/24 hrs; meq per 24 hrs; milliequivalents per 24 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per deciliter","meq/dL","MEQ/DL","amount of substance",6022136699999999e9,[-3,0,0,0,0,0,0],"meq/dL","chemical",!0,null,null,1,!1,!1,1,"meq per dL; milliequivalents per deciliter; decilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per gram","meq/g","MEQ/G","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"meq/g","chemical",!0,null,null,1,!1,!1,1,"mgq/gm; meq per gm; milliequivalents per gram","LOINC","MCnt","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per hour","meq/h","MEQ/HR","amount of substance",167281575e9,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/hrs; meq per hrs; milliequivalents per hour","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per kilogram","meq/kg","MEQ/KG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"meq/kg","chemical",!0,null,null,1,!1,!1,1,"meq per kg; milliequivalents per kilogram","LOINC","SCnt","Clinical","equivalence equals moles per valence; used to measure dose per patient body mass","mol","MOL","1",1,!1],[!1,"milliequivalent per kilogram per hour","meq/kg/h","(MEQ/KG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(meq/kg)/h","chemical",!0,null,null,1,!1,!1,1,"meq/(kg.h); meq/kg/hr; meq per kg per hr; milliequivalents per kilograms per hour","LOINC","SCntRat","Clinical","equivalence equals moles per valence; unit used to measure dose rate per patient body mass","mol","MOL","1",1,!1],[!1,"milliequivalent per liter","meq/L","MEQ/L","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"meq/L","chemical",!0,null,null,1,!1,!1,1,"milliequivalents per liter; litre; meq per l; acidity","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per square meter","meq/m2","MEQ/M2","amount of substance",60221367e13,[-2,0,0,0,0,0,0],"meq/(m2)","chemical",!0,null,null,1,!1,!1,1,"meq/m^2; meq/sq. m; milliequivalents per square meter; meter squared; metre","LOINC","ArSub","Clinical","equivalence equals moles per valence; note that the use of m2 in clinical units ofter refers to body surface area","mol","MOL","1",1,!1],[!1,"milliequivalent per minute","meq/min","MEQ/MIN","amount of substance",100368945e11,[0,-1,0,0,0,0,0],"meq/min","chemical",!0,null,null,1,!1,!1,1,"meq per min; milliequivalents per minute","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per milliliter","meq/mL","MEQ/ML","amount of substance",60221367e19,[-3,0,0,0,0,0,0],"meq/mL","chemical",!0,null,null,1,!1,!1,1,"meq per mL; milliequivalents per milliliter; millilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milligram","mg","MG","mass",.001,[0,0,1,0,0,0,0],"mg",null,!1,"M",null,1,!1,!1,0,"milligrams","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"milligram per 10 hour","mg/(10.h)","MG/(10.HR)","mass",27777777777777777e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/10hrs; mg/10 hrs; mg per 10 hrs; milligrams per 10 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 12 hour","mg/(12.h)","MG/(12.HR)","mass",23148148148148148e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/12hrs; mg/12 hrs; per 12 hrs; 12hrs; milligrams per 12 hours","LOINC","MRat","Clinical","units used for tests in urine",null,null,null,null,!1],[!1,"milligram per 2 hour","mg/(2.h)","MG/(2.HR)","mass",13888888888888888e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/2hrs; mg/2 hrs; mg per 2 hrs; 2hrs; milligrams per 2 hours","LOINC","MRat","Clinical","units used for tests in urine",null,null,null,null,!1],[!1,"milligram per 24 hour","mg/(24.h)","MG/(24.HR)","mass",11574074074074074e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/24hrs; mg/24 hrs; milligrams per 24 hours; mg/kg/dy; mg per kg per day; milligrams per kilograms per days","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 6 hour","mg/(6.h)","MG/(6.HR)","mass",46296296296296295e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/6hrs; mg/6 hrs; mg per 6 hrs; 6hrs; milligrams per 6 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 72 hour","mg/(72.h)","MG/(72.HR)","mass",3858024691358025e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/72hrs; mg/72 hrs; 72 hrs; 72hrs; milligrams per 72 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 8 hour","mg/(8.h)","MG/(8.HR)","mass",3472222222222222e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/8hrs; mg/8 hrs; milligrams per 8 hours; shift","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per day","mg/d","MG/D","mass",11574074074074074e-24,[0,-1,1,0,0,0,0],"mg/d",null,!1,"M",null,1,!1,!1,0,"mg/24hrs; mg/24 hrs; milligrams per 24 hours; mg/dy; mg per day; milligrams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per deciliter","mg/dL","MG/DL","mass",10,[-3,0,1,0,0,0,0],"mg/dL",null,!1,"M",null,1,!1,!1,0,"mg per dL; milligrams per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per gram","mg/g","MG/G","mass",.001,[0,0,0,0,0,0,0],"mg/g",null,!1,"M",null,1,!1,!1,0,"mg per gm; milligrams per gram","LOINC","MCnt; MRto","Clinical","",null,null,null,null,!1],[!1,"milligram per hour","mg/h","MG/HR","mass",27777777777777776e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/hr; mg per hr; milligrams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per kilogram","mg/kg","MG/KG","mass",1e-6,[0,0,0,0,0,0,0],"mg/kg",null,!1,"M",null,1,!1,!1,0,"mg per kg; milligrams per kilograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"milligram per kilogram per 8 hour","mg/kg/(8.h)","(MG/KG)/(8.HR)","mass",3472222222222222e-26,[0,-1,0,0,0,0,0],"(mg/kg)/h",null,!1,"M",null,1,!1,!1,0,"mg/(8.h.kg); mg/kg/8hrs; mg/kg/8 hrs; mg per kg per 8hrs; 8 hrs; milligrams per kilograms per 8 hours; shift","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per day","mg/kg/d","(MG/KG)/D","mass",11574074074074074e-27,[0,-1,0,0,0,0,0],"(mg/kg)/d",null,!1,"M",null,1,!1,!1,0,"mg/(kg.d); mg/(kg.24.h)mg/kg/dy; mg per kg per day; milligrams per kilograms per days; mg/kg/(24.h); mg/kg/24hrs; 24 hrs; 24 hours","LOINC","RelMRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per hour","mg/kg/h","(MG/KG)/HR","mass",27777777777777777e-26,[0,-1,0,0,0,0,0],"(mg/kg)/h",null,!1,"M",null,1,!1,!1,0,"mg/(kg.h); mg/kg/hr; mg per kg per hr; milligrams per kilograms per hour","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per minute","mg/kg/min","(MG/KG)/MIN","mass",16666666666666667e-24,[0,-1,0,0,0,0,0],"(mg/kg)/min",null,!1,"M",null,1,!1,!1,0,"mg/(kg.min); mg per kg per min; milligrams per kilograms per minute","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per liter","mg/L","MG/L","mass",1,[-3,0,1,0,0,0,0],"mg/L",null,!1,"M",null,1,!1,!1,0,"mg per l; milligrams per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per square meter","mg/m2","MG/M2","mass",.001,[-2,0,1,0,0,0,0],"mg/(m2)",null,!1,"M",null,1,!1,!1,0,"mg/m^2; mg/sq. m; mg per m2; mg per m^2; mg per sq. milligrams; meter squared; metre","LOINC","ArMass","Clinical","",null,null,null,null,!1],[!1,"milligram per cubic meter","mg/m3","MG/M3","mass",.001,[-3,0,1,0,0,0,0],"mg/(m3)",null,!1,"M",null,1,!1,!1,0,"mg/m^3; mg/cu. m; mg per m3; milligrams per cubic meter; meter cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per milligram","mg/mg","MG/MG","mass",1,[0,0,0,0,0,0,0],"mg/mg",null,!1,"M",null,1,!1,!1,0,"mg per mg; milligrams; milligram/milligram","LOINC","MRto","Clinical","",null,null,null,null,!1],[!1,"milligram per minute","mg/min","MG/MIN","mass",16666666666666667e-21,[0,-1,1,0,0,0,0],"mg/min",null,!1,"M",null,1,!1,!1,0,"mg per min; milligrams per minutes; milligram/minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per milliliter","mg/mL","MG/ML","mass",1000.0000000000001,[-3,0,1,0,0,0,0],"mg/mL",null,!1,"M",null,1,!1,!1,0,"mg per mL; milligrams per milliliters; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per millimole","mg/mmol","MG/MMOL","mass",1660540186674939e-39,[0,0,1,0,0,0,0],"mg/mmol",null,!1,"M",null,1,!1,!1,-1,"mg per mmol; milligrams per millimole; ","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"milligram per week","mg/wk","MG/WK","mass",16534391534391535e-25,[0,-1,1,0,0,0,0],"mg/wk",null,!1,"M",null,1,!1,!1,0,"mg/week; mg per wk; milligrams per weeks; milligram/week","LOINC","Mrat","Clinical","",null,null,null,null,!1],[!1,"milliliter","mL","ML","volume",1e-6,[3,0,0,0,0,0,0],"mL","iso1000",!0,null,null,1,!1,!1,0,"milliliters; millilitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 10 hour","mL/(10.h)","ML/(10.HR)","volume",27777777777777777e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/10hrs; ml/10 hrs; mL per 10hrs; 10 hrs; milliliters per 10 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 12 hour","mL/(12.h)","ML/(12.HR)","volume",23148148148148147e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/12hrs; ml/12 hrs; mL per 12hrs; 12 hrs; milliliters per 12 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 2 hour","mL/(2.h)","ML/(2.HR)","volume",13888888888888888e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/2hrs; ml/2 hrs; mL per 2hrs; 2 hrs; milliliters per 2 hours; millilitres ","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 24 hour","mL/(24.h)","ML/(24.HR)","volume",11574074074074074e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/24hrs; ml/24 hrs; mL per 24hrs; 24 hrs; milliliters per 24 hours; millilitres; ml/dy; /day; ml per dy; days; fluid outputs; fluid inputs; flow rate","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 4 hour","mL/(4.h)","ML/(4.HR)","volume",6944444444444444e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/4hrs; ml/4 hrs; mL per 4hrs; 4 hrs; milliliters per 4 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 5 hour","mL/(5.h)","ML/(5.HR)","volume",55555555555555553e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/5hrs; ml/5 hrs; mL per 5hrs; 5 hrs; milliliters per 5 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 6 hour","mL/(6.h)","ML/(6.HR)","volume",46296296296296294e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/6hrs; ml/6 hrs; mL per 6hrs; 6 hrs; milliliters per 6 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 72 hour","mL/(72.h)","ML/(72.HR)","volume",38580246913580245e-28,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/72hrs; ml/72 hrs; mL per 72hrs; 72 hrs; milliliters per 72 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 8 hour","mL/(8.h)","ML/(8.HR)","volume",3472222222222222e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/8hrs; ml/8 hrs; mL per 8hrs; 8 hrs; milliliters per 8 hours; millilitres; shift","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 8 hour per kilogram","mL/(8.h)/kg","(ML/(8.HR))/KG","volume",3472222222222222e-29,[3,-1,-1,0,0,0,0],"(mL/h)/kg","iso1000",!0,null,null,1,!1,!1,0,"mL/kg/(8.h); ml/8h/kg; ml/8 h/kg; ml/8hr/kg; ml/8 hr/kgr; mL per 8h per kg; 8 h; 8hr; 8 hr; milliliters per 8 hours per kilogram; millilitres; shift","LOINC","VRatCnt","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per square inch (international)","mL/[sin_i]","ML/[SIN_I]","volume",.0015500031000061998,[1,0,0,0,0,0,0],"mL","iso1000",!0,null,null,1,!1,!1,0,"mL/sin; mL/in2; mL/in^2; mL per sin; in2; in^2; sq. in; milliliters per square inch; inch squared","LOINC","ArVol","Clinical","","l",null,"1",1,!1],[!1,"milliliter per centimeter of water","mL/cm[H2O]","ML/CM[H2O]","volume",10197162129779282e-27,[4,2,-1,0,0,0,0],"mL/(cm\xA0HO2)","iso1000",!0,null,null,1,!1,!1,0,"milliliters per centimeter of water; millilitre per centimetre of water; millilitres per centimetre of water; mL/cmH2O; mL/cm H2O; mL per cmH2O; mL per cm H2O","LOINC","Compli","Clinical","unit used to measure dynamic lung compliance","l",null,"1",1,!1],[!1,"milliliter per day","mL/d","ML/D","volume",11574074074074074e-27,[3,-1,0,0,0,0,0],"mL/d","iso1000",!0,null,null,1,!1,!1,0,"ml/day; ml per day; milliliters per day; 24 hours; 24hrs; millilitre;","LOINC","VRat","Clinical","usually used to measure fluid output or input; flow rate","l",null,"1",1,!1],[!1,"milliliter per deciliter","mL/dL","ML/DL","volume",.009999999999999998,[0,0,0,0,0,0,0],"mL/dL","iso1000",!0,null,null,1,!1,!1,0,"mL per dL; millilitres; decilitre; milliliters","LOINC","VFr; VFrDiff","Clinical","","l",null,"1",1,!1],[!1,"milliliter per hour","mL/h","ML/HR","volume",27777777777777777e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"mL/hr; mL per hr; milliliters per hour; millilitres; fluid intake; fluid output","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per kilogram","mL/kg","ML/KG","volume",9999999999999999e-25,[3,0,-1,0,0,0,0],"mL/kg","iso1000",!0,null,null,1,!1,!1,0,"mL per kg; milliliters per kilogram; millilitres","LOINC","VCnt","Clinical","","l",null,"1",1,!1],[!1,"milliliter per kilogram per 8 hour","mL/kg/(8.h)","(ML/KG)/(8.HR)","volume",3472222222222222e-29,[3,-1,-1,0,0,0,0],"(mL/kg)/h","iso1000",!0,null,null,1,!1,!1,0,"mL/(8.h.kg); mL/kg/8hrs; mL/kg/8 hrs; mL per kg per 8hrs; 8 hrs; milliliters per kilograms per 8 hours; millilitres; shift","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per day","mL/kg/d","(ML/KG)/D","volume",11574074074074072e-30,[3,-1,-1,0,0,0,0],"(mL/kg)/d","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.d); mL/kg/dy; mL per kg per day; milliliters per kilograms per day; mg/kg/24hrs; 24 hrs; per 24 hours millilitres","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per hour","mL/kg/h","(ML/KG)/HR","volume",27777777777777774e-29,[3,-1,-1,0,0,0,0],"(mL/kg)/h","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.h); mL/kg/hr; mL per kg per hr; milliliters per kilograms per hour; millilitres","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per minute","mL/kg/min","(ML/KG)/MIN","volume",16666666666666664e-27,[3,-1,-1,0,0,0,0],"(mL/kg)/min","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.min); mL/kg/dy; mL per kg per day; milliliters per kilograms per day; millilitres","LOINC","RelEngRat","Clinical","used for tests that measure activity metabolic rate compared to standard resting metabolic rate ","l",null,"1",1,!1],[!1,"milliliter per square meter","mL/m2","ML/M2","volume",1e-6,[1,0,0,0,0,0,0],"mL/(m2)","iso1000",!0,null,null,1,!1,!1,0,"mL/m^2; mL/sq. meter; mL per m2; m^2; sq. meter; milliliters per square meter; millilitres; meter squared","LOINC","ArVol","Clinical","used for tests that relate to heart work - e.g. ventricular stroke volume; atrial volume per body surface area","l",null,"1",1,!1],[!1,"milliliter per millibar","mL/mbar","ML/MBAR","volume",1e-11,[4,2,-1,0,0,0,0],"mL/mbar","iso1000",!0,null,null,1,!1,!1,0,"mL per mbar; milliliters per millibar; millilitres","LOINC","","Clinical","unit used to measure dynamic lung compliance","l",null,"1",1,!1],[!1,"milliliter per minute","mL/min","ML/MIN","volume",16666666666666667e-24,[3,-1,0,0,0,0,0],"mL/min","iso1000",!0,null,null,1,!1,!1,0,"mL per min; milliliters; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per minute per square meter","mL/min/m2","(ML/MIN)/M2","volume",16666666666666667e-24,[1,-1,0,0,0,0,0],"(mL/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"ml/min/m^2; ml/min/sq. meter; mL per min per m2; m^2; sq. meter; milliliters per minutes per square meter; millilitres; metre; meter squared","LOINC","ArVRat","Clinical","unit used to measure volume per body surface area; oxygen consumption index","l",null,"1",1,!1],[!1,"milliliter per millimeter","mL/mm","ML/MM","volume",.001,[2,0,0,0,0,0,0],"mL/mm","iso1000",!0,null,null,1,!1,!1,0,"mL per mm; milliliters per millimeter; millilitres; millimetre","LOINC","Lineic Volume","Clinical","","l",null,"1",1,!1],[!1,"milliliter per second","mL/s","ML/S","volume",1e-6,[3,-1,0,0,0,0,0],"mL/s","iso1000",!0,null,null,1,!1,!1,0,"ml/sec; mL per sec; milliliters per second; millilitres","LOINC","Vel; VelRat; VRat","Clinical","","l",null,"1",1,!1],[!1,"millimeter","mm","MM","length",.001,[1,0,0,0,0,0,0],"mm",null,!1,"L",null,1,!1,!1,0,"millimeters; millimetres; height; length; diameter; thickness; axis; curvature; size","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"millimeter per hour","mm/h","MM/HR","length",27777777777777776e-23,[1,-1,0,0,0,0,0],"mm/h",null,!1,"L",null,1,!1,!1,0,"mm/hr; mm per hr; millimeters per hour; millimetres","LOINC","Vel","Clinical","unit to measure sedimentation rate",null,null,null,null,!1],[!1,"millimeter per minute","mm/min","MM/MIN","length",16666666666666667e-21,[1,-1,0,0,0,0,0],"mm/min",null,!1,"L",null,1,!1,!1,0,"mm per min; millimeters per minute; millimetres","LOINC","Vel","Clinical","",null,null,null,null,!1],[!1,"millimeter of water","mm[H2O]","MM[H2O]","pressure",9806.65,[-1,-2,1,0,0,0,0],"mm\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"mmH2O; mm H2O; millimeters of water; millimetres","LOINC","Pres","Clinical","","kPa","KPAL","980665e-5",9.80665,!1],[!1,"millimeter of mercury","mm[Hg]","MM[HG]","pressure",133322,[-1,-2,1,0,0,0,0],"mm\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"mmHg; mm Hg; millimeters of mercury; millimetres","LOINC","Pres; PPres; Ratio","Clinical","1 mm[Hg] = 1 torr; unit to measure blood pressure","kPa","KPAL","133.3220",133.322,!1],[!1,"square millimeter","mm2","MM2","length",1e-6,[2,0,0,0,0,0,0],"mm2",null,!1,"L",null,1,!1,!1,0,"mm^2; sq. mm.; sq. millimeters; millimeters squared; millimetres","LOINC","Area","Clinical","",null,null,null,null,!1],[!1,"millimole","mmol","MMOL","amount of substance",60221367e13,[0,0,0,0,0,0,0],"mmol","si",!0,null,null,1,!1,!1,1,"millimoles","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 12 hour","mmol/(12.h)","MMOL/(12.HR)","amount of substance",1394013125e7,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/12hrs; mmol/12 hrs; mmol per 12 hrs; 12hrs; millimoles per 12 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 2 hour","mmol/(2.h)","MMOL/(2.HR)","amount of substance",836407875e8,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/2hrs; mmol/2 hrs; mmol per 2 hrs; 2hrs; millimoles per 2 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 24 hour","mmol/(24.h)","MMOL/(24.HR)","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/24hrs; mmol/24 hrs; mmol per 24 hrs; 24hrs; millimoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 5 hour","mmol/(5.h)","MMOL/(5.HR)","amount of substance",33456315e9,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/5hrs; mmol/5 hrs; mmol per 5 hrs; 5hrs; millimoles per 5 hours","LOINC","SRat","Clinical","unit for tests related to doses","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 6 hour","mmol/(6.h)","MMOL/(6.HR)","amount of substance",278802625e8,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/6hrs; mmol/6 hrs; mmol per 6 hrs; 6hrs; millimoles per 6 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 8 hour","mmol/(8.h)","MMOL/(8.HR)","amount of substance",20910196875e6,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/8hrs; mmol/8 hrs; mmol per 8 hrs; 8hrs; millimoles per 8 hours; shift","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per day","mmol/d","MMOL/D","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"mmol/d","si",!0,null,null,1,!1,!1,1,"mmol/24hrs; mmol/24 hrs; mmol per 24 hrs; 24hrs; millimoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per deciliter","mmol/dL","MMOL/DL","amount of substance",6022136699999999e9,[-3,0,0,0,0,0,0],"mmol/dL","si",!0,null,null,1,!1,!1,1,"mmol per dL; millimoles; decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per gram","mmol/g","MMOL/G","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"mmol/g","si",!0,null,null,1,!1,!1,1,"mmol per gram; millimoles","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per hour","mmol/h","MMOL/HR","amount of substance",167281575e9,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/hr; mmol per hr; millimoles per hour","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram","mmol/kg","MMOL/KG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"mmol/kg","si",!0,null,null,1,!1,!1,1,"mmol per kg; millimoles per kilogram","LOINC","SCnt","Clinical","unit for tests related to stool","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per 8 hour","mmol/kg/(8.h)","(MMOL/KG)/(8.HR)","amount of substance",20910196875e3,[0,-1,-1,0,0,0,0],"(mmol/kg)/h","si",!0,null,null,1,!1,!1,1,"mmol/(8.h.kg); mmol/kg/8hrs; mmol/kg/8 hrs; mmol per kg per 8hrs; 8 hrs; millimoles per kilograms per 8 hours; shift","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per day","mmol/kg/d","(MMOL/KG)/D","amount of substance",6970065625e3,[0,-1,-1,0,0,0,0],"(mmol/kg)/d","si",!0,null,null,1,!1,!1,1,"mmol/kg/dy; mmol/kg/day; mmol per kg per dy; millimoles per kilograms per day","LOINC","RelSRat","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per hour","mmol/kg/h","(MMOL/KG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(mmol/kg)/h","si",!0,null,null,1,!1,!1,1,"mmol/kg/hr; mmol per kg per hr; millimoles per kilograms per hour","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per minute","mmol/kg/min","(MMOL/KG)/MIN","amount of substance",100368945e8,[0,-1,-1,0,0,0,0],"(mmol/kg)/min","si",!0,null,null,1,!1,!1,1,"mmol/(kg.min); mmol/kg/min; mmol per kg per min; millimoles per kilograms per minute","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass; note that the unit for the enzyme unit U = umol/min. mmol/kg/min = kU/kg; ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per liter","mmol/L","MMOL/L","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"mmol/L","si",!0,null,null,1,!1,!1,1,"mmol per L; millimoles per liter; litre","LOINC","SCnc","Clinical","unit for tests related to doses","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per square meter","mmol/m2","MMOL/M2","amount of substance",60221367e13,[-2,0,0,0,0,0,0],"mmol/(m2)","si",!0,null,null,1,!1,!1,1,"mmol/m^2; mmol/sq. meter; mmol per m2; m^2; sq. meter; millimoles; meter squared; metre","LOINC","ArSub","Clinical","unit used to measure molar dose per patient body surface area","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per minute","mmol/min","MMOL/MIN","amount of substance",100368945e11,[0,-1,0,0,0,0,0],"mmol/min","si",!0,null,null,1,!1,!1,1,"mmol per min; millimoles per minute","LOINC","Srat; CAct","Clinical","unit for the enzyme unit U = umol/min. mmol/min = kU","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per millimole","mmol/mmol","MMOL/MMOL","amount of substance",1,[0,0,0,0,0,0,0],"mmol/mmol","si",!0,null,null,1,!1,!1,0,"mmol per mmol; millimoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per mole","mmol/mol","MMOL/MOL","amount of substance",.001,[0,0,0,0,0,0,0],"mmol/mol","si",!0,null,null,1,!1,!1,0,"mmol per mol; millimoles per mole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per second per liter","mmol/s/L","(MMOL/S)/L","amount of substance",60221367e16,[-3,-1,0,0,0,0,0],"(mmol/s)/L","si",!0,null,null,1,!1,!1,1,"mmol/sec/L; mmol per s per L; per sec; millimoles per seconds per liter; litre","LOINC","CCnc ","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per kilogram","mol/kg","MOL/KG","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"mol/kg","si",!0,null,null,1,!1,!1,1,"mol per kg; moles; mols","LOINC","SCnt","Clinical","unit for tests related to stool","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per kilogram per second","mol/kg/s","(MOL/KG)/S","amount of substance",60221367e13,[0,-1,-1,0,0,0,0],"(mol/kg)/s","si",!0,null,null,1,!1,!1,1,"mol/kg/sec; mol per kg per sec; moles per kilograms per second; mols","LOINC","CCnt","Clinical","unit of catalytic activity (mol/s) per mass (kg)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per liter","mol/L","MOL/L","amount of substance",60221366999999994e10,[-3,0,0,0,0,0,0],"mol/L","si",!0,null,null,1,!1,!1,1,"mol per L; moles per liter; litre; moles; mols","LOINC","SCnc","Clinical","unit often used in tests measuring oxygen content","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per cubic meter","mol/m3","MOL/M3","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"mol/(m3)","si",!0,null,null,1,!1,!1,1,"mol/m^3; mol/cu. m; mol per m3; m^3; cu. meter; mols; moles; meters cubed; metre; mole per kiloliter; kilolitre; mol/kL","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per milliliter","mol/mL","MOL/ML","amount of substance",60221367e22,[-3,0,0,0,0,0,0],"mol/mL","si",!0,null,null,1,!1,!1,1,"mol per mL; moles; millilitre; mols","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per mole","mol/mol","MOL/MOL","amount of substance",1,[0,0,0,0,0,0,0],"mol/mol","si",!0,null,null,1,!1,!1,0,"mol per mol; moles per mol; mols","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per second","mol/s","MOL/S","amount of substance",60221367e16,[0,-1,0,0,0,0,0],"mol/s","si",!0,null,null,1,!1,!1,1,"mol per sec; moles per second; mols","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"milliosmole","mosm","MOSM","amount of substance (dissolved particles)",60221367e13,[0,0,0,0,0,0,0],"mosm","chemical",!0,null,null,1,!1,!1,1,"milliosmoles","LOINC","Osmol","Clinical","equal to 1/1000 of an osmole","mol","MOL","1",1,!1],[!1,"milliosmole per kilogram","mosm/kg","MOSM/KG","amount of substance (dissolved particles)",60221367e10,[0,0,-1,0,0,0,0],"mosm/kg","chemical",!0,null,null,1,!1,!1,1,"mosm per kg; milliosmoles per kilogram","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"milliosmole per liter","mosm/L","MOSM/L","amount of substance (dissolved particles)",60221367e16,[-3,0,0,0,0,0,0],"mosm/L","chemical",!0,null,null,1,!1,!1,1,"mosm per liter; litre; milliosmoles","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"millipascal","mPa","MPAL","pressure",1,[-1,-2,1,0,0,0,0],"mPa","si",!0,null,null,1,!1,!1,0,"millipascals","LOINC","Pres","Clinical","unit of pressure","N/m2","N/M2","1",1,!1],[!1,"millipascal second","mPa.s","MPAL.S","pressure",1,[-1,-1,1,0,0,0,0],"mPa.s","si",!0,null,null,1,!1,!1,0,"mPa*s; millipoise; mP; dynamic viscosity","LOINC","Visc","Clinical","base units for millipoise, a measurement of dynamic viscosity","N/m2","N/M2","1",1,!1],[!1,"megasecond","Ms","MAS","time",1e6,[0,1,0,0,0,0,0],"Ms",null,!1,"T",null,1,!1,!1,0,"megaseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"millisecond","ms","MS","time",.001,[0,1,0,0,0,0,0],"ms",null,!1,"T",null,1,!1,!1,0,"milliseconds; duration","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"milli enzyme unit per gram","mU/g","MU/G","catalytic activity",100368945e5,[0,-1,-1,0,0,0,0],"mU/g","chemical",!0,null,null,1,!1,!1,1,"mU per gm; milli enzyme units per gram; enzyme activity; enzymatic activity per mass","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per liter","mU/L","MU/L","catalytic activity",100368945e8,[-3,-1,0,0,0,0,0],"mU/L","chemical",!0,null,null,1,!1,!1,1,"mU per liter; litre; milli enzyme units enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milligram","mU/mg","MU/MG","catalytic activity",100368945e8,[0,-1,-1,0,0,0,0],"mU/mg","chemical",!0,null,null,1,!1,!1,1,"mU per mg; milli enzyme units per milligram","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milliliter","mU/mL","MU/ML","catalytic activity",100368945e11,[-3,-1,0,0,0,0,0],"mU/mL","chemical",!0,null,null,1,!1,!1,1,"mU per mL; milli enzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milliliter per minute","mU/mL/min","(MU/ML)/MIN","catalytic activity",167281575e9,[-3,-2,0,0,0,0,0],"(mU/mL)/min","chemical",!0,null,null,1,!1,!1,1,"mU per mL per min; mU per milliliters per minute; millilitres; milli enzyme units; enzymatic activity; enzyme activity","LOINC","CCncRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"millivolt","mV","MV","electric potential",1,[2,-2,1,0,0,-1,0],"mV","si",!0,null,null,1,!1,!1,0,"millivolts","LOINC","Elpot","Clinical","unit of electric potential (voltage)","J/C","J/C","1",1,!1],[!1,"Newton centimeter","N.cm","N.CM","force",10,[2,-2,1,0,0,0,0],"N.cm","si",!0,null,null,1,!1,!1,0,"N*cm; Ncm; N cm; Newton*centimeters; Newton* centimetres; torque; work","LOINC","","Clinical",`as a measurement of work, N.cm = 1/100 Joules; +note that N.m is the standard unit of measurement for torque (although dimensionally equivalent to Joule), and N.cm can also be thought of as a torqe unit`,"kg.m/s2","KG.M/S2","1",1,!1],[!1,"Newton second","N.s","N.S","force",1e3,[1,-1,1,0,0,0,0],"N.s","si",!0,null,null,1,!1,!1,0,"Newton*seconds; N*s; N s; Ns; impulse; imp","LOINC","","Clinical","standard unit of impulse","kg.m/s2","KG.M/S2","1",1,!1],[!1,"nanogram","ng","NG","mass",1e-9,[0,0,1,0,0,0,0],"ng",null,!1,"M",null,1,!1,!1,0,"nanograms","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"nanogram per 24 hour","ng/(24.h)","NG/(24.HR)","mass",11574074074074075e-30,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/24hrs; ng/24 hrs; nanograms per 24 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per 8 hour","ng/(8.h)","NG/(8.HR)","mass",34722222222222224e-30,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/8hrs; ng/8 hrs; nanograms per 8 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per million","ng/10*6","NG/(10*6)","mass",1e-15,[0,0,1,0,0,0,0],"ng/(106)",null,!1,"M",null,1,!1,!1,0,"ng/10^6; ng per 10*6; 10^6; nanograms","LOINC","MNum","Clinical","",null,null,null,null,!1],[!1,"nanogram per day","ng/d","NG/D","mass",11574074074074075e-30,[0,-1,1,0,0,0,0],"ng/d",null,!1,"M",null,1,!1,!1,0,"ng/dy; ng per day; nanograms ","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per deciliter","ng/dL","NG/DL","mass",1e-5,[-3,0,1,0,0,0,0],"ng/dL",null,!1,"M",null,1,!1,!1,0,"ng per dL; nanograms per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per gram","ng/g","NG/G","mass",1e-9,[0,0,0,0,0,0,0],"ng/g",null,!1,"M",null,1,!1,!1,0,"ng/gm; ng per gm; nanograms per gram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per hour","ng/h","NG/HR","mass",2777777777777778e-28,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/hr; ng per hr; nanograms per hour","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per kilogram","ng/kg","NG/KG","mass",1e-12,[0,0,0,0,0,0,0],"ng/kg",null,!1,"M",null,1,!1,!1,0,"ng per kg; nanograms per kilogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per kilogram per 8 hour","ng/kg/(8.h)","(NG/KG)/(8.HR)","mass",3472222222222222e-32,[0,-1,0,0,0,0,0],"(ng/kg)/h",null,!1,"M",null,1,!1,!1,0,"ng/(8.h.kg); ng/kg/8hrs; ng/kg/8 hrs; ng per kg per 8hrs; 8 hrs; nanograms per kilograms per 8 hours; shift","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per kilogram per hour","ng/kg/h","(NG/KG)/HR","mass",27777777777777775e-32,[0,-1,0,0,0,0,0],"(ng/kg)/h",null,!1,"M",null,1,!1,!1,0,"ng/(kg.h); ng/kg/hr; ng per kg per hr; nanograms per kilograms per hour","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per kilogram per minute","ng/kg/min","(NG/KG)/MIN","mass",16666666666666667e-30,[0,-1,0,0,0,0,0],"(ng/kg)/min",null,!1,"M",null,1,!1,!1,0,"ng/(kg.min); ng per kg per min; nanograms per kilograms per minute","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per liter","ng/L","NG/L","mass",1e-6,[-3,0,1,0,0,0,0],"ng/L",null,!1,"M",null,1,!1,!1,0,"ng per L; nanograms per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per square meter","ng/m2","NG/M2","mass",1e-9,[-2,0,1,0,0,0,0],"ng/(m2)",null,!1,"M",null,1,!1,!1,0,"ng/m^2; ng/sq. m; ng per m2; m^2; sq. meter; nanograms; meter squared; metre","LOINC","ArMass","Clinical","unit used to measure mass dose per patient body surface area",null,null,null,null,!1],[!1,"nanogram per milligram","ng/mg","NG/MG","mass",1e-6,[0,0,0,0,0,0,0],"ng/mg",null,!1,"M",null,1,!1,!1,0,"ng per mg; nanograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per milligram per hour","ng/mg/h","(NG/MG)/HR","mass",27777777777777777e-26,[0,-1,0,0,0,0,0],"(ng/mg)/h",null,!1,"M",null,1,!1,!1,0,"ng/mg/hr; ng per mg per hr; nanograms per milligrams per hour","LOINC","MRtoRat ","Clinical","",null,null,null,null,!1],[!1,"nanogram per minute","ng/min","NG/MIN","mass",16666666666666667e-27,[0,-1,1,0,0,0,0],"ng/min",null,!1,"M",null,1,!1,!1,0,"ng per min; nanograms","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per millliiter","ng/mL","NG/ML","mass",.001,[-3,0,1,0,0,0,0],"ng/mL",null,!1,"M",null,1,!1,!1,0,"ng per mL; nanograms; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per milliliter per hour","ng/mL/h","(NG/ML)/HR","mass",27777777777777776e-23,[-3,-1,1,0,0,0,0],"(ng/mL)/h",null,!1,"M",null,1,!1,!1,0,"ng/mL/hr; ng per mL per mL; nanograms per milliliter per hour; nanogram per millilitre per hour; nanograms per millilitre per hour; enzymatic activity per volume; enzyme activity per milliliters","LOINC","CCnc","Clinical","tests that measure enzymatic activity",null,null,null,null,!1],[!1,"nanogram per second","ng/s","NG/S","mass",1e-9,[0,-1,1,0,0,0,0],"ng/s",null,!1,"M",null,1,!1,!1,0,"ng/sec; ng per sec; nanograms per second","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per enzyme unit","ng/U","NG/U","mass",9963241120049634e-41,[0,1,1,0,0,0,0],"ng/U",null,!1,"M",null,1,!1,!1,-1,"ng per U; nanograms per enzyme unit","LOINC","CMass","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)",null,null,null,null,!1],[!1,"nanokatal","nkat","NKAT","catalytic activity",60221367e7,[0,-1,0,0,0,0,0],"nkat","chemical",!0,null,null,1,!1,!1,1,"nanokatals","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"nanoliter","nL","NL","volume",10000000000000002e-28,[3,0,0,0,0,0,0],"nL","iso1000",!0,null,null,1,!1,!1,0,"nanoliters; nanolitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"nanometer","nm","NM","length",1e-9,[1,0,0,0,0,0,0],"nm",null,!1,"L",null,1,!1,!1,0,"nanometers; nanometres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"nanometer per second per liter","nm/s/L","(NM/S)/L","length",1e-6,[-2,-1,0,0,0,0,0],"(nm/s)/L",null,!1,"L",null,1,!1,!1,0,"nm/sec/liter; nm/sec/litre; nm per s per l; nm per sec per l; nanometers per second per liter; nanometre per second per litre; nanometres per second per litre","LOINC","VelCnc","Clinical","",null,null,null,null,!1],[!1,"nanomole","nmol","NMOL","amount of substance",60221367e7,[0,0,0,0,0,0,0],"nmol","si",!0,null,null,1,!1,!1,1,"nanomoles","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per 24 hour","nmol/(24.h)","NMOL/(24.HR)","amount of substance",6970065625,[0,-1,0,0,0,0,0],"nmol/h","si",!0,null,null,1,!1,!1,1,"nmol/24hr; nmol/24 hr; nanomoles per 24 hours; nmol/day; nanomoles per day; nmol per day; nanomole/day; nanomol/day","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per day","nmol/d","NMOL/D","amount of substance",6970065625,[0,-1,0,0,0,0,0],"nmol/d","si",!0,null,null,1,!1,!1,1,"nmol/day; nanomoles per day; nmol per day; nanomole/day; nanomol/day; nmol/24hr; nmol/24 hr; nanomoles per 24 hours; ","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per deciliter","nmol/dL","NMOL/DL","amount of substance",60221367e11,[-3,0,0,0,0,0,0],"nmol/dL","si",!0,null,null,1,!1,!1,1,"nmol per dL; nanomoles per deciliter; nanomole per decilitre; nanomoles per decilitre; nanomole/deciliter; nanomole/decilitre; nanomol/deciliter; nanomol/decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per gram","nmol/g","NMOL/G","amount of substance",60221367e7,[0,0,-1,0,0,0,0],"nmol/g","si",!0,null,null,1,!1,!1,1,"nmol per gram; nanomoles per gram; nanomole/gram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per hour per liter","nmol/h/L","(NMOL/HR)/L","amount of substance",167281575e6,[-3,-1,0,0,0,0,0],"(nmol/h)/L","si",!0,null,null,1,!1,!1,1,"nmol/hrs/L; nmol per hrs per L; nanomoles per hours per liter; litre; enzymatic activity per volume; enzyme activities","LOINC","CCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per liter","nmol/L","NMOL/L","amount of substance",60221367e10,[-3,0,0,0,0,0,0],"nmol/L","si",!0,null,null,1,!1,!1,1,"nmol per L; nanomoles per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram","nmol/mg","NMOL/MG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"nmol/mg","si",!0,null,null,1,!1,!1,1,"nmol per mg; nanomoles per milligram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram per hour","nmol/mg/h","(NMOL/MG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(nmol/mg)/h","si",!0,null,null,1,!1,!1,1,"nmol/mg/hr; nmol per mg per hr; nanomoles per milligrams per hour","LOINC","SCntRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram of protein","nmol/mg{prot}","NMOL/MG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"nmol/mg","si",!0,null,null,1,!1,!1,1,"nanomoles; nmol/mg prot; nmol per mg prot","LOINC","Ratio; CCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per minute","nmol/min","NMOL/MIN","amount of substance",100368945e5,[0,-1,0,0,0,0,0],"nmol/min","si",!0,null,null,1,!1,!1,1,"nmol per min; nanomoles per minute; milli enzyme units; enzyme activity per volume; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/min = mU (milli enzyme unit)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per minute per milliliter","nmol/min/mL","(NMOL/MIN)/ML","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(nmol/min)/mL","si",!0,null,null,1,!1,!1,1,"nmol per min per mL; nanomoles per minutes per milliliter; millilitre; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/mL/min = mU/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter","nmol/mL","NMOL/ML","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"nmol/mL","si",!0,null,null,1,!1,!1,1,"nmol per mL; nanomoles per milliliter; millilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter per hour","nmol/mL/h","(NMOL/ML)/HR","amount of substance",167281575e9,[-3,-1,0,0,0,0,0],"(nmol/mL)/h","si",!0,null,null,1,!1,!1,1,"nmol/mL/hr; nmol per mL per hr; nanomoles per milliliters per hour; millilitres; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter per minute","nmol/mL/min","(NMOL/ML)/MIN","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(nmol/mL)/min","si",!0,null,null,1,!1,!1,1,"nmol per mL per min; nanomoles per milliliters per min; millilitres; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/mL/min = mU/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per millimole","nmol/mmol","NMOL/MMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"nmol/mmol","si",!0,null,null,1,!1,!1,0,"nmol per mmol; nanomoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per millimole of creatinine","nmol/mmol{creat}","NMOL/MMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"nmol/mmol","si",!0,null,null,1,!1,!1,0,"nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per mole","nmol/mol","NMOL/MOL","amount of substance",1e-9,[0,0,0,0,0,0,0],"nmol/mol","si",!0,null,null,1,!1,!1,0,"nmol per mole; nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per nanomole","nmol/nmol","NMOL/NMOL","amount of substance",1,[0,0,0,0,0,0,0],"nmol/nmol","si",!0,null,null,1,!1,!1,0,"nmol per nmol; nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per second","nmol/s","NMOL/S","amount of substance",60221367e7,[0,-1,0,0,0,0,0],"nmol/s","si",!0,null,null,1,!1,!1,1,"nmol/sec; nmol per sec; nanomoles per sercond; milli enzyme units; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per second per liter","nmol/s/L","(NMOL/S)/L","amount of substance",60221367e10,[-3,-1,0,0,0,0,0],"(nmol/s)/L","si",!0,null,null,1,!1,!1,1,"nmol/sec/L; nmol per s per L; nmol per sec per L; nanomoles per seconds per liter; litre; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanosecond","ns","NS","time",1e-9,[0,1,0,0,0,0,0],"ns",null,!1,"T",null,1,!1,!1,0,"nanoseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"nanoenzyme unit per milliliter","nU/mL","NU/ML","catalytic activity",100368945e5,[-3,-1,0,0,0,0,0],"nU/mL","chemical",!0,null,null,1,!1,!1,1,"nU per mL; nanoenzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 fU = pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"Ohm meter","Ohm.m","OHM.M","electric resistance",1e3,[3,-1,1,0,0,-2,0],"\u03A9.m","si",!0,null,null,1,!1,!1,0,"electric resistivity; meters; metres","LOINC","","Clinical","unit of electric resistivity","V/A","V/A","1",1,!1],[!1,"osmole per kilogram","osm/kg","OSM/KG","amount of substance (dissolved particles)",60221367e13,[0,0,-1,0,0,0,0],"osm/kg","chemical",!0,null,null,1,!1,!1,1,"osm per kg; osmoles per kilogram; osmols","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"osmole per liter","osm/L","OSM/L","amount of substance (dissolved particles)",60221366999999994e10,[-3,0,0,0,0,0,0],"osm/L","chemical",!0,null,null,1,!1,!1,1,"osm per L; osmoles per liter; litre; osmols","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"picoampere","pA","PA","electric current",1e-12,[0,-1,0,0,0,1,0],"pA","si",!0,null,null,1,!1,!1,0,"picoamperes","LOINC","","Clinical","equal to 10^-12 amperes","C/s","C/S","1",1,!1],[!1,"picogram","pg","PG","mass",1e-12,[0,0,1,0,0,0,0],"pg",null,!1,"M",null,1,!1,!1,0,"picograms","LOINC","Mass; EntMass","Clinical","",null,null,null,null,!1],[!1,"picogram per deciliter","pg/dL","PG/DL","mass",9999999999999999e-24,[-3,0,1,0,0,0,0],"pg/dL",null,!1,"M",null,1,!1,!1,0,"pg per dL; picograms; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per liter","pg/L","PG/L","mass",1e-9,[-3,0,1,0,0,0,0],"pg/L",null,!1,"M",null,1,!1,!1,0,"pg per L; picograms; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per milligram","pg/mg","PG/MG","mass",1e-9,[0,0,0,0,0,0,0],"pg/mg",null,!1,"M",null,1,!1,!1,0,"pg per mg; picograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"picogram per milliliter","pg/mL","PG/ML","mass",1e-6,[-3,0,1,0,0,0,0],"pg/mL",null,!1,"M",null,1,!1,!1,0,"pg per mL; picograms per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per millimeter","pg/mm","PG/MM","mass",1e-9,[-1,0,1,0,0,0,0],"pg/mm",null,!1,"M",null,1,!1,!1,0,"pg per mm; picogram/millimeter; picogram/millimetre; picograms per millimeter; millimetre","LOINC","Lineic Mass","Clinical","",null,null,null,null,!1],[!1,"picokatal","pkat","PKAT","catalytic activity",60221367e4,[0,-1,0,0,0,0,0],"pkat","chemical",!0,null,null,1,!1,!1,1,"pkats; picokatals","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"picoliter","pL","PL","volume",1e-15,[3,0,0,0,0,0,0],"pL","iso1000",!0,null,null,1,!1,!1,0,"picoliters; picolitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"picometer","pm","PM","length",1e-12,[1,0,0,0,0,0,0],"pm",null,!1,"L",null,1,!1,!1,0,"picometers; picometres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"picomole","pmol","PMOL","amount of substance",60221367e4,[0,0,0,0,0,0,0],"pmol","si",!0,null,null,1,!1,!1,1,"picomoles; pmols","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per 24 hour","pmol/(24.h)","PMOL/(24.HR)","amount of substance",6970065625e-3,[0,-1,0,0,0,0,0],"pmol/h","si",!0,null,null,1,!1,!1,1,"pmol/24hrs; pmol/24 hrs; pmol per 24 hrs; 24hrs; days; dy; picomoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per day","pmol/d","PMOL/D","amount of substance",6970065625e-3,[0,-1,0,0,0,0,0],"pmol/d","si",!0,null,null,1,!1,!1,1,"pmol/dy; pmol per day; 24 hours; 24hrs; 24 hrs; picomoles","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per deciliter","pmol/dL","PMOL/DL","amount of substance",60221367e8,[-3,0,0,0,0,0,0],"pmol/dL","si",!0,null,null,1,!1,!1,1,"pmol per dL; picomoles per deciliter; decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per gram","pmol/g","PMOL/G","amount of substance",60221367e4,[0,0,-1,0,0,0,0],"pmol/g","si",!0,null,null,1,!1,!1,1,"pmol per gm; picomoles per gram; picomole/gram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per hour per milliliter ","pmol/h/mL","(PMOL/HR)/ML","amount of substance",167281575e6,[-3,-1,0,0,0,0,0],"(pmol/h)/mL","si",!0,null,null,1,!1,!1,1,"pmol/hrs/mL; pmol per hrs per mL; picomoles per hour per milliliter; millilitre; micro enzyme units per volume; enzymatic activity; enzyme activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per liter","pmol/L","PMOL/L","amount of substance",60221367e7,[-3,0,0,0,0,0,0],"pmol/L","si",!0,null,null,1,!1,!1,1,"picomole/liter; pmol per L; picomoles; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per minute","pmol/min","PMOL/MIN","amount of substance",10036894500,[0,-1,0,0,0,0,0],"pmol/min","si",!0,null,null,1,!1,!1,1,"picomole/minute; pmol per min; picomoles per minute; micro enzyme units; enzymatic activity; enzyme activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. pmol/min = uU (micro enzyme unit)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per milliliter","pmol/mL","PMOL/ML","amount of substance",60221367e10,[-3,0,0,0,0,0,0],"pmol/mL","si",!0,null,null,1,!1,!1,1,"picomole/milliliter; picomole/millilitre; pmol per mL; picomoles; millilitre; picomols; pmols","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per micromole","pmol/umol","PMOL/UMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"pmol/\u03BCmol","si",!0,null,null,1,!1,!1,0,"pmol/mcgmol; picomole/micromole; pmol per umol; pmol per mcgmol; picomoles ","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picosecond","ps","PS","time",1e-12,[0,1,0,0,0,0,0],"ps",null,!1,"T",null,1,!1,!1,0,"picoseconds; psec","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"picotesla","pT","PT","magnetic flux density",1e-9,[0,-1,1,0,0,-1,0],"pT","si",!0,null,null,1,!1,!1,0,"picoteslas","LOINC","","Clinical","SI unit of magnetic field strength for magnetic field B","Wb/m2","WB/M2","1",1,!1],[!1,"enzyme unit per 12 hour","U/(12.h)","U/(12.HR)","catalytic activity",23233552083333334e-5,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/12hrs; U/ 12hrs; U per 12 hrs; 12hrs; enzyme units per 12 hours; enzyme activity; enzymatic activity per time; umol per min per 12 hours; micromoles per minute per 12 hours; umol/min/12hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 2 hour","U/(2.h)","U/(2.HR)","catalytic activity",1394013125e3,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/2hrs; U/ 2hrs; U per 2 hrs; 2hrs; enzyme units per 2 hours; enzyme activity; enzymatic activity per time; umol per minute per 2 hours; micromoles per minute; umol/min/2hr; umol per min per 2hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 24 hour","U/(24.h)","U/(24.HR)","catalytic activity",11616776041666667e-5,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/24hrs; U/ 24hrs; U per 24 hrs; 24hrs; enzyme units per 24 hours; enzyme activity; enzymatic activity per time; micromoles per minute per 24 hours; umol/min/24hr; umol per min per 24hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 10","U/10","U/10","catalytic activity",100368945e7,[0,-1,0,0,0,0,0],"U","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10; U per 10; enzyme units per 10; enzymatic activity; enzyme activity; micromoles per minute; umol/min/10","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 10 billion","U/10*10","U/(10*10)","catalytic activity",100368945e-2,[0,-1,0,0,0,0,0],"U/(1010)","chemical",!0,null,null,1,!1,!1,1,"U per 10*10; enzyme units per 10*10; U per 10 billion; enzyme units; enzymatic activity; micromoles per minute per 10 billion; umol/min/10*10","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per trillion","U/10*12","U/(10*12)","catalytic activity",10036.8945,[0,-1,0,0,0,0,0],"U/(1012)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*12; U per 10*12; enzyme units per 10*12; enzyme units per trillion; enzymatic activity; micromoles per minute per trillion; umol/min/10*12; umol per min per 10*12","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per million","U/10*6","U/(10*6)","catalytic activity",10036894500,[0,-1,0,0,0,0,0],"U/(106)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*6; U per 10*6; enzyme units per 10*6; enzyme units; enzymatic activity per volume; micromoles per minute per million; umol/min/10*6; umol per min per 10*6","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per billion","U/10*9","U/(10*9)","catalytic activity",100368945e-1,[0,-1,0,0,0,0,0],"U/(109)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*9; U per 10*9; enzyme units per 10*9; enzymatic activity per volume; micromoles per minute per billion; umol/min/10*9; umol per min per 10*9","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per day","U/d","U/D","catalytic activity",11616776041666667e-5,[0,-2,0,0,0,0,0],"U/d","chemical",!0,null,null,1,!1,!1,1,"U/dy; enzyme units per day; enzyme units; enzyme activity; enzymatic activity per time; micromoles per minute per day; umol/min/day; umol per min per day","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per deciliter","U/dL","U/DL","catalytic activity",100368945e12,[-3,-1,0,0,0,0,0],"U/dL","chemical",!0,null,null,1,!1,!1,1,"U per dL; enzyme units per deciliter; decilitre; micromoles per minute per deciliter; umol/min/dL; umol per min per dL","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per gram","U/g","U/G","catalytic activity",100368945e8,[0,-1,-1,0,0,0,0],"U/g","chemical",!0,null,null,1,!1,!1,1,"U/gm; U per gm; enzyme units per gram; micromoles per minute per gram; umol/min/g; umol per min per g","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per hour","U/h","U/HR","catalytic activity",278802625e4,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/hr; U per hr; enzyme units per hour; micromoles per minute per hour; umol/min/hr; umol per min per hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per liter","U/L","U/L","catalytic activity",100368945e11,[-3,-1,0,0,0,0,0],"U/L","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/liter; enzyme unit/litre; U per L; enzyme units per liter; enzyme unit per litre; micromoles per minute per liter; umol/min/L; umol per min per L","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per minute","U/min","U/MIN","catalytic activity",167281575e6,[0,-2,0,0,0,0,0],"U/min","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/minute; U per min; enzyme units; umol/min/min; micromoles per minute per minute; micromoles per min per min; umol","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per milliliter","U/mL","U/ML","catalytic activity",100368945e14,[-3,-1,0,0,0,0,0],"U/mL","chemical",!0,null,null,1,!1,!1,1,"U per mL; enzyme units per milliliter; millilitre; micromoles per minute per milliliter; umol/min/mL; umol per min per mL","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per second","U/s","U/S","catalytic activity",100368945e8,[0,-2,0,0,0,0,0],"U/s","chemical",!0,null,null,1,!1,!1,1,"U/sec; U per second; enzyme units per second; micromoles per minute per second; umol/min/sec; umol per min per sec","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"micro international unit","u[IU]","U[IU]","arbitrary",1e-6,[0,0,0,0,0,0,0],"\u03BCi.U.","chemical",!0,null,null,1,!1,!0,0,"uIU; u IU; microinternational units","LOINC","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"micro international unit per liter","u[IU]/L","U[IU]/L","arbitrary",.001,[-3,0,0,0,0,0,0],"(\u03BCi.U.)/L","chemical",!0,null,null,1,!1,!0,0,"uIU/L; u IU/L; uIU per L; microinternational units per liter; litre; ","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"micro international unit per milliliter","u[IU]/mL","U[IU]/ML","arbitrary",1,[-3,0,0,0,0,0,0],"(\u03BCi.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"uIU/mL; u IU/mL; uIU per mL; microinternational units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"microequivalent","ueq","UEQ","amount of substance",60221367e10,[0,0,0,0,0,0,0],"\u03BCeq","chemical",!0,null,null,1,!1,!1,1,"microequivalents; 10^-6 equivalents; 10-6 equivalents","LOINC","Sub","Clinical","","mol","MOL","1",1,!1],[!1,"microequivalent per liter","ueq/L","UEQ/L","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"\u03BCeq/L","chemical",!0,null,null,1,!1,!1,1,"ueq per liter; litre; microequivalents","LOINC","MCnc","Clinical","","mol","MOL","1",1,!1],[!1,"microequivalent per milliliter","ueq/mL","UEQ/ML","amount of substance",60221367000000003e7,[-3,0,0,0,0,0,0],"\u03BCeq/mL","chemical",!0,null,null,1,!1,!1,1,"ueq per milliliter; millilitre; microequivalents","LOINC","MCnc","Clinical","","mol","MOL","1",1,!1],[!1,"microgram","ug","UG","mass",1e-6,[0,0,1,0,0,0,0],"\u03BCg",null,!1,"M",null,1,!1,!1,0,"mcg; micrograms; 10^-6 grams; 10-6 grams","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"microgram per 100 gram","ug/(100.g)","UG/(100.G)","mass",1e-8,[0,0,0,0,0,0,0],"\u03BCg/g",null,!1,"M",null,1,!1,!1,0,"ug/100gm; ug/100 gm; mcg; ug per 100g; 100 gm; mcg per 100g; micrograms per 100 grams","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per 24 hour","ug/(24.h)","UG/(24.HR)","mass",11574074074074074e-27,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/24hrs; ug/24 hrs; mcg/24hrs; ug per 24hrs; mcg per 24hrs; 24 hrs; micrograms per 24 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per 8 hour","ug/(8.h)","UG/(8.HR)","mass",3472222222222222e-26,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/8hrs; ug/8 hrs; mcg/8hrs; ug per 8hrs; mcg per 8hrs; 8 hrs; micrograms per 8 hours; shift","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per square foot (international)","ug/[sft_i]","UG/[SFT_I]","mass",10763910416709721e-21,[-2,0,1,0,0,0,0],"\u03BCg",null,!1,"M",null,1,!1,!1,0,"ug/sft; ug/ft2; ug/ft^2; ug/sq. ft; micrograms; sq. foot; foot squared","LOINC","ArMass","Clinical","",null,null,null,null,!1],[!1,"microgram per day","ug/d","UG/D","mass",11574074074074074e-27,[0,-1,1,0,0,0,0],"\u03BCg/d",null,!1,"M",null,1,!1,!1,0,"ug/dy; mcg/dy; ug per day; mcg; micrograms per day","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per deciliter","ug/dL","UG/DL","mass",.009999999999999998,[-3,0,1,0,0,0,0],"\u03BCg/dL",null,!1,"M",null,1,!1,!1,0,"ug per dL; mcg/dl; mcg per dl; micrograms per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per gram","ug/g","UG/G","mass",1e-6,[0,0,0,0,0,0,0],"\u03BCg/g",null,!1,"M",null,1,!1,!1,0,"ug per gm; mcg/gm; mcg per g; micrograms per gram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per hour","ug/h","UG/HR","mass",27777777777777777e-26,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/hr; mcg/hr; mcg per hr; ug per hr; ug per hour; micrograms","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per kilogram","ug/kg","UG/KG","mass",9999999999999999e-25,[0,0,0,0,0,0,0],"\u03BCg/kg",null,!1,"M",null,1,!1,!1,0,"ug per kg; mcg/kg; mcg per kg; micrograms per kilogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per kilogram per 8 hour","ug/kg/(8.h)","(UG/KG)/(8.HR)","mass",3472222222222222e-29,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/h",null,!1,"M",null,1,!1,!1,0,"ug/kg/8hrs; mcg/kg/8hrs; ug/kg/8 hrs; mcg/kg/8 hrs; ug per kg per 8hrs; 8 hrs; mcg per kg per 8hrs; micrograms per kilograms per 8 hours; shift","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per day","ug/kg/d","(UG/KG)/D","mass",11574074074074072e-30,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/d",null,!1,"M",null,1,!1,!1,0,"ug/(kg.d); ug/kg/dy; mcg/kg/day; ug per kg per dy; 24 hours; 24hrs; mcg; kilograms; microgram per kilogram and day","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per hour","ug/kg/h","(UG/KG)/HR","mass",27777777777777774e-29,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/h",null,!1,"M",null,1,!1,!1,0,"ug/(kg.h); ug/kg/hr; mcg/kg/hr; ug per kg per hr; mcg per kg per hr; kilograms","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per minute","ug/kg/min","(UG/KG)/MIN","mass",16666666666666664e-27,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/min",null,!1,"M",null,1,!1,!1,0,"ug/kg/min; ug/kg/min; mcg/kg/min; ug per kg per min; mcg; micrograms per kilograms per minute ","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per liter","ug/L","UG/L","mass",.001,[-3,0,1,0,0,0,0],"\u03BCg/L",null,!1,"M",null,1,!1,!1,0,"mcg/L; ug per L; mcg; micrograms per liter; litre ","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per liter per 24 hour","ug/L/(24.h)","(UG/L)/(24.HR)","mass",11574074074074074e-24,[-3,-1,1,0,0,0,0],"(\u03BCg/L)/h",null,!1,"M",null,1,!1,!1,0,"ug/L/24hrs; ug/L/24 hrs; mcg/L/24hrs; ug per L per 24hrs; 24 hrs; day; dy mcg; micrograms per liters per 24 hours; litres","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per square meter","ug/m2","UG/M2","mass",1e-6,[-2,0,1,0,0,0,0],"\u03BCg/(m2)",null,!1,"M",null,1,!1,!1,0,"ug/m^2; ug/sq. m; mcg/m2; mcg/m^2; mcg/sq. m; ug per m2; m^2; sq. meter; mcg; micrograms per square meter; meter squared; metre","LOINC","ArMass","Clinical","unit used to measure mass dose per patient body surface area",null,null,null,null,!1],[!1,"microgram per cubic meter","ug/m3","UG/M3","mass",1e-6,[-3,0,1,0,0,0,0],"\u03BCg/(m3)",null,!1,"M",null,1,!1,!1,0,"ug/m^3; ug/cu. m; mcg/m3; mcg/m^3; mcg/cu. m; ug per m3; ug per m^3; ug per cu. m; mcg; micrograms per cubic meter; meter cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per milligram","ug/mg","UG/MG","mass",.001,[0,0,0,0,0,0,0],"\u03BCg/mg",null,!1,"M",null,1,!1,!1,0,"ug per mg; mcg/mg; mcg per mg; micromilligrams per milligram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per minute","ug/min","UG/MIN","mass",16666666666666667e-24,[0,-1,1,0,0,0,0],"\u03BCg/min",null,!1,"M",null,1,!1,!1,0,"ug per min; mcg/min; mcg per min; microminutes per minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per milliliter","ug/mL","UG/ML","mass",1,[-3,0,1,0,0,0,0],"\u03BCg/mL",null,!1,"M",null,1,!1,!1,0,"ug per mL; mcg/mL; mcg per mL; micrograms per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per millimole","ug/mmol","UG/MMOL","mass",1660540186674939e-42,[0,0,1,0,0,0,0],"\u03BCg/mmol",null,!1,"M",null,1,!1,!1,-1,"ug per mmol; mcg/mmol; mcg per mmol; micrograms per millimole","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"microgram per nanogram","ug/ng","UG/NG","mass",999.9999999999999,[0,0,0,0,0,0,0],"\u03BCg/ng",null,!1,"M",null,1,!1,!1,0,"ug per ng; mcg/ng; mcg per ng; micrograms per nanogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microkatal","ukat","UKAT","catalytic activity",60221367e10,[0,-1,0,0,0,0,0],"\u03BCkat","chemical",!0,null,null,1,!1,!1,1,"microkatals; ukats","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"microliter","uL","UL","volume",1e-9,[3,0,0,0,0,0,0],"\u03BCL","iso1000",!0,null,null,1,!1,!1,0,"microliters; microlitres; mcl","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"microliter per 2 hour","uL/(2.h)","UL/(2.HR)","volume",1388888888888889e-28,[3,-1,0,0,0,0,0],"\u03BCL/h","iso1000",!0,null,null,1,!1,!1,0,"uL/2hrs; uL/2 hrs; mcg/2hr; mcg per 2hr; uL per 2hr; uL per 2 hrs; microliters per 2 hours; microlitres ","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"microliter per hour","uL/h","UL/HR","volume",2777777777777778e-28,[3,-1,0,0,0,0,0],"\u03BCL/h","iso1000",!0,null,null,1,!1,!1,0,"uL/hr; mcg/hr; mcg per hr; uL per hr; microliters per hour; microlitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"micrometer","um","UM","length",1e-6,[1,0,0,0,0,0,0],"\u03BCm",null,!1,"L",null,1,!1,!1,0,"micrometers; micrometres; \u03BCm; microns","LOINC","Len","Clinical","Unit of length that is usually used in tests related to the eye",null,null,null,null,!1],[!1,"microns per second","um/s","UM/S","length",1e-6,[1,-1,0,0,0,0,0],"\u03BCm/s",null,!1,"L",null,1,!1,!1,0,"um/sec; micron/second; microns/second; um per sec; micrometers per second; micrometres","LOINC","Vel","Clinical","",null,null,null,null,!1],[!1,"micromole","umol","UMOL","amount of substance",60221367e10,[0,0,0,0,0,0,0],"\u03BCmol","si",!0,null,null,1,!1,!1,1,"micromoles; umols","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 2 hour","umol/(2.h)","UMOL/(2.HR)","amount of substance",836407875e5,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/2hrs; umol/2 hrs; umol per 2 hrs; 2hrs; micromoles per 2 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 24 hour","umol/(24.h)","UMOL/(24.HR)","amount of substance",6970065625e3,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/24hrs; umol/24 hrs; umol per 24 hrs; per 24hrs; micromoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 8 hour","umol/(8.h)","UMOL/(8.HR)","amount of substance",20910196875e3,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/8hr; umol/8 hr; umol per 8 hr; umol per 8hr; umols per 8hr; umol per 8 hours; micromoles per 8 hours; shift","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per day","umol/d","UMOL/D","amount of substance",6970065625e3,[0,-1,0,0,0,0,0],"\u03BCmol/d","si",!0,null,null,1,!1,!1,1,"umol/day; umol per day; umols per day; umol per days; micromoles per days; umol/24hr; umol/24 hr; umol per 24 hr; umol per 24hr; umols per 24hr; umol per 24 hours; micromoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per deciliter","umol/dL","UMOL/DL","amount of substance",60221367e14,[-3,0,0,0,0,0,0],"\u03BCmol/dL","si",!0,null,null,1,!1,!1,1,"micromole/deciliter; micromole/decilitre; umol per dL; micromoles per deciliters; micromole per decilitres","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per gram","umol/g","UMOL/G","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"\u03BCmol/g","si",!0,null,null,1,!1,!1,1,"micromole/gram; umol per g; micromoles per gram","LOINC","SCnt; Ratio","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per hour","umol/h","UMOL/HR","amount of substance",167281575e6,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/hr; umol per hr; umol per hour; micromoles per hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per kilogram","umol/kg","UMOL/KG","amount of substance",60221367e7,[0,0,-1,0,0,0,0],"\u03BCmol/kg","si",!0,null,null,1,!1,!1,1,"umol per kg; micromoles per kilogram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per liter","umol/L","UMOL/L","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"\u03BCmol/L","si",!0,null,null,1,!1,!1,1,"micromole/liter; micromole/litre; umol per liter; micromoles per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per liter per hour","umol/L/h","(UMOL/L)/HR","amount of substance",167281575e9,[-3,-1,0,0,0,0,0],"(\u03BCmol/L)/h","si",!0,null,null,1,!1,!1,1,"umol/liter/hr; umol/litre/hr; umol per L per hr; umol per liter per hour; micromoles per liters per hour; litre","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min; umol/L/h is a derived unit of enzyme units","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milligram","umol/mg","UMOL/MG","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"\u03BCmol/mg","si",!0,null,null,1,!1,!1,1,"micromole/milligram; umol per mg; micromoles per milligram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute","umol/min","UMOL/MIN","amount of substance",100368945e8,[0,-1,0,0,0,0,0],"\u03BCmol/min","si",!0,null,null,1,!1,!1,1,"micromole/minute; umol per min; micromoles per minute; enzyme units","LOINC","CAct","Clinical","unit for the enzyme unit U = umol/min","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute per gram","umol/min/g","(UMOL/MIN)/G","amount of substance",100368945e8,[0,-1,-1,0,0,0,0],"(\u03BCmol/min)/g","si",!0,null,null,1,!1,!1,1,"umol/min/gm; umol per min per gm; micromoles per minutes per gram; U/g; enzyme units","LOINC","CCnt","Clinical","unit for the enzyme unit U = umol/min. umol/min/g = U/g","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute per liter","umol/min/L","(UMOL/MIN)/L","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(\u03BCmol/min)/L","si",!0,null,null,1,!1,!1,1,"umol/min/liter; umol/minute/liter; micromoles per minutes per liter; litre; enzyme units; U/L","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. umol/min/L = U/L","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milliliter","umol/mL","UMOL/ML","amount of substance",60221367000000003e7,[-3,0,0,0,0,0,0],"\u03BCmol/mL","si",!0,null,null,1,!1,!1,1,"umol per mL; micromoles per milliliter; millilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milliliter per minute","umol/mL/min","(UMOL/ML)/MIN","amount of substance",100368945e14,[-3,-1,0,0,0,0,0],"(\u03BCmol/mL)/min","si",!0,null,null,1,!1,!1,1,"umol per mL per min; micromoles per milliliters per minute; millilitres","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. umol/mL/min = U/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per millimole","umol/mmol","UMOL/MMOL","amount of substance",.001,[0,0,0,0,0,0,0],"\u03BCmol/mmol","si",!0,null,null,1,!1,!1,0,"umol per mmol; micromoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per mole","umol/mol","UMOL/MOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"\u03BCmol/mol","si",!0,null,null,1,!1,!1,0,"umol per mol; micromoles per mole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per micromole","umol/umol","UMOL/UMOL","amount of substance",1,[0,0,0,0,0,0,0],"\u03BCmol/\u03BCmol","si",!0,null,null,1,!1,!1,0,"umol per umol; micromoles per micromole","LOINC","Srto; SFr; EntSRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"microOhm","uOhm","UOHM","electric resistance",.001,[2,-1,1,0,0,-2,0],"\u03BC\u03A9","si",!0,null,null,1,!1,!1,0,"microOhms; \xB5\u03A9","LOINC","","Clinical","unit of electric resistance","V/A","V/A","1",1,!1],[!1,"microsecond","us","US","time",1e-6,[0,1,0,0,0,0,0],"\u03BCs",null,!1,"T",null,1,!1,!1,0,"microseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"micro enzyme unit per gram","uU/g","UU/G","catalytic activity",10036894500,[0,-1,-1,0,0,0,0],"\u03BCU/g","chemical",!0,null,null,1,!1,!1,1,"uU per gm; micro enzyme units per gram; micro enzymatic activity per mass; enzyme activity","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"micro enzyme unit per liter","uU/L","UU/L","catalytic activity",100368945e5,[-3,-1,0,0,0,0,0],"\u03BCU/L","chemical",!0,null,null,1,!1,!1,1,"uU per L; micro enzyme units per liter; litre; enzymatic activity per volume; enzyme activity ","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"micro enzyme unit per milliliter","uU/mL","UU/ML","catalytic activity",100368945e8,[-3,-1,0,0,0,0,0],"\u03BCU/mL","chemical",!0,null,null,1,!1,!1,1,"uU per mL; micro enzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"microvolt","uV","UV","electric potential",.001,[2,-2,1,0,0,-1,0],"\u03BCV","si",!0,null,null,1,!1,!1,0,"microvolts","LOINC","Elpot","Clinical","unit of electric potential (voltage)","J/C","J/C","1",1,!1]]}}});var KA=Q(Gl=>{"use strict";Object.defineProperty(Gl,"__esModule",{value:!0});Gl.ucumJsonDefs=Gl.UcumJsonDefs=void 0;var _H=FA(),bH=e1(),vH=l1(),qA=ao(),GA=jA().unpackArray,Op=class{loadJsonDefs(){let t=WA();if(t.prefixes=GA(t.prefixes),t.units=GA(t.units),qA.UnitTables.getInstance().unitsCount()===0){let e=bH.PrefixTables.getInstance(),i=t.prefixes,r=i.length;for(let l=0;l{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.UnitString=void 0;var $i=CH(Ap());function YA(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return YA=function(){return n},n}function CH(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=YA();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}function QA(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var fi=ua().Ucum,Kl=l1().Unit,wH=ao().UnitTables,xH=e1().PrefixTables,oo=class n{constructor(){this.utabs_=wH.getInstance(),this.pfxTabs_=xH.getInstance(),this.openEmph_=fi.openEmph_,this.closeEmph_=fi.closeEmph_,this.bracesMsg_="",this.parensFlag_="parens_placeholder",this.pFlagLen_=this.parensFlag_.length,this.braceFlag_="braces_placeholder",this.bFlagLen_=this.braceFlag_.length,this.vcMsgStart_=null,this.vcMsgEnd_=null,this.retMsg_=[],this.parensUnits_=[],this.annotations_=[],this.suggestions=[]}useHTMLInMessages(t){t===void 0||t?(this.openEmph_=fi.openEmphHTML_,this.closeEmph_=fi.closeEmphHTML_):(this.openEmph_=fi.openEmph_,this.closeEmph_=fi.closeEmph_)}useBraceMsgForEachString(t){t===void 0||t?this.bracesMsg_=fi.bracesMsg_:this.bracesMsg_=""}parseString(t,e,i){if(t=t.trim(),t===""||t===null)throw new Error("Please specify a unit expression to be validated.");e==="validate"?(this.vcMsgStart_=fi.valMsgStart_,this.vcMsgEnd_=fi.valMsgEnd_):(this.vcMsgStart_=fi.cnvMsgStart_,this.vcMsgEnd_=fi.cnvMsgEnd_),i===void 0||i===!1?this.suggestions_=null:this.suggestions_=[],this.retMsg_=[],this.parensUnits_=[],this.annotations_=[];let r=t,s=[];if(t=this._getAnnotations(t),this.retMsg_.length>0)s[0]=null,s[1]=null;else{let a=this.retMsg_.length>0,o=null;for(o in fi.specUnits_)for(;t.indexOf(o)!==-1;)t=t.replace(o,fi.specUnits_[o]);if(t.indexOf(" ")>-1)throw new Error("Blank spaces are not allowed in unit expressions.");s=this._parseTheString(t,r);let l=s[0];($i.isIntegerUnit(l)||typeof l=="number")&&(l=new Kl({csCode_:r,ciCode_:r,magnitude_:l,name_:r}),s[0]=l)}return s[2]=this.retMsg_,this.suggestions_&&this.suggestions_.length>0&&(s[3]=this.suggestions_),s}_parseTheString(t,e){let i=null,r=this.retMsg_.length>0,s=this._processParens(t,e);r=s[2];let a=[];if(!r){t=s[0],e=s[1];let o=this._makeUnitsArray(t,e);if(r=o[2],!r){a=o[0],e=o[1];let l=a.length;for(let c=0;c=0){let d=this._getParensUnit(u,e);r||(r=d[1]),r||(a[c].un=d[0])}else{let d=this._makeUnit(u,e);d[0]===null?r=!0:(a[c].un=d[0],e=d[1])}}}}return r||(a[0]===null||a[0]===" "||a[0].un===void 0||a[0].un===null)&&this.retMsg_.length===0&&(this.retMsg_.push(`Unit string (${e}) did not contain anything that could be used to create a unit, or else something that is not handled yet by this package. Sorry`),r=!0),r||(i=this._performUnitArithmetic(a,e)),[i,e]}_getAnnotations(t){let e=t.indexOf("{");for(;e>=0;){let i=t.indexOf("}");if(i<0)this.retMsg_.push("Missing closing brace for annotation starting at "+this.openEmph_+t.substr(e)+this.closeEmph_),e=-1;else{let r=t.substring(e,i+1);if(!n.VALID_ANNOTATION_REGEX.test(r))this.retMsg_.push(n.INVALID_ANNOTATION_CHAR_MSG+this.openEmph_+r+this.closeEmph_),e=-1;else{let s=this.annotations_.length.toString();t=t.replace(r,this.braceFlag_+s+this.braceFlag_),this.annotations_.push(r),e=t.indexOf("{")}}}if(this.retMsg_.length==0){let i=t.indexOf("}");i>=0&&this.retMsg_.push("Missing opening brace for closing brace found at "+this.openEmph_+t.substring(0,i+1)+this.closeEmph_)}return t}_processParens(t,e){let i=[],r=0,s=!1,a=this.parensUnits_.length,o=0;for(;t!==""&&!s;){let l=0,c=0,u=t.indexOf("(");if(u<0){let d=t.indexOf(")");if(d>=0){let h=`Missing open parenthesis for close parenthesis at ${t.substring(0,d+o)}${this.openEmph_}${t.substr(d,1)}${this.closeEmph_}`;d0&&(i[r++]=t.substr(0,u));let h=0,m=u+1;for(;m0&&(c=t.substr(0,l-1));let u=t.lastIndexOf(this.parensFlag_),d=null;u+this.pFlagLen_=0){let m=this._getAnnoText(c,e);if(m[1]||m[2])throw new Error(`Text found before the parentheses (${c}) included an annotation along with other text for parenthetical unit ${s.csCode_}`);t+=m[0],this.retMsg_.push(`The annotation ${m[0]} before the unit code is invalid. +`+this.vcMsgStart_+t+this.vcMsgEnd_)}else this.suggestions_?i=this._getSuggestions(c)!=="succeeded":(this.retMsg_.push(`${c} preceding the unit code ${t} is invalid. Unable to make a substitution.`),i=!0);if(d)if(d.indexOf(this.braceFlag_)>=0){let m=this._getAnnoText(d,e);if(m[1]||m[2])throw new Error(`Text found after the parentheses (${d}) included an annotation along with other text for parenthetical unit ${s.csCode_}`);t+=m[0]}else if($i.isNumericString(d)){s=null;let m=`An exponent (${d}) following a parenthesis is invalid as of revision 1.9 of the UCUM Specification.`;t.match(/\d$/)||(t+=d,m+=` + `+this.vcMsgStart_+t+this.vcMsgEnd_),this.retMsg_.push(m),i=!0}else this.suggestions_?i=this._getSuggestions(c)!=="succeeded":(this.retMsg_.push(`Text ${d} following the unit code ${t} is invalid. Unable to make a substitution.`),i=!0);return i||(s?$i.isIntegerUnit(s)?s=new Kl({csCode_:s,magnitude_:s,name_:s}):s.csCode_=t:s=new Kl({csCode_:t,magnitude_:1,name_:t})),[s,i]}_getAnnoText(t,e){let i=t.indexOf(this.braceFlag_),r=i>0?t.substring(0,i):null;i!==0&&(t=t.substr(i));let s=t.indexOf(this.braceFlag_,1),a=s+this.bFlagLen_=this.annotations_.length)throw new Error(`Processing Error - invalid annotation index ${o} found in ${t} that was created from ${e}`);return t=this.annotations_[l],[t,r,a]}_getSuggestions(t){let e=$i.getSynonyms(t);if(e.status==="succeeded"){let i={};i.msg=`${t} is not a valid UCUM code. We found possible units that might be what was meant:`,i.invalidUnit=t;let r=e.units.length;i.units=[];for(let s=0;s=0){let r=this._getUnitWithAnnotation(t,e);i=r[0],i&&(e=r[1])}else{if(t.indexOf("^")>-1){let r=t.replace("^","*");i=this.utabs_.getUnitByCode(r),i&&(i=i.clone(),i.csCode_=i.csCode_.replace("*","^"),i.ciCode_=i.ciCode_.replace("*","^"))}if(!i){let r="["+t+"]";i=this.utabs_.getUnitByCode(r),i&&(i=i.clone(),e=e.replace(t,r),this.retMsg_.push(`${t} is not a valid unit expression, but ${r} is. +`+this.vcMsgStart_+`${r} (${i.name_})${this.vcMsgEnd_}`))}if(!i){let r=this.utabs_.getUnitByName(t);if(r&&r.length>0){i=r[0].clone();let s="The UCUM code for "+t+" is "+i.csCode_+`. +`+this.vcMsgStart_+i.csCode_+this.vcMsgEnd_,a=!1;for(let c=0;c"+w+"",csCode_:y+w,ciCode_:p+w,printSymbol_:g+""+w+""})}}else if(i=null,this.suggestions_){let h=this._getSuggestions(r)}else this.retMsg_.push(`${r} is not a valid UCUM code.`)}}}return[i,e]}_getUnitWithAnnotation(t,e){let i=null,r=this._getAnnoText(t,e),s=r[0],a=r[1],o=r[2];this.bracesMsg_&&this.retMsg_.indexOf(this.bracesMsg_)===-1&&this.retMsg_.push(this.bracesMsg_);let l=this.retMsg_.length;if(!a&&!o){let c="["+s.substring(1,s.length-1)+"]",u=this._makeUnit(c,e);u[0]?(i=t,this.retMsg_.push(`${s} is a valid unit expression, but did you mean ${c} (${u[0].name_})?`)):this.retMsg_.length>l&&this.retMsg_.pop(),i=new Kl({csCode_:s,ciCode_:s,magnitude_:1,name_:s})}else if(a&&!o)if($i.isIntegerUnit(a))i=a;else{let c=this._makeUnit(a,e);c[0]?(i=c[0],i.csCode_+=s,e=c[1]):this.retMsg_.push(`Unable to find a unit for ${a} that precedes the annotation ${s}.`)}else if(!a&&o)if($i.isIntegerUnit(o))i=o+s,this.retMsg_.push(`The annotation ${s} before the ``${o} is invalid.\n`+this.vcMsgStart_+i+this.vcMsgEnd_);else{let c=this._makeUnit(o,e);c[0]?(i=c[0],i.csCode_+=s,e=i.csCode_,this.retMsg_.push(`The annotation ${s} before the unit code is invalid. +`+this.vcMsgStart_+i.csCode_+this.vcMsgEnd_)):this.retMsg_.push(`Unable to find a unit for ${a} that follows the annotation ${s}.`)}else this.retMsg_.push(`Unable to find a unit for ${a}${s}${o}. +We are not sure how to interpret text both before and after the annotation. Sorry`);return[i,e]}_performUnitArithmetic(t,e){let i=t[0].un;$i.isIntegerUnit(i)&&(i=new Kl({csCode_:i,ciCode_:i,magnitude_:Number(i),name_:i}));let r=t.length,s=!1;for(let a=1;a{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});Pp.UcumLhcUtils=void 0;var SH=KA(),XA=kH(Ap());function JA(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return JA=function(){return n},n}function kH(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=JA();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}var MH=ua().Ucum,Fp=ao().UnitTables,TH=ZA().UnitString,bd=class{constructor(){Fp.getInstance().unitsCount()===0&&SH.ucumJsonDefs.loadJsonDefs(),this.uStrParser_=TH.getInstance()}useHTMLInMessages(t){t===void 0&&(t=!0),this.uStrParser_.useHTMLInMessages(t)}useBraceMsgForEachString(t){t===void 0&&(t=!0),this.uStrParser_.useBraceMsgForEachString(t)}validateUnitString(t,e,i){e===void 0&&(e=!1),i===void 0&&(i="validate");let r=this.getSpecifiedUnit(t,i,e),s=r.unit,a=s?{ucumCode:r.origString,unit:{code:s.csCode_,name:s.name_,guidance:s.guidance_}}:{ucumCode:null};return a.status=r.status,r.suggestions&&(a.suggestions=r.suggestions),a.msg=r.retMsg,a}convertUnitTo(t,e,i,r,s){r===void 0&&(r=!1),s===void 0&&(s=null);let a={status:"failed",toVal:null,msg:[]};if(t&&(t=t.trim()),(!t||t=="")&&(a.status="error",a.msg.push('No "from" unit expression specified.')),this._checkFromVal(e,a),i&&(i=i.trim()),(!i||i=="")&&(a.status="error",a.msg.push('No "to" unit expression specified.')),a.status!=="error")try{let o=null,l=this.getSpecifiedUnit(t,"convert",r);o=l.unit,l.retMsg&&(a.msg=a.msg.concat(l.retMsg)),l.suggestions&&(a.suggestions={},a.suggestions.from=l.suggestions),o||a.msg.push(`Unable to find a unit for ${t}, so no conversion could be performed.`);let c=null;if(l=this.getSpecifiedUnit(i,"convert",r),c=l.unit,l.retMsg&&(a.msg=a.msg.concat(l.retMsg)),l.suggestions&&(a.suggestions||(a.suggestions={}),a.suggestions.to=l.suggestions),c||a.msg.push(`Unable to find a unit for ${i}, so no conversion could be performed.`),o&&c)try{if(!s)a.toVal=c.convertFrom(e,o);else{if(o.moleExp_!==0&&c.moleExp_!==0)throw new Error("A molecular weight was specified but a mass <-> mole conversion cannot be executed for two mole-based units. No conversion was attempted.");if(o.moleExp_===0&&c.moleExp_===0)throw new Error("A molecular weight was specified but a mass <-> mole conversion cannot be executed when neither unit is mole-based. No conversion was attempted.");if(!o.isMoleMassCommensurable(c))throw new Error(`Sorry. ${t} cannot be converted to ${i}.`);o.moleExp_!==0?a.toVal=o.convertMolToMass(e,c,s):a.toVal=o.convertMassToMol(e,c,s)}a.status="succeeded",a.fromUnit=o,a.toUnit=c}catch(u){a.status="failed",a.msg.push(u.message)}}catch(o){o.message==MH.needMoleWeightMsg_?a.status="failed":a.status="error",a.msg.push(o.message)}return a}convertToBaseUnits(t,e){let i={};if(this._checkFromVal(e,i),!i.status){let r=this.getSpecifiedUnit(t,"validate");i={status:r.status=="valid"?"succeeded":r.status};let s=r.unit;if(i.msg=r.retMsg||[],!s)r.retMsg?.length==0&&i.msg.push("Could not find unit information for "+t);else if(s.isArbitrary_)i.msg.push("Arbitrary units cannot be converted to base units or other units."),i.status="failed";else if(i.status=="succeeded"){let a={},o=s.dim_?.dimVec_,l="1";if(o){let d=Fp.getInstance().dimVecIndexToBaseUnit_;for(let h=0,m=o.length;h0&&(e=r.retMsg),!s)e.push(`Could not find unit ${t}.`);else{let a=null,o=s.getProperty("dim_");if(!o)e.push("No commensurable units were found for "+t);else{try{a=o.getProperty("dimVec_")}catch(l){e.push(l.message),l.message==="Dimension does not have requested property(dimVec_)"&&(a=null)}a&&(i=Fp.getInstance().getUnitsByDimension(a))}}return[i,e]}};Pp.UcumLhcUtils=bd;bd.getInstance=function(){return new bd}});var Up=Q(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.UnitTables=da.UcumLhcUtils=da.Ucum=void 0;var EH=ua().Ucum;da.Ucum=EH;var AH=eI().UcumLhcUtils;da.UcumLhcUtils=AH;var IH=ao().UnitTables;da.UnitTables=IH});var Vp=Q((kue,sI)=>{var $p={};function tI(n){let t=""+ +n,e=/(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/.exec(t);if(!e)return 0;let i=e[2],r=e[3];return Math.max(0,(i==="0"?0:(i||"").length)-(r||0))}function iI(n,t){let e=Math.pow(10,t);return Math.round(n*e)/e}var nI=1e-8,rI=$p.roundToMaxPrecision=function(n){return Math.round(n/nI)*nI};$p.isEquivalent=function(n,t){if(Number.isInteger(n)&&Number.isInteger(t))return n===t;let e=Math.min(tI(n),tI(t));return e===0?Math.round(n)===Math.round(t):iI(n,e)===iI(t,e)};$p.isEqual=function(n,t){return rI(n)===rI(t)};sI.exports=$p});var oI=Q((Mue,aI)=>{var DH=pd();function RH(n){var t=DH(n),e=t.getFullYear(),i=t.getMonth(),r=new Date(0);return r.setFullYear(e,i+1,0),r.setHours(0,0,0,0),r.getDate()}aI.exports=RH});var d1=Q((Tue,lI)=>{var LH=pd(),OH=oI();function NH(n,t){var e=LH(n),i=Number(t),r=e.getMonth()+i,s=new Date(0);s.setFullYear(e.getFullYear(),r,1),s.setHours(0,0,0,0);var a=OH(s);return e.setMonth(r,Math.min(a,e.getDate())),e}lI.exports=NH});var uI=Q((Eue,cI)=>{var FH=d1();function PH(n,t){var e=Number(t);return FH(n,e*12)}cI.exports=PH});var h1=Q((Aue,dI)=>{var UH=pd();function $H(n,t){var e=UH(n),i=Number(t);return e.setDate(e.getDate()+i),e}dI.exports=$H});var mI=Q((Iue,hI)=>{var VH=h1();function BH(n,t){var e=Number(t),i=e*7;return VH(n,i)}hI.exports=BH});var pI=Q((Due,fI)=>{var zH=gd(),HH=36e5;function jH(n,t){var e=Number(t);return zH(n,e*HH)}fI.exports=jH});var _I=Q((Rue,gI)=>{var WH=gd();function qH(n,t){var e=Number(t);return WH(n,e*1e3)}gI.exports=qH});var xn=Q((Lue,SI)=>{var GH=Xy(),Ss=Up().UcumLhcUtils.getInstance(),vd=Vp(),KH="http://unitsofmeasure.org",bI="[0-9][0-9](\\:[0-9][0-9](\\:[0-9][0-9](\\.[0-9]+)?)?)?(Z|(\\+|-)[0-9][0-9]\\:[0-9][0-9])?",vI=new RegExp("^T?"+bI+"$"),yI=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9](T"+bI+")?)?)?Z?$"),CI=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9])?)?$"),wI=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9](T[0-9][0-9](\\:[0-9][0-9](\\:[0-9][0-9](\\.[0-9]+)?))(Z|(\\+|-)[0-9][0-9]\\:[0-9][0-9]))))$"),Yl=class{equals(){return!1}equivalentTo(){return!1}toString(){return this.asStr?this.asStr:super.toString()}toJSON(){return this.toString()}compare(){throw"Comparison not implemented for "+this.constructor.name}plus(){throw"Addition not implemented for "+this.constructor.name}mul(){throw"Multiplication not implemented for "+this.constructor.name}div(){throw"Division not implemented for "+this.constructor.name}},xt=class n extends Yl{constructor(t,e){super(),this.asStr=t+" "+e,this.value=t,this.unit=e}equals(t){if(!(t instanceof this.constructor))return!1;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(!e!=!i&&(e>1||i>1))return null;if(this.unit===t.unit)return vd.isEqual(this.value,t.value);let r=this._compareYearsAndMonths(t);if(r)return r.isEqual;let s=n.toUcumQuantity(this.value,this.unit),a=n.toUcumQuantity(t.value,t.unit),o=Ss.convertUnitTo(a.unit,a.value,s.unit);return o.status!=="succeeded"?!1:vd.isEqual(s.value,o.toVal)}equivalentTo(t){if(!(t instanceof this.constructor))return!1;if(this.unit===t.unit)return vd.isEquivalent(this.value,t.value);let e=n.getEquivalentUcumUnitCode(this.unit),i=n.getEquivalentUcumUnitCode(t.unit),r=Ss.convertUnitTo(i,t.value,e);return r.status!=="succeeded"?!1:vd.isEquivalent(this.value,r.toVal)}compare(t){if(this.unit===t.unit)return this.value-t.value;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(!e!=!i&&(e>1||i>1))return null;let r=n.getEquivalentUcumUnitCode(this.unit),s=n.getEquivalentUcumUnitCode(t.unit),a=Ss.convertUnitTo(s,t.value,r);return a.status!=="succeeded"?null:this.value-a.toVal}plus(t){let e=n._yearMonthConversionFactor[this.unit],i=n._yearMonthConversionFactor[t.unit];if(e&&i)return new n(this.value+t.value*i/e,this.unit);let r=n._calendarDuration2Seconds[this.unit],s=n._calendarDuration2Seconds[t.unit];if(!r!=!s&&(r>1||s>1))return null;let a=r?"s":this.unit.replace(yd,""),o=(r||1)*this.value,l=s?"s":t.unit.replace(yd,""),c=(s||1)*t.value,u=Ss.convertUnitTo(l,c,a);return u.status!=="succeeded"||u.fromUnit.isSpecial_||u.toUnit.isSpecial_?null:new n(o+u.toVal,a)}mul(t){let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(e>1&&t.unit!=="'1'"||i>1&&this.unit!=="'1'")return null;let r=this.convToUcumUnits(this,e);if(!r)return null;let s=this.convToUcumUnits(t,i);return s?this.unit==="'1'"?new n(this.value*t.value,t.unit):t.unit==="'1'"?new n(this.value*t.value,this.unit):new n(r.value*s.value,`'(${r.unit}).(${s.unit})'`):null}div(t){if(t.value===0)return null;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(e)if(i){let l=n._yearMonthConversionFactor[this.unit],c=n._yearMonthConversionFactor[t.unit];if(l&&c)return new n(this.value*l/(t.value*c),"'1'")}else{if(t.unit==="'1'")return new n(this.value/t.value,this.unit);if(e>1)return null}else if(i>1)return null;let r=this.convToUcumUnits(this,e);if(!r)return null;let s=this.convToUcumUnits(t,i);if(!s)return null;let a=s.unit==="1"?r.unit:`(${r.unit})/(${s.unit})`,o=Ss.convertToBaseUnits(a,r.value/s.value);return o.status!=="succeeded"?null:new n(o.magnitude,`'${Object.keys(o.unitToExp).map(l=>l+o.unitToExp[l]).join(".")||"1"}'`)}convToUcumUnits(t,e){if(e)return{value:e*t.value,unit:"s"};{let i=t.unit.replace(yd,""),r=Ss.convertToBaseUnits(i,t.value);return r.status!=="succeeded"||r.fromUnitIsSpecial?null:{value:r.magnitude,unit:Object.keys(r.unitToExp).map(s=>s+r.unitToExp[s]).join(".")||"1"}}}_compareYearsAndMonths(t){let e=n._yearMonthConversionFactor[this.unit],i=n._yearMonthConversionFactor[t.unit];return e&&i?{isEqual:vd.isEqual(this.value*e,t.value*i)}:null}},yd=/^'|'$/g;xt.getEquivalentUcumUnitCode=function(n){return xt.mapTimeUnitsToUCUMCode[n]||n.replace(yd,"")};xt.toUcumQuantity=function(n,t){let e=xt._calendarDuration2Seconds[t];return e?{value:e*n,unit:"s"}:{value:n,unit:t.replace(yd,"")}};xt.convUnitTo=function(n,t,e){let i=xt._yearMonthConversionFactor[n],r=xt._yearMonthConversionFactor[e];if(i&&r)return new xt(i*t/r,e);let s=xt._calendarDuration2Seconds[n],a=xt._calendarDuration2Seconds[e];if(a){if(s)return new xt(s*t/a,e);{let o=Ss.convertUnitTo(n.replace(/^'|'$/g,""),t,"s");if(o.status==="succeeded")return new xt(o.toVal/a,e)}}else{let o=s?Ss.convertUnitTo("s",s*t,e.replace(/^'|'$/g,"")):Ss.convertUnitTo(n.replace(/^'|'$/g,""),t,e.replace(/^'|'$/g,""));if(o.status==="succeeded")return new xt(o.toVal,e)}return null};xt._calendarDuration2Seconds={years:365*24*60*60,months:30*24*60*60,weeks:7*24*60*60,days:24*60*60,hours:60*60,minutes:60,seconds:1,milliseconds:.001,year:365*24*60*60,month:30*24*60*60,week:7*24*60*60,day:24*60*60,hour:60*60,minute:60,second:1,millisecond:.001};xt._yearMonthConversionFactor={years:12,months:1,year:12,month:1};xt.dateTimeArithmeticDurationUnits={years:"year",months:"month",weeks:"week",days:"day",hours:"hour",minutes:"minute",seconds:"second",milliseconds:"millisecond",year:"year",month:"month",week:"week",day:"day",hour:"hour",minute:"minute",second:"second",millisecond:"millisecond","'s'":"second","'ms'":"millisecond"};xt.mapUCUMCodeToTimeUnits={a:"year",mo:"month",wk:"week",d:"day",h:"hour",min:"minute",s:"second",ms:"millisecond"};xt.mapTimeUnitsToUCUMCode=Object.keys(xt.mapUCUMCodeToTimeUnits).reduce(function(n,t){return n[xt.mapUCUMCodeToTimeUnits[t]]=t,n[xt.mapUCUMCodeToTimeUnits[t]+"s"]=t,n},{});var ma=class n extends Yl{constructor(t){super(),this.asStr=t}plus(t){let e=t.unit,i=xt.dateTimeArithmeticDurationUnits[e];if(!i)throw new Error("For date/time arithmetic, the unit of the quantity must be one of the following time-based units: "+Object.keys(xt.dateTimeArithmeticDurationUnits));let r=this.constructor,s=r._timeUnitToDatePrecision[i];if(s===void 0)throw new Error("Unsupported unit for +. The unit should be one of "+Object.keys(r._timeUnitToDatePrecision).join(", ")+".");let a=t.value,o=r===Cd;if((o?s<2:s<5)&&(a=Math.trunc(a)),this._getPrecision()2?new $n(a)._getTimeParts():this._getTimeParts(),c=r>2?new $n(o)._getTimeParts():t._getTimeParts(),u=0;u<=s&&e!==!1;++u)e=l[u]==c[u];e&&(e=void 0)}}return e}equivalentTo(t){var e=t instanceof this.constructor;if(e){var i=this._getPrecision(),r=t._getPrecision();e=i==r,e&&(e=this._getDateObj().getTime()==t._getDateObj().getTime())}return e}compare(t){var e=this._getPrecision(),i=t._getPrecision(),r=e<=i?this._getDateObj().getTime():this._dateAtPrecision(i).getTime(),s=i<=e?t._getDateObj().getTime():t._dateAtPrecision(e).getTime();return e!==i&&r===s?null:r-s}_getPrecision(){return this.precision===void 0&&this._getMatchData(),this.precision}_getMatchData(t,e){if(this.timeMatchData===void 0&&(this.timeMatchData=this.asStr.match(t),this.timeMatchData))for(let i=e;i>=0&&this.precision===void 0;--i)this.timeMatchData[i]&&(this.precision=i);return this.timeMatchData}_getTimeParts(t){var e=[];e=[t[0]];var i=t[4];if(i){let o=e[0];e[0]=o.slice(0,o.length-i.length)}var r=t[1];if(r){let o=e[0];e[0]=o.slice(0,o.length-r.length),e[1]=r;var s=t[2];if(s){e[1]=r.slice(0,r.length-s.length),e[2]=s;var a=t[3];a&&(e[2]=s.slice(0,s.length-a.length),e[3]=a)}}return e}_getDateObj(){if(!this.dateObj){var t=this._getPrecision();this.dateObj=this._dateAtPrecision(t)}return this.dateObj}_createDate(t,e,i,r,s,a,o,l){var c=new Date(t,e,i,r,s,a,o);if(l){var u=c.getTimezoneOffset(),d=0;if(l!="Z"){var h=l.split(":"),m=parseInt(h[0]);d=parseInt(h[1]),m<0&&(d=-d),d+=60*m}c=GH(c,-u-d)}return c}};ma.timeUnitToAddFn={year:uI(),month:d1(),week:mI(),day:h1(),hour:pI(),minute:Xy(),second:_I(),millisecond:gd()};var $n=(()=>{class n extends ma{constructor(e){super(e)}compare(e){if(!(e instanceof n))throw"Invalid comparison of a DateTime with something else";return super.compare(e)}_getMatchData(){return super._getMatchData(yI,5)}_getTimeParts(){if(!this.timeParts){let i=this._getMatchData(),r=i[0];this.timeParts=[r];var e=i[1];if(e){this.timeParts[0]=r.slice(0,r.length-e.length),this.timeParts[1]=e;let s=i[2];if(s){this.timeParts[1]=e.slice(0,e.length-s.length),this.timeParts[2]=s;let a=i[3];a&&(this.timeParts[2]=s.slice(0,s.length-a.length),a[0]==="T"&&(i[3]=a.slice(1)),this.timeParts=this.timeParts.concat(super._getTimeParts(i.slice(3))))}}}return this.timeParts}_dateAtPrecision(e){var i=this._getTimeParts(),r=this._getMatchData()[7],s=this._getPrecision(),a=parseInt(i[0]),o=s>0?parseInt(i[1].slice(1))-1:0,l=s>1?parseInt(i[2].slice(1)):1,c=s>2?parseInt(i[3]):0,u=s>3?parseInt(i[4].slice(1)):0,d=s>4?parseInt(i[5].slice(1)):0,h=i.length>6?parseInt(i[6].slice(1)):0,m=this._createDate(a,o,l,c,u,d,h,r);return e0?m.getMonth():0,l=e>1?m.getDate():1,c=e>2?m.getHours():0,u=e>3?m.getMinutes():0,m=new Date(a,o,l,c,u)),m}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n._timeUnitToDatePrecision={year:0,month:1,week:2,day:2,hour:3,minute:4,second:5,millisecond:6},n._datePrecisionToTimeUnit=["year","month","day","hour","minute","second","millisecond"],n})(),Cd=(()=>{class n extends ma{constructor(e){e[0]=="T"&&(e=e.slice(1)),super(e)}compare(e){if(!(e instanceof n))throw"Invalid comparison of a time with something else";return super.compare(e)}_dateAtPrecision(e){var i=this._getTimeParts(),r=this._getMatchData()[4],s=this._getPrecision(),a=2010,o=0,l=1,c=parseInt(i[0]),u=s>0?parseInt(i[1].slice(1)):0,d=s>1?parseInt(i[2].slice(1)):0,h=i.length>3?parseInt(i[3].slice(1)):0,m=this._createDate(a,o,l,c,u,d,h,r);return r&&(m.setYear(a),m.setMonth(o),m.setDate(l)),e0?m.getMinutes():0,m=new Date(a,o,l,c,u)),m}_getMatchData(){return super._getMatchData(vI,2)}_getTimeParts(){return this.timeParts||(this.timeParts=super._getTimeParts(this._getMatchData())),this.timeParts}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n._timeUnitToDatePrecision={hour:0,minute:1,second:2,millisecond:3},n._datePrecisionToTimeUnit=["hour","minute","second","millisecond"],n})();function ha(n,t){var e=n;return t===3&&n<100&&(e="0"+n),n<10&&(e="0"+e),e}$n.isoDateTime=function(n,t){t===void 0&&(t=5);var e=""+n.getFullYear();if(t>0&&(e+="-"+ha(n.getMonth()+1),t>1&&(e+="-"+ha(n.getDate()),t>2&&(e+="T"+$n.isoTime(n,t-3)))),t>2){var i=n.getTimezoneOffset(),r=i<0?"+":"-";i=Math.abs(i);var s=i%60,a=(i-s)/60;e+=r+ha(a)+":"+ha(s)}return e};$n.isoTime=function(n,t){t===void 0&&(t=2);let e=""+ha(n.getHours());return t>0&&(e+=":"+ha(n.getMinutes()),t>1&&(e+=":"+ha(n.getSeconds()),n.getMilliseconds()&&(e+="."+ha(n.getMilliseconds(),3)))),e};var m1=(()=>{class n extends $n{constructor(e){super(e)}_getMatchData(){return ma.prototype._getMatchData.apply(this,[CI,2])}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n.isoDate=function(t,e){return(e===void 0||e>2)&&(e=2),$n.isoDateTime(t,e)},n})(),xI=(()=>{class n extends $n{constructor(e){super(e)}_getMatchData(){return ma.prototype._getMatchData.apply(this,[wI,5])}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n})(),p1=(()=>{class n{constructor(e,i,r,s,a,o){e?.resourceType&&(r=e.resourceType,a=e.resourceType),this.parentResNode=i||null,this.path=r||null,this.data=e,this._data=s||{},this.fhirNodeDataType=a||null,this.model=o||null}getTypeInfo(){if(!this.typeInfo){let e;this.fhirNodeDataType&&(/^System\.(.*)$/.test(this.fhirNodeDataType)?e=new wn({namespace:wn.System,name:RegExp.$1}):e=new wn({namespace:wn.FHIR,name:this.fhirNodeDataType})),this.typeInfo=e||wn.createByValueInSystemNamespace(this.data)}return this.typeInfo}toJSON(){return JSON.stringify(this.data)}convertData(){if(!this.convertedData){var e=this.data;if(e!=null){let i=wn.typeToClassWithCheckString[this.path];if(i)e=i.checkString(e)||e;else if(wn.isType(this.path,"Quantity",this.model)&&e?.system===KH&&typeof e.value=="number"&&typeof e.code=="string"){if(e.comparator!==void 0)throw new Error("Cannot convert a FHIR.Quantity that has a comparator");e=new xt(e.value,xt.mapUCUMCodeToTimeUnits[e.code]||"'"+e.code+"'")}}this.convertedData=e}return this.convertedData}}return n.makeResNode=function(t,e,i,r,s,a){return t instanceof n?t:new n(t,e,i,r,s,a)},n})(),f1=new Set;["Boolean","String","Integer","Decimal","Date","DateTime","Time","Quantity"].forEach(n=>f1.add(n));var wn=(()=>{class n{constructor({name:e,namespace:i}){this.name=e,this.namespace=i}static model=null;is(e,i){return e instanceof n&&(!this.namespace||!e.namespace||this.namespace===e.namespace)?i&&(!this.namespace||this.namespace===n.FHIR)?n.isType(this.name,e.name,i):this.name===e.name:!1}toString(){return(this.namespace?this.namespace+".":"")+this.name}isValid(e){let i=!1;return this.namespace==="System"?i=f1.has(this.name):this.namespace==="FHIR"?i=e.availableTypes.has(this.name):this.namespace||(i=f1.has(this.name)||e.availableTypes.has(this.name)),i}}return n.typeToClassWithCheckString={date:m1,dateTime:$n,instant:xI,time:Cd},n.isType=function(t,e,i){do if(t===e)return!0;while(t=i?.type2Parent[t]);return!1},n.System="System",n.FHIR="FHIR",n.createByValueInSystemNamespace=function(t){let e=typeof t;return Number.isInteger(t)?e="integer":e==="number"?e="decimal":t instanceof m1?e="date":t instanceof $n?e="dateTime":t instanceof Cd?e="time":t instanceof xt&&(e="Quantity"),e=e.replace(/^\w/,i=>i.toUpperCase()),new n({namespace:n.System,name:e})},n.fromValue=function(t){return t instanceof p1?t.getTypeInfo():n.createByValueInSystemNamespace(t)},n})(),g1=new Set;["instant","time","date","dateTime","base64Binary","decimal","integer64","boolean","string","code","markdown","id","integer","unsignedInt","positiveInt","uri","oid","uuid","canonical","url","Integer","Decimal","String","Date","DateTime","Time"].forEach(n=>g1.add(n));wn.isPrimitive=function(n){return g1.has(n.name)};wn.isPrimitiveValue=function(n){return n instanceof p1?g1.has(n.getTypeInfo().name):typeof n!="object"||n instanceof Yl};function YH(n){return n.map(t=>wn.fromValue(t))}function QH(n,t){if(n.length===0)return[];if(n.length>1)throw new Error("Expected singleton on left side of 'is', got "+JSON.stringify(n));let e=this;return wn.fromValue(n[0]).is(t,e.model)}function ZH(n,t){if(n.length===0)return[];if(n.length>1)throw new Error("Expected singleton on left side of 'as', got "+JSON.stringify(n));let e=this;return wn.fromValue(n[0]).is(t,e.model)?n:[]}SI.exports={FP_Type:Yl,FP_TimeBase:ma,FP_Date:m1,FP_DateTime:$n,FP_Instant:xI,FP_Time:Cd,FP_Quantity:xt,timeRE:vI,dateTimeRE:yI,dateRE:CI,instantRE:wI,ResourceNode:p1,TypeInfo:wn,typeFn:YH,isFn:QH,asFn:ZH}});var Vi=Q((Oue,MI)=>{var It={},XH=xn(),{ResourceNode:Zl}=XH;It.raiseError=function(n,t){throw t=t?t+": ":"",t+n};It.assertOnlyOne=function(n,t){n.length!==1&&It.raiseError("Was expecting only one element but got "+JSON.stringify(n),t)};It.assertType=function(n,t,e){let i=this.valData(n);if(t.indexOf(typeof i)<0){let r=t.length>1?"one of "+t.join(", "):t[0];It.raiseError("Found type '"+typeof n+"' but was expecting "+r,e)}return i};It.isEmpty=function(n){return Array.isArray(n)&&n.length===0};It.isSome=function(n){return n!=null&&!It.isEmpty(n)};It.isTrue=function(n){return n!=null&&(n===!0||n.length===1&&It.valData(n[0])===!0)};It.isCapitalized=function(n){return n&&n[0]===n[0].toUpperCase()};It.capitalize=function(n){return n[0].toUpperCase()+n.substring(1)};It.flatten=function(n){return n.some(t=>t instanceof Promise)?Promise.all(n).then(t=>kI(t)):kI(n)};function kI(n){return[].concat(...n)}It.arraify=function(n){return Array.isArray(n)?n:It.isSome(n)?[n]:[]};It.resolveAndArraify=function(n){return n instanceof Promise?n.then(t=>It.arraify(t)):It.arraify(n)};It.valData=function(n){return n instanceof Zl?n.data:n};It.valDataConverted=function(n){return n instanceof Zl&&(n=n.convertData()),n};It.escapeStringForRegExp=function(n){return n.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g,"\\$&")};It.pushFn=Function.prototype.apply.bind(Array.prototype.push);It.makeChildResNodes=function(n,t,e){let i=n.path+"."+t;if(e){let c=e.pathsDefinedElsewhere[i];c&&(i=c)}let r,s,a=e&&e.choiceTypePaths[i];if(a)for(let c of a){let u=t+c;if(r=n.data?.[u],s=n.data?.["_"+u],r!==void 0||s!==void 0){i+=c;break}}else r=n.data?.[t],s=n.data?.["_"+t],r===void 0&&s===void 0&&(r=n._data[t]),t==="extension"&&(i="Extension");let o=null;e&&(o=e.path2Type[i],i=e.path2TypeWithoutElements[i]||i);let l;if(It.isSome(r)||It.isSome(s))if(Array.isArray(r)){l=r.map((u,d)=>Zl.makeResNode(u,n,i,s&&s[d],o,e));let c=s?.length||0;for(let u=r.length;uZl.makeResNode(null,n,i,c,o,e)):l=[Zl.makeResNode(r,n,i,s,o,e)];else l=[];return l};var Ql={},JH=36e5;It.fetchWithCache=function(n,t){let e=[n,t?JSON.stringify(t):""].join("|"),i=Date.now();for(let r in Ql)i-Ql[r].timestamp>JH&&delete Ql[r];return Ql[e]||(Ql[e]={timestamp:i,promise:Promise.resolve(t?fetch(n,t):fetch(n)).then(r=>{let s=r.headers.get("Content-Type"),a=s.includes("application/json")||s.includes("application/fhir+json");try{return a?r.json().then(o=>r.ok?o:Promise.reject(o)):r.text().then(o=>Promise.reject(o))}catch(o){return Promise.reject(new Error(o))}})}),Ql[e].promise};MI.exports=It});var TI=Q(()=>{var e7=Function.prototype.call.bind(Array.prototype.slice);Number.isInteger=Number.isInteger||function(n){return typeof n=="number"&&isFinite(n)&&Math.floor(n)===n};String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{value:function(n,t){return t=t||0,this.indexOf(n,t)===t}});String.prototype.endsWith||Object.defineProperty(String.prototype,"endsWith",{value:function(n,t){var e=this.toString();(t===void 0||t>e.length)&&(t=e.length),t-=n.length;var i=e.indexOf(n,t);return i!==-1&&i===t}});String.prototype.includes||Object.defineProperty(String.prototype,"includes",{value:function(){return this.indexOf.apply(this,arguments)!==-1}});Object.assign||Object.defineProperty(Object,"assign",{value:function(n){if(n==null)throw new TypeError("Cannot convert undefined or null to object");return e7(arguments,1).reduce(function(t,e){return Object.keys(Object(e)).forEach(function(i){t[i]=e[i]}),t},Object(n))}});typeof btoa>"u"&&(global.btoa=function(n){return new Buffer.from(n,"binary").toString("base64")});typeof atob>"u"&&(global.atob=function(n){return new Buffer.from(n,"base64").toString("binary")})});var _1=Q((Pue,EI)=>{EI.exports={reset:function(){this.nowDate=new Date,this.today=null,this.now=null,this.timeOfDay=null,this.localTimezoneOffset=null},today:null,now:null,timeOfDay:null}});var Bp=Q((Uue,AI)=>{var t7=Up().UcumLhcUtils.getInstance(),{roundToMaxPrecision:i7}=Vp(),{valDataConverted:n7}=Vi(),{FP_Type:r7,FP_Quantity:b1}=xn();function s7(n){return JSON.stringify(v1(n))}function v1(n){if(n=n7(n),n===null)return null;if(typeof n=="number")return i7(n);if(n instanceof Date)return n.toISOString();if(n instanceof b1){let t=b1._yearMonthConversionFactor[n.unit];if(t)return"_!yearMonth!_:"+t*n.value;{let e=b1.toUcumQuantity(n.value,n.unit),i=t7.getSpecifiedUnit(e.unit).unit;return"_!"+i.property_+"!_:"+i.magnitude_*e.value}}else{if(n instanceof r7)return n.toString();if(typeof n=="object")return Array.isArray(n)?n.map(v1):Object.keys(n).sort().reduce((t,e)=>{let i=n[e];return t[e]=v1(i),t},{})}return n}AI.exports=s7});var Xl=Q(($ue,VI)=>{var{FP_Type:II,FP_Quantity:DI,ResourceNode:RI}=xn(),LI=Vp(),OI=Array.prototype.slice,NI=Object.keys,zp=function(n){return Object.prototype.toString.call(n)==="[object Arguments]"};function FI(n){return typeof n=="string"||n instanceof String}function PI(n){return!isNaN(parseFloat(n))&&isFinite(n)}function UI(n){return n.toUpperCase().replace(/\s+/," ")}function rr(n,t,e){let i=n instanceof RI,r=t instanceof RI,s=i?n.convertData():n,a=r?t.convertData():t;if(e||(e={}),s===a)return e.fuzzy||!i||!r||rr(n._data,t._data);if(e.fuzzy){if(FI(s)&&FI(a))return UI(s)===UI(a);if(PI(s)&&PI(a))return LI.isEquivalent(s,a)}else if(typeof s=="number"&&typeof a=="number")return LI.isEqual(s,a)?i&&r?rr(n._data,t._data,e):!0:!1;if(s instanceof Date&&a instanceof Date)return s.getTime()===a.getTime()&&(e.fuzzy||!i||!r||rr(n._data,t._data));if(!s||!a||typeof s!="object"&&typeof a!="object")return s===a&&(e.fuzzy||!i||!r||rr(n._data,t._data));var o=s instanceof II,l=a instanceof II;if(o&&l){if(e.fuzzy)return s.equivalentTo(a);{let c=s.equals(a);return c&&(!i||!r||rr(n._data,t._data)&&rr(n.data?.id,t.data?.id)&&rr(n.data?.extension,t.data?.extension))}}else if(o||l){let c=!1;return typeof s=="number"&&(s=new DI(s,"'1'"),c=!0),typeof a=="number"&&(a=new DI(a,"'1'"),c=!0),c?e.fuzzy?s.equivalentTo(a):s.equals(a):!1}return a7(s,a,e)}function $I(n){return n==null}function a7(n,t,e){var i,r;if($I(n)||$I(t)||n.prototype!==t.prototype)return!1;if(zp(n)||zp(t))return n=zp(n)?OI.call(n):n,t=zp(t)?OI.call(t):t,rr(n,t,e);try{var s=NI(n),a=NI(t)}catch{return!1}if(s.length!=a.length)return!1;for(s.sort(),a.sort(),i=s.length-1;i>=0;i--)if(s[i]!=a[i])return!1;if(s.length===1)return r=s[0],rr(n[r],t[r],e);for(i=s.length-1;i>=0;i--)if(r=s[i],!rr(n[r],t[r],e))return!1;return typeof n==typeof t}VI.exports={deepEqual:rr,maxCollSizeForDeepEqual:6}});var Hp=Q((Vue,WI)=>{var y1=Vi(),{TypeInfo:C1,ResourceNode:o7}=xn(),zI=Bp(),{deepEqual:HI,maxCollSizeForDeepEqual:jI}=Xl(),Bi={};Bi.whereMacro=function(n,t){return n!==!1&&!n?[]:y1.flatten(n.map((e,i)=>{this.$index=i;let r=t(e);return r instanceof Promise?r.then(s=>s[0]?e:[]):r[0]?e:[]}))};Bi.extension=function(n,t){let e=this;return n!==!1&&!n||!t?[]:y1.flatten(n.map((i,r)=>{this.$index=r;let s=i&&(i.data&&i.data.extension||i._data&&i._data.extension);return s?s.filter(a=>a.url===t).map(a=>o7.makeResNode(a,i,"Extension",null,"Extension",e.model)):[]}))};Bi.selectMacro=function(n,t){return n!==!1&&!n?[]:y1.flatten(n.map((e,i)=>(this.$index=i,t(e))))};Bi.repeatMacro=function(n,t,e={res:[],unique:{},hasPrimitive:!1}){if(n!==!1&&!n)return[];let i=[].concat(...n.map(r=>t(r)));return i.some(r=>r instanceof Promise)?Promise.all(i).then(r=>(r=[].concat(...r),r.length?Bi.repeatMacro(BI(r,e),t,e):e.res)):i.length?Bi.repeatMacro(BI(i,e),t,e):e.res};function BI(n,t){let e;return t.hasPrimitive=t.hasPrimitive||n.some(i=>C1.isPrimitiveValue(i)),!t.hasPrimitive&&n.length+t.res.length>jI?(e=n.filter(i=>{let r=zI(i),s=!t.unique[r];return s&&(t.unique[r]=!0),s}),t.res.push.apply(t.res,e)):e=n.filter(i=>{let r=!t.res.some(s=>HI(s,i));return r&&t.res.push(i),r}),e}Bi.singleFn=function(n){if(n.length===1)return n;if(n.length===0)return[];throw new Error("Expected single")};Bi.firstFn=function(n){return n[0]};Bi.lastFn=function(n){return n[n.length-1]};Bi.tailFn=function(n){return n.slice(1,n.length)};Bi.takeFn=function(n,t){return n.slice(0,t)};Bi.skipFn=function(n,t){return n.slice(t,n.length)};Bi.ofTypeFn=function(n,t){let e=this;return n.filter(i=>C1.fromValue(i).is(t,e.model))};Bi.distinctFn=function(n,t=void 0){let e=[];if(n.length>0)if(t=t??n.some(i=>C1.isPrimitiveValue(i)),!t&&n.length>jI){let i={};for(let r=0,s=n.length;r!HI(i,r))}while(n.length)}return e};WI.exports=Bi});var jp=Q((Bue,YI)=>{var $r=Vi(),GI=xn(),{FP_Quantity:ks,TypeInfo:KI}=GI,zi={};zi.iifMacro=function(n,t,e,i){let r=t(n);return r instanceof Promise?r.then(s=>qI(n,s,e,i)):qI(n,r,e,i)};function qI(n,t,e,i){return $r.isTrue(t)?e(n):i?i(n):[]}zi.traceFn=function(n,t,e){let i=e?e(n):null;return i instanceof Promise?i.then(r=>zi.traceFn(n,t,r)):(this.customTraceFn?e?this.customTraceFn(e(n),t??""):this.customTraceFn(n,t??""):e?console.log("TRACE:["+(t||"")+"]",JSON.stringify(e(n),null," ")):console.log("TRACE:["+(t||"")+"]",JSON.stringify(n,null," ")),n)};zi.defineVariable=function(n,t,e){let i=n;if(e&&(i=e(n)),this.definedVars||(this.definedVars={}),t in this.vars||t in this.processedVars)throw new Error("Environment Variable %"+t+" already defined");if(Object.keys(this.definedVars).includes(t))throw new Error("Variable %"+t+" already defined");return this.definedVars[t]=i,n};var l7=/^[+-]?\d+$/;zi.toInteger=function(n){if(n.length!==1)return[];var t=$r.valData(n[0]);return t===!1?0:t===!0?1:typeof t=="number"?Number.isInteger(t)?t:[]:typeof t=="string"&&l7.test(t)?parseInt(t):[]};var c7=/^((\+|-)?\d+(\.\d+)?)\s*(('[^']+')|([a-zA-Z]+))?$/,w1={value:1,unit:5,time:6};zi.toQuantity=function(n,t){let e;if(n.length>1)throw new Error("Could not convert to quantity: input collection contains multiple items");if(n.length===1){if(t){let s=ks._calendarDuration2Seconds[this.unit],a=ks._calendarDuration2Seconds[t];if(!s!=!a&&(s>1||a>1))return null;ks.mapTimeUnitsToUCUMCode[t]||(t=`'${t}'`)}var i=$r.valDataConverted(n[0]);let r;if(typeof i=="number")e=new ks(i,"'1'");else if(i instanceof ks)e=i;else if(typeof i=="boolean")e=new ks(i?1:0,"'1'");else if(typeof i=="string"&&(r=c7.exec(i))){let s=r[w1.value],a=r[w1.unit],o=r[w1.time];(!o||ks.mapTimeUnitsToUCUMCode[o])&&(e=new ks(Number(s),a||o||"'1'"))}e&&t&&e.unit!==t&&(e=ks.convUnitTo(e.unit,e.value,t))}return e||[]};var u7=/^[+-]?\d+(\.\d+)?$/;zi.toDecimal=function(n){if(n.length!==1)return[];var t=$r.valData(n[0]);return t===!1?0:t===!0?1:typeof t=="number"?t:typeof t=="string"&&u7.test(t)?parseFloat(t):[]};zi.toString=function(n){if(n.length!==1)return[];var t=$r.valDataConverted(n[0]);return t==null?[]:t.toString()};function x1(n){let t=n.slice(3);zi["to"+t]=function(e){var i=[];if(e.length>1)throw Error("to "+t+" called for a collection of length "+e.length);if(e.length===1){var r=$r.valData(e[0]);if(typeof r=="string"){var s=GI[n].checkString(r);s&&(i=s)}}return i}}x1("FP_Date");x1("FP_DateTime");x1("FP_Time");var d7=["true","t","yes","y","1","1.0"].reduce((n,t)=>(n[t]=!0,n),{}),h7=["false","f","no","n","0","0.0"].reduce((n,t)=>(n[t]=!0,n),{});zi.toBoolean=function(n){if(n.length!==1)return[];let t=$r.valData(n[0]);switch(typeof t){case"boolean":return t;case"number":if(t===1)return!0;if(t===0)return!1;break;case"string":let e=t.toLowerCase();if(d7[e])return!0;if(h7[e])return!1}return[]};zi.createConvertsToFn=function(n,t){return typeof t=="string"?function(e){return e.length!==1?[]:typeof n(e)===t}:function(e){return e.length!==1?[]:n(e)instanceof t}};var m7={Integer:function(n){if(Number.isInteger(n))return n},Boolean:function(n){return n===!0||n===!1?n:!0},Number:function(n){if(typeof n=="number")return n},String:function(n){if(typeof n=="string")return n},StringOrNumber:function(n){if(typeof n=="string"||typeof n=="number")return n},AnySingletonAtRoot:function(n){return n}};zi.singleton=function(n,t){if(n.length>1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type "+t);if(n.length===0)return[];let e=$r.valData(n[0]);if(e==null)return[];let i=m7[t];if(i){let r=i(e);if(r!==void 0)return r;throw new Error(`Expected ${t.toLowerCase()}, but got: ${JSON.stringify(n)}`)}throw new Error("Not supported type "+t)};zi.hasValueFn=function(n){return n.length===1&&$r.valData(n[0])!=null&&KI.isPrimitiveValue(n[0])};zi.getValueFn=function(n){if(n.length===1){let t=n[0],e=$r.valData(t);if(e!=null&&KI.isPrimitiveValue(t))return e}return[]};YI.exports=zi});var eD=Q((zue,JI)=>{var Vr=Vi(),{whereMacro:f7,distinctFn:p7}=Hp(),g7=jp(),QI=Bp(),{deepEqual:_7,maxCollSizeForDeepEqual:b7}=Xl(),{TypeInfo:ZI}=xn(),tn={};tn.emptyFn=Vr.isEmpty;tn.notFn=function(n){let t=g7.singleton(n,"Boolean");return typeof t=="boolean"?!t:[]};tn.existsMacro=function(n,t){if(t){let e=f7.call(this,n,t);return e instanceof Promise?e.then(i=>tn.existsMacro(i)):tn.existsMacro(e)}return!Vr.isEmpty(n)};tn.allMacro=function(n,t){let e=[];for(let i=0,r=n.length;ii.some(r=>!Vr.isTrue(r))?[!1]:[!0]):[!0]};tn.allTrueFn=function(n){let t=!0;for(let e=0,i=n.length;eZI.isPrimitiveValue(a))||t.some(a=>ZI.isPrimitiveValue(a)))&&e+i>b7){let a=t.reduce((o,l)=>(o[QI(l)]=!0,o),{});r=!n.some(o=>!a[QI(o)])}else for(let a=0,o=n.length;a_7(l,Vr.valData(c)))}return r}tn.subsetOfFn=function(n,t){return[XI(n,t)]};tn.supersetOfFn=function(n,t){return[XI(t,n)]};tn.isDistinctFn=function(n){return[n.length===p7(n).length]};JI.exports=tn});var S1=Q((Hue,iD)=>{var{FP_Quantity:Xt,FP_Type:wd}=xn(),Br=Vi(),ai={};function Ms(n,t){let e;if(tD(n))e=[];else{if(n.length!==1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type number");{let i=Br.valData(n[0]);if(i==null)e=[];else if(typeof i=="number")e=t(i);else throw new Error("Expected number, but got "+JSON.stringify(i))}}return e}function tD(n){return typeof n=="number"?!1:n.length===0}ai.amp=function(n,t){return(n||"")+(t||"")};ai.plus=function(n,t){let e;if(n.length===1&&t.length===1){let i=Br.valDataConverted(n[0]),r=Br.valDataConverted(t[0]);i==null||r==null?e=[]:typeof i=="string"&&typeof r=="string"?e=i+r:typeof i=="number"?typeof r=="number"?e=i+r:r instanceof Xt&&(e=new Xt(i,"'1'").plus(r)):i instanceof wd&&(r instanceof Xt?e=i.plus(r):r instanceof wd?e=r.plus(i):typeof r=="number"&&(e=i.plus(new Xt(r,"'1'"))))}if(e===void 0)throw new Error("Cannot "+JSON.stringify(n)+" + "+JSON.stringify(t));return e};ai.minus=function(n,t){if(n.length===1&&t.length===1){let e=Br.valDataConverted(n[0]),i=Br.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return e-i;if(i instanceof Xt)return new Xt(e,"'1'").plus(new Xt(-i.value,i.unit))}if(e instanceof wd){if(i instanceof Xt)return e.plus(new Xt(-i.value,i.unit));if(typeof i=="number")return e.plus(new Xt(-i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" - "+JSON.stringify(t))};ai.mul=function(n,t){if(n.length===1&&t.length===1){let e=Br.valDataConverted(n[0]),i=Br.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return e*i;if(i instanceof Xt)return new Xt(e,"'1'").mul(i)}if(e instanceof wd){if(i instanceof Xt)return e.mul(i);if(typeof i=="number")return e.mul(new Xt(i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" * "+JSON.stringify(t))};ai.div=function(n,t){if(n.length===1&&t.length===1){let e=Br.valDataConverted(n[0]),i=Br.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return i===0?[]:e/i;if(i instanceof Xt)return new Xt(e,"'1'").div(i)}if(e instanceof wd){if(i instanceof Xt)return e.div(i);if(typeof i=="number")return e.div(new Xt(i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" / "+JSON.stringify(t))};ai.intdiv=function(n,t){return t===0?[]:Math.floor(n/t)};ai.mod=function(n,t){return t===0?[]:n%t};ai.abs=function(n){let t;if(tD(n))t=[];else{if(n.length!==1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type number or Quantity");var e=Br.valData(n[0]);if(e==null)t=[];else if(typeof e=="number")t=Math.abs(e);else if(e instanceof Xt)t=new Xt(Math.abs(e.value),e.unit);else throw new Error("Expected number or Quantity, but got "+JSON.stringify(e||n))}return t};ai.ceiling=function(n){return Ms(n,Math.ceil)};ai.exp=function(n){return Ms(n,Math.exp)};ai.floor=function(n){return Ms(n,Math.floor)};ai.ln=function(n){return Ms(n,Math.log)};ai.log=function(n,t){return Ms(n,e=>Math.log(e)/Math.log(t))};ai.power=function(n,t){return Ms(n,e=>{let i=Math.pow(e,t);return isNaN(i)?[]:i})};ai.round=function(n,t){return Ms(n,e=>{if(t===void 0)return Math.round(e);{let i=Math.pow(10,t);return Math.round(e*i)/i}})};ai.sqrt=function(n){return Ms(n,t=>t<0?[]:Math.sqrt(t))};ai.truncate=function(n){return Ms(n,Math.trunc)};iD.exports=ai});var k1=Q((jue,oD)=>{var sr=Vi(),{deepEqual:nD}=Xl(),rD=xn(),qp=rD.FP_Type,Wp=rD.FP_DateTime,Ts={};function sD(n,t){return sr.isEmpty(n)||sr.isEmpty(t)?[]:nD(n,t)}function aD(n,t){return sr.isEmpty(n)&&sr.isEmpty(t)?[!0]:sr.isEmpty(n)||sr.isEmpty(t)?[]:nD(n,t,{fuzzy:!0})}Ts.equal=function(n,t){return sD(n,t)};Ts.unequal=function(n,t){var e=sD(n,t);return e===void 0?void 0:!e};Ts.equival=function(n,t){return aD(n,t)};Ts.unequival=function(n,t){return!aD(n,t)};function Gp(n,t){if(sr.assertOnlyOne(n,"Singleton was expected"),sr.assertOnlyOne(t,"Singleton was expected"),n=sr.valDataConverted(n[0]),t=sr.valDataConverted(t[0]),n!=null&&t!=null){let e=n instanceof Wp?Wp:n.constructor,i=t instanceof Wp?Wp:t.constructor;e!==i&&sr.raiseError('Type of "'+n+'" ('+e.name+') did not match type of "'+t+'" ('+i.name+")","InequalityExpression")}return[n,t]}Ts.lt=function(n,t){let[e,i]=Gp(n,t);if(e==null||i==null)return[];if(e instanceof qp){let r=e.compare(i);return r===null?[]:r<0}return e0}return e>i};Ts.lte=function(n,t){let[e,i]=Gp(n,t);if(e==null||i==null)return[];if(e instanceof qp){let r=e.compare(i);return r===null?[]:r<=0}return e<=i};Ts.gte=function(n,t){let[e,i]=Gp(n,t);if(e==null||i==null)return[];if(e instanceof qp){let r=e.compare(i);return r===null?[]:r>=0}return e>=i};oD.exports=Ts});var hD=Q((Wue,dD)=>{var zr={},lD=S1(),cD=k1(),Es=Vi();zr.aggregateMacro=function(n,t,e){return n.reduce((i,r,s)=>i instanceof Promise?i.then(a=>(this.$index=s,this.$total=a,this.$total=t(r))):(this.$index=s,this.$total=t(r)),this.$total=e)};zr.countFn=function(n){return n&&n.length?n.length:0};zr.sumFn=function(n){return zr.aggregateMacro.apply(this,[n.slice(1),t=>{let e=Es.arraify(t).filter(r=>Es.valData(r)!=null),i=Es.arraify(this.$total).filter(r=>Es.valData(r)!=null);return e.length===0||i.length===0?[]:lD.plus(e,i)},n[0]])};function uD(n,t){let e;if(n.length===0||Es.valData(n[0])==null)e=[];else{e=[n[0]];for(let i=1;i{var pD={},T1=Vi();pD.weight=function(n){let t=this;if(!t.model?.score)throw new Error("The weight()/ordinal() function is not supported for the current model.");if(n!==!1&&!n)return[];let e=[],i=this.vars.questionnaire||this.processedVars.questionnaire?.data,r=!1;return n.forEach(s=>{if(s?.data){let{score:a,isQuestionnaireResponse:o,value:l,valueType:c}=v7(t,s);if(a!==void 0)e.push(a);else if(o&&l!=null&&c){let u=E7(s);if(i){let d=I7(t.model?.version,i,u);if(d){let h=y7(t,d,l,c);h.score!==void 0?e.push(h.score):(h.answerOption&&l.system||h.answerValueSet)&&(r=mD(e,t,i,h.answerValueSet,l.code,l.system,s)||r)}else throw new Error("Questionnaire item with this linkId were not found: "+s.parentResNode.data.linkId+".")}else throw new Error("%questionnaire is needed but not specified.")}else c==="Coding"&&l?.system&&(r=mD(e,t,null,null,l.code,l.system,s)||r)}}),r?Promise.all(e):e};function v7(n,t){let e=n.model.score.propertyURI,i=n.model.score.extensionURI,r,s,a,o,l;switch(t.path){case"Coding":s=t.parentResNode?.path==="QuestionnaireResponse.item.answer",r=Hr(t.data,i),a=t.data,o="Coding";break;case"Questionnaire.item.answerOption":r=Hr(t.data,i),a=t.data;break;case"QuestionnaireResponse.item.answer":s=!0,l=t.data&&Object.keys(t.data).find(c=>c.length>5&&c.startsWith("value")),l&&(o=l.substring(5),a=t.data[l],r=Hr(t.data["_"+l]||a,i));break;case"ValueSet.compose.include.concept":n.model.score.propertyURI||(r=Hr(t.data,i)),a={code:t.data.code,system:t.parentResNode?.data.system},o="Coding";break;case"ValueSet.expansion.contains":if(e){let c=Sd(t.parentResNode?.data.property,e);r=Yp(t.data,c),a=t.data,o="Coding"}break;case"CodeSystem.concept":if(e){let c=Sd(t.parentResNode?.data.property,e);r=Yp(t.data,c)}else r=Hr(t.data,i);break;default:s=t.parentResNode?.path==="QuestionnaireResponse.item.answer",s&&(r=Hr(t._data||t.data,i),a=t.data,o=T1.capitalize(t.fhirNodeDataType))}return{score:r,isQuestionnaireResponse:s,value:a,valueType:o}}function Hr(n,t){return t&&n?.extension?.find(e=>t.indexOf(e.url)!==-1)?.valueDecimal}function y7(n,t,e,i){let r,s="value"+i;switch(i){case"Attachment":case"Quantity":case"Reference":r=c=>Object.keys(e).find(u=>u!=="extension"&&c[s][u]!==e[u])===void 0;break;case"Coding":r=c=>c.valueCoding?.code===e.code&&c.valueCoding?.system===e.system;break;default:r=c=>c[s]===e}let a=t?.answerOption?.find(r),o=Hr(a,n.model.score.extensionURI),l=t?.answerValueSet;return{score:o,answerOption:a,answerValueSet:l}}var Kp={},C7=36e5;function w7(n,t){Kp[n]={timestamp:Date.now(),value:t}}function x7(n){return Kp[n]&&Date.now()-Kp[n].timestampm.id===u&&m.resourceType==="ValueSet":m=>m.url===i&&m.resourceType==="ValueSet",h=e?.contained?.find(d);if(h)o=T7(t,h,r,s);else if(u)throw new Error("Cannot find a contained value set with id: "+u+".")}s&&(o==null?o=fD(t,e,a,r,s):o instanceof Promise&&(o=o.then(u=>u??fD(t,e,a,r,s))))}w7(c,o)}return o!==void 0&&n.push(o),o instanceof Promise}function fD(n,t,e,i,r){let s=l=>l.url===r&&l.resourceType==="CodeSystem",a=A7(e)?.find(s)||t?.contained?.find(s),o;if(a){let l=n.model?.score.propertyURI;if(l){let c=Sd(a?.property,l);if(c){let u=xd(a?.concept,i);o=Yp(u,c)}}else{let c=n.model?.score.extensionURI;if(c){let u=xd(a?.concept,i);o=Hr(u,c)}}}else o=k7(n,i,r);return o}function k7(n,t,e){let i=n.model?.score.propertyURI,r=n.model?.score.extensionURI,s=M7(n),a=H({headers:{Accept:"application/fhir+json"}},n.signal?{signal:n.signal}:{});return T1.fetchWithCache(`${s}/CodeSystem?`+new URLSearchParams(H({url:e},i?{_elements:"property"}:{})).toString(),a).then(o=>{if(i){let l=Sd(o?.entry?.[0]?.resource?.property,i);if(l)return T1.fetchWithCache(`${s}/CodeSystem/$lookup?`+new URLSearchParams({code:t,system:e,property:l}).toString(),a).then(c=>c.parameter.find(u=>u.name==="property"&&u.part.find(d=>d.name==="code"&&d.valueCode===l))?.part?.find(u=>u.name==="value")?.valueDecimal)}else{let l=xd(o?.entry?.[0]?.resource.concept,t);return Hr(l,r)}})}function M7(n){if(!n.async)throw new Error('The asynchronous function "weight"/"ordinal" is not allowed. To enable asynchronous functions, use the async=true or async="always" option.');let t=n.processedVars.terminologies?.terminologyUrl;if(!t)throw new Error('Option "terminologyUrl" is not specified.');return t}function gD(n,t,e){let i;if(n)for(let r=0;re.uri===t)?.code}function Yp(n,t){return n?.property?.find(e=>e.code===t)?.valueDecimal}function T7(n,t,e,i){let r,s,a=n.model?.score.propertyURI;if(a){let o=Sd(t.expansion?.property,a);o&&(s=gD(t.expansion?.contains,e,i),r=Yp(s,o))}else{let o=n.model?.score.extensionURI,l=t.compose?.include,c=l?.length;for(let u=0;u0&&(i=o.find(l=>l.linkId===a),!i);)o=[].concat(...o.map(l=>[].concat(l.question||[],l.group||[])));for(let l=e.length-2;l>=0&&i;--l)i=i.question?.find(c=>c.linkId===e[l])||i.group?.find(c=>c.linkId===e[l])}else{let o=t.item;for(;o?.length>0&&(i=o.find(l=>l.linkId===a),!i);)o=[].concat(...o.map(l=>l.item||[]));for(let l=e.length-2;l>=0&&i;--l)i=i.item?.find(c=>c.linkId===e[l])}r[s]=i}return i}_D.exports=pD});var xD=Q((Kue,wD)=>{var kd={},{distinctFn:vD}=Hp(),Qp=Bp(),{deepEqual:yD,maxCollSizeForDeepEqual:CD}=Xl(),{TypeInfo:Zp}=xn();kd.union=function(n,t){return vD(n.concat(t))};kd.combineFn=function(n,t){return n.concat(t)};kd.intersect=function(n,t){let e=[],i=n.length,r=t.length;if(i&&r){let s=n.some(a=>Zp.isPrimitiveValue(a))||t.some(a=>Zp.isPrimitiveValue(a));if(!s&&i+r>CD){let a={};t.forEach(o=>{let l=Qp(o);a[l]?r--:a[l]=!0});for(let o=0;o0;++o){let l=n[o],c=Qp(l);a[c]&&(e.push(l),a[c]=!1,r--)}}else e=vD(n,s).filter(a=>t.some(o=>yD(a,o)))}return e};kd.exclude=function(n,t){let e=[],i=n.length,r=t.length;if(!r)return n;if(i)if(!(n.some(a=>Zp.isPrimitiveValue(a))||t.some(a=>Zp.isPrimitiveValue(a)))&&i+r>CD){let a={};t.forEach(o=>{let l=Qp(o);a[l]=!0}),e=n.filter(o=>!a[Qp(o)])}else e=n.filter(a=>!t.some(o=>yD(a,o)));return e};wD.exports=kd});var MD=Q((Yue,kD)=>{var{deepEqual:D7}=Xl(),E1={};function SD(n,t){for(var e=0;e1)throw new Error("Expected singleton on right side of contains, got "+JSON.stringify(t));return SD(n,t)};E1.in=function(n,t){if(n.length==0)return[];if(t.length==0)return!1;if(n.length>1)throw new Error("Expected singleton on right side of in, got "+JSON.stringify(t));return SD(t,n)};kD.exports=E1});var ED=Q((Que,TD)=>{var gt=Vi(),pi=jp(),ni={},A1={};function R7(n){return A1[n]||(A1[n]=n.replace(/\./g,(t,e,i)=>{let s=i.substr(0,e).replace(/\\\\/g,"").replace(/\\[\][]/g,""),a=s[s.length-1]==="\\",o=s.lastIndexOf("["),l=s.lastIndexOf("]");return a||o>l?".":"[^]"})),A1[n]}ni.indexOf=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:e.indexOf(t)};ni.substring=function(n,t,e){let i=pi.singleton(n,"String");return gt.isEmpty(i)||gt.isEmpty(t)||t<0||t>=i.length?[]:e===void 0||gt.isEmpty(e)?i.substring(t):i.substring(t,t+e)};ni.startsWith=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:e.startsWith(t)};ni.endsWith=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:e.endsWith(t)};ni.containsFn=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:e.includes(t)};ni.upper=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.toUpperCase()};ni.lower=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.toLowerCase()};ni.joinFn=function(n,t){let e=[];return n.forEach(i=>{let r=gt.valData(i);if(typeof r=="string")e.push(r);else if(r!=null)throw new Error("Join requires a collection of strings.")}),gt.isEmpty(e)?[]:(t===void 0&&(t=""),e.join(t))};ni.splitFn=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(e)?[]:e.split(t)};ni.trimFn=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.trim()};ni.encodeFn=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(e)?[]:t==="urlbase64"||t==="base64url"?btoa(e).replace(/\+/g,"-").replace(/\//g,"_"):t==="base64"?btoa(e):t==="hex"?Array.from(e).map(i=>i.charCodeAt(0)<128?i.charCodeAt(0).toString(16):encodeURIComponent(i).replace(/%/g,"")).join(""):[]};ni.decodeFn=function(n,t){let e=pi.singleton(n,"String");if(gt.isEmpty(e))return[];if(t==="urlbase64"||t==="base64url")return atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t==="base64")return atob(e);if(t==="hex"){if(e.length%2!==0)throw new Error("Decode 'hex' requires an even number of characters.");return decodeURIComponent("%"+e.match(/.{2}/g).join("%"))}return[]};var L7=new RegExp("").dotAll===!1;L7?ni.matches=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:new RegExp(t,"su").test(e)}:ni.matches=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:new RegExp(R7(t),"u").test(e)};ni.replace=function(n,t,e){let i=pi.singleton(n,"String");if(gt.isEmpty(t)||gt.isEmpty(e)||gt.isEmpty(i))return[];let r=new RegExp(gt.escapeStringForRegExp(t),"g");return i.replace(r,e)};ni.replaceMatches=function(n,t,e){let i=pi.singleton(n,"String");if(gt.isEmpty(t)||gt.isEmpty(e)||gt.isEmpty(i))return[];let r=new RegExp(t,"gu");return i.replace(r,e)};ni.length=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.length};ni.toChars=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.split("")};TD.exports=ni});var ID=Q((Zue,AD)=>{var Xp=Vi(),Md={};Md.children=function(n){let t=this.model;return n.reduce(function(e,i){let r=Xp.valData(i);if(r==null)return e;if(typeof r=="object"){for(var s of Object.keys(r))Xp.pushFn(e,Xp.makeChildResNodes(i,s,t));return e}else return e},[])};Md.descendants=function(n){for(var t=Md.children.call(this,n),e=[];t.length>0;)Xp.pushFn(e,t),t=Md.children.call(this,t);return e};AD.exports=Md});var LD=Q((Xue,RD)=>{var Jp={},D1=xn(),Vn=_1(),DD=D1.FP_Date,I1=D1.FP_DateTime,O7=D1.FP_Time;Jp.now=function(){if(!Vn.now){var n=Vn.nowDate,t=I1.isoDateTime(n);Vn.now=new I1(t)}return Vn.now};Jp.today=function(){if(!Vn.today){var n=Vn.nowDate,t=DD.isoDate(n);Vn.today=new DD(t)}return Vn.today};Jp.timeOfDay=function(){if(!Vn.timeOfDay){let n=Vn.nowDate,t=I1.isoTime(n);Vn.timeOfDay=new O7(t)}return Vn.timeOfDay};RD.exports=Jp});var L1=Q((Jue,ND)=>{var e0=Vi(),R1=class n{constructor(t){this.terminologyUrl=t,this.invocationTable=n.invocationTable}static invocationTable={validateVS:{fn:n.validateVS,arity:{2:["String","AnySingletonAtRoot"],3:["String","AnySingletonAtRoot","String"]}}};static validateVS(t,e,i,r=""){let s=this;if(!s.async)throw new Error('The asynchronous function "validateVS" is not allowed. To enable asynchronous functions, use the async=true or async="always" option.');F7(r);let a={Accept:"application/fhir+json; charset=utf-8"},o={Accept:"application/fhir+json; charset=utf-8","Content-Type":"application/fhir+json; charset=utf-8"},l=new Headers(a),c=`${t[0].terminologyUrl}/ValueSet/$validate-code`,u;if(i.coding){let d={resourceType:"Parameters",parameter:[{name:"url",valueUri:e},{name:"codeableConcept",valueCodeableConcept:i}]};l=new Headers(o),u=e0.fetchWithCache(c+(r?"?"+r:""),H({method:"POST",headers:l,body:JSON.stringify(d)},s.signal?{signal:s.signal}:{}))}else if(typeof i=="string"){let d=new URLSearchParams({url:e});u=e0.fetchWithCache(`${t[0].terminologyUrl}/ValueSet?${d.toString()+(r?"&"+r:"")}`,H({headers:l},s.signal?{signal:s.signal}:{})).then(h=>{let m=h?.entry?.length===1&&(OD(h.entry[0].resource.expansion?.contains)||OD(h.entry[0].resource.compose?.include));if(m){let f=new URLSearchParams({url:e,code:i,system:m});return e0.fetchWithCache(`${c}?${f.toString()+(r?"&"+r:"")}`,H({headers:l},s.signal?{signal:s.signal}:{}))}else throw new Error("The valueset does not have a single code system.")})}else if(i.code){let d=new URLSearchParams({url:e??"",system:i.system??"",code:i.code});u=e0.fetchWithCache(`${c}?${d.toString()+(r?"&"+r:"")}`,H({headers:l},s.signal?{signal:s.signal}:{}))}return u.then(d=>{if(d?.parameter)return d;throw new Error(d)}).catch(()=>{let d=N7(i,e);throw new Error("Failed to check membership: "+d)})}};function N7(n,t){if(typeof n=="string")return n+" - "+t;if(n.code)return n.system+"|"+n.code+" - "+t;if(n.coding)return n.coding.map(e=>e.system+"|"+e.code).join(",")+" - "+t}function F7(n){if(n?.split("&").find(t=>{let e=t.split("=");return e.length<=2&&e.find(i=>encodeURIComponent(decodeURIComponent(i))!==i)}))throw new Error(`"${n}" should be a valid URL-encoded string`)}function OD(n,t=void 0){if(n){for(let e=0;e{var P7=Vi(),U7=L1(),FD={};FD.memberOf=function(n,t){if(!this.async)throw new Error('The asynchronous function "memberOf" is not allowed. To enable asynchronous functions, use the async=true or async="always" option.');if(n.length!==1||n[0]==null)return[];if(typeof t=="string"&&/^https?:\/\/.*/.test(t)){let e=this.processedVars.terminologies;if(!e)throw new Error('Option "terminologyUrl" is not specified.');return U7.validateVS.call(this,[e],t,P7.valData(n[0]),"").then(i=>i.parameter.find(r=>r.name==="result").valueBoolean,()=>[])}return[]};PD.exports=FD});var VD=Q((ide,$D)=>{var Td={};Td.orOp=function(n,t){if(Array.isArray(t)){if(n===!0)return!0;if(n===!1)return[];if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?!0:[]:n||t};Td.andOp=function(n,t){if(Array.isArray(t)){if(n===!0)return[];if(n===!1)return!1;if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?[]:!1:n&&t};Td.xorOp=function(n,t){return Array.isArray(n)||Array.isArray(t)?[]:n&&!t||!n&&t};Td.impliesOp=function(n,t){if(Array.isArray(t)){if(n===!0)return[];if(n===!1)return!0;if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?!0:[]:n===!1?!0:n&&t};$D.exports=Td});var zD=Q((nde,BD)=>{var at=Vi(),{ResourceNode:Hi,TypeInfo:fa,instantRE:$7,timeRE:V7,dateRE:B7,dateTimeRE:z7}=xn(),O1=class n{static invocationTable={Extension:{fn:n.Extension,arity:{2:["String","AnyAtRoot"]}},Identifier:{fn:n.Identifier,arity:{1:["String"],2:["String","String"],3:["String","String","String"],4:["String","String","String","Any"]}},HumanName:{fn:n.HumanName,arity:{1:["String"],2:["String","AnyAtRoot"],3:["String","AnyAtRoot","String"],4:["String","AnyAtRoot","String","String"],5:["String","AnyAtRoot","String","String","String"],6:["String","AnyAtRoot","String","String","String","String"]}},ContactPoint:{fn:n.ContactPoint,arity:{1:["String"],2:["String","String"],3:["String","String","String"]}},Address:{fn:n.Address,arity:{1:["AnyAtRoot"],2:["AnyAtRoot","String"],3:["AnyAtRoot","String","String"],4:["AnyAtRoot","String","String","String"],5:["AnyAtRoot","String","String","String","String"],6:["AnyAtRoot","String","String","String","String","String"],7:["AnyAtRoot","String","String","String","String","String","String"]}},Quantity:{fn:n.Quantity,arity:{1:["String"],2:["String","String"],3:["String","String","StringOrNumber"],4:["String","String","StringOrNumber","String"]}},Coding:{fn:n.Coding,arity:{1:["String"],2:["String","String"],3:["String","String","String"],4:["String","String","String","String"]}},CodeableConcept:{fn:n.CodeableConcept,arity:{1:["AnyAtRoot"],2:["AnyAtRoot","String"]}},create:{fn:n.create,arity:{1:["TypeSpecifier"]}},withExtension:{fn:n.withExtension,arity:{3:["AnyAtRoot","String","AnyAtRoot"]}},withProperty:{fn:n.withProperty,arity:{3:["AnyAtRoot","String","AnyAtRoot"]}}};static{[{type:"string",getValue:function(t){if(typeof t=="string"&&/^[\s\S]+$/.test(t))return String(t);throw new Error(`"${t}" is not a string.`)}},{type:"integer",getValue:t=>{let e=Number(t);if(Number.isInteger(e))return e;throw new Error(`"${t}" is not an integer.`)}},{type:"unsignedInt",getValue:t=>{let e=Number(t);if(Number.isInteger(e)&&e>=0)return e;throw new Error(`"${t}" is not an unsignedInt.`)}},{type:"positiveInt",getValue:t=>{let e=Number(t);if(Number.isInteger(e)&&e>0)return e;throw new Error(`"${t}" is not a positiveInt.`)}},{type:"integer64",getValue:t=>{let e=Number(t);if(Number.isInteger(e))return e;throw new Error(`"${t}" is not an integer.`)}},{type:"markdown",getValue(t){if(typeof t=="string"&&/^[\s\S]+$/.test(t))return t;throw new Error(`"${t}" is not a markdown.`)}},{type:"url",getValue(t){if(typeof t=="string"&&/^\S*$/.test(t))return t;throw new Error(`"${t}" is not a url.`)}},{type:"uri",getValue(t){if(typeof t=="string"&&/^\S*$/.test(t))return t;throw new Error(`"${t}" is not a uri.`)}},{type:"instant",getValue(t){if(typeof t=="string"&&$7.test(t))return t;throw new Error(`"${t}" is not an instant.`)}},{type:"time",getValue(t){if(typeof t=="string"&&V7.test(t))return t;throw new Error(`"${t}" is not a time.`)}},{type:"date",getValue(t){if(typeof t=="string"&&B7.test(t))return t;throw new Error(`"${t}" is not a date.`)}},{type:"dateTime",getValue(t){if(typeof t=="string"&&z7.test(t))return t;throw new Error(`"${t}" is not a dateTime.`)}},{type:"base64Binary",getValue(t){if(typeof t=="string"&&/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t))return t;throw new Error(`"${t}" is not a base64Binary.`)}},{type:"decimal",getValue(t){let e=Number(t);if(Number.isNaN(e))throw new Error(`"${t}" is not an decimal.`);return e}},{type:"boolean",getValue(t){if(t===!0||t==="true")return!0;if(t===!1||t==="false")return!1;throw new Error(`"${t}" is not a boolean.`)}},{type:"code",getValue(t){if(typeof t=="string"&&/^\S+( \S+)*$/.test(t))return t;throw new Error(`"${t}" is not a code.`)}},{type:"id",getValue(t){if(typeof t=="string"&&/^[A-Za-z0-9\-.]{1,64}$/.test(t))return t;throw new Error(`"${t}" is not an id.`)}},{type:"oid",getValue(t){if(typeof t=="string"&&/^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$/.test(t))return t;throw new Error(`"${t}" is not an oid.`)}},{type:"uuid",getValue(t){if(typeof t=="string"&&/^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(t))return t;throw new Error(`"${t}" is not an uuid.`)}},{type:"canonical",getValue(t){if(typeof t=="string"&&/^\S*$/.test(t))return t;throw new Error(`"${t}" is not an canonical.`)}}].forEach(({type:t,getValue:e})=>{n[t]=function(i,r,s){let a;if(r.length>1)throw new Error("Unexpected collection "+JSON.stringify(r)+` as a value for %factory.${t}(value, extensions)`);if(r.length===0)a=null;else{let l=at.valData(r[0]);if(l==null&&(a=null),typeof l!="object")a=e(l);else throw new Error(`"${l}" is not a ${t}`)}let o=null;return s?.length>0&&(o={extension:s.map(l=>{let c=fa.fromValue(l);if(fa.isType(c.name,"Extension"))return at.valData(l);throw new Error(`Expected "FHIR.Extension", got "${c}"`)})}),Hi.makeResNode(a,null,t,o,t)},n.invocationTable[t]={fn:n[t],arity:{1:["AnyAtRoot"],2:["AnyAtRoot","Any"]}}})}static Extension(t,e,i){if(i.length!==1){if(i.length>1)throw new Error("Unexpected collection "+JSON.stringify(i)+" as a value for %factory.Extension(url, value)");if(i.length===0)throw new Error("Unexpected empty collection "+JSON.stringify(i)+" as a value for %factory.Extension(url, value)")}else return Hi.makeResNode(n.createExtensionObject(e,i[0]),null,"Extension",null,"Extension")}static createExtensionObject(t,e){let i="value"+fa.fromValue(e).name.replace(/^\w/,r=>r.toUpperCase());return{url:t,[i]:at.valData(e)}}static Identifier(t,e,i,r,s){if(s?.length>1)throw new Error("Unexpected collection "+JSON.stringify(s)+" as a type for %factory.Identifier{system, value, use, type)");let a={};if(at.isSome(e)&&(a.system=e),at.isSome(i)&&(a.value=i),at.isSome(r)&&(a.use=r),at.isSome(s)){let o=fa.fromValue(s[0]);if(!fa.isType(o.name,"CodeableConcept"))throw new Error(`Expected "FHIR.CodeableConcept", got "${o}"`);a.type=s[0]}return Hi.makeResNode(a,null,"Identifier",null,"Identifier")}static HumanName(t,e,i,r,s,a,o){let l={};return at.isSome(e)&&(l.family=e),at.isSome(i)&&(l.given=i.map(c=>{let u=at.valData(c);if(typeof u=="string")return u;throw new Error(`Expected string, but got: ${JSON.stringify(u)}`)})),at.isSome(r)&&(l.prefix=r),at.isSome(s)&&(l.suffix=s),at.isSome(a)&&(l.text=a),at.isSome(o)&&(l.use=o),Hi.makeResNode(l,null,"HumanName",null,"HumanName")}static ContactPoint(t,e,i,r){let s={};return at.isSome(e)&&(s.system=e),at.isSome(i)&&(s.value=i),at.isSome(r)&&(s.use=r),Hi.makeResNode(s,null,"ContactPoint",null,"ContactPoint")}static Address(t,e,i,r,s,a,o,l){let c={};return at.isSome(e)&&(c.line=e.map(u=>{let d=at.valData(u);if(typeof d=="string")return d;throw new Error(`Expected string, but got: ${JSON.stringify(d)}`)})),at.isSome(i)&&(c.city=i),at.isSome(r)&&(c.state=r),at.isSome(s)&&(c.postalCode=s),at.isSome(a)&&(c.country=a),at.isSome(o)&&(c.use=o),at.isSome(l)&&(c.type=l),Hi.makeResNode(c,null,"Address",null,"Address")}static Quantity(t,e,i,r,s){let a={};return at.isSome(e)&&(a.system=e),at.isSome(i)&&(a.code=i),at.isSome(r)&&(a.value=Number(r)),at.isSome(s)&&(a.unit=s),Hi.makeResNode(a,null,"Quantity",null,"Quantity")}static Coding(t,e,i,r,s){let a={};return at.isSome(e)&&(a.system=e),at.isSome(i)&&(a.code=i),at.isSome(r)&&(a.display=r),at.isSome(s)&&(a.version=s),Hi.makeResNode(a,null,"Coding",null,"Coding")}static CodeableConcept(t,e,i){let r=e?.length>0?{coding:e.map(s=>{if(s instanceof Hi&&s.getTypeInfo().name==="Coding")return at.valData(s);throw new Error("Unexpected value "+JSON.stringify(s)+"; expected value of type Coding")})}:{};return at.isSome(i)&&(r.text=i),Hi.makeResNode(r,null,"CodeableConcept",null,"CodeableConcept")}static create(t,e){if(e.namespace===fa.System)throw new Error("%factory.create(type) doesn't support system types.");return Hi.makeResNode(null,null,e.name,null,e.name)}static withExtension(t,e,i,r){if(e.length>1)throw new Error("Unexpected collection "+JSON.stringify(e)+" as an instance for %factory.withExtension(instance, url, value)");if(r.length!==1){if(r.length>1)throw new Error("Unexpected collection "+JSON.stringify(r)+" as a value for %factory.withExtension(instance, url, value)");if(r.length===0)throw new Error("Unexpected empty collection "+JSON.stringify(r)+" as a value for %factory.withExtension(instance, url, value)")}if(e.length===0)return[];let s=e[0];if(s instanceof Hi){let a=s.data,o=s._data;return fa.isPrimitive(s.getTypeInfo())?o=Le(H({},s._data||{}),{extension:[...s._data?.extension||[],n.createExtensionObject(i,r[0])]}):a=Le(H({},s.data||{}),{extension:[...s.data?.extension||[],n.createExtensionObject(i,r[0])]}),Hi.makeResNode(a,null,s.path,o,s.fhirNodeDataType)}else throw new Error("Expected a ResourceNode.")}static withProperty(t,e,i,r){if(e.length>1)throw new Error("Unexpected collection "+JSON.stringify(e)+" as an instance for %factory.withProperty(instance, name, value)");if(r.length!==1){if(r.length>1)throw new Error("Unexpected collection "+JSON.stringify(r)+" as a value for %factory.withProperty(instance, name, value)");if(r.length===0)throw new Error("Unexpected empty collection "+JSON.stringify(r)+" as a value for %factory.withProperty(instance, name, value)")}if(e.length===0)return[];let s=e[0];if(s instanceof Hi){let a=s.data,o=s._data;return fa.isPrimitive(s.getTypeInfo())?o=H(Le(H({},s._data||{}),{[i]:at.valData(r[0])}),r[0]?._data?{["_"+i]:r[0]._data}:{}):a=H(Le(H({},s.data||{}),{[i]:at.valData(r[0])}),r[0]?._data?{["_"+i]:r[0]._data}:{}),Hi.makeResNode(a,null,s.path,o,s.fhirNodeDataType)}else throw new Error("Expected a ResourceNode.")}};BD.exports=O1});var nR=Q((sde,iR)=>{var{version:H7}=SE(),j7=MA(),oi=Vi();TI();var W7=_1(),fe={},ar=eD(),Bn=Hp(),Jl=hD(),HD=bD(),Ed=xD(),vt=jp(),pa=k1(),jD=MD(),gi=S1(),_i=ED(),WD=ID(),N1=LD(),q7=UD(),t0=VD(),ec=xn(),{FP_Date:G7,FP_DateTime:GD,FP_Time:KD,FP_Quantity:i0,FP_Type:YD,ResourceNode:$1,TypeInfo:QD}=ec,As=$1.makeResNode,K7=L1(),Y7=zD();fe.invocationTable={memberOf:{fn:q7.memberOf,arity:{1:["String"]}},empty:{fn:ar.emptyFn},not:{fn:ar.notFn},exists:{fn:ar.existsMacro,arity:{0:[],1:["Expr"]}},all:{fn:ar.allMacro,arity:{1:["Expr"]}},allTrue:{fn:ar.allTrueFn},anyTrue:{fn:ar.anyTrueFn},allFalse:{fn:ar.allFalseFn},anyFalse:{fn:ar.anyFalseFn},subsetOf:{fn:ar.subsetOfFn,arity:{1:["AnyAtRoot"]}},supersetOf:{fn:ar.supersetOfFn,arity:{1:["AnyAtRoot"]}},isDistinct:{fn:ar.isDistinctFn},distinct:{fn:Bn.distinctFn},count:{fn:Jl.countFn},where:{fn:Bn.whereMacro,arity:{1:["Expr"]}},extension:{fn:Bn.extension,arity:{1:["String"]}},select:{fn:Bn.selectMacro,arity:{1:["Expr"]}},aggregate:{fn:Jl.aggregateMacro,arity:{1:["Expr"],2:["Expr","AnyAtRoot"]}},sum:{fn:Jl.sumFn},min:{fn:Jl.minFn},max:{fn:Jl.maxFn},avg:{fn:Jl.avgFn},weight:{fn:HD.weight},ordinal:{fn:HD.weight},single:{fn:Bn.singleFn},first:{fn:Bn.firstFn},last:{fn:Bn.lastFn},type:{fn:ec.typeFn,arity:{0:[]}},ofType:{fn:Bn.ofTypeFn,arity:{1:["TypeSpecifier"]}},is:{fn:ec.isFn,arity:{1:["TypeSpecifier"]}},as:{fn:ec.asFn,arity:{1:["TypeSpecifier"]}},tail:{fn:Bn.tailFn},take:{fn:Bn.takeFn,arity:{1:["Integer"]}},skip:{fn:Bn.skipFn,arity:{1:["Integer"]}},combine:{fn:Ed.combineFn,arity:{1:["AnyAtRoot"]}},union:{fn:Ed.union,arity:{1:["AnyAtRoot"]}},intersect:{fn:Ed.intersect,arity:{1:["AnyAtRoot"]}},exclude:{fn:Ed.exclude,arity:{1:["AnyAtRoot"]}},iif:{fn:vt.iifMacro,arity:{2:["Expr","Expr"],3:["Expr","Expr","Expr"]}},trace:{fn:vt.traceFn,arity:{1:["String"],2:["String","Expr"]}},defineVariable:{fn:vt.defineVariable,arity:{1:["String"],2:["String","Expr"]}},toInteger:{fn:vt.toInteger},toDecimal:{fn:vt.toDecimal},toString:{fn:vt.toString},toDate:{fn:vt.toDate},toDateTime:{fn:vt.toDateTime},toTime:{fn:vt.toTime},toBoolean:{fn:vt.toBoolean},toQuantity:{fn:vt.toQuantity,arity:{0:[],1:["String"]}},hasValue:{fn:vt.hasValueFn},getValue:{fn:vt.getValueFn},convertsToBoolean:{fn:vt.createConvertsToFn(vt.toBoolean,"boolean")},convertsToInteger:{fn:vt.createConvertsToFn(vt.toInteger,"number")},convertsToDecimal:{fn:vt.createConvertsToFn(vt.toDecimal,"number")},convertsToString:{fn:vt.createConvertsToFn(vt.toString,"string")},convertsToDate:{fn:vt.createConvertsToFn(vt.toDate,G7)},convertsToDateTime:{fn:vt.createConvertsToFn(vt.toDateTime,GD)},convertsToTime:{fn:vt.createConvertsToFn(vt.toTime,KD)},convertsToQuantity:{fn:vt.createConvertsToFn(vt.toQuantity,i0)},indexOf:{fn:_i.indexOf,arity:{1:["String"]}},substring:{fn:_i.substring,arity:{1:["Integer"],2:["Integer","Integer"]}},startsWith:{fn:_i.startsWith,arity:{1:["String"]}},endsWith:{fn:_i.endsWith,arity:{1:["String"]}},contains:{fn:_i.containsFn,arity:{1:["String"]}},upper:{fn:_i.upper},lower:{fn:_i.lower},replace:{fn:_i.replace,arity:{2:["String","String"]}},matches:{fn:_i.matches,arity:{1:["String"]}},replaceMatches:{fn:_i.replaceMatches,arity:{2:["String","String"]}},length:{fn:_i.length},toChars:{fn:_i.toChars},join:{fn:_i.joinFn,arity:{0:[],1:["String"]}},split:{fn:_i.splitFn,arity:{1:["String"]}},trim:{fn:_i.trimFn},encode:{fn:_i.encodeFn,arity:{1:["String"]}},decode:{fn:_i.decodeFn,arity:{1:["String"]}},abs:{fn:gi.abs},ceiling:{fn:gi.ceiling},exp:{fn:gi.exp},floor:{fn:gi.floor},ln:{fn:gi.ln},log:{fn:gi.log,arity:{1:["Number"]},nullable:!0},power:{fn:gi.power,arity:{1:["Number"]},nullable:!0},round:{fn:gi.round,arity:{0:[],1:["Number"]}},sqrt:{fn:gi.sqrt},truncate:{fn:gi.truncate},now:{fn:N1.now},today:{fn:N1.today},timeOfDay:{fn:N1.timeOfDay},repeat:{fn:Bn.repeatMacro,arity:{1:["Expr"]}},children:{fn:WD.children},descendants:{fn:WD.descendants},"|":{fn:Ed.union,arity:{2:["Any","Any"]}},"=":{fn:pa.equal,arity:{2:["Any","Any"]},nullable:!0},"!=":{fn:pa.unequal,arity:{2:["Any","Any"]},nullable:!0},"~":{fn:pa.equival,arity:{2:["Any","Any"]}},"!~":{fn:pa.unequival,arity:{2:["Any","Any"]}},"<":{fn:pa.lt,arity:{2:["Any","Any"]},nullable:!0},">":{fn:pa.gt,arity:{2:["Any","Any"]},nullable:!0},"<=":{fn:pa.lte,arity:{2:["Any","Any"]},nullable:!0},">=":{fn:pa.gte,arity:{2:["Any","Any"]},nullable:!0},containsOp:{fn:jD.contains,arity:{2:["Any","Any"]}},inOp:{fn:jD.in,arity:{2:["Any","Any"]}},isOp:{fn:ec.isFn,arity:{2:["Any","TypeSpecifier"]}},asOp:{fn:ec.asFn,arity:{2:["Any","TypeSpecifier"]}},"&":{fn:gi.amp,arity:{2:["String","String"]}},"+":{fn:gi.plus,arity:{2:["Any","Any"]},nullable:!0},"-":{fn:gi.minus,arity:{2:["Any","Any"]},nullable:!0},"*":{fn:gi.mul,arity:{2:["Any","Any"]},nullable:!0},"/":{fn:gi.div,arity:{2:["Any","Any"]},nullable:!0},mod:{fn:gi.mod,arity:{2:["Number","Number"]},nullable:!0},div:{fn:gi.intdiv,arity:{2:["Number","Number"]},nullable:!0},or:{fn:t0.orOp,arity:{2:[["Boolean"],["Boolean"]]}},and:{fn:t0.andOp,arity:{2:[["Boolean"],["Boolean"]]}},xor:{fn:t0.xorOp,arity:{2:[["Boolean"],["Boolean"]]}},implies:{fn:t0.impliesOp,arity:{2:[["Boolean"],["Boolean"]]}}};fe.InvocationExpression=function(n,t,e){return e.children.reduce(function(i,r){return fe.doEval(n,i,r)},t)};fe.TermExpression=function(n,t,e){return t&&(t=t.map(i=>i instanceof Object&&i.resourceType?As(i,null,null,null,null,n.model):i)),fe.doEval(n,t,e.children[0])};fe.PolarityExpression=function(n,t,e){var i=e.terminalNodeText[0],r=fe.doEval(n,t,e.children[0]);if(r.length!==1)throw new Error("Unary "+i+" can only be applied to an individual number or Quantity.");if(r[0]instanceof i0)i==="-"&&(r[0]=new i0(-r[0].value,r[0].unit));else if(typeof r[0]=="number"&&!isNaN(r[0]))i==="-"&&(r[0]=-r[0]);else throw new Error("Unary "+i+" can only be applied to a number or Quantity.");return r};fe.TypeSpecifier=function(n,t,e){let i,r,s=e.text.split(".").map(o=>o.replace(/(^`|`$)/g,""));switch(s.length){case 2:[i,r]=s;break;case 1:[r]=s;break;default:throw new Error("Expected TypeSpecifier node, got "+JSON.stringify(e))}let a=new QD({namespace:i,name:r});if(!a.isValid(n.model))throw new Error('"'+a+'" cannot be resolved to a valid type identifier');return a};fe.ExternalConstantTerm=function(n,t,e){let i,r=e.children[0];r.terminalNodeText.length===2?i=ZD(r.terminalNodeText[1]):i=XD(r.children[0].text);let s;if(i in n.vars&&!n.processedUserVarNames.has(i))s=n.vars[i],Array.isArray(s)?s=s.map(a=>a?.__path__?As(a,a.__path__.parentResNode,a.__path__.path,null,a.__path__.fhirNodeDataType,a.__path__.model):a?.resourceType?As(a,null,null,null,null,n.model):a):s=s?.__path__?As(s,s.__path__.parentResNode,s.__path__.path,null,s.__path__.fhirNodeDataType,s.__path__.model):s?.resourceType?As(s,null,null,null,null,n.model):s,n.processedVars[i]=s,n.processedUserVarNames.add(i);else if(i in n.processedVars)s=n.processedVars[i];else if(n.definedVars&&i in n.definedVars)s=n.definedVars[i];else throw new Error("Attempting to access an undefined environment variable: "+i);return s==null?[]:s instanceof Array?s:[s]};fe.LiteralTerm=function(n,t,e){var i=e.children[0];return i?fe.doEval(n,t,i):[e.text]};fe.StringLiteral=function(n,t,e){return[ZD(e.text)]};function ZD(n){return n.replace(/(^'|'$)/g,"").replace(/\\(u\d{4}|.)/g,function(t,e){switch(t){case"\\r":return"\r";case"\\n":return` +`;case"\\t":return" ";case"\\f":return"\f";default:return e.length>1?String.fromCharCode("0x"+e.slice(1)):e}})}fe.BooleanLiteral=function(n,t,e){return e.text==="true"?[!0]:[!1]};fe.QuantityLiteral=function(n,t,e){var i=e.children[0],r=Number(i.terminalNodeText[0]),s=i.children[0],a=s.terminalNodeText[0];return!a&&s.children&&(a=s.children[0].terminalNodeText[0]),[new i0(r,a)]};fe.DateTimeLiteral=function(n,t,e){var i=e.text.slice(1);return[new GD(i)]};fe.TimeLiteral=function(n,t,e){var i=e.text.slice(1);return[new KD(i)]};fe.NumberLiteral=function(n,t,e){return[Number(e.text)]};fe.Identifier=function(n,t,e){return[XD(e.text)]};function XD(n){return n.replace(/(^`|`$)/g,"")}fe.InvocationTerm=function(n,t,e){return fe.doEval(n,t,e.children[0])};fe.MemberInvocation=function(n,t,e){let i=fe.doEval(n,t,e.children[0])[0],r=n.model;return t?t.reduce(function(s,a){return a=As(a,null,a.__path__?.path,null,a.__path__?.fhirNodeDataType,r),a.data?.resourceType===i?s.push(a):oi.pushFn(s,oi.makeChildResNodes(a,i,r)),s},[]):[]};fe.IndexerExpression=function(n,t,e){let i=e.children[0],r=e.children[1];var s=fe.doEval(n,t,i),a=fe.doEval(n,t,r);if(oi.isEmpty(a))return[];var o=parseInt(a[0]);return s&&oi.isSome(o)&&s.length>o&&o>=0?[s[o]]:[]};fe.Functn=function(n,t,e){return e.children.map(function(i){return fe.doEval(n,t,i)})};fe.realizeParams=function(n,t,e){return e&&e[0]&&e[0].children?e[0].children.map(function(i){return fe.doEval(n,t,i)}):[]};function JD(n,t,e,i){if(e==="Expr")return function(s){let a=oi.arraify(s),o=Le(H({},n),{$this:a});return n.definedVars&&(o.definedVars=H({},n.definedVars)),fe.doEval(o,a,i)};if(e==="AnyAtRoot"){let s=n.$this||n.dataRoot,a=Le(H({},n),{$this:s});return n.definedVars&&(a.definedVars=H({},n.definedVars)),fe.doEval(a,s,i)}if(e==="Identifier"){if(i.type==="TermExpression")return i.text;throw new Error("Expected identifier node, got "+JSON.stringify(i))}if(e==="TypeSpecifier")return fe.TypeSpecifier(n,t,i);let r;if(e==="AnySingletonAtRoot"){let s=n.$this||n.dataRoot,a=Le(H({},n),{$this:s});n.definedVars&&(a.definedVars=H({},n.definedVars)),r=fe.doEval(a,s,i)}else{let s=H({},n);if(n.definedVars&&(s.definedVars=H({},n.definedVars)),r=fe.doEval(s,t,i),e==="Any")return r;if(Array.isArray(e)){if(r.length===0)return[];e=e[0]}}return r instanceof Promise?r.then(s=>vt.singleton(s,e)):vt.singleton(r,e)}function Q7(n,t,e,i){var r=n.userInvocationTable&&Object.prototype.hasOwnProperty.call(n.userInvocationTable,t)&&n.userInvocationTable?.[t]||fe.invocationTable[t]||e.length===1&&e[0]?.invocationTable?.[t],s;if(r)if(r.arity){var a=i?i.length:0,o=r.arity[a];if(o){for(var l=[],c=0;ch instanceof Promise)?Promise.all(l).then(h=>(s=r.fn.apply(n,h),oi.resolveAndArraify(s))):(s=r.fn.apply(n,l),oi.resolveAndArraify(s))}else return console.log(t+" wrong arity: got "+a),[]}else{if(i)throw new Error(t+" expects no params");return s=r.fn.call(n,e),oi.resolveAndArraify(s)}else throw new Error("Not implemented: "+t)}function eR(n){return n==null||oi.isEmpty(n)}function V1(n,t,e,i){var r=fe.invocationTable[t];if(r&&r.fn){var s=i?i.length:0;if(s!==2)throw new Error("Infix invoke should have arity 2");var a=r.arity[s];if(a){for(var o=[],l=0;lh instanceof Promise))return Promise.all(o).then(h=>{var m=r.fn.apply(n,h);return oi.arraify(m)});var d=r.fn.apply(n,o);return oi.arraify(d)}else return console.log(t+" wrong arity: got "+s),[]}else throw new Error("Not impl "+t)}fe.FunctionInvocation=function(n,t,e){var i=fe.doEval(n,t,e.children[0]);let r=i[0];i.shift();var s=i&&i[0]&&i[0].children;return Q7(n,r,t,s)};fe.ParamList=function(n,t,e){return e};fe.UnionExpression=function(n,t,e){return V1(n,"|",t,e.children)};fe.ThisInvocation=function(n){return n.$this};fe.TotalInvocation=function(n){return oi.arraify(n.$total)};fe.IndexInvocation=function(n){return oi.arraify(n.$index)};fe.OpExpression=function(n,t,e){var i=e.terminalNodeText[0];return V1(n,i,t,e.children)};fe.AliasOpExpression=function(n){return function(t,e,i){var r=i.terminalNodeText[0],s=n[r];if(!s)throw new Error("Do not know how to alias "+r+" by "+JSON.stringify(n));return V1(t,s,e,i.children)}};fe.NullLiteral=function(){return[]};fe.ParenthesizedTerm=function(n,t,e){return fe.doEval(n,t,e.children[0])};fe.evalTable={BooleanLiteral:fe.BooleanLiteral,EqualityExpression:fe.OpExpression,FunctionInvocation:fe.FunctionInvocation,Functn:fe.Functn,Identifier:fe.Identifier,IndexerExpression:fe.IndexerExpression,InequalityExpression:fe.OpExpression,InvocationExpression:fe.InvocationExpression,AdditiveExpression:fe.OpExpression,MultiplicativeExpression:fe.OpExpression,TypeExpression:fe.AliasOpExpression({is:"isOp",as:"asOp"}),MembershipExpression:fe.AliasOpExpression({contains:"containsOp",in:"inOp"}),NullLiteral:fe.NullLiteral,EntireExpression:fe.InvocationTerm,InvocationTerm:fe.InvocationTerm,LiteralTerm:fe.LiteralTerm,MemberInvocation:fe.MemberInvocation,NumberLiteral:fe.NumberLiteral,ParamList:fe.ParamList,ParenthesizedTerm:fe.ParenthesizedTerm,StringLiteral:fe.StringLiteral,TermExpression:fe.TermExpression,ThisInvocation:fe.ThisInvocation,TotalInvocation:fe.TotalInvocation,IndexInvocation:fe.IndexInvocation,UnionExpression:fe.UnionExpression,OrExpression:fe.OpExpression,ImpliesExpression:fe.OpExpression,AndExpression:fe.OpExpression,XorExpression:fe.OpExpression};fe.doEval=function(n,t,e){return t instanceof Promise?t.then(i=>fe.doEvalSync(n,i,e)):fe.doEvalSync(n,t,e)};fe.doEvalSync=function(n,t,e){let i=fe.evalTable[e.type]||fe[e.type];if(i)return i.call(fe,n,t,e);throw new Error("No "+e.type+" evaluator ")};function P1(n){return j7.parse(n)}function qD(n,t,e,i,r){W7.reset();let s=oi.arraify(n).map(l=>l?.__path__?As(l,l.__path__.parentResNode,l.__path__.path,null,l.__path__.fhirNodeDataType,i):l?.resourceType?As(l,null,null,null,null,i):l),a={dataRoot:s,processedVars:{ucum:"http://unitsofmeasure.org",context:s},processedUserVarNames:new Set,vars:e||{},model:i};if(r.traceFn&&(a.customTraceFn=r.traceFn),r.userInvocationTable&&(a.userInvocationTable=r.userInvocationTable),r.async&&(a.async=r.async),r.terminologyUrl&&(a.processedVars.terminologies=new K7(r.terminologyUrl)),a.processedVars.factory=Y7,r.signal){if(a.signal=r.signal,!a.async)throw new Error('The "signal" option is only supported for asynchronous functions.');if(a.signal.aborted)throw new Error("Evaluation of the expression was aborted before it started.")}let o=fe.doEval(a,s,t.children[0]);return o instanceof Promise?o.then(l=>a.signal?.aborted?Promise.reject(new DOMException("Evaluation of the expression was aborted.","AbortError")):F1(l,i,r)):r.async==="always"?Promise.resolve(F1(o,i,r)):F1(o,i,r)}function F1(n,t,e){return n.reduce((i,r)=>{let s,a,o;return r instanceof $1&&(s=r.path,a=r.fhirNodeDataType,o=r.parentResNode),r=oi.valData(r),r instanceof YD&&e.resolveInternalTypes&&(r=r.toString()),r!=null&&(s&&typeof r=="object"&&!r.__path__&&Object.defineProperty(r,"__path__",{value:{path:s,fhirNodeDataType:a,parentResNode:o,model:t}}),i.push(r)),i},[])}function U1(n){if(Array.isArray(n))for(let t=0,e=n.length;t(i[s].internalStructures?r[s]=i[s]:r[s]=Le(H({},i[s]),{fn:(...a)=>i[s].fn.apply(this,a.map(o=>Array.isArray(o)?o.map(l=>oi.valData(l)):o))}),r),{})),typeof n=="object"){let r=P1(n.expression);return function(s,a,o){if(n.base){let c=t.pathsDefinedElsewhere[n.base]||n.base,u=t&&t.path2Type[c];c=u==="BackboneElement"||u==="Element"?c:u||c,s=As(s,null,c,null,u,t)}let l=o?H(H({},e),o):e;return qD(s,r,a,t,l)}}else{let r=P1(n);return function(s,a,o){let l=o?H(H({},e),o):e;return qD(s,r,a,t,l)}}}function X7(n){return oi.arraify(n).map(t=>{let e=QD.fromValue(t?.__path__?new $1(t,t.__path__?.parentResNode,t.__path__?.path,null,t.__path__?.fhirNodeDataType,t.__path__.model):t);return`${e.namespace}.${e.name}`})}iR.exports={version:H7,parse:P1,compile:tR,evaluate:Z7,resolveInternalTypes:U1,types:X7,ucumUtils:Up().UcumLhcUtils.getInstance(),util:oi}});var RL=Q((_C,DL)=>{(function(n,t){typeof define=="function"&&define.amd?define([],t):typeof _C=="object"?DL.exports=t():n.untar=t()})(_C,function(){"use strict";function n(o){function l(m){for(var f=0,p=c.length;f127){if(a>191&&a<224){if(t>=e.length)throw"UTF-8 decode: incomplete 2-byte sequence";a=(31&a)<<6|63&e[t]}else if(a>223&&a<240){if(t+1>=e.length)throw"UTF-8 decode: incomplete 3-byte sequence";a=(15&a)<<12|(63&e[t])<<6|63&e[++t]}else{if(!(a>239&&a<248))throw"UTF-8 decode: unknown multibyte start 0x"+a.toString(16)+" at index "+(t-1);if(t+2>=e.length)throw"UTF-8 decode: incomplete 4-byte sequence";a=(7&a)<<18|(63&e[t])<<12|(63&e[++t])<<6|63&e[++t]}++t}if(a<=65535)r+=String.fromCharCode(a);else{if(!(a<=1114111))throw"UTF-8 decode: code point 0x"+a.toString(16)+" exceeds UTF-16 reach";a-=65536,r+=String.fromCharCode(a>>10|55296),r+=String.fromCharCode(1023&a|56320)}}return r}function PaxHeader(e){this._fields=e}function TarFile(){}function UntarStream(e){this._bufferView=new DataView(e),this._position=0}function UntarFileStream(e){this._stream=new UntarStream(e),this._globalPaxHeader=null}if(UntarWorker.prototype={onmessage:function(e){try{if("extract"!==e.data.type)throw new Error("Unknown message type: "+e.data.type);this.untarBuffer(e.data.buffer)}catch(r){this.postError(r)}},postError:function(e){this.postMessage({type:"error",data:{message:e.message}})},postLog:function(e,r){this.postMessage({type:"log",data:{level:e,msg:r}})},untarBuffer:function(e){try{for(var r=new UntarFileStream(e);r.hasNext();){var t=r.next();this.postMessage({type:"extract",data:t},[t.buffer])}this.postMessage({type:"complete"})}catch(a){this.postError(a)}},postMessage:function(e,r){self.postMessage(e,r)}},"undefined"!=typeof self){var worker=new UntarWorker;self.onmessage=function(e){worker.onmessage(e)}}PaxHeader.parse=function(e){for(var r=new Uint8Array(e),t=[];r.length>0;){var a=parseInt(decodeUTF8(r.subarray(0,r.indexOf(32)))),n=decodeUTF8(r.subarray(0,a)),i=n.match(/^\\d+ ([^=]+)=(.*)\\n$/);if(null===i)throw new Error("Invalid PAX header data format.");var s=i[1],o=i[2];0===o.length?o=null:null!==o.match(/^\\d+$/)&&(o=parseInt(o));var f={name:s,value:o};t.push(f),r=r.subarray(a)}return new PaxHeader(t)},PaxHeader.prototype={applyHeader:function(e){this._fields.forEach(function(r){var t=r.name,a=r.value;"path"===t?(t="name",void 0!==e.prefix&&delete e.prefix):"linkpath"===t&&(t="linkname"),null===a?delete e[t]:e[t]=a})}},UntarStream.prototype={readString:function(e){for(var r=1,t=e*r,a=[],n=0;n-1&&(r.version=e.readString(2),r.uname=e.readString(32),r.gname=e.readString(32),r.devmajor=parseInt(e.readString(8)),r.devminor=parseInt(e.readString(8)),r.namePrefix=e.readString(155),r.namePrefix.length>0&&(r.name=r.namePrefix+"/"+r.name)),e.position(i),r.type){case"0":case"":r.buffer=e.readBuffer(r.size);break;case"1":break;case"2":break;case"3":break;case"4":break;case"5":break;case"6":break;case"7":break;case"g":t=!0,this._globalPaxHeader=PaxHeader.parse(e.readBuffer(r.size));break;case"x":t=!0,a=PaxHeader.parse(e.readBuffer(r.size))}void 0===r.buffer&&(r.buffer=new ArrayBuffer(0));var s=i+r.size;return r.size%512!==0&&(s+=512-r.size%512),e.position(s),t&&(r=this._readNextFile()),null!==this._globalPaxHeader&&this._globalPaxHeader.applyHeader(r),null!==a&&a.applyHeader(r),r}};'])),t})});var et="primary",$c=Symbol("RouteTitle"),bg=class{params;constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}};function Aa(n){return new bg(n)}function hx(n,t,e){let i=e.path.split("/");if(i.length>n.length||e.pathMatch==="full"&&(t.hasChildren()||i.lengthi[s]===r)}else return n===t}function fx(n){return n.length>0?n[n.length-1]:null}function Ks(n){return Ns(n)?n:fh(n)?si(Promise.resolve(n)):ge(n)}var fN={exact:gx,subset:_x},px={exact:pN,subset:gN,ignored:()=>!0};function sx(n,t,e){return fN[e.paths](n.root,t.root,e.matrixParams)&&px[e.queryParams](n.queryParams,t.queryParams)&&!(e.fragment==="exact"&&n.fragment!==t.fragment)}function pN(n,t){return Cr(n,t)}function gx(n,t,e){if(!Ta(n.segments,t.segments)||!Ch(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(let i in t.children)if(!n.children[i]||!gx(n.children[i],t.children[i],e))return!1;return!0}function gN(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>mx(n[e],t[e]))}function _x(n,t,e){return bx(n,t,t.segments,e)}function bx(n,t,e,i){if(n.segments.length>e.length){let r=n.segments.slice(0,e.length);return!(!Ta(r,e)||t.hasChildren()||!Ch(r,e,i))}else if(n.segments.length===e.length){if(!Ta(n.segments,e)||!Ch(n.segments,e,i))return!1;for(let r in t.children)if(!n.children[r]||!_x(n.children[r],t.children[r],i))return!1;return!0}else{let r=e.slice(0,n.segments.length),s=e.slice(n.segments.length);return!Ta(n.segments,r)||!Ch(n.segments,r,i)||!n.children[et]?!1:bx(n.children[et],t,s,i)}}function Ch(n,t,e){return t.every((i,r)=>px[e](n[r].parameters,i.parameters))}var xr=class{root;queryParams;fragment;_queryParamMap;constructor(t=new bt([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Aa(this.queryParams),this._queryParamMap}toString(){return vN.serialize(this)}},bt=class{segments;children;parent=null;constructor(t,e){this.segments=t,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return wh(this)}},js=class{path;parameters;_parameterMap;constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap??=Aa(this.parameters),this._parameterMap}toString(){return yx(this)}};function _N(n,t){return Ta(n,t)&&n.every((e,i)=>Cr(e.parameters,t[i].parameters))}function Ta(n,t){return n.length!==t.length?!1:n.every((e,i)=>e.path===t[i].path)}function bN(n,t){let e=[];return Object.entries(n.children).forEach(([i,r])=>{i===et&&(e=e.concat(t(r,i)))}),Object.entries(n.children).forEach(([i,r])=>{i!==et&&(e=e.concat(t(r,i)))}),e}var Ia=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>new Ws,providedIn:"root"})}return n})(),Ws=class{parse(t){let e=new Cg(t);return new xr(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){let e=`/${Mc(t.root,!0)}`,i=wN(t.queryParams),r=typeof t.fragment=="string"?`#${yN(t.fragment)}`:"";return`${e}${i}${r}`}},vN=new Ws;function wh(n){return n.segments.map(t=>yx(t)).join("/")}function Mc(n,t){if(!n.hasChildren())return wh(n);if(t){let e=n.children[et]?Mc(n.children[et],!1):"",i=[];return Object.entries(n.children).forEach(([r,s])=>{r!==et&&i.push(`${r}:${Mc(s,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}else{let e=bN(n,(i,r)=>r===et?[Mc(n.children[et],!1)]:[`${r}:${Mc(i,!1)}`]);return Object.keys(n.children).length===1&&n.children[et]!=null?`${wh(n)}/${e[0]}`:`${wh(n)}/(${e.join("//")})`}}function vx(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function vh(n){return vx(n).replace(/%3B/gi,";")}function yN(n){return encodeURI(n)}function yg(n){return vx(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function xh(n){return decodeURIComponent(n)}function ax(n){return xh(n.replace(/\+/g,"%20"))}function yx(n){return`${yg(n.path)}${CN(n.parameters)}`}function CN(n){return Object.entries(n).map(([t,e])=>`;${yg(t)}=${yg(e)}`).join("")}function wN(n){let t=Object.entries(n).map(([e,i])=>Array.isArray(i)?i.map(r=>`${vh(e)}=${vh(r)}`).join("&"):`${vh(e)}=${vh(i)}`).filter(e=>e);return t.length?`?${t.join("&")}`:""}var xN=/^[^\/()?;#]+/;function fg(n){let t=n.match(xN);return t?t[0]:""}var SN=/^[^\/()?;=#]+/;function kN(n){let t=n.match(SN);return t?t[0]:""}var MN=/^[^=?&#]+/;function TN(n){let t=n.match(MN);return t?t[0]:""}var EN=/^[^&#]+/;function AN(n){let t=n.match(EN);return t?t[0]:""}var Cg=class{url;remaining;constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new bt([],{}):new bt([],this.parseChildren())}parseQueryParams(){let t={};if(this.consumeOptional("?"))do this.parseQueryParam(t);while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[et]=new bt(t,e)),i}parseSegment(){let t=fg(this.remaining);if(t===""&&this.peekStartsWith(";"))throw new Be(4009,!1);return this.capture(t),new js(xh(t),this.parseMatrixParams())}parseMatrixParams(){let t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){let e=kN(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let r=fg(this.remaining);r&&(i=r,this.capture(i))}t[xh(e)]=xh(i)}parseQueryParam(t){let e=TN(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let a=AN(this.remaining);a&&(i=a,this.capture(i))}let r=ax(e),s=ax(i);if(t.hasOwnProperty(r)){let a=t[r];Array.isArray(a)||(a=[a],t[r]=a),a.push(s)}else t[r]=s}parseParens(t){let e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=fg(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new Be(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):t&&(s=et);let a=this.parseChildren();e[s]=Object.keys(a).length===1?a[et]:new bt([],a),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1}capture(t){if(!this.consumeOptional(t))throw new Be(4011,!1)}};function Cx(n){return n.segments.length>0?new bt([],{[et]:n}):n}function wx(n){let t={};for(let[i,r]of Object.entries(n.children)){let s=wx(r);if(i===et&&s.segments.length===0&&s.hasChildren())for(let[a,o]of Object.entries(s.children))t[a]=o;else(s.segments.length>0||s.hasChildren())&&(t[i]=s)}let e=new bt(n.segments,t);return IN(e)}function IN(n){if(n.numberOfChildren===1&&n.children[et]){let t=n.children[et];return new bt(n.segments.concat(t.segments),t.children)}return n}function qs(n){return n instanceof xr}function xx(n,t,e=null,i=null){let r=Sx(n);return kx(r,t,e,i)}function Sx(n){let t;function e(s){let a={};for(let l of s.children){let c=e(l);a[l.outlet]=c}let o=new bt(s.url,a);return s===n&&(t=o),o}let i=e(n.root),r=Cx(i);return t??r}function kx(n,t,e,i){let r=n;for(;r.parent;)r=r.parent;if(t.length===0)return pg(r,r,r,e,i);let s=DN(t);if(s.toRoot())return pg(r,r,new bt([],{}),e,i);let a=RN(s,r,n),o=a.processChildren?Ec(a.segmentGroup,a.index,s.commands):Tx(a.segmentGroup,a.index,s.commands);return pg(r,a.segmentGroup,o,e,i)}function kh(n){return typeof n=="object"&&n!=null&&!n.outlets&&!n.segmentPath}function Ic(n){return typeof n=="object"&&n!=null&&n.outlets}function pg(n,t,e,i,r){let s={};i&&Object.entries(i).forEach(([l,c])=>{s[l]=Array.isArray(c)?c.map(u=>`${u}`):`${c}`});let a;n===t?a=e:a=Mx(n,t,e);let o=Cx(wx(a));return new xr(o,s,r)}function Mx(n,t,e){let i={};return Object.entries(n.children).forEach(([r,s])=>{s===t?i[r]=e:i[r]=Mx(s,t,e)}),new bt(n.segments,i)}var Mh=class{isAbsolute;numberOfDoubleDots;commands;constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&kh(i[0]))throw new Be(4003,!1);let r=i.find(Ic);if(r&&r!==fx(i))throw new Be(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function DN(n){if(typeof n[0]=="string"&&n.length===1&&n[0]==="/")return new Mh(!0,0,n);let t=0,e=!1,i=n.reduce((r,s,a)=>{if(typeof s=="object"&&s!=null){if(s.outlets){let o={};return Object.entries(s.outlets).forEach(([l,c])=>{o[l]=typeof c=="string"?c.split("/"):c}),[...r,{outlets:o}]}if(s.segmentPath)return[...r,s.segmentPath]}return typeof s!="string"?[...r,s]:a===0?(s.split("/").forEach((o,l)=>{l==0&&o==="."||(l==0&&o===""?e=!0:o===".."?t++:o!=""&&r.push(o))}),r):[...r,s]},[]);return new Mh(e,t,i)}var $o=class{segmentGroup;processChildren;index;constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}};function RN(n,t,e){if(n.isAbsolute)return new $o(t,!0,0);if(!e)return new $o(t,!1,NaN);if(e.parent===null)return new $o(e,!0,0);let i=kh(n.commands[0])?0:1,r=e.segments.length-1+i;return LN(e,r,n.numberOfDoubleDots)}function LN(n,t,e){let i=n,r=t,s=e;for(;s>r;){if(s-=r,i=i.parent,!i)throw new Be(4005,!1);r=i.segments.length}return new $o(i,!1,r-s)}function ON(n){return Ic(n[0])?n[0].outlets:{[et]:n}}function Tx(n,t,e){if(n??=new bt([],{}),n.segments.length===0&&n.hasChildren())return Ec(n,t,e);let i=NN(n,t,e),r=e.slice(i.commandIndex);if(i.match&&i.pathIndexs!==et)&&n.children[et]&&n.numberOfChildren===1&&n.children[et].segments.length===0){let s=Ec(n.children[et],t,e);return new bt(n.segments,s.children)}return Object.entries(i).forEach(([s,a])=>{typeof a=="string"&&(a=[a]),a!==null&&(r[s]=Tx(n.children[s],t,a))}),Object.entries(n.children).forEach(([s,a])=>{i[s]===void 0&&(r[s]=a)}),new bt(n.segments,r)}}function NN(n,t,e){let i=0,r=t,s={match:!1,pathIndex:0,commandIndex:0};for(;r=e.length)return s;let a=n.segments[r],o=e[i];if(Ic(o))break;let l=`${o}`,c=i0&&l===void 0)break;if(l&&c&&typeof c=="object"&&c.outlets===void 0){if(!lx(l,c,a))return s;i+=2}else{if(!lx(l,{},a))return s;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}function wg(n,t,e){let i=n.segments.slice(0,t),r=0;for(;r{typeof i=="string"&&(i=[i]),i!==null&&(t[e]=wg(new bt([],{}),0,i))}),t}function ox(n){let t={};return Object.entries(n).forEach(([e,i])=>t[e]=`${i}`),t}function lx(n,t,e){return n==e.path&&Cr(t,e.parameters)}var Sh="imperative",ei=function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n}(ei||{}),hn=class{id;url;constructor(t,e){this.id=t,this.url=e}},Gs=class extends hn{type=ei.NavigationStart;navigationTrigger;restoredState;constructor(t,e,i="imperative",r=null){super(t,e),this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},In=class extends hn{urlAfterRedirects;type=ei.NavigationEnd;constructor(t,e,i){super(t,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},Ki=function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n}(Ki||{}),Bo=function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n}(Bo||{}),wr=class extends hn{reason;code;type=ei.NavigationCancel;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},Sr=class extends hn{reason;code;type=ei.NavigationSkipped;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}},zo=class extends hn{error;target;type=ei.NavigationError;constructor(t,e,i,r){super(t,e),this.error=i,this.target=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Dc=class extends hn{urlAfterRedirects;state;type=ei.RoutesRecognized;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Th=class extends hn{urlAfterRedirects;state;type=ei.GuardsCheckStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Eh=class extends hn{urlAfterRedirects;state;shouldActivate;type=ei.GuardsCheckEnd;constructor(t,e,i,r,s){super(t,e),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=s}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},Ah=class extends hn{urlAfterRedirects;state;type=ei.ResolveStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Ih=class extends hn{urlAfterRedirects;state;type=ei.ResolveEnd;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Dh=class{route;type=ei.RouteConfigLoadStart;constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},Rh=class{route;type=ei.RouteConfigLoadEnd;constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},Lh=class{snapshot;type=ei.ChildActivationStart;constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Oh=class{snapshot;type=ei.ChildActivationEnd;constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Nh=class{snapshot;type=ei.ActivationStart;constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Fh=class{snapshot;type=ei.ActivationEnd;constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ho=class{routerEvent;position;anchor;type=ei.Scroll;constructor(t,e,i){this.routerEvent=t,this.position=e,this.anchor=i}toString(){let t=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${t}')`}},Rc=class{},jo=class{url;navigationBehaviorOptions;constructor(t,e){this.url=t,this.navigationBehaviorOptions=e}};function PN(n,t){return n.providers&&!n._injector&&(n._injector=hh(n.providers,t,`Route: ${n.path}`)),n._injector??t}function Qn(n){return n.outlet||et}function UN(n,t){let e=n.filter(i=>Qn(i)===t);return e.push(...n.filter(i=>Qn(i)!==t)),e}function Vc(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){let e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}var Ph=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Vc(this.route?.snapshot)??this.rootInjector}constructor(t){this.rootInjector=t,this.children=new Da(this.rootInjector)}},Da=(()=>{class n{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}onChildOutletCreated(e,i){let r=this.getOrCreateContext(e);r.outlet=i,this.contexts.set(e,r)}onChildOutletDestroyed(e){let i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new Ph(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||n)(Re(cn))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Uh=class{_root;constructor(t){this._root=t}get root(){return this._root.value}parent(t){let e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){let e=xg(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){let e=xg(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){let e=Sg(t,this._root);return e.length<2?[]:e[e.length-2].children.map(r=>r.value).filter(r=>r!==t)}pathFromRoot(t){return Sg(t,this._root).map(e=>e.value)}};function xg(n,t){if(n===t.value)return t;for(let e of t.children){let i=xg(n,e);if(i)return i}return null}function Sg(n,t){if(n===t.value)return[t];for(let e of t.children){let i=Sg(n,e);if(i.length)return i.unshift(t),i}return[]}var dn=class{value;children;constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}};function Uo(n){let t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}var Lc=class extends Uh{snapshot;constructor(t,e){super(t),this.snapshot=e,Rg(this,t)}toString(){return this.snapshot.toString()}};function Ex(n){let t=$N(n),e=new ci([new js("",{})]),i=new ci({}),r=new ci({}),s=new ci({}),a=new ci(""),o=new ts(e,i,s,a,r,et,n,t.root);return o.snapshot=t.root,new Lc(new dn(o,[]),t)}function $N(n){let t={},e={},i={},r="",s=new Ea([],t,i,r,e,et,n,null,{});return new Oc("",new dn(s,[]))}var ts=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(t,e,i,r,s,a,o,l){this.urlSubject=t,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=s,this.outlet=a,this.component=o,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(Ne(c=>c[$c]))??ge(void 0),this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(Ne(t=>Aa(t))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Ne(t=>Aa(t))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function $h(n,t,e="emptyOnly"){let i,{routeConfig:r}=n;return t!==null&&(e==="always"||r?.path===""||!t.component&&!t.routeConfig?.loadComponent)?i={params:H(H({},t.params),n.params),data:H(H({},t.data),n.data),resolve:H(H(H(H({},n.data),t.data),r?.data),n._resolvedData)}:i={params:H({},n.params),data:H({},n.data),resolve:H(H({},n.data),n._resolvedData??{})},r&&Ix(r)&&(i.resolve[$c]=r.title),i}var Ea=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[$c]}constructor(t,e,i,r,s,a,o,l,c){this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=a,this.component=o,this.routeConfig=l,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=Aa(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Aa(this.queryParams),this._queryParamMap}toString(){let t=this.url.map(i=>i.toString()).join("/"),e=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${t}', path:'${e}')`}},Oc=class extends Uh{url;constructor(t,e){super(e),this.url=t,Rg(this,e)}toString(){return Ax(this._root)}};function Rg(n,t){t.value._routerState=n,t.children.forEach(e=>Rg(n,e))}function Ax(n){let t=n.children.length>0?` { ${n.children.map(Ax).join(", ")} } `:"";return`${n.value}${t}`}function gg(n){if(n.snapshot){let t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Cr(t.queryParams,e.queryParams)||n.queryParamsSubject.next(e.queryParams),t.fragment!==e.fragment&&n.fragmentSubject.next(e.fragment),Cr(t.params,e.params)||n.paramsSubject.next(e.params),mN(t.url,e.url)||n.urlSubject.next(e.url),Cr(t.data,e.data)||n.dataSubject.next(e.data)}else n.snapshot=n._futureSnapshot,n.dataSubject.next(n._futureSnapshot.data)}function kg(n,t){let e=Cr(n.params,t.params)&&_N(n.url,t.url),i=!n.parent!=!t.parent;return e&&!i&&(!n.parent||kg(n.parent,t.parent))}function Ix(n){return typeof n.title=="string"||n.title===null}var Dx=new J(""),Bc=(()=>{class n{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=et;activateEvents=new ce;deactivateEvents=new ce;attachEvents=new ce;detachEvents=new ce;routerOutletData=ww(void 0);parentContexts=R(Da);location=R(ui);changeDetector=R(Ge);inputBinder=R(zc,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(e){if(e.name){let{firstChange:i,previousValue:r}=e.name;if(i)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Be(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Be(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Be(4012,!1);this.location.detach();let e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){let e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new Be(4013,!1);this._activatedRoute=e;let r=this.location,a=e.snapshot.component,o=this.parentContexts.getOrCreateContext(this.name).children,l=new Mg(e,o,r.injector,this.routerOutletData);this.activated=r.createComponent(a,{index:r.length,injector:l,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[mt]})}return n})(),Mg=class{route;childContexts;parent;outletData;constructor(t,e,i,r){this.route=t,this.childContexts=e,this.parent=i,this.outletData=r}get(t,e){return t===ts?this.route:t===Da?this.childContexts:t===Dx?this.outletData:this.parent.get(t,e)}},zc=new J(""),Lg=(()=>{class n{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){let{activatedRoute:i}=e,r=hr([i.queryParams,i.params,i.data]).pipe(Mt(([s,a,o],l)=>(o=H(H(H({},s),a),o),l===0?ge(o):Promise.resolve(o)))).subscribe(s=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(e);return}let a=Vw(i.component);if(!a){this.unsubscribeFromRouteData(e);return}for(let{templateName:o}of a.inputs)e.activatedComponentRef.setInput(o,s[o])});this.outletDataSubscriptions.set(e,r)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),Og=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,r){i&1&&te(0,"router-outlet")},dependencies:[Bc],encapsulation:2})}return n})();function Ng(n){let t=n.children&&n.children.map(Ng),e=t?Le(H({},n),{children:t}):H({},n);return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==et&&(e.component=Og),e}function VN(n,t,e){let i=Nc(n,t._root,e?e._root:void 0);return new Lc(i,t)}function Nc(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){let i=e.value;i._futureSnapshot=t.value;let r=BN(n,t,e);return new dn(i,r)}else{if(n.shouldAttach(t.value)){let s=n.retrieve(t.value);if(s!==null){let a=s.route;return a.value._futureSnapshot=t.value,a.children=t.children.map(o=>Nc(n,o)),a}}let i=zN(t.value),r=t.children.map(s=>Nc(n,s));return new dn(i,r)}}function BN(n,t,e){return t.children.map(i=>{for(let r of e.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return Nc(n,i,r);return Nc(n,i)})}function zN(n){return new ts(new ci(n.url),new ci(n.params),new ci(n.queryParams),new ci(n.fragment),new ci(n.data),n.outlet,n.component,n)}var Wo=class{redirectTo;navigationBehaviorOptions;constructor(t,e){this.redirectTo=t,this.navigationBehaviorOptions=e}},Rx="ngNavigationCancelingError";function Vh(n,t){let{redirectTo:e,navigationBehaviorOptions:i}=qs(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,r=Lx(!1,Ki.Redirect);return r.url=e,r.navigationBehaviorOptions=i,r}function Lx(n,t){let e=new Error(`NavigationCancelingError: ${n||""}`);return e[Rx]=!0,e.cancellationCode=t,e}function HN(n){return Ox(n)&&qs(n.url)}function Ox(n){return!!n&&n[Rx]}var jN=(n,t,e,i)=>Ne(r=>(new Tg(t,r.targetRouterState,r.currentRouterState,e,i).activate(n),r)),Tg=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(t,e,i,r,s){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=s}activate(t){let e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),gg(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){let r=Uo(e);t.children.forEach(s=>{let a=s.value.outlet;this.deactivateRoutes(s,r[a],i),delete r[a]}),Object.values(r).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(t,e,i){let r=t.value,s=e?e.value:null;if(r===s)if(r.component){let a=i.getContext(r.outlet);a&&this.deactivateChildRoutes(t,e,a.children)}else this.deactivateChildRoutes(t,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Uo(t);for(let a of Object.values(s))this.deactivateRouteAndItsChildren(a,r);if(i&&i.outlet){let a=i.outlet.detach(),o=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:a,route:t,contexts:o})}}deactivateRouteAndOutlet(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Uo(t);for(let a of Object.values(s))this.deactivateRouteAndItsChildren(a,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(t,e,i){let r=Uo(e);t.children.forEach(s=>{this.activateRoutes(s,r[s.value.outlet],i),this.forwardEvent(new Fh(s.value.snapshot))}),t.children.length&&this.forwardEvent(new Oh(t.value.snapshot))}activateRoutes(t,e,i){let r=t.value,s=e?e.value:null;if(gg(r),r===s)if(r.component){let a=i.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,a.children)}else this.activateChildRoutes(t,e,i);else if(r.component){let a=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){let o=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),a.children.onOutletReAttached(o.contexts),a.attachRef=o.componentRef,a.route=o.route.value,a.outlet&&a.outlet.attach(o.componentRef,o.route.value),gg(o.route.value),this.activateChildRoutes(t,null,a.children)}else a.attachRef=null,a.route=r,a.outlet&&a.outlet.activateWith(r,a.injector),this.activateChildRoutes(t,null,a.children)}else this.activateChildRoutes(t,null,i)}},Bh=class{path;route;constructor(t){this.path=t,this.route=this.path[this.path.length-1]}},Vo=class{component;route;constructor(t,e){this.component=t,this.route=e}};function WN(n,t,e){let i=n._root,r=t?t._root:null;return Tc(i,r,e,[i.value])}function qN(n){let t=n.routeConfig?n.routeConfig.canActivateChild:null;return!t||t.length===0?null:{node:n,guards:t}}function Go(n,t){let e=Symbol(),i=t.get(n,e);return i===e?typeof n=="function"&&!bw(n)?n:t.get(n):i}function Tc(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let s=Uo(t);return n.children.forEach(a=>{GN(a,s[a.value.outlet],e,i.concat([a.value]),r),delete s[a.value.outlet]}),Object.entries(s).forEach(([a,o])=>Ac(o,e.getContext(a),r)),r}function GN(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let s=n.value,a=t?t.value:null,o=e?e.getContext(n.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){let l=KN(a,s,s.routeConfig.runGuardsAndResolvers);l?r.canActivateChecks.push(new Bh(i)):(s.data=a.data,s._resolvedData=a._resolvedData),s.component?Tc(n,t,o?o.children:null,i,r):Tc(n,t,e,i,r),l&&o&&o.outlet&&o.outlet.isActivated&&r.canDeactivateChecks.push(new Vo(o.outlet.component,a))}else a&&Ac(t,o,r),r.canActivateChecks.push(new Bh(i)),s.component?Tc(n,null,o?o.children:null,i,r):Tc(n,null,e,i,r);return r}function KN(n,t,e){if(typeof e=="function")return e(n,t);switch(e){case"pathParamsChange":return!Ta(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Ta(n.url,t.url)||!Cr(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!kg(n,t)||!Cr(n.queryParams,t.queryParams);case"paramsChange":default:return!kg(n,t)}}function Ac(n,t,e){let i=Uo(n),r=n.value;Object.entries(i).forEach(([s,a])=>{r.component?t?Ac(a,t.children.getContext(s),e):Ac(a,null,e):Ac(a,t,e)}),r.component?t&&t.outlet&&t.outlet.isActivated?e.canDeactivateChecks.push(new Vo(t.outlet.component,r)):e.canDeactivateChecks.push(new Vo(null,r)):e.canDeactivateChecks.push(new Vo(null,r))}function Hc(n){return typeof n=="function"}function YN(n){return typeof n=="boolean"}function QN(n){return n&&Hc(n.canLoad)}function ZN(n){return n&&Hc(n.canActivate)}function XN(n){return n&&Hc(n.canActivateChild)}function JN(n){return n&&Hc(n.canDeactivate)}function eF(n){return n&&Hc(n.canMatch)}function Nx(n){return n instanceof uw||n?.name==="EmptyError"}var yh=Symbol("INITIAL_VALUE");function qo(){return Mt(n=>hr(n.map(t=>t.pipe(Vt(1),Bt(yh)))).pipe(Ne(t=>{for(let e of t)if(e!==!0){if(e===yh)return yh;if(e===!1||tF(e))return e}return!0}),it(t=>t!==yh),Vt(1)))}function tF(n){return qs(n)||n instanceof Wo}function iF(n,t){return yi(e=>{let{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return a.length===0&&s.length===0?ge(Le(H({},e),{guardsResult:!0})):nF(a,i,r,n).pipe(yi(o=>o&&YN(o)?rF(i,s,n,t):ge(o)),Ne(o=>Le(H({},e),{guardsResult:o})))})}function nF(n,t,e,i){return si(n).pipe(yi(r=>cF(r.component,r.route,e,t,i)),ln(r=>r!==!0,!0))}function rF(n,t,e,i){return si(t).pipe(Zr(r=>xa(aF(r.route.parent,i),sF(r.route,i),lF(n,r.path,e),oF(n,r.route,e))),ln(r=>r!==!0,!0))}function sF(n,t){return n!==null&&t&&t(new Nh(n)),ge(!0)}function aF(n,t){return n!==null&&t&&t(new Lh(n)),ge(!0)}function oF(n,t,e){let i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||i.length===0)return ge(!0);let r=i.map(s=>Fs(()=>{let a=Vc(t)??e,o=Go(s,a),l=ZN(o)?o.canActivate(t,n):fr(a,()=>o(t,n));return Ks(l).pipe(ln())}));return ge(r).pipe(qo())}function lF(n,t,e){let i=t[t.length-1],s=t.slice(0,t.length-1).reverse().map(a=>qN(a)).filter(a=>a!==null).map(a=>Fs(()=>{let o=a.guards.map(l=>{let c=Vc(a.node)??e,u=Go(l,c),d=XN(u)?u.canActivateChild(i,n):fr(c,()=>u(i,n));return Ks(d).pipe(ln())});return ge(o).pipe(qo())}));return ge(s).pipe(qo())}function cF(n,t,e,i,r){let s=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!s||s.length===0)return ge(!0);let a=s.map(o=>{let l=Vc(t)??r,c=Go(o,l),u=JN(c)?c.canDeactivate(n,t,e,i):fr(l,()=>c(n,t,e,i));return Ks(u).pipe(ln())});return ge(a).pipe(qo())}function uF(n,t,e,i){let r=t.canLoad;if(r===void 0||r.length===0)return ge(!0);let s=r.map(a=>{let o=Go(a,n),l=QN(o)?o.canLoad(t,e):fr(n,()=>o(t,e));return Ks(l)});return ge(s).pipe(qo(),Fx(i))}function Fx(n){return cw(kt(t=>{if(typeof t!="boolean")throw Vh(n,t)}),Ne(t=>t===!0))}function dF(n,t,e,i){let r=t.canMatch;if(!r||r.length===0)return ge(!0);let s=r.map(a=>{let o=Go(a,n),l=eF(o)?o.canMatch(t,e):fr(n,()=>o(t,e));return Ks(l)});return ge(s).pipe(qo(),Fx(i))}var Fc=class{segmentGroup;constructor(t){this.segmentGroup=t||null}},Pc=class extends Error{urlTree;constructor(t){super(),this.urlTree=t}};function Po(n){return qn(new Fc(n))}function hF(n){return qn(new Be(4e3,!1))}function mF(n){return qn(Lx(!1,Ki.GuardRejected))}var Eg=class{urlSerializer;urlTree;constructor(t,e){this.urlSerializer=t,this.urlTree=e}lineralizeSegments(t,e){let i=[],r=e.root;for(;;){if(i=i.concat(r.segments),r.numberOfChildren===0)return ge(i);if(r.numberOfChildren>1||!r.children[et])return hF(`${t.redirectTo}`);r=r.children[et]}}applyRedirectCommands(t,e,i,r,s){if(typeof e!="string"){let o=e,{queryParams:l,fragment:c,routeConfig:u,url:d,outlet:h,params:m,data:f,title:p}=r,g=fr(s,()=>o({params:m,data:f,queryParams:l,fragment:c,routeConfig:u,url:d,outlet:h,title:p}));if(g instanceof xr)throw new Pc(g);e=g}let a=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i);if(e[0]==="/")throw new Pc(a);return a}applyRedirectCreateUrlTree(t,e,i,r){let s=this.createSegmentGroup(t,e.root,i,r);return new xr(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){let i={};return Object.entries(t).forEach(([r,s])=>{if(typeof s=="string"&&s[0]===":"){let o=s.substring(1);i[r]=e[o]}else i[r]=s}),i}createSegmentGroup(t,e,i,r){let s=this.createSegments(t,e.segments,i,r),a={};return Object.entries(e.children).forEach(([o,l])=>{a[o]=this.createSegmentGroup(t,l,i,r)}),new bt(s,a)}createSegments(t,e,i,r){return e.map(s=>s.path[0]===":"?this.findPosParam(t,s,r):this.findOrReturn(s,i))}findPosParam(t,e,i){let r=i[e.path.substring(1)];if(!r)throw new Be(4001,!1);return r}findOrReturn(t,e){let i=0;for(let r of e){if(r.path===t.path)return e.splice(i),r;i++}return t}},Ag={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function fF(n,t,e,i,r){let s=Px(n,t,e);return s.matched?(i=PN(t,i),dF(i,t,e,r).pipe(Ne(a=>a===!0?s:H({},Ag)))):ge(s)}function Px(n,t,e){if(t.path==="**")return pF(e);if(t.path==="")return t.pathMatch==="full"&&(n.hasChildren()||e.length>0)?H({},Ag):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};let r=(t.matcher||hx)(e,n,t);if(!r)return H({},Ag);let s={};Object.entries(r.posParams??{}).forEach(([o,l])=>{s[o]=l.path});let a=r.consumed.length>0?H(H({},s),r.consumed[r.consumed.length-1].parameters):s;return{matched:!0,consumedSegments:r.consumed,remainingSegments:e.slice(r.consumed.length),parameters:a,positionalParamSegments:r.posParams??{}}}function pF(n){return{matched:!0,parameters:n.length>0?fx(n).parameters:{},consumedSegments:n,remainingSegments:[],positionalParamSegments:{}}}function cx(n,t,e,i){return e.length>0&&bF(n,e,i)?{segmentGroup:new bt(t,_F(i,new bt(e,n.children))),slicedSegments:[]}:e.length===0&&vF(n,e,i)?{segmentGroup:new bt(n.segments,gF(n,e,i,n.children)),slicedSegments:e}:{segmentGroup:new bt(n.segments,n.children),slicedSegments:e}}function gF(n,t,e,i){let r={};for(let s of e)if(Hh(n,t,s)&&!i[Qn(s)]){let a=new bt([],{});r[Qn(s)]=a}return H(H({},i),r)}function _F(n,t){let e={};e[et]=t;for(let i of n)if(i.path===""&&Qn(i)!==et){let r=new bt([],{});e[Qn(i)]=r}return e}function bF(n,t,e){return e.some(i=>Hh(n,t,i)&&Qn(i)!==et)}function vF(n,t,e){return e.some(i=>Hh(n,t,i))}function Hh(n,t,e){return(n.hasChildren()||t.length>0)&&e.pathMatch==="full"?!1:e.path===""}function yF(n,t,e){return t.length===0&&!n.children[e]}var Ig=class{};function CF(n,t,e,i,r,s,a="emptyOnly"){return new Dg(n,t,e,i,r,a,s).recognize()}var wF=31,Dg=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(t,e,i,r,s,a,o){this.injector=t,this.configLoader=e,this.rootComponentType=i,this.config=r,this.urlTree=s,this.paramsInheritanceStrategy=a,this.urlSerializer=o,this.applyRedirects=new Eg(this.urlSerializer,this.urlTree)}noMatchError(t){return new Be(4002,`'${t.segmentGroup}'`)}recognize(){let t=cx(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(t).pipe(Ne(({children:e,rootSnapshot:i})=>{let r=new dn(i,e),s=new Oc("",r),a=xx(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(a),{state:s,tree:a}}))}match(t){let e=new Ea([],Object.freeze({}),Object.freeze(H({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),et,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,t,et,e).pipe(Ne(i=>({children:i,rootSnapshot:e})),Ai(i=>{if(i instanceof Pc)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Fc?this.noMatchError(i):i}))}processSegmentGroup(t,e,i,r,s){return i.segments.length===0&&i.hasChildren()?this.processChildren(t,e,i,s):this.processSegment(t,e,i,i.segments,r,!0,s).pipe(Ne(a=>a instanceof dn?[a]:[]))}processChildren(t,e,i,r){let s=[];for(let a of Object.keys(i.children))a==="primary"?s.unshift(a):s.push(a);return si(s).pipe(Zr(a=>{let o=i.children[a],l=UN(e,a);return this.processSegmentGroup(t,l,o,a,r)}),pw((a,o)=>(a.push(...o),a)),rg(null),fw(),yi(a=>{if(a===null)return Po(i);let o=Ux(a);return xF(o),ge(o)}))}processSegment(t,e,i,r,s,a,o){return si(e).pipe(Zr(l=>this.processSegmentAgainstRoute(l._injector??t,e,l,i,r,s,a,o).pipe(Ai(c=>{if(c instanceof Fc)return ge(null);throw c}))),ln(l=>!!l),Ai(l=>{if(Nx(l))return yF(i,r,s)?ge(new Ig):Po(i);throw l}))}processSegmentAgainstRoute(t,e,i,r,s,a,o,l){return Qn(i)!==a&&(a===et||!Hh(r,s,i))?Po(r):i.redirectTo===void 0?this.matchSegmentAgainstRoute(t,r,i,s,a,l):this.allowRedirects&&o?this.expandSegmentAgainstRouteUsingRedirect(t,r,e,i,s,a,l):Po(r)}expandSegmentAgainstRouteUsingRedirect(t,e,i,r,s,a,o){let{matched:l,parameters:c,consumedSegments:u,positionalParamSegments:d,remainingSegments:h}=Px(e,r,s);if(!l)return Po(e);typeof r.redirectTo=="string"&&r.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>wF&&(this.allowRedirects=!1));let m=new Ea(s,c,Object.freeze(H({},this.urlTree.queryParams)),this.urlTree.fragment,ux(r),Qn(r),r.component??r._loadedComponent??null,r,dx(r)),f=$h(m,o,this.paramsInheritanceStrategy);m.params=Object.freeze(f.params),m.data=Object.freeze(f.data);let p=this.applyRedirects.applyRedirectCommands(u,r.redirectTo,d,m,t);return this.applyRedirects.lineralizeSegments(r,p).pipe(yi(g=>this.processSegment(t,i,e,g.concat(h),a,!1,o)))}matchSegmentAgainstRoute(t,e,i,r,s,a){let o=fF(e,i,r,t,this.urlSerializer);return i.path==="**"&&(e.children={}),o.pipe(Mt(l=>l.matched?(t=i._injector??t,this.getChildConfig(t,i,r).pipe(Mt(({routes:c})=>{let u=i._loadedInjector??t,{parameters:d,consumedSegments:h,remainingSegments:m}=l,f=new Ea(h,d,Object.freeze(H({},this.urlTree.queryParams)),this.urlTree.fragment,ux(i),Qn(i),i.component??i._loadedComponent??null,i,dx(i)),p=$h(f,a,this.paramsInheritanceStrategy);f.params=Object.freeze(p.params),f.data=Object.freeze(p.data);let{segmentGroup:g,slicedSegments:y}=cx(e,h,m,c);if(y.length===0&&g.hasChildren())return this.processChildren(u,c,g,f).pipe(Ne(k=>new dn(f,k)));if(c.length===0&&y.length===0)return ge(new dn(f,[]));let w=Qn(i)===s;return this.processSegment(u,c,g,y,w?et:s,!0,f).pipe(Ne(k=>new dn(f,k instanceof dn?[k]:[])))}))):Po(e)))}getChildConfig(t,e,i){return e.children?ge({routes:e.children,injector:t}):e.loadChildren?e._loadedRoutes!==void 0?ge({routes:e._loadedRoutes,injector:e._loadedInjector}):uF(t,e,i,this.urlSerializer).pipe(yi(r=>r?this.configLoader.loadChildren(t,e).pipe(kt(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):mF(e))):ge({routes:[],injector:t})}};function xF(n){n.sort((t,e)=>t.value.outlet===et?-1:e.value.outlet===et?1:t.value.outlet.localeCompare(e.value.outlet))}function SF(n){let t=n.value.routeConfig;return t&&t.path===""}function Ux(n){let t=[],e=new Set;for(let i of n){if(!SF(i)){t.push(i);continue}let r=t.find(s=>i.value.routeConfig===s.value.routeConfig);r!==void 0?(r.children.push(...i.children),e.add(r)):t.push(i)}for(let i of e){let r=Ux(i.children);t.push(new dn(i.value,r))}return t.filter(i=>!e.has(i))}function ux(n){return n.data||{}}function dx(n){return n.resolve||{}}function kF(n,t,e,i,r,s){return yi(a=>CF(n,t,e,i,a.extractedUrl,r,s).pipe(Ne(({state:o,tree:l})=>Le(H({},a),{targetSnapshot:o,urlAfterRedirects:l}))))}function MF(n,t){return yi(e=>{let{targetSnapshot:i,guards:{canActivateChecks:r}}=e;if(!r.length)return ge(e);let s=new Set(r.map(l=>l.route)),a=new Set;for(let l of s)if(!a.has(l))for(let c of $x(l))a.add(c);let o=0;return si(a).pipe(Zr(l=>s.has(l)?TF(l,i,n,t):(l.data=$h(l,l.parent,n).resolve,ge(void 0))),kt(()=>o++),sg(1),yi(l=>o===a.size?ge(e):on))})}function $x(n){let t=n.children.map(e=>$x(e)).flat();return[n,...t]}function TF(n,t,e,i){let r=n.routeConfig,s=n._resolve;return r?.title!==void 0&&!Ix(r)&&(s[$c]=r.title),EF(s,n,t,i).pipe(Ne(a=>(n._resolvedData=a,n.data=$h(n,n.parent,e).resolve,null)))}function EF(n,t,e,i){let r=vg(n);if(r.length===0)return ge({});let s={};return si(r).pipe(yi(a=>AF(n[a],t,e,i).pipe(ln(),kt(o=>{if(o instanceof Wo)throw Vh(new Ws,o);s[a]=o}))),sg(1),Ne(()=>s),Ai(a=>Nx(a)?on:qn(a)))}function AF(n,t,e,i){let r=Vc(t)??i,s=Go(n,r),a=s.resolve?s.resolve(t,e):fr(r,()=>s(t,e));return Ks(a)}function _g(n){return Mt(t=>{let e=n(t);return e?si(e).pipe(Ne(()=>t)):ge(t)})}var Fg=(()=>{class n{buildTitle(e){let i,r=e.root;for(;r!==void 0;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(s=>s.outlet===et);return i}getResolvedTitleForRoute(e){return e.data[$c]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>R(Vx),providedIn:"root"})}return n})(),Vx=(()=>{class n extends Fg{title;constructor(e){super(),this.title=e}updateTitle(e){let i=this.buildTitle(e);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||n)(Re(ex))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ra=new J("",{providedIn:"root",factory:()=>({})}),Ko=new J(""),jh=(()=>{class n{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=R(Uw);loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return ge(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);let i=Ks(e.loadComponent()).pipe(Ne(zx),kt(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),Eo(()=>{this.componentLoaders.delete(e)})),r=new ig(i,()=>new ue).pipe(tg());return this.componentLoaders.set(e,r),r}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return ge({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let s=Bx(i,this.compiler,e,this.onLoadEndListener).pipe(Eo(()=>{this.childrenLoaders.delete(i)})),a=new ig(s,()=>new ue).pipe(tg());return this.childrenLoaders.set(i,a),a}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Bx(n,t,e,i){return Ks(n.loadChildren()).pipe(Ne(zx),yi(r=>r instanceof Ew||Array.isArray(r)?ge(r):si(t.compileModuleAsync(r))),Ne(r=>{i&&i(n);let s,a,o=!1;return Array.isArray(r)?(a=r,o=!0):(s=r.create(e).injector,a=s.get(Ko,[],{optional:!0,self:!0}).flat()),{routes:a.map(Ng),injector:s}}))}function IF(n){return n&&typeof n=="object"&&"default"in n}function zx(n){return IF(n)?n.default:n}var Wh=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>R(DF),providedIn:"root"})}return n})(),DF=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Pg=new J(""),Ug=new J("");function Hx(n,t,e){let i=n.get(Ug),r=n.get(Ze);return n.get(De).runOutsideAngular(()=>{if(!r.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let s,a=new Promise(c=>{s=c}),o=r.startViewTransition(()=>(s(),RF(n))),{onViewTransitionCreated:l}=i;return l&&fr(n,()=>l({transition:o,from:t,to:e})),a})}function RF(n){return new Promise(t=>{Yt({read:()=>setTimeout(t)},{injector:n})})}var $g=new J(""),qh=(()=>{class n{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new ue;transitionAbortSubject=new ue;configLoader=R(jh);environmentInjector=R(cn);destroyRef=R(yw);urlSerializer=R(Ia);rootContexts=R(Da);location=R(Bs);inputBindingEnabled=R(zc,{optional:!0})!==null;titleStrategy=R(Fg);options=R(Ra,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=R(Wh);createViewTransition=R(Pg,{optional:!0});navigationErrorHandler=R($g,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>ge(void 0);rootComponentType=null;destroyed=!1;constructor(){let e=r=>this.events.next(new Dh(r)),i=r=>this.events.next(new Rh(r));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=e,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){let i=++this.navigationId;this.transitions?.next(Le(H({},e),{extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(e){return this.transitions=new ci(null),this.transitions.pipe(it(i=>i!==null),Mt(i=>{let r=!1,s=!1;return ge(i).pipe(Mt(a=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Ki.SupersededByNewNavigation),on;this.currentTransition=i,this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,targetBrowserUrl:typeof a.extras.browserUrl=="string"?this.urlSerializer.parse(a.extras.browserUrl):a.extras.browserUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?Le(H({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let o=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),l=a.extras.onSameUrlNavigation??e.onSameUrlNavigation;if(!o&&l!=="reload"){let c="";return this.events.next(new Sr(a.id,this.urlSerializer.serialize(a.rawUrl),c,Bo.IgnoredSameUrlNavigation)),a.resolve(!1),on}if(this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return ge(a).pipe(Mt(c=>(this.events.next(new Gs(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?on:Promise.resolve(c))),kF(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),kt(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Le(H({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let u=new Dc(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}));if(o&&this.urlHandlingStrategy.shouldProcessUrl(a.currentRawUrl)){let{id:c,extractedUrl:u,source:d,restoredState:h,extras:m}=a,f=new Gs(c,this.urlSerializer.serialize(u),d,h);this.events.next(f);let p=Ex(this.rootComponentType).snapshot;return this.currentTransition=i=Le(H({},a),{targetSnapshot:p,urlAfterRedirects:u,extras:Le(H({},m),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=u,ge(i)}else{let c="";return this.events.next(new Sr(a.id,this.urlSerializer.serialize(a.extractedUrl),c,Bo.IgnoredByUrlHandlingStrategy)),a.resolve(!1),on}}),kt(a=>{let o=new Th(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(o)}),Ne(a=>(this.currentTransition=i=Le(H({},a),{guards:WN(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),i)),iF(this.environmentInjector,a=>this.events.next(a)),kt(a=>{if(i.guardsResult=a.guardsResult,a.guardsResult&&typeof a.guardsResult!="boolean")throw Vh(this.urlSerializer,a.guardsResult);let o=new Eh(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.events.next(o)}),it(a=>a.guardsResult?!0:(this.cancelNavigationTransition(a,"",Ki.GuardRejected),!1)),_g(a=>{if(a.guards.canActivateChecks.length!==0)return ge(a).pipe(kt(o=>{let l=new Ah(o.id,this.urlSerializer.serialize(o.extractedUrl),this.urlSerializer.serialize(o.urlAfterRedirects),o.targetSnapshot);this.events.next(l)}),Mt(o=>{let l=!1;return ge(o).pipe(MF(this.paramsInheritanceStrategy,this.environmentInjector),kt({next:()=>l=!0,complete:()=>{l||this.cancelNavigationTransition(o,"",Ki.NoDataFromResolver)}}))}),kt(o=>{let l=new Ih(o.id,this.urlSerializer.serialize(o.extractedUrl),this.urlSerializer.serialize(o.urlAfterRedirects),o.targetSnapshot);this.events.next(l)}))}),_g(a=>{let o=l=>{let c=[];l.routeConfig?.loadComponent&&!l.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(l.routeConfig).pipe(kt(u=>{l.component=u}),Ne(()=>{})));for(let u of l.children)c.push(...o(u));return c};return hr(o(a.targetSnapshot.root)).pipe(rg(null),Vt(1))}),_g(()=>this.afterPreactivation()),Mt(()=>{let{currentSnapshot:a,targetSnapshot:o}=i,l=this.createViewTransition?.(this.environmentInjector,a.root,o.root);return l?si(l).pipe(Ne(()=>i)):ge(i)}),Ne(a=>{let o=VN(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return this.currentTransition=i=Le(H({},a),{targetRouterState:o}),this.currentNavigation.targetRouterState=o,i}),kt(()=>{this.events.next(new Rc)}),jN(this.rootContexts,e.routeReuseStrategy,a=>this.events.next(a),this.inputBindingEnabled),Vt(1),kt({next:a=>{r=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new In(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects))),this.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0)},complete:()=>{r=!0}}),Ye(this.transitionAbortSubject.pipe(kt(a=>{throw a}))),Eo(()=>{!r&&!s&&this.cancelNavigationTransition(i,"",Ki.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),Ai(a=>{if(this.destroyed)return i.resolve(!1),on;if(s=!0,Ox(a))this.events.next(new wr(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode)),HN(a)?this.events.next(new jo(a.url,a.navigationBehaviorOptions)):i.resolve(!1);else{let o=new zo(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);try{let l=fr(this.environmentInjector,()=>this.navigationErrorHandler?.(o));if(l instanceof Wo){let{message:c,cancellationCode:u}=Vh(this.urlSerializer,l);this.events.next(new wr(i.id,this.urlSerializer.serialize(i.extractedUrl),c,u)),this.events.next(new jo(l.redirectTo,l.navigationBehaviorOptions))}else throw this.events.next(o),a}catch(l){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(l)}}return on}))}))}cancelNavigationTransition(e,i,r){let s=new wr(e.id,this.urlSerializer.serialize(e.extractedUrl),i,r);this.events.next(s),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return e.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function LF(n){return n!==Sh}var jx=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>R(OF),providedIn:"root"})}return n})(),zh=class{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}},OF=(()=>{class n extends zh{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Wx=(()=>{class n{urlSerializer=R(Ia);options=R(Ra,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=R(Bs);urlHandlingStrategy=R(Wh);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new xr;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:r}){let s=e!==void 0?this.urlHandlingStrategy.merge(e,i):i,a=r??s;return a instanceof xr?this.urlSerializer.serialize(a):a}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:r}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,r),this.routerState=e):this.rawUrlTree=r}routerState=Ex(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>R(NF),providedIn:"root"})}return n})(),NF=(()=>{class n extends Wx{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{e(i.url,i.state,"popstate")})})}handleRouterEvent(e,i){e instanceof Gs?this.updateStateMemento():e instanceof Sr?this.commitTransition(i):e instanceof Dc?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof Rc?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof wr&&(e.code===Ki.GuardRejected||e.code===Ki.NoDataFromResolver)?this.restoreHistory(i):e instanceof zo?this.restoreHistory(i,!0):e instanceof In&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:i,id:r}){let{replaceUrl:s,state:a}=i;if(this.location.isCurrentPathEqualTo(e)||s){let o=this.browserPageId,l=H(H({},a),this.generateNgRouterState(r,o));this.location.replaceState(e,"",l)}else{let o=H(H({},a),this.generateNgRouterState(r,this.browserPageId+1));this.location.go(e,"",o)}}restoreHistory(e,i=!1){if(this.canceledNavigationResolution==="computed"){let r=this.browserPageId,s=this.currentPageId-r;s!==0?this.location.historyGo(s):this.getCurrentUrlTree()===e.finalUrl&&s===0&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return this.canceledNavigationResolution==="computed"?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Gh(n,t){n.events.pipe(it(e=>e instanceof In||e instanceof wr||e instanceof zo||e instanceof Sr),Ne(e=>e instanceof In||e instanceof Sr?0:(e instanceof wr?e.code===Ki.Redirect||e.code===Ki.SupersededByNewNavigation:!1)?2:1),it(e=>e!==2),Vt(1)).subscribe(()=>{t()})}var FF={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},PF={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},is=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=R(Aw);stateManager=R(Wx);options=R(Ra,{optional:!0})||{};pendingTasks=R(Cw);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=R(qh);urlSerializer=R(Ia);location=R(Bs);urlHandlingStrategy=R(Wh);_events=new ue;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=R(jx);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=R(Ko,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!R(zc,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}eventsSubscription=new St;subscribeToNavigationEvents(){let e=this.navigationTransitions.events.subscribe(i=>{try{let r=this.navigationTransitions.currentTransition,s=this.navigationTransitions.currentNavigation;if(r!==null&&s!==null){if(this.stateManager.handleRouterEvent(i,s),i instanceof wr&&i.code!==Ki.Redirect&&i.code!==Ki.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof In)this.navigated=!0;else if(i instanceof jo){let a=i.navigationBehaviorOptions,o=this.urlHandlingStrategy.merge(i.url,r.currentRawUrl),l=H({browserUrl:r.extras.browserUrl,info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:r.extras.replaceUrl||this.urlUpdateStrategy==="eager"||LF(r.source)},a);this.scheduleNavigation(o,Sh,null,l,{resolve:r.resolve,reject:r.reject,promise:r.promise})}}$F(i)&&this._events.next(i)}catch(r){this.navigationTransitions.transitionAbortSubject.next(r)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Sh,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,r)=>{this.navigateToSyncWithBrowser(e,r,i)})}navigateToSyncWithBrowser(e,i,r){let s={replaceUrl:!0},a=r?.navigationId?r:null;if(r){let l=H({},r);delete l.navigationId,delete l.\u0275routerPageId,Object.keys(l).length!==0&&(s.state=l)}let o=this.parseUrl(e);this.scheduleNavigation(o,i,a,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(Ng),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){let{relativeTo:r,queryParams:s,fragment:a,queryParamsHandling:o,preserveFragment:l}=i,c=l?this.currentUrlTree.fragment:a,u=null;switch(o??this.options.defaultQueryParamsHandling){case"merge":u=H(H({},this.currentUrlTree.queryParams),s);break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=s||null}u!==null&&(u=this.removeEmptyProps(u));let d;try{let h=r?r.snapshot:this.routerState.snapshot.root;d=Sx(h)}catch{(typeof e[0]!="string"||e[0][0]!=="/")&&(e=[]),d=this.currentUrlTree.root}return kx(d,e,u,c??null)}navigateByUrl(e,i={skipLocationChange:!1}){let r=qs(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(s,Sh,null,i)}navigate(e,i={skipLocationChange:!1}){return UF(e),this.navigateByUrl(this.createUrlTree(e,i),i)}serializeUrl(e){return this.urlSerializer.serialize(e)}parseUrl(e){try{return this.urlSerializer.parse(e)}catch{return this.urlSerializer.parse("/")}}isActive(e,i){let r;if(i===!0?r=H({},FF):i===!1?r=H({},PF):r=i,qs(e))return sx(this.currentUrlTree,e,r);let s=this.parseUrl(e);return sx(this.currentUrlTree,s,r)}removeEmptyProps(e){return Object.entries(e).reduce((i,[r,s])=>(s!=null&&(i[r]=s),i),{})}scheduleNavigation(e,i,r,s,a){if(this.disposed)return Promise.resolve(!1);let o,l,c;a?(o=a.resolve,l=a.reject,c=a.promise):c=new Promise((d,h)=>{o=d,l=h});let u=this.pendingTasks.add();return Gh(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:o,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function UF(n){for(let t=0;t{class n{router;route;tabIndexAttribute;renderer;el;locationStrategy;href=null;target;queryParams;fragment;queryParamsHandling;state;info;relativeTo;isAnchorElement;subscription;onChanges=new ue;constructor(e,i,r,s,a,o){this.router=e,this.route=i,this.tabIndexAttribute=r,this.renderer=s,this.el=a,this.locationStrategy=o;let l=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement=l==="a"||l==="area",this.isAnchorElement?this.subscription=e.events.subscribe(c=>{c instanceof In&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}preserveFragment=!1;skipLocationChange=!1;replaceUrl=!1;setTabIndexIfNotOnNativeEl(e){this.tabIndexAttribute!=null||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}routerLinkInput=null;set routerLink(e){e==null?(this.routerLinkInput=null,this.setTabIndexIfNotOnNativeEl(null)):(qs(e)?this.routerLinkInput=e:this.routerLinkInput=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,i,r,s,a){let o=this.urlTree;if(o===null||this.isAnchorElement&&(e!==0||i||r||s||a||typeof this.target=="string"&&this.target!="_self"))return!0;let l={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(o,l),!this.isAnchorElement}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){let e=this.urlTree;this.href=e!==null&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;let i=this.href===null?null:kw(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){let r=this.renderer,s=this.el.nativeElement;i!==null?r.setAttribute(s,e,i):r.removeAttribute(s,e)}get urlTree(){return this.routerLinkInput===null?null:qs(this.routerLinkInput)?this.routerLinkInput:this.router.createUrlTree(this.routerLinkInput,{relativeTo:this.relativeTo!==void 0?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static \u0275fac=function(i){return new(i||n)(Ae(is),Ae(ts),vw("tabindex"),Ae(Rt),Ae(Te),Ae(Sc))};static \u0275dir=xe({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,r){i&1&&X("click",function(a){return r.onClick(a.button,a.ctrlKey,a.shiftKey,a.altKey,a.metaKey)}),i&2&&Se("target",r.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",_e],skipLocationChange:[2,"skipLocationChange","skipLocationChange",_e],replaceUrl:[2,"replaceUrl","replaceUrl",_e],routerLink:"routerLink"},features:[mt]})}return n})();var jc=class{};var qx=(()=>{class n{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,r,s){this.router=e,this.injector=i,this.preloadingStrategy=r,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(it(e=>e instanceof In),Zr(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){let r=[];for(let s of i){s.providers&&!s._injector&&(s._injector=hh(s.providers,e,`Route: ${s.path}`));let a=s._injector??e,o=s._loadedInjector??a;(s.loadChildren&&!s._loadedRoutes&&s.canLoad===void 0||s.loadComponent&&!s._loadedComponent)&&r.push(this.preloadConfig(a,s)),(s.children||s._loadedRoutes)&&r.push(this.processRoutes(o,s.children??s._loadedRoutes))}return si(r).pipe(ng())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let r;i.loadChildren&&i.canLoad===void 0?r=this.loader.loadChildren(e,i):r=ge(null);let s=r.pipe(yi(a=>a===null?ge(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));if(i.loadComponent&&!i._loadedComponent){let a=this.loader.loadComponent(i);return si([s,a]).pipe(ng())}else return s})}static \u0275fac=function(i){return new(i||n)(Re(is),Re(cn),Re(jc),Re(jh))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Gx=new J(""),VF=(()=>{class n{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(e,i,r,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=r,this.zone=s,this.options=a,a.scrollPositionRestoration||="disabled",a.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof Gs?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof In?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Sr&&e.code===Bo.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof Ho&&(e.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(e.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Ho(e,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){dh()};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function BF(n){return n.routerState.root}function Wc(n,t){return{\u0275kind:n,\u0275providers:t}}function zF(){let n=R(ut);return t=>{let e=n.get(Gn);if(t!==e.components[0])return;let i=n.get(is),r=n.get(Kx);n.get(Bg)===1&&i.initialNavigation(),n.get(Zx,null,og.Optional)?.setUpPreloading(),n.get(Gx,null,og.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}var Kx=new J("",{factory:()=>new ue}),Bg=new J("",{providedIn:"root",factory:()=>1});function Yx(){let n=[{provide:Bg,useValue:0},ug(()=>{let t=R(ut);return t.get(Bw,Promise.resolve()).then(()=>new Promise(i=>{let r=t.get(is),s=t.get(Kx);Gh(r,()=>{i(!0)}),t.get(qh).afterPreactivation=()=>(i(!0),s.closed?ge(void 0):s),r.initialNavigation()}))})];return Wc(2,n)}function Qx(){let n=[ug(()=>{R(is).setUpLocationChangeListener()}),{provide:Bg,useValue:2}];return Wc(3,n)}var Zx=new J("");function Xx(n){return Wc(0,[{provide:Zx,useExisting:qx},{provide:jc,useExisting:n}])}function Jx(){return Wc(8,[Lg,{provide:zc,useExisting:Lg}])}function eS(n){lg("NgRouterViewTransitions");let t=[{provide:Pg,useValue:Hx},{provide:Ug,useValue:H({skipNextTransition:!!n?.skipInitialTransition},n)}];return Wc(9,t)}var tS=[Bs,{provide:Ia,useClass:Ws},is,Da,{provide:ts,useFactory:BF,deps:[is]},jh,[]],zg=(()=>{class n{constructor(){}static forRoot(e,i){return{ngModule:n,providers:[tS,[],{provide:Ko,multi:!0,useValue:e},[],i?.errorHandler?{provide:$g,useValue:i.errorHandler}:[],{provide:Ra,useValue:i||{}},i?.useHash?jF():WF(),HF(),i?.preloadingStrategy?Xx(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?qF(i):[],i?.bindToComponentInputs?Jx().\u0275providers:[],i?.enableViewTransitions?eS().\u0275providers:[],GF()]}}static forChild(e){return{ngModule:n,providers:[{provide:Ko,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();function HF(){return{provide:Gx,useFactory:()=>{let n=R(Kw),t=R(De),e=R(Ra),i=R(qh),r=R(Ia);return e.scrollOffset&&n.setOffset(e.scrollOffset),new VF(r,i,n,t,e)}}}function jF(){return{provide:Sc,useClass:jw}}function WF(){return{provide:Sc,useClass:Hw}}function qF(n){return[n.initialNavigation==="disabled"?Qx().\u0275providers:[],n.initialNavigation==="enabledBlocking"?Yx().\u0275providers:[]]}var Vg=new J("");function GF(){return[{provide:Vg,useFactory:zF},{provide:Iw,multi:!0,useExisting:Vg}]}var ns=class{},Hg=(()=>{class n extends ns{getTranslation(e){return ge({})}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),Qo=class{},jg=(()=>{class n{handle(e){return e.key}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function Oa(n){return typeof n<"u"&&n!==null}function Jh(n){return Kh(n)&&!Yg(n)&&n!==null}function Kh(n){return typeof n=="object"}function Yg(n){return Array.isArray(n)}function nS(n){return typeof n=="string"}function KF(n){return typeof n=="function"}function Wg(n,t){let e=Object.assign({},n);return Kh(n)?(Kh(n)&&Kh(t)&&Object.keys(t).forEach(i=>{Jh(t[i])?i in n?e[i]=Wg(n[i],t[i]):Object.assign(e,{[i]:t[i]}):Object.assign(e,{[i]:t[i]})}),e):Wg({},t)}function qg(n,t){let e=t.split(".");t="";do t+=e.shift(),Oa(n)&&Oa(n[t])&&(Jh(n[t])||Yg(n[t])||!e.length)?(n=n[t],t=""):e.length?t+=".":n=void 0;while(e.length);return n}function YF(n,t,e){let i=t.split("."),r=n;for(let s=0;s{class n extends Na{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,i){if(nS(e))return this.interpolateString(e,i);if(KF(e))return this.interpolateFunction(e,i)}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(r,s)=>{let a=qg(i,s);return Oa(a)?a:r}):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),Fa=class{},Kg=(()=>{class n extends Fa{compile(e,i){return e}compileTranslations(e,i){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),Zo=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new ce;onLangChange=new ce;onDefaultLangChange=new ce},Yh=new J("ISOLATE_TRANSLATE_SERVICE"),Qh=new J("USE_DEFAULT_LANG"),Zh=new J("DEFAULT_LANGUAGE"),Xh=new J("USE_EXTEND"),qc=n=>Ns(n)?n:ge(n),Gc=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;extend;loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onDefaultLangChange(){return this.store.onDefaultLangChange}get defaultLang(){return this.store.defaultLang}set defaultLang(e){this.store.defaultLang=e}get currentLang(){return this.store.currentLang}set currentLang(e){this.store.currentLang=e}get langs(){return this.store.langs}set langs(e){this.store.langs=e}get translations(){return this.store.translations}set translations(e){this.store.translations=e}constructor(e,i,r,s,a,o=!0,l=!1,c=!1,u){this.store=e,this.currentLoader=i,this.compiler=r,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=o,this.extend=c,l&&(this.store=new Zo),u&&this.setDefaultLang(u)}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(this.defaultLang==null&&(this.defaultLang=e),i.pipe(Vt(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return ge(this.translations[e]);this.currentLang||(this.currentLang=e);let i=this.retrieveTranslations(e);return Ns(i)?(i.pipe(Vt(1)).subscribe(()=>{this.changeLang(e)}),i):(this.changeLang(e),ge(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let i=this.currentLoader.getTranslation(e).pipe(Ps(1),Vt(1));return this.loadingTranslations=i.pipe(Ne(r=>this.compiler.compileTranslations(r,e)),Ps(1),Vt(1)),this.loadingTranslations.subscribe({next:r=>{this.translations[e]=this.extend&&this.translations[e]?H(H({},r),this.translations[e]):r,this.updateLangs(),this.pending=!1},error:r=>{this.pending=!1}}),i}setTranslation(e,i,r=!1){let s=this.compiler.compileTranslations(i,e);(r||this.extend)&&this.translations[e]?this.translations[e]=Wg(this.translations[e],s):this.translations[e]=s,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){let i=e.filter(r=>!this.langs.includes(r));i.length>0&&(this.langs=[...this.langs,...i])}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,i,r){let s;if(e&&(s=this.runInterpolation(qg(e,i),r)),s===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.runInterpolation(qg(this.translations[this.defaultLang],i),r)),s===void 0){let a={key:i,translateService:this};typeof r<"u"&&(a.interpolateParams=r),s=this.missingTranslationHandler.handle(a)}return s!==void 0?s:i}runInterpolation(e,i){if(Yg(e))return e.map(r=>this.runInterpolation(r,i));if(Jh(e)){let r={};for(let s in e){let a=this.runInterpolation(e[s],i);a!==void 0&&(r[s]=a)}return r}else return this.parser.interpolate(e,i)}getParsedResult(e,i,r){if(i instanceof Array){let s={},a=!1;for(let l of i)s[l]=this.getParsedResultForKey(e,l,r),a=a||Ns(s[l]);if(!a)return s;let o=i.map(l=>qc(s[l]));return Mo(o).pipe(Ne(l=>{let c={};return l.forEach((u,d)=>{c[i[d]]=u}),c}))}return this.getParsedResultForKey(e,i,r)}get(e,i){if(!Oa(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(Zr(r=>qc(this.getParsedResult(r,e,i)))):qc(this.getParsedResult(this.translations[this.currentLang],e,i))}getStreamOnTranslationChange(e,i){if(!Oa(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return xa(Fs(()=>this.get(e,i)),this.onTranslationChange.pipe(Mt(r=>{let s=this.getParsedResult(r.translations,e,i);return qc(s)})))}stream(e,i){if(!Oa(e)||!e.length)throw new Error('Parameter "key" required');return xa(Fs(()=>this.get(e,i)),this.onLangChange.pipe(Mt(r=>{let s=this.getParsedResult(r.translations,e,i);return qc(s)})))}instant(e,i){if(!Oa(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let r=this.getParsedResult(this.translations[this.currentLang],e,i);return Ns(r)?Array.isArray(e)?e.reduce((s,a)=>(s[a]=a,s),{}):e:r}set(e,i,r=this.currentLang){YF(this.translations[r],e,nS(i)?this.compiler.compile(i,r):this.compiler.compileTranslations(i,r)),this.updateLangs(),this.onTranslationChange.emit({lang:r,translations:this.translations[r]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(i){return new(i||n)(Re(Zo),Re(ns),Re(Fa),Re(Na),Re(Qo),Re(Qh),Re(Yh),Re(Xh),Re(Zh))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var rS=(n={})=>Sa([n.loader||{provide:ns,useClass:Hg},n.compiler||{provide:Fa,useClass:Kg},n.parser||{provide:Na,useClass:Gg},n.missingTranslationHandler||{provide:Qo,useClass:jg},Zo,{provide:Yh,useValue:n.isolate},{provide:Qh,useValue:n.useDefaultLang},{provide:Xh,useValue:n.extend},{provide:Zh,useValue:n.defaultLanguage},Gc]),Qg=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:ns,useClass:Hg},e.compiler||{provide:Fa,useClass:Kg},e.parser||{provide:Na,useClass:Gg},e.missingTranslationHandler||{provide:Qo,useClass:jg},Zo,{provide:Yh,useValue:e.isolate},{provide:Qh,useValue:e.useDefaultLang},{provide:Xh,useValue:e.extend},{provide:Zh,useValue:e.defaultLanguage},Gc]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:ns,useClass:Hg},e.compiler||{provide:Fa,useClass:Kg},e.parser||{provide:Na,useClass:Gg},e.missingTranslationHandler||{provide:Qo,useClass:jg},{provide:Yh,useValue:e.isolate},{provide:Qh,useValue:e.useDefaultLang},{provide:Xh,useValue:e.extend},{provide:Zh,useValue:e.defaultLanguage},Gc]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var sS=(()=>{class n{http;prefix;suffix;constructor(e,i="/assets/i18n/",r=".json"){this.http=e,this.prefix=i,this.suffix=r}getTranslation(e){return this.http.get(`${this.prefix}${e}${this.suffix}`)}static \u0275fac=function(i){return new(i||n)(Re(yr),Re(String),Re(String))};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();var dk=Os(d_());var Dn=(()=>{class n{constructor(){}changeFhirMicroService(e){localStorage.setItem("fhirMicroServer",e)}getFhirMicroService(){return localStorage.getItem("fhirMicroServer")}getFhirClient(){return new dk.default({baseUrl:this.getFhirMicroService()})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var am=(()=>{class n{redirectHashUrl(){let e=window.location.href;window.location.replace(e.replace("#/",""))}isHashUrl(){return window.location.href.indexOf("#/")>-1}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var om;function KP(){if(om===void 0&&(om=null,typeof window<"u")){let n=window;n.trustedTypes!==void 0&&(om=n.trustedTypes.createPolicy("angular#components",{createHTML:t=>t}))}return om}function Yc(n){return KP()?.createHTML(n)||n}function hk(n){return Error(`Unable to find icon with the name "${n}"`)}function YP(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function mk(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function fk(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}var as=class{url;svgText;options;svgElement;constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}},gk=(()=>{class n{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,r,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._document=r}addSvgIcon(e,i,r){return this.addSvgIconInNamespace("",e,i,r)}addSvgIconLiteral(e,i,r){return this.addSvgIconLiteralInNamespace("",e,i,r)}addSvgIconInNamespace(e,i,r,s){return this._addSvgIconConfig(e,i,new as(r,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,r,s){let a=this._sanitizer.sanitize(pr.HTML,r);if(!a)throw fk(r);let o=Yc(a);return this._addSvgIconConfig(e,i,new as("",o,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,r){return this._addSvgIconSetConfig(e,new as(i,null,r))}addSvgIconSetLiteralInNamespace(e,i,r){let s=this._sanitizer.sanitize(pr.HTML,i);if(!s)throw fk(i);let a=Yc(s);return this._addSvgIconSetConfig(e,new as("",a,r))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){let i=this._sanitizer.sanitize(pr.RESOURCE_URL,e);if(!i)throw mk(e);let r=this._cachedIconsByUrl.get(i);return r?ge(lm(r)):this._loadSvgIconFromConfig(new as(e,null)).pipe(kt(s=>this._cachedIconsByUrl.set(i,s)),Ne(s=>lm(s)))}getNamedSvgIcon(e,i=""){let r=pk(i,e),s=this._svgIconConfigs.get(r);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(r,s),this._getSvgFromConfig(s);let a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):qn(hk(r))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?ge(lm(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Ne(i=>lm(i)))}_getSvgFromIconSetConfigs(e,i){let r=this._extractIconWithNameFromAnySet(e,i);if(r)return ge(r);let s=i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Ai(o=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(pr.RESOURCE_URL,a.url)} failed: ${o.message}`;return this._errorHandler.handleError(new Error(c)),ge(null)})));return Mo(s).pipe(Ne(()=>{let a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw hk(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let r=i.length-1;r>=0;r--){let s=i[r];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){let a=this._svgElementFromConfig(s),o=this._extractSvgIconFromSet(a,e,s.options);if(o)return o}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(kt(i=>e.svgText=i),Ne(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?ge(null):this._fetchIcon(e).pipe(kt(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,r){let s=e.querySelector(`[id="${i}"]`);if(!s)return null;let a=s.cloneNode(!0);if(a.removeAttribute("id"),a.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(a,r);if(a.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(a),r);let o=this._svgElementFromString(Yc(""));return o.appendChild(a),this._setSvgAttributes(o,r)}_svgElementFromString(e){let i=this._document.createElement("DIV");i.innerHTML=e;let r=i.querySelector("svg");if(!r)throw Error(" tag not found");return r}_toSvgElement(e){let i=this._svgElementFromString(Yc("")),r=e.attributes;for(let s=0;sYc(c)),Eo(()=>this._inProgressUrlFetches.delete(a)),gw());return this._inProgressUrlFetches.set(a,l),l}_addSvgIconConfig(e,i,r){return this._svgIconConfigs.set(pk(e,i),r),this}_addSvgIconSetConfig(e,i){let r=this._iconSetConfigs.get(e);return r?r.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){let i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let r=0;r19||s===19&&a>0||s===0&&a===0?n.listen(t,e,i,r):(t.addEventListener(e,i,r),()=>{t.removeEventListener(e,i,r)})}var C_;try{C_=typeof Intl<"u"&&Intl.v8BreakIterator}catch{C_=!1}var st=(()=>{class n{_platformId=R(ch);isBrowser=this._platformId?es(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||C_)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Zc;function bk(){if(Zc==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Zc=!0}))}finally{Zc=Zc||!1}return Zc}function Ys(n){return bk()?n:!!n.capture}function kr(n,t=0){return vk(n)?Number(n):arguments.length===2?t:0}function vk(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}function Oi(n){return n instanceof Te?n.nativeElement:n}var yk=new J("cdk-input-modality-detector-options"),Ck={ignoreKeys:[18,17,224,91,16]},wk=650,w_={passive:!0,capture:!0},xk=(()=>{class n{_platform=R(st);_listenerCleanups;modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new ci(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Li(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs{if(rl(e)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Li(e)};constructor(){let e=R(De),i=R(Ze),r=R(yk,{optional:!0});if(this._options=H(H({},Ck),r),this.modalityDetected=this._modality.pipe(Ao(1)),this.modalityChanged=this.modalityDetected.pipe(mr()),this._platform.isBrowser){let s=R(Ri).createRenderer(null,null);this._listenerCleanups=e.runOutsideAngular(()=>[Ot(s,i,"keydown",this._onKeydown,w_),Ot(s,i,"mousedown",this._onMousedown,w_),Ot(s,i,"touchstart",this._onTouchstart,w_)])}}ngOnDestroy(){this._modality.complete(),this._listenerCleanups?.forEach(e=>e())}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Xc=function(n){return n[n.IMMEDIATE=0]="IMMEDIATE",n[n.EVENTUAL=1]="EVENTUAL",n}(Xc||{}),Sk=new J("cdk-focus-monitor-default-options"),cm=Ys({passive:!0,capture:!0}),mn=(()=>{class n{_ngZone=R(De);_platform=R(st);_inputModalityDetector=R(xk);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=R(Ze,{optional:!0});_stopInputModalityDetector=new ue;constructor(){let e=R(Sk,{optional:!0});this._detectionMode=e?.detectionMode||Xc.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{let i=Li(e);for(let r=i;r;r=r.parentElement)e.type==="focus"?this._onFocus(e,r):this._onBlur(e,r)};monitor(e,i=!1){let r=Oi(e);if(!this._platform.isBrowser||r.nodeType!==1)return ge();let s=y_(r)||this._getDocument(),a=this._elementInfo.get(r);if(a)return i&&(a.checkChildren=!0),a.subject;let o={checkChildren:i,subject:new ue,rootNode:s};return this._elementInfo.set(r,o),this._registerGlobalListeners(o),o.subject}stopMonitoring(e){let i=Oi(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){let s=Oi(e),a=this._getDocument().activeElement;s===a?this._getClosestElementsInfo(s).forEach(([o,l])=>this._originChanged(o,i,l)):(this._setOrigin(i),typeof s.focus=="function"&&s.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===Xc.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused",i==="touch"),e.classList.toggle("cdk-keyboard-focused",i==="keyboard"),e.classList.toggle("cdk-mouse-focused",i==="mouse"),e.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=e,this._originFromTouchInteraction=e==="touch"&&i,this._detectionMode===Xc.IMMEDIATE){clearTimeout(this._originTimeoutId);let r=this._originFromTouchInteraction?wk:1;this._originTimeoutId=setTimeout(()=>this._origin=null,r)}})}_onFocus(e,i){let r=this._elementInfo.get(i),s=Li(e);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),r)}_onBlur(e,i){let r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;let i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,cm),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,cm)}),this._rootNodeFocusListenerCount.set(i,r+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Ye(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){let i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,cm),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,cm),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){let i=[];return this._elementInfo.forEach((r,s)=>{(s===e||r.checkChildren&&s.contains(e))&&i.push([s,r])}),i}_isLastInteractionFromInputLabel(e){let{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if(r!=="mouse"||!i||i===e||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA"||e.disabled)return!1;let s=e.labels;if(s){for(let a=0;a{class n{_elementRef=R(Te);_focusMonitor=R(mn);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new ce;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,e.nodeType===1&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return n})();var um=new WeakMap,pt=(()=>{class n{_appRef;_injector=R(ut);_environmentInjector=R(cn);load(e){let i=this._appRef=this._appRef||this._injector.get(Gn),r=um.get(i);r||(r={loaders:new Set,refs:[]},um.set(i,r),i.onDestroy(()=>{um.get(i)?.refs.forEach(s=>s.destroy()),um.delete(i)})),r.loaders.has(e)||(r.loaders.add(e),r.refs.push(_h(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Mr=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,r){},styles:[`.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0} +`],encapsulation:2,changeDetection:0})}return n})();function sl(n){return Array.isArray(n)?n:[n]}var kk=new Set,Ua,ZP=(()=>{class n{_platform=R(st);_nonce=R(xw,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):JP}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&XP(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function XP(n,t){if(!kk.has(n))try{Ua||(Ua=document.createElement("style"),t&&Ua.setAttribute("nonce",t),Ua.setAttribute("type","text/css"),document.head.appendChild(Ua)),Ua.sheet&&(Ua.sheet.insertRule(`@media ${n} {body{ }}`,0),kk.add(n))}catch(e){console.error(e)}}function JP(n){return{matches:n==="all"||n==="",media:n,addListener:()=>{},removeListener:()=>{}}}var Tk=(()=>{class n{_mediaMatcher=R(ZP);_zone=R(De);_queries=new Map;_destroySubject=new ue;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return Mk(sl(e)).some(r=>this._registerQuery(r).mql.matches)}observe(e){let r=Mk(sl(e)).map(a=>this._registerQuery(a).observable),s=hr(r);return s=xa(s.pipe(Vt(1)),s.pipe(Ao(1),Ii(0))),s.pipe(Ne(a=>{let o={matches:!1,breakpoints:{}};return a.forEach(({matches:l,query:c})=>{o.matches=o.matches||l,o.breakpoints[c]=l}),o}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);let i=this._mediaMatcher.matchMedia(e),s={observable:new dr(a=>{let o=l=>this._zone.run(()=>a.next(l));return i.addListener(o),()=>{i.removeListener(o)}}).pipe(Bt(i),Ne(({matches:a})=>({query:e,matches:a})),Ye(this._destroySubject)),mql:i};return this._queries.set(e,s),s}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Mk(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}function e3(n){if(n.type==="characterData"&&n.target instanceof Comment)return!0;if(n.type==="childList"){for(let t=0;t{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ak=(()=>{class n{_mutationObserverFactory=R(Ek);_observedElements=new Map;_ngZone=R(De);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){let i=Oi(e);return new dr(r=>{let a=this._observeElement(i).pipe(Ne(o=>o.filter(l=>!e3(l))),it(o=>!!o.length)).subscribe(o=>{this._ngZone.run(()=>{r.next(o)})});return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{let i=new ue,r=this._mutationObserverFactory.create(s=>i.next(s));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream})}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){let{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ik=(()=>{class n{_contentObserver=R(Ak);_elementRef=R(Te);event=new ce;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=kr(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(Ii(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",_e],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return n})(),dm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[Ek]})}return n})();var t3=(()=>{class n{_platform=R(st);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return n3(e)&&getComputedStyle(e).visibility==="visible"}isTabbable(e){if(!this._platform.isBrowser)return!1;let i=i3(d3(e));if(i&&(Dk(i)===-1||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),s=Dk(e);return e.hasAttribute("contenteditable")?s!==-1:r==="iframe"||r==="object"||this._platform.WEBKIT&&this._platform.IOS&&!c3(e)?!1:r==="audio"?e.hasAttribute("controls")?s!==-1:!1:r==="video"?s===-1?!1:s!==null?!0:this._platform.FIREFOX||e.hasAttribute("controls"):e.tabIndex>=0}isFocusable(e,i){return u3(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function i3(n){try{return n.frameElement}catch{return null}}function n3(n){return!!(n.offsetWidth||n.offsetHeight||typeof n.getClientRects=="function"&&n.getClientRects().length)}function r3(n){let t=n.nodeName.toLowerCase();return t==="input"||t==="select"||t==="button"||t==="textarea"}function s3(n){return o3(n)&&n.type=="hidden"}function a3(n){return l3(n)&&n.hasAttribute("href")}function o3(n){return n.nodeName.toLowerCase()=="input"}function l3(n){return n.nodeName.toLowerCase()=="a"}function Ok(n){if(!n.hasAttribute("tabindex")||n.tabIndex===void 0)return!1;let t=n.getAttribute("tabindex");return!!(t&&!isNaN(parseInt(t,10)))}function Dk(n){if(!Ok(n))return null;let t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}function c3(n){let t=n.nodeName.toLowerCase(),e=t==="input"&&n.type;return e==="text"||e==="password"||t==="select"||t==="textarea"}function u3(n){return s3(n)?!1:r3(n)||a3(n)||n.hasAttribute("contenteditable")||Ok(n)}function d3(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}var S_=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_enabled=!0;constructor(t,e,i,r,s=!1,a){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._injector=a,s||this.attachAnchors()}destroy(){let t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){let e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return t=="start"?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){let e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){let i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){let e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){let e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;let e=t.children;for(let i=0;i=0;i--){let r=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(r)return r}return null}_createAnchor(){let t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._injector?Yt(t,{injector:this._injector}):setTimeout(t)}},Nk=(()=>{class n{_checker=R(t3);_ngZone=R(De);_document=R(Ze);_injector=R(ut);constructor(){R(pt).load(Mr)}create(e,i=!1){return new S_(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),k_=(()=>{class n{_elementRef=R(Te);_focusTrapFactory=R(Nk);focusTrap;_previouslyFocusedElement=null;get enabled(){return this.focusTrap?.enabled||!1}set enabled(e){this.focusTrap&&(this.focusTrap.enabled=e)}autoCapture;constructor(){R(st).isBrowser&&(this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0))}ngOnDestroy(){this.focusTrap?.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap?.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap&&!this.focusTrap.hasAttached()&&this.focusTrap.attachAnchors()}ngOnChanges(e){let i=e.autoCapture;i&&!i.firstChange&&this.autoCapture&&this.focusTrap?.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=Qc(),this.focusTrap?.focusInitialElementWhenReady()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:[2,"cdkTrapFocus","enabled",_e],autoCapture:[2,"cdkTrapFocusAutoCapture","autoCapture",_e]},exportAs:["cdkTrapFocus"],features:[mt]})}return n})(),Fk=new J("liveAnnouncerElement",{providedIn:"root",factory:Pk});function Pk(){return null}var Uk=new J("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),h3=0,M_=(()=>{class n{_ngZone=R(De);_defaultOptions=R(Uk,{optional:!0});_liveElement;_document=R(Ze);_previousTimeout;_currentPromise;_currentResolve;constructor(){let e=R(Fk,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){let r=this._defaultOptions,s,a;return i.length===1&&typeof i[0]=="number"?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=r&&r.politeness?r.politeness:"polite"),a==null&&r&&(a=r.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(o=>this._currentResolve=o)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,typeof a=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),r=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{_platform=R(st);_hasCheckedHighContrastMode;_document=R(Ze);_breakpointSubscription;constructor(){this._breakpointSubscription=R(Tk).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Qs.NONE;let e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);let i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Qs.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Qs.BLACK_ON_WHITE}return Qs.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let e=this._document.body.classList;e.remove(x_,Rk,Lk),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===Qs.BLACK_ON_WHITE?e.add(x_,Rk):i===Qs.WHITE_ON_BLACK&&e.add(x_,Lk)}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),eu=(()=>{class n{constructor(){R(hm)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[dm]})}return n})();var T_={},At=(()=>{class n{_appId=R(lh);getId(e){return this._appId!=="ng"&&(e+=this._appId),T_.hasOwnProperty(e)||(T_[e]=0),`${e}${T_[e]++}`}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var m3=200,mm=class{_letterKeyStream=new ue;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new ue;selectedItem=this._selectedItem;constructor(t,e){let i=typeof e?.debounceInterval=="number"?e.debounceInterval:m3;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(t),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(t){this._selectedItemIndex=t}setItems(t){this._items=t}handleKey(t){let e=t.keyCode;t.key&&t.key.length===1?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(t){this._letterKeyStream.pipe(kt(e=>this._pressedLetters.push(e)),Ii(t),it(()=>this._pressedLetters.length>0),Ne(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;in[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}var al=class{_items;_activeItemIndex=-1;_activeItem=Di(null);_wrap=!1;_typeaheadSubscription=St.EMPTY;_itemChangesSubscription;_vertical=!0;_horizontal;_allowedModifierKeys=[];_homeAndEnd=!1;_pageUpAndDown={enabled:!1,delta:10};_effectRef;_typeahead;_skipPredicateFn=t=>t.disabled;constructor(t,e){this._items=t,t instanceof Do?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):ka(t)&&(this._effectRef=gh(()=>this._itemsChanged(t()),{injector:e}))}tabOut=new ue;change=new ue;skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){this._typeaheadSubscription.unsubscribe();let e=this._getItemsArray();return this._typeahead=new mm(e,{debounceInterval:typeof t=="number"?t:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}withPageUpDown(t=!0,e=10){return this._pageUpAndDown={enabled:t,delta:e},this}setActiveItem(t){let e=this._activeItem();this.updateActiveItem(t),this._activeItem()!==e&&this.change.next(this._activeItemIndex)}onKeydown(t){let e=t.keyCode,r=["altKey","ctrlKey","metaKey","shiftKey"].every(s=>!t[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:this.tabOut.next();return;case 40:if(this._vertical&&r){this.setNextItemActive();break}else return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&r){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&r){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&r){let s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&r){let s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}};var tu=class extends al{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}};var cl=class extends al{_origin="program";setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}};var Bk=" ";function I_(n,t,e){let i=vm(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(Bk)))}function ym(n,t,e){let i=vm(n,t);e=e.trim();let r=i.filter(s=>s!==e);r.length?n.setAttribute(t,r.join(Bk)):n.removeAttribute(t)}function vm(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}var zk="cdk-describedby-message",bm="cdk-describedby-host",A_=0,Hk=(()=>{class n{_platform=R(st);_document=R(Ze);_messageRegistry=new Map;_messagesContainer=null;_id=`${A_++}`;constructor(){R(pt).load(Mr),this._id=R(lh)+"-"+A_++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;let s=E_(i,r);typeof i!="string"?(Vk(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;let s=E_(i,r);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),typeof i=="string"){let a=this._messageRegistry.get(s);a&&a.referenceCount===0&&this._deleteMessageElement(s)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let e=this._document.querySelectorAll(`[${bm}="${this._id}"]`);for(let i=0;ir.indexOf(zk)!=0);e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){let r=this._messageRegistry.get(i);I_(e,"aria-describedby",r.messageElement.id),e.setAttribute(bm,this._id),r.referenceCount++}_removeMessageReference(e,i){let r=this._messageRegistry.get(i);r.referenceCount--,ym(e,"aria-describedby",r.messageElement.id),e.removeAttribute(bm)}_isElementDescribedByMessage(e,i){let r=vm(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&r.indexOf(a)!=-1}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&typeof i=="object")return!0;let r=i==null?"":`${i}`.trim(),s=e.getAttribute("aria-label");return r?!s||s.trim()!==r:!1}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function E_(n,t){return typeof n=="string"?`${t||""}/${n}`:n}function Vk(n,t){n.id||(n.id=`${zk}-${t}-${A_++}`)}var f3=new J("cdk-dir-doc",{providedIn:"root",factory:p3});function p3(){return R(Ze)}var g3=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function jk(n){let t=n?.toLowerCase()||"";return t==="auto"&&typeof navigator<"u"&&navigator?.language?g3.test(navigator.language)?"rtl":"ltr":t==="rtl"?"rtl":"ltr"}var ti=(()=>{class n{value="ltr";change=new ce;constructor(){let e=R(f3,{optional:!0});if(e){let i=e.body?e.body.dir:null,r=e.documentElement?e.documentElement.dir:null;this.value=jk(i||r||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Zs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var Oe=(()=>{class n{constructor(){R(hm)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Zs,Zs]})}return n})();var _3=["*"],b3=new J("MAT_ICON_DEFAULT_OPTIONS"),v3=new J("mat-icon-location",{providedIn:"root",factory:y3});function y3(){let n=R(Ze),t=n?n.location:null;return{getPathname:()=>t?t.pathname+t.search:""}}var Wk=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],C3=Wk.map(n=>`[${n}]`).join(", "),w3=/^url\(['"]?#(.*?)['"]?\)$/,Rn=(()=>{class n{_elementRef=R(Te);_iconRegistry=R(gk);_location=R(v3);_errorHandler=R(Cc);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){let i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){let i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=St.EMPTY;constructor(){let e=R(new un("aria-hidden"),{optional:!0}),i=R(b3,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];let i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let e=this._elementsWithExternalReferences;if(e&&e.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){let e=this._elementRef.nativeElement,i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let r=e.childNodes[i];(r.nodeType!==1||r.nodeName.toLowerCase()==="svg")&&r.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(r=>r.length>0);this._previousFontSetClass.forEach(r=>e.classList.remove(r)),i.forEach(r=>e.classList.add(r)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return typeof e=="string"?e.trim().split(" ")[0]:e}_prependPathToReferences(e){let i=this._elementsWithExternalReferences;i&&i.forEach((r,s)=>{r.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){let i=e.querySelectorAll(C3),r=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{let o=i[s],l=o.getAttribute(a),c=l?l.match(w3):null;if(c){let u=r.get(o);u||(u=[],r.set(o,u)),u.push({name:a,value:c[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){let[i,r]=this._splitIconName(e);i&&(this._svgNamespace=i),r&&(this._svgName=r),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(r,i).pipe(Vt(1)).subscribe(s=>this._setSvgElement(s),s=>{let a=`Error retrieving icon ${i}:${r}! ${s.message}`;this._errorHandler.handleError(new Error(a))})}}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,r){i&2&&(Se("data-mat-icon-type",r._usingFontIcon()?"font":"svg")("data-mat-icon-name",r._svgName||r.fontIcon)("data-mat-icon-namespace",r._svgNamespace||r.fontSet)("fontIcon",r._usingFontIcon()?r.fontIcon:null),ft(r.color?"mat-"+r.color:""),ye("mat-icon-inline",r.inline)("mat-icon-no-color",r.color!=="primary"&&r.color!=="accent"&&r.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",_e],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:_3,decls:1,vars:0,template:function(i,r){i&1&&(Qe(),Fe(0))},styles:[`mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto} +`],encapsulation:2,changeDetection:0})}return n})(),iu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var qk=(()=>{class n{constructor(e,i,r){if(this.translateService=e,this.fhirConfigService=i,this.hashUrlRedirectionService=r,this.version=window.MATCHBOX_VERSION,r.isHashUrl()&&r.redirectHashUrl(),e.setDefaultLang("de"),e.use(e.getBrowserLang()),location.origin==="http://localhost:4200")console.log("note: using local dev mag system for "+location.origin),i.changeFhirMicroService("http://localhost:8080/matchboxv3/fhir");else{let a=window.MATCHBOX_BASE_PATH+"/fhir";i.changeFhirMicroService(a),console.log("fhir endpoint "+a)}}static{this.\u0275fac=function(i){return new(i||n)(Ae(Gc),Ae(Dn),Ae(am))}}static{this.\u0275cmp=le({type:n,selectors:[["app-root"]],standalone:!1,decls:43,vars:1,consts:[["routerLink","/",1,"logo-container"],["alt","Matchbox logo","height","40","src","assets/matchbox_logo_color.png","width","95"],[1,"version"],["routerLink","/"],["routerLink","/CapabilityStatement"],["routerLink","/igs"],["routerLink","/mappinglanguage"],["routerLink","/transform"],["routerLink","/validate"],["routerLink","/settings"],[1,"mat-typography"]],template:function(i,r){i&1&&(P(0,"header")(1,"div",0),te(2,"img",1),P(3,"span",2),B(4),U()(),P(5,"nav")(6,"div",3)(7,"mat-icon"),B(8,"home"),U(),P(9,"span"),B(10,"Home"),U()(),P(11,"div",4)(12,"mat-icon"),B(13,"info"),U(),P(14,"span"),B(15,"CapabilityStatement"),U()(),P(16,"div",5)(17,"mat-icon"),B(18,"info"),U(),P(19,"span"),B(20,"IGs"),U()(),P(21,"div",6)(22,"mat-icon"),B(23,"search"),U(),P(24,"span"),B(25,"FHIR Mapping"),U()(),P(26,"div",7)(27,"mat-icon"),B(28,"transform"),U(),P(29,"span"),B(30,"Transform"),U()(),P(31,"div",8)(32,"mat-icon"),B(33,"rule"),U(),P(34,"span"),B(35,"Validate"),U()(),P(36,"div",9)(37,"mat-icon"),B(38,"settings"),U(),P(39,"span"),B(40,"Settings"),U()()()(),P(41,"main",10),te(42,"router-outlet"),U()),i&2&&($(4),je("v",r.version,""))},dependencies:[Rn,Bc,Yo],styles:[".example-fill-remaining-space[_ngcontent-%COMP%]{flex:1 1 auto}mat-toolbar[_ngcontent-%COMP%]{padding-left:0}mat-toolbar[_ngcontent-%COMP%] .home-link[_ngcontent-%COMP%]{height:100%;display:flex;justify-content:center;align-items:center;cursor:pointer}mat-toolbar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{display:flex;height:100%;width:160px;justify-content:center;align-items:center}mat-toolbar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:calc(100% - 1.2em)}header[_ngcontent-%COMP%]{background:#97d6ba;display:flex;flex-wrap:wrap;flex:0 1 auto;padding:10px 2em;justify-content:space-between}header[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{display:inline-block}header[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{color:#2e7d73;font-size:.9em;display:inline-block;margin:4px 0 0 10px;vertical-align:top}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%]{display:flex;margin-top:10px}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block;margin:0 1rem;cursor:pointer;color:#3d5c73}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:8px;vertical-align:middle;color:#d2eade}main[_ngcontent-%COMP%]{width:100%;margin:0 auto}@media (max-width: 1140px){header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin:0 7px}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:4px;font-size:18px;width:18px;height:18px}}"]})}}return n})();var wM=Os(D_()),FX=Os(Yk()),PX=Os(Zk());var Ut=class n{constructor(t,e){this.operationOutcome=e,this.issues=t??[]}static fromOperationOutcome(t){let e=t.issue?.map(i=>Sm.fromOoIssue(i));return new n(e,t)}static fromMatchboxError(t){let e=new n;return e.issues.push(new Sm("fatal","matchbox",t,void 0,void 0,void 0,void 0)),e}},Sm=class n{constructor(t,e,i,r,s,a,o,l,c){this.sliceInfo=[],this.severity=t,this.code=e,this.text=i,this.expression=r,this.line=s,this.col=a,this.sliceInfo=o??[],this.markdown=l,this.details=c,l&&this.text.includes("```markdown")&&(this.text=this.text.substring(11,this.text.length-3))}static fromOoIssue(t){let e;t.expression&&t.expression.length?e=t.expression[0]:t.location&&t.location.length&&(e=t.location[0]);let i=t.diagnostics?.indexOf("Slice info: 1.)"),r,s=null;i>=0?(r=t.diagnostics.substring(0,i).trimEnd(),s=t.diagnostics.substring(i+15).trimStart().split(/\d+[.][)]/)):r=t.diagnostics;let a=n.getExtensionStringValue(t,"http://hl7.org/fhir/StructureDefinition/rendering-style")=="markdown",o=t.details?t.details.text:void 0;return new n(t.severity,t.code,r,e,n.getLineNo(t),n.getColNo(t),s,a,o)}static getLineNo(t){let e=n.getExtensionIntValue(t,"http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line");return e&&e>0?e:void 0}static getColNo(t){let e=n.getExtensionIntValue(t,"http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col");return e&&e>0?e:void 0}static getExtensionIntValue(t,e){if(t.extension){for(let i of t.extension)if(i.url===e)return i.valueInteger}}static getExtensionStringValue(t,e){if(t.extension){for(let i of t.extension)if(i.url===e)return i.valueString}}};var x3=["determinateSpinner"];function S3(n,t){if(n&1&&(Ht(),P(0,"svg",11),te(1,"circle",12),U()),n&2){let e=Y();Se("viewBox",e._viewBox()),$(),Jt("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Se("r",e._circleRadius())}}var k3=new J("mat-progress-spinner-default-options",{providedIn:"root",factory:M3});function M3(){return{diameter:Xk}}var Xk=100,T3=10,Xs=(()=>{class n{_elementRef=R(Te);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){let e=R(ot,{optional:!0}),i=R(k3);this._noopAnimations=e==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=Xk;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_circleRadius(){return(this.diameter-T3)/2}_viewBox(){let e=this._circleRadius()*2+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(i&1&&Pe(x3,5),i&2){let s;ke(s=Me())&&(r._determinateCircle=s.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){i&2&&(Se("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",r.mode==="determinate"?r.value:null)("mode",r.mode),ft("mat-"+r.color),Jt("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),ye("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate",r.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",Ft],diameter:[2,"diameter","diameter",Ft],strokeWidth:[2,"strokeWidth","strokeWidth",Ft]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,r){if(i&1&&(oe(0,S3,2,8,"ng-template",null,0,Ma),P(2,"div",2,1),Ht(),P(4,"svg",3),te(5,"circle",4),U()(),Xr(),P(6,"div",5)(7,"div",6)(8,"div",7),Ro(9,8),U(),P(10,"div",9),Ro(11,8),U(),P(12,"div",10),Ro(13,8),U()()()),i&2){let s=jt(1);$(4),Se("viewBox",r._viewBox()),$(),Jt("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),Se("r",r._circleRadius()),$(4),j("ngTemplateOutlet",s),$(2),j("ngTemplateOutlet",s),$(2),j("ngTemplateOutlet",s)}},dependencies:[bh],styles:[`.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}} +`],encapsulation:2,changeDetection:0})}return n})();var nu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe]})}return n})();function N_(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var za=N_();function rM(n){za=n}var au={exec:()=>null};function wt(n,t=""){let e=typeof n=="string"?n:n.source,i={replace:(r,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(Ni.caret,"$1"),e=e.replace(r,a),i},getRegex:()=>new RegExp(e,t)};return i}var Ni={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i")},E3=/^(?:[ \t]*(?:\n|$))+/,A3=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,I3=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ou=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,D3=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,F_=/(?:[*+-]|\d{1,9}[.)])/,sM=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,aM=wt(sM).replace(/bull/g,F_).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),R3=wt(sM).replace(/bull/g,F_).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),P_=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,L3=/^[^\n]+/,U_=/(?!\s*\])(?:\\.|[^\[\]\\])+/,O3=wt(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",U_).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),N3=wt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,F_).getRegex(),Im="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",$_=/|$))/,F3=wt("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",$_).replace("tag",Im).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oM=wt(P_).replace("hr",ou).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Im).getRegex(),P3=wt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",oM).getRegex(),V_={blockquote:P3,code:A3,def:O3,fences:I3,heading:D3,hr:ou,html:F3,lheading:aM,list:N3,newline:E3,paragraph:oM,table:au,text:L3},Jk=wt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ou).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Im).getRegex(),U3=Le(H({},V_),{lheading:R3,table:Jk,paragraph:wt(P_).replace("hr",ou).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Jk).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Im).getRegex()}),$3=Le(H({},V_),{html:wt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",$_).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:au,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:wt(P_).replace("hr",ou).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",aM).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),V3=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,B3=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,lM=/^( {2,}|\\)\n(?!\s*$)/,z3=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,dM=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,G3=wt(dM,"u").replace(/punct/g,Dm).getRegex(),K3=wt(dM,"u").replace(/punct/g,uM).getRegex(),hM="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Y3=wt(hM,"gu").replace(/notPunctSpace/g,cM).replace(/punctSpace/g,B_).replace(/punct/g,Dm).getRegex(),Q3=wt(hM,"gu").replace(/notPunctSpace/g,W3).replace(/punctSpace/g,j3).replace(/punct/g,uM).getRegex(),Z3=wt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,cM).replace(/punctSpace/g,B_).replace(/punct/g,Dm).getRegex(),X3=wt(/\\(punct)/,"gu").replace(/punct/g,Dm).getRegex(),J3=wt(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),eU=wt($_).replace("(?:-->|$)","-->").getRegex(),tU=wt("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",eU).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Em=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,iU=wt(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Em).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),mM=wt(/^!?\[(label)\]\[(ref)\]/).replace("label",Em).replace("ref",U_).getRegex(),fM=wt(/^!?\[(ref)\](?:\[\])?/).replace("ref",U_).getRegex(),nU=wt("reflink|nolink(?!\\()","g").replace("reflink",mM).replace("nolink",fM).getRegex(),z_={_backpedal:au,anyPunctuation:X3,autolink:J3,blockSkip:q3,br:lM,code:B3,del:au,emStrongLDelim:G3,emStrongRDelimAst:Y3,emStrongRDelimUnd:Z3,escape:V3,link:iU,nolink:fM,punctuation:H3,reflink:mM,reflinkSearch:nU,tag:tU,text:z3,url:au},rU=Le(H({},z_),{link:wt(/^!?\[(label)\]\((.*?)\)/).replace("label",Em).getRegex(),reflink:wt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Em).getRegex()}),R_=Le(H({},z_),{emStrongRDelimAst:Q3,emStrongLDelim:K3,url:wt(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},eM=n=>aU[n];function Tr(n,t){if(t){if(Ni.escapeTest.test(n))return n.replace(Ni.escapeReplace,eM)}else if(Ni.escapeTestNoEncode.test(n))return n.replace(Ni.escapeReplaceNoEncode,eM);return n}function tM(n){try{n=encodeURI(n).replace(Ni.percentDecode,"%")}catch{return null}return n}function iM(n,t){let e=n.replace(Ni.findPipe,(s,a,o)=>{let l=!1,c=a;for(;--c>=0&&o[c]==="\\";)l=!l;return l?"|":" |"}),i=e.split(Ni.splitPipe),r=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length0?-2:-1}function nM(n,t,e,i,r){let s=t.href,a=t.title||null,o=n[1].replace(r.other.outputLinkReplace,"$1");i.state.inLink=!0;let l={type:n[0].charAt(0)==="!"?"image":"link",raw:e,href:s,title:a,text:o,tokens:i.inlineTokens(o)};return i.state.inLink=!1,l}function lU(n,t,e){let i=n.match(e.other.indentCodeCompensation);if(i===null)return t;let r=i[1];return t.split(` +`).map(s=>{let a=s.match(e.other.beginningSpace);if(a===null)return s;let[o]=a;return o.length>=r.length?s.slice(r.length):s}).join(` +`)}var Am=class{options;rules;lexer;constructor(n){this.options=n||za}space(n){let t=this.rules.block.newline.exec(n);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(n){let t=this.rules.block.code.exec(n);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:su(e,` +`)}}}fences(n){let t=this.rules.block.fences.exec(n);if(t){let e=t[0],i=lU(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:i}}}heading(n){let t=this.rules.block.heading.exec(n);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let i=su(e,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(e=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(n){let t=this.rules.block.hr.exec(n);if(t)return{type:"hr",raw:su(t[0],` +`)}}blockquote(n){let t=this.rules.block.blockquote.exec(n);if(t){let e=su(t[0],` +`).split(` +`),i="",r="",s=[];for(;e.length>0;){let a=!1,o=[],l;for(l=0;l1,r={type:"list",raw:"",ordered:i,start:i?+e.slice(0,-1):"",loose:!1,items:[]};e=i?`\\d{1,9}\\${e.slice(-1)}`:`\\${e}`,this.options.pedantic&&(e=i?e:"[*+-]");let s=this.rules.other.listItemRegex(e),a=!1;for(;n;){let l=!1,c="",u="";if(!(t=s.exec(n))||this.rules.block.hr.test(n))break;c=t[0],n=n.substring(c.length);let d=t[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,y=>" ".repeat(3*y.length)),h=n.split(` +`,1)[0],m=!d.trim(),f=0;if(this.options.pedantic?(f=2,u=d.trimStart()):m?f=t[1].length+1:(f=t[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,u=d.slice(f),f+=t[1].length),m&&this.rules.other.blankLine.test(h)&&(c+=h+` +`,n=n.substring(h.length+1),l=!0),!l){let y=this.rules.other.nextBulletRegex(f),w=this.rules.other.hrRegex(f),k=this.rules.other.fencesBeginRegex(f),x=this.rules.other.headingBeginRegex(f),C=this.rules.other.htmlBeginRegex(f);for(;n;){let A=n.split(` +`,1)[0],T;if(h=A,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting," "),T=h):T=h.replace(this.rules.other.tabCharGlobal," "),k.test(h)||x.test(h)||C.test(h)||y.test(h)||w.test(h))break;if(T.search(this.rules.other.nonSpaceChar)>=f||!h.trim())u+=` +`+T.slice(f);else{if(m||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||k.test(d)||x.test(d)||w.test(d))break;u+=` +`+h}!m&&!h.trim()&&(m=!0),c+=A+` +`,n=n.substring(A.length+1),d=T.slice(f)}}r.loose||(a?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(a=!0));let p=null,g;this.options.gfm&&(p=this.rules.other.listIsTask.exec(u),p&&(g=p[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),r.items.push({type:"list_item",raw:c,task:!!p,checked:g,loose:!1,text:u,tokens:[]}),r.raw+=c}let o=r.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let l=0;ld.type==="space"),u=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));r.loose=u}if(r.loose)for(let l=0;l({text:o,tokens:this.lexer.inline(o),header:!1,align:s.align[l]})));return s}}lheading(n){let t=this.rules.block.lheading.exec(n);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(n){let t=this.rules.block.paragraph.exec(n);if(t){let e=t[1].charAt(t[1].length-1)===` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(n){let t=this.rules.block.text.exec(n);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(n){let t=this.rules.inline.escape.exec(n);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(n){let t=this.rules.inline.tag.exec(n);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(n){let t=this.rules.inline.link.exec(n);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let s=su(e.slice(0,-1),"\\");if((e.length-s.length)%2===0)return}else{let s=oU(t[2],"()");if(s===-2)return;if(s>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let i=t[2],r="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(i);s&&(i=s[1],r=s[3])}else r=t[3]?t[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?i=i.slice(1):i=i.slice(1,-1)),nM(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(n,t){let e;if((e=this.rules.inline.reflink.exec(n))||(e=this.rules.inline.nolink.exec(n))){let i=(e[2]||e[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=t[i.toLowerCase()];if(!r){let s=e[0].charAt(0);return{type:"text",raw:s,text:s}}return nM(e,r,e[0],this.lexer,this.rules)}}emStrong(n,t,e=""){let i=this.rules.inline.emStrongLDelim.exec(n);if(!i||i[3]&&e.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!e||this.rules.inline.punctuation.exec(e)){let s=[...i[0]].length-1,a,o,l=s,c=0,u=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*n.length+s);(i=u.exec(t))!=null;){if(a=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!a)continue;if(o=[...a].length,i[3]||i[4]){l+=o;continue}else if((i[5]||i[6])&&s%3&&!((s+o)%3)){c+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l+c);let d=[...i[0]][0].length,h=n.slice(0,s+i.index+d+o);if(Math.min(s,o)%2){let f=h.slice(1,-1);return{type:"em",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let m=h.slice(2,-2);return{type:"strong",raw:h,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(n){let t=this.rules.inline.code.exec(n);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return i&&r&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(n){let t=this.rules.inline.br.exec(n);if(t)return{type:"br",raw:t[0]}}del(n){let t=this.rules.inline.del.exec(n);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(n){let t=this.rules.inline.autolink.exec(n);if(t){let e,i;return t[2]==="@"?(e=t[1],i="mailto:"+e):(e=t[1],i=e),{type:"link",raw:t[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}url(n){let t;if(t=this.rules.inline.url.exec(n)){let e,i;if(t[2]==="@")e=t[0],i="mailto:"+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(r!==t[0]);e=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(n){let t=this.rules.inline.text.exec(n);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},os=class L_{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||za,this.options.tokenizer=this.options.tokenizer||new Am,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={other:Ni,block:Mm.normal,inline:ru.normal};this.options.pedantic?(e.block=Mm.pedantic,e.inline=ru.pedantic):this.options.gfm&&(e.block=Mm.gfm,this.options.breaks?e.inline=ru.breaks:e.inline=ru.gfm),this.tokenizer.rules=e}static get rules(){return{block:Mm,inline:ru}}static lex(t,e){return new L_(e).lex(t)}static lexInline(t,e){return new L_(e).inlineTokens(t)}lex(t){t=t.replace(Ni.carriageReturn,` +`),this.blockTokens(t,this.tokens);for(let e=0;e(r=a.call({lexer:this},t,e))?(t=t.substring(r.raw.length),e.push(r),!0):!1))continue;if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length);let a=e.at(-1);r.raw.length===1&&a!==void 0?a.raw+=` +`:e.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length);let a=e.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=` +`+r.raw,a.text+=` +`+r.text,this.inlineQueue.at(-1).src=a.text):e.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length);let a=e.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=` +`+r.raw,a.text+=` +`+r.raw,this.inlineQueue.at(-1).src=a.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),e.push(r);continue}let s=t;if(this.options.extensions?.startBlock){let a=1/0,o=t.slice(1),l;this.options.extensions.startBlock.forEach(c=>{l=c.call({lexer:this},o),typeof l=="number"&&l>=0&&(a=Math.min(a,l))}),a<1/0&&a>=0&&(s=t.substring(0,a+1))}if(this.state.top&&(r=this.tokenizer.paragraph(s))){let a=e.at(-1);i&&a?.type==="paragraph"?(a.raw+=` +`+r.raw,a.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):e.push(r),i=s.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length);let a=e.at(-1);a?.type==="text"?(a.raw+=` +`+r.raw,a.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):e.push(r);continue}if(t){let a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i=t,r=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)o.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,r.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(r=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let s=!1,a="";for(;t;){s||(a=""),s=!1;let o;if(this.options.extensions?.inline?.some(c=>(o=c.call({lexer:this},t,e))?(t=t.substring(o.raw.length),e.push(o),!0):!1))continue;if(o=this.tokenizer.escape(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.tag(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.link(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(o.raw.length);let c=e.at(-1);o.type==="text"&&c?.type==="text"?(c.raw+=o.raw,c.text+=o.text):e.push(o);continue}if(o=this.tokenizer.emStrong(t,i,a)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.codespan(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.br(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.del(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.autolink(t)){t=t.substring(o.raw.length),e.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(t))){t=t.substring(o.raw.length),e.push(o);continue}let l=t;if(this.options.extensions?.startInline){let c=1/0,u=t.slice(1),d;this.options.extensions.startInline.forEach(h=>{d=h.call({lexer:this},u),typeof d=="number"&&d>=0&&(c=Math.min(c,d))}),c<1/0&&c>=0&&(l=t.substring(0,c+1))}if(o=this.tokenizer.inlineText(l)){t=t.substring(o.raw.length),o.raw.slice(-1)!=="_"&&(a=o.raw.slice(-1)),s=!0;let c=e.at(-1);c?.type==="text"?(c.raw+=o.raw,c.text+=o.text):e.push(o);continue}if(t){let c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return e}},Js=class{options;parser;constructor(n){this.options=n||za}space(n){return""}code({text:n,lang:t,escaped:e}){let i=(t||"").match(Ni.notSpaceStart)?.[0],r=n.replace(Ni.endingNewline,"")+` +`;return i?'
    '+(e?r:Tr(r,!0))+`
    +`:"
    "+(e?r:Tr(r,!0))+`
    +`}blockquote({tokens:n}){return`
    +${this.parser.parse(n)}
    +`}html({text:n}){return n}heading({tokens:n,depth:t}){return`${this.parser.parseInline(n)} +`}hr(n){return`
    +`}list(n){let t=n.ordered,e=n.start,i="";for(let a=0;a +`+i+" +`}listitem(n){let t="";if(n.task){let e=this.checkbox({checked:!!n.checked});n.loose?n.tokens[0]?.type==="paragraph"?(n.tokens[0].text=e+" "+n.tokens[0].text,n.tokens[0].tokens&&n.tokens[0].tokens.length>0&&n.tokens[0].tokens[0].type==="text"&&(n.tokens[0].tokens[0].text=e+" "+Tr(n.tokens[0].tokens[0].text),n.tokens[0].tokens[0].escaped=!0)):n.tokens.unshift({type:"text",raw:e+" ",text:e+" ",escaped:!0}):t+=e+" "}return t+=this.parser.parse(n.tokens,!!n.loose),`
  • ${t}
  • +`}checkbox({checked:n}){return"'}paragraph({tokens:n}){return`

    ${this.parser.parseInline(n)}

    +`}table(n){let t="",e="";for(let r=0;r${i}`),` + +`+t+` +`+i+`
    +`}tablerow({text:n}){return` +${n} +`}tablecell(n){let t=this.parser.parseInline(n.tokens),e=n.header?"th":"td";return(n.align?`<${e} align="${n.align}">`:`<${e}>`)+t+` +`}strong({tokens:n}){return`${this.parser.parseInline(n)}`}em({tokens:n}){return`${this.parser.parseInline(n)}`}codespan({text:n}){return`${Tr(n,!0)}`}br(n){return"
    "}del({tokens:n}){return`${this.parser.parseInline(n)}`}link({href:n,title:t,tokens:e}){let i=this.parser.parseInline(e),r=tM(n);if(r===null)return i;n=r;let s='
    ",s}image({href:n,title:t,text:e,tokens:i}){i&&(e=this.parser.parseInline(i,this.parser.textRenderer));let r=tM(n);if(r===null)return Tr(e);n=r;let s=`${e}{let a=r[s].flat(1/0);e=e.concat(this.walkTokens(a,t))}):r.tokens&&(e=e.concat(this.walkTokens(r.tokens,t)))}}return e}use(...n){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return n.forEach(e=>{let i=H({},e);if(i.async=this.defaults.async||i.async||!1,e.extensions&&(e.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let s=t.renderers[r.name];s?t.renderers[r.name]=function(...a){let o=r.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[r.level];s?s.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level==="block"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level==="inline"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),e.renderer){let r=this.defaults.renderer||new Js(this.defaults);for(let s in e.renderer){if(!(s in r))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,o=e.renderer[a],l=r[a];r[a]=(...c)=>{let u=o.apply(r,c);return u===!1&&(u=l.apply(r,c)),u||""}}i.renderer=r}if(e.tokenizer){let r=this.defaults.tokenizer||new Am(this.defaults);for(let s in e.tokenizer){if(!(s in r))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,o=e.tokenizer[a],l=r[a];r[a]=(...c)=>{let u=o.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}i.tokenizer=r}if(e.hooks){let r=this.defaults.hooks||new Tm;for(let s in e.hooks){if(!(s in r))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let a=s,o=e.hooks[a],l=r[a];Tm.passThroughHooks.has(s)?r[a]=c=>{if(this.defaults.async)return Promise.resolve(o.call(r,c)).then(d=>l.call(r,d));let u=o.call(r,c);return l.call(r,u)}:r[a]=(...c)=>{let u=o.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}i.hooks=r}if(e.walkTokens){let r=this.defaults.walkTokens,s=e.walkTokens;i.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),r&&(o=o.concat(r.call(this,a))),o}}this.defaults=H(H({},this.defaults),i)}),this}setOptions(n){return this.defaults=H(H({},this.defaults),n),this}lexer(n,t){return os.lex(n,t??this.defaults)}parser(n,t){return ls.parse(n,t??this.defaults)}parseMarkdown(n){return(e,i)=>{let r=H({},i),s=H(H({},this.defaults),r),a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&r.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));s.hooks&&(s.hooks.options=s,s.hooks.block=n);let o=s.hooks?s.hooks.provideLexer():n?os.lex:os.lexInline,l=s.hooks?s.hooks.provideParser():n?ls.parse:ls.parseInline;if(s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(e):e).then(c=>o(c,s)).then(c=>s.hooks?s.hooks.processAllTokens(c):c).then(c=>s.walkTokens?Promise.all(this.walkTokens(c,s.walkTokens)).then(()=>c):c).then(c=>l(c,s)).then(c=>s.hooks?s.hooks.postprocess(c):c).catch(a);try{s.hooks&&(e=s.hooks.preprocess(e));let c=o(e,s);s.hooks&&(c=s.hooks.processAllTokens(c)),s.walkTokens&&this.walkTokens(c,s.walkTokens);let u=l(c,s);return s.hooks&&(u=s.hooks.postprocess(u)),u}catch(c){return a(c)}}}onError(n,t){return e=>{if(e.message+=` +Please report this to https://github.com/markedjs/marked.`,n){let i="

    An error occurred:

    "+Tr(e.message+"",!0)+"
    ";return t?Promise.resolve(i):i}if(t)return Promise.reject(e);throw e}}},Ba=new cU;function dt(n,t){return Ba.parse(n,t)}dt.options=dt.setOptions=function(n){return Ba.setOptions(n),dt.defaults=Ba.defaults,rM(dt.defaults),dt};dt.getDefaults=N_;dt.defaults=za;dt.use=function(...n){return Ba.use(...n),dt.defaults=Ba.defaults,rM(dt.defaults),dt};dt.walkTokens=function(n,t){return Ba.walkTokens(n,t)};dt.parseInline=Ba.parseInline;dt.Parser=ls;dt.parser=ls.parse;dt.Renderer=Js;dt.TextRenderer=H_;dt.Lexer=os;dt.lexer=os.lex;dt.Tokenizer=Am;dt.Hooks=Tm;dt.parse=dt;var XZ=dt.options,JZ=dt.setOptions,eX=dt.use,tX=dt.walkTokens,iX=dt.parseInline;var nX=ls.parse,rX=os.lex;var uU=["*"],dU="Copy",hU="Copied",mU=(()=>{class n{constructor(){this._buttonClick$=new ue,this.copied$=this._buttonClick$.pipe(Mt(()=>Kt(ge(!0),oh(3e3).pipe(mw(!1)))),mr(),Ps(1)),this.copiedText$=this.copied$.pipe(Bt(!1),Ne(e=>e?hU:dU))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=le({type:n,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,r){i&1&&(P(0,"button",0),En(1,"async"),X("click",function(){return r.onCopyToClipboardClick()}),B(2),En(3,"async"),U()),i&2&&(ye("copied",Kn(1,3,r.copied$)),$(2),He(Kn(3,5,r.copiedText$)))},dependencies:[No],encapsulation:2,changeDetection:0})}}return n})(),fU=new J("CLIPBOARD_OPTIONS");var j_=function(n){return n.CommandLine="command-line",n.LineHighlight="line-highlight",n.LineNumbers="line-numbers",n}(j_||{}),pM=new J("MARKED_EXTENSIONS"),pU=new J("MARKED_OPTIONS"),gU=new J("MERMAID_OPTIONS"),_U="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",bU="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",vU="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",yU="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",CU="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",wU="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",gM=new J("SECURITY_CONTEXT");var _M=(()=>{class n{get options(){return this._options}set options(e){this._options=H(H({},this.DEFAULT_MARKED_OPTIONS),e)}get renderer(){return this.options.renderer}set renderer(e){this.options.renderer=e}constructor(e,i,r,s,a,o,l,c){this.clipboardOptions=e,this.extensions=i,this.mermaidOptions=s,this.platform=a,this.securityContext=o,this.http=l,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new Js},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new ue,this.reload$=this._reload$.asObservable(),this.options=r}parse(e,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:r,inline:s,emoji:a,mermaid:o,disableSanitizer:l}=i,c=H(H({},this.options),i.markedOptions),u=c.renderer||this.renderer||new Js;this.extensions&&(this.renderer=this.extendsRendererForExtensions(u)),o&&(this.renderer=this.extendsRendererForMermaid(u));let d=this.trimIndentation(e),h=r?this.decodeHtml(d):d,m=a?this.parseEmoji(h):h,f=this.parseMarked(m,c,s);return(l?f:this.sanitizer.sanitize(this.securityContext,f))||""}render(e,i=this.DEFAULT_RENDER_OPTIONS,r){let{clipboard:s,clipboardOptions:a,katex:o,katexOptions:l,mermaid:c,mermaidOptions:u}=i;o&&this.renderKatex(e,H(H({},this.DEFAULT_KATEX_OPTIONS),l)),c&&this.renderMermaid(e,H(H(H({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),u)),s&&this.renderClipboard(e,r,H(H(H({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),a)),this.highlight(e)}reload(){this._reload$.next()}getSource(e){if(!this.http)throw new Error(wU);return this.http.get(e,{responseType:"text"}).pipe(Ne(i=>this.handleExtension(e,i)))}highlight(e){if(!es(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;e||(e=document);let i=e.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,r=>r.classList.add("language-none")),Prism.highlightAllUnder(e)}decodeHtml(e){if(!es(this.platform))return e;let i=document.createElement("textarea");return i.innerHTML=e,i.value}extendsRendererForExtensions(e){let i=e;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&dt.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),e}extendsRendererForMermaid(e){let i=e;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return e;let r=e.code;return e.code=s=>s.lang==="mermaid"?`
    ${s.text}
    `:r(s),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,e}handleExtension(e,i){let r=e.lastIndexOf("://"),s=r>-1?e.substring(r+4):e,a=s.lastIndexOf("/"),o=a>-1?s.substring(a+1).split("?")[0]:"",l=o.lastIndexOf("."),c=l>-1?o.substring(l+1):"";return c&&c!=="md"?"```"+c+` +`+i+"\n```":i}parseMarked(e,i,r=!1){if(i.renderer){let s=H({},i.renderer);delete s.\u0275NgxMarkdownRendererExtendedForExtensions,delete s.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,dt.use({renderer:s})}return r?dt.parseInline(e,i):dt.parse(e,i)}parseEmoji(e){if(!es(this.platform))return e;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(_U);return joypixels.shortnameToUnicode(e)}renderKatex(e,i){if(es(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(bU);renderMathInElement(e,i)}}renderClipboard(e,i,r){if(!es(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(yU);if(!i)throw new Error(CU);let{buttonComponent:s,buttonTemplate:a}=r,o=e.querySelectorAll("pre");for(let l=0;ld.classList.add("hover"),u.onmouseleave=()=>d.classList.remove("hover");let h;if(s){let f=i.createComponent(s);h=f.hostView,f.changeDetectorRef.markForCheck()}else if(a)h=i.createEmbeddedView(a);else{let f=i.createComponent(mU);h=f.hostView,f.changeDetectorRef.markForCheck()}let m;h.rootNodes.forEach(f=>{d.appendChild(f),m=new ClipboardJS(f,{text:()=>c.innerText})}),h.onDestroy(()=>m.destroy())}}renderMermaid(e,i=this.DEFAULT_MERMAID_OPTIONS){if(!es(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(vU);let r=e.querySelectorAll(".mermaid");r.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:r}))}trimIndentation(e){if(!e)return"";let i;return e.split(` +`).map(r=>{let s=i;return r.length>0&&(s=isNaN(s)?r.search(/\S|$/):Math.min(r.search(/\S|$/),s)),isNaN(i)&&(i=s),s?r.substring(s):r}).join(` +`)}static{this.\u0275fac=function(i){return new(i||n)(Re(fU,8),Re(pM,8),Re(pU,8),Re(gU,8),Re(ch),Re(gM),Re(yr,8),Re(Hs))}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})(),bM=(()=>{class n{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(e){this._disableSanitizer=this.coerceBooleanProperty(e)}get inline(){return this._inline}set inline(e){this._inline=this.coerceBooleanProperty(e)}get clipboard(){return this._clipboard}set clipboard(e){this._clipboard=this.coerceBooleanProperty(e)}get emoji(){return this._emoji}set emoji(e){this._emoji=this.coerceBooleanProperty(e)}get katex(){return this._katex}set katex(e){this._katex=this.coerceBooleanProperty(e)}get mermaid(){return this._mermaid}set mermaid(e){this._mermaid=this.coerceBooleanProperty(e)}get lineHighlight(){return this._lineHighlight}set lineHighlight(e){this._lineHighlight=this.coerceBooleanProperty(e)}get lineNumbers(){return this._lineNumbers}set lineNumbers(e){this._lineNumbers=this.coerceBooleanProperty(e)}get commandLine(){return this._commandLine}set commandLine(e){this._commandLine=this.coerceBooleanProperty(e)}constructor(e,i,r){this.element=e,this.markdownService=i,this.viewContainerRef=r,this.error=new ce,this.load=new ce,this.ready=new ce,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new ue}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(Ye(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(e,i=!1){return Lt(this,null,function*(){let r={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},s={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},a=yield this.markdownService.parse(e,r);this.element.nativeElement.innerHTML=a,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,s,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(e){return e!=null&&`${String(e)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:e=>{this.render(e).then(()=>{this.load.emit(e)})},error:e=>this.error.emit(e)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,j_.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,j_.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(e,i){let r=e.querySelectorAll("pre");for(let s=0;s{let o=i[a];if(o){let l=this.toLispCase(a);r.item(s).setAttribute(l,o.toString())}})}toLispCase(e){let i=e.match(/([A-Z])/g);if(!i)return e;let r=e.toString();for(let s=0,a=i.length;s{let i=SU(e)?Le(H({},e),{multi:!0}):{provide:pM,useValue:e,multi:!0};return[...t,i]},[])}var vM=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[xU(e)]}}static forChild(){return{ngModule:n}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=he({type:n})}static{this.\u0275inj=de({imports:[Jr]})}}return n})();var TU=n=>({clickable:n});function EU(n,t){if(n&1&&(P(0,"span",9),B(1),U()),n&2){let e=Y().$implicit;$(),He(e.details)}}function AU(n,t){if(n&1&&(P(0,"p"),B(1),U()),n&2){let e=Y().$implicit;$(),He(e.text)}}function IU(n,t){if(n&1&&te(0,"markdown",10),n&2){let e=Y().$implicit;j("data",e.text)}}function DU(n,t){if(n&1&&(P(0,"li",12),B(1),U()),n&2){let e=t.$implicit;$(),je(" ",e," ")}}function RU(n,t){if(n&1&&(P(0,"ol"),oe(1,DU,2,1,"li",11),U()),n&2){let e=Y().$implicit;$(),j("ngForOf",e.sliceInfo)}}function LU(n,t){if(n&1){let e=ze();P(0,"li",3),X("click",function(){let r=re(e).$implicit,s=Y(2);return se(s.select.emit(r))}),P(1,"span",4),B(2),U(),te(3,"span",5)(4,"br"),oe(5,EU,2,1,"span",6)(6,AU,2,1,"p",7)(7,IU,1,1,"markdown",8)(8,RU,2,1,"ol",7),U()}if(n&2){let e=t.$implicit,i=Y(2);ph("issue ",e.severity,""),$(2),He(e.severity),$(),j("innerHtml",i.getTemplateHeaderLine(e),wc),$(2),j("ngIf",e.details),$(),j("ngIf",!e.markdown),$(),j("ngIf",e.markdown),$(),j("ngIf",e.sliceInfo.length)}}function OU(n,t){if(n&1&&(P(0,"ul",1),oe(1,LU,9,9,"li",2),U()),n&2){let e=Y();j("ngClass",Oo(2,TU,e.reactsToClick)),$(),j("ngForOf",e.result.issues)}}var yM=["fatal","error","warning","information"],dl=(()=>{class n{set operationResult(e){this.result=e,this.result&&this.result.issues.length&&this.result.issues.sort(n.sortIssues)}constructor(e){this.sanitized=e,this.select=new ce,this.reactsToClick=!1}ngOnInit(){this.reactsToClick=this.select.observed}static sortIssues(e,i){if(e.markdown)return-1;if(i.markdown)return 1;let r=yM.indexOf(e.severity)-yM.indexOf(i.severity);return r!==0?r:(e.line??0)-(i.line??0)}getTemplateHeaderLine(e){let i="";e.code&&(i+=` [${e.code}]`),i+=": ";let r=[];return e.line&&r.push(`line ${e.line}`),e.col&&r.push(`column ${e.col}`),e.expression&&r.push(`in ${e.expression}`),r.length&&(i+=r.join(", ")+":"),this.sanitized.bypassSecurityTrustHtml(i)}static{this.\u0275fac=function(i){return new(i||n)(Ae(Hs))}}static{this.\u0275cmp=le({type:n,selectors:[["app-operation-result"]],inputs:{operationResult:"operationResult"},outputs:{select:"select"},standalone:!1,decls:1,vars:1,consts:[[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"class","click",4,"ngFor","ngForOf"],[3,"click"],[1,"severity"],[3,"innerHtml"],["class","details",4,"ngIf"],[4,"ngIf"],[3,"data",4,"ngIf"],[1,"details"],[3,"data"],["class","slice",4,"ngFor","ngForOf"],[1,"slice"]],template:function(i,r){i&1&&oe(0,OU,2,4,"ul",0),i&2&&j("ngIf",r.result)},dependencies:[An,vr,di,bM],styles:[".card-maps[_ngcontent-%COMP%]{margin-bottom:10px}.app-ace-editor[_ngcontent-%COMP%]{border:2px solid #f8f9fa;box-shadow:0 .5rem 1rem #00000026}ul[_ngcontent-%COMP%]{list-style:none;padding:0}.clickable[_ngcontent-%COMP%] .issue[_ngcontent-%COMP%]{cursor:pointer}.issue[_ngcontent-%COMP%]{border:1px solid #e1e1e1;background:#fbfbfb;border-radius:5px;padding:5px 8px;--color: #000;border-left:4px solid var(--color);margin-bottom:4px}.issue[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:2px 0 0}.issue[_ngcontent-%COMP%] .severity[_ngcontent-%COMP%]{color:var(--color);font-weight:600}.issue.fatal[_ngcontent-%COMP%], .issue.error[_ngcontent-%COMP%]{--color: #d9534f}.issue.warning[_ngcontent-%COMP%]{--color: #f0ad4e}.issue.information[_ngcontent-%COMP%]{--color: #4ca8de}.issue[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{font-weight:700;font-size:large}[_nghost-%COMP%] .issue .code{font-size:.9em;color:#636363}[_nghost-%COMP%] .issue>span>code{background:#e1e1e1;border-radius:4px;padding:2px 4px;font-family:courier,monospace} .ace-highlight-fatal{position:absolute;background:#c30;opacity:.4} .ace-highlight-error{position:absolute;background:#f96;opacity:.4} .ace-highlight-warning{position:absolute;background:#fc0;opacity:.4} .ace-highlight-information{position:absolute;background:#9c3;opacity:.4}"]})}}return n})();function NU(n,t){n&1&&te(0,"mat-spinner")}function FU(n,t){if(n&1&&te(0,"app-operation-result",4),n&2){let e=Y();j("operationResult",e.operationResult)}}var CM=4,xM=(()=>{class n{constructor(e){this.data=e,this.capabilityStatement=null,this.operationResult=null,this.loading=!0,this.client=e.getFhirClient()}ngAfterViewInit(){this.client.capabilityStatement().then(e=>{this.loading=!1,this.operationResult=null,this.editor=wM.default.edit("code"),this.editor.setReadOnly(!0),this.editor.setValue(JSON.stringify(e,null,CM),-1),this.editor.getSession().setMode("ace/mode/json"),this.editor.setTheme("ace/theme/textmate"),this.editor.commands.removeCommand("find"),this.editor.setOptions({maxLines:1e4,tabSize:CM,wrap:!0,useWorker:!1}),this.editor.resize(!0)}).catch(e=>{console.error(e),this.loading=!1,this.capabilityStatement=null,this.editor&&(this.editor.destroy(),this.editor.container.remove()),this.editor=null,e.response?.data?this.operationResult=Ut.fromOperationOutcome(e.response.data):this.operationResult=Ut.fromMatchboxError(e.message)})}static{this.\u0275fac=function(i){return new(i||n)(Ae(Dn))}}static{this.\u0275cmp=le({type:n,selectors:[["app-capability-statement"]],standalone:!1,decls:10,vars:3,consts:[["id","capability-statement",1,"white-block"],[4,"ngIf"],["id","code"],[3,"operationResult",4,"ngIf"],[3,"operationResult"]],template:function(i,r){i&1&&(P(0,"div",0)(1,"h2"),B(2,"CapabilityStatement"),U(),P(3,"p"),B(4," CapabilityStatement of the server: "),P(5,"code"),B(6),U()(),oe(7,NU,1,0,"mat-spinner",1),te(8,"div",2),oe(9,FU,1,1,"app-operation-result",3),U()),i&2&&($(6),He(r.client.baseUrl),$(),j("ngIf",r.loading),$(2),j("ngIf",r.operationResult))},dependencies:[di,Xs,dl],encapsulation:2})}}return n})();var PU=["*"];var UU=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],$U=["[mat-card-avatar], [matCardAvatar]",`mat-card-title, mat-card-subtitle, + [mat-card-title], [mat-card-subtitle], + [matCardTitle], [matCardSubtitle]`,"*"],VU=new J("MAT_CARD_CONFIG"),hl=(()=>{class n{appearance;constructor(){let e=R(VU,{optional:!0});this.appearance=e?.appearance||"raised"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){i&2&&ye("mat-mdc-card-outlined",r.appearance==="outlined")("mdc-card--outlined",r.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:PU,decls:1,vars:0,template:function(i,r){i&1&&(Qe(),Fe(0))},styles:[`.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end} +`],encapsulation:2,changeDetection:0})}return n})(),Rm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-mdc-card-title"]})}return n})();var ml=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"]})}return n})(),SM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-mdc-card-subtitle"]})}return n})(),Lm=(()=>{class n{align="start";static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-actions"]],hostAttrs:[1,"mat-mdc-card-actions","mdc-card__actions"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mat-mdc-card-actions-align-end",r.align==="end")},inputs:{align:"align"},exportAs:["matCardActions"]})}return n})(),Om=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],ngContentSelectors:$U,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){i&1&&(Qe(UU),Fe(0),P(1,"div",0),Fe(2,1),U(),Fe(3,2))},encapsulation:2,changeDetection:0})}return n})(),kM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-footer"]],hostAttrs:[1,"mat-mdc-card-footer"]})}return n})();var q_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var xi=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,r){},styles:[`.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}} +`],encapsulation:2,changeDetection:0})}return n})();var Zn=function(n){return n[n.NORMAL=0]="NORMAL",n[n.NEGATED=1]="NEGATED",n[n.INVERTED=2]="INVERTED",n}(Zn||{}),Fm,Ha;function Pm(){if(Ha==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return Ha=!1,Ha;if("scrollBehavior"in document.documentElement.style)Ha=!0;else{let n=Element.prototype.scrollTo;n?Ha=!/\{\s*\[native code\]\s*\}/.test(n.toString()):Ha=!1}}return Ha}function fl(){if(typeof document!="object"||!document)return Zn.NORMAL;if(Fm==null){let n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";let e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),Fm=Zn.NORMAL,n.scrollLeft===0&&(n.scrollLeft=1,Fm=n.scrollLeft===0?Zn.NEGATED:Zn.INVERTED),n.remove()}return Fm}function G_(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}var pl,MM=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function K_(){if(pl)return pl;if(typeof document!="object"||!document)return pl=new Set(MM),pl;let n=document.createElement("input");return pl=new Set(MM.filter(t=>(n.setAttribute("type",t),n.type===t))),pl}function fn(n){return n!=null&&`${n}`!="false"}function qt(n){return n==null?"":typeof n=="string"?n:`${n}px`}var Ln=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(Ln||{}),Y_=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Ln.HIDDEN;constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r}fadeOut(){this._renderer.fadeOutRipple(this)}},TM=Ys({passive:!0,capture:!0}),Q_=class{_events=new Map;addHandler(t,e,i,r){let s=this._events.get(e);if(s){let a=s.get(i);a?a.add(r):s.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,TM)})}removeHandler(t,e,i){let r=this._events.get(t);if(!r)return;let s=r.get(e);s&&(s.delete(i),s.size===0&&r.delete(e),r.size===0&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,TM)))}_delegateEventHandler=t=>{let e=Li(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(s=>s.handleEvent(t))})}},lu={enterDuration:225,exitDuration:150},BU=800,EM=Ys({passive:!0,capture:!0}),AM=["mousedown","touchstart"],IM=["mouseup","mouseleave","touchend","touchcancel"],zU=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[`.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none} +`],encapsulation:2,changeDetection:0})}return n})(),cu=class n{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new Q_;constructor(t,e,i,r,s){this._target=t,this._ngZone=e,this._platform=r,r.isBrowser&&(this._containerElement=Oi(i)),s&&s.get(pt).load(zU)}fadeInRipple(t,e,i={}){let r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s=H(H({},lu),i.animation);i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);let a=i.radius||HU(t,e,r),o=t-r.left,l=e-r.top,c=s.enterDuration,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=`${o-a}px`,u.style.top=`${l-a}px`,u.style.height=`${a*2}px`,u.style.width=`${a*2}px`,i.color!=null&&(u.style.backgroundColor=i.color),u.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(u);let d=window.getComputedStyle(u),h=d.transitionProperty,m=d.transitionDuration,f=h==="none"||m==="0s"||m==="0s, 0s"||r.width===0&&r.height===0,p=new Y_(this,u,i,f);u.style.transform="scale3d(1, 1, 1)",p.state=Ln.FADING_IN,i.persistent||(this._mostRecentTransientRipple=p);let g=null;return!f&&(c||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let y=()=>{g&&(g.fallbackTimer=null),clearTimeout(k),this._finishRippleTransition(p)},w=()=>this._destroyRipple(p),k=setTimeout(w,c+100);u.addEventListener("transitionend",y),u.addEventListener("transitioncancel",w),g={onTransitionEnd:y,onTransitionCancel:w,fallbackTimer:k}}),this._activeRipples.set(p,g),(f||!c)&&this._finishRippleTransition(p),p}fadeOutRipple(t){if(t.state===Ln.FADING_OUT||t.state===Ln.HIDDEN)return;let e=t.element,i=H(H({},lu),t.config.animation);e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=Ln.FADING_OUT,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){let e=Oi(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,AM.forEach(i=>{n._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){t.type==="mousedown"?this._onMousedown(t):t.type==="touchstart"?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{IM.forEach(e=>{this._triggerElement.addEventListener(e,this,EM)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===Ln.FADING_IN?this._startFadeOutTransition(t):t.state===Ln.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){let e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=Ln.VISIBLE,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){let e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=Ln.HIDDEN,e!==null&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel),e.fallbackTimer!==null&&clearTimeout(e.fallbackTimer)),t.element.remove()}_onMousedown(t){let e=nl(t),i=this._lastTouchStartEvent&&Date.now(){let e=t.state===Ln.VISIBLE||t.config.terminateOnPointerUp&&t.state===Ln.FADING_IN;!t.config.persistent&&e&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let t=this._triggerElement;t&&(AM.forEach(e=>n._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&(IM.forEach(e=>t.removeEventListener(e,this,EM)),this._pointerUpEventsRegistered=!1))}};function HU(n,t,e){let i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),r=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+r*r)}var Um=new J("mat-ripple-global-options"),pn=(()=>{class n{_elementRef=R(Te);_animationMode=R(ot,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let e=R(De),i=R(st),r=R(Um,{optional:!0}),s=R(ut);this._globalOptions=r||{},this._rippleRenderer=new cu(this,e,this._elementRef,i,s)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:H(H(H({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return typeof e=="number"?this._rippleRenderer.fadeInRipple(e,i,H(H({},this.rippleConfig),r)):this._rippleRenderer.fadeInRipple(0,0,H(H({},this.rippleConfig),e))}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mat-ripple-unbounded",r.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return n})();var gl=class{_attachedHost;attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;t!=null&&(this._attachedHost=null,t.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},ea=class extends gl{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(t,e,i,r,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.projectableNodes=s}},Er=class extends gl{templateRef;viewContainerRef;context;injector;constructor(t,e,i,r){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}},$m=class extends gl{element;constructor(t){super(),this.element=t instanceof Te?t.nativeElement:t}},uu=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(t){if(t instanceof ea)return this._attachedPortal=t,this.attachComponentPortal(t);if(t instanceof Er)return this._attachedPortal=t,this.attachTemplatePortal(t);if(this.attachDomPortal&&t instanceof $m)return this._attachedPortal=t,this.attachDomPortal(t)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var du=class extends uu{outletElement;_appRef;_defaultInjector;_document;constructor(t,e,i,r,s){super(),this.outletElement=t,this._appRef=i,this._defaultInjector=r,this._document=s}attachComponentPortal(t){let e;if(t.viewContainerRef){let i=t.injector||t.viewContainerRef.injector,r=i.get(cg,null,{optional:!0})||void 0;e=t.viewContainerRef.createComponent(t.component,{index:t.viewContainerRef.length,injector:i,ngModuleRef:r,projectableNodes:t.projectableNodes||void 0}),this.setDisposeFn(()=>e.destroy())}else{let i=this._appRef,r=t.injector||this._defaultInjector||ut.NULL,s=r.get(cn,i.injector);e=_h(t.component,{elementInjector:r,environmentInjector:s,projectableNodes:t.projectableNodes||void 0}),i.attachView(e.hostView),this.setDisposeFn(()=>{i.viewCount>0&&i.detachView(e.hostView),e.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=t,e}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);r!==-1&&e.remove(r)}),this._attachedPortal=t,i}attachDomPortal=t=>{let e=t.element;e.parentNode;let i=this._document.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=t,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}};var Z_=(()=>{class n extends Er{constructor(){let e=R(Mn),i=R(ui);super(e,i)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[Tt]})}return n})();var ja=(()=>{class n extends uu{_moduleRef=R(cg,{optional:!0});_document=R(Ze);_viewContainerRef=R(ui);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}attached=new ce;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);let i=e.viewContainerRef!=null?e.viewContainerRef:this._viewContainerRef,r=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(r.hostView.rootNodes[0]),super.setDisposeFn(()=>r.destroy()),this._attachedPortal=e,this._attachedRef=r,this.attached.emit(r),r}attachTemplatePortal(e){e.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=e=>{let i=e.element;i.parentNode;let r=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(r,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{r.parentNode&&r.parentNode.replaceChild(i,r)})};_getRootNode(){let e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[Tt]})}return n})();var hu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var jU=20,_l=(()=>{class n{_ngZone=R(De);_platform=R(st);_renderer=R(Ri).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new ue;_scrolledCount=0;scrollContainers=new Map;register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){let i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=jU){return this._platform.isBrowser?new dr(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let r=e>0?this._scrolled.pipe(vc(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):ge()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){let r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(it(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(e){let i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_scrollableContainsElement(e,i){let r=Oi(i),s=e.getElementRef().nativeElement;do if(r==s)return!0;while(r=r.parentElement);return!1}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),X_=(()=>{class n{elementRef=R(Te);scrollDispatcher=R(_l);ngZone=R(De);dir=R(ti,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new ue;_renderer=R(Rt);_cleanupScroll;_elementScrolled=new ue;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",e=>this._elementScrolled.next(e))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){let i=this.elementRef.nativeElement,r=this.dir&&this.dir.value=="rtl";e.left==null&&(e.left=r?e.end:e.start),e.right==null&&(e.right=r?e.start:e.end),e.bottom!=null&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),r&&fl()!=Zn.NORMAL?(e.left!=null&&(e.right=i.scrollWidth-i.clientWidth-e.left),fl()==Zn.INVERTED?e.left=e.right:fl()==Zn.NEGATED&&(e.left=e.right?-e.right:e.right)):e.right!=null&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){let i=this.elementRef.nativeElement;Pm()?i.scrollTo(e):(e.top!=null&&(i.scrollTop=e.top),e.left!=null&&(i.scrollLeft=e.left))}measureScrollOffset(e){let i="left",r="right",s=this.elementRef.nativeElement;if(e=="top")return s.scrollTop;if(e=="bottom")return s.scrollHeight-s.clientHeight-s.scrollTop;let a=this.dir&&this.dir.value=="rtl";return e=="start"?e=a?r:i:e=="end"&&(e=a?i:r),a&&fl()==Zn.INVERTED?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:a&&fl()==Zn.NEGATED?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return n})(),WU=20,On=(()=>{class n{_platform=R(st);_listeners;_viewportSize;_change=new ue;_document=R(Ze,{optional:!0});constructor(){let e=R(De),i=R(Ri).createRenderer(null,null);e.runOutsideAngular(()=>{if(this._platform.isBrowser){let r=s=>this._change.next(s);this._listeners=[i.listen("window","resize",r),i.listen("window","orientationchange",r)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(e=>e()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){let e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let e=this._document,i=this._getWindow(),r=e.documentElement,s=r.getBoundingClientRect(),a=-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,o=-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0;return{top:a,left:o}}change(e=WU){return e>0?this._change.pipe(vc(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var gn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})(),mu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Zs,gn,Zs,gn]})}return n})();var DM=Pm(),Vm=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(t,e){this._viewportRuler=t,this._document=e}attach(){}enable(){if(this._canBeEnabled()){let t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=qt(-this._previousScrollPosition.left),t.style.top=qt(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let t=this._document.documentElement,e=this._document.body,i=t.style,r=e.style,s=i.scrollBehavior||"",a=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),DM&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),DM&&(i.scrollBehavior=s,r.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let e=this._document.documentElement,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}};var Bm=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(this._scrollSubscription)return;let t=this._scrollDispatcher.scrolled(0).pipe(it(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{let e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},fu=class{enable(){}disable(){}attach(){}};function J_(n,t){return t.some(e=>{let i=n.bottome.bottom,s=n.righte.right;return i||r||s||a})}function RM(n,t){return t.some(e=>{let i=n.tope.bottom,s=n.lefte.right;return i||r||s||a})}var zm=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(!this._scrollSubscription){let t=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(t).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();J_(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},UM=(()=>{class n{_scrollDispatcher=R(_l);_viewportRuler=R(On);_ngZone=R(De);_document=R(Ze);constructor(){}noop=()=>new fu;close=e=>new Bm(this._scrollDispatcher,this._ngZone,this._viewportRuler,e);block=()=>new Vm(this._viewportRuler,this._document);reposition=e=>new zm(this._scrollDispatcher,this._viewportRuler,this._ngZone,e);static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),ta=class{positionStrategy;scrollStrategy=new fu;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(t){if(t){let e=Object.keys(t);for(let i of e)t[i]!==void 0&&(this[i]=t[i])}}};var Hm=class{connectionPair;scrollableViewProperties;constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}};var $M=(()=>{class n{_attachedOverlays=[];_document=R(Ze);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){let i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),VM=(()=>{class n extends $M{_ngZone=R(De);_renderer=R(Ri).createRenderer(null,null);_cleanupKeydown;add(e){super.add(e),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=e=>{let i=this._attachedOverlays;for(let r=i.length-1;r>-1;r--)if(i[r]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[r]._keydownEvents.next(e));break}};static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),BM=(()=>{class n extends $M{_platform=R(st);_ngZone=R(De);_renderer=R(Ri).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;_cleanups;add(e){if(super.add(e),!this._isAttached){let i=this._document.body,r={capture:!0};this._cleanups=this._ngZone.runOutsideAngular(()=>[Ot(this._renderer,i,"pointerdown",this._pointerDownListener,r),Ot(this._renderer,i,"click",this._clickListener,r),Ot(this._renderer,i,"auxclick",this._clickListener,r),Ot(this._renderer,i,"contextmenu",this._clickListener,r)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(e=>e()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=e=>{this._pointerDownEventTarget=Li(e)};_clickListener=e=>{let i=Li(e),r=e.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let s=this._attachedOverlays.slice();for(let a=s.length-1;a>-1;a--){let o=s[a];if(o._outsidePointerEvents.observers.length<1||!o.hasAttached())continue;if(LM(o.overlayElement,i)||LM(o.overlayElement,r))break;let l=o._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>l.next(e)):l.next(e)}};static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function LM(n,t){let e=typeof ShadowRoot<"u"&&ShadowRoot,i=t;for(;i;){if(i===n)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var zM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[`.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll} +`],encapsulation:2,changeDetection:0})}return n})(),HM=(()=>{class n{_platform=R(st);_containerElement;_document=R(Ze);_styleLoader=R(pt);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e="cdk-overlay-container";if(this._platform.isBrowser||G_()){let r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;s{let t=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(t,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),t.style.pointerEvents="none",t.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},jm=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new ue;_attachments=new ue;_detachments=new ue;_positionStrategy;_scrollStrategy;_locationChanges=St.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new ue;_outsidePointerEvents=new ue;_renders=new ue;_afterRenderRef;_afterNextRenderRef;constructor(t,e,i,r,s,a,o,l,c,u=!1,d,h){this._portalOutlet=t,this._host=e,this._pane=i,this._config=r,this._ngZone=s,this._keyboardDispatcher=a,this._document=o,this._location=l,this._outsideClickDispatcher=c,this._animationsDisabled=u,this._injector=d,this._renderer=h,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy,this._afterRenderRef=Yn(()=>uh(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Yt(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof e?.onDestroy=="function"&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){let t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,t&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config=H(H({},this._config),t),this._updateElementSize()}setDirection(t){this._config=Le(H({},this._config),{direction:t}),this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){let t=this._config.direction;return t?typeof t=="string"?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let t=this._pane.style;t.width=qt(this._config.width),t.height=qt(this._config.height),t.minWidth=qt(this._config.minWidth),t.minHeight=qt(this._config.minHeight),t.maxWidth=qt(this._config.maxWidth),t.maxHeight=qt(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){let t="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new eb(this._document,this._renderer,this._ngZone,e=>{this._backdropClick.next(e)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(t))}):this._backdropRef.element.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(t,e,i){let r=sl(e||[]).filter(s=>!!s);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let t=this._renders.pipe(Ye(Kt(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){let t=this._scrollStrategy;t?.disable(),t?.detach?.()}},OM="cdk-overlay-connected-position-bounding-box",GU=/([A-Za-z%]+)$/,pu=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new ue;_resizeSubscription=St.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(t,e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s,this.setOrigin(t)}attach(t){this._overlayRef&&this._overlayRef,this._validatePositions(),t.hostElement.classList.add(OM),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[],a;for(let o of this._preferredPositions){let l=this._getOriginPoint(t,r,o),c=this._getOverlayPoint(l,e,o),u=this._getOverlayFit(c,e,i,o);if(u.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(o,l);return}if(this._canFitWithFlexibleDimensions(u,c,i)){s.push({position:o,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,o)});continue}(!a||a.overlayFit.visibleAreal&&(l=u,o=c)}this._isPushed=!1,this._applyPosition(o.position,o.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(a.position,a.originPoint);return}this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Wa(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(OM),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,t.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r;if(i.originX=="center")r=t.left+t.width/2;else{let a=this._isRtl()?t.right:t.left,o=this._isRtl()?t.left:t.right;r=i.originX=="start"?a:o}e.left<0&&(r-=e.left);let s;return i.originY=="center"?s=t.top+t.height/2:s=i.originY=="top"?t.top:t.bottom,e.top<0&&(s-=e.top),{x:r,y:s}}_getOverlayPoint(t,e,i){let r;i.overlayX=="center"?r=-e.width/2:i.overlayX==="start"?r=this._isRtl()?-e.width:0:r=this._isRtl()?0:-e.width;let s;return i.overlayY=="center"?s=-e.height/2:s=i.overlayY=="top"?0:-e.height,{x:t.x+r,y:t.y+s}}_getOverlayFit(t,e,i,r){let s=FM(e),{x:a,y:o}=t,l=this._getOffset(r,"x"),c=this._getOffset(r,"y");l&&(a+=l),c&&(o+=c);let u=0-a,d=a+s.width-i.width,h=0-o,m=o+s.height-i.height,f=this._subtractOverflows(s.width,u,d),p=this._subtractOverflows(s.height,h,m),g=f*p;return{visibleArea:g,isCompletelyWithinViewport:s.width*s.height===g,fitsInViewportVertically:p===s.height,fitsInViewportHorizontally:f==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){let r=i.bottom-e.y,s=i.right-e.x,a=NM(this._overlayRef.getConfig().minHeight),o=NM(this._overlayRef.getConfig().minWidth),l=t.fitsInViewportVertically||a!=null&&a<=r,c=t.fitsInViewportHorizontally||o!=null&&o<=s;return l&&c}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};let r=FM(e),s=this._viewportRect,a=Math.max(t.x+r.width-s.width,0),o=Math.max(t.y+r.height-s.height,0),l=Math.max(s.top-i.top-t.y,0),c=Math.max(s.left-i.left-t.x,0),u=0,d=0;return r.width<=s.width?u=c||-a:u=t.xf&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-f/2)}let l=e.overlayX==="start"&&!r||e.overlayX==="end"&&r,c=e.overlayX==="end"&&!r||e.overlayX==="start"&&r,u,d,h;if(c)h=i.width-t.x+this._viewportMargin*2,u=t.x-this._viewportMargin;else if(l)d=t.x,u=i.right-t.x;else{let m=Math.min(i.right-t.x+i.left,t.x),f=this._lastBoundingBoxSize.width;u=m*2,d=t.x-m,u>f&&!this._isInitialRender&&!this._growAfterOpen&&(d=t.x-f/2)}return{top:a,left:d,bottom:o,right:h,width:u,height:s}}_setBoundingBoxStyles(t,e){let i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{let s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;r.height=qt(i.height),r.top=qt(i.top),r.bottom=qt(i.bottom),r.width=qt(i.width),r.left=qt(i.left),r.right=qt(i.right),e.overlayX==="center"?r.alignItems="center":r.alignItems=e.overlayX==="end"?"flex-end":"flex-start",e.overlayY==="center"?r.justifyContent="center":r.justifyContent=e.overlayY==="bottom"?"flex-end":"flex-start",s&&(r.maxHeight=qt(s)),a&&(r.maxWidth=qt(a))}this._lastBoundingBoxSize=i,Wa(this._boundingBox.style,r)}_resetBoundingBoxStyles(){Wa(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Wa(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){let i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(r){let u=this._viewportRuler.getViewportScrollPosition();Wa(i,this._getExactOverlayY(e,t,u)),Wa(i,this._getExactOverlayX(e,t,u))}else i.position="static";let o="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(o+=`translateX(${l}px) `),c&&(o+=`translateY(${c}px)`),i.transform=o.trim(),a.maxHeight&&(r?i.maxHeight=qt(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(r?i.maxWidth=qt(a.maxWidth):s&&(i.maxWidth="")),Wa(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);if(this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),t.overlayY==="bottom"){let a=this._document.documentElement.clientHeight;r.bottom=`${a-(s.y+this._overlayRect.height)}px`}else r.top=qt(s.y);return r}_getExactOverlayX(t,e,i){let r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i));let a;if(this._isRtl()?a=t.overlayX==="end"?"left":"right":a=t.overlayX==="end"?"right":"left",a==="right"){let o=this._document.documentElement.clientWidth;r.right=`${o-(s.x+this._overlayRect.width)}px`}else r.left=qt(s.x);return r}_getScrollVisibility(){let t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:RM(t,i),isOriginOutsideView:J_(t,i),isOverlayClipped:RM(e,i),isOverlayOutsideView:J_(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){let t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return e==="x"?t.offsetX==null?this._offsetX:t.offsetX:t.offsetY==null?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&sl(t).forEach(e=>{e!==""&&this._appliedPanelClasses.indexOf(e)===-1&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){let t=this._origin;if(t instanceof Te)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();let e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}};function Wa(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function NM(n){if(typeof n!="number"&&n!=null){let[t,e]=n.split(GU);return!e||e==="px"?parseFloat(t):null}return n||null}function FM(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}function KU(n,t){return n===t?!0:n.isOriginClipped===t.isOriginClipped&&n.isOriginOutsideView===t.isOriginOutsideView&&n.isOverlayClipped===t.isOverlayClipped&&n.isOverlayOutsideView===t.isOverlayOutsideView}var PM="cdk-global-overlay-wrapper",Wm=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(t){let e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(PM),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:a,maxHeight:o}=i,l=(r==="100%"||r==="100vw")&&(!a||a==="100%"||a==="100vw"),c=(s==="100%"||s==="100vh")&&(!o||o==="100%"||o==="100vh"),u=this._xPosition,d=this._xOffset,h=this._overlayRef.getConfig().direction==="rtl",m="",f="",p="";l?p="flex-start":u==="center"?(p="center",h?f=d:m=d):h?u==="left"||u==="end"?(p="flex-end",m=d):(u==="right"||u==="start")&&(p="flex-start",f=d):u==="left"||u==="start"?(p="flex-start",m=d):(u==="right"||u==="end")&&(p="flex-end",f=d),t.position=this._cssPosition,t.marginLeft=l?"0":m,t.marginTop=c?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=l?"0":f,e.justifyContent=p,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(PM),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}},jM=(()=>{class n{_viewportRuler=R(On);_document=R(Ze);_platform=R(st);_overlayContainer=R(HM);constructor(){}global(){return new Wm}flexibleConnectedTo(e){return new pu(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Gt=(()=>{class n{scrollStrategies=R(UM);_overlayContainer=R(HM);_positionBuilder=R(jM);_keyboardDispatcher=R(VM);_injector=R(ut);_ngZone=R(De);_document=R(Ze);_directionality=R(ti);_location=R(Bs);_outsideClickDispatcher=R(BM);_animationsModuleType=R(ot,{optional:!0});_idGenerator=R(At);_renderer=R(Ri).createRenderer(null,null);_appRef;_styleLoader=R(pt);constructor(){}create(e){this._styleLoader.load(zM);let i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),a=new ta(e);return a.direction=a.direction||this._directionality.value,new jm(s,i,r,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(cn),this._renderer)}position(){return this._positionBuilder}_createPaneElement(e){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){let e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Gn)),new du(e,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),YU=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],WM=new J("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition()}}),bl=(()=>{class n{elementRef=R(Te);constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return n})(),qm=(()=>{class n{_overlay=R(Gt);_dir=R(ti,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=St.EMPTY;_attachSubscription=St.EMPTY;_detachSubscription=St.EMPTY;_positionSubscription=St.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=R(WM);_disposeOnNavigation=!1;_ngZone=R(De);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}backdropClick=new ce;positionChange=new ce;attach=new ce;detach=new ce;overlayKeydown=new ce;overlayOutsideClick=new ce;constructor(){let e=R(Mn),i=R(ui);this._templatePortal=new Er(e,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef?.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef?.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this.attachOverlay():this.detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=YU);let e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!wi(i)&&(i.preventDefault(),this.detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let r=this._getOriginElement(),s=Li(i);(!r||r!==s&&!r.contains(s))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new ta({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){let i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let e=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof bl?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof bl?this.origin.elementRef.nativeElement:this.origin instanceof Te?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(_w(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()})),this.open=!0}detachOverlay(){this._overlayRef?.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.open=!1}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",_e],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",_e],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",_e],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",_e],push:[2,"cdkConnectedOverlayPush","push",_e],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",_e]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[mt]})}return n})();function QU(n){return()=>n.scrollStrategies.reposition()}var ZU={provide:WM,deps:[Gt],useFactory:QU},Xn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[Gt,ZU],imports:[Zs,hu,mu,mu]})}return n})();var Ar=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var XU=["mat-menu-item",""],JU=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],e$=["mat-icon, [matMenuItemIcon]","*"];function t$(n,t){n&1&&(Ht(),P(0,"svg",2),te(1,"polygon",3),U())}var i$=new J("MAT_MENU_PANEL"),Gm=(()=>{class n{_elementRef=R(Te);_document=R(Ze);_focusMonitor=R(mn);_parentMenu=R(i$,{optional:!0});_changeDetectorRef=R(Ge);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new ue;_focused=new ue;_highlighted=!1;_triggersSubmenu=!1;constructor(){R(pt).load(xi),this._parentMenu?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let r=0;r{let n=R(Gt);return()=>n.scrollStrategies.reposition()}});function r$(n){return()=>n.scrollStrategies.reposition()}var s$={provide:n$,deps:[Gt],useFactory:r$};var tb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[s$],imports:[Ar,Oe,Xn,gn,Oe]})}return n})(),qM={transformMenu:{type:7,name:"transformMenu",definitions:[{type:0,name:"void",styles:{type:6,styles:{opacity:0,transform:"scale(0.8)"},offset:null}},{type:1,expr:"void => enter",animation:{type:4,styles:{type:6,styles:{opacity:1,transform:"scale(1)"},offset:null},timings:"120ms cubic-bezier(0, 0, 0.2, 1)"},options:null},{type:1,expr:"* => void",animation:{type:4,styles:{type:6,styles:{opacity:0},offset:null},timings:"100ms 25ms linear"},options:null}],options:{}},fadeInItems:{type:7,name:"fadeInItems",definitions:[{type:0,name:"showing",styles:{type:6,styles:{opacity:1},offset:null}},{type:1,expr:"void => *",animation:[{type:6,styles:{opacity:0},offset:null},{type:4,styles:null,timings:"400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"}],options:null}],options:{}}},dte=qM.fadeInItems,hte=qM.transformMenu;var KM=(()=>{class n{constructor(){this.version=window.MATCHBOX_VERSION}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=le({type:n,selectors:[["app-home"]],standalone:!1,decls:31,vars:1,consts:[[1,"primary"],["mat-menu-item","","routerLink","/validate"],["mat-menu-item","","routerLink","/igs"],["mat-menu-item","","routerLink","/settings"],["href","https://fhirpath-lab.com/fml","target","_blank"],["href","https://tx.fhir.org/tx-reg/","target","_blank"],["href","https://www.ahdis.ch","rel","external nofollow noopener","target","_blank"]],template:function(i,r){i&1&&(P(0,"mat-card",0)(1,"mat-card-content")(2,"button",1)(3,"mat-icon"),B(4,"rule"),U(),P(5,"span"),B(6,"Validate resource"),U()(),P(7,"button",2)(8,"mat-icon"),B(9,"info"),U(),P(10,"span"),B(11,"Installed IGs"),U()(),P(12,"button",3)(13,"mat-icon"),B(14,"settings"),U(),P(15,"span"),B(16,"Settings"),U()(),P(17,"p"),B(18,"Other tools:"),U(),P(19,"ul")(20,"li")(21,"a",4),B(22,"Select matchbox in Fhirpath Lab top right to use FML with our test instance"),U()(),P(23,"li")(24,"a",5),B(25,"FHIR Tx Server Registry"),U()()()(),P(26,"mat-card-footer")(27,"p"),B(28),P(29,"a",6),B(30," contact"),U()()()()),i&2&&($(28),je(" Matchbox version: ",r.version," | "))},dependencies:[hl,ml,kM,Rn,Gm,Yo],styles:["mat-card.primary[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:20px}mat-card.primary[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:8px;vertical-align:middle;color:#68c39a}mat-card.primary[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:30px 0 15px}mat-card.primary[_ngcontent-%COMP%] mat-card-footer[_ngcontent-%COMP%]{padding:0 1.5rem 1.5rem}"]})}}return n})();var tT=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(Ae(Rt),Ae(Te))};static \u0275dir=xe({type:n})}return n})(),o$=(()=>{class n extends tT{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275dir=xe({type:n,features:[Tt]})}return n})(),cs=new J("");var l$={provide:cs,useExisting:Ci(()=>Ir),multi:!0};function c$(){let n=mg()?mg().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var u$=new J(""),Ir=(()=>{class n extends tT{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!c$())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(Ae(Rt),Ae(Te),Ae(u$,8))};static \u0275dir=xe({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&X("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[rt([l$]),Tt]})}return n})();function rb(n){return n==null||sb(n)===0}function sb(n){return n==null?null:Array.isArray(n)||typeof n=="string"?n.length:n instanceof Set?n.size:null}var na=new J(""),af=new J(""),d$=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,_n=class{static min(t){return h$(t)}static max(t){return m$(t)}static required(t){return f$(t)}static requiredTrue(t){return p$(t)}static email(t){return g$(t)}static minLength(t){return _$(t)}static maxLength(t){return b$(t)}static pattern(t){return v$(t)}static nullValidator(t){return iT()}static compose(t){return lT(t)}static composeAsync(t){return cT(t)}};function h$(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function f$(n){return rb(n.value)?{required:!0}:null}function p$(n){return n.value===!0?null:{required:!0}}function g$(n){return rb(n.value)||d$.test(n.value)?null:{email:!0}}function _$(n){return t=>{let e=t.value?.length??sb(t.value);return e===null||e===0?null:e{let e=t.value?.length??sb(t.value);return e!==null&&e>n?{maxlength:{requiredLength:n,actualLength:e}}:null}}function v$(n){if(!n)return iT;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(rb(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function iT(n){return null}function nT(n){return n!=null}function rT(n){return fh(n)?si(n):n}function sT(n){let t={};return n.forEach(e=>{t=e!=null?H(H({},t),e):t}),Object.keys(t).length===0?null:t}function aT(n,t){return t.map(e=>e(n))}function y$(n){return!n.validate}function oT(n){return n.map(t=>y$(t)?t:e=>t.validate(e))}function lT(n){if(!n)return null;let t=n.filter(nT);return t.length==0?null:function(e){return sT(aT(e,t))}}function ab(n){return n!=null?lT(oT(n)):null}function cT(n){if(!n)return null;let t=n.filter(nT);return t.length==0?null:function(e){let i=aT(e,t).map(rT);return Mo(i).pipe(Ne(sT))}}function ob(n){return n!=null?cT(oT(n)):null}function YM(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function uT(n){return n._rawValidators}function dT(n){return n._rawAsyncValidators}function ib(n){return n?Array.isArray(n)?n:[n]:[]}function Ym(n,t){return Array.isArray(n)?n.includes(t):n===t}function QM(n,t){let e=ib(t);return ib(n).forEach(r=>{Ym(e,r)||e.push(r)}),e}function ZM(n,t){return ib(t).filter(e=>!Ym(n,e))}var Qm=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=ab(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=ob(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},qa=class extends Qm{name;get formDirective(){return null}get path(){return null}},Jn=class extends Qm{_parent=null;name=null;valueAccessor=null},nb=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},C$={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},Ite=Le(H({},C$),{"[class.ng-submitted]":"isSubmitted"}),Dr=(()=>{class n extends nb{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(Ae(Jn,2))};static \u0275dir=xe({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&ye("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[Tt]})}return n})();var gu="VALID",Km="INVALID",yl="PENDING",_u="DISABLED",ia=class{},Zm=class extends ia{value;source;constructor(t,e){super(),this.value=t,this.source=e}},vu=class extends ia{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},yu=class extends ia{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},Cl=class extends ia{status;source;constructor(t,e){super(),this.status=t,this.source=e}},Xm=class extends ia{source;constructor(t){super(),this.source=t}},Jm=class extends ia{source;constructor(t){super(),this.source=t}};function hT(n){return(of(n)?n.validators:n)||null}function w$(n){return Array.isArray(n)?ab(n):n||null}function mT(n,t){return(of(t)?t.asyncValidators:n)||null}function x$(n){return Array.isArray(n)?ob(n):n||null}function of(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function S$(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new Be(1e3,"");if(!i[e])throw new Be(1001,"")}function k$(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new Be(1002,"")})}var ef=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return Yn(this.statusReactive)}set status(t){Yn(()=>this.statusReactive.set(t))}_status=br(()=>this.statusReactive());statusReactive=Di(void 0);get valid(){return this.status===gu}get invalid(){return this.status===Km}get pending(){return this.status==yl}get disabled(){return this.status===_u}get enabled(){return this.status!==_u}errors;get pristine(){return Yn(this.pristineReactive)}set pristine(t){Yn(()=>this.pristineReactive.set(t))}_pristine=br(()=>this.pristineReactive());pristineReactive=Di(!0);get dirty(){return!this.pristine}get touched(){return Yn(this.touchedReactive)}set touched(t){Yn(()=>this.touchedReactive.set(t))}_touched=br(()=>this.touchedReactive());touchedReactive=Di(!1);get untouched(){return!this.touched}_events=new ue;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(QM(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(QM(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(ZM(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(ZM(t,this._rawAsyncValidators))}hasValidator(t){return Ym(this._rawValidators,t)}hasAsyncValidator(t){return Ym(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(Le(H({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new yu(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new yu(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(Le(H({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new vu(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new vu(!0,i))}markAsPending(t={}){this.status=yl;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Cl(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(Le(H({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=_u,this.errors=null,this._forEachChild(r=>{r.disable(Le(H({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Zm(this.value,i)),this._events.next(new Cl(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Le(H({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=gu,this._forEachChild(i=>{i.enable(Le(H({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(Le(H({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===gu||this.status===yl)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Zm(this.value,e)),this._events.next(new Cl(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(Le(H({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?_u:gu}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=yl,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1};let i=rT(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new Cl(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new ce,this.statusChanges=new ce}_calculateStatus(){return this._allControlsDisabled()?_u:this.errors?Km:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(yl)?yl:this._anyControlsHaveStatus(Km)?Km:gu}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new vu(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new yu(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){of(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=w$(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=x$(this._rawAsyncValidators)}},tf=class extends ef{constructor(t,e,i){super(hT(e),mT(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){k$(this,!0,t),Object.keys(t).forEach(i=>{S$(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var wl=new J("",{providedIn:"root",factory:()=>lf}),lf="always";function M$(n,t){return[...t.path,n]}function Cu(n,t,e=lf){lb(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),E$(n,t),I$(n,t),A$(n,t),T$(n,t)}function nf(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),sf(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function rf(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function T$(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function lb(n,t){let e=uT(n);t.validator!==null?n.setValidators(YM(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=dT(n);t.asyncValidator!==null?n.setAsyncValidators(YM(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();rf(t._rawValidators,r),rf(t._rawAsyncValidators,r)}function sf(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=uT(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=dT(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return rf(t._rawValidators,i),rf(t._rawAsyncValidators,i),e}function E$(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&fT(n,t)})}function A$(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&fT(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function fT(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function I$(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function pT(n,t){n==null,lb(n,t)}function D$(n,t){return sf(n,t)}function gT(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function R$(n){return Object.getPrototypeOf(n.constructor)===o$}function _T(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function bT(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===Ir?e=s:R$(s)?i=s:r=s}),r||i||e||null}function L$(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var O$={provide:qa,useExisting:Ci(()=>wu)},bu=Promise.resolve(),wu=(()=>{class n extends qa{callSetDisabledState;get submitted(){return Yn(this.submittedReactive)}_submitted=br(()=>this.submittedReactive());submittedReactive=Di(!1);_directives=new Set;form;ngSubmit=new ce;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new tf({},ab(e),ob(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){bu.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Cu(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){bu.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){bu.then(()=>{let i=this._findContainer(e.path),r=new tf({});pT(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){bu.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){bu.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),_T(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new Xm(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1),this.form._events.next(new Jm(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(Ae(na,10),Ae(af,10),Ae(wl,8))};static \u0275dir=xe({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&X("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[rt([O$]),Tt]})}return n})();function XM(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function JM(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Rr=class extends ef{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(hT(e),mT(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),of(e)&&(e.nonNullable||e.initialValueIsDefault)&&(JM(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){XM(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){XM(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){JM(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},us=Rr,N$=n=>n instanceof Rr;var F$={provide:Jn,useExisting:Ci(()=>cb)},eT=Promise.resolve(),cb=(()=>{class n extends Jn{_changeDetectorRef;callSetDisabledState;control=new Rr;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new ce;constructor(e,i,r,s,a,o){super(),this._changeDetectorRef=a,this.callSetDisabledState=o,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=bT(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),gT(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){Cu(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){eT.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&_e(i);eT.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?M$(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(Ae(qa,9),Ae(na,10),Ae(af,10),Ae(cs,10),Ae(Ge,8),Ae(wl,8))};static \u0275dir=xe({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[rt([F$]),Tt,mt]})}return n})();var vT=new J(""),P$={provide:Jn,useExisting:Ci(()=>er)},er=(()=>{class n extends Jn{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new ce;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=bT(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&nf(i,this,!1),Cu(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}gT(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&nf(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(Ae(na,10),Ae(af,10),Ae(cs,10),Ae(vT,8),Ae(wl,8))};static \u0275dir=xe({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[rt([P$]),Tt,mt]})}return n})(),U$={provide:qa,useExisting:Ci(()=>xu)},xu=(()=>{class n extends qa{callSetDisabledState;get submitted(){return Yn(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=br(()=>this._submittedReactive());_submittedReactive=Di(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new ce;constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(sf(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){let i=this.form.get(e.path);return Cu(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){nf(e.control||null,e,!1),L$(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this._submittedReactive.set(!0),_T(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new Xm(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new Jm(this.form))}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(nf(i||null,e),N$(r)&&(Cu(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);pT(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&D$(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){lb(this.form,this),this._oldForm&&sf(this._oldForm,this)}static \u0275fac=function(i){return new(i||n)(Ae(na,10),Ae(af,10),Ae(wl,8))};static \u0275dir=xe({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&X("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[rt([U$]),Tt,mt]})}return n})();var yT=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var ub=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:wl,useValue:e.callSetDisabledState??lf}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[yT]})}return n})(),Su=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:vT,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:wl,useValue:e.callSetDisabledState??lf}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[yT]})}return n})();var FT=Os(im());var db=class{_box;_destroyed=new ue;_resizeSubject=new ue;_resizeObserver;_elementObservables=new Map;constructor(t){this._box=t,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(t){return this._elementObservables.has(t)||this._elementObservables.set(t,new dr(e=>{let i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(t,{box:this._box}),()=>{this._resizeObserver?.unobserve(t),i.unsubscribe(),this._elementObservables.delete(t)}}).pipe(it(e=>e.some(i=>i.target===t)),Ps({bufferSize:1,refCount:!0}),Ye(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},cf=(()=>{class n{_cleanupErrorListener;_observers=new Map;_ngZone=R(De);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,e]of this._observers)e.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(e,i){let r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new db(r)),this._observers.get(r).observe(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var $$=["notch"],V$=["matFormFieldNotchedOutline",""],B$=["*"],z$=["textField"],H$=["iconPrefixContainer"],j$=["textPrefixContainer"],W$=["iconSuffixContainer"],q$=["textSuffixContainer"],G$=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],K$=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function Y$(n,t){n&1&&te(0,"span",20)}function Q$(n,t){if(n&1&&(P(0,"label",19),Fe(1,1),oe(2,Y$,1,0,"span",20),U()),n&2){let e=Y(2);j("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Se("for",e._control.disableAutomaticLabeling?null:e._control.id),$(2),Je(!e.hideRequiredMarker&&e._control.required?2:-1)}}function Z$(n,t){if(n&1&&oe(0,Q$,3,5,"label",19),n&2){let e=Y();Je(e._hasFloatingLabel()?0:-1)}}function X$(n,t){n&1&&te(0,"div",7)}function J$(n,t){}function eV(n,t){if(n&1&&oe(0,J$,0,0,"ng-template",13),n&2){Y(2);let e=jt(1);j("ngTemplateOutlet",e)}}function tV(n,t){if(n&1&&(P(0,"div",9),oe(1,eV,1,1,null,13),U()),n&2){let e=Y();j("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),$(),Je(e._forceDisplayInfixLabel()?-1:1)}}function iV(n,t){n&1&&(P(0,"div",10,2),Fe(2,2),U())}function nV(n,t){n&1&&(P(0,"div",11,3),Fe(2,3),U())}function rV(n,t){}function sV(n,t){if(n&1&&oe(0,rV,0,0,"ng-template",13),n&2){Y();let e=jt(1);j("ngTemplateOutlet",e)}}function aV(n,t){n&1&&(P(0,"div",14,4),Fe(2,4),U())}function oV(n,t){n&1&&(P(0,"div",15,5),Fe(2,5),U())}function lV(n,t){n&1&&te(0,"div",16)}function cV(n,t){n&1&&Fe(0,6)}function uV(n,t){if(n&1&&(P(0,"mat-hint",21),B(1),U()),n&2){let e=Y(2);j("id",e._hintLabelId),$(),He(e.hintLabel)}}function dV(n,t){if(n&1&&(oe(0,uV,2,2,"mat-hint",21),Fe(1,7),te(2,"div",22),Fe(3,8)),n&2){let e=Y();Je(e.hintLabel?0:-1)}}var ds=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-label"]]})}return n})(),hb=new J("MatError"),Ka=(()=>{class n{id=R(At).getId("mat-mdc-error-");constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:[1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,r){i&2&&Tn("id",r.id)},inputs:{id:"id"},features:[rt([{provide:hb,useExisting:n}])]})}return n})(),Ga=(()=>{class n{align="start";id=R(At).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){i&2&&(Tn("id",r.id),Se("align",null),ye("mat-mdc-form-field-hint-end",r.align==="end"))},inputs:{align:"align",id:"id"}})}return n})(),TT=new J("MatPrefix");var ET=new J("MatSuffix");var AT=new J("FloatingLabelParent"),CT=(()=>{class n{_elementRef=R(Te);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=R(cf);_ngZone=R(De);_parent=R(AT);_resizeSubscription=new St;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return hV(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return n})();function hV(n){let t=n;if(t.offsetParent!==null)return t.scrollWidth;let e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);let i=e.scrollWidth;return e.remove(),i}var wT="mdc-line-ripple--active",uf="mdc-line-ripple--deactivating",xT=(()=>{class n{_elementRef=R(Te);_cleanupTransitionEnd;constructor(){let e=R(De),i=R(Rt);e.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let e=this._elementRef.nativeElement.classList;e.remove(uf),e.add(wT)}deactivate(){this._elementRef.nativeElement.classList.add(uf)}_handleTransitionEnd=e=>{let i=this._elementRef.nativeElement.classList,r=i.contains(uf);e.propertyName==="opacity"&&r&&i.remove(wT,uf)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return n})(),ST=(()=>{class n{_elementRef=R(Te);_ngZone=R(De);open=!1;_notch;constructor(){}ngAfterViewInit(){let e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){!this.open||!e?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(i&1&&Pe($$,5),i&2){let s;ke(s=Me())&&(r._notch=s.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mdc-notched-outline--notched",r.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:V$,ngContentSelectors:B$,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,r){i&1&&(Qe(),te(0,"div",1),P(1,"div",2,0),Fe(3),U(),te(4,"div",3))},encapsulation:2,changeDetection:0})}return n})(),xl=(()=>{class n{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n})}return n})();var Sl=new J("MatFormField"),IT=new J("MAT_FORM_FIELD_DEFAULT_OPTIONS"),kT="fill",mV="auto",MT="fixed",fV="translateY(-50%)",bn=(()=>{class n{_elementRef=R(Te);_changeDetectorRef=R(Ge);_dir=R(ti);_platform=R(st);_idGenerator=R(At);_ngZone=R(De);_injector=R(ut);_defaults=R(IT,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=Tw(ds);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=fn(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||mV}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(e){let i=this._appearance,r=e||this._defaults?.appearance||kT;this._appearance=r,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=kT;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||MT}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||MT}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new ue;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_previousControlValidatorFn=null;_stateChanges;_valueChanges;_describedByChanges;_animationsDisabled;constructor(){let e=this._defaults;e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color)),this._animationsDisabled=R(ot,{optional:!0})==="NoopAnimations"}ngAfterViewInit(){this._updateFocusState(),this._animationsDisabled||this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-form-field-animations-enabled")},300)}),this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._control.ngControl&&this._control.ngControl.control&&(this._previousControlValidatorFn=this._control.ngControl.control.validator),this._previousControl=this._control),this._control.ngControl&&this._control.ngControl.control&&this._control.ngControl.control.validator!==this._previousControlValidatorFn&&this._changeDetectorRef.markForCheck()}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=br(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){let i=this._control,r="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(r+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(r+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(Bt([void 0,void 0]),Ne(()=>[i.errorState,i.userAriaDescribedBy]),ag(),it(([[s,a],[o,l]])=>s!==o||a!==l)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(Ye(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Kt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),uh(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(Ye(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=br(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(e){let i=this._control?this._control.ngControl:null;return i&&i[e]}_getSubscriptMessageType(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&e.push(...this._control.userAriaDescribedBy.split(" ")),this._getSubscriptMessageType()==="hint"){let i=this._hintChildren?this._hintChildren.find(s=>s.align==="start"):null,r=this._hintChildren?this._hintChildren.find(s=>s.align==="end"):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),r&&e.push(r.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let e=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){e.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,s=this._iconSuffixContainer?.nativeElement,a=this._textSuffixContainer?.nativeElement,o=i?.getBoundingClientRect().width??0,l=r?.getBoundingClientRect().width??0,c=s?.getBoundingClientRect().width??0,u=a?.getBoundingClientRect().width??0,d=this._dir.value==="rtl"?"-1":"1",h=`${o+l}px`,f=`calc(${d} * (${h} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;e.style.transform=`var( + --mat-mdc-form-field-label-transform, + ${fV} translateX(${f}) + )`;let p=o+l+c+u;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${p}px)`)}_isAttachedToDom(){let e=this._elementRef.nativeElement;if(e.getRootNode){let i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,s){if(i&1&&(Lw(s,r._labelChild,ds,5),Et(s,xl,5),Et(s,TT,5),Et(s,ET,5),Et(s,hb,5),Et(s,Ga,5)),i&2){Ow();let a;ke(a=Me())&&(r._formFieldControl=a.first),ke(a=Me())&&(r._prefixChildren=a),ke(a=Me())&&(r._suffixChildren=a),ke(a=Me())&&(r._errorChildren=a),ke(a=Me())&&(r._hintChildren=a)}},viewQuery:function(i,r){if(i&1&&(Pe(z$,5),Pe(H$,5),Pe(j$,5),Pe(W$,5),Pe(q$,5),Pe(CT,5),Pe(ST,5),Pe(xT,5)),i&2){let s;ke(s=Me())&&(r._textField=s.first),ke(s=Me())&&(r._iconPrefixContainer=s.first),ke(s=Me())&&(r._textPrefixContainer=s.first),ke(s=Me())&&(r._iconSuffixContainer=s.first),ke(s=Me())&&(r._textSuffixContainer=s.first),ke(s=Me())&&(r._floatingLabel=s.first),ke(s=Me())&&(r._notchedOutline=s.first),ke(s=Me())&&(r._lineRipple=s.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:40,hostBindings:function(i,r){i&2&&ye("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-appearance-fill",r.appearance=="fill")("mat-form-field-appearance-outline",r.appearance=="outline")("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary",r.color!=="accent"&&r.color!=="warn")("mat-accent",r.color==="accent")("mat-warn",r.color==="warn")("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[rt([{provide:Sl,useExisting:n},{provide:AT,useExisting:n}])],ngContentSelectors:K$,decls:20,vars:25,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],["aria-atomic","true","aria-live","polite"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(i&1){let s=ze();Qe(G$),oe(0,Z$,1,1,"ng-template",null,0,Ma),P(2,"div",6,1),X("click",function(o){return re(s),se(r._control.onContainerClick(o))}),oe(4,X$,1,0,"div",7),P(5,"div",8),oe(6,tV,2,2,"div",9)(7,iV,3,0,"div",10)(8,nV,3,0,"div",11),P(9,"div",12),oe(10,sV,1,1,null,13),Fe(11),U(),oe(12,aV,3,0,"div",14)(13,oV,3,0,"div",15),U(),oe(14,lV,1,0,"div",16),U(),P(15,"div",17),Nw(16),P(17,"div",18),oe(18,cV,1,0)(19,dV,4,1),U()()}if(i&2){let s;$(2),ye("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),$(2),Je(!r._hasOutline()&&!r._control.disabled?4:-1),$(2),Je(r._hasOutline()?6:-1),$(),Je(r._hasIconPrefix?7:-1),$(),Je(r._hasTextPrefix?8:-1),$(2),Je(!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),$(2),Je(r._hasTextSuffix?12:-1),$(),Je(r._hasIconSuffix?13:-1),$(),Je(r._hasOutline()?-1:14),$(),ye("mat-mdc-form-field-subscript-dynamic-size",r.subscriptSizing==="dynamic");let a=r._getSubscriptMessageType();$(2),ye("mat-mdc-form-field-error-wrapper",a==="error")("mat-mdc-form-field-hint-wrapper",a==="hint"),$(),Je((s=a)==="error"?18:s==="hint"?19:-1)}},dependencies:[CT,ST,bh,xT,Ga],styles:[`.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}@keyframes _mat-form-field-subscript-animation{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px;opacity:1;transform:translateY(0);animation:_mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2)}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-error-wrapper{animation-duration:300ms}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)} +`],encapsulation:2,changeDetection:0})}return n})();var hs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,dm,Oe]})}return n})();var DT=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[`textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms} +`],encapsulation:2,changeDetection:0})}return n})(),pV={passive:!0},RT=(()=>{class n{_platform=R(st);_ngZone=R(De);_renderer=R(Ri).createRenderer(null,null);_styleLoader=R(pt);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return on;this._styleLoader.load(DT);let i=Oi(e),r=this._monitoredElements.get(i);if(r)return r.subject;let s=new ue,a="cdk-text-field-autofilled",o=c=>{c.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(a)?(i.classList.add(a),this._ngZone.run(()=>s.next({target:c.target,isAutofilled:!0}))):c.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:c.target,isAutofilled:!1})))},l=this._ngZone.runOutsideAngular(()=>(i.classList.add("cdk-text-field-autofill-monitored"),Ot(this._renderer,i,"animationstart",o,pV)));return this._monitoredElements.set(i,{subject:s,unlisten:l}),s}stopMonitoring(e){let i=Oi(e),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var LT=(()=>{class n{_elementRef=R(Te);_platform=R(st);_ngZone=R(De);_renderer=R(Rt);_resizeEvents=new ue;_previousValue;_initialHeight;_destroyed=new ue;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(e){this._minRows=kr(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=kr(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_cachedScrollTop;_document=R(Ze,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){R(pt).load(DT),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let e=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){let e=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(vc(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(e=>e()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1),i=e.style;e.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let e=this._textareaElement,i=e.style.marginBottom||"",r=this._platform.FIREFOX,s=r&&this._hasFocus,a=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";s&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(a);let o=e.scrollHeight-4;return e.classList.remove(a),s&&(e.style.marginBottom=i),o}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}_handleFocusEvent=e=>{this._hasFocus=e.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),this._cachedScrollTop=this._textareaElement.scrollTop,!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,r=i.value;if(!e&&this._minRows===this._previousMinRows&&r===this._previousValue)return;let s=this._measureScrollHeight(),a=Math.max(s,this._cachedPlaceholderHeight||0);i.style.height=`${a}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=r,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(e){let{selectionStart:i,selectionEnd:r}=e;!this._destroyed.isStopped&&this._hasFocus&&(e.setSelectionRange(i,r),e.scrollTop=this._cachedScrollTop)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){i&1&&X("input",function(){return r._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",_e],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return n})(),OT=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var NT=new J("MAT_INPUT_VALUE_ACCESSOR");var hf=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var kl=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(t,e,i,r,s){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=s}updateErrorState(){let t=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,s=i?.isErrorState(r,e)??!1;s!==t&&(this.errorState=s,this._stateChanges.next())}};var _V=["button","checkbox","file","hidden","image","radio","range","reset","submit"],bV=new J("MAT_INPUT_CONFIG"),Ml=(()=>{class n{_elementRef=R(Te);_platform=R(st);ngControl=R(Jn,{optional:!0,self:!0});_autofillMonitor=R(RT);_ngZone=R(De);_formField=R(Sl,{optional:!0});_renderer=R(Rt);_uid=R(At).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=R(bV,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new ue;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=fn(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(_n.required)??!1}set required(e){this._required=fn(e)}_required;get type(){return this._type}set type(e){let i=this._type;this._type=e||"text",this._validateType(),!this._isTextarea&&K_().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=fn(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>K_().has(e));constructor(){let e=R(wu,{optional:!0}),i=R(xu,{optional:!0}),r=R(hf),s=R(NT,{optional:!0,self:!0}),a=this._elementRef.nativeElement,o=a.nodeName.toLowerCase();s?ka(s.value)?this._signalBasedValueAccessor=s:this._inputValueAccessor=s:this._inputValueAccessor=a,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(a,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new kl(r,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=o==="select",this._isTextarea=o==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=a.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&gh(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=e,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){let e=this._getPlaceholder();if(e!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){_V.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(e){let i=this._elementRef.nativeElement,r=i.getAttribute("aria-describedby"),s;if(r){let a=this._formFieldDescribedBy||e;s=e.concat(r.split(" ").filter(o=>o&&!a.includes(o)))}else s=e;this._formFieldDescribedBy=e,s.length?i.setAttribute("aria-describedby",s.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{let i=e.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,r){i&1&&X("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),i&2&&(Tn("id",r.id)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Se("name",r.name||null)("readonly",r._getReadonlyAttribute())("aria-disabled",r.disabled&&r.disabledInteractive?"true":null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),ye("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mat-mdc-input-disabled-interactive",r.disabledInteractive)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e]},exportAs:["matInput"],features:[rt([{provide:xl,useExisting:n}]),mt]})}return n})(),mb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,hs,hs,OT,Oe]})}return n})();function vV(n,t){if(n&1&&(P(0,"li"),B(1),U()),n&2){let e=t.$implicit;$(),je(" ",e.diagnostics," ")}}function yV(n,t){if(n&1&&(P(0,"mat-error")(1,"ul"),oe(2,vV,2,1,"li",7),U()()),n&2){let e=Y();$(2),j("ngForOf",e.operationOutcome.issue)}}function CV(n,t){if(n&1&&(P(0,"mat-hint"),B(1),U()),n&2){let e=Y();$(),je("Successfully created on server: ",e.structureMap.url," ")}}function wV(n,t){if(n&1&&(P(0,"li"),B(1),U()),n&2){let e=t.$implicit;$(),je(" ",e.diagnostics," ")}}function xV(n,t){if(n&1&&(P(0,"mat-error")(1,"ul"),oe(2,wV,2,1,"li",7),U()()),n&2){let e=Y();$(2),j("ngForOf",e.operationOutcomeTransformed.issue)}}var mf=class n{static{this.log=(0,FT.default)("app:")}constructor(t,e){this.cd=t,this.data=e,this.client=e.getFhirClient(),this.source=new us,this.map=new us,this.structureMap=null,this.map.valueChanges.pipe(Ii(1e3),mr()).subscribe(i=>{n.log("create StructureMap"),this.client.create({resourceType:"StructureMap",body:i,headers:{accept:"application/fhir+json","content-type":"text/fhir-mapping"}}).then(r=>{this.operationOutcome=null,this.structureMap=r,this.transform()}).catch(r=>{this.structureMap=null,this.operationOutcome=r.response.data})}),this.source.valueChanges.pipe(Ii(1e3),mr()).subscribe(i=>this.transform())}transform(){n.log("transform Source");let t=JSON.parse(this.source.value);this.structureMap!=null&&this.client.operation({name:"transform?source="+encodeURIComponent(this.structureMap.url),resourceType:"StructureMap",input:t}).then(e=>{this.operationOutcomeTransformed=null,this.transformed=e}).catch(e=>{this.transformed=null,this.operationOutcomeTransformed=e.response.data})}ngOnInit(){}fileSource(t){let e=new FileReader;if(t.target.files&&t.target.files.length){let[i]=t.target.files;e.readAsText(i),e.onload=()=>{this.source.setValue(e.result),this.cd.markForCheck()}}}fileChange(t){let e=new FileReader;if(t.target.files&&t.target.files.length){let[i]=t.target.files;e.readAsText(i),e.onload=()=>{this.map.setValue(e.result),this.cd.markForCheck()}}}static{this.\u0275fac=function(e){return new(e||n)(Ae(Ge),Ae(Dn))}}static{this.\u0275cmp=le({type:n,selectors:[["app-mapping-language"]],standalone:!1,decls:31,vars:8,consts:[[1,"card-maps"],[1,"fixtextarea"],["accept",".json","placeholder","Upload source","type","file",3,"change"],["cols","400","matNativeControl","","rows","15",3,"formControl"],["accept",".map","placeholder","Upload map","type","file",3,"change"],["cols","400","matNativeControl","","rows","20",3,"formControl"],[4,"ngIf"],[4,"ngFor","ngForOf"]],template:function(e,i){e&1&&(P(0,"mat-card",0)(1,"mat-card-content")(2,"mat-card-header")(3,"mat-card-title"),B(4,"Source"),U()(),P(5,"mat-form-field",1)(6,"mat-card-actions")(7,"input",2),X("change",function(s){return i.fileSource(s)}),U()(),P(8,"textarea",3),B(9," "),U()()()(),P(10,"mat-card",0)(11,"mat-card-content")(12,"mat-card-header")(13,"mat-card-title"),B(14,"FHIR Mapping Language map"),U()(),P(15,"mat-form-field",1)(16,"mat-card-actions")(17,"input",4),X("change",function(s){return i.fileChange(s)}),U()(),P(18,"textarea",5),B(19," "),U()(),oe(20,yV,3,1,"mat-error",6)(21,CV,2,1,"mat-hint",6),U()(),P(22,"mat-card",0)(23,"mat-card-content")(24,"mat-card-header")(25,"mat-card-title"),B(26,"Transformed"),U()(),oe(27,xV,3,1,"mat-error",6),P(28,"pre"),B(29),En(30,"json"),U()()()),e&2&&($(8),j("formControl",i.source),$(10),j("formControl",i.map),$(2),j("ngIf",i.operationOutcome),$(),j("ngIf",i.structureMap),$(6),j("ngIf",i.operationOutcomeTransformed),$(2),He(Kn(30,6,i.transformed)))},dependencies:[vr,di,Ir,Dr,er,hl,Lm,ml,Om,Rm,bn,Ga,Ka,Ml,Gw],styles:[".fixtextarea[_ngcontent-%COMP%]{display:inline}.card-maps[_ngcontent-%COMP%]{margin-bottom:10px}"]})}};var PT=(()=>{class n{constructor(){this.version=window.MATCHBOX_VERSION}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=le({type:n,selectors:[["app-settings"]],standalone:!1,decls:12,vars:1,consts:[["id","settings",1,"white-block"],["href","https://github.com/ahdis/matchbox","rel","external nofollow noopener","target","_blank"]],template:function(i,r){i&1&&(P(0,"div",0)(1,"h2"),B(2,"Matchbox settings"),U(),P(3,"h5"),B(4),U(),P(5,"p")(6,"em"),B(7,"There are no configurable settings here right now"),U()(),P(8,"p"),B(9," Source code: "),P(10,"a",1),B(11,"github.com/ahdis/matchbox"),U()()()),i&2&&($(4),je("Version ",r.version,""))},encapsulation:2})}}return n})();var UT=(()=>{class n{_animationMode=R(ot,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){i&2&&ye("mat-pseudo-checkbox-indeterminate",r.state==="indeterminate")("mat-pseudo-checkbox-checked",r.state==="checked")("mat-pseudo-checkbox-disabled",r.disabled)("mat-pseudo-checkbox-minimal",r.appearance==="minimal")("mat-pseudo-checkbox-full",r.appearance==="full")("_mat-animation-noopable",r._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,r){},styles:[`.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px} +`],encapsulation:2,changeDetection:0})}return n})();var SV=["text"],kV=[[["mat-icon"]],"*"],MV=["mat-icon","*"];function TV(n,t){if(n&1&&te(0,"mat-pseudo-checkbox",1),n&2){let e=Y();j("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function EV(n,t){if(n&1&&te(0,"mat-pseudo-checkbox",3),n&2){let e=Y();j("disabled",e.disabled)}}function AV(n,t){if(n&1&&(P(0,"span",4),B(1),U()),n&2){let e=Y();$(),je("(",e.group.label,")")}}var Tu=new J("MAT_OPTION_PARENT_COMPONENT"),Eu=new J("MatOptgroup");var Mu=class{source;isUserInput;constructor(t,e=!1){this.source=t,this.isUserInput=e}},Nn=(()=>{class n{_element=R(Te);_changeDetectorRef=R(Ge);_parent=R(Tu,{optional:!0});group=R(Eu,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=R(At).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new ce;_text;_stateChanges=new ue;constructor(){let e=R(pt);e.load(xi),e.load(Mr),this._signalDisableRipple=!!this._parent&&ka(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){let r=this._getHostElement();typeof r.focus=="function"&&r.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(e.keyCode===13||e.keyCode===32)&&!wi(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new Mu(this,e))}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(i&1&&Pe(SV,7),i&2){let s;ke(s=Me())&&(r._text=s.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){i&1&&X("click",function(){return r._selectViaInteraction()})("keydown",function(a){return r._handleKeydown(a)}),i&2&&(Tn("id",r.id),Se("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),ye("mdc-list-item--selected",r.selected)("mat-mdc-option-multiple",r.multiple)("mat-mdc-option-active",r.active)("mdc-list-item--disabled",r.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",_e]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:MV,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){i&1&&(Qe(kV),oe(0,TV,1,2,"mat-pseudo-checkbox",1),Fe(1),P(2,"span",2,0),Fe(4,1),U(),oe(5,EV,1,1,"mat-pseudo-checkbox",3)(6,AV,2,1,"span",4),te(7,"div",5)),i&2&&(Je(r.multiple?0:-1),$(5),Je(!r.multiple&&r.selected&&!r.hideSingleSelectionIndicator?5:-1),$(),Je(r.group&&r.group._inert?6:-1),$(),j("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[UT,pn],styles:[`.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""} +`],encapsulation:2,changeDetection:0})}return n})();function ff(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,n-i+t):e}var $T=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe]})}return n})();var Tl=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Ar,Oe,$T]})}return n})();var IV=new J("mat-autocomplete-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition()}});function DV(n){return()=>n.scrollStrategies.reposition()}var RV={provide:IV,deps:[Gt],useFactory:DV};var pb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[RV],imports:[Xn,Tl,Oe,gn,Tl,Oe]})}return n})();var LV={capture:!0},OV=["focus","mousedown","mouseenter","touchstart"],gb="mat-ripple-loader-uninitialized",_b="mat-ripple-loader-class-name",BT="mat-ripple-loader-centered",gf="mat-ripple-loader-disabled",zT=(()=>{class n{_document=R(Ze);_animationMode=R(ot,{optional:!0});_globalRippleOptions=R(Um,{optional:!0});_platform=R(st);_ngZone=R(De);_injector=R(ut);_eventCleanups;_hosts=new Map;constructor(){let e=R(Ri).createRenderer(null,null);this._eventCleanups=this._ngZone.runOutsideAngular(()=>OV.map(i=>Ot(e,this._document,i,this._onInteraction,LV)))}ngOnDestroy(){let e=this._hosts.keys();for(let i of e)this.destroyRipple(i);this._eventCleanups.forEach(i=>i())}configureRipple(e,i){e.setAttribute(gb,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(_b))&&e.setAttribute(_b,i.className||""),i.centered&&e.setAttribute(BT,""),i.disabled&&e.setAttribute(gf,"")}setDisabled(e,i){let r=this._hosts.get(e);r?(r.target.rippleDisabled=i,!i&&!r.hasSetUpEvents&&(r.hasSetUpEvents=!0,r.renderer.setupTriggerEvents(e))):i?e.setAttribute(gf,""):e.removeAttribute(gf)}_onInteraction=e=>{let i=Li(e);if(i instanceof HTMLElement){let r=i.closest(`[${gb}="${this._globalRippleOptions?.namespace??""}"]`);r&&this._createRipple(r)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(_b)),e.append(i);let r=this._animationMode==="NoopAnimations",s=this._globalRippleOptions,a=r?0:s?.animation?.enterDuration??lu.enterDuration,o=r?0:s?.animation?.exitDuration??lu.exitDuration,l={rippleDisabled:r||s?.disabled||e.hasAttribute(gf),rippleConfig:{centered:e.hasAttribute(BT),terminateOnPointerUp:s?.terminateOnPointerUp,animation:{enterDuration:a,exitDuration:o}}},c=new cu(l,this._ngZone,i,this._platform,this._injector),u=!l.rippleDisabled;u&&c.setupTriggerEvents(e),this._hosts.set(e,{target:l,renderer:c,hasSetUpEvents:u}),e.removeAttribute(gb)}destroyRipple(e){let i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var NV=["mat-icon-button",""],FV=["*"];var PV=new J("MAT_BUTTON_CONFIG");var UV=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],bb=(()=>{class n{_elementRef=R(Te);_ngZone=R(De);_animationMode=R(ot,{optional:!0});_focusMonitor=R(mn);_rippleLoader=R(zT);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){R(pt).load(xi);let e=R(PV,{optional:!0}),i=this._elementRef.nativeElement,r=i.classList;this.disabledInteractive=e?.disabledInteractive??!1,this.color=e?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:s,mdcClasses:a}of UV)i.hasAttribute(s)&&r.add(...a)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",_e],disabled:[2,"disabled","disabled",_e],ariaDisabled:[2,"aria-disabled","ariaDisabled",_e],disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e]}})}return n})();var ra=(()=>{class n extends bb{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,r){i&2&&(Se("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),ft(r.color?"mat-"+r.color:""),ye("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Tt],attrs:NV,ngContentSelectors:FV,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){i&1&&(Qe(),te(0,"span",0),Fe(1),te(2,"span",1)(3,"span",2))},styles:[`.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1} +`,`@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}} +`],encapsulation:2,changeDetection:0})}return n})();var $V=["mat-button",""],VV=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],BV=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var ms=(()=>{class n extends bb{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275cmp=le({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){i&2&&(Se("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),ft(r.color?"mat-"+r.color:""),ye("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Tt],attrs:$V,ngContentSelectors:BV,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){i&1&&(Qe(VV),te(0,"span",0),Fe(1),P(2,"span",1),Fe(3,1),U(),Fe(4,2),te(5,"span",2)(6,"span",3)),i&2&&ye("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:[`.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)} +`,`@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}} +`],encapsulation:2,changeDetection:0})}return n})();var fs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Ar,Oe]})}return n})();var zV=["mat-internal-form-field",""],HV=["*"],El=(()=>{class n{labelPosition;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mdc-form-field--align-end",r.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:zV,ngContentSelectors:HV,decls:1,vars:0,template:function(i,r){i&1&&(Qe(),Fe(0))},styles:[`.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0} +`],encapsulation:2,changeDetection:0})}return n})();var WV=["input"],qV=["label"],GV=["*"],KV=new J("mat-checkbox-default-options",{providedIn:"root",factory:jT});function jT(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Si=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(Si||{}),YV={provide:cs,useExisting:Ci(()=>Al),multi:!0},vb=class{source;checked},HT=jT(),Al=(()=>{class n{_elementRef=R(Te);_changeDetectorRef=R(Ge);_ngZone=R(De);_animationMode=R(ot,{optional:!0});_options=R(KV,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){let i=new vb;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new ce;indeterminateChange=new ce;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Si.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){R(pt).load(xi);let e=R(new un("tabindex"),{optional:!0});this._options=this._options||HT,this.color=this._options.color||HT.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=R(At).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(e){let i=e!=this._indeterminate;this._indeterminate=e,i&&(this._indeterminate?this._transitionCheckState(Si.Indeterminate):this._transitionCheckState(this.checked?Si.Checked:Si.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(!(i===e||!r)&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);let s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Si.Checked:Si.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationMode==="NoopAnimations")return"";switch(e){case Si.Init:if(i===Si.Checked)return this._animationClasses.uncheckedToChecked;if(i==Si.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Si.Unchecked:return i===Si.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Si.Checked:return i===Si.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Si.Indeterminate:return i===Si.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){let i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(i&1&&(Pe(WV,5),Pe(qV,5)),i&2){let s;ke(s=Me())&&(r._inputElement=s.first),ke(s=Me())&&(r._labelElement=s.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,r){i&2&&(Tn("id",r.id),Se("tabindex",null)("aria-label",null)("aria-labelledby",null),ft(r.color?"mat-"+r.color:"mat-accent"),ye("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked)("mat-mdc-checkbox-disabled-interactive",r.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",_e],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",_e],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",_e],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:Ft(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e],checked:[2,"checked","checked",_e],disabled:[2,"disabled","disabled",_e],indeterminate:[2,"indeterminate","indeterminate",_e]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[rt([YV,{provide:na,useExisting:n,multi:!0}]),mt],ngContentSelectors:GV,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"div",3),X("click",function(o){return re(s),se(r._preventBubblingFromLabel(o))}),P(1,"div",4,0)(3,"div",5),X("click",function(){return re(s),se(r._onTouchTargetClick())}),U(),P(4,"input",6,1),X("blur",function(){return re(s),se(r._onBlur())})("click",function(){return re(s),se(r._onInputClick())})("change",function(o){return re(s),se(r._onInteractionEvent(o))}),U(),te(6,"div",7),P(7,"div",8),Ht(),P(8,"svg",9),te(9,"path",10),U(),Xr(),te(10,"div",11),U(),te(11,"div",12),U(),P(12,"label",13,2),Fe(14),U()()}if(i&2){let s=jt(2);j("labelPosition",r.labelPosition),$(4),ye("mdc-checkbox--selected",r.checked),j("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled&&!r.disabledInteractive)("id",r.inputId)("required",r.required)("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex),Se("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("aria-controls",r.ariaControls)("aria-disabled",r.disabled&&r.disabledInteractive?!0:null)("aria-expanded",r.ariaExpanded)("aria-owns",r.ariaOwns)("name",r.name)("value",r.value),$(7),j("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),$(),j("for",r.inputId)}},dependencies:[pn,El],styles:[`.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""} +`],encapsulation:2,changeDetection:0})}return n})();var Au=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Al,Oe,Oe]})}return n})();var yb=new J("MAT_DATE_LOCALE",{providedIn:"root",factory:QV});function QV(){return R($w)}var Il="Method not implemented",Xi=class{locale;_localeChanges=new ue;localeChanges=this._localeChanges;setTime(t,e,i,r){throw new Error(Il)}getHours(t){throw new Error(Il)}getMinutes(t){throw new Error(Il)}getSeconds(t){throw new Error(Il)}parseTime(t,e){throw new Error(Il)}addSeconds(t,e){throw new Error(Il)}getValidDateOrNull(t){return this.isDateInstance(t)&&this.isValid(t)?t:null}deserialize(t){return t==null||this.isDateInstance(t)&&this.isValid(t)?t:this.invalid()}setLocale(t){this.locale=t,this._localeChanges.next()}compareDate(t,e){return this.getYear(t)-this.getYear(e)||this.getMonth(t)-this.getMonth(e)||this.getDate(t)-this.getDate(e)}compareTime(t,e){return this.getHours(t)-this.getHours(e)||this.getMinutes(t)-this.getMinutes(e)||this.getSeconds(t)-this.getSeconds(e)}sameDate(t,e){if(t&&e){let i=this.isValid(t),r=this.isValid(e);return i&&r?!this.compareDate(t,e):i==r}return t==e}sameTime(t,e){if(t&&e){let i=this.isValid(t),r=this.isValid(e);return i&&r?!this.compareTime(t,e):i==r}return t==e}clampDate(t,e,i){return e&&this.compareDate(t,e)<0?e:i&&this.compareDate(t,i)>0?i:t}},Ya=new J("mat-date-formats");var ZV=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/,XV=/^(\d?\d)[:.](\d?\d)(?:[:.](\d?\d))?\s*(AM|PM)?$/i;function Cb(n,t){let e=Array(n);for(let i=0;i{class n extends Xi{useUtcForDisplay=!1;_matDateLocale=R(yb,{optional:!0});constructor(){super();let e=R(yb,{optional:!0});e!==void 0&&(this._matDateLocale=e),super.setLocale(this._matDateLocale)}getYear(e){return e.getFullYear()}getMonth(e){return e.getMonth()}getDate(e){return e.getDate()}getDayOfWeek(e){return e.getDay()}getMonthNames(e){let i=new Intl.DateTimeFormat(this.locale,{month:e,timeZone:"utc"});return Cb(12,r=>this._format(i,new Date(2017,r,1)))}getDateNames(){let e=new Intl.DateTimeFormat(this.locale,{day:"numeric",timeZone:"utc"});return Cb(31,i=>this._format(e,new Date(2017,0,i+1)))}getDayOfWeekNames(e){let i=new Intl.DateTimeFormat(this.locale,{weekday:e,timeZone:"utc"});return Cb(7,r=>this._format(i,new Date(2017,0,r+1)))}getYearName(e){let i=new Intl.DateTimeFormat(this.locale,{year:"numeric",timeZone:"utc"});return this._format(i,e)}getFirstDayOfWeek(){if(typeof Intl<"u"&&Intl.Locale){let e=new Intl.Locale(this.locale),i=(e.getWeekInfo?.()||e.weekInfo)?.firstDay??0;return i===7?0:i}return 0}getNumDaysInMonth(e){return this.getDate(this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+1,0))}clone(e){return new Date(e.getTime())}createDate(e,i,r){let s=this._createDateWithOverflow(e,i,r);return s.getMonth()!=i,s}today(){return new Date}parse(e,i){return typeof e=="number"?new Date(e):e?new Date(Date.parse(e)):null}format(e,i){if(!this.isValid(e))throw Error("NativeDateAdapter: Cannot format invalid date.");let r=new Intl.DateTimeFormat(this.locale,Le(H({},i),{timeZone:"utc"}));return this._format(r,e)}addCalendarYears(e,i){return this.addCalendarMonths(e,i*12)}addCalendarMonths(e,i){let r=this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+i,this.getDate(e));return this.getMonth(r)!=((this.getMonth(e)+i)%12+12)%12&&(r=this._createDateWithOverflow(this.getYear(r),this.getMonth(r),0)),r}addCalendarDays(e,i){return this._createDateWithOverflow(this.getYear(e),this.getMonth(e),this.getDate(e)+i)}toIso8601(e){return[e.getUTCFullYear(),this._2digit(e.getUTCMonth()+1),this._2digit(e.getUTCDate())].join("-")}deserialize(e){if(typeof e=="string"){if(!e)return null;if(ZV.test(e)){let i=new Date(e);if(this.isValid(i))return i}}return super.deserialize(e)}isDateInstance(e){return e instanceof Date}isValid(e){return!isNaN(e.getTime())}invalid(){return new Date(NaN)}setTime(e,i,r,s){let a=this.clone(e);return a.setHours(i,r,s,0),a}getHours(e){return e.getHours()}getMinutes(e){return e.getMinutes()}getSeconds(e){return e.getSeconds()}parseTime(e,i){if(typeof e!="string")return e instanceof Date?new Date(e.getTime()):null;let r=e.trim();if(r.length===0)return null;let s=this._parseTimeString(r);if(s===null){let a=r.replace(/[^0-9:(AM|PM)]/gi,"").trim();a.length>0&&(s=this._parseTimeString(a))}return s||this.invalid()}addSeconds(e,i){return new Date(e.getTime()+i*1e3)}_createDateWithOverflow(e,i,r){let s=new Date;return s.setFullYear(e,i,r),s.setHours(0,0,0,0),s}_2digit(e){return("00"+e).slice(-2)}_format(e,i){let r=new Date;return r.setUTCFullYear(i.getFullYear(),i.getMonth(),i.getDate()),r.setUTCHours(i.getHours(),i.getMinutes(),i.getSeconds(),i.getMilliseconds()),e.format(r)}_parseTimeString(e){let i=e.toUpperCase().match(XV);if(i){let r=parseInt(i[1]),s=parseInt(i[2]),a=i[3]==null?void 0:parseInt(i[3]),o=i[4];if(r===12?r=o==="AM"?0:r:o==="PM"&&(r+=12),wb(r,0,23)&&wb(s,0,59)&&(a==null||wb(a,0,59)))return this.setTime(this.today(),r,s,a||0)}return null}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function wb(n,t,e){return!isNaN(n)&&n>=t&&n<=e}var e4={parse:{dateInput:null,timeInput:null},display:{dateInput:{year:"numeric",month:"numeric",day:"numeric"},timeInput:{hour:"numeric",minute:"numeric"},monthYearLabel:{year:"numeric",month:"short"},dateA11yLabel:{year:"numeric",month:"long",day:"numeric"},monthYearA11yLabel:{year:"numeric",month:"long"},timeOptionLabel:{hour:"numeric",minute:"numeric"}}};var xb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[t4()]})}return n})();function t4(n=e4){return[{provide:Xi,useClass:JV},{provide:Ya,useValue:n}]}var i4=["mat-calendar-body",""];function n4(n,t){return this._trackRow(t)}var ZT=(n,t)=>t.id;function r4(n,t){if(n&1&&(P(0,"tr",0)(1,"td",3),B(2),U()()),n&2){let e=Y();$(),Jt("padding-top",e._cellPadding)("padding-bottom",e._cellPadding),Se("colspan",e.numCols),$(),je(" ",e.label," ")}}function s4(n,t){if(n&1&&(P(0,"td",3),B(1),U()),n&2){let e=Y(2);Jt("padding-top",e._cellPadding)("padding-bottom",e._cellPadding),Se("colspan",e._firstRowOffset),$(),je(" ",e._firstRowOffset>=e.labelMinRequiredCells?e.label:""," ")}}function a4(n,t){if(n&1){let e=ze();P(0,"td",6)(1,"button",7),X("click",function(r){let s=re(e).$implicit,a=Y(2);return se(a._cellClicked(s,r))})("focus",function(r){let s=re(e).$implicit,a=Y(2);return se(a._emitActiveDateChange(s,r))}),P(2,"span",8),B(3),U(),te(4,"span",9),U()()}if(n&2){let e=t.$implicit,i=t.$index,r=Y().$index,s=Y();Jt("width",s._cellWidth)("padding-top",s._cellPadding)("padding-bottom",s._cellPadding),Se("data-mat-row",r)("data-mat-col",i),$(),ye("mat-calendar-body-disabled",!e.enabled)("mat-calendar-body-active",s._isActiveCell(r,i))("mat-calendar-body-range-start",s._isRangeStart(e.compareValue))("mat-calendar-body-range-end",s._isRangeEnd(e.compareValue))("mat-calendar-body-in-range",s._isInRange(e.compareValue))("mat-calendar-body-comparison-bridge-start",s._isComparisonBridgeStart(e.compareValue,r,i))("mat-calendar-body-comparison-bridge-end",s._isComparisonBridgeEnd(e.compareValue,r,i))("mat-calendar-body-comparison-start",s._isComparisonStart(e.compareValue))("mat-calendar-body-comparison-end",s._isComparisonEnd(e.compareValue))("mat-calendar-body-in-comparison-range",s._isInComparisonRange(e.compareValue))("mat-calendar-body-preview-start",s._isPreviewStart(e.compareValue))("mat-calendar-body-preview-end",s._isPreviewEnd(e.compareValue))("mat-calendar-body-in-preview",s._isInPreview(e.compareValue)),j("ngClass",e.cssClasses)("tabindex",s._isActiveCell(r,i)?0:-1),Se("aria-label",e.ariaLabel)("aria-disabled",!e.enabled||null)("aria-pressed",s._isSelected(e.compareValue))("aria-current",s.todayValue===e.compareValue?"date":null)("aria-describedby",s._getDescribedby(e.compareValue)),$(),ye("mat-calendar-body-selected",s._isSelected(e.compareValue))("mat-calendar-body-comparison-identical",s._isComparisonIdentical(e.compareValue))("mat-calendar-body-today",s.todayValue===e.compareValue),$(),je(" ",e.displayValue," ")}}function o4(n,t){if(n&1&&(P(0,"tr",1),oe(1,s4,2,6,"td",4),gr(2,a4,5,48,"td",5,ZT),U()),n&2){let e=t.$implicit,i=t.$index,r=Y();$(),Je(i===0&&r._firstRowOffset?1:-1),$(),_r(e)}}function l4(n,t){if(n&1&&(P(0,"th",2)(1,"span",6),B(2),U(),P(3,"span",3),B(4),U()()),n&2){let e=t.$implicit;$(2),He(e.long),$(2),He(e.narrow)}}var c4=["*"];function u4(n,t){}function d4(n,t){if(n&1){let e=ze();P(0,"mat-month-view",4),Vs("activeDateChange",function(r){re(e);let s=Y();return $s(s.activeDate,r)||(s.activeDate=r),se(r)}),X("_userSelection",function(r){re(e);let s=Y();return se(s._dateSelected(r))})("dragStarted",function(r){re(e);let s=Y();return se(s._dragStarted(r))})("dragEnded",function(r){re(e);let s=Y();return se(s._dragEnded(r))}),U()}if(n&2){let e=Y();Us("activeDate",e.activeDate),j("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)("comparisonStart",e.comparisonStart)("comparisonEnd",e.comparisonEnd)("startDateAccessibleName",e.startDateAccessibleName)("endDateAccessibleName",e.endDateAccessibleName)("activeDrag",e._activeDrag)}}function h4(n,t){if(n&1){let e=ze();P(0,"mat-year-view",5),Vs("activeDateChange",function(r){re(e);let s=Y();return $s(s.activeDate,r)||(s.activeDate=r),se(r)}),X("monthSelected",function(r){re(e);let s=Y();return se(s._monthSelectedInYearView(r))})("selectedChange",function(r){re(e);let s=Y();return se(s._goToDateInView(r,"month"))}),U()}if(n&2){let e=Y();Us("activeDate",e.activeDate),j("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)}}function m4(n,t){if(n&1){let e=ze();P(0,"mat-multi-year-view",6),Vs("activeDateChange",function(r){re(e);let s=Y();return $s(s.activeDate,r)||(s.activeDate=r),se(r)}),X("yearSelected",function(r){re(e);let s=Y();return se(s._yearSelectedInMultiYearView(r))})("selectedChange",function(r){re(e);let s=Y();return se(s._goToDateInView(r,"year"))}),U()}if(n&2){let e=Y();Us("activeDate",e.activeDate),j("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)}}function f4(n,t){}var p4=["button"],g4=[[["","matDatepickerToggleIcon",""]]],_4=["[matDatepickerToggleIcon]"];function b4(n,t){n&1&&(Ht(),P(0,"svg",2),te(1,"path",3),U())}var Rl=(()=>{class n{changes=new ue;calendarLabel="Calendar";openCalendarLabel="Open calendar";closeCalendarLabel="Close calendar";prevMonthLabel="Previous month";nextMonthLabel="Next month";prevYearLabel="Previous year";nextYearLabel="Next year";prevMultiYearLabel="Previous 24 years";nextMultiYearLabel="Next 24 years";switchToMonthViewLabel="Choose date";switchToMultiYearViewLabel="Choose month and year";startDateLabel="Start date";endDateLabel="End date";comparisonDateLabel="Comparison range";formatYearRange(e,i){return`${e} \u2013 ${i}`}formatYearRangeLabel(e,i){return`${e} to ${i}`}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),v4=0,Du=class{value;displayValue;ariaLabel;enabled;cssClasses;compareValue;rawValue;id=v4++;constructor(t,e,i,r,s={},a=t,o){this.value=t,this.displayValue=e,this.ariaLabel=i,this.enabled=r,this.cssClasses=s,this.compareValue=a,this.rawValue=o}},y4={passive:!1,capture:!0},bf={passive:!0,capture:!0},qT={passive:!0},Dl=(()=>{class n{_elementRef=R(Te);_ngZone=R(De);_platform=R(st);_intl=R(Rl);_eventCleanups;_skipNextFocus;_focusActiveCellAfterViewChecked=!1;label;rows;todayValue;startValue;endValue;labelMinRequiredCells;numCols=7;activeCell=0;ngAfterViewChecked(){this._focusActiveCellAfterViewChecked&&(this._focusActiveCell(),this._focusActiveCellAfterViewChecked=!1)}isRange=!1;cellAspectRatio=1;comparisonStart;comparisonEnd;previewStart=null;previewEnd=null;startDateAccessibleName;endDateAccessibleName;selectedValueChange=new ce;previewChange=new ce;activeDateChange=new ce;dragStarted=new ce;dragEnded=new ce;_firstRowOffset;_cellPadding;_cellWidth;_startDateLabelId;_endDateLabelId;_comparisonStartDateLabelId;_comparisonEndDateLabelId;_didDragSinceMouseDown=!1;_injector=R(ut);comparisonDateAccessibleName=this._intl.comparisonDateLabel;_trackRow=e=>e;constructor(){let e=R(Rt),i=R(At);this._startDateLabelId=i.getId("mat-calendar-body-start-"),this._endDateLabelId=i.getId("mat-calendar-body-end-"),this._comparisonStartDateLabelId=i.getId("mat-calendar-body-comparison-start-"),this._comparisonEndDateLabelId=i.getId("mat-calendar-body-comparison-end-"),R(pt).load(xi),this._ngZone.runOutsideAngular(()=>{let r=this._elementRef.nativeElement,s=[Ot(e,r,"touchmove",this._touchmoveHandler,y4),Ot(e,r,"mouseenter",this._enterHandler,bf),Ot(e,r,"focus",this._enterHandler,bf),Ot(e,r,"mouseleave",this._leaveHandler,bf),Ot(e,r,"blur",this._leaveHandler,bf),Ot(e,r,"mousedown",this._mousedownHandler,qT),Ot(e,r,"touchstart",this._mousedownHandler,qT)];this._platform.isBrowser&&s.push(e.listen("window","mouseup",this._mouseupHandler),e.listen("window","touchend",this._touchendHandler)),this._eventCleanups=s})}_cellClicked(e,i){this._didDragSinceMouseDown||e.enabled&&this.selectedValueChange.emit({value:e.value,event:i})}_emitActiveDateChange(e,i){e.enabled&&this.activeDateChange.emit({value:e.value,event:i})}_isSelected(e){return this.startValue===e||this.endValue===e}ngOnChanges(e){let i=e.numCols,{rows:r,numCols:s}=this;(e.rows||i)&&(this._firstRowOffset=r&&r.length&&r[0].length?s-r[0].length:0),(e.cellAspectRatio||i||!this._cellPadding)&&(this._cellPadding=`${50*this.cellAspectRatio/s}%`),(i||!this._cellWidth)&&(this._cellWidth=`${100/s}%`)}ngOnDestroy(){this._eventCleanups.forEach(e=>e())}_isActiveCell(e,i){let r=e*this.numCols+i;return e&&(r-=this._firstRowOffset),r==this.activeCell}_focusActiveCell(e=!0){Yt(()=>{setTimeout(()=>{let i=this._elementRef.nativeElement.querySelector(".mat-calendar-body-active");i&&(e||(this._skipNextFocus=!0),i.focus())})},{injector:this._injector})}_scheduleFocusActiveCellAfterViewChecked(){this._focusActiveCellAfterViewChecked=!0}_isRangeStart(e){return Mb(e,this.startValue,this.endValue)}_isRangeEnd(e){return Tb(e,this.startValue,this.endValue)}_isInRange(e){return Eb(e,this.startValue,this.endValue,this.isRange)}_isComparisonStart(e){return Mb(e,this.comparisonStart,this.comparisonEnd)}_isComparisonBridgeStart(e,i,r){if(!this._isComparisonStart(e)||this._isRangeStart(e)||!this._isInRange(e))return!1;let s=this.rows[i][r-1];if(!s){let a=this.rows[i-1];s=a&&a[a.length-1]}return s&&!this._isRangeEnd(s.compareValue)}_isComparisonBridgeEnd(e,i,r){if(!this._isComparisonEnd(e)||this._isRangeEnd(e)||!this._isInRange(e))return!1;let s=this.rows[i][r+1];if(!s){let a=this.rows[i+1];s=a&&a[0]}return s&&!this._isRangeStart(s.compareValue)}_isComparisonEnd(e){return Tb(e,this.comparisonStart,this.comparisonEnd)}_isInComparisonRange(e){return Eb(e,this.comparisonStart,this.comparisonEnd,this.isRange)}_isComparisonIdentical(e){return this.comparisonStart===this.comparisonEnd&&e===this.comparisonStart}_isPreviewStart(e){return Mb(e,this.previewStart,this.previewEnd)}_isPreviewEnd(e){return Tb(e,this.previewStart,this.previewEnd)}_isInPreview(e){return Eb(e,this.previewStart,this.previewEnd,this.isRange)}_getDescribedby(e){if(!this.isRange)return null;if(this.startValue===e&&this.endValue===e)return`${this._startDateLabelId} ${this._endDateLabelId}`;if(this.startValue===e)return this._startDateLabelId;if(this.endValue===e)return this._endDateLabelId;if(this.comparisonStart!==null&&this.comparisonEnd!==null){if(e===this.comparisonStart&&e===this.comparisonEnd)return`${this._comparisonStartDateLabelId} ${this._comparisonEndDateLabelId}`;if(e===this.comparisonStart)return this._comparisonStartDateLabelId;if(e===this.comparisonEnd)return this._comparisonEndDateLabelId}return null}_enterHandler=e=>{if(this._skipNextFocus&&e.type==="focus"){this._skipNextFocus=!1;return}if(e.target&&this.isRange){let i=this._getCellFromElement(e.target);i&&this._ngZone.run(()=>this.previewChange.emit({value:i.enabled?i:null,event:e}))}};_touchmoveHandler=e=>{if(!this.isRange)return;let i=GT(e),r=i?this._getCellFromElement(i):null;i!==e.target&&(this._didDragSinceMouseDown=!0),kb(e.target)&&e.preventDefault(),this._ngZone.run(()=>this.previewChange.emit({value:r?.enabled?r:null,event:e}))};_leaveHandler=e=>{this.previewEnd!==null&&this.isRange&&(e.type!=="blur"&&(this._didDragSinceMouseDown=!0),e.target&&this._getCellFromElement(e.target)&&!(e.relatedTarget&&this._getCellFromElement(e.relatedTarget))&&this._ngZone.run(()=>this.previewChange.emit({value:null,event:e})))};_mousedownHandler=e=>{if(!this.isRange)return;this._didDragSinceMouseDown=!1;let i=e.target&&this._getCellFromElement(e.target);!i||!this._isInRange(i.compareValue)||this._ngZone.run(()=>{this.dragStarted.emit({value:i.rawValue,event:e})})};_mouseupHandler=e=>{if(!this.isRange)return;let i=kb(e.target);if(!i){this._ngZone.run(()=>{this.dragEnded.emit({value:null,event:e})});return}i.closest(".mat-calendar-body")===this._elementRef.nativeElement&&this._ngZone.run(()=>{let r=this._getCellFromElement(i);this.dragEnded.emit({value:r?.rawValue??null,event:e})})};_touchendHandler=e=>{let i=GT(e);i&&this._mouseupHandler({target:i})};_getCellFromElement(e){let i=kb(e);if(i){let r=i.getAttribute("data-mat-row"),s=i.getAttribute("data-mat-col");if(r&&s)return this.rows[parseInt(r)][parseInt(s)]}return null}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["","mat-calendar-body",""]],hostAttrs:[1,"mat-calendar-body"],inputs:{label:"label",rows:"rows",todayValue:"todayValue",startValue:"startValue",endValue:"endValue",labelMinRequiredCells:"labelMinRequiredCells",numCols:"numCols",activeCell:"activeCell",isRange:"isRange",cellAspectRatio:"cellAspectRatio",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",previewStart:"previewStart",previewEnd:"previewEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedValueChange:"selectedValueChange",previewChange:"previewChange",activeDateChange:"activeDateChange",dragStarted:"dragStarted",dragEnded:"dragEnded"},exportAs:["matCalendarBody"],features:[mt],attrs:i4,decls:11,vars:11,consts:[["aria-hidden","true"],["role","row"],[1,"mat-calendar-body-hidden-label",3,"id"],[1,"mat-calendar-body-label"],[1,"mat-calendar-body-label",3,"paddingTop","paddingBottom"],["role","gridcell",1,"mat-calendar-body-cell-container",3,"width","paddingTop","paddingBottom"],["role","gridcell",1,"mat-calendar-body-cell-container"],["type","button",1,"mat-calendar-body-cell",3,"click","focus","ngClass","tabindex"],[1,"mat-calendar-body-cell-content","mat-focus-indicator"],["aria-hidden","true",1,"mat-calendar-body-cell-preview"]],template:function(i,r){i&1&&(oe(0,r4,3,6,"tr",0),gr(1,o4,4,1,"tr",1,n4,!0),P(3,"span",2),B(4),U(),P(5,"span",2),B(6),U(),P(7,"span",2),B(8),U(),P(9,"span",2),B(10),U()),i&2&&(Je(r._firstRowOffset.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:var(--mat-datepicker-calendar-date-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:var(--mat-datepicker-calendar-date-today-disabled-state-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mat-calendar-body-disabled{opacity:.5}}.mat-calendar-body-cell-content{top:5%;left:5%;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px;color:var(--mat-datepicker-calendar-date-text-color, var(--mat-sys-on-surface));border-color:var(--mat-datepicker-calendar-date-outline-color, transparent)}.mat-calendar-body-cell-content.mat-focus-indicator{position:absolute}@media(forced-colors: active){.mat-calendar-body-cell-content{border:none}}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-focus-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-hover-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}}.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-state-background-color, var(--mat-sys-primary));color:var(--mat-datepicker-calendar-date-selected-state-text-color, var(--mat-sys-on-primary))}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-calendar-body-selected.mat-calendar-body-today{box-shadow:inset 0 0 0 1px var(--mat-datepicker-calendar-date-today-selected-state-outline-color, var(--mat-sys-primary))}.mat-calendar-body-in-range::before{background:var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container))}.mat-calendar-body-comparison-bridge-start::before,[dir=rtl] .mat-calendar-body-comparison-bridge-end::before{background:linear-gradient(to right, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container)) 50%)}.mat-calendar-body-comparison-bridge-end::before,[dir=rtl] .mat-calendar-body-comparison-bridge-start::before{background:linear-gradient(to left, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container)) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after{background:var(--mat-datepicker-calendar-date-in-overlap-range-state-background-color, var(--mat-sys-secondary-container))}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:var(--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color, var(--mat-sys-secondary))}@media(forced-colors: active){.mat-datepicker-popup:not(:empty),.mat-calendar-body-cell:not(.mat-calendar-body-in-range) .mat-calendar-body-selected{outline:solid 1px}.mat-calendar-body-today{outline:dotted 1px}.mat-calendar-body-cell::before,.mat-calendar-body-cell::after,.mat-calendar-body-selected{background:none}.mat-calendar-body-in-range::before,.mat-calendar-body-comparison-bridge-start::before,.mat-calendar-body-comparison-bridge-end::before{border-top:solid 1px;border-bottom:solid 1px}.mat-calendar-body-range-start::before{border-left:solid 1px}[dir=rtl] .mat-calendar-body-range-start::before{border-left:0;border-right:solid 1px}.mat-calendar-body-range-end::before{border-right:solid 1px}[dir=rtl] .mat-calendar-body-range-end::before{border-right:0;border-left:solid 1px}.mat-calendar-body-in-comparison-range::before{border-top:dashed 1px;border-bottom:dashed 1px}.mat-calendar-body-comparison-start::before{border-left:dashed 1px}[dir=rtl] .mat-calendar-body-comparison-start::before{border-left:0;border-right:dashed 1px}.mat-calendar-body-comparison-end::before{border-right:dashed 1px}[dir=rtl] .mat-calendar-body-comparison-end::before{border-right:0;border-left:dashed 1px}} +`],encapsulation:2,changeDetection:0})}return n})();function Sb(n){return n?.nodeName==="TD"}function kb(n){let t;return Sb(n)?t=n:Sb(n.parentNode)?t=n.parentNode:Sb(n.parentNode?.parentNode)&&(t=n.parentNode.parentNode),t?.getAttribute("data-mat-row")!=null?t:null}function Mb(n,t,e){return e!==null&&t!==e&&n=t&&n===e}function Eb(n,t,e,i){return i&&t!==null&&e!==null&&t!==e&&n>=t&&n<=e}function GT(n){let t=n.changedTouches[0];return document.elementFromPoint(t.clientX,t.clientY)}var Fn=class{start;end;_disableStructuralEquivalency;constructor(t,e){this.start=t,this.end=e}},vf=(()=>{class n{selection;_adapter;_selectionChanged=new ue;selectionChanged=this._selectionChanged;constructor(e,i){this.selection=e,this._adapter=i,this.selection=e}updateSelection(e,i){let r=this.selection;this.selection=e,this._selectionChanged.next({selection:e,source:i,oldValue:r})}ngOnDestroy(){this._selectionChanged.complete()}_isValidDateInstance(e){return this._adapter.isDateInstance(e)&&this._adapter.isValid(e)}static \u0275fac=function(i){dh()};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),C4=(()=>{class n extends vf{constructor(e){super(null,e)}add(e){super.updateSelection(e,this)}isValid(){return this.selection!=null&&this._isValidDateInstance(this.selection)}isComplete(){return this.selection!=null}clone(){let e=new n(this._adapter);return e.updateSelection(this.selection,this),e}static \u0275fac=function(i){return new(i||n)(Re(Xi))};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function w4(n,t){return n||new C4(t)}var x4={provide:vf,deps:[[new Io,new yc,vf],Xi],useFactory:w4};var XT=new J("MAT_DATE_RANGE_SELECTION_STRATEGY");var Ab=7,S4=0,KT=(()=>{class n{_changeDetectorRef=R(Ge);_dateFormats=R(Ya,{optional:!0});_dateAdapter=R(Xi,{optional:!0});_dir=R(ti,{optional:!0});_rangeStrategy=R(XT,{optional:!0});_rerenderSubscription=St.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),this._hasSameMonthAndYear(i,this._activeDate)||this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Fn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setRanges(this._selected)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;activeDrag=null;selectedChange=new ce;_userSelection=new ce;dragStarted=new ce;dragEnded=new ce;activeDateChange=new ce;_matCalendarBody;_monthLabel;_weeks;_firstWeekOffset;_rangeStart;_rangeEnd;_comparisonRangeStart;_comparisonRangeEnd;_previewStart;_previewEnd;_isRange;_todayDate;_weekdays;constructor(){R(pt).load(Mr),this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Bt(null)).subscribe(()=>this._init())}ngOnChanges(e){let i=e.comparisonStart||e.comparisonEnd;i&&!i.firstChange&&this._setRanges(this.selected),e.activeDrag&&!this.activeDrag&&this._clearPreview()}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_dateSelected(e){let i=e.value,r=this._getDateFromDayOfMonth(i),s,a;this._selected instanceof Fn?(s=this._getDateInCurrentMonth(this._selected.start),a=this._getDateInCurrentMonth(this._selected.end)):s=a=this._getDateInCurrentMonth(this._selected),(s!==i||a!==i)&&this.selectedChange.emit(r),this._userSelection.emit({value:r,event:e.event}),this._clearPreview(),this._changeDetectorRef.markForCheck()}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromDayOfMonth(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this._activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case 40:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case 36:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case 33:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case 34:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case 13:case 32:this._selectionKeyPressed=!0,this._canSelect(this._activeDate)&&e.preventDefault();return;case 27:this._previewEnd!=null&&!wi(e)&&(this._clearPreview(),this.activeDrag?this.dragEnded.emit({value:null,event:e}):(this.selectedChange.emit(null),this._userSelection.emit({value:null,event:e})),e.preventDefault(),e.stopPropagation());return;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._canSelect(this._activeDate)&&this._dateSelected({value:this._dateAdapter.getDate(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_init(){this._setRanges(this.selected),this._todayDate=this._getCellCompareValue(this._dateAdapter.today()),this._monthLabel=this._dateFormats.display.monthLabel?this._dateAdapter.format(this.activeDate,this._dateFormats.display.monthLabel):this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();let e=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(Ab+this._dateAdapter.getDayOfWeek(e)-this._dateAdapter.getFirstDayOfWeek())%Ab,this._initWeekdays(),this._createWeekCells(),this._changeDetectorRef.markForCheck()}_focusActiveCell(e){this._matCalendarBody._focusActiveCell(e)}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_previewChanged({event:e,value:i}){if(this._rangeStrategy){let r=i?i.rawValue:null,s=this._rangeStrategy.createPreview(r,this.selected,e);if(this._previewStart=this._getCellCompareValue(s.start),this._previewEnd=this._getCellCompareValue(s.end),this.activeDrag&&r){let a=this._rangeStrategy.createDrag?.(this.activeDrag.value,this.selected,r,e);a&&(this._previewStart=this._getCellCompareValue(a.start),this._previewEnd=this._getCellCompareValue(a.end))}this._changeDetectorRef.detectChanges()}}_dragEnded(e){if(this.activeDrag)if(e.value){let i=this._rangeStrategy?.createDrag?.(this.activeDrag.value,this.selected,e.value,e.event);this.dragEnded.emit({value:i??null,event:e.event})}else this.dragEnded.emit({value:null,event:e.event})}_getDateFromDayOfMonth(e){return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),e)}_initWeekdays(){let e=this._dateAdapter.getFirstDayOfWeek(),i=this._dateAdapter.getDayOfWeekNames("narrow"),s=this._dateAdapter.getDayOfWeekNames("long").map((a,o)=>({long:a,narrow:i[o],id:S4++}));this._weekdays=s.slice(e).concat(s.slice(0,e))}_createWeekCells(){let e=this._dateAdapter.getNumDaysInMonth(this.activeDate),i=this._dateAdapter.getDateNames();this._weeks=[[]];for(let r=0,s=this._firstWeekOffset;r=0)&&(!this.maxDate||this._dateAdapter.compareDate(e,this.maxDate)<=0)&&(!this.dateFilter||this.dateFilter(e))}_getDateInCurrentMonth(e){return e&&this._hasSameMonthAndYear(e,this.activeDate)?this._dateAdapter.getDate(e):null}_hasSameMonthAndYear(e,i){return!!(e&&i&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(i)&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i))}_getCellCompareValue(e){if(e){let i=this._dateAdapter.getYear(e),r=this._dateAdapter.getMonth(e),s=this._dateAdapter.getDate(e);return new Date(i,r,s).getTime()}return null}_isRtl(){return this._dir&&this._dir.value==="rtl"}_setRanges(e){e instanceof Fn?(this._rangeStart=this._getCellCompareValue(e.start),this._rangeEnd=this._getCellCompareValue(e.end),this._isRange=!0):(this._rangeStart=this._rangeEnd=this._getCellCompareValue(e),this._isRange=!1),this._comparisonRangeStart=this._getCellCompareValue(this.comparisonStart),this._comparisonRangeEnd=this._getCellCompareValue(this.comparisonEnd)}_canSelect(e){return!this.dateFilter||this.dateFilter(e)}_clearPreview(){this._previewStart=this._previewEnd=null}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-month-view"]],viewQuery:function(i,r){if(i&1&&Pe(Dl,5),i&2){let s;ke(s=Me())&&(r._matCalendarBody=s.first)}},inputs:{activeDate:"activeDate",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName",activeDrag:"activeDrag"},outputs:{selectedChange:"selectedChange",_userSelection:"_userSelection",dragStarted:"dragStarted",dragEnded:"dragEnded",activeDateChange:"activeDateChange"},exportAs:["matMonthView"],features:[mt],decls:8,vars:14,consts:[["role","grid",1,"mat-calendar-table"],[1,"mat-calendar-table-header"],["scope","col"],["aria-hidden","true"],["colspan","7",1,"mat-calendar-table-header-divider"],["mat-calendar-body","",3,"selectedValueChange","activeDateChange","previewChange","dragStarted","dragEnded","keyup","keydown","label","rows","todayValue","startValue","endValue","comparisonStart","comparisonEnd","previewStart","previewEnd","isRange","labelMinRequiredCells","activeCell","startDateAccessibleName","endDateAccessibleName"],[1,"cdk-visually-hidden"]],template:function(i,r){i&1&&(P(0,"table",0)(1,"thead",1)(2,"tr"),gr(3,l4,5,2,"th",2,ZT),U(),P(5,"tr",3),te(6,"th",4),U()(),P(7,"tbody",5),X("selectedValueChange",function(a){return r._dateSelected(a)})("activeDateChange",function(a){return r._updateActiveDate(a)})("previewChange",function(a){return r._previewChanged(a)})("dragStarted",function(a){return r.dragStarted.emit(a)})("dragEnded",function(a){return r._dragEnded(a)})("keyup",function(a){return r._handleCalendarBodyKeyup(a)})("keydown",function(a){return r._handleCalendarBodyKeydown(a)}),U()()),i&2&&($(3),_r(r._weekdays),$(4),j("label",r._monthLabel)("rows",r._weeks)("todayValue",r._todayDate)("startValue",r._rangeStart)("endValue",r._rangeEnd)("comparisonStart",r._comparisonRangeStart)("comparisonEnd",r._comparisonRangeEnd)("previewStart",r._previewStart)("previewEnd",r._previewEnd)("isRange",r._isRange)("labelMinRequiredCells",3)("activeCell",r._dateAdapter.getDate(r.activeDate)-1)("startDateAccessibleName",r.startDateAccessibleName)("endDateAccessibleName",r.endDateAccessibleName))},dependencies:[Dl],encapsulation:2,changeDetection:0})}return n})(),Cn=24,Ib=4,YT=(()=>{class n{_changeDetectorRef=R(Ge);_dateAdapter=R(Xi,{optional:!0});_dir=R(ti,{optional:!0});_rerenderSubscription=St.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),JT(this._dateAdapter,i,this._activeDate,this.minDate,this.maxDate)||this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Fn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedYear(e)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;selectedChange=new ce;yearSelected=new ce;activeDateChange=new ce;_matCalendarBody;_years;_todayYear;_selectedYear;constructor(){this._dateAdapter,this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Bt(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_init(){this._todayYear=this._dateAdapter.getYear(this._dateAdapter.today());let i=this._dateAdapter.getYear(this._activeDate)-Iu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate);this._years=[];for(let r=0,s=[];rthis._createCellForYear(a))),s=[]);this._changeDetectorRef.markForCheck()}_yearSelected(e){let i=e.value,r=this._dateAdapter.createDate(i,0,1),s=this._getDateFromYear(i);this.yearSelected.emit(r),this.selectedChange.emit(s)}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromYear(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-Ib);break;case 40:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,Ib);break;case 36:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-Iu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,Cn-Iu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)-1);break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-Cn*10:-Cn);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?Cn*10:Cn);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked(),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._yearSelected({value:this._dateAdapter.getYear(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_getActiveCell(){return Iu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getDateFromYear(e){let i=this._dateAdapter.getMonth(this.activeDate),r=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(e,i,1));return this._dateAdapter.createDate(e,i,Math.min(this._dateAdapter.getDate(this.activeDate),r))}_createCellForYear(e){let i=this._dateAdapter.createDate(e,0,1),r=this._dateAdapter.getYearName(i),s=this.dateClass?this.dateClass(i,"multi-year"):void 0;return new Du(e,r,r,this._shouldEnableYear(e),s)}_shouldEnableYear(e){if(e==null||this.maxDate&&e>this._dateAdapter.getYear(this.maxDate)||this.minDate&&e{class n{_changeDetectorRef=R(Ge);_dateFormats=R(Ya,{optional:!0});_dateAdapter=R(Xi,{optional:!0});_dir=R(ti,{optional:!0});_rerenderSubscription=St.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),this._dateAdapter.getYear(i)!==this._dateAdapter.getYear(this._activeDate)&&this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Fn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedMonth(e)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;selectedChange=new ce;monthSelected=new ce;activeDateChange=new ce;_matCalendarBody;_months;_yearLabel;_todayMonth;_selectedMonth;constructor(){this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Bt(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_monthSelected(e){let i=e.value,r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),i,1);this.monthSelected.emit(r);let s=this._getDateFromMonth(i);this.selectedChange.emit(s)}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromMonth(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-4);break;case 40:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,4);break;case 36:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-10:-1);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?10:1);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._monthSelected({value:this._dateAdapter.getMonth(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_init(){this._setSelectedMonth(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);let e=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map(i=>i.map(r=>this._createCellForMonth(r,e[r]))),this._changeDetectorRef.markForCheck()}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getMonthInCurrentYear(e){return e&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(e):null}_getDateFromMonth(e){let i=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),r=this._dateAdapter.getNumDaysInMonth(i);return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,Math.min(this._dateAdapter.getDate(this.activeDate),r))}_createCellForMonth(e,i){let r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),s=this._dateAdapter.format(r,this._dateFormats.display.monthYearA11yLabel),a=this.dateClass?this.dateClass(r,"year"):void 0;return new Du(e,i.toLocaleUpperCase(),s,this._shouldEnableMonth(e),a)}_shouldEnableMonth(e){let i=this._dateAdapter.getYear(this.activeDate);if(e==null||this._isYearAndMonthAfterMaxDate(i,e)||this._isYearAndMonthBeforeMinDate(i,e))return!1;if(!this.dateFilter)return!0;let r=this._dateAdapter.createDate(i,e,1);for(let s=r;this._dateAdapter.getMonth(s)==e;s=this._dateAdapter.addCalendarDays(s,1))if(this.dateFilter(s))return!0;return!1}_isYearAndMonthAfterMaxDate(e,i){if(this.maxDate){let r=this._dateAdapter.getYear(this.maxDate),s=this._dateAdapter.getMonth(this.maxDate);return e>r||e===r&&i>s}return!1}_isYearAndMonthBeforeMinDate(e,i){if(this.minDate){let r=this._dateAdapter.getYear(this.minDate),s=this._dateAdapter.getMonth(this.minDate);return e{class n{_intl=R(Rl);calendar=R(Db);_dateAdapter=R(Xi,{optional:!0});_dateFormats=R(Ya,{optional:!0});constructor(){R(pt).load(Mr);let e=R(Ge);this.calendar.stateChanges.subscribe(()=>e.markForCheck())}get periodButtonText(){return this.calendar.currentView=="month"?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this.calendar.currentView=="year"?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRange(...this._formatMinAndMaxYearLabels())}get periodButtonDescription(){return this.calendar.currentView=="month"?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this.calendar.currentView=="year"?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRangeLabel(...this._formatMinAndMaxYearLabels())}get periodButtonLabel(){return this.calendar.currentView=="month"?this._intl.switchToMultiYearViewLabel:this._intl.switchToMonthViewLabel}get prevButtonLabel(){return{month:this._intl.prevMonthLabel,year:this._intl.prevYearLabel,"multi-year":this._intl.prevMultiYearLabel}[this.calendar.currentView]}get nextButtonLabel(){return{month:this._intl.nextMonthLabel,year:this._intl.nextYearLabel,"multi-year":this._intl.nextMultiYearLabel}[this.calendar.currentView]}currentPeriodClicked(){this.calendar.currentView=this.calendar.currentView=="month"?"multi-year":"month"}previousClicked(){this.calendar.activeDate=this.calendar.currentView=="month"?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,-1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,this.calendar.currentView=="year"?-1:-Cn)}nextClicked(){this.calendar.activeDate=this.calendar.currentView=="month"?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,this.calendar.currentView=="year"?1:Cn)}previousEnabled(){return this.calendar.minDate?!this.calendar.minDate||!this._isSameView(this.calendar.activeDate,this.calendar.minDate):!0}nextEnabled(){return!this.calendar.maxDate||!this._isSameView(this.calendar.activeDate,this.calendar.maxDate)}_isSameView(e,i){return this.calendar.currentView=="month"?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i)&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(i):this.calendar.currentView=="year"?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i):JT(this._dateAdapter,e,i,this.calendar.minDate,this.calendar.maxDate)}_formatMinAndMaxYearLabels(){let i=this._dateAdapter.getYear(this.calendar.activeDate)-Iu(this._dateAdapter,this.calendar.activeDate,this.calendar.minDate,this.calendar.maxDate),r=i+Cn-1,s=this._dateAdapter.getYearName(this._dateAdapter.createDate(i,0,1)),a=this._dateAdapter.getYearName(this._dateAdapter.createDate(r,0,1));return[s,a]}_periodButtonLabelId=R(At).getId("mat-calendar-period-label-");static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-calendar-header"]],exportAs:["matCalendarHeader"],ngContentSelectors:c4,decls:17,vars:11,consts:[[1,"mat-calendar-header"],[1,"mat-calendar-controls"],["aria-live","polite",1,"cdk-visually-hidden",3,"id"],["mat-button","","type","button",1,"mat-calendar-period-button",3,"click"],["aria-hidden","true"],["viewBox","0 0 10 5","focusable","false","aria-hidden","true",1,"mat-calendar-arrow"],["points","0,0 5,5 10,0"],[1,"mat-calendar-spacer"],["mat-icon-button","","type","button",1,"mat-calendar-previous-button",3,"click","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-calendar-next-button",3,"click","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"]],template:function(i,r){i&1&&(Qe(),P(0,"div",0)(1,"div",1)(2,"span",2),B(3),U(),P(4,"button",3),X("click",function(){return r.currentPeriodClicked()}),P(5,"span",4),B(6),U(),Ht(),P(7,"svg",5),te(8,"polygon",6),U()(),Xr(),te(9,"div",7),Fe(10),P(11,"button",8),X("click",function(){return r.previousClicked()}),Ht(),P(12,"svg",9),te(13,"path",10),U()(),Xr(),P(14,"button",11),X("click",function(){return r.nextClicked()}),Ht(),P(15,"svg",9),te(16,"path",12),U()()()()),i&2&&($(2),j("id",r._periodButtonLabelId),$(),He(r.periodButtonDescription),$(),Se("aria-label",r.periodButtonLabel)("aria-describedby",r._periodButtonLabelId),$(2),He(r.periodButtonText),$(),ye("mat-calendar-invert",r.calendar.currentView!=="month"),$(4),j("disabled",!r.previousEnabled()),Se("aria-label",r.prevButtonLabel),$(3),j("disabled",!r.nextEnabled()),Se("aria-label",r.nextButtonLabel))},dependencies:[ms,ra],encapsulation:2,changeDetection:0})}return n})(),Db=(()=>{class n{_dateAdapter=R(Xi,{optional:!0});_dateFormats=R(Ya,{optional:!0});_changeDetectorRef=R(Ge);_elementRef=R(Te);headerComponent;_calendarHeaderPortal;_intlChanges;_moveFocusOnNextTick=!1;get startAt(){return this._startAt}set startAt(e){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_startAt;startView="month";get selected(){return this._selected}set selected(e){e instanceof Fn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;selectedChange=new ce;yearSelected=new ce;monthSelected=new ce;viewChanged=new ce(!0);_userSelection=new ce;_userDragDrop=new ce;monthView;yearView;multiYearView;get activeDate(){return this._clampedActiveDate}set activeDate(e){this._clampedActiveDate=this._dateAdapter.clampDate(e,this.minDate,this.maxDate),this.stateChanges.next(),this._changeDetectorRef.markForCheck()}_clampedActiveDate;get currentView(){return this._currentView}set currentView(e){let i=this._currentView!==e?e:null;this._currentView=e,this._moveFocusOnNextTick=!0,this._changeDetectorRef.markForCheck(),i&&this.viewChanged.emit(i)}_currentView;_activeDrag=null;stateChanges=new ue;constructor(){this._intlChanges=R(Rl).changes.subscribe(()=>{this._changeDetectorRef.markForCheck(),this.stateChanges.next()})}ngAfterContentInit(){this._calendarHeaderPortal=new ea(this.headerComponent||tE),this.activeDate=this.startAt||this._dateAdapter.today(),this._currentView=this.startView}ngAfterViewChecked(){this._moveFocusOnNextTick&&(this._moveFocusOnNextTick=!1,this.focusActiveCell())}ngOnDestroy(){this._intlChanges.unsubscribe(),this.stateChanges.complete()}ngOnChanges(e){let i=e.minDate&&!this._dateAdapter.sameDate(e.minDate.previousValue,e.minDate.currentValue)?e.minDate:void 0,r=e.maxDate&&!this._dateAdapter.sameDate(e.maxDate.previousValue,e.maxDate.currentValue)?e.maxDate:void 0,s=i||r||e.dateFilter;if(s&&!s.firstChange){let a=this._getCurrentViewComponent();a&&(this._elementRef.nativeElement.contains(Qc())&&(this._moveFocusOnNextTick=!0),this._changeDetectorRef.detectChanges(),a._init())}this.stateChanges.next()}focusActiveCell(){this._getCurrentViewComponent()._focusActiveCell(!1)}updateTodaysDate(){this._getCurrentViewComponent()._init()}_dateSelected(e){let i=e.value;(this.selected instanceof Fn||i&&!this._dateAdapter.sameDate(i,this.selected))&&this.selectedChange.emit(i),this._userSelection.emit(e)}_yearSelectedInMultiYearView(e){this.yearSelected.emit(e)}_monthSelectedInYearView(e){this.monthSelected.emit(e)}_goToDateInView(e,i){this.activeDate=e,this.currentView=i}_dragStarted(e){this._activeDrag=e}_dragEnded(e){this._activeDrag&&(e.value&&this._userDragDrop.emit(e),this._activeDrag=null)}_getCurrentViewComponent(){return this.monthView||this.yearView||this.multiYearView}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-calendar"]],viewQuery:function(i,r){if(i&1&&(Pe(KT,5),Pe(QT,5),Pe(YT,5)),i&2){let s;ke(s=Me())&&(r.monthView=s.first),ke(s=Me())&&(r.yearView=s.first),ke(s=Me())&&(r.multiYearView=s.first)}},hostAttrs:[1,"mat-calendar"],inputs:{headerComponent:"headerComponent",startAt:"startAt",startView:"startView",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedChange:"selectedChange",yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",_userSelection:"_userSelection",_userDragDrop:"_userDragDrop"},exportAs:["matCalendar"],features:[rt([x4]),mt],decls:5,vars:2,consts:[[3,"cdkPortalOutlet"],["cdkMonitorSubtreeFocus","","tabindex","-1",1,"mat-calendar-content"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass"],[3,"activeDateChange","_userSelection","dragStarted","dragEnded","activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag"],[3,"activeDateChange","monthSelected","selectedChange","activeDate","selected","dateFilter","maxDate","minDate","dateClass"],[3,"activeDateChange","yearSelected","selectedChange","activeDate","selected","dateFilter","maxDate","minDate","dateClass"]],template:function(i,r){if(i&1&&(oe(0,u4,0,0,"ng-template",0),P(1,"div",1),oe(2,d4,1,11,"mat-month-view",2)(3,h4,1,6,"mat-year-view",3)(4,m4,1,6,"mat-multi-year-view",3),U()),i&2){let s;j("cdkPortalOutlet",r._calendarHeaderPortal),$(2),Je((s=r.currentView)==="month"?2:s==="year"?3:s==="multi-year"?4:-1)}},dependencies:[ja,Jc,KT,QT,YT],styles:[`.mat-calendar{display:block;line-height:normal;font-family:var(--mat-datepicker-calendar-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-datepicker-calendar-text-size, var(--mat-sys-body-medium-size))}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:none}.mat-calendar-controls{display:flex;align-items:center;margin:5% calc(4.7142857143% - 16px)}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0;margin:0 8px;font-size:var(--mat-datepicker-calendar-period-button-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-datepicker-calendar-period-button-text-weight, var(--mat-sys-title-small-weight));--mdc-text-button-label-text-color:var(--mat-datepicker-calendar-period-button-text-color, var(--mat-sys-on-surface-variant))}.mat-calendar-arrow{display:inline-block;width:10px;height:5px;margin:0 0 0 5px;vertical-align:middle;fill:var(--mat-datepicker-calendar-period-button-icon-color, var(--mat-sys-on-surface-variant))}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}@media(forced-colors: active){.mat-calendar-arrow{fill:CanvasText}}.mat-datepicker-content .mat-calendar-previous-button:not(.mat-mdc-button-disabled),.mat-datepicker-content .mat-calendar-next-button:not(.mat-mdc-button-disabled){color:var(--mat-datepicker-calendar-navigation-button-icon-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-calendar-previous-button,[dir=rtl] .mat-calendar-next-button{transform:rotate(180deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0;color:var(--mat-datepicker-calendar-header-text-color, var(--mat-sys-on-surface-variant));font-size:var(--mat-datepicker-calendar-header-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-datepicker-calendar-header-text-weight, var(--mat-sys-title-small-weight))}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:"";position:absolute;top:0;left:-8px;right:-8px;height:1px;background:var(--mat-datepicker-calendar-header-divider-color, transparent)}.mat-calendar-body-cell-content::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}.mat-calendar-body-cell:focus .mat-focus-indicator::before{content:""} +`],encapsulation:2,changeDetection:0})}return n})(),M4=new J("mat-datepicker-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition()}});function T4(n){return()=>n.scrollStrategies.reposition()}var E4={provide:M4,deps:[Gt],useFactory:T4},A4=(()=>{class n{_elementRef=R(Te);_animationsDisabled=R(ot,{optional:!0})==="NoopAnimations";_changeDetectorRef=R(Ge);_globalModel=R(vf);_dateAdapter=R(Xi);_ngZone=R(De);_rangeSelectionStrategy=R(XT,{optional:!0});_stateChanges;_model;_eventCleanups;_animationFallback;_calendar;color;datepicker;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;_isAbove;_animationDone=new ue;_isAnimating=!1;_closeButtonText;_closeButtonFocused;_actionsPortal=null;_dialogLabelId;constructor(){if(R(pt).load(Mr),this._closeButtonText=R(Rl).closeCalendarLabel,!this._animationsDisabled){let e=this._elementRef.nativeElement,i=R(Rt);this._eventCleanups=this._ngZone.runOutsideAngular(()=>[i.listen(e,"animationstart",this._handleAnimationEvent),i.listen(e,"animationend",this._handleAnimationEvent),i.listen(e,"animationcancel",this._handleAnimationEvent)])}}ngAfterViewInit(){this._stateChanges=this.datepicker.stateChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()}),this._calendar.focusActiveCell()}ngOnDestroy(){clearTimeout(this._animationFallback),this._eventCleanups?.forEach(e=>e()),this._stateChanges?.unsubscribe(),this._animationDone.complete()}_handleUserSelection(e){let i=this._model.selection,r=e.value,s=i instanceof Fn;if(s&&this._rangeSelectionStrategy){let a=this._rangeSelectionStrategy.selectionFinished(r,i,e.event);this._model.updateSelection(a,this)}else r&&(s||!this._dateAdapter.sameDate(r,i))&&this._model.add(r);(!this._model||this._model.isComplete())&&!this._actionsPortal&&this.datepicker.close()}_handleUserDragDrop(e){this._model.updateSelection(e.value,this)}_startExitAnimation(){this._elementRef.nativeElement.classList.add("mat-datepicker-content-exit"),this._animationsDisabled?this._animationDone.next():(clearTimeout(this._animationFallback),this._animationFallback=setTimeout(()=>{this._isAnimating||this._animationDone.next()},200))}_handleAnimationEvent=e=>{let i=this._elementRef.nativeElement;e.target!==i||!e.animationName.startsWith("_mat-datepicker-content")||(clearTimeout(this._animationFallback),this._isAnimating=e.type==="animationstart",i.classList.toggle("mat-datepicker-content-animating",this._isAnimating),this._isAnimating||this._animationDone.next())};_getSelected(){return this._model.selection}_applyPendingSelection(){this._model!==this._globalModel&&this._globalModel.updateSelection(this._model.selection,this)}_assignActions(e,i){this._model=e?this._globalModel.clone():this._globalModel,this._actionsPortal=e,i&&this._changeDetectorRef.detectChanges()}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-datepicker-content"]],viewQuery:function(i,r){if(i&1&&Pe(Db,5),i&2){let s;ke(s=Me())&&(r._calendar=s.first)}},hostAttrs:[1,"mat-datepicker-content"],hostVars:6,hostBindings:function(i,r){i&2&&(ft(r.color?"mat-"+r.color:""),ye("mat-datepicker-content-touch",r.datepicker.touchUi)("mat-datepicker-content-animations-enabled",!r._animationsDisabled))},inputs:{color:"color"},exportAs:["matDatepickerContent"],decls:5,vars:26,consts:[["cdkTrapFocus","","role","dialog",1,"mat-datepicker-content-container"],[3,"yearSelected","monthSelected","viewChanged","_userSelection","_userDragDrop","id","startAt","startView","minDate","maxDate","dateFilter","headerComponent","selected","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName"],[3,"cdkPortalOutlet"],["type","button","mat-raised-button","",1,"mat-datepicker-close-button",3,"focus","blur","click","color"]],template:function(i,r){if(i&1&&(P(0,"div",0)(1,"mat-calendar",1),X("yearSelected",function(a){return r.datepicker._selectYear(a)})("monthSelected",function(a){return r.datepicker._selectMonth(a)})("viewChanged",function(a){return r.datepicker._viewChanged(a)})("_userSelection",function(a){return r._handleUserSelection(a)})("_userDragDrop",function(a){return r._handleUserDragDrop(a)}),U(),oe(2,f4,0,0,"ng-template",2),P(3,"button",3),X("focus",function(){return r._closeButtonFocused=!0})("blur",function(){return r._closeButtonFocused=!1})("click",function(){return r.datepicker.close()}),B(4),U()()),i&2){let s;ye("mat-datepicker-content-container-with-custom-header",r.datepicker.calendarHeaderComponent)("mat-datepicker-content-container-with-actions",r._actionsPortal),Se("aria-modal",!0)("aria-labelledby",(s=r._dialogLabelId)!==null&&s!==void 0?s:void 0),$(),ft(r.datepicker.panelClass),j("id",r.datepicker.id)("startAt",r.datepicker.startAt)("startView",r.datepicker.startView)("minDate",r.datepicker._getMinDate())("maxDate",r.datepicker._getMaxDate())("dateFilter",r.datepicker._getDateFilter())("headerComponent",r.datepicker.calendarHeaderComponent)("selected",r._getSelected())("dateClass",r.datepicker.dateClass)("comparisonStart",r.comparisonStart)("comparisonEnd",r.comparisonEnd)("startDateAccessibleName",r.startDateAccessibleName)("endDateAccessibleName",r.endDateAccessibleName),$(),j("cdkPortalOutlet",r._actionsPortal),$(),ye("cdk-visually-hidden",!r._closeButtonFocused),j("color",r.color||"primary"),$(),He(r._closeButtonText)}},dependencies:[k_,Db,ja,ms],styles:[`@keyframes _mat-datepicker-content-dropdown-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-datepicker-content-dialog-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-datepicker-content-exit{from{opacity:1}to{opacity:0}}.mat-datepicker-content{display:block;border-radius:4px;background-color:var(--mat-datepicker-calendar-container-background-color, var(--mat-sys-surface-container-high));color:var(--mat-datepicker-calendar-container-text-color, var(--mat-sys-on-surface));box-shadow:var(--mat-datepicker-calendar-container-elevation-shadow, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12));border-radius:var(--mat-datepicker-calendar-container-shape, var(--mat-sys-corner-large))}.mat-datepicker-content.mat-datepicker-content-animations-enabled{animation:_mat-datepicker-content-dropdown-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-content-container-with-custom-header .mat-calendar{height:auto}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.mat-datepicker-content-animating .mat-datepicker-content .mat-datepicker-close-button{display:none}.mat-datepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mat-datepicker-content-touch{display:block;max-height:80vh;box-shadow:var(--mat-datepicker-calendar-container-touch-elevation-shadow, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12));border-radius:var(--mat-datepicker-calendar-container-touch-shape, var(--mat-sys-corner-extra-large));position:relative;overflow:visible}.mat-datepicker-content-touch.mat-datepicker-content-animations-enabled{animation:_mat-datepicker-content-dialog-enter 150ms cubic-bezier(0, 0, 0.2, 1)}.mat-datepicker-content-touch .mat-datepicker-content-container{min-height:312px;max-height:788px;min-width:250px;max-width:750px}.mat-datepicker-content-touch .mat-calendar{width:100%;height:auto}.mat-datepicker-content-exit.mat-datepicker-content-animations-enabled{animation:_mat-datepicker-content-exit 100ms linear}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-datepicker-content-container{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-datepicker-content-container{width:80vw;height:100vw}.mat-datepicker-content-touch .mat-datepicker-content-container-with-actions{height:115vw}} +`],encapsulation:2,changeDetection:0})}return n})();var I4=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matDatepickerToggleIcon",""]]})}return n})(),D4=(()=>{class n{_intl=R(Rl);_changeDetectorRef=R(Ge);_stateChanges=St.EMPTY;datepicker;tabIndex;ariaLabel;get disabled(){return this._disabled===void 0&&this.datepicker?this.datepicker.disabled:!!this._disabled}set disabled(e){this._disabled=e}_disabled;disableRipple;_customIcon;_button;constructor(){let e=R(new un("tabindex"),{optional:!0}),i=Number(e);this.tabIndex=i||i===0?i:null}ngOnChanges(e){e.datepicker&&this._watchStateChanges()}ngOnDestroy(){this._stateChanges.unsubscribe()}ngAfterContentInit(){this._watchStateChanges()}_open(e){this.datepicker&&!this.disabled&&(this.datepicker.open(),e.stopPropagation())}_watchStateChanges(){let e=this.datepicker?this.datepicker.stateChanges:ge(),i=this.datepicker&&this.datepicker.datepickerInput?this.datepicker.datepickerInput.stateChanges:ge(),r=this.datepicker?Kt(this.datepicker.openedStream,this.datepicker.closedStream):ge();this._stateChanges.unsubscribe(),this._stateChanges=Kt(this._intl.changes,e,i,r).subscribe(()=>this._changeDetectorRef.markForCheck())}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-datepicker-toggle"]],contentQueries:function(i,r,s){if(i&1&&Et(s,I4,5),i&2){let a;ke(a=Me())&&(r._customIcon=a.first)}},viewQuery:function(i,r){if(i&1&&Pe(p4,5),i&2){let s;ke(s=Me())&&(r._button=s.first)}},hostAttrs:[1,"mat-datepicker-toggle"],hostVars:8,hostBindings:function(i,r){i&1&&X("click",function(a){return r._open(a)}),i&2&&(Se("tabindex",null)("data-mat-calendar",r.datepicker?r.datepicker.id:null),ye("mat-datepicker-toggle-active",r.datepicker&&r.datepicker.opened)("mat-accent",r.datepicker&&r.datepicker.color==="accent")("mat-warn",r.datepicker&&r.datepicker.color==="warn"))},inputs:{datepicker:[0,"for","datepicker"],tabIndex:"tabIndex",ariaLabel:[0,"aria-label","ariaLabel"],disabled:[2,"disabled","disabled",_e],disableRipple:"disableRipple"},exportAs:["matDatepickerToggle"],features:[mt],ngContentSelectors:_4,decls:4,vars:7,consts:[["button",""],["mat-icon-button","","type","button",3,"disabled","disableRipple"],["viewBox","0 0 24 24","width","24px","height","24px","fill","currentColor","focusable","false","aria-hidden","true",1,"mat-datepicker-toggle-default-icon"],["d","M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"]],template:function(i,r){i&1&&(Qe(g4),P(0,"button",1,0),oe(2,b4,2,0,":svg:svg",2),Fe(3),U()),i&2&&(j("disabled",r.disabled)("disableRipple",r.disableRipple),Se("aria-haspopup",r.datepicker?"dialog":null)("aria-label",r.ariaLabel||r._intl.openCalendarLabel)("tabindex",r.disabled?-1:r.tabIndex)("aria-expanded",r.datepicker?r.datepicker.opened:null),$(2),Je(r._customIcon?-1:2))},dependencies:[ra],styles:[`.mat-datepicker-toggle{pointer-events:auto;color:var(--mat-datepicker-toggle-icon-color, var(--mat-sys-on-surface-variant))}.mat-datepicker-toggle-active{color:var(--mat-datepicker-toggle-active-state-icon-color, var(--mat-sys-on-surface-variant))}@media(forced-colors: active){.mat-datepicker-toggle-default-icon{color:CanvasText}} +`],encapsulation:2,changeDetection:0})}return n})();var Rb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[Rl,E4],imports:[fs,Xn,eu,hu,Oe,A4,D4,tE,gn]})}return n})();var iE=(()=>{class n{get vertical(){return this._vertical}set vertical(e){this._vertical=fn(e)}_vertical=!1;get inset(){return this._inset}set inset(e){this._inset=fn(e)}_inset=!1;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){i&2&&(Se("aria-orientation",r.vertical?"vertical":"horizontal"),ye("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,r){},styles:[`.mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px} +`],encapsulation:2,changeDetection:0})}return n})(),Ru=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var Lb=(()=>{class n{_listeners=[];notify(e,i){for(let r of this._listeners)r(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Lu=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new ue;constructor(t=!1,e,i=!0,r){this._multiple=t,this._emitChanges=i,this.compareWith=r,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);let e=this.selected,i=new Set(t.map(s=>this._getConcreteValue(s)));t.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(this._getConcreteValue(s,i))).forEach(s=>this._unmarkSelected(s));let r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();let e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){return this._selection.has(this._getConcreteValue(t))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){t=this._getConcreteValue(t),this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){t=this._getConcreteValue(t),this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){t.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(t,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(t,i))return i;return t}else return t}};var L4=["trigger"],O4=["panel"],N4=[[["mat-select-trigger"]],"*"],F4=["mat-select-trigger","*"];function P4(n,t){if(n&1&&(P(0,"span",4),B(1),U()),n&2){let e=Y();$(),He(e.placeholder)}}function U4(n,t){n&1&&Fe(0)}function $4(n,t){if(n&1&&(P(0,"span",11),B(1),U()),n&2){let e=Y(2);$(),He(e.triggerValue)}}function V4(n,t){if(n&1&&(P(0,"span",5),oe(1,U4,1,0)(2,$4,2,1,"span",11),U()),n&2){let e=Y();$(),Je(e.customTrigger?1:2)}}function B4(n,t){if(n&1){let e=ze();P(0,"div",12,1),X("keydown",function(r){re(e);let s=Y();return se(s._handleKeydown(r))}),Fe(2,1),U()}if(n&2){let e=Y();ph("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),ye("mat-select-panel-animations-enabled",!e._animationsDisabled),j("ngClass",e.panelClass),Se("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}var Ob=new J("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition()}});function nE(n){return()=>n.scrollStrategies.reposition()}var rE=new J("MAT_SELECT_CONFIG"),sE={provide:Ob,deps:[Gt],useFactory:nE},Nb=new J("MatSelectTrigger"),yf=class{source;value;constructor(t,e){this.source=t,this.value=e}},ps=(()=>{class n{_viewportRuler=R(On);_changeDetectorRef=R(Ge);_elementRef=R(Te);_dir=R(ti,{optional:!0});_idGenerator=R(At);_renderer=R(Rt);_parentFormField=R(Sl,{optional:!0});ngControl=R(Jn,{self:!0,optional:!0});_liveAnnouncer=R(M_);_defaultOptions=R(rE,{optional:!0});_animationsDisabled=R(ot,{optional:!0})==="NoopAnimations";_initialized=new ue;_cleanupDetach;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(e){let i=this.options.toArray()[e];if(i){let r=this.panel.nativeElement,s=ff(e,this.options,this.optionGroups),a=i._getHostElement();e===0&&s===1?r.scrollTop=0:r.scrollTop=pf(a.offsetTop,a.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new yf(this,e)}_scrollStrategyFactory=R(Ob);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new ue;_errorStateTracker;stateChanges=new ue;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(_n.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._selectionModel,this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=Fs(()=>{let e=this.options;return e?e.changes.pipe(Bt(e),Mt(()=>Kt(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(Mt(()=>this.optionSelectionChanges))});openedChange=new ce;_openedStream=this.openedChange.pipe(it(e=>e),Ne(()=>{}));_closedStream=this.openedChange.pipe(it(e=>!e),Ne(()=>{}));selectionChange=new ce;valueChange=new ce;constructor(){let e=R(hf),i=R(wu,{optional:!0}),r=R(xu,{optional:!0}),s=R(new un("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new kl(e,this.ngControl,r,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=s==null?0:parseInt(s)||0,this.id=this.id}ngOnInit(){this._selectionModel=new Lu(this.multiple),this.stateChanges.next(),this._viewportRuler.change().pipe(Ye(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(Ye(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Bt(null),Ye(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){let r=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?r.setAttribute("aria-labelledby",e):r.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._cleanupDetach?.(),this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._cleanupDetach?.(),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._overlayDir.positionChange.pipe(Vt(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()}),this._overlayDir.attachOverlay(),this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!0)))}_trackedModal=null;_applyModalPanelOwnership(){let e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;let i=`${this.id}-panel`;this._trackedModal&&ym(this._trackedModal,"aria-owns",i),I_(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){if(!this._trackedModal)return;let e=`${this.id}-panel`;ym(this._trackedModal,"aria-owns",e),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._exitAndDetach(),this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!1)))}_exitAndDetach(){if(this._animationsDisabled||!this.panel){this._detachOverlay();return}this._cleanupDetach?.(),this._cleanupDetach=()=>{i(),clearTimeout(r),this._cleanupDetach=void 0};let e=this.panel.nativeElement,i=this._renderer.listen(e,"animationend",s=>{s.animationName==="_mat-select-exit"&&(this._cleanupDetach?.(),this._detachOverlay())}),r=setTimeout(()=>{this._cleanupDetach?.(),this._detachOverlay()},200);e.classList.add("mat-select-panel-exit")}_detachOverlay(){this._overlayDir.detachOverlay(),this._changeDetectorRef.markForCheck()}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){let i=e.keyCode,r=i===40||i===38||i===37||i===39,s=i===13||i===32,a=this._keyManager;if(!a.isTyping()&&s&&!wi(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){let o=this.selected;a.onKeydown(e);let l=this.selected;l&&o!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){let i=this._keyManager,r=e.keyCode,s=r===40||r===38,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(!a&&(r===13||r===32)&&i.activeItem&&!wi(e))e.preventDefault(),i.activeItem._selectViaInteraction();else if(!a&&this._multiple&&r===65&&e.ctrlKey){e.preventDefault();let o=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(o?l.select():l.deselect())})}else{let o=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==o&&i.activeItem._selectViaInteraction()}}_handleOverlayKeydown(e){e.keyCode===27&&!wi(e)&&(e.preventDefault(),this.close())}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){let i=this.options.find(r=>{if(this._selectionModel.isSelected(r))return!1;try{return(r.value!=null||this.canSelectNullableOptions)&&this._compareWith(r.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return e!==this._value||this._multiple&&Array.isArray(e)?(this.options&&this._setSelectionByValue(e),this._value=e,!0):!1}_skipPredicate=e=>this.panelOpen?!1:e.disabled;_getOverlayWidth(e){return this.panelWidth==="auto"?(e instanceof bl?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new tu(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let e=Kt(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(Ye(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Kt(...this.options.map(i=>i._stateChanges)).pipe(Ye(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){let r=this._selectionModel.isSelected(e);!this.canSelectNullableOptions&&e.value==null&&!this._multiple?(e.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(e.value)):(r!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())),r!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let e=this.options.toArray();this._selectionModel.sort((i,r)=>this.sortComparator?this.sortComparator(i,r,e):e.indexOf(i)-e.indexOf(r)),this.stateChanges.next()}}_propagateChanges(e){let i;this.multiple?i=this.selected.map(r=>r.value):i=this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0&&!!this._overlayDir}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId()||null,i=e?e+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId()||"";return this.ariaLabelledby&&(e+=" "+this.ariaLabelledby),e||(e=this._valueId),e}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,s){if(i&1&&(Et(s,Nb,5),Et(s,Nn,5),Et(s,Eu,5)),i&2){let a;ke(a=Me())&&(r.customTrigger=a.first),ke(a=Me())&&(r.options=a),ke(a=Me())&&(r.optionGroups=a)}},viewQuery:function(i,r){if(i&1&&(Pe(L4,5),Pe(O4,5),Pe(qm,5)),i&2){let s;ke(s=Me())&&(r.trigger=s.first),ke(s=Me())&&(r.panel=s.first),ke(s=Me())&&(r._overlayDir=s.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){i&1&&X("keydown",function(a){return r._handleKeydown(a)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),i&2&&(Se("id",r.id)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r.panelOpen?r.id+"-panel":null)("aria-expanded",r.panelOpen)("aria-label",r.ariaLabel||null)("aria-required",r.required.toString())("aria-disabled",r.disabled.toString())("aria-invalid",r.errorState)("aria-activedescendant",r._getAriaActiveDescendant()),ye("mat-mdc-select-disabled",r.disabled)("mat-mdc-select-invalid",r.errorState)("mat-mdc-select-required",r.required)("mat-mdc-select-empty",r.empty)("mat-mdc-select-multiple",r.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",_e],disableRipple:[2,"disableRipple","disableRipple",_e],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:Ft(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",_e],placeholder:"placeholder",required:[2,"required","required",_e],multiple:[2,"multiple","multiple",_e],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",_e],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",Ft],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",_e]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[rt([{provide:xl,useExisting:n},{provide:Tu,useExisting:n}]),mt],ngContentSelectors:F4,decls:11,vars:9,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"detach","backdropClick","overlayKeydown","cdkConnectedOverlayDisableClose","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","cdkConnectedOverlayFlexibleDimensions"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(i&1){let s=ze();Qe(N4),P(0,"div",2,0),X("click",function(){return re(s),se(r.open())}),P(3,"div",3),oe(4,P4,2,1,"span",4)(5,V4,3,1,"span",5),U(),P(6,"div",6)(7,"div",7),Ht(),P(8,"svg",8),te(9,"path",9),U()()()(),oe(10,B4,3,10,"ng-template",10),X("detach",function(){return re(s),se(r.close())})("backdropClick",function(){return re(s),se(r.close())})("overlayKeydown",function(o){return re(s),se(r._handleOverlayKeydown(o))})}if(i&2){let s=jt(1);$(3),Se("id",r._valueId),$(),Je(r.empty?4:5),$(6),j("cdkConnectedOverlayDisableClose",!0)("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||s)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)("cdkConnectedOverlayFlexibleDimensions",!0)}},dependencies:[bl,qm,An],styles:[`@keyframes _mat-select-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-select-exit{from{opacity:1}to{opacity:0}}.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:relative;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-select-panel-animations-enabled{animation:_mat-select-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-select-panel-animations-enabled.mat-select-panel-exit{animation:_mat-select-exit 100ms linear}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field:not(.mat-form-field-animations-enabled) .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))} +`],encapsulation:2,changeDetection:0})}return n})(),Fb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-select-trigger"]],features:[rt([{provide:Nb,useExisting:n}])]})}return n})(),Ll=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[sE],imports:[Xn,Tl,Oe,gn,hs,Tl,Oe]})}return n})();var z4=["tooltip"],Pb=20;var Ub=new J("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition({scrollThrottle:Pb})}});function lE(n){return()=>n.scrollStrategies.reposition({scrollThrottle:Pb})}var cE={provide:Ub,deps:[Gt],useFactory:lE};function uE(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var dE=new J("mat-tooltip-default-options",{providedIn:"root",factory:uE});var aE="tooltip-panel",oE=Ys({passive:!0}),H4=8,j4=8,W4=24,q4=200,Ou=(()=>{class n{_elementRef=R(Te);_ngZone=R(De);_platform=R(st);_ariaDescriber=R(Hk);_focusMonitor=R(mn);_dir=R(ti);_injector=R(ut);_viewContainerRef=R(ui);_defaultOptions=R(dE,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=hE;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=fn(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){let i=fn(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=kr(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=kr(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){let i=this._message;this._message=e!=null?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new ue;_isDestroyed=!1;constructor(){let e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._viewportMargin=H4}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Ye(this._destroyed)).subscribe(e=>{e?e==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,oE)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let r=this._createOverlay(i);this._detach(),this._portal=this._portal||new ea(this._tooltipComponent,this._viewContainerRef);let s=this._tooltipInstance=r.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(Ye(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){let a=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&a._origin instanceof Te)return this._overlayRef;this._detach()}let i=this._injector.get(_l).getAncestorScrollContainers(this._elementRef),r=this._injector.get(Gt),s=r.position().flexibleConnectedTo(this.positionAtOrigin?e||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return s.positionChanges.pipe(Ye(this._destroyed)).subscribe(a=>{this._updateCurrentPositionClass(a.connectionPair),this._tooltipInstance&&a.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=r.create({direction:this._dir,positionStrategy:s,panelClass:`${this._cssClassPrefix}-${aE}`,scrollStrategy:this._injector.get(Ub)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Ye(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Ye(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Ye(this._destroyed)).subscribe(a=>{this._isTooltipVisible()&&a.keyCode===27&&!wi(a)&&(a.preventDefault(),a.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(Ye(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){let i=e.getConfig().positionStrategy,r=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset(H(H({},r.main),s.main)),this._addOffset(H(H({},r.fallback),s.fallback))])}_addOffset(e){let i=j4,r=!this._dir||this._dir.value=="ltr";return e.originY==="top"?e.offsetY=-i:e.originY==="bottom"?e.offsetY=i:e.originX==="start"?e.offsetX=r?-i:i:e.originX==="end"&&(e.offsetX=r?i:-i),e}_getOrigin(){let e=!this._dir||this._dir.value=="ltr",i=this.position,r;i=="above"||i=="below"?r={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&e||i=="right"&&!e?r={originX:"start",originY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(r={originX:"end",originY:"center"});let{x:s,y:a}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:s,originY:a}}}_getOverlayPosition(){let e=!this._dir||this._dir.value=="ltr",i=this.position,r;i=="above"?r={overlayX:"center",overlayY:"bottom"}:i=="below"?r={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&e||i=="right"&&!e?r={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(r={overlayX:"start",overlayY:"center"});let{x:s,y:a}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Yt(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):e==="end"?e="start":e==="start"&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){let{overlayY:i,originX:r,originY:s}=e,a;if(i==="center"?this._dir&&this._dir.value==="rtl"?a=r==="end"?"left":"right":a=r==="start"?"left":"right":a=i==="bottom"&&s==="top"?"above":"below",a!==this._currentPosition){let o=this._overlayRef;if(o){let l=`${this._cssClassPrefix}-${aE}-`;o.removePanelClass(l+this._currentPosition),o.addPanelClass(l+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{this._setupPointerExitEventsIfNeeded();let i;e.x!==void 0&&e.y!==void 0&&(i=e),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{let i=e.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let s=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,r)},this._defaultOptions?.touchLongPressShowDelay??s)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{let r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,oE)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){let i=this._injector.get(Ze).elementFromPoint(e.clientX,e.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let e=this.touchGestures;if(e!=="off"){let i=this._elementRef.nativeElement,r=i.style;(e==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),(e==="on"||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._isDestroyed||Yt({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return n})(),hE=(()=>{class n{_changeDetectorRef=R(Ge);_elementRef=R(Te);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new ue;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let e=R(ot,{optional:!0});this._animationsDisabled=e==="NoopAnimations"}show(e){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>W4&&e.width>=q4}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){let i=this._tooltip.nativeElement,r=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:r),i.classList.add(e?r:s),this._isVisible!==e&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let a=getComputedStyle(i);(a.getPropertyValue("animation-duration")==="0s"||a.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(i&1&&Pe(z4,7),i&2){let s;ke(s=Me())&&(r._tooltip=s.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,r){i&1&&X("mouseleave",function(a){return r._handleMouseLeave(a)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,r){if(i&1){let s=ze();P(0,"div",1,0),X("animationend",function(o){return re(s),se(r._handleAnimationEnd(o))}),P(2,"div",2),B(3),U()()}i&2&&(ye("mdc-tooltip--multiline",r._isMultiline),j("ngClass",r.tooltipClass),$(3),He(r.message))},dependencies:[An],styles:[`.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards} +`],encapsulation:2,changeDetection:0})}return n})(),Nu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[cE],imports:[eu,Xn,Oe,Oe,gn]})}return n})();function G4(n,t){if(n&1&&(P(0,"mat-option",17),B(1),U()),n&2){let e=t.$implicit;j("value",e),$(),je(" ",e," ")}}function K4(n,t){if(n&1){let e=ze();P(0,"mat-form-field",14)(1,"mat-select",16,0),X("selectionChange",function(r){re(e);let s=Y(2);return se(s._changePageSize(r.value))}),gr(3,G4,2,2,"mat-option",17,xc),U(),P(5,"div",18),X("click",function(){re(e);let r=jt(2);return se(r.open())}),U()()}if(n&2){let e=Y(2);j("appearance",e._formFieldAppearance)("color",e.color),$(),j("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),$(2),_r(e._displayedPageSizeOptions)}}function Y4(n,t){if(n&1&&(P(0,"div",15),B(1),U()),n&2){let e=Y(2);$(),He(e.pageSize)}}function Q4(n,t){if(n&1&&(P(0,"div",3)(1,"div",13),B(2),U(),oe(3,K4,6,7,"mat-form-field",14)(4,Y4,2,1,"div",15),U()),n&2){let e=Y();$(),Se("id",e._pageSizeLabelId),$(),je(" ",e._intl.itemsPerPageLabel," "),$(),Je(e._displayedPageSizeOptions.length>1?3:-1),$(),Je(e._displayedPageSizeOptions.length<=1?4:-1)}}function Z4(n,t){if(n&1){let e=ze();P(0,"button",19),X("click",function(){re(e);let r=Y();return se(r._buttonClicked(0,r._previousButtonsDisabled()))}),Ht(),P(1,"svg",8),te(2,"path",20),U()()}if(n&2){let e=Y();j("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("disabled",e._previousButtonsDisabled())("tabindex",e._previousButtonsDisabled()?-1:null),Se("aria-label",e._intl.firstPageLabel)}}function X4(n,t){if(n&1){let e=ze();P(0,"button",21),X("click",function(){re(e);let r=Y();return se(r._buttonClicked(r.getNumberOfPages()-1,r._nextButtonsDisabled()))}),Ht(),P(1,"svg",8),te(2,"path",22),U()()}if(n&2){let e=Y();j("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("disabled",e._nextButtonsDisabled())("tabindex",e._nextButtonsDisabled()?-1:null),Se("aria-label",e._intl.lastPageLabel)}}var Cf=(()=>{class n{changes=new ue;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(e,i,r)=>{if(r==0||i==0)return`0 of ${r}`;r=Math.max(r,0);let s=e*i,a=s{class n{_intl=R(Cf);_changeDetectorRef=R(Ge);_formFieldAppearance;_pageSizeLabelId=R(At).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new ah(1);color;get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(e||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(e){this._length=e||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(e||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>Ft(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new ce;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let e=this._intl,i=R(iB,{optional:!0});if(this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:r,pageSizeOptions:s,hidePageSize:a,showFirstLastButtons:o}=i;r!=null&&(this._pageSize=r),s!=null&&(this._pageSizeOptions=s),a!=null&&(this.hidePageSize=a),o!=null&&(this.showFirstLastButtons=o)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(e){let i=this.pageIndex;e!==i&&(this.pageIndex=e,this._emitPageEvent(i))}_buttonClicked(e,i){i||this._navigate(e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",Ft],length:[2,"length","length",Ft],pageSize:[2,"pageSize","pageSize",Ft],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",_e],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",_e],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",_e]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:14,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled","tabindex"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled","tabindex"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled","tabindex"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled","tabindex"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled","tabindex"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled","tabindex"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,r){i&1&&(P(0,"div",1)(1,"div",2),oe(2,Q4,5,4,"div",3),P(3,"div",4)(4,"div",5),B(5),U(),oe(6,Z4,3,5,"button",6),P(7,"button",7),X("click",function(){return r._buttonClicked(r.pageIndex-1,r._previousButtonsDisabled())}),Ht(),P(8,"svg",8),te(9,"path",9),U()(),Xr(),P(10,"button",10),X("click",function(){return r._buttonClicked(r.pageIndex+1,r._nextButtonsDisabled())}),Ht(),P(11,"svg",8),te(12,"path",11),U()(),oe(13,X4,3,5,"button",12),U()()()),i&2&&($(2),Je(r.hidePageSize?-1:2),$(3),je(" ",r._intl.getRangeLabel(r.pageIndex,r.pageSize,r.length)," "),$(),Je(r.showFirstLastButtons?6:-1),$(),j("matTooltip",r._intl.previousPageLabel)("matTooltipDisabled",r._previousButtonsDisabled())("disabled",r._previousButtonsDisabled())("tabindex",r._previousButtonsDisabled()?-1:null),Se("aria-label",r._intl.previousPageLabel),$(3),j("matTooltip",r._intl.nextPageLabel)("matTooltipDisabled",r._nextButtonsDisabled())("disabled",r._nextButtonsDisabled())("tabindex",r._nextButtonsDisabled()?-1:null),Se("aria-label",r._intl.nextPageLabel),$(3),Je(r.showFirstLastButtons?13:-1))},dependencies:[bn,ps,Nn,ra,Ou],styles:[`.mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}.mat-mdc-paginator-range-actions .mat-mdc-icon-button[aria-disabled]{color:GrayText}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer} +`],encapsulation:2,changeDetection:0})}return n})(),$b=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[eB],imports:[fs,Ll,Nu,nB]})}return n})();var rB=["input"],sB=["formField"],aB=["*"],Vb=class{source;value;constructor(t,e){this.source=t,this.value=e}};var oB=new J("MatRadioGroup"),lB=new J("mat-radio-default-options",{providedIn:"root",factory:cB});function cB(){return{color:"accent",disabledInteractive:!1}}var uB=(()=>{class n{_elementRef=R(Te);_changeDetector=R(Ge);_focusMonitor=R(mn);_radioDispatcher=R(Lb);_defaultOptions=R(lB,{optional:!0});_ngZone=R(De);_renderer=R(Rt);_uniqueId=R(At).getId("mat-radio-");_cleanupClick;id=this._uniqueId;name;ariaLabel;ariaLabelledby;ariaDescribedby;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked!==e&&(this._checked=e,e&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!e&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),e&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.radioGroup!==null&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}_labelPosition;get disabled(){return this._disabled||this.radioGroup!==null&&this.radioGroup.disabled}set disabled(e){this._setDisabled(e)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){e!==this._required&&this._changeDetector.markForCheck(),this._required=e}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(e){this._color=e}_color;get disabledInteractive(){return this._disabledInteractive||this.radioGroup!==null&&this.radioGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}_disabledInteractive;change=new ce;radioGroup;get inputId(){return`${this.id||this._uniqueId}-input`}_checked=!1;_disabled;_required;_value=null;_removeUniqueSelectionListener=()=>{};_previousTabIndex;_inputElement;_rippleTrigger;_noopAnimations;_injector=R(ut);constructor(){R(pt).load(xi);let e=R(oB,{optional:!0}),i=R(ot,{optional:!0}),r=R(new un("tabindex"),{optional:!0});this.radioGroup=e,this._noopAnimations=i==="NoopAnimations",this._disabledInteractive=this._defaultOptions?.disabledInteractive??!1,r&&(this.tabIndex=Ft(r,0))}focus(e,i){i?this._focusMonitor.focusVia(this._inputElement,i,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,i)=>{e!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._cleanupClick=this._renderer.listen(this._inputElement.nativeElement,"click",this._onInputClick)})}ngOnDestroy(){this._cleanupClick?.(),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new Vb(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){let i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_onInputClick=e=>{this.disabled&&this.disabledInteractive&&e.preventDefault()};_updateTabIndex(){let e=this.radioGroup,i;if(!e||!e.selected||this.disabled?i=this.tabIndex:i=e.selected===this?this.tabIndex:-1,i!==this._previousTabIndex){let r=this._inputElement?.nativeElement;r&&(r.setAttribute("tabindex",i+""),this._previousTabIndex=i,Yt(()=>{queueMicrotask(()=>{e&&e.selected&&e.selected!==this&&document.activeElement===r&&(e.selected?._inputElement.nativeElement.focus(),document.activeElement===r&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-radio-button"]],viewQuery:function(i,r){if(i&1&&(Pe(rB,5),Pe(sB,7,Te)),i&2){let s;ke(s=Me())&&(r._inputElement=s.first),ke(s=Me())&&(r._rippleTrigger=s.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(i,r){i&1&&X("focus",function(){return r._inputElement.nativeElement.focus()}),i&2&&(Se("id",r.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),ye("mat-primary",r.color==="primary")("mat-accent",r.color==="accent")("mat-warn",r.color==="warn")("mat-mdc-radio-checked",r.checked)("mat-mdc-radio-disabled",r.disabled)("mat-mdc-radio-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",_e],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:Ft(e)],checked:[2,"checked","checked",_e],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",_e],required:[2,"required","required",_e],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e]},outputs:{change:"change"},exportAs:["matRadioButton"],ngContentSelectors:aB,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio","aria-invalid","false",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"div",2,0)(2,"div",3)(3,"div",4),X("click",function(o){return re(s),se(r._onTouchTargetClick(o))}),U(),P(4,"input",5,1),X("change",function(o){return re(s),se(r._onInputInteraction(o))}),U(),P(6,"div",6),te(7,"div",7)(8,"div",8),U(),P(9,"div",9),te(10,"div",10),U()(),P(11,"label",11),Fe(12),U()()}i&2&&(j("labelPosition",r.labelPosition),$(2),ye("mdc-radio--disabled",r.disabled),$(2),j("id",r.inputId)("checked",r.checked)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Se("name",r.name)("value",r.value)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),$(5),j("matRippleTrigger",r._rippleTrigger.nativeElement)("matRippleDisabled",r._isRippleDisabled())("matRippleCentered",!0),$(2),j("for",r.inputId))},dependencies:[pn,El],styles:[`.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:not([disabled])~.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px);top:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-sys-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple>.mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio>.mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display, block)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)} +`],encapsulation:2,changeDetection:0})}return n})(),Bb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Ar,uB,Oe]})}return n})();var dB=["switch"],hB=["*"];function mB(n,t){n&1&&(P(0,"span",10),Ht(),P(1,"svg",12),te(2,"path",13),U(),P(3,"svg",14),te(4,"path",15),U()())}var fB=new J("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),pB={provide:cs,useExisting:Ci(()=>fE),multi:!0},wf=class{source;checked;constructor(t,e){this.source=t,this.checked=e}},fE=(()=>{class n{_elementRef=R(Te);_focusMonitor=R(mn);_changeDetectorRef=R(Ge);defaults=R(fB);_onChange=e=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(e){return new wf(this,e)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new ce;toggleChange=new ce;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){R(pt).load(xi);let e=R(new un("tabindex"),{optional:!0}),i=this.defaults,r=R(ot,{optional:!0});this.tabIndex=e==null?0:parseInt(e)||0,this.color=i.color||"accent",this._noopAnimations=r==="NoopAnimations",this.id=this._uniqueId=R(At).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{e==="keyboard"||e==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new wf(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(i&1&&Pe(dB,5),i&2){let s;ke(s=Me())&&(r._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){i&2&&(Tn("id",r.id),Se("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),ft(r.color?"mat-"+r.color:""),ye("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",_e],color:"color",disabled:[2,"disabled","disabled",_e],disableRipple:[2,"disableRipple","disableRipple",_e],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:Ft(e)],checked:[2,"checked","checked",_e],hideIcon:[2,"hideIcon","hideIcon",_e],disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[rt([pB,{provide:na,useExisting:n,multi:!0}]),mt],ngContentSelectors:hB,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"div",1)(1,"button",2,0),X("click",function(){return re(s),se(r._handleClick())}),te(3,"span",3),P(4,"span",4)(5,"span",5)(6,"span",6),te(7,"span",7),U(),P(8,"span",8),te(9,"span",9),U(),oe(10,mB,5,0,"span",10),U()()(),P(11,"label",11),X("click",function(o){return re(s),se(o.stopPropagation())}),Fe(12),U()()}if(i&2){let s=jt(2);j("labelPosition",r.labelPosition),$(),ye("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled)("mat-mdc-slide-toggle-disabled-interactive",r.disabledInteractive),j("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex)("disabled",r.disabled&&!r.disabledInteractive),Se("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),$(8),j("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),$(),Je(r.hideIcon?-1:10),$(),j("for",r.buttonId),Se("id",r._labelId)}},dependencies:[pn,El],styles:[`.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1;transform:translateZ(0)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)} +`],encapsulation:2,changeDetection:0})}return n})();var zb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[fE,Oe,Oe]})}return n})();var Hb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Ar]})}return n})();var pE=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[mu]})}return n})();var jb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,pE,Oe]})}return n})();var Yb=["*"];function gB(n,t){n&1&&Fe(0)}var _B=["tabListContainer"],bB=["tabList"],vB=["tabListInner"],yB=["nextPaginator"],CB=["previousPaginator"],wB=["content"];function xB(n,t){}var SB=["tabBodyWrapper"],kB=["tabHeader"];function MB(n,t){}function TB(n,t){if(n&1&&oe(0,MB,0,0,"ng-template",12),n&2){let e=Y().$implicit;j("cdkPortalOutlet",e.templateLabel)}}function EB(n,t){if(n&1&&B(0),n&2){let e=Y().$implicit;He(e.textLabel)}}function AB(n,t){if(n&1){let e=ze();P(0,"div",7,2),X("click",function(){let r=re(e),s=r.$implicit,a=r.$index,o=Y(),l=jt(1);return se(o._handleClick(s,l,a))})("cdkFocusChange",function(r){let s=re(e).$index,a=Y();return se(a._tabFocusChanged(r,s))}),te(2,"span",8)(3,"div",9),P(4,"span",10)(5,"span",11),oe(6,TB,1,1,null,12)(7,EB,1,1),U()()()}if(n&2){let e=t.$implicit,i=t.$index,r=jt(1),s=Y();ft(e.labelClass),ye("mdc-tab--active",s.selectedIndex===i),j("id",s._getTabLabelId(e,i))("disabled",e.disabled)("fitInkBarToContent",s.fitInkBarToContent),Se("tabIndex",s._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",s._tabs.length)("aria-controls",s._getTabContentId(i))("aria-selected",s.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),$(3),j("matRippleTrigger",r)("matRippleDisabled",e.disabled||s.disableRipple),$(3),Je(e.templateLabel?6:7)}}function IB(n,t){n&1&&Fe(0)}function DB(n,t){if(n&1){let e=ze();P(0,"mat-tab-body",13),X("_onCentered",function(){re(e);let r=Y();return se(r._removeTabBodyWrapperHeight())})("_onCentering",function(r){re(e);let s=Y();return se(s._setTabBodyWrapperHeight(r))})("_beforeCentering",function(r){re(e);let s=Y();return se(s._bodyCentered(r))}),U()}if(n&2){let e=t.$implicit,i=t.$index,r=Y();ft(e.bodyClass),j("id",r._getTabContentId(i))("content",e.content)("position",e.position)("animationDuration",r.animationDuration)("preserveContent",r.preserveContent),Se("tabindex",r.contentTabIndex!=null&&r.selectedIndex===i?r.contentTabIndex:null)("aria-labelledby",r._getTabLabelId(e,i))("aria-hidden",r.selectedIndex!==i)}}var RB=new J("MatTabContent"),LB=(()=>{class n{template=R(Mn);constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTabContent",""]],features:[rt([{provide:RB,useExisting:n}])]})}return n})(),OB=new J("MatTabLabel"),vE=new J("MAT_TAB"),NB=(()=>{class n extends Z_{_closestTab=R(vE,{optional:!0});static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275dir=xe({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[rt([{provide:OB,useExisting:n}]),Tt]})}return n})(),yE=new J("MAT_TAB_GROUP"),Qb=(()=>{class n{_viewContainerRef=R(ui);_closestTabGroup=R(yE,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new ue;position=null;origin=null;isActive=!1;constructor(){R(pt).load(xi)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Er(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-tab"]],contentQueries:function(i,r,s){if(i&1&&(Et(s,NB,5),Et(s,LB,7,Mn)),i&2){let a;ke(a=Me())&&(r.templateLabel=a.first),ke(a=Me())&&(r._explicitContent=a.first)}},viewQuery:function(i,r){if(i&1&&Pe(Mn,7),i&2){let s;ke(s=Me())&&(r._implicitContent=s.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(i,r){i&2&&Se("id",null)},inputs:{disabled:[2,"disabled","disabled",_e],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[rt([{provide:vE,useExisting:n}]),mt],ngContentSelectors:Yb,decls:1,vars:0,template:function(i,r){i&1&&(Qe(),oe(0,gB,1,0,"ng-template"))},encapsulation:2})}return n})(),Wb="mdc-tab-indicator--active",gE="mdc-tab-indicator--no-transition",qb=class{_items;_currentItem;constructor(t){this._items=t}hide(){this._items.forEach(t=>t.deactivateInkBar()),this._currentItem=void 0}alignToElement(t){let e=this._items.find(r=>r.elementRef.nativeElement===t),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){let r=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(r),this._currentItem=e}}},FB=(()=>{class n{_elementRef=R(Te);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){let i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(Wb);return}let r=i.getBoundingClientRect(),s=e.width/r.width,a=e.left-r.left;i.classList.add(gE),this._inkBarContentElement.style.setProperty("transform",`translateX(${a}px) scaleX(${s})`),i.getBoundingClientRect(),i.classList.remove(gE),i.classList.add(Wb),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Wb)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),r=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",r.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let e=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;e.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",_e]}})}return n})();var CE=(()=>{class n extends FB{elementRef=R(Te);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275dir=xe({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,r){i&2&&(Se("aria-disabled",!!r.disabled),ye("mat-mdc-tab-disabled",r.disabled))},inputs:{disabled:[2,"disabled","disabled",_e]},features:[Tt]})}return n})(),_E={passive:!0},PB=650,UB=100,$B=(()=>{class n{_elementRef=R(Te);_changeDetectorRef=R(Ge);_viewportRuler=R(On);_dir=R(ti,{optional:!0});_ngZone=R(De);_platform=R(st);_sharedResizeObserver=R(cf);_injector=R(ut);_renderer=R(Rt);_animationMode=R(ot,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new ue;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new ue;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){let i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new ce;indexFocused=new ce;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(Ot(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),_E),Ot(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),_E))}ngAfterContentInit(){let e=this._dir?this._dir.change:ge("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ii(32),Ye(this._destroyed)),r=this._viewportRuler.change(150).pipe(Ye(this._destroyed)),s=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new cl(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),Yt(s,{injector:this._injector}),Kt(e,r,i,this._items.changes,this._itemsResized()).pipe(Ye(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),s()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(a=>{this.indexFocused.emit(a),this._setTabFocus(a)})}_itemsResized(){return typeof ResizeObserver!="function"?on:this._items.changes.pipe(Bt(this._items),Mt(e=>new dr(i=>this._ngZone.runOutsideAngular(()=>{let r=new ResizeObserver(s=>i.next(s));return e.forEach(s=>r.observe(s.elementRef.nativeElement)),()=>{r.disconnect()}}))),Ao(1),it(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!wi(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager?.onKeydown(e)}}_onContentChanges(){let e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return this._items?!!this._items.toArray()[e]:!0}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let e=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){let i=this._tabListContainer.nativeElement.offsetWidth,r=(e=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+r)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;let i=this._items?this._items.toArray()[e]:null;if(!i)return;let r=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement,o,l;this._getLayoutDirection()=="ltr"?(o=s,l=o+a):(l=this._tabListInner.nativeElement.offsetWidth-s,o=l-a);let c=this.scrollDistance,u=this.scrollDistance+r;ou&&(this.scrollDistance+=Math.min(l-u,o-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let e=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,r=e-i>=5;r||(this.scrollDistance=0),r!==this._showPaginationControls&&(this._showPaginationControls=r,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let e=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return e-i||0}_alignInkBarToSelectedTab(){let e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),oh(PB,UB).pipe(Ye(Kt(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:r,distance:s}=this._scrollHeader(e);(s===0||s>=r)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",_e],selectedIndex:[2,"selectedIndex","selectedIndex",Ft]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return n})(),VB=(()=>{class n extends $B{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new qb(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275cmp=le({type:n,selectors:[["mat-tab-header"]],contentQueries:function(i,r,s){if(i&1&&Et(s,CE,4),i&2){let a;ke(a=Me())&&(r._items=a)}},viewQuery:function(i,r){if(i&1&&(Pe(_B,7),Pe(bB,7),Pe(vB,7),Pe(yB,5),Pe(CB,5)),i&2){let s;ke(s=Me())&&(r._tabListContainer=s.first),ke(s=Me())&&(r._tabList=s.first),ke(s=Me())&&(r._tabListInner=s.first),ke(s=Me())&&(r._nextPaginator=s.first),ke(s=Me())&&(r._previousPaginator=s.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,r){i&2&&ye("mat-mdc-tab-header-pagination-controls-enabled",r._showPaginationControls)("mat-mdc-tab-header-rtl",r._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",_e]},features:[Tt],ngContentSelectors:Yb,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"div",5,0),X("click",function(){return re(s),se(r._handlePaginatorClick("before"))})("mousedown",function(o){return re(s),se(r._handlePaginatorPress("before",o))})("touchend",function(){return re(s),se(r._stopInterval())}),te(2,"div",6),U(),P(3,"div",7,1),X("keydown",function(o){return re(s),se(r._handleKeydown(o))}),P(5,"div",8,2),X("cdkObserveContent",function(){return re(s),se(r._onContentChanges())}),P(7,"div",9,3),Fe(9),U()()(),P(10,"div",10,4),X("mousedown",function(o){return re(s),se(r._handlePaginatorPress("after",o))})("click",function(){return re(s),se(r._handlePaginatorClick("after"))})("touchend",function(){return re(s),se(r._stopInterval())}),te(12,"div",6),U()}i&2&&(ye("mat-mdc-tab-header-pagination-disabled",r._disableScrollBefore),j("matRippleDisabled",r._disableScrollBefore||r.disableRipple),$(3),ye("_mat-animation-noopable",r._animationMode==="NoopAnimations"),$(2),Se("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby||null),$(5),ye("mat-mdc-tab-header-pagination-disabled",r._disableScrollAfter),j("matRippleDisabled",r._disableScrollAfter||r.disableRipple))},dependencies:[pn,Ik],styles:[`.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}} +`],encapsulation:2})}return n})(),BB=new J("MAT_TABS_CONFIG"),bE=(()=>{class n extends ja{_host=R(Gb);_centeringSub=St.EMPTY;_leavingSub=St.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Bt(this._host._isCenterPosition())).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTabBodyHost",""]],features:[Tt]})}return n})(),Gb=(()=>{class n{_elementRef=R(Te);_dir=R(ti,{optional:!0});_ngZone=R(De);_injector=R(ut);_renderer=R(Rt);_animationsModule=R(ot,{optional:!0});_eventCleanups;_initialized;_fallbackTimer;_positionIndex;_dirChangeSubscription=St.EMPTY;_position;_previousPosition;_onCentering=new ce;_beforeCentering=new ce;_afterLeavingCenter=new ce;_onCentered=new ce(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){let e=R(Ge);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),this._position==="center"&&(this._setActiveClass(!0),Yt(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(e=>e()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{let e=this._elementRef.nativeElement,i=r=>{r.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.remove("mat-tab-body-animating"),r.type==="transitionend"&&this._transitionDone())};this._eventCleanups=[this._renderer.listen(e,"transitionstart",r=>{r.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(e,"transitionend",i),this._renderer.listen(e,"transitioncancel",i)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);let e=this._position==="center";this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){this._position==="center"?this._onCentered.emit():this._previousPosition==="center"&&this._afterLeavingCenter.emit()}_setActiveClass(e){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",e)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(){return this._positionIndex===0}_computePositionAnimationState(e=this._getLayoutDirection()){this._previousPosition=this._position,this._positionIndex<0?this._position=e=="ltr"?"left":"right":this._positionIndex>0?this._position=e=="ltr"?"right":"left":this._position="center",this._animationsDisabled()?this._simulateTransitionEvents():this._initialized&&(this._position==="center"||this._previousPosition==="center")&&(clearTimeout(this._fallbackTimer),this._fallbackTimer=this._ngZone.runOutsideAngular(()=>setTimeout(()=>this._simulateTransitionEvents(),100)))}_simulateTransitionEvents(){this._transitionStarted(),Yt(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._animationsModule==="NoopAnimations"||this.animationDuration==="0ms"||this.animationDuration==="0s"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-tab-body"]],viewQuery:function(i,r){if(i&1&&(Pe(bE,5),Pe(wB,5)),i&2){let s;ke(s=Me())&&(r._portalHost=s.first),ke(s=Me())&&(r._contentElement=s.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(i,r){i&2&&Se("inert",r._position==="center"?null:"")},inputs:{_content:[0,"content","_content"],animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,r){i&1&&(P(0,"div",1,0),oe(2,xB,0,0,"ng-template",2),U()),i&2&&ye("mat-tab-body-content-left",r._position==="left")("mat-tab-body-content-right",r._position==="right")("mat-tab-body-content-can-animate",r._position==="center"||r._previousPosition==="center")},dependencies:[bE,X_],styles:[`.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)} +`],encapsulation:2})}return n})(),wE=(()=>{class n{_elementRef=R(Te);_changeDetectorRef=R(Ge);_ngZone=R(De);_tabsSubscription=St.EMPTY;_tabLabelSubscription=St.EMPTY;_tabBodySubscription=St.EMPTY;_diAnimationsDisabled=R(ot,{optional:!0})==="NoopAnimations";_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new Do;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){let i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(e){let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new ce;focusChange=new ce;animationDone=new ce;selectedTabChange=new ce(!0);_groupId;_isServer=!R(st).isBrowser;constructor(){let e=R(BB,{optional:!0});this._groupId=R(At).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=e&&e.disablePagination!=null?e.disablePagination:!1,this.dynamicHeight=e&&e.dynamicHeight!=null?e.dynamicHeight:!1,e?.contentTabIndex!=null&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=e&&e.fitInkBarToContent!=null?e.fitInkBarToContent:!1,this.stretchTabs=e&&e.stretchTabs!=null?e.stretchTabs:!0,this.alignTabs=e&&e.alignTabs!=null?e.alignTabs:null}ngAfterContentChecked(){let e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));let r=this._tabBodyWrapper.nativeElement;r.style.minHeight=r.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((r,s)=>r.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,r)=>{i.position=r-e,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){let i=this._tabs.toArray(),r;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Bt(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe(),this._tabBodySubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){let i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){let i=new Kb;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Kt(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e,i){return e.id||`${this._groupId}-label-${i}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight){this._tabBodyWrapperHeight=e;return}let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){let e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this._ngZone.run(()=>this.animationDone.emit())}_handleClick(e,i,r){i.focusIndex=r,e.disabled||(this.selectedIndex=r)}_getTabIndex(e){let i=this._lastFocusedTabIndex??this.selectedIndex;return e===i?0:-1}_tabFocusChanged(e,i){e&&e!=="mouse"&&e!=="touch"&&(this._tabHeader.focusIndex=i)}_bodyCentered(e){e&&this._tabBodies?.forEach((i,r)=>i._setActiveClass(r===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||this.animationDuration==="0"||this.animationDuration==="0ms"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-tab-group"]],contentQueries:function(i,r,s){if(i&1&&Et(s,Qb,5),i&2){let a;ke(a=Me())&&(r._allTabs=a)}},viewQuery:function(i,r){if(i&1&&(Pe(SB,5),Pe(kB,5),Pe(Gb,5)),i&2){let s;ke(s=Me())&&(r._tabBodyWrapper=s.first),ke(s=Me())&&(r._tabHeader=s.first),ke(s=Me())&&(r._tabBodies=s)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,r){i&2&&(Se("mat-align-tabs",r.alignTabs),ft("mat-"+(r.color||"primary")),Jt("--mat-tab-animation-duration",r.animationDuration),ye("mat-mdc-tab-group-dynamic-height",r.dynamicHeight)("mat-mdc-tab-group-inverted-header",r.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",r.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",_e],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",_e],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",_e],selectedIndex:[2,"selectedIndex","selectedIndex",Ft],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",Ft],disablePagination:[2,"disablePagination","disablePagination",_e],disableRipple:[2,"disableRipple","disableRipple",_e],preserveContent:[2,"preserveContent","preserveContent",_e],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[rt([{provide:yE,useExisting:n}])],ngContentSelectors:Yb,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","class","content","position","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","_beforeCentering","id","content","position","animationDuration","preserveContent"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"mat-tab-header",3,0),X("indexFocused",function(o){return re(s),se(r._focusChanged(o))})("selectFocusedIndex",function(o){return re(s),se(r.selectedIndex=o)}),gr(2,AB,8,17,"div",4,xc),U(),oe(4,IB,1,0),P(5,"div",5,1),gr(7,DB,1,10,"mat-tab-body",6,xc),U()}i&2&&(j("selectedIndex",r.selectedIndex||0)("disableRipple",r.disableRipple)("disablePagination",r.disablePagination)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby),$(2),_r(r._tabs),$(2),Je(r._isServer?4:-1),$(),ye("_mat-animation-noopable",r._animationsDisabled()),$(2),_r(r._tabs))},dependencies:[VB,CE,Jc,pn,ja,Gb],styles:[`.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important} +`],encapsulation:2})}return n})(),Kb=class{index;tab};var Zb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var Xb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var HB=[Jr,kc,ub,Su,Qg,pb,fs,q_,Au,Ru,hs,iu,mb,tb,$b,Ll,Hb,zb,jb,Xb,Zb,Rb,xb,Bb,nu];var xE=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=he({type:n})}static{this.\u0275inj=de({imports:[HB,Jr,kc,ub,Su,Qg,pb,fs,q_,Au,Ru,hs,iu,mb,tb,$b,Ll,Hb,zb,jb,Xb,Zb,Rb,xb,Bb,nu]})}}return n})();var rR=Os(nR());var sR=(()=>{class n{evaluate(e,i){return(0,rR.evaluate)(e,i,null)}evaluateToString(e,i){let r=this.evaluate(e,i);return r&&r instanceof Array&&r.length===1?r[0]:null}getOauthUriToken(e){return this.evaluateToString(e,"rest.security.extension.where(url='http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris').extension.where(url='token').valueUri")}getOauthUriAuthorize(e){return this.evaluateToString(e,"rest.security.extension.where(url='http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris').extension.where(url='authorize').valueUri")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var ej=()=>({"background-color":"lightyellow"}),tj=()=>({});function ij(n,t){if(n&1){let e=ze();P(0,"tr",9),X("click",function(){let r=re(e).$implicit,s=Y();return se(s.selectRow(r))}),P(1,"td"),B(2),U(),P(3,"td",10),B(4),U(),P(5,"td",10),B(6),U()()}if(n&2){let e=t.$implicit,i=Y();j("ngStyle",i.isCurrent(e)?dg(4,ej):dg(5,tj)),$(2),He(e.packageId),$(2),He(e.version),$(2),He(e.title)}}function nj(n,t){if(n&1){let e=ze();qi(0),B(1,"\xA0 "),P(2,"button",6),X("click",function(){re(e);let r=Y();return se(r.onUpdate())}),B(3,"Update"),U(),Gi()}}function rj(n,t){if(n&1){let e=ze();qi(0),B(1,"\xA0 "),P(2,"button",6),X("click",function(){re(e);let r=Y();return se(r.onDelete())}),B(3,"Delete"),U(),Gi()}}function sj(n,t){n&1&&(qi(0),te(1,"mat-progress-spinner",11),Gi())}function aj(n,t){if(n&1&&te(0,"app-operation-result",14),n&2){let e=Y(2);j("operationResult",e.operationResult)}}function oj(n,t){if(n&1&&(P(0,"div",12)(1,"h2"),B(2,"Result of the last operation"),U(),oe(3,aj,1,1,"app-operation-result",13),U()),n&2){let e=Y();$(3),j("ngIf",e.operationResult)}}var aR=(()=>{class n{constructor(e,i){this.data=e,this.fhirPathService=i,this.update=!1,this.operationResult=null,this.query={_sort:"title",_count:1e4},this.client=e.getFhirClient(),this.addPackageId=new us("",[_n.required,_n.minLength(1)]),this.addVersion=new us("current",[_n.required,_n.minLength(1)]),this.addUrl=new us("url"),this.search()}search(){this.client.search({resourceType:"ImplementationGuide",searchParams:this.query}).then(e=>{let i=e;this.igs=i.entry.map(r=>r.resource),this.selection=void 0,this.addPackageId.setValue(""),this.addVersion.setValue(""),this.addUrl.setValue("")}).catch(e=>{this.errorMessage="Error accessing FHIR server",e.response?.data?this.operationResult=Ut.fromOperationOutcome(e.response.data):this.operationResult=Ut.fromMatchboxError(e.message)}),this.update=!1}getPackageUrl(e){return this.fhirPathService.evaluateToString(e,"extension.where(url='http://ahdis.ch/fhir/extension/packageUrl').valueUri")}isCurrent(e){return this.fhirPathService.evaluateToString(e,"meta.tag.where(system='http://matchbox.health/fhir/CodeSystem/tag').code")==="current"}selectRow(e){this.selection=e,this.addPackageId.setValue(this.selection.packageId),this.addUrl.setValue(this.getPackageUrl(e));let i=this.selection.version;i&&i.endsWith(" (last)")&&(i=i.substring(0,i.length-7)),this.addVersion.setValue(i)}onSubmit(){if(this.errorMessage=null,this.addPackageId.invalid||this.addVersion.invalid){this.errorMessage="Please provide package name";return}let e=this.addPackageId.value.trim();e.indexOf("#")>0&&(e.substring(0,e.indexOf("#")-1),this.addVersion.setValue(e.substring(0,e.indexOf("#")+1))),this.addPackageId.setValue(e);let i=this.addVersion.value.trim();this.addVersion.setValue(i),this.update=!0,this.client.create({resourceType:"ImplementationGuide",body:{resourceType:"ImplementationGuide",name:e,version:i,packageId:e,url:this.addUrl.value},options:{headers:{Prefer:"return=OperationOutcome"}}}).then(r=>{this.errorMessage="Created Implementation Guide "+this.addPackageId.value,this.operationResult=Ut.fromOperationOutcome(r),this.search()}).catch(r=>{this.errorMessage="Error creating Implementation Guide "+this.addPackageId.value,r.response?.data?this.operationResult=Ut.fromOperationOutcome(r.response.data):this.operationResult=Ut.fromMatchboxError(r.message),this.update=!1})}onUpdate(){this.errorMessage=null,this.selection.name=this.addPackageId.value,this.selection.version=this.addVersion.value,this.selection.packageId=this.addPackageId.value,this.selection.url=this.addUrl.value,this.update=!0,this.client.update({resourceType:this.selection.resourceType,id:this.selection.id,body:this.selection,options:{headers:{Prefer:"return=OperationOutcome"}}}).then(e=>{this.errorMessage="Updated Implementation Guide "+this.selection.packageId,this.operationResult=Ut.fromOperationOutcome(e),this.search()}).catch(e=>{this.errorMessage="Error updating Implementation Guide "+this.selection.packageId,e.response?.data?this.operationResult=Ut.fromOperationOutcome(e.response.data):this.operationResult=Ut.fromMatchboxError(e.message),this.update=!1})}onDelete(){this.errorMessage=null,this.update=!0,this.client.delete({resourceType:this.selection.resourceType,id:this.selection.id,options:{headers:{Prefer:"return=OperationOutcome","X-Cascade":"delete"}}}).then(e=>{this.errorMessage="Deleted Implementation Guide Resource "+this.selection.packageId,this.operationResult=Ut.fromOperationOutcome(e),this.search()}).catch(e=>{this.errorMessage="Error deleting Implementation Guide "+this.selection.packageId,e.response?.data?this.operationResult=Ut.fromOperationOutcome(e.response.data):this.operationResult=Ut.fromMatchboxError(e.message),this.update=!1})}static{this.\u0275fac=function(i){return new(i||n)(Ae(Dn),Ae(sR))}}static{this.\u0275cmp=le({type:n,selectors:[["app-igs"]],standalone:!1,decls:40,vars:8,consts:[[1,"white-block","card-igs"],[3,"ngStyle","click",4,"ngFor","ngForOf"],[1,"white-block","Search","card-igs"],["matInput","",3,"formControl"],[2,"width","50vw"],["href","https://packages.fhir.org"],["type","submit",3,"click"],[4,"ngIf"],["class","white-block logs",4,"ngIf"],[3,"click","ngStyle"],[1,"secondary"],["mode","indeterminate"],[1,"white-block","logs"],[3,"operationResult",4,"ngIf"],[3,"operationResult"]],template:function(i,r){i&1&&(P(0,"div",0)(1,"h2"),B(2,"ImplementationGuides installed on the server"),U(),P(3,"table")(4,"thead")(5,"tr")(6,"th"),B(7,"Package"),U(),P(8,"th"),B(9,"Version"),U(),P(10,"th"),B(11,"Title"),U()()(),P(12,"tbody"),oe(13,ij,7,6,"tr",1),U()()(),P(14,"div",2)(15,"h3"),B(16,"Install an ImplementationGuide"),U(),P(17,"mat-form-field")(18,"mat-label"),B(19,"PackageId"),U(),te(20,"input",3),U(),B(21," \xA0 "),P(22,"mat-form-field")(23,"mat-label"),B(24,"Version"),U(),te(25,"input",3),U(),B(26," \xA0 "),P(27,"mat-form-field",4)(28,"mat-label"),B(29,"Package url (optional, use only if not available through "),P(30,"a",5),B(31,"packages.fhir.org"),U(),B(32,") "),U(),te(33,"input",3),U(),P(34,"button",6),X("click",function(){return r.onSubmit()}),B(35,"Upload"),U(),oe(36,nj,4,0,"ng-container",7)(37,rj,4,0,"ng-container",7),U(),oe(38,sj,2,0,"ng-container",7)(39,oj,4,1,"div",8)),i&2&&($(13),j("ngForOf",r.igs),$(7),j("formControl",r.addPackageId),$(5),j("formControl",r.addVersion),$(8),j("formControl",r.addUrl),$(3),j("ngIf",r.selection),$(),j("ngIf",r.selection),$(),j("ngIf",r.update),$(),j("ngIf",r.errorMessage))},dependencies:[vr,di,Ww,Ir,Dr,er,bn,ds,Ml,Xs,dl],styles:[".secondary[_ngcontent-%COMP%]{color:#6b7280}table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:1px solid rgb(209,213,219);padding-bottom:1rem}table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:1px solid rgb(229,231,235);padding-top:1rem;padding-bottom:1rem}table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:hover{background:#eee}.mat-form-field.url[_ngcontent-%COMP%]{width:200px}.mat-table[_ngcontent-%COMP%]{margin:1rem}.mat-table[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{cursor:pointer}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{padding-left:.5rem;padding-right:.5rem}.mat-table[_ngcontent-%COMP%] .mat-cell.title[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell.title[_ngcontent-%COMP%]{flex:2;justify-content:flex-end}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]:first-child, .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]:first-child{padding-left:1rem}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]:last-child, .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]:last-child{padding-right:1rem}.card-igs[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return n})();var cj=["searchSelectInput"],uj=["innerSelectSearch"],dj=[[["",8,"mat-select-search-custom-header-content"]],[["","ngxMatSelectSearchClear",""]],[["","ngxMatSelectNoEntriesFound",""]]],hj=[".mat-select-search-custom-header-content","[ngxMatSelectSearchClear]","[ngxMatSelectNoEntriesFound]"],mj=(n,t)=>({"mat-select-search-inner-multiple":n,"mat-select-search-inner-toggle-all":t});function fj(n,t){if(n&1){let e=ze();P(0,"mat-checkbox",12),X("change",function(r){re(e);let s=Y();return se(s._emitSelectAllBooleanToParent(r.checked))}),U()}if(n&2){let e=Y();j("color",e.matFormField==null?null:e.matFormField.color)("checked",e.toggleAllCheckboxChecked)("indeterminate",e.toggleAllCheckboxIndeterminate)("matTooltip",e.toggleAllCheckboxTooltipMessage)("matTooltipPosition",e.toggleAllCheckboxTooltipPosition)}}function pj(n,t){n&1&&te(0,"mat-spinner",13)}function gj(n,t){n&1&&Fe(0,1,["*ngIf","clearIcon; else defaultIcon"])}function _j(n,t){if(n&1&&(P(0,"mat-icon",16),B(1),U()),n&2){let e=Y(2);j("svgIcon",e.closeSvgIcon),$(),je(" ",e.closeSvgIcon?null:e.closeIcon," ")}}function bj(n,t){if(n&1){let e=ze();P(0,"button",14),X("click",function(){re(e);let r=Y();return se(r._reset(!0))}),oe(1,gj,1,0,"ng-content",15)(2,_j,2,2,"ng-template",null,2,Ma),U()}if(n&2){let e=jt(3),i=Y();$(),j("ngIf",i.clearIcon)("ngIfElse",e)}}function vj(n,t){n&1&&Fe(0,2,["*ngIf","noEntriesFound; else defaultNoEntriesFound"])}function yj(n,t){if(n&1&&B(0),n&2){let e=Y(2);He(e.noEntriesFoundLabel)}}function Cj(n,t){if(n&1&&(P(0,"div",17),oe(1,vj,1,0,"ng-content",15)(2,yj,1,1,"ng-template",null,3,Ma),U()),n&2){let e=jt(3),i=Y();$(),j("ngIf",i.noEntriesFound)("ngIfElse",e)}}var wj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=xe({type:n,selectors:[["","ngxMatSelectSearchClear",""]],standalone:!1}),n})(),xj=["ariaLabel","clearSearchInput","closeIcon","closeSvgIcon","disableInitialFocus","disableScrollToActiveOnOptionsChanged","enableClearOnEscapePressed","hideClearSearchButton","noEntriesFoundLabel","placeholderLabel","preventHomeEndKeyPropagation","searching"],Sj=new J("mat-selectsearch-default-options"),kj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=xe({type:n,selectors:[["","ngxMatSelectNoEntriesFound",""]],standalone:!1}),n})(),n0=(()=>{class n{constructor(e,i,r,s,a,o){this.matSelect=e,this.changeDetectorRef=i,this._viewportRuler=r,this.matOption=s,this.matFormField=a,this.placeholderLabel="Suche",this.type="text",this.closeIcon="close",this.noEntriesFoundLabel="Keine Optionen gefunden",this.clearSearchInput=!0,this.searching=!1,this.disableInitialFocus=!1,this.enableClearOnEscapePressed=!1,this.preventHomeEndKeyPropagation=!1,this.disableScrollToActiveOnOptionsChanged=!1,this.ariaLabel="dropdown search",this.showToggleAllCheckbox=!1,this.toggleAllCheckboxChecked=!1,this.toggleAllCheckboxIndeterminate=!1,this.toggleAllCheckboxTooltipMessage="",this.toggleAllCheckboxTooltipPosition="below",this.hideClearSearchButton=!1,this.alwaysRestoreSelectedOptionsMulti=!1,this.recreateValuesArray=!1,this.toggleAll=new ce,this.onTouched=l=>{},this._options$=new ci(null),this.optionsList$=this._options$.pipe(Mt(l=>l?l.changes.pipe(Ne(c=>c.toArray()),Bt(l.toArray())):ge(null))),this.optionsLength$=this.optionsList$.pipe(Ne(l=>l?l.length:0)),this._formControl=new Rr("",{nonNullable:!0}),this._showNoEntriesFound$=hr([this._formControl.valueChanges,this.optionsLength$]).pipe(Ne(([l,c])=>!!(this.noEntriesFoundLabel&&l&&c===this.getOptionsLengthOffset()))),this._onDestroy=new ue,this.applyDefaultOptions(o)}get value(){return this._formControl.value}set _options(e){this._options$.next(e)}get _options(){return this._options$.getValue()}applyDefaultOptions(e){if(e)for(let i of xj)e.hasOwnProperty(i)&&(this[i]=e[i])}ngOnInit(){this.matOption?(this.matOption.disabled=!0,this.matOption._getHostElement().classList.add("contains-mat-select-search"),this.matOption._getHostElement().setAttribute("role","presentation")):console.error(" must be placed inside a element"),this.matSelect.openedChange.pipe(To(1),Ye(this._onDestroy)).subscribe(e=>{e?(this.updateInputWidth(),this.disableInitialFocus||this._focus()):this.clearSearchInput&&this._reset()}),this.matSelect.openedChange.pipe(Vt(1),Mt(e=>{this._options=this.matSelect.options;let i=this._options.toArray()[this.getOptionsLengthOffset()];return this._options.changes.pipe(kt(()=>{setTimeout(()=>{let r=this._options.toArray(),s=r[this.getOptionsLengthOffset()],a=this.matSelect._keyManager;a&&this.matSelect.panelOpen&&s&&((!i||!this.matSelect.compareWith(i.value,s.value)||!a.activeItem||!r.find(l=>this.matSelect.compareWith(l.value,a.activeItem?.value)))&&a.setActiveItem(this.getOptionsLengthOffset()),setTimeout(()=>{this.updateInputWidth()})),i=s})}))})).pipe(Ye(this._onDestroy)).subscribe(),this._showNoEntriesFound$.pipe(Ye(this._onDestroy)).subscribe(e=>{this.matOption&&(e?this.matOption._getHostElement().classList.add("mat-select-search-no-entries-found"):this.matOption._getHostElement().classList.remove("mat-select-search-no-entries-found"))}),this._viewportRuler.change().pipe(Ye(this._onDestroy)).subscribe(()=>{this.matSelect.panelOpen&&this.updateInputWidth()}),this.initMultipleHandling(),this.optionsList$.pipe(Ye(this._onDestroy)).subscribe(()=>{this.changeDetectorRef.markForCheck()})}_emitSelectAllBooleanToParent(e){this.toggleAll.emit(e)}ngOnDestroy(){this._onDestroy.next(),this._onDestroy.complete()}_isToggleAllCheckboxVisible(){return this.matSelect.multiple&&this.showToggleAllCheckbox}_handleKeydown(e){(e.key&&e.key.length===1||this.preventHomeEndKeyPropagation&&(e.key==="Home"||e.key==="End"))&&e.stopPropagation(),this.matSelect.multiple&&e.key&&e.key==="Enter"&&setTimeout(()=>this._focus()),this.enableClearOnEscapePressed&&e.key==="Escape"&&this.value&&(this._reset(!0),e.stopPropagation())}_handleKeyup(e){if(e.key==="ArrowUp"||e.key==="ArrowDown"){let i=this.matSelect._getAriaActiveDescendant(),r=this._options.toArray().findIndex(s=>s.id===i);r!==-1&&(this.unselectActiveDescendant(),this.activeDescendant=this._options.toArray()[r]._getHostElement(),this.activeDescendant.setAttribute("aria-selected","true"),this.searchSelectInput.nativeElement.setAttribute("aria-activedescendant",i))}}writeValue(e){this._lastExternalInputValue=e,this._formControl.setValue(e),this.changeDetectorRef.markForCheck()}onBlur(){this.unselectActiveDescendant(),this.onTouched()}registerOnChange(e){this._formControl.valueChanges.pipe(it(i=>i!==this._lastExternalInputValue),kt(()=>this._lastExternalInputValue=void 0),Ye(this._onDestroy)).subscribe(e)}registerOnTouched(e){this.onTouched=e}_focus(){if(!this.searchSelectInput||!this.matSelect.panel)return;let e=this.matSelect.panel.nativeElement,i=e.scrollTop;this.searchSelectInput.nativeElement.focus(),e.scrollTop=i}_reset(e){this._formControl.setValue(""),e&&this._focus()}initMultipleHandling(){if(!this.matSelect.ngControl){this.matSelect.multiple&&console.error("the mat-select containing ngx-mat-select-search must have a ngModel or formControl directive when multiple=true");return}this.previousSelectedValues=this.matSelect.ngControl.value,this.matSelect.ngControl.valueChanges&&this.matSelect.ngControl.valueChanges.pipe(Ye(this._onDestroy)).subscribe(e=>{let i=!1;if(this.matSelect.multiple&&(this.alwaysRestoreSelectedOptionsMulti||this._formControl.value&&this._formControl.value.length)&&this.previousSelectedValues&&Array.isArray(this.previousSelectedValues)){(!e||!Array.isArray(e))&&(e=[]);let r=this.matSelect.options.map(s=>s.value);this.previousSelectedValues.forEach(s=>{!e.some(a=>this.matSelect.compareWith(a,s))&&!r.some(a=>this.matSelect.compareWith(a,s))&&(this.recreateValuesArray?e=[...e,s]:e.push(s),i=!0)})}this.previousSelectedValues=e,i&&this.matSelect._onChange(e)})}updateInputWidth(){if(!this.innerSelectSearch||!this.innerSelectSearch.nativeElement)return;let e=this.innerSelectSearch.nativeElement,i=null;for(;e&&e.parentElement;)if(e=e.parentElement,e.classList.contains("mat-select-panel")){i=e;break}i&&(this.innerSelectSearch.nativeElement.style.width=i.clientWidth+"px")}getOptionsLengthOffset(){return this.matOption?1:0}unselectActiveDescendant(){this.activeDescendant?.removeAttribute("aria-selected"),this.searchSelectInput.nativeElement.removeAttribute("aria-activedescendant")}}return n.\u0275fac=function(e){return new(e||n)(Ae(ps),Ae(Ge),Ae(On),Ae(Nn,8),Ae(bn,8),Ae(Sj,8))},n.\u0275cmp=le({type:n,selectors:[["ngx-mat-select-search"]],contentQueries:function(e,i,r){if(e&1&&(Et(r,wj,5),Et(r,kj,5)),e&2){let s;ke(s=Me())&&(i.clearIcon=s.first),ke(s=Me())&&(i.noEntriesFound=s.first)}},viewQuery:function(e,i){if(e&1&&(Pe(cj,7,Te),Pe(uj,7,Te)),e&2){let r;ke(r=Me())&&(i.searchSelectInput=r.first),ke(r=Me())&&(i.innerSelectSearch=r.first)}},inputs:{placeholderLabel:"placeholderLabel",type:"type",closeIcon:"closeIcon",closeSvgIcon:"closeSvgIcon",noEntriesFoundLabel:"noEntriesFoundLabel",clearSearchInput:"clearSearchInput",searching:"searching",disableInitialFocus:"disableInitialFocus",enableClearOnEscapePressed:"enableClearOnEscapePressed",preventHomeEndKeyPropagation:"preventHomeEndKeyPropagation",disableScrollToActiveOnOptionsChanged:"disableScrollToActiveOnOptionsChanged",ariaLabel:"ariaLabel",showToggleAllCheckbox:"showToggleAllCheckbox",toggleAllCheckboxChecked:"toggleAllCheckboxChecked",toggleAllCheckboxIndeterminate:"toggleAllCheckboxIndeterminate",toggleAllCheckboxTooltipMessage:"toggleAllCheckboxTooltipMessage",toggleAllCheckboxTooltipPosition:"toggleAllCheckboxTooltipPosition",hideClearSearchButton:"hideClearSearchButton",alwaysRestoreSelectedOptionsMulti:"alwaysRestoreSelectedOptionsMulti",recreateValuesArray:"recreateValuesArray"},outputs:{toggleAll:"toggleAll"},standalone:!1,features:[rt([{provide:cs,useExisting:Ci(()=>n),multi:!0}])],ngContentSelectors:hj,decls:13,vars:14,consts:[["innerSelectSearch",""],["searchSelectInput",""],["defaultIcon",""],["defaultNoEntriesFound",""],["matInput","",1,"mat-select-search-input","mat-select-search-hidden"],[1,"mat-select-search-inner","mat-typography","mat-datepicker-content","mat-tab-header",3,"ngClass"],[1,"mat-select-search-inner-row"],["class","mat-select-search-toggle-all-checkbox","matTooltipClass","ngx-mat-select-search-toggle-all-tooltip",3,"color","checked","indeterminate","matTooltip","matTooltipPosition","change",4,"ngIf"],["autocomplete","off",1,"mat-select-search-input",3,"keydown","keyup","blur","type","formControl","placeholder"],["class","mat-select-search-spinner","diameter","16",4,"ngIf"],["mat-icon-button","","aria-label","Clear","class","mat-select-search-clear",3,"click",4,"ngIf"],["class","mat-select-search-no-entries-found",4,"ngIf"],["matTooltipClass","ngx-mat-select-search-toggle-all-tooltip",1,"mat-select-search-toggle-all-checkbox",3,"change","color","checked","indeterminate","matTooltip","matTooltipPosition"],["diameter","16",1,"mat-select-search-spinner"],["mat-icon-button","","aria-label","Clear",1,"mat-select-search-clear",3,"click"],[4,"ngIf","ngIfElse"],[3,"svgIcon"],[1,"mat-select-search-no-entries-found"]],template:function(e,i){if(e&1){let r=ze();Qe(dj),te(0,"input",4),P(1,"div",5,0)(3,"div",6),oe(4,fj,1,5,"mat-checkbox",7),P(5,"input",8,1),X("keydown",function(a){return re(r),se(i._handleKeydown(a))})("keyup",function(a){return re(r),se(i._handleKeyup(a))})("blur",function(){return re(r),se(i.onBlur())}),U(),oe(7,pj,1,0,"mat-spinner",9)(8,bj,4,2,"button",10),Fe(9),U(),te(10,"mat-divider"),U(),oe(11,Cj,4,2,"div",11),En(12,"async")}e&2&&($(),j("ngClass",Fw(11,mj,i.matSelect.multiple,i._isToggleAllCheckboxVisible())),$(3),j("ngIf",i._isToggleAllCheckboxVisible()),$(),j("type",i.type)("formControl",i._formControl)("placeholder",i.placeholderLabel),Se("aria-label",i.ariaLabel),$(2),j("ngIf",i.searching),$(),j("ngIf",!i.hideClearSearchButton&&i.value&&!i.searching),$(3),j("ngIf",Kn(12,9,i._showNoEntriesFound$)))},dependencies:[An,di,Ir,Dr,er,ra,Al,Rn,Xs,Ou,iE,No],styles:[".mat-select-search-hidden[_ngcontent-%COMP%]{visibility:hidden}.mat-select-search-inner[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;background-color:var(--mat-select-panel-background-color)}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-inner-row[_ngcontent-%COMP%]{display:flex;align-items:center}.mat-select-search-input[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background-color:var(--mat-select-panel-background-color);padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-right:16px;padding-left:44px}.mat-select-search-input[_ngcontent-%COMP%]::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}.mat-select-search-input[_ngcontent-%COMP%]::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-left:5px}.mat-select-search-no-entries-found[_ngcontent-%COMP%]{padding-top:8px}.mat-select-search-clear[_ngcontent-%COMP%]{position:absolute;right:4px;top:0}[dir=rtl][_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%]{right:auto;left:4px}.mat-select-search-spinner[_ngcontent-%COMP%]{position:absolute;right:16px;top:calc(50% - 8px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%]{right:auto;left:16px} .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:-8px;z-index:1;opacity:1;margin-top:-8px;pointer-events:all} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0} .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:5px}[dir=rtl][_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:0;padding-right:5px}"],changeDetection:0}),n})();var oR=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=he({type:n}),n.\u0275inj=de({imports:[Jr,Su,fs,Au,iu,nu,Nu,Ru]}),n})();var r0=(()=>{class n{constructor(){this.addFiles=new ce,this.dragCounter=0}checkStatus(e){if(!e.ok)throw new Error(`HTTP ${e.status} - ${e.statusText}`);return e}onDrop(e){e.preventDefault(),this.dragCounter=0;let i=e.target.files||e.dataTransfer.items;if(i)for(let s=0;s0))},dependencies:[ms,Rn],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.attachment-field[_ngcontent-%COMP%]{border-radius:5px;background:#f0f3f6}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%]{border-bottom:1px solid #dedede;display:flex;align-items:center;height:40px}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .attachment-name[_ngcontent-%COMP%]{flex:1;padding:0 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .attachment-size[_ngcontent-%COMP%]:last-child{margin-right:1rem}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .mat-icon-button[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;line-height:inherit}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%]{text-align:center;padding:2rem;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.attachment-field[_ngcontent-%COMP%] .drop-zone.file-over[_ngcontent-%COMP%]{background:#e1e7ed}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%] .spacer[_ngcontent-%COMP%]{line-height:3rem}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%] .bold-text[_ngcontent-%COMP%]{font-weight:700}"],changeDetection:0})}}return n})();function Mj(n,t){if(n&1&&(P(0,"mat-option",12),B(1),U()),n&2){let e=t.$implicit;Rw("value",e.url),$(),je("",e.title?e.title:e.name," ")}}function Tj(n,t){if(n&1&&(P(0,"li"),B(1),U()),n&2){let e=t.$implicit;$(),je(" ",e.diagnostics," ")}}function Ej(n,t){if(n&1&&(P(0,"mat-error")(1,"ul"),oe(2,Tj,2,1,"li",14),U()()),n&2){let e=Y(2);$(2),j("ngForOf",e.operationOutcomeTransformed.issue)}}function Aj(n,t){if(n&1&&(P(0,"mat-card",0)(1,"mat-card-header")(2,"mat-card-title"),B(3,"Transformed"),U()(),P(4,"mat-card-content"),oe(5,Ej,3,1,"mat-error",13),P(6,"pre"),te(7,"code",2),U()()()),n&2){let e=Y();$(5),j("ngIf",e.operationOutcomeTransformed),$(2),j("highlight",e.getMapped())}}var uR=(()=>{class n{constructor(e){this.allStructureMaps=[],this.filteredStructureMaps=new ah(1),this.structureMapFilterControl=new Rr(""),this.structureMapControl=new Rr(null),this.map=null,this.model=null,this.client=e.getFhirClient(),this.client.operation({name:"list",resourceType:"StructureMap",method:"GET"}).then(i=>{this.setMaps(i),this.filteredStructureMaps.next(this.allStructureMaps.slice())}),this.structureMapControl.valueChanges.pipe(Ii(400),mr()).subscribe(i=>{this.map={canonical:i}}),this.structureMapFilterControl.valueChanges.subscribe(()=>this.filterStructureMaps())}transform(){if(this.resource!=null&&this.map!=null){let e={resourceType:"Parameters",parameter:[{name:"resource",valueString:this.resource}]};"canonical"in this.map?e.parameter.push({name:"source",valueString:this.map.canonical}):e.parameter.push({name:"map",valueString:this.map.content}),this.model!=null&&e.parameter.push({name:"model",valueString:this.model}),this.client.operation({name:"transform",resourceType:"StructureMap",input:e,options:{headers:{"content-type":"application/fhir+json"}}}).then(i=>{this.operationOutcomeTransformed=null,this.transformed=i}).catch(i=>{this.transformed=null,this.operationOutcomeTransformed=i.response.data})}}getResource(){return this.resource}getMapped(){return JSON.stringify(this.transformed,null,2)}setMaps(e){this.allStructureMaps=e.entry.map(i=>i.resource)}setResource(e){this.transformed=null,(e.contentType==="application/json"||e.name.endsWith(".json"))&&(this.mimeType="application/fhir+json"),(e.contentType==="application/xml"||e.name.endsWith(".xml"))&&(this.mimeType="application/fhir+xml");let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.resource=i.result}}setMapContent(e){let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.map={content:i.result}}}setModelContent(e){let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.model=i.result}}filterStructureMaps(){if(!this.allStructureMaps||this.allStructureMaps.length===0)return;let e=this.structureMapFilterControl.value;if(!e){this.filteredStructureMaps.next(this.allStructureMaps.slice());return}e=e.toLowerCase(),this.filteredStructureMaps.next(this.allStructureMaps.filter(i=>i.title.toLowerCase().indexOf(e)>-1))}static{this.\u0275fac=function(i){return new(i||n)(Ae(Dn))}}static{this.\u0275cmp=le({type:n,selectors:[["app-transform"]],standalone:!1,decls:46,vars:7,consts:[[1,"card-maps"],[3,"addFiles"],["lineNumbers","","language","json",3,"highlight"],["label","By reference"],[1,"tab-content","flex"],["appearance","fill"],[3,"formControl"],[3,"value",4,"ngFor","ngForOf"],["label","By uploading"],[1,"tab-content"],["mat-stroked-button","",3,"click"],["class","card-maps",4,"ngIf"],[3,"value"],[4,"ngIf"],[4,"ngFor","ngForOf"]],template:function(i,r){i&1&&(P(0,"h2"),B(1,"Transform a resource with the $transform operation"),U(),P(2,"mat-card",0)(3,"mat-card-header")(4,"mat-card-title"),B(5,"The resource"),U()(),P(6,"mat-card-content")(7,"app-upload",1),X("addFiles",function(a){return r.setResource(a)}),U(),P(8,"pre"),te(9,"code",2),U()()(),P(10,"mat-card",0)(11,"mat-card-header")(12,"mat-card-title"),B(13,"The map"),U(),P(14,"mat-card-subtitle"),B(15,"Choose a StructureMap to use for the transformation"),U()(),P(16,"mat-card-content")(17,"mat-tab-group")(18,"mat-tab",3)(19,"div",4)(20,"mat-form-field",5)(21,"mat-label"),B(22,"The map to use:"),U(),P(23,"mat-select",6)(24,"mat-option"),te(25,"ngx-mat-select-search",6),U(),oe(26,Mj,2,2,"mat-option",7),En(27,"async"),U()()()(),P(28,"mat-tab",8)(29,"div",9),B(30," Provide a StructureMap to use for the transformation (JSON or XML): "),P(31,"app-upload",1),X("addFiles",function(a){return r.setMapContent(a)}),U()()()()()(),P(32,"mat-card",0)(33,"mat-card-header")(34,"mat-card-title"),B(35,"The model(s)"),U()(),P(36,"mat-card-content"),B(37," Provide a StructureDefinition or Bundle of StructureDefinitions resource that are imported by the map (JSON or XML): "),P(38,"app-upload",1),X("addFiles",function(a){return r.setModelContent(a)}),U()()(),P(39,"mat-card",0)(40,"mat-card-content")(41,"button",10),X("click",function(){return r.transform()}),P(42,"mat-icon"),B(43,"transform"),U(),B(44," Transform "),U()()(),oe(45,Aj,8,2,"mat-card",11)),i&2&&($(9),j("highlight",r.getResource()),$(14),j("formControl",r.structureMapControl),$(2),j("formControl",r.structureMapFilterControl),$(),j("ngForOf",Kn(27,5,r.filteredStructureMaps)),$(19),j("ngIf",r.transformed||r.operationOutcomeTransformed))},dependencies:[vr,di,Dr,er,Nn,ms,hl,ml,Om,SM,Rm,bn,ds,Ka,Rn,ps,Qb,wE,ix,n0,rx,r0,No],styles:[".card-maps[_ngcontent-%COMP%]{margin-bottom:10px}.tab-content[_ngcontent-%COMP%]{padding:2em 1em 0}mat-select[_ngcontent-%COMP%]{width:100%}.tab-content.flex[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.tab-content.flex[_ngcontent-%COMP%] .form-field-label[_ngcontent-%COMP%]{white-space:nowrap}.tab-content.flex[_ngcontent-%COMP%] .form-field-label[_ngcontent-%COMP%] + mat-form-field[_ngcontent-%COMP%]{margin-left:10px}.tab-content.flex[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}"]})}}return n})();function ac(n){let t=n.length;for(;--t>=0;)n[t]=0}var Ij=0,YR=1,Dj=2,Rj=3,Lj=258,uC=29,Hd=256,Nd=Hd+1+uC,nc=30,dC=19,QR=2*Nd+1,lo=15,B1=16,Oj=7,hC=256,ZR=16,XR=17,JR=18,tC=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),u0=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Nj=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),eL=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Fj=512,Ds=new Array((Nd+2)*2);ac(Ds);var Rd=new Array(nc*2);ac(Rd);var Fd=new Array(Fj);ac(Fd);var Pd=new Array(Lj-Rj+1);ac(Pd);var mC=new Array(uC);ac(mC);var d0=new Array(nc);ac(d0);function z1(n,t,e,i,r){this.static_tree=n,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=n&&n.length}var tL,iL,nL;function H1(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}var rL=n=>n<256?Fd[n]:Fd[256+(n>>>7)],Ud=(n,t)=>{n.pending_buf[n.pending++]=t&255,n.pending_buf[n.pending++]=t>>>8&255},nn=(n,t,e)=>{n.bi_valid>B1-e?(n.bi_buf|=t<>B1-n.bi_valid,n.bi_valid+=e-B1):(n.bi_buf|=t<{nn(n,e[t*2],e[t*2+1])},sL=(n,t)=>{let e=0;do e|=n&1,n>>>=1,e<<=1;while(--t>0);return e>>>1},Pj=n=>{n.bi_valid===16?(Ud(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},Uj=(n,t)=>{let e=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,s=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,u,d,h,m,f,p=0;for(h=0;h<=lo;h++)n.bl_count[h]=0;for(e[n.heap[n.heap_max]*2+1]=0,c=n.heap_max+1;cl&&(h=l,p++),e[u*2+1]=h,!(u>i)&&(n.bl_count[h]++,m=0,u>=o&&(m=a[u-o]),f=e[u*2],n.opt_len+=f*(h+m),s&&(n.static_len+=f*(r[u*2+1]+m)));if(p!==0){do{for(h=l-1;n.bl_count[h]===0;)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,p-=2}while(p>0);for(h=l;h!==0;h--)for(u=n.bl_count[h];u!==0;)d=n.heap[--c],!(d>i)&&(e[d*2+1]!==h&&(n.opt_len+=(h-e[d*2+1])*e[d*2],e[d*2+1]=h),u--)}},aL=(n,t,e)=>{let i=new Array(lo+1),r=0,s,a;for(s=1;s<=lo;s++)r=r+e[s-1]<<1,i[s]=r;for(a=0;a<=t;a++){let o=n[a*2+1];o!==0&&(n[a*2]=sL(i[o]++,o))}},$j=()=>{let n,t,e,i,r,s=new Array(lo+1);for(e=0,i=0;i>=7;i{let t;for(t=0;t{n.bi_valid>8?Ud(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},dR=(n,t,e,i)=>{let r=t*2,s=e*2;return n[r]{let i=n.heap[e],r=e<<1;for(;r<=n.heap_len&&(r{let i,r,s=0,a,o;if(n.sym_next!==0)do i=n.pending_buf[n.sym_buf+s++]&255,i+=(n.pending_buf[n.sym_buf+s++]&255)<<8,r=n.pending_buf[n.sym_buf+s++],i===0?Wr(n,r,t):(a=Pd[r],Wr(n,a+Hd+1,t),o=tC[a],o!==0&&(r-=mC[a],nn(n,r,o)),i--,a=rL(i),Wr(n,a,e),o=u0[a],o!==0&&(i-=d0[a],nn(n,i,o)));while(s{let e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.elems,a,o,l=-1,c;for(n.heap_len=0,n.heap_max=QR,a=0;a>1;a>=1;a--)j1(n,e,a);c=s;do a=n.heap[1],n.heap[1]=n.heap[n.heap_len--],j1(n,e,1),o=n.heap[1],n.heap[--n.heap_max]=a,n.heap[--n.heap_max]=o,e[c*2]=e[a*2]+e[o*2],n.depth[c]=(n.depth[a]>=n.depth[o]?n.depth[a]:n.depth[o])+1,e[a*2+1]=e[o*2+1]=c,n.heap[1]=c++,j1(n,e,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],Uj(n,t),aL(e,l,n.bl_count)},mR=(n,t,e)=>{let i,r=-1,s,a=t[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),t[(e+1)*2+1]=65535,i=0;i<=e;i++)s=a,a=t[(i+1)*2+1],!(++o{let i,r=-1,s,a=t[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),i=0;i<=e;i++)if(s=a,a=t[(i+1)*2+1],!(++o{let t;for(mR(n,n.dyn_ltree,n.l_desc.max_code),mR(n,n.dyn_dtree,n.d_desc.max_code),iC(n,n.bl_desc),t=dC-1;t>=3&&n.bl_tree[eL[t]*2+1]===0;t--);return n.opt_len+=3*(t+1)+5+5+4,t},Bj=(n,t,e,i)=>{let r;for(nn(n,t-257,5),nn(n,e-1,5),nn(n,i-4,4),r=0;r{let t=4093624447,e;for(e=0;e<=31;e++,t>>>=1)if(t&1&&n.dyn_ltree[e*2]!==0)return 0;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return 1;for(e=32;e{pR||($j(),pR=!0),n.l_desc=new H1(n.dyn_ltree,tL),n.d_desc=new H1(n.dyn_dtree,iL),n.bl_desc=new H1(n.bl_tree,nL),n.bi_buf=0,n.bi_valid=0,oL(n)},cL=(n,t,e,i)=>{nn(n,(Ij<<1)+(i?1:0),3),lL(n),Ud(n,e),Ud(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e},jj=n=>{nn(n,YR<<1,3),Wr(n,hC,Ds),Pj(n)},Wj=(n,t,e,i)=>{let r,s,a=0;n.level>0?(n.strm.data_type===2&&(n.strm.data_type=zj(n)),iC(n,n.l_desc),iC(n,n.d_desc),a=Vj(n),r=n.opt_len+3+7>>>3,s=n.static_len+3+7>>>3,s<=r&&(r=s)):r=s=e+5,e+4<=r&&t!==-1?cL(n,t,e,i):n.strategy===4||s===r?(nn(n,(YR<<1)+(i?1:0),3),hR(n,Ds,Rd)):(nn(n,(Dj<<1)+(i?1:0),3),Bj(n,n.l_desc.max_code+1,n.d_desc.max_code+1,a+1),hR(n,n.dyn_ltree,n.dyn_dtree)),oL(n),i&&lL(n)},qj=(n,t,e)=>(n.pending_buf[n.sym_buf+n.sym_next++]=t,n.pending_buf[n.sym_buf+n.sym_next++]=t>>8,n.pending_buf[n.sym_buf+n.sym_next++]=e,t===0?n.dyn_ltree[e*2]++:(n.matches++,t--,n.dyn_ltree[(Pd[e]+Hd+1)*2]++,n.dyn_dtree[rL(t)*2]++),n.sym_next===n.sym_end),Gj=Hj,Kj=cL,Yj=Wj,Qj=qj,Zj=jj,Xj={_tr_init:Gj,_tr_stored_block:Kj,_tr_flush_block:Yj,_tr_tally:Qj,_tr_align:Zj},Jj=(n,t,e,i)=>{let r=n&65535|0,s=n>>>16&65535|0,a=0;for(;e!==0;){a=e>2e3?2e3:e,e-=a;do r=r+t[i++]|0,s=s+r|0;while(--a);r%=65521,s%=65521}return r|s<<16|0},$d=Jj,e8=()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;t[e]=n}return t},t8=new Uint32Array(e8()),i8=(n,t,e,i)=>{let r=t8,s=i+e;n^=-1;for(let a=i;a>>8^r[(n^t[a])&255];return n^-1},li=i8,ho={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},po={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:n8,_tr_stored_block:nC,_tr_flush_block:r8,_tr_tally:ba,_tr_align:s8}=Xj,{Z_NO_FLUSH:va,Z_PARTIAL_FLUSH:a8,Z_FULL_FLUSH:o8,Z_FINISH:zn,Z_BLOCK:gR,Z_OK:bi,Z_STREAM_END:_R,Z_STREAM_ERROR:qr,Z_DATA_ERROR:l8,Z_BUF_ERROR:W1,Z_DEFAULT_COMPRESSION:c8,Z_FILTERED:u8,Z_HUFFMAN_ONLY:s0,Z_RLE:d8,Z_FIXED:h8,Z_DEFAULT_STRATEGY:m8,Z_UNKNOWN:f8,Z_DEFLATED:f0}=po,p8=9,g8=15,_8=8,b8=29,v8=256,rC=v8+1+b8,y8=30,C8=19,w8=2*rC+1,x8=15,lt=3,_a=258,Gr=_a+lt+1,S8=32,rc=42,fC=57,sC=69,aC=73,oC=91,lC=103,co=113,Id=666,ji=1,oc=2,mo=3,lc=4,k8=3,uo=(n,t)=>(n.msg=ho[t],t),bR=n=>n*2-(n>4?9:0),ga=n=>{let t=n.length;for(;--t>=0;)n[t]=0},M8=n=>{let t,e,i,r=n.w_size;t=n.hash_size,i=t;do e=n.head[--i],n.head[i]=e>=r?e-r:0;while(--t);t=r,i=t;do e=n.prev[--i],n.prev[i]=e>=r?e-r:0;while(--t)},T8=(n,t,e)=>(t<{let t=n.state,e=t.pending;e>n.avail_out&&(e=n.avail_out),e!==0&&(n.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),n.next_out),n.next_out+=e,t.pending_out+=e,n.total_out+=e,n.avail_out-=e,t.pending-=e,t.pending===0&&(t.pending_out=0))},kn=(n,t)=>{r8(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,Sn(n.strm)},yt=(n,t)=>{n.pending_buf[n.pending++]=t},Ad=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=t&255},cC=(n,t,e,i)=>{let r=n.avail_in;return r>i&&(r=i),r===0?0:(n.avail_in-=r,t.set(n.input.subarray(n.next_in,n.next_in+r),e),n.state.wrap===1?n.adler=$d(n.adler,t,r,e):n.state.wrap===2&&(n.adler=li(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},uL=(n,t)=>{let e=n.max_chain_length,i=n.strstart,r,s,a=n.prev_length,o=n.nice_match,l=n.strstart>n.w_size-Gr?n.strstart-(n.w_size-Gr):0,c=n.window,u=n.w_mask,d=n.prev,h=n.strstart+_a,m=c[i+a-1],f=c[i+a];n.prev_length>=n.good_match&&(e>>=2),o>n.lookahead&&(o=n.lookahead);do if(r=t,!(c[r+a]!==f||c[r+a-1]!==m||c[r]!==c[i]||c[++r]!==c[i+1])){i+=2,r++;do;while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&ia){if(n.match_start=t,a=s,s>=o)break;m=c[i+a-1],f=c[i+a]}}while((t=d[t&u])>l&&--e!==0);return a<=n.lookahead?a:n.lookahead},sc=n=>{let t=n.w_size,e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-Gr)&&(n.window.set(n.window.subarray(t,t+t-i),0),n.match_start-=t,n.strstart-=t,n.block_start-=t,n.insert>n.strstart&&(n.insert=n.strstart),M8(n),i+=t),n.strm.avail_in===0)break;if(e=cC(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=e,n.lookahead+n.insert>=lt)for(r=n.strstart-n.insert,n.ins_h=n.window[r],n.ins_h=ya(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=ya(n,n.ins_h,n.window[r+lt-1]),n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,n.insert--,!(n.lookahead+n.insert{let e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,i,r,s,a=0,o=n.strm.avail_in;do{if(i=65535,s=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>s&&(i=s),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,Sn(n.strm),r&&(r>i&&(r=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+r),n.strm.next_out),n.strm.next_out+=r,n.strm.avail_out-=r,n.strm.total_out+=r,n.block_start+=r,i-=r),i&&(cC(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(a===0);return o-=n.strm.avail_in,o&&(o>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=o&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-o,n.strm.next_in),n.strstart),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.block_start=n.strstart),n.high_waters&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,s+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),s>n.strm.avail_in&&(s=n.strm.avail_in),s&&(cC(n.strm,n.window,n.strstart,s),n.strstart+=s,n.insert+=s>n.w_size-n.insert?n.w_size-n.insert:s),n.high_water>3,s=n.pending_buf_size-s>65535?65535:n.pending_buf_size-s,e=s>n.w_size?n.w_size:s,r=n.strstart-n.block_start,(r>=e||(r||t===zn)&&t!==va&&n.strm.avail_in===0&&r<=s)&&(i=r>s?s:r,a=t===zn&&n.strm.avail_in===0&&i===r?1:0,nC(n,n.block_start,i,a),n.block_start+=i,Sn(n.strm)),a?mo:ji)},q1=(n,t)=>{let e,i;for(;;){if(n.lookahead=lt&&(n.ins_h=ya(n,n.ins_h,n.window[n.strstart+lt-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),e!==0&&n.strstart-e<=n.w_size-Gr&&(n.match_length=uL(n,e)),n.match_length>=lt)if(i=ba(n,n.strstart-n.match_start,n.match_length-lt),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=lt){n.match_length--;do n.strstart++,n.ins_h=ya(n,n.ins_h,n.window[n.strstart+lt-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=ya(n,n.ins_h,n.window[n.strstart+1]);else i=ba(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(kn(n,!1),n.strm.avail_out===0))return ji}return n.insert=n.strstart{let e,i,r;for(;;){if(n.lookahead=lt&&(n.ins_h=ya(n,n.ins_h,n.window[n.strstart+lt-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=lt-1,e!==0&&n.prev_length4096)&&(n.match_length=lt-1)),n.prev_length>=lt&&n.match_length<=n.prev_length){r=n.strstart+n.lookahead-lt,i=ba(n,n.strstart-1-n.prev_match,n.prev_length-lt),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=r&&(n.ins_h=ya(n,n.ins_h,n.window[n.strstart+lt-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=lt-1,n.strstart++,i&&(kn(n,!1),n.strm.avail_out===0))return ji}else if(n.match_available){if(i=ba(n,0,n.window[n.strstart-1]),i&&kn(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return ji}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=ba(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart{let e,i,r,s,a=n.window;for(;;){if(n.lookahead<=_a){if(sc(n),n.lookahead<=_a&&t===va)return ji;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=lt&&n.strstart>0&&(r=n.strstart-1,i=a[r],i===a[++r]&&i===a[++r]&&i===a[++r])){s=n.strstart+_a;do;while(i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=lt?(e=ba(n,1,n.match_length-lt),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=ba(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&(kn(n,!1),n.strm.avail_out===0))return ji}return n.insert=0,t===zn?(kn(n,!0),n.strm.avail_out===0?mo:lc):n.sym_next&&(kn(n,!1),n.strm.avail_out===0)?ji:oc},A8=(n,t)=>{let e;for(;;){if(n.lookahead===0&&(sc(n),n.lookahead===0)){if(t===va)return ji;break}if(n.match_length=0,e=ba(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&(kn(n,!1),n.strm.avail_out===0))return ji}return n.insert=0,t===zn?(kn(n,!0),n.strm.avail_out===0?mo:lc):n.sym_next&&(kn(n,!1),n.strm.avail_out===0)?ji:oc};function jr(n,t,e,i,r){this.good_length=n,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=r}var Dd=[new jr(0,0,0,0,dL),new jr(4,4,8,4,q1),new jr(4,5,16,8,q1),new jr(4,6,32,32,q1),new jr(4,4,16,16,tc),new jr(8,16,32,32,tc),new jr(8,16,128,128,tc),new jr(8,32,128,256,tc),new jr(32,128,258,1024,tc),new jr(32,258,258,4096,tc)],I8=n=>{n.window_size=2*n.w_size,ga(n.head),n.max_lazy_match=Dd[n.level].max_lazy,n.good_match=Dd[n.level].good_length,n.nice_match=Dd[n.level].nice_length,n.max_chain_length=Dd[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=lt-1,n.match_available=0,n.ins_h=0};function D8(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=f0,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(w8*2),this.dyn_dtree=new Uint16Array((2*y8+1)*2),this.bl_tree=new Uint16Array((2*C8+1)*2),ga(this.dyn_ltree),ga(this.dyn_dtree),ga(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(x8+1),this.heap=new Uint16Array(2*rC+1),ga(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*rC+1),ga(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var jd=n=>{if(!n)return 1;let t=n.state;return!t||t.strm!==n||t.status!==rc&&t.status!==fC&&t.status!==sC&&t.status!==aC&&t.status!==oC&&t.status!==lC&&t.status!==co&&t.status!==Id?1:0},hL=n=>{if(jd(n))return uo(n,qr);n.total_in=n.total_out=0,n.data_type=f8;let t=n.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?fC:t.wrap?rc:co,n.adler=t.wrap===2?0:1,t.last_flush=-2,n8(t),bi},mL=n=>{let t=hL(n);return t===bi&&I8(n.state),t},R8=(n,t)=>jd(n)||n.state.wrap!==2?qr:(n.state.gzhead=t,bi),fL=(n,t,e,i,r,s)=>{if(!n)return qr;let a=1;if(t===c8&&(t=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),r<1||r>p8||e!==f0||i<8||i>15||t<0||t>9||s<0||s>h8||i===8&&a!==1)return uo(n,qr);i===8&&(i=9);let o=new D8;return n.state=o,o.strm=n,o.status=rc,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<fL(n,t,f0,g8,_8,m8),O8=(n,t)=>{if(jd(n)||t>gR||t<0)return n?uo(n,qr):qr;let e=n.state;if(!n.output||n.avail_in!==0&&!n.input||e.status===Id&&t!==zn)return uo(n,n.avail_out===0?W1:qr);let i=e.last_flush;if(e.last_flush=t,e.pending!==0){if(Sn(n),n.avail_out===0)return e.last_flush=-1,bi}else if(n.avail_in===0&&bR(t)<=bR(i)&&t!==zn)return uo(n,W1);if(e.status===Id&&n.avail_in!==0)return uo(n,W1);if(e.status===rc&&e.wrap===0&&(e.status=co),e.status===rc){let r=f0+(e.w_bits-8<<4)<<8,s=-1;if(e.strategy>=s0||e.level<2?s=0:e.level<6?s=1:e.level===6?s=2:s=3,r|=s<<6,e.strstart!==0&&(r|=S8),r+=31-r%31,Ad(e,r),e.strstart!==0&&(Ad(e,n.adler>>>16),Ad(e,n.adler&65535)),n.adler=1,e.status=co,Sn(n),e.pending!==0)return e.last_flush=-1,bi}if(e.status===fC){if(n.adler=0,yt(e,31),yt(e,139),yt(e,8),e.gzhead)yt(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),yt(e,e.gzhead.time&255),yt(e,e.gzhead.time>>8&255),yt(e,e.gzhead.time>>16&255),yt(e,e.gzhead.time>>24&255),yt(e,e.level===9?2:e.strategy>=s0||e.level<2?4:0),yt(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(yt(e,e.gzhead.extra.length&255),yt(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=li(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=sC;else if(yt(e,0),yt(e,0),yt(e,0),yt(e,0),yt(e,0),yt(e,e.level===9?2:e.strategy>=s0||e.level<2?4:0),yt(e,k8),e.status=co,Sn(n),e.pending!==0)return e.last_flush=-1,bi}if(e.status===sC){if(e.gzhead.extra){let r=e.pending,s=(e.gzhead.extra.length&65535)-e.gzindex;for(;e.pending+s>e.pending_buf_size;){let o=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+o),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=o,Sn(n),e.pending!==0)return e.last_flush=-1,bi;r=0,s-=o}let a=new Uint8Array(e.gzhead.extra);e.pending_buf.set(a.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending+=s,e.gzhead.hcrc&&e.pending>r&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=aC}if(e.status===aC){if(e.gzhead.name){let r=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),Sn(n),e.pending!==0)return e.last_flush=-1,bi;r=0}e.gzindexr&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=oC}if(e.status===oC){if(e.gzhead.comment){let r=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),Sn(n),e.pending!==0)return e.last_flush=-1,bi;r=0}e.gzindexr&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r))}e.status=lC}if(e.status===lC){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(Sn(n),e.pending!==0))return e.last_flush=-1,bi;yt(e,n.adler&255),yt(e,n.adler>>8&255),n.adler=0}if(e.status=co,Sn(n),e.pending!==0)return e.last_flush=-1,bi}if(n.avail_in!==0||e.lookahead!==0||t!==va&&e.status!==Id){let r=e.level===0?dL(e,t):e.strategy===s0?A8(e,t):e.strategy===d8?E8(e,t):Dd[e.level].func(e,t);if((r===mo||r===lc)&&(e.status=Id),r===ji||r===mo)return n.avail_out===0&&(e.last_flush=-1),bi;if(r===oc&&(t===a8?s8(e):t!==gR&&(nC(e,0,0,!1),t===o8&&(ga(e.head),e.lookahead===0&&(e.strstart=0,e.block_start=0,e.insert=0))),Sn(n),n.avail_out===0))return e.last_flush=-1,bi}return t!==zn?bi:e.wrap<=0?_R:(e.wrap===2?(yt(e,n.adler&255),yt(e,n.adler>>8&255),yt(e,n.adler>>16&255),yt(e,n.adler>>24&255),yt(e,n.total_in&255),yt(e,n.total_in>>8&255),yt(e,n.total_in>>16&255),yt(e,n.total_in>>24&255)):(Ad(e,n.adler>>>16),Ad(e,n.adler&65535)),Sn(n),e.wrap>0&&(e.wrap=-e.wrap),e.pending!==0?bi:_R)},N8=n=>{if(jd(n))return qr;let t=n.state.status;return n.state=null,t===co?uo(n,l8):bi},F8=(n,t)=>{let e=t.length;if(jd(n))return qr;let i=n.state,r=i.wrap;if(r===2||r===1&&i.status!==rc||i.lookahead)return qr;if(r===1&&(n.adler=$d(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){r===0&&(ga(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(e-i.w_size,e),0),t=l,e=i.w_size}let s=n.avail_in,a=n.next_in,o=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,sc(i);i.lookahead>=lt;){let l=i.strstart,c=i.lookahead-(lt-1);do i.ins_h=ya(i,i.ins_h,i.window[l+lt-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=lt-1,sc(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=lt-1,i.match_available=0,n.next_in=a,n.input=o,n.avail_in=s,i.wrap=r,bi},P8=L8,U8=fL,$8=mL,V8=hL,B8=R8,z8=O8,H8=N8,j8=F8,W8="pako deflate (from Nodeca project)",Ld={deflateInit:P8,deflateInit2:U8,deflateReset:$8,deflateResetKeep:V8,deflateSetHeader:B8,deflate:z8,deflateEnd:H8,deflateSetDictionary:j8,deflateInfo:W8},q8=(n,t)=>Object.prototype.hasOwnProperty.call(n,t),G8=function(n){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let e=t.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let i in e)q8(e,i)&&(n[i]=e[i])}}return n},K8=n=>{let t=0;for(let i=0,r=n.length;i=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Vd[254]=Vd[254]=1;var Y8=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let t,e,i,r,s,a=n.length,o=0;for(r=0;r>>6,t[s++]=128|e&63):e<65536?(t[s++]=224|e>>>12,t[s++]=128|e>>>6&63,t[s++]=128|e&63):(t[s++]=240|e>>>18,t[s++]=128|e>>>12&63,t[s++]=128|e>>>6&63,t[s++]=128|e&63);return t},Q8=(n,t)=>{if(t<65534&&n.subarray&&pL)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let i=0;i{let e=t||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,t));let i,r,s=new Array(e*2);for(r=0,i=0;i4){s[r++]=65533,i+=o-1;continue}for(a&=o===2?31:o===3?15:7;o>1&&i1){s[r++]=65533;continue}a<65536?s[r++]=a:(a-=65536,s[r++]=55296|a>>10&1023,s[r++]=56320|a&1023)}return Q8(s,r)},X8=(n,t)=>{t=t||n.length,t>n.length&&(t=n.length);let e=t-1;for(;e>=0&&(n[e]&192)===128;)e--;return e<0||e===0?t:e+Vd[n[e]]>t?e:t},Bd={string2buf:Y8,buf2string:Z8,utf8border:X8};function J8(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var gL=J8,_L=Object.prototype.toString,{Z_NO_FLUSH:e9,Z_SYNC_FLUSH:t9,Z_FULL_FLUSH:i9,Z_FINISH:n9,Z_OK:h0,Z_STREAM_END:r9,Z_DEFAULT_COMPRESSION:s9,Z_DEFAULT_STRATEGY:a9,Z_DEFLATED:o9}=po;function Wd(n){this.options=p0.assign({level:s9,method:o9,chunkSize:16384,windowBits:15,memLevel:8,strategy:a9},n||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new gL,this.strm.avail_out=0;let e=Ld.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==h0)throw new Error(ho[e]);if(t.header&&Ld.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=Bd.string2buf(t.dictionary):_L.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,e=Ld.deflateSetDictionary(this.strm,i),e!==h0)throw new Error(ho[e]);this._dict_set=!0}}Wd.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,r,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?n9:e9,typeof n=="string"?e.input=Bd.string2buf(n):_L.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){if(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(s===t9||s===i9)&&e.avail_out<=6){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(r=Ld.deflate(e,s),r===r9)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=Ld.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===h0;if(e.avail_out===0){this.onData(e.output);continue}if(s>0&&e.next_out>0){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(e.avail_in===0)break}return!0};Wd.prototype.onData=function(n){this.chunks.push(n)};Wd.prototype.onEnd=function(n){n===h0&&(this.result=p0.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function pC(n,t){let e=new Wd(t);if(e.push(n,!0),e.err)throw e.msg||ho[e.err];return e.result}function l9(n,t){return t=t||{},t.raw=!0,pC(n,t)}function c9(n,t){return t=t||{},t.gzip=!0,pC(n,t)}var u9=Wd,d9=pC,h9=l9,m9=c9,f9=po,p9={Deflate:u9,deflate:d9,deflateRaw:h9,gzip:m9,constants:f9},a0=16209,g9=16191,_9=function(t,e){let i,r,s,a,o,l,c,u,d,h,m,f,p,g,y,w,k,x,C,A,T,E,L,S,v=t.state;i=t.next_in,L=t.input,r=i+(t.avail_in-5),s=t.next_out,S=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),l=v.dmax,c=v.wsize,u=v.whave,d=v.wnext,h=v.window,m=v.hold,f=v.bits,p=v.lencode,g=v.distcode,y=(1<>>24,m>>>=x,f-=x,x=k>>>16&255,x===0)S[s++]=k&65535;else if(x&16){C=k&65535,x&=15,x&&(f>>=x,f-=x),f<15&&(m+=L[i++]<>>24,m>>>=x,f-=x,x=k>>>16&255,x&16){if(A=k&65535,x&=15,fl){t.msg="invalid distance too far back",v.mode=a0;break e}if(m>>>=x,f-=x,x=s-a,A>x){if(x=A-x,x>u&&v.sane){t.msg="invalid distance too far back",v.mode=a0;break e}if(T=0,E=h,d===0){if(T+=c-x,x2;)S[s++]=E[T++],S[s++]=E[T++],S[s++]=E[T++],C-=3;C&&(S[s++]=E[T++],C>1&&(S[s++]=E[T++]))}else{T=s-A;do S[s++]=S[T++],S[s++]=S[T++],S[s++]=S[T++],C-=3;while(C>2);C&&(S[s++]=S[T++],C>1&&(S[s++]=S[T++]))}}else if((x&64)===0){k=g[(k&65535)+(m&(1<>3,i-=C,f-=C<<3,m&=(1<{let l=o.bits,c=0,u=0,d=0,h=0,m=0,f=0,p=0,g=0,y=0,w=0,k,x,C,A,T,E=null,L,S=new Uint16Array(ic+1),v=new Uint16Array(ic+1),_=null,b,M,I;for(c=0;c<=ic;c++)S[c]=0;for(u=0;u=1&&S[h]===0;h--);if(m>h&&(m=h),h===0)return r[s++]=1<<24|64<<16|0,r[s++]=1<<24|64<<16|0,o.bits=1,0;for(d=1;d0&&(n===CR||h!==1))return-1;for(v[1]=0,c=1;cvR||n===wR&&y>yR)return 1;for(;;){b=c-p,a[u]+1=L?(M=_[a[u]-L],I=E[a[u]-L]):(M=96,I=0),k=1<>p)+x]=b<<24|M<<16|I|0;while(x!==0);for(k=1<>=1;if(k!==0?(w&=k-1,w+=k):w=0,u++,--S[c]===0){if(c===h)break;c=t[e+a[u]]}if(c>m&&(w&A)!==C){for(p===0&&(p=m),T+=d,f=c-p,g=1<vR||n===wR&&y>yR)return 1;C=w&A,r[C]=m<<24|f<<16|T-s|0}}return w!==0&&(r[T+w]=c-p<<24|64<<16|0),o.bits=m,0},Od=w9,x9=0,bL=1,vL=2,{Z_FINISH:xR,Z_BLOCK:S9,Z_TREES:o0,Z_OK:fo,Z_STREAM_END:k9,Z_NEED_DICT:M9,Z_STREAM_ERROR:Hn,Z_DATA_ERROR:yL,Z_MEM_ERROR:CL,Z_BUF_ERROR:T9,Z_DEFLATED:SR}=po,g0=16180,kR=16181,MR=16182,TR=16183,ER=16184,AR=16185,IR=16186,DR=16187,RR=16188,LR=16189,m0=16190,Is=16191,K1=16192,OR=16193,Y1=16194,NR=16195,FR=16196,PR=16197,UR=16198,l0=16199,c0=16200,$R=16201,VR=16202,BR=16203,zR=16204,HR=16205,Q1=16206,jR=16207,WR=16208,Pt=16209,wL=16210,xL=16211,E9=852,A9=592,I9=15,D9=I9,qR=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function R9(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var go=n=>{if(!n)return 1;let t=n.state;return!t||t.strm!==n||t.modexL?1:0},SL=n=>{if(go(n))return Hn;let t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=t.wrap&1),t.mode=g0,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(E9),t.distcode=t.distdyn=new Int32Array(A9),t.sane=1,t.back=-1,fo},kL=n=>{if(go(n))return Hn;let t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,SL(n)},ML=(n,t)=>{let e;if(go(n))return Hn;let i=n.state;return t<0?(e=0,t=-t):(e=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Hn:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,kL(n))},TL=(n,t)=>{if(!n)return Hn;let e=new R9;n.state=e,e.strm=n,e.window=null,e.mode=g0;let i=ML(n,t);return i!==fo&&(n.state=null),i},L9=n=>TL(n,D9),GR=!0,Z1,X1,O9=n=>{if(GR){Z1=new Int32Array(512),X1=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(Od(bL,n.lens,0,288,Z1,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;Od(vL,n.lens,0,32,X1,0,n.work,{bits:5}),GR=!1}n.lencode=Z1,n.lenbits=9,n.distcode=X1,n.distbits=5},EL=(n,t,e,i)=>{let r,s=n.state;return s.window===null&&(s.wsize=1<=s.wsize?(s.window.set(t.subarray(e-s.wsize,e),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>i&&(r=i),s.window.set(t.subarray(e-i,e-i+r),s.wnext),i-=r,i?(s.window.set(t.subarray(e-i,e),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whave{let e,i,r,s,a,o,l,c,u,d,h,m,f,p,g=0,y,w,k,x,C,A,T,E,L=new Uint8Array(4),S,v,_=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(go(n)||!n.output||!n.input&&n.avail_in!==0)return Hn;e=n.state,e.mode===Is&&(e.mode=K1),a=n.next_out,r=n.output,l=n.avail_out,s=n.next_in,i=n.input,o=n.avail_in,c=e.hold,u=e.bits,d=o,h=l,E=fo;e:for(;;)switch(e.mode){case g0:if(e.wrap===0){e.mode=K1;break}for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,e.check=li(e.check,L,2,0),c=0,u=0,e.mode=kR;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((c&255)<<8)+(c>>8))%31){n.msg="incorrect header check",e.mode=Pt;break}if((c&15)!==SR){n.msg="unknown compression method",e.mode=Pt;break}if(c>>>=4,u-=4,T=(c&15)+8,e.wbits===0&&(e.wbits=T),T>15||T>e.wbits){n.msg="invalid window size",e.mode=Pt;break}e.dmax=1<>8&1),e.flags&512&&e.wrap&4&&(L[0]=c&255,L[1]=c>>>8&255,e.check=li(e.check,L,2,0)),c=0,u=0,e.mode=MR;case MR:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>8&255,L[2]=c>>>16&255,L[3]=c>>>24&255,e.check=li(e.check,L,4,0)),c=0,u=0,e.mode=TR;case TR:for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>8),e.flags&512&&e.wrap&4&&(L[0]=c&255,L[1]=c>>>8&255,e.check=li(e.check,L,2,0)),c=0,u=0,e.mode=ER;case ER:if(e.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,e.check=li(e.check,L,2,0)),c=0,u=0}else e.head&&(e.head.extra=null);e.mode=AR;case AR:if(e.flags&1024&&(m=e.length,m>o&&(m=o),m&&(e.head&&(T=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(s,s+m),T)),e.flags&512&&e.wrap&4&&(e.check=li(e.check,i,m,s)),o-=m,s+=m,e.length-=m),e.length))break e;e.length=0,e.mode=IR;case IR:if(e.flags&2048){if(o===0)break e;m=0;do T=i[s+m++],e.head&&T&&e.length<65536&&(e.head.name+=String.fromCharCode(T));while(T&&m>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=Is;break;case LR:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>=u&7,u-=u&7,e.mode=Q1;break}for(;u<3;){if(o===0)break e;o--,c+=i[s++]<>>=1,u-=1,c&3){case 0:e.mode=OR;break;case 1:if(O9(e),e.mode=l0,t===o0){c>>>=2,u-=2;break e}break;case 2:e.mode=FR;break;case 3:n.msg="invalid block type",e.mode=Pt}c>>>=2,u-=2;break;case OR:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=i[s++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Pt;break}if(e.length=c&65535,c=0,u=0,e.mode=Y1,t===o0)break e;case Y1:e.mode=NR;case NR:if(m=e.length,m){if(m>o&&(m=o),m>l&&(m=l),m===0)break e;r.set(i.subarray(s,s+m),a),o-=m,s+=m,l-=m,a+=m,e.length-=m;break}e.mode=Is;break;case FR:for(;u<14;){if(o===0)break e;o--,c+=i[s++]<>>=5,u-=5,e.ndist=(c&31)+1,c>>>=5,u-=5,e.ncode=(c&15)+4,c>>>=4,u-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Pt;break}e.have=0,e.mode=PR;case PR:for(;e.have>>=3,u-=3}for(;e.have<19;)e.lens[_[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,S={bits:e.lenbits},E=Od(x9,e.lens,0,19,e.lencode,0,e.work,S),e.lenbits=S.bits,E){n.msg="invalid code lengths set",e.mode=Pt;break}e.have=0,e.mode=UR;case UR:for(;e.have>>24,w=g>>>16&255,k=g&65535,!(y<=u);){if(o===0)break e;o--,c+=i[s++]<>>=y,u-=y,e.lens[e.have++]=k;else{if(k===16){for(v=y+2;u>>=y,u-=y,e.have===0){n.msg="invalid bit length repeat",e.mode=Pt;break}T=e.lens[e.have-1],m=3+(c&3),c>>>=2,u-=2}else if(k===17){for(v=y+3;u>>=y,u-=y,T=0,m=3+(c&7),c>>>=3,u-=3}else{for(v=y+7;u>>=y,u-=y,T=0,m=11+(c&127),c>>>=7,u-=7}if(e.have+m>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Pt;break}for(;m--;)e.lens[e.have++]=T}}if(e.mode===Pt)break;if(e.lens[256]===0){n.msg="invalid code -- missing end-of-block",e.mode=Pt;break}if(e.lenbits=9,S={bits:e.lenbits},E=Od(bL,e.lens,0,e.nlen,e.lencode,0,e.work,S),e.lenbits=S.bits,E){n.msg="invalid literal/lengths set",e.mode=Pt;break}if(e.distbits=6,e.distcode=e.distdyn,S={bits:e.distbits},E=Od(vL,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,S),e.distbits=S.bits,E){n.msg="invalid distances set",e.mode=Pt;break}if(e.mode=l0,t===o0)break e;case l0:e.mode=c0;case c0:if(o>=6&&l>=258){n.next_out=a,n.avail_out=l,n.next_in=s,n.avail_in=o,e.hold=c,e.bits=u,_9(n,h),a=n.next_out,r=n.output,l=n.avail_out,s=n.next_in,i=n.input,o=n.avail_in,c=e.hold,u=e.bits,e.mode===Is&&(e.back=-1);break}for(e.back=0;g=e.lencode[c&(1<>>24,w=g>>>16&255,k=g&65535,!(y<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],y=g>>>24,w=g>>>16&255,k=g&65535,!(x+y<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,e.back+=x}if(c>>>=y,u-=y,e.back+=y,e.length=k,w===0){e.mode=HR;break}if(w&32){e.back=-1,e.mode=Is;break}if(w&64){n.msg="invalid literal/length code",e.mode=Pt;break}e.extra=w&15,e.mode=$R;case $R:if(e.extra){for(v=e.extra;u>>=e.extra,u-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=VR;case VR:for(;g=e.distcode[c&(1<>>24,w=g>>>16&255,k=g&65535,!(y<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],y=g>>>24,w=g>>>16&255,k=g&65535,!(x+y<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,e.back+=x}if(c>>>=y,u-=y,e.back+=y,w&64){n.msg="invalid distance code",e.mode=Pt;break}e.offset=k,e.extra=w&15,e.mode=BR;case BR:if(e.extra){for(v=e.extra;u>>=e.extra,u-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Pt;break}e.mode=zR;case zR:if(l===0)break e;if(m=h-l,e.offset>m){if(m=e.offset-m,m>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Pt;break}m>e.wnext?(m-=e.wnext,f=e.wsize-m):f=e.wnext-m,m>e.length&&(m=e.length),p=e.window}else p=r,f=a-e.offset,m=e.length;m>l&&(m=l),l-=m,e.length-=m;do r[a++]=p[f++];while(--m);e.length===0&&(e.mode=c0);break;case HR:if(l===0)break e;r[a++]=e.length,l--,e.mode=c0;break;case Q1:if(e.wrap){for(;u<32;){if(o===0)break e;o--,c|=i[s++]<{if(go(n))return Hn;let t=n.state;return t.window&&(t.window=null),n.state=null,fo},P9=(n,t)=>{if(go(n))return Hn;let e=n.state;return(e.wrap&2)===0?Hn:(e.head=t,t.done=!1,fo)},U9=(n,t)=>{let e=t.length,i,r,s;return go(n)||(i=n.state,i.wrap!==0&&i.mode!==m0)?Hn:i.mode===m0&&(r=1,r=$d(r,t,e,0),r!==i.check)?yL:(s=EL(n,t,e,e),s?(i.mode=wL,CL):(i.havedict=1,fo))},$9=kL,V9=ML,B9=SL,z9=L9,H9=TL,j9=N9,W9=F9,q9=P9,G9=U9,K9="pako inflate (from Nodeca project)",Rs={inflateReset:$9,inflateReset2:V9,inflateResetKeep:B9,inflateInit:z9,inflateInit2:H9,inflate:j9,inflateEnd:W9,inflateGetHeader:q9,inflateSetDictionary:G9,inflateInfo:K9};function Y9(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Q9=Y9,AL=Object.prototype.toString,{Z_NO_FLUSH:Z9,Z_FINISH:X9,Z_OK:zd,Z_STREAM_END:J1,Z_NEED_DICT:eC,Z_STREAM_ERROR:J9,Z_DATA_ERROR:KR,Z_MEM_ERROR:eW}=po;function qd(n){this.options=p0.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new gL,this.strm.avail_out=0;let e=Rs.inflateInit2(this.strm,t.windowBits);if(e!==zd)throw new Error(ho[e]);if(this.header=new Q9,Rs.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Bd.string2buf(t.dictionary):AL.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Rs.inflateSetDictionary(this.strm,t.dictionary),e!==zd)))throw new Error(ho[e])}qd.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,r=this.options.dictionary,s,a,o;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?X9:Z9,AL.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),s=Rs.inflate(e,a),s===eC&&r&&(s=Rs.inflateSetDictionary(e,r),s===zd?s=Rs.inflate(e,a):s===KR&&(s=eC));e.avail_in>0&&s===J1&&e.state.wrap>0&&n[e.next_in]!==0;)Rs.inflateReset(e),s=Rs.inflate(e,a);switch(s){case J9:case KR:case eC:case eW:return this.onEnd(s),this.ended=!0,!1}if(o=e.avail_out,e.next_out&&(e.avail_out===0||s===J1))if(this.options.to==="string"){let l=Bd.utf8border(e.output,e.next_out),c=e.next_out-l,u=Bd.buf2string(e.output,l);e.next_out=c,e.avail_out=i-c,c&&e.output.set(e.output.subarray(l,l+c),0),this.onData(u)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(s===zd&&o===0)){if(s===J1)return s=Rs.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};qd.prototype.onData=function(n){this.chunks.push(n)};qd.prototype.onEnd=function(n){n===zd&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=p0.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function gC(n,t){let e=new qd(t);if(e.push(n),e.err)throw e.msg||ho[e.err];return e.result}function tW(n,t){return t=t||{},t.raw=!0,gC(n,t)}var iW=qd,nW=gC,rW=tW,sW=gC,aW=po,oW={Inflate:iW,inflate:nW,inflateRaw:rW,ungzip:sW,constants:aW},{Deflate:lW,deflate:cW,deflateRaw:uW,gzip:dW}=p9,{Inflate:hW,inflate:mW,inflateRaw:fW,ungzip:pW}=oW,gW=lW,_W=cW,bW=uW,vW=dW,yW=hW,CW=mW,wW=fW,xW=pW,SW=po,IL={Deflate:gW,deflate:_W,deflateRaw:bW,gzip:vW,Inflate:yW,inflate:CW,inflateRaw:wW,ungzip:xW,constants:SW};var rO=Os(RL()),sO=Os(D_());var _o=class{constructor(t,e,i,r=[],s=null){this.extractedProfiles=[],this.validationParameters=[],this.loading=!1,this.filename=t,this.resource=e,this.validationParameters=r,i?this.mimetype=i:t.endsWith(".json")?this.mimetype="application/fhir+json":this.mimetype="application/fhir+xml",this.date=new Date,this.validationProfile=s;try{this.mimetype==="application/fhir+json"?this.extractJsonInfo():this.extractXmlInfo()}catch(a){console.error("Error parsing resource to validate: ",a)}}getErrors(){if(this.result)return this.result.issues.filter(t=>t.severity==="error"||t.severity==="fatal").length}getWarnings(){if(this.result)return this.result.issues.filter(t=>t.severity==="warning").length}getInfos(){if(this.result)return this.result.issues.filter(t=>t.severity==="information").length}setOperationOutcome(t){this.result=Ut.fromOperationOutcome(t)}setAiRecommendation(t){this.aiRecommendation=t.text.div}extractJsonInfo(){let t=JSON.parse(this.resource);t?.resourceType&&(this.resourceType=t.resourceType,this.resourceId=t.id),t.meta?.profile&&this.extractedProfiles.push(...t.meta.profile)}extractXmlInfo(){let t=this.resource.indexOf("",e);if(e0&&(r=r.substring(0,s)),s=r.indexOf(":"),s>0&&(r=r.substring(s+1)),this.resourceType=r;let a=this.resource.indexOf("profile",i);if(a>0){let o=this.resource.indexOf('value="',a)+7,l=this.resource.indexOf('"',o);oi.valueString!==void 0).map(i=>i.valueString);this.formControl.setValue(e.join(` +`))}else this.formControl.setValue(t.extension[0].valueString)}},Gd=class{constructor(t,e){this.name=t,this.value=e}};var b0=class{};var Ke=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(Ke||{}),jn="*";function bC(n,t){return{type:Ke.Trigger,name:n,definitions:t,options:{}}}function v0(n,t=null){return{type:Ke.Animate,styles:t,timings:n}}function LL(n,t=null){return{type:Ke.Sequence,steps:n,options:t}}function Ca(n){return{type:Ke.Style,styles:n,offset:null}}function Kd(n,t,e){return{type:Ke.State,name:n,styles:t,options:e}}function y0(n,t,e=null){return{type:Ke.Transition,expr:n,animation:t,options:e}}var Kr=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(t=0,e=0){this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},bo=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(t){this.players=t;let e=0,i=0,r=0,s=this.players.length;s==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,o)=>Math.max(a,o.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){let e=t*this.totalTime;this.players.forEach(i=>{let r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){let t=this.players.reduce((e,i)=>e===null||i.totalTime>e.totalTime?i:e,null);return t!=null?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},cc="!";var OL=["toast-component",""];function kW(n,t){if(n&1){let e=ze();P(0,"button",5),X("click",function(){re(e);let r=Y();return se(r.remove())}),P(1,"span",6),B(2,"\xD7"),U()()}}function MW(n,t){if(n&1&&(qi(0),B(1),Gi()),n&2){let e=Y(2);$(),je("[",e.duplicatesCount+1,"]")}}function TW(n,t){if(n&1&&(P(0,"div"),B(1),oe(2,MW,2,1,"ng-container",4),U()),n&2){let e=Y();ft(e.options.titleClass),Se("aria-label",e.title),$(),je(" ",e.title," "),$(),j("ngIf",e.duplicatesCount)}}function EW(n,t){if(n&1&&te(0,"div",7),n&2){let e=Y();ft(e.options.messageClass),j("innerHTML",e.message,wc)}}function AW(n,t){if(n&1&&(P(0,"div",8),B(1),U()),n&2){let e=Y();ft(e.options.messageClass),Se("aria-label",e.message),$(),je(" ",e.message," ")}}function IW(n,t){if(n&1&&(P(0,"div"),te(1,"div",9),U()),n&2){let e=Y();$(),Jt("width",e.width()+"%")}}function DW(n,t){if(n&1){let e=ze();P(0,"button",5),X("click",function(){re(e);let r=Y();return se(r.remove())}),P(1,"span",6),B(2,"\xD7"),U()()}}function RW(n,t){if(n&1&&(qi(0),B(1),Gi()),n&2){let e=Y(2);$(),je("[",e.duplicatesCount+1,"]")}}function LW(n,t){if(n&1&&(P(0,"div"),B(1),oe(2,RW,2,1,"ng-container",4),U()),n&2){let e=Y();ft(e.options.titleClass),Se("aria-label",e.title),$(),je(" ",e.title," "),$(),j("ngIf",e.duplicatesCount)}}function OW(n,t){if(n&1&&te(0,"div",7),n&2){let e=Y();ft(e.options.messageClass),j("innerHTML",e.message,wc)}}function NW(n,t){if(n&1&&(P(0,"div",8),B(1),U()),n&2){let e=Y();ft(e.options.messageClass),Se("aria-label",e.message),$(),je(" ",e.message," ")}}function FW(n,t){if(n&1&&(P(0,"div"),te(1,"div",9),U()),n&2){let e=Y();$(),Jt("width",e.width()+"%")}}var vC=class{_attachedHost;component;viewContainerRef;injector;constructor(t,e){this.component=t,this.injector=e}attach(t,e){return this._attachedHost=t,t.attach(this,e)}detach(){let t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},yC=class{_attachedPortal;_disposeFn;attach(t,e){return this._attachedPortal=t,this.attachComponentPortal(t,e)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(t){this._disposeFn=t}},CC=class{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new ue;_activate=new ue;_manualClose=new ue;_resetTimeout=new ue;_countDuplicate=new ue;constructor(t){this._overlayRef=t}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(t,e){t&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)}},uc=class{toastId;config;message;title;toastType;toastRef;_onTap=new ue;_onAction=new ue;constructor(t,e,i,r,s,a){this.toastId=t,this.config=e,this.message=i,this.title=r,this.toastType=s,this.toastRef=a,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(t){this._onAction.next(t)}onAction(){return this._onAction.asObservable()}},NL={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},FL=new J("ToastConfig"),wC=class extends yC{_hostDomElement;_componentFactoryResolver;_appRef;constructor(t,e,i){super(),this._hostDomElement=t,this._componentFactoryResolver=e,this._appRef=i}attachComponentPortal(t,e){let i=this._componentFactoryResolver.resolveComponentFactory(t.component),r;return r=i.create(t.injector),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.detachView(r.hostView),r.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(r),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(r)),r}_getComponentRootNode(t){return t.hostView.rootNodes[0]}},PW=(()=>{class n{_document=R(Ze);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e=this._document.createElement("div");e.classList.add("overlay-container"),e.setAttribute("aria-live","polite"),this._document.body.appendChild(e),this._containerElement=e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),xC=class{_portalHost;constructor(t){this._portalHost=t}attach(t,e=!0){return this._portalHost.attach(t,e)}detach(){return this._portalHost.detach()}},UW=(()=>{class n{_overlayContainer=R(PW);_componentFactoryResolver=R(Mw);_appRef=R(Gn);_document=R(Ze);_paneElements=new Map;create(e,i){return this._createOverlayRef(this.getPaneElement(e,i))}getPaneElement(e="",i){return this._paneElements.get(i)||this._paneElements.set(i,{}),this._paneElements.get(i)[e]||(this._paneElements.get(i)[e]=this._createPaneElement(e,i)),this._paneElements.get(i)[e]}_createPaneElement(e,i){let r=this._document.createElement("div");return r.id="toast-container",r.classList.add(e),r.classList.add("toast-container"),i?i.getContainerElement().appendChild(r):this._overlayContainer.getContainerElement().appendChild(r),r}_createPortalHost(e){return new wC(e,this._componentFactoryResolver,this._appRef)}_createOverlayRef(e){return new xC(this._createPortalHost(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),C0=(()=>{class n{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(e,i,r,s,a){this.overlay=i,this._injector=r,this.sanitizer=s,this.ngZone=a,this.toastrConfig=H(H({},e.default),e.config),e.config.iconClasses&&(this.toastrConfig.iconClasses=H(H({},e.default.iconClasses),e.config.iconClasses))}show(e,i,r={},s=""){return this._preBuildNotification(s,e,i,this.applyConfig(r))}success(e,i,r={}){let s=this.toastrConfig.iconClasses.success||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}error(e,i,r={}){let s=this.toastrConfig.iconClasses.error||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}info(e,i,r={}){let s=this.toastrConfig.iconClasses.info||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}warning(e,i,r={}){let s=this.toastrConfig.iconClasses.warning||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}clear(e){for(let i of this.toasts)if(e!==void 0){if(i.toastId===e){i.toastRef.manualClose();return}}else i.toastRef.manualClose()}remove(e){let i=this._findToast(e);if(!i||(i.activeToast.toastRef.close(),this.toasts.splice(i.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(e,i,r,s)):this._buildNotification(e,i,r,s)}_buildNotification(e,i,r,s){if(!s.toastComponent)throw new Error("toastComponent required");let a=this.findDuplicate(r,i,this.toastrConfig.resetTimeoutOnDuplicate&&s.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&r||i)&&this.toastrConfig.preventDuplicates&&a!==null)return a;this.previousToastMessage=i;let o=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(o=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));let l=this.overlay.create(s.positionClass,this.overlayContainer);this.index=this.index+1;let c=i;i&&s.enableHtml&&(c=this.sanitizer.sanitize(pr.HTML,i));let u=new CC(l),d=new uc(this.index,s,c,r,e,u),h=[{provide:uc,useValue:d}],m=ut.create({providers:h,parent:this._injector}),f=new vC(s.toastComponent,m),p=l.attach(f,s.newestOnTop);u.componentInstance=p.instance;let g={toastId:this.index,title:r||"",message:i||"",toastRef:u,onShown:u.afterActivate(),onHidden:u.afterClosed(),onTap:d.onTap(),onAction:d.onAction(),portal:p};return o||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{g.toastRef.activate()})),this.toasts.push(g),g}static \u0275fac=function(i){return new(i||n)(Re(FL),Re(UW),Re(ut),Re(Hs),Re(De))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),$W=(()=>{class n{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=Di(-1);toastClasses="";state;get _state(){return this.state()}get displayStyle(){if(this.state().value==="inactive")return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,i,r){this.toastrService=e,this.toastPackage=i,this.ngZone=r,this.message=i.message,this.title=i.title,this.options=i.config,this.originalTimeout=i.config.timeOut,this.toastClasses=`${i.toastType} ${i.config.toastClass}`,this.sub=i.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=i.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=i.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=i.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s}),this.state=Di({value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.update(e=>Le(H({},e),{value:"active"})),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),i=this.hideTime-e;this.width.set(i/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.update(e=>Le(H({},e),{value:"active"})),this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){this.state().value!=="removed"&&(clearTimeout(this.timeout),this.state.update(e=>Le(H({},e),{value:"removed"})),this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){this.state().value!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state().value!=="removed"&&this.options.disableTimeOut!=="extendedTimeOut"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state().value==="removed"||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(e,i){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(e),i)):this.timeout=setTimeout(()=>e(),i)}outsideInterval(e,i){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(e),i)):this.intervalId=setInterval(()=>e(),i)}runInsideAngular(e){this.ngZone?this.ngZone.run(()=>e()):e()}static \u0275fac=function(i){return new(i||n)(Ae(C0),Ae(uc),Ae(De))};static \u0275cmp=le({type:n,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(i,r){i&1&&X("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),i&2&&(Dw("@flyInOut",r._state),ft(r.toastClasses),Jt("display",r.displayStyle))},attrs:OL,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(i,r){i&1&&oe(0,kW,3,0,"button",0)(1,TW,3,5,"div",1)(2,EW,1,3,"div",2)(3,AW,2,4,"div",3)(4,IW,2,2,"div",4),i&2&&(j("ngIf",r.options.closeButton),$(),j("ngIf",r.title),$(),j("ngIf",r.message&&r.options.enableHtml),$(),j("ngIf",r.message&&!r.options.enableHtml),$(),j("ngIf",r.options.progressBar))},dependencies:[di],encapsulation:2,data:{animation:[bC("flyInOut",[Kd("inactive",Ca({opacity:0})),Kd("active",Ca({opacity:1})),Kd("removed",Ca({opacity:0})),y0("inactive => active",v0("{{ easeTime }}ms {{ easing }}")),y0("active => removed",v0("{{ easeTime }}ms {{ easing }}"))])]},changeDetection:0})}return n})(),VW=Le(H({},NL),{toastComponent:$W}),BW=(n={})=>Sa([{provide:FL,useValue:{default:VW,config:n}}]),PL=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[BW(e)]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var zW=(()=>{class n{toastrService;toastPackage;appRef;message;title;options;duplicatesCount;originalTimeout;width=Di(-1);toastClasses="";get displayStyle(){return this.state()==="inactive"?"none":null}state=Di("inactive");timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,i,r){this.toastrService=e,this.toastPackage=i,this.appRef=r,this.message=i.message,this.title=i.title,this.options=i.config,this.originalTimeout=i.config.timeOut,this.toastClasses=`${i.toastType} ${i.config.toastClass}`,this.sub=i.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=i.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=i.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=i.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.set("active"),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.timeout=setTimeout(()=>{this.remove()},this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))),this.options.onActivateTick&&this.appRef.tick()}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),i=this.hideTime-e;this.width.set(i/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.set("active"),this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(()=>this.remove(),this.originalTimeout),this.hideTime=new Date().getTime()+(this.originalTimeout||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))}remove(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.state.set("removed"),this.timeout=setTimeout(()=>this.toastrService.remove(this.toastPackage.toastId)))}tapToast(){this.state()!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state()==="removed"||(this.timeout=setTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10)))}static \u0275fac=function(i){return new(i||n)(Ae(C0),Ae(uc),Ae(Gn))};static \u0275cmp=le({type:n,selectors:[["","toast-component",""]],hostVars:4,hostBindings:function(i,r){i&1&&X("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),i&2&&(ft(r.toastClasses),Jt("display",r.displayStyle))},attrs:OL,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(i,r){i&1&&oe(0,DW,3,0,"button",0)(1,LW,3,5,"div",1)(2,OW,1,3,"div",2)(3,NW,2,4,"div",3)(4,FW,2,2,"div",4),i&2&&(j("ngIf",r.options.closeButton),$(),j("ngIf",r.title),$(),j("ngIf",r.message&&r.options.enableHtml),$(),j("ngIf",r.message&&!r.options.enableHtml),$(),j("ngIf",r.options.progressBar))},dependencies:[di],encapsulation:2,changeDetection:0})}return n})(),Ehe=Le(H({},NL),{toastComponent:zW});var w0=class{constructor(t,e){this.editor=t,this.indentSpace=e,this.editor.setReadOnly(!0),this.editor.setTheme("ace/theme/textmate"),this.editor.commands.removeCommand("find"),this.editor.setOptions({tabSize:this.indentSpace,wrap:!0,useWorker:!1,useSvgGutterIcons:!1})}clearAnnotations(){this.editor.session.clearAnnotations()}setAnnotations(t){let e=t.filter(i=>i.line).map(i=>{let r;switch(i.severity){case"fatal":case"error":r="error";break;case"warning":r="warning";break;case"information":r="info";break}return{row:i.line-1,column:i.col,text:i.text,type:r}});this.editor.session.setAnnotations(e)}updateEditorIssues(t){this.clearAnnotations(),t?.result&&this.setAnnotations(t.result.issues)}scrollToIssueLocation(t){this.editor.gotoLine(t.line,t.col,!0),this.editor.scrollToLine(t.line,!1,!0,()=>{})}clearContent(){this.editor.setValue("",-1)}updateCodeEditorContent(t,e){if(!t){this.clearContent(),this.clearAnnotations();return}e==dc.RESOURCE_CONTENT?(this.editor.setValue(t.resource,-1),t.mimetype==="application/fhir+json"?this.editor.getSession().setMode("ace/mode/json"):t.mimetype==="application/fhir+xml"&&this.editor.getSession().setMode("ace/mode/xml"),this.updateEditorIssues(t)):(t.result!==void 0&&"operationOutcome"in t.result?(this.editor.setValue(JSON.stringify(t.result.operationOutcome,null,this.indentSpace),-1),this.editor.getSession().setMode("ace/mode/json")):this.clearContent(),this.clearAnnotations())}};var HL="3.7.8",jW=HL,mc=typeof Buffer=="function",UL=typeof TextDecoder=="function"?new TextDecoder:void 0,$L=typeof TextEncoder=="function"?new TextEncoder:void 0,WW="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Yd=Array.prototype.slice.call(WW),x0=(n=>{let t={};return n.forEach((e,i)=>t[e]=i),t})(Yd),qW=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,vi=String.fromCharCode.bind(String),VL=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):n=>new Uint8Array(Array.prototype.slice.call(n,0)),jL=n=>n.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),WL=n=>n.replace(/[^A-Za-z0-9\+\/]/g,""),qL=n=>{let t,e,i,r,s="",a=n.length%3;for(let o=0;o255||(i=n.charCodeAt(o++))>255||(r=n.charCodeAt(o++))>255)throw new TypeError("invalid character found");t=e<<16|i<<8|r,s+=Yd[t>>18&63]+Yd[t>>12&63]+Yd[t>>6&63]+Yd[t&63]}return a?s.slice(0,a-3)+"===".substring(a):s},MC=typeof btoa=="function"?n=>btoa(n):mc?n=>Buffer.from(n,"binary").toString("base64"):qL,SC=mc?n=>Buffer.from(n).toString("base64"):n=>{let e=[];for(let i=0,r=n.length;it?jL(SC(n)):SC(n),GW=n=>{if(n.length<2){var t=n.charCodeAt(0);return t<128?n:t<2048?vi(192|t>>>6)+vi(128|t&63):vi(224|t>>>12&15)+vi(128|t>>>6&63)+vi(128|t&63)}else{var t=65536+(n.charCodeAt(0)-55296)*1024+(n.charCodeAt(1)-56320);return vi(240|t>>>18&7)+vi(128|t>>>12&63)+vi(128|t>>>6&63)+vi(128|t&63)}},KW=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,GL=n=>n.replace(KW,GW),BL=mc?n=>Buffer.from(n,"utf8").toString("base64"):$L?n=>SC($L.encode(n)):n=>MC(GL(n)),hc=(n,t=!1)=>t?jL(BL(n)):BL(n),zL=n=>hc(n,!0),YW=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,QW=n=>{switch(n.length){case 4:var t=(7&n.charCodeAt(0))<<18|(63&n.charCodeAt(1))<<12|(63&n.charCodeAt(2))<<6|63&n.charCodeAt(3),e=t-65536;return vi((e>>>10)+55296)+vi((e&1023)+56320);case 3:return vi((15&n.charCodeAt(0))<<12|(63&n.charCodeAt(1))<<6|63&n.charCodeAt(2));default:return vi((31&n.charCodeAt(0))<<6|63&n.charCodeAt(1))}},KL=n=>n.replace(YW,QW),YL=n=>{if(n=n.replace(/\s+/g,""),!qW.test(n))throw new TypeError("malformed base64.");n+="==".slice(2-(n.length&3));let t,e,i,r=[];for(let s=0;s>16&255)):i===64?r.push(vi(t>>16&255,t>>8&255)):r.push(vi(t>>16&255,t>>8&255,t&255));return r.join("")},TC=typeof atob=="function"?n=>atob(WL(n)):mc?n=>Buffer.from(n,"base64").toString("binary"):YL,QL=mc?n=>VL(Buffer.from(n,"base64")):n=>VL(TC(n).split("").map(t=>t.charCodeAt(0))),ZL=n=>QL(XL(n)),ZW=mc?n=>Buffer.from(n,"base64").toString("utf8"):UL?n=>UL.decode(QL(n)):n=>KL(TC(n)),XL=n=>WL(n.replace(/[-_]/g,t=>t=="-"?"+":"/")),kC=n=>ZW(XL(n)),XW=n=>{if(typeof n!="string")return!1;let t=n.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},JL=n=>({value:n,enumerable:!1,writable:!0,configurable:!0}),eO=function(){let n=(t,e)=>Object.defineProperty(String.prototype,t,JL(e));n("fromBase64",function(){return kC(this)}),n("toBase64",function(t){return hc(this,t)}),n("toBase64URI",function(){return hc(this,!0)}),n("toBase64URL",function(){return hc(this,!0)}),n("toUint8Array",function(){return ZL(this)})},tO=function(){let n=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,JL(e));n("toBase64",function(t){return S0(this,t)}),n("toBase64URI",function(){return S0(this,!0)}),n("toBase64URL",function(){return S0(this,!0)})},JW=()=>{eO(),tO()},EC={version:HL,VERSION:jW,atob:TC,atobPolyfill:YL,btoa:MC,btoaPolyfill:qL,fromBase64:kC,toBase64:hc,encode:hc,encodeURI:zL,encodeURL:zL,utob:GL,btou:KL,decode:kC,isValid:XW,fromUint8Array:S0,toUint8Array:ZL,extendString:eO,extendUint8Array:tO,extendBuiltins:JW};var iO=(()=>{class n{transform(e,...i){return e.sort((r,s)=>r.param.type==s.param.type?r.param.name.localeCompare(s.param.name):r.param.type.localeCompare(s.param.type)),console.log(e.map(r=>`${r.param.type} ${r.param.name}`)),e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=mh({name:"sortSettings",type:n,pure:!0})}}return n})();var nO=n=>({active:n}),tq=n=>({selected:n});function iq(n,t){if(n&1&&(qi(0),P(1,"span"),B(2),U(),B(3," (from "),P(4,"em"),B(5),U(),B(6,") "),Gi()),n&2){let e=Y(2);$(2),He(e.currentResource.resourceType),$(3),He(e.currentResource.filename)}}function nq(n,t){n&1&&(P(0,"em"),B(1,"none"),U())}function rq(n,t){if(n&1&&(P(0,"mat-select-trigger")(1,"span",27)(2,"span",28),B(3),U(),P(4,"span",29),B(5),U()(),P(6,"span",30)(7,"span",31),B(8),U()()()),n&2){let e=t.ngIf;$(3),Lo("",e.igId,"#",e.igVersion,""),$(),j("title",e.title),$(),He(e.title),$(3),He(e.canonical)}}function sq(n,t){if(n&1&&(P(0,"mat-option",21)(1,"span",27)(2,"span",28),B(3),U(),P(4,"span",29),B(5),U()(),P(6,"span",30)(7,"span",31),B(8),U()()()),n&2){let e=t.$implicit;j("value",e.canonical),$(3),Lo("",e.igId,"#",e.igVersion,""),$(),j("title",e.title),$(),He(e.title),$(3),He(e.canonical)}}function aq(n,t){n&1&&(P(0,"mat-error"),B(1,"Please choose a profile"),U())}function oq(n,t){if(n&1&&(P(0,"mat-option",21),B(1),U()),n&2){let e=t.$implicit;j("value",e),$(),je(" ",e," ")}}function lq(n,t){if(n&1){let e=ze();P(0,"span",32)(1,"mat-icon",33),X("click",function(){re(e);let r=Y(2);return se(r.profileLocked=!r.profileLocked)}),B(2,"lock_open"),U(),P(3,"span",34),B(4,"profile unlocked"),U()()}}function cq(n,t){if(n&1){let e=ze();P(0,"span",35)(1,"mat-icon",36),X("click",function(){re(e);let r=Y(2);return se(r.profileLocked=!r.profileLocked)}),B(2,"lock_close"),U(),P(3,"span",37),B(4,"profile locked"),U()()}}function uq(n,t){if(n&1){let e=ze();P(0,"button",25),X("click",function(){re(e);let r=Y(2);return se(r.onAiAnalyzeButtonClick())}),B(1,"Analyze Operation Outcome with AI"),U()}}function dq(n,t){if(n&1){let e=ze();qi(0),P(1,"app-upload",14),X("addFiles",function(r){re(e);let s=Y();return se(s.onFileSelected(r))}),U(),P(2,"p",15),B(3," Current resource loaded: "),oe(4,iq,7,2,"ng-container",3)(5,nq,2,0,"em",3),U(),P(6,"div",16)(7,"mat-form-field")(8,"mat-label"),B(9,"Validation profile (required)"),U(),P(10,"mat-select",17),Vs("ngModelChange",function(r){re(e);let s=Y();return $s(s.selectedProfile,r)||(s.selectedProfile=r),se(r)}),oe(11,rq,9,5,"mat-select-trigger",3),P(12,"mat-option")(13,"ngx-mat-select-search",18),Vs("ngModelChange",function(r){re(e);let s=Y();return $s(s.profileFilter,r)||(s.profileFilter=r),se(r)}),X("ngModelChange",function(){re(e);let r=Y();return se(r.updateProfileFilter())}),U()(),oe(14,sq,9,6,"mat-option",19),U(),oe(15,aq,2,0,"mat-error",3),P(16,"mat-hint"),B(17,"A profile is required to validate against."),U()()(),P(18,"div",16)(19,"mat-form-field")(20,"mat-label"),B(21,"Validation IG"),U(),P(22,"mat-select",20),Vs("ngModelChange",function(r){re(e);let s=Y();return $s(s.selectedIg,r)||(s.selectedIg=r),se(r)}),P(23,"mat-option",21)(24,"em"),B(25,"Automatic selection"),U()(),oe(26,oq,2,2,"mat-option",19),U(),P(27,"mat-hint"),B(28,"A specific IG version may be specified."),U()()(),P(29,"div",22),oe(30,lq,5,0,"span",23)(31,cq,5,0,"span",24),P(32,"button",25),X("click",function(){re(e);let r=Y();return se(r.onValidationButtonClick())}),B(33,"Validate"),U(),oe(34,uq,2,0,"button",26),U(),Gi()}if(n&2){let e=Y();$(4),j("ngIf",e.currentResource),$(),j("ngIf",!e.currentResource),$(5),Us("ngModel",e.selectedProfile),$(),j("ngIf",e.supportedProfiles.get(e.selectedProfile)),$(2),Us("ngModel",e.profileFilter),$(),j("ngForOf",e.filteredProfiles),$(),j("ngIf",e.profileControl.hasError("required")),$(7),Us("ngModel",e.selectedIg),$(),j("value",e.AUTO_IG_SELECTION),$(3),j("ngForOf",e.installedIgs),$(4),j("ngIf",!e.profileLocked),$(),j("ngIf",e.profileLocked),$(3),j("ngIf",e.showAIAnalyzeButton)}}function hq(n,t){if(n&1&&(P(0,"mat-form-field",41)(1,"mat-label"),B(2),U(),te(3,"input",42),U()),n&2){let e=Y().$implicit;$(2),He(e.param.name),$(),j("formControl",e.formControl)}}function mq(n,t){if(n&1&&(P(0,"mat-form-field",41)(1,"mat-label"),B(2),U(),te(3,"textarea",43),U()),n&2){let e=Y().$implicit;$(2),He(e.param.name),$(),j("formControl",e.formControl)}}function fq(n,t){if(n&1&&(P(0,"mat-checkbox",44),B(1),U()),n&2){let e=Y().$implicit;j("formControl",e.formControl),$(),je(" ",e.param.name," ")}}function pq(n,t){if(n&1&&(P(0,"div",16),oe(1,hq,4,2,"mat-form-field",39)(2,mq,4,2,"mat-form-field",39)(3,fq,2,2,"mat-checkbox",40),U()),n&2){let e=t.$implicit;$(),j("ngIf",e.param.type==="string"&&e.param.max==="1"),$(),j("ngIf",e.param.type==="string"&&e.param.max==="*"),$(),j("ngIf",e.param.type==="boolean")}}function gq(n,t){if(n&1&&(qi(0),oe(1,pq,4,3,"div",38),En(2,"sortSettings"),Gi()),n&2){let e=Y();$(),j("ngForOf",Kn(2,1,e.Array.from(e.validatorSettings.values())))}}function _q(n,t){n&1&&te(0,"mat-spinner",52)}function bq(n,t){if(n&1&&(qi(0),P(1,"mat-icon",53),B(2,"error"),U(),B(3),te(4,"br"),P(5,"mat-icon",54),B(6,"warning"),U(),B(7),te(8,"br"),P(9,"mat-icon",55),B(10,"info"),U(),B(11),Gi()),n&2){let e=Y().$implicit;$(3),je(" ",e.result?e.getErrors():"-",""),$(4),je(" ",e.result?e.getWarnings():"-",""),$(4),je(" ",e.result?e.getInfos():"-"," ")}}function vq(n,t){if(n&1){let e=ze();P(0,"tr",45),X("click",function(){let r=re(e).$implicit,s=Y();return se(s.show(r))}),P(1,"td",46),B(2),te(3,"br"),P(4,"time"),B(5),En(6,"date"),U(),te(7,"at"),U(),P(8,"td",46),B(9),te(10,"br"),B(11),U(),P(12,"td",47),oe(13,_q,1,0,"mat-spinner",11)(14,bq,12,3,"ng-container",3),U(),P(15,"td",48)(16,"mat-icon",49),X("click",function(){let r=re(e).$implicit,s=Y();return se(s.removeEntryFromHistory(r))}),B(17,"delete"),U(),P(18,"a",50),X("click",function(r){let s=re(e).$implicit,a=Y();return se(a.copyDirectLink(r,s))}),P(19,"mat-icon",51),B(20,"content_copy"),U()()()()}if(n&2){let e=t.$implicit,i=Y();j("ngClass",Oo(11,tq,e===i.selectedEntry)),$(2),je(" ",e.filename,""),$(3),He(Pw(6,8,e.date,"HH:mm:ss")),$(4),je(" ",e.validationProfile,""),$(2),je(" ",e.ig," "),$(2),j("ngIf",e.loading),$(),j("ngIf",!e.loading),$(4),j("href",i.getDirectLink(e),Sw)}}function yq(n,t){if(n&1&&(P(0,"dl")(1,"dt"),B(2,"Filename"),U(),P(3,"dd"),B(4),U(),P(5,"dt"),B(6,"Profile"),U(),P(7,"dd"),B(8),U(),P(9,"dt"),B(10,"IG"),U(),P(11,"dd"),B(12),U()()),n&2){let e=Y();$(4),He(e.selectedEntry.filename),$(4),He(e.selectedEntry.validationProfile),$(4),He(e.selectedEntry.ig)}}function Cq(n,t){if(n&1){let e=ze();P(0,"app-operation-result",56),X("select",function(r){re(e);let s=Y();return se(s.scrollToIssueLocation(r))}),U()}if(n&2){let e=Y();j("operationResult",e.selectedEntry.result)}}function wq(n,t){n&1&&te(0,"mat-spinner",52)}var xq=2,aO=(()=>{class n{constructor(e,i,r){this.cd=i,this.toastr=r,this.AUTO_IG_SELECTION="AUTOMATIC",this.CodeEditorContent=dc,this.Array=Array,this.validationEntries=[],this.selectedEntry=null,this.installedIgs=new Set,this.supportedProfiles=new Map,this.validatorSettings=new Map,this.filteredProfiles=new Set,this.profileFilter="",this.selectedIg=this.AUTO_IG_SELECTION,this.profileControl=new Rr(null,_n.required),this.profileLocked=!1,this.editorContent=dc.RESOURCE_CONTENT,this.showSettings=!1,this.currentResource=null,this.showAIAnalyzeButton=!1,this.client=e.getFhirClient();let s=this.client.read({resourceType:"OperationDefinition",id:"-s-validate"}),a=this.client.search({resourceType:"ImplementationGuide",searchParams:{_sort:"title",_count:1e3}});Promise.all([s,a]).then(o=>{this.analyzeValidateOperationDefinition(o[0]),o[1].entry?.map(l=>l.resource).map(l=>`${l.packageId}#${l.version}`).sort().forEach(l=>this.installedIgs.add(l))}).catch(o=>{this.showErrorToast("Network error",o.message),console.error(o)})}ngAfterViewInit(){this.editor=new w0(sO.default.edit("editor"),xq),this.analyzeUrlForValidation().then()}onFileSelected(e){if(e.name.endsWith(".tgz")){try{this.validateExamplesInPackage(e.blob)}catch(i){this.showErrorToast("Unexpected error",i.message),console.error(i)}return}try{this.selectedIg=this.AUTO_IG_SELECTION;let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.cd.markForCheck(),this.validateResource(e.blob.name,i.result,e.contentType,!this.profileLocked)}}catch(i){this.showErrorToast("Unexpected error",i.message),console.error(i)}}validateResource(e,i,r,s){let a;try{if(a=new _o(e,i,r,this.getCurrentValidationSettings()),this.currentResource=new k0(e,r,i,a.resourceType),s){var o=!1;for(let l of a.extractedProfiles)if(this.supportedProfiles.has(l)){this.selectedProfile=l,o=!0;break}o||(this.selectedProfile="http://hl7.org/fhir/StructureDefinition/"+a.resourceType)}a.validationProfile=this.selectedProfile,a.validationProfile?(this.validationEntries.unshift(a),this.show(a),this.runValidation(a)):this.showWarnToast("No profile selected","Please select a profile for validation")}catch(l){this.showErrorToast("Error parsing the file",l.message),console.error(l),a&&(a.result=Ut.fromMatchboxError("Error while processing the resource for validation: "+l.message));return}}validateExamplesInPackage(e){this.selectedProfile=null,this.selectedIg=this.AUTO_IG_SELECTION;let i=new FileReader;i.readAsArrayBuffer(e),i.onload=()=>{if(this.package=i.result,this.cd.markForCheck(),this.package!=null){let r=IL.inflate(new Uint8Array(this.package)),s=new Array,a=this;(0,rO.default)(r.buffer).then(o=>{s.forEach(l=>{a.validationEntries.unshift(l),a.runValidation(l)})},o=>{this.showErrorToast("Unexpected error",o),console.error(o)},o=>{if(o.name?.indexOf("package.json")>=0,o.name?.indexOf("example")>=0&&o.name?.indexOf(".index.json")==-1){let l=o.name;l.startsWith("package/example/")&&(l=l.substring(16)),l.startsWith("example/")&&(l=l.substring(8));let c=new TextDecoder("utf-8"),u=new _o(l,c.decode(o.buffer),"application/fhir+json",this.getCurrentValidationSettings());s.push(u)}})}}}clearAllEntries(){this.selectedProfile=null,this.selectedIg=this.AUTO_IG_SELECTION,this.show(void 0),this.validationEntries.splice(0,this.validationEntries.length)}runValidation(e){if(this.selectedProfile!=null&&!this.profileLocked&&(e.extractedProfiles.includes(this.selectedProfile)||e.extractedProfiles.push(this.selectedProfile),e.validationProfile=this.selectedProfile),this.selectedIg!=this.AUTO_IG_SELECTION&&(this.selectedIg.endsWith(" (last)")?e.ig=this.selectedIg.substring(0,this.selectedIg.length-7):e.ig=this.selectedIg),!e.validationProfile){this.showErrorToast("Validation failed","No profile was selected"),console.error("No profile selected, won't run validation");return}let i=new URLSearchParams;i.set("profile",e.validationProfile),e.ig&&i.set("ig",e.ig);for(let r of e.validationParameters)i.append(r.name,r.value);e.loading=!0,this.client.operation({name:"validate?"+i.toString(),resourceType:void 0,input:e.resource,options:{headers:{accept:"application/fhir+json","content-type":e.mimetype}}}).then(r=>{e.loading=!1,e.setOperationOutcome(r),e===this.selectedEntry&&this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent)}).catch(r=>{console.error(r),e.loading=!1,r?.response?.data?.resourceType==="OperationOutcome"?(e.setOperationOutcome(r?.response?.data),e===this.selectedEntry&&this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent)):"message"in r?(this.showErrorToast("Unexpected error",r.message),e.result=Ut.fromMatchboxError("Error while sending the validation request: "+r.message),console.error(r)):(this.showErrorToast("Unknown error","Unknown error while sending the validation request"),e.result=Ut.fromMatchboxError("Unknown error while sending the validation request"),console.error(r))})}show(e){this.selectedEntry=e,this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent),e!=null&&(this.currentResource=new k0(e.filename,e.mimetype,e.resource,e.resourceType))}removeEntryFromHistory(e){e===this.selectedEntry&&this.show(null);let i=this.validationEntries.indexOf(e);this.validationEntries.splice(i,1)}onValidationButtonClick(){let e=new _o(this.currentResource.filename,this.currentResource.content,this.currentResource.contentType,this.getCurrentValidationSettings(),this.selectedProfile);this.selectedIg!=this.AUTO_IG_SELECTION&&(e.ig=this.selectedIg),this.validationEntries.unshift(e),this.show(e),this.runValidation(e)}onAiAnalyzeButtonClick(){let e={name:"analyzeOutcomeWithAI",value:"true"},i=this.getCurrentValidationSettings();i.push(e);let r=new _o(this.currentResource.filename,this.currentResource.content,this.currentResource.contentType,i,this.selectedProfile);this.selectedIg!=this.AUTO_IG_SELECTION&&(r.ig=this.selectedIg),this.validationEntries.unshift(r),this.show(r),this.runValidation(r)}toggleSettings(){this.showSettings=!this.showSettings}scrollToIssueLocation(e){e.line&&this.editorContent==dc.RESOURCE_CONTENT&&this.editor.scrollToIssueLocation(e)}updateProfileFilter(){let e=this.profileFilter.toLowerCase();this.filteredProfiles=new Set([...this.supportedProfiles.values()].filter(i=>i.title.toLocaleLowerCase().includes(e)||i.canonical.toLocaleLowerCase().includes(e)).values())}getDirectLink(e){let i=new URL(document.location.href);i.searchParams.forEach(s=>{i.searchParams.delete(s)});let r=new URLSearchParams;r.set("resource",EC.encodeURI(e.resource)),r.set("profile",e.validationProfile),e.ig&&r.set("ig",e.ig);for(let s of e.validationParameters)r.set(s.name,s.value);return i.hash=r.toString(),i.toString()}copyDirectLink(e,i){if("clipboard"in navigator){e.preventDefault();let r=this.getDirectLink(i);navigator.clipboard.writeText(r).then(()=>{})}}getExtensionStringValue(e,i){return this.getExtension(e,i)?.valueString??""}getExtensionBoolValue(e,i){return this.getExtension(e,i)?.valueBoolean??!1}getExtension(e,i){for(let r=0;r0)if(r.param.type==="string"&&r.param.max==="*"){let o=r.formControl.value.toString().split(` +`).filter(l=>l.trim().length>0);for(let l of o)e.push(new Gd(r.param.name,l.trim()))}else e.push(new Gd(r.param.name,r.formControl.value.toString()));return e}showErrorToast(e,i){this.toastr.error(i,e,{closeButton:!0,timeOut:5e3})}showWarnToast(e,i){this.toastr.warning(i,e,{closeButton:!0,timeOut:5e3})}analyzeValidateOperationDefinition(e){e.parameter?.forEach(i=>{i.name=="profile"&&(i._targetProfile?.forEach(r=>{let s=new b0;s.canonical=this.getExtensionStringValue(r,"sd-canonical"),s.title=this.getExtensionStringValue(r,"sd-title"),s.igId=this.getExtensionStringValue(r,"ig-id"),s.igVersion=this.getExtensionStringValue(r,"ig-version"),s.isCurrent=!1,this.getExtensionBoolValue(r,"ig-current")?s.isCurrent=!0:s.canonical+=`|${s.igVersion}`,this.supportedProfiles.set(s.canonical,s)}),this.updateProfileFilter()),i.name=="llmProvider"&&i.extension&&(this.showAIAnalyzeButton=!0)}),e.parameter.filter(i=>i.use=="in"&&i.name!="resource"&&i.name!="profile"&&i.name!="ig"&&i.name!="llmProvider").forEach(i=>{this.validatorSettings.set(i.name,new _0(i))})}analyzeUrlForValidation(){return Lt(this,null,function*(){if(!window.location.hash)return;let e=new URLSearchParams(window.location.hash.substring(1));if(e.has("resource")){let i=!1;e.has("profile")&&(this.selectedProfile=e.get("profile"),i=!0);let r=EC.decode(e.get("resource")),s="application/fhir+json";r.startsWith("<")&&(s="application/fhir+xml");let a;e.has("filename")?a=e.get("filename"):a=`provided.${s.split("+")[1]}`;for(let[o,l]of e)o==="resource"||o==="profile"||o==="filename"||this.validatorSettings.has(o)&&this.validatorSettings.get(o).formControl.setValue(l);this.validateResource(a,r,s,!i&&!this.profileLocked),this.toastr.info("Validation","The validation of your resource has started",{closeButton:!0,timeOut:3e3})}})}static{this.\u0275fac=function(i){return new(i||n)(Ae(Dn),Ae(Ge),Ae(C0))}}static{this.\u0275cmp=le({type:n,selectors:[["app-validate"]],standalone:!1,decls:39,vars:12,consts:[[1,"row"],[1,"card-maps","white-block"],["mat-menu-item","","title","Edit validation parameters",1,"setting",3,"click"],[4,"ngIf"],[1,"mat-table"],[1,"mat-header-row"],[1,"mat-header-cell"],["class","mat-row",3,"ngClass","click",4,"ngFor","ngForOf"],["mat-raised-button","","type","submit",3,"click"],[1,"row","row-full-height"],[3,"operationResult","select",4,"ngIf"],["diameter","30",4,"ngIf"],[1,"editor-content-selector",3,"click","ngClass"],["id","editor"],[3,"addFiles"],[1,"current"],[1,"form-field-group"],["id","select-profile","name","selectProfile","placeholder","Validate against specific Profile",3,"ngModelChange","ngModel"],["placeholderLabel","Find a profile\u2026","noEntriesFoundLabel","'no matching profile found'",3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],["name","selectIg","placeholder","Validate against specific Implementation Guide",3,"ngModelChange","ngModel"],[3,"value"],[1,"buttons"],["class","profile-lock unlocked",4,"ngIf"],["class","profile-lock locked",4,"ngIf"],["color","primary","mat-raised-button","",3,"click"],["color","primary","mat-raised-button","",3,"click",4,"ngIf"],[1,"profile-select-option-line1"],[1,"ig"],[1,"title",3,"title"],[1,"profile-select-option-line2"],[1,"canonical"],[1,"profile-lock","unlocked"],["title","Lock the profile",3,"click"],["title","The profile will be updated automatically when validating a new resource"],[1,"profile-lock","locked"],["title","Unlock the profile",3,"click"],["title","The profile won't be updated when validating a new resource"],["class","form-field-group",4,"ngFor","ngForOf"],["class","column50",4,"ngIf"],[3,"formControl",4,"ngIf"],[1,"column50"],["matInput","",3,"formControl"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","3","cdkAutosizeMaxRows","10",3,"formControl"],[3,"formControl"],[1,"mat-row",3,"click","ngClass"],[1,"mat-cell"],[1,"issues","mat-cell"],[1,"actions","mat-cell"],["aria-label","Remove","title","Remove from history",1,"delete",3,"click"],["target","_blank","title","Copy a direct link to this validation",3,"click","href"],["aria-label","Copy",1,"copy"],["diameter","30"],["inline","",1,"error"],["inline","",1,"warning"],["inline","",1,"info"],[3,"select","operationResult"]],template:function(i,r){i&1&&(P(0,"div",0)(1,"div",1)(2,"button",2),X("click",function(){return r.toggleSettings()}),P(3,"mat-icon"),B(4,"settings"),U()(),P(5,"h2"),B(6,"Validate FHIR Resource"),U(),oe(7,dq,35,13,"ng-container",3)(8,gq,3,3,"ng-container",3),U(),P(9,"div",1)(10,"h2"),B(11,"Validation history"),U(),P(12,"table",4)(13,"tr",5)(14,"th",6),B(15,"Resource"),U(),P(16,"th",6),B(17,"Profile/IG"),U(),P(18,"th",6),B(19,"Issues"),U(),P(20,"th",6),B(21,"Actions"),U()(),oe(22,vq,21,13,"tr",7),U(),P(23,"mat-card-actions")(24,"button",8),X("click",function(){return r.clearAllEntries()}),B(25,"Clear history"),U()()()(),P(26,"div",9)(27,"div",1)(28,"h2"),B(29,"Result of the validation"),U(),oe(30,yq,13,3,"dl",3)(31,Cq,1,1,"app-operation-result",10)(32,wq,1,0,"mat-spinner",11),U(),P(33,"div",1)(34,"span",12),X("click",function(){return r.changeCodeEditorContent(r.CodeEditorContent.RESOURCE_CONTENT)}),B(35,"Validated resource"),U(),P(36,"span",12),X("click",function(){return r.changeCodeEditorContent(r.CodeEditorContent.OPERATION_OUTCOME)}),B(37,"Operation outcome"),U(),te(38,"div",13),U()()),i&2&&($(7),j("ngIf",!r.showSettings),$(),j("ngIf",r.showSettings),$(14),j("ngForOf",r.validationEntries),$(8),j("ngIf",r.selectedEntry),$(),j("ngIf",r.selectedEntry&&r.selectedEntry.result),$(),j("ngIf",r.selectedEntry&&r.selectedEntry.loading),$(2),j("ngClass",Oo(8,nO,r.editorContent==r.CodeEditorContent.RESOURCE_CONTENT)),$(2),j("ngClass",Oo(10,nO,r.editorContent==r.CodeEditorContent.OPERATION_OUTCOME)))},dependencies:[An,vr,di,Ir,Dr,cb,er,Nn,ms,Lm,Al,bn,ds,Ga,Ka,Rn,Ml,LT,Gm,ps,Fb,Xs,n0,dl,r0,qw,iO],styles:["[_nghost-%COMP%]{margin:0 auto;min-width:1400px;width:100%}button.setting[_ngcontent-%COMP%]{float:right}button.setting[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}p.current[_ngcontent-%COMP%]{margin:10px 0}p.current[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-weight:500}mat-hint[_ngcontent-%COMP%]{color:#7db99e}p.error[_ngcontent-%COMP%]{color:#d9534f;margin-top:20px}p.error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}.row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-self:stretch;margin:1em auto;min-width:1400px;width:100%;justify-content:space-evenly}.row[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{width:46%}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{padding-left:.5rem;padding-right:.5rem}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:#d8f1e6}table[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{cursor:pointer}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%]{font-size:12px;line-height:12px;color:#818181}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:12px;height:12px;margin-right:2px;vertical-align:bottom}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.error[_ngcontent-%COMP%]{color:#d9534f}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.warning[_ngcontent-%COMP%]{color:#f0ad4e}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.info[_ngcontent-%COMP%]{color:#4ca8de}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:24px}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon.delete[_ngcontent-%COMP%]{color:#d9534f;margin-right:.2em}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon.copy[_ngcontent-%COMP%]{color:#4ab183}.form-field-group[_ngcontent-%COMP%]{padding-left:1rem;padding-right:1rem;display:flex;flex-direction:row}.form-field-group[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.button-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:1rem}.card-maps[_ngcontent-%COMP%]{padding:8px 16px}.row-full-height[_ngcontent-%COMP%] .card-maps[_ngcontent-%COMP%]{height:96vh;max-height:96vh;overflow-y:auto}#editor[_ngcontent-%COMP%]{height:calc(100% - 50px)}.column50[_ngcontent-%COMP%]{width:40%}.profile-select-option-line1[_ngcontent-%COMP%]{display:inline-block;white-space:nowrap;width:100%}.profile-select-option-line1[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:block;width:auto;text-overflow:ellipsis;padding-right:6px;overflow:hidden}.profile-select-option-line1[_ngcontent-%COMP%] .ig[_ngcontent-%COMP%]{display:block;float:right;width:max-content;color:#7bc7a5}.profile-select-option-line2[_ngcontent-%COMP%]{clear:right;display:inline-block;white-space:nowrap;width:100%;font-size:.8rem;line-height:.8rem}.profile-select-option-line2[_ngcontent-%COMP%] .canonical[_ngcontent-%COMP%]{font-family:monospace,serif;color:#778d9d;letter-spacing:0px}mat-option[_ngcontent-%COMP%]:nth-child(odd){background-color:#f9f9f9}mat-option[_ngcontent-%COMP%]{padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.05);line-height:normal} .mdc-list-item__primary-text{width:100%}.editor-content-selector[_ngcontent-%COMP%]{display:inline-block;font-size:1.4em;margin:.3em 1em .6em 0;border-bottom:3px solid #d2eade;cursor:pointer;color:#5a5f5c;padding-bottom:2px}.editor-content-selector.active[_ngcontent-%COMP%]{border-bottom:3px solid #97d6ba;cursor:default;color:#000}.buttons[_ngcontent-%COMP%]{margin:20px 0 10px 10px}.profile-lock[_ngcontent-%COMP%]{float:right;display:block;width:150px;line-height:3em}.profile-lock[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer;vertical-align:middle;margin-right:5px;color:#7099bd}.profile-lock[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:help;text-decoration:underline dashed}.profile-lock.locked[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#d9534f}.profile-lock.unlocked[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#6eb394}"]})}}return n})(),k0=class{constructor(t,e,i,r){this.filename=t,this.contentType=e,this.content=i,this.resourceType=r}},dc=function(n){return n[n.RESOURCE_CONTENT=0]="RESOURCE_CONTENT",n[n.OPERATION_OUTCOME=1]="OPERATION_OUTCOME",n}(dc||{});var M0=class{validateSignature(t){return Promise.resolve(null)}validateAtHash(t){return Promise.resolve(!0)}},T0=class{};var Qd=class{},Sq=(()=>{class n extends Qd{now(){return Date.now()}new(){return new Date}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})()}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})();var E0=class{},A0=class{},kq=(()=>{class n{constructor(){this.data=new Map}getItem(e){return this.data.get(e)}removeItem(e){this.data.delete(e)}setItem(e,i){this.data.set(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})();var Zd=class{constructor(t){this.type=t}},Wi=class extends Zd{constructor(t,e=null){super(t),this.info=e}},or=class extends Zd{constructor(t,e=null){super(t),this.info=e}},$t=class extends Zd{constructor(t,e,i=null){super(t),this.reason=e,this.params=i}};function oO(n){let t=n.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))}function lO(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var fc=class{constructor(t){this.clientId="",this.redirectUri="",this.postLogoutRedirectUri="",this.redirectUriAsPostLogoutRedirectUriFallback=!0,this.loginUrl="",this.scope="openid profile",this.resource="",this.rngUrl="",this.oidc=!0,this.requestAccessToken=!0,this.options=null,this.issuer="",this.logoutUrl="",this.clearHashAfterLogin=!0,this.tokenEndpoint=null,this.revocationEndpoint=null,this.customTokenParameters=[],this.userinfoEndpoint=null,this.responseType="",this.showDebugInformation=!1,this.silentRefreshRedirectUri="",this.silentRefreshMessagePrefix="",this.silentRefreshShowIFrame=!1,this.siletRefreshTimeout=1e3*20,this.silentRefreshTimeout=1e3*20,this.dummyClientSecret="",this.requireHttps="remoteOnly",this.strictDiscoveryDocumentValidation=!0,this.jwks=null,this.customQueryParams=null,this.silentRefreshIFrameName="angular-oauth-oidc-silent-refresh-iframe",this.timeoutFactor=.75,this.sessionChecksEnabled=!1,this.sessionCheckIntervall=3*1e3,this.sessionCheckIFrameUrl=null,this.sessionCheckIFrameName="angular-oauth-oidc-check-session-iframe",this.disableAtHashCheck=!1,this.skipSubjectCheck=!1,this.useIdTokenHintForSilentRefresh=!1,this.skipIssuerCheck=!1,this.nonceStateSeparator=";",this.useHttpBasicAuth=!1,this.decreaseExpirationBySec=0,this.waitForTokenInMsec=0,this.disablePKCE=!1,this.preserveRequestedRoute=!1,this.disableIdTokenTimer=!1,this.checkOrigin=!1,this.openUri=e=>{location.href=e},t&&Object.assign(this,t)}},vo=class{encodeKey(t){return encodeURIComponent(t)}encodeValue(t){return encodeURIComponent(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}},I0=class{};var cO=(()=>{class n{getHashFragmentParams(e){let i=e||window.location.hash;if(i=decodeURIComponent(i),i.indexOf("#")!==0)return{};let r=i.indexOf("?");return r>-1?i=i.substr(r+1):i=i.substr(1),this.parseQueryString(i)}parseQueryString(e){let i={},r,s,a,o,l,c;if(e===null)return i;let u=e.split("&");for(let d=0;d=64;){for(s=t[0],a=t[1],o=t[2],l=t[3],c=t[4],u=t[5],d=t[6],h=t[7],f=0;f<16;f++)p=i+f*4,n[f]=(e[p]&255)<<24|(e[p+1]&255)<<16|(e[p+2]&255)<<8|e[p+3]&255;for(f=16;f<64;f++)m=n[f-2],g=(m>>>17|m<<15)^(m>>>19|m<<13)^m>>>10,m=n[f-15],y=(m>>>7|m<<25)^(m>>>18|m<<14)^m>>>3,n[f]=(g+n[f-7]|0)+(y+n[f-16]|0);for(f=0;f<64;f++)g=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&u^~c&d)|0)+(h+(Tq[f]+n[f]|0)|0)|0,y=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&a^s&o^a&o)|0,h=d,d=u,u=c,c=l+g|0,l=o,o=a,a=s,s=g+y|0;t[0]+=s,t[1]+=a,t[2]+=o,t[3]+=l,t[4]+=c,t[5]+=u,t[6]+=d,t[7]+=h,i+=64,r-=64}return i}var IC=class{constructor(){this.digestLength=uO,this.blockSize=Mq,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}reset(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this}clean(){for(let t=0;t0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[i++],e--;this.bufferLength===64&&(AC(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(i=AC(this.temp,this.state,t,i,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[i++],e--;return this}finish(t){if(!this.finished){let e=this.bytesHashed,i=this.bufferLength,r=e/536870912|0,s=e<<3,a=e%64<56?64:128;this.buffer[i]=128;for(let o=i+1;o>>24&255,this.buffer[a-7]=r>>>16&255,this.buffer[a-6]=r>>>8&255,this.buffer[a-5]=r>>>0&255,this.buffer[a-4]=s>>>24&255,this.buffer[a-3]=s>>>16&255,this.buffer[a-2]=s>>>8&255,this.buffer[a-1]=s>>>0&255,AC(this.temp,this.state,this.buffer,0,a),this.finished=!0}for(let e=0;e<8;e++)t[e*4+0]=this.state[e]>>>24&255,t[e*4+1]=this.state[e]>>>16&255,t[e*4+2]=this.state[e]>>>8&255,t[e*4+3]=this.state[e]>>>0&255;return this}digest(){let t=new Uint8Array(this.digestLength);return this.finish(t),t}_saveState(t){for(let e=0;e{class n{calcHash(e,i){return Lt(this,null,function*(){return Iq(Eq(Aq(e)))})}toHashString2(e){let i="";for(let r of e)i+=String.fromCharCode(r);return i}toHashString(e){let i=new Uint8Array(e),r="";for(let s of i)r+=String.fromCharCode(s);return r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})(),dO=(()=>{class n extends fc{constructor(e,i,r,s,a,o,l,c,u,d){super(),this.ngZone=e,this.http=i,this.config=a,this.urlHelper=o,this.logger=l,this.crypto=c,this.dateTimeService=d,this.discoveryDocumentLoaded=!1,this.state="",this.eventsSubject=new ue,this.discoveryDocumentLoadedSubject=new ue,this.grantTypesSupported=[],this.inImplicitFlow=!1,this.saveNoncesInLocalStorage=!1,this.debug("angular-oauth2-oidc v10"),this.document=u,a||(a={}),this.discoveryDocumentLoaded$=this.discoveryDocumentLoadedSubject.asObservable(),this.events=this.eventsSubject.asObservable(),s&&(this.tokenValidationHandler=s),a&&this.configure(a);try{r?this.setStorage(r):typeof sessionStorage<"u"&&this.setStorage(sessionStorage)}catch(h){console.error("No OAuthStorage provided and cannot access default (sessionStorage).Consider providing a custom OAuthStorage implementation in your module.",h)}if(this.checkLocalStorageAccessable()){let h=window?.navigator?.userAgent;(h?.includes("MSIE ")||h?.includes("Trident"))&&(this.saveNoncesInLocalStorage=!0)}this.setupRefreshTimer()}checkLocalStorageAccessable(){if(typeof window>"u")return!1;let e="test";try{return typeof window.localStorage>"u"?!1:(localStorage.setItem(e,e),localStorage.removeItem(e),!0)}catch{return!1}}configure(e){Object.assign(this,new fc,e),this.config=Object.assign({},new fc,e),this.sessionChecksEnabled&&this.setupSessionCheck(),this.configChanged()}configChanged(){this.setupRefreshTimer()}restartSessionChecksIfStillLoggedIn(){this.hasValidIdToken()&&this.initSessionCheck()}restartRefreshTimerIfStillLoggedIn(){this.setupExpirationTimers()}setupSessionCheck(){this.events.pipe(it(e=>e.type==="token_received")).subscribe(()=>{this.initSessionCheck()})}setupAutomaticSilentRefresh(e={},i,r=!0){let s=!0;this.clearAutomaticRefreshTimer(),this.automaticRefreshSubscription=this.events.pipe(kt(a=>{a.type==="token_received"?s=!0:a.type==="logout"&&(s=!1)}),it(a=>a.type==="token_expires"&&(i==null||i==="any"||a.info===i)),Ii(1e3)).subscribe(()=>{s&&this.refreshInternal(e,r).catch(()=>{this.debug("Automatic silent refresh did not work")})}),this.restartRefreshTimerIfStillLoggedIn()}refreshInternal(e,i){return!this.useSilentRefresh&&this.responseType==="code"?this.refreshToken():this.silentRefresh(e,i)}loadDiscoveryDocumentAndTryLogin(e=null){return this.loadDiscoveryDocument().then(()=>this.tryLogin(e))}loadDiscoveryDocumentAndLogin(e=null){return e=e||{},this.loadDiscoveryDocumentAndTryLogin(e).then(()=>{if(!this.hasValidIdToken()||!this.hasValidAccessToken()){let i=typeof e.state=="string"?e.state:"";return this.initLoginFlow(i),!1}else return!0})}debug(...e){this.showDebugInformation&&this.logger.debug(...e)}validateUrlFromDiscoveryDocument(e){let i=[],r=this.validateUrlForHttps(e),s=this.validateUrlAgainstIssuer(e);return r||i.push("https for all urls required. Also for urls received by discovery."),s||i.push("Every url in discovery document has to start with the issuer url.Also see property strictDiscoveryDocumentValidation."),i}validateUrlForHttps(e){if(!e)return!0;let i=e.toLowerCase();return this.requireHttps===!1||(i.match(/^http:\/\/localhost($|[:/])/)||i.match(/^http:\/\/localhost($|[:/])/))&&this.requireHttps==="remoteOnly"?!0:i.startsWith("https://")}assertUrlNotNullAndCorrectProtocol(e,i){if(!e)throw new Error(`'${i}' should not be null`);if(!this.validateUrlForHttps(e))throw new Error(`'${i}' must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).`)}validateUrlAgainstIssuer(e){return!this.strictDiscoveryDocumentValidation||!e?!0:e.toLowerCase().startsWith(this.issuer.toLowerCase())}setupRefreshTimer(){if(typeof window>"u"){this.debug("timer not supported on this plattform");return}(this.hasValidIdToken()||this.hasValidAccessToken())&&(this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.setupExpirationTimers()),this.tokenReceivedSubscription&&this.tokenReceivedSubscription.unsubscribe(),this.tokenReceivedSubscription=this.events.pipe(it(e=>e.type==="token_received")).subscribe(()=>{this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.setupExpirationTimers()})}setupExpirationTimers(){this.hasValidAccessToken()&&this.setupAccessTokenTimer(),!this.disableIdTokenTimer&&this.hasValidIdToken()&&this.setupIdTokenTimer()}setupAccessTokenTimer(){let e=this.getAccessTokenExpiration(),i=this.getAccessTokenStoredAt(),r=this.calcTimeout(i,e);this.ngZone.runOutsideAngular(()=>{this.accessTokenTimeoutSubscription=ge(new or("token_expires","access_token")).pipe(To(r)).subscribe(s=>{this.ngZone.run(()=>{this.eventsSubject.next(s)})})})}setupIdTokenTimer(){let e=this.getIdTokenExpiration(),i=this.getIdTokenStoredAt(),r=this.calcTimeout(i,e);this.ngZone.runOutsideAngular(()=>{this.idTokenTimeoutSubscription=ge(new or("token_expires","id_token")).pipe(To(r)).subscribe(s=>{this.ngZone.run(()=>{this.eventsSubject.next(s)})})})}stopAutomaticRefresh(){this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.clearAutomaticRefreshTimer()}clearAccessTokenTimer(){this.accessTokenTimeoutSubscription&&this.accessTokenTimeoutSubscription.unsubscribe()}clearIdTokenTimer(){this.idTokenTimeoutSubscription&&this.idTokenTimeoutSubscription.unsubscribe()}clearAutomaticRefreshTimer(){this.automaticRefreshSubscription&&this.automaticRefreshSubscription.unsubscribe()}calcTimeout(e,i){let r=this.dateTimeService.now(),s=(i-e)*this.timeoutFactor-(r-e),a=Math.max(0,s),o=2147483647;return a>o?o:a}setStorage(e){this._storage=e,this.configChanged()}loadDiscoveryDocument(e=null){return new Promise((i,r)=>{if(e||(e=this.issuer||"",e.endsWith("/")||(e+="/"),e+=".well-known/openid-configuration"),!this.validateUrlForHttps(e)){r("issuer must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");return}this.http.get(e).subscribe(s=>{if(!this.validateDiscoveryDocument(s)){this.eventsSubject.next(new $t("discovery_document_validation_error",null)),r("discovery_document_validation_error");return}this.loginUrl=s.authorization_endpoint,this.logoutUrl=s.end_session_endpoint||this.logoutUrl,this.grantTypesSupported=s.grant_types_supported,this.issuer=s.issuer,this.tokenEndpoint=s.token_endpoint,this.userinfoEndpoint=s.userinfo_endpoint||this.userinfoEndpoint,this.jwksUri=s.jwks_uri,this.sessionCheckIFrameUrl=s.check_session_iframe||this.sessionCheckIFrameUrl,this.discoveryDocumentLoaded=!0,this.discoveryDocumentLoadedSubject.next(s),this.revocationEndpoint=s.revocation_endpoint||this.revocationEndpoint,this.sessionChecksEnabled&&this.restartSessionChecksIfStillLoggedIn(),this.loadJwks().then(a=>{let o={discoveryDocument:s,jwks:a},l=new Wi("discovery_document_loaded",o);this.eventsSubject.next(l),i(l)}).catch(a=>{this.eventsSubject.next(new $t("discovery_document_load_error",a)),r(a)})},s=>{this.logger.error("error loading discovery document",s),this.eventsSubject.next(new $t("discovery_document_load_error",s)),r(s)})})}loadJwks(){return new Promise((e,i)=>{this.jwksUri?this.http.get(this.jwksUri).subscribe(r=>{this.jwks=r,e(r)},r=>{this.logger.error("error loading jwks",r),this.eventsSubject.next(new $t("jwks_load_error",r)),i(r)}):e(null)})}validateDiscoveryDocument(e){let i;return!this.skipIssuerCheck&&e.issuer!==this.issuer?(this.logger.error("invalid issuer in discovery document","expected: "+this.issuer,"current: "+e.issuer),!1):(i=this.validateUrlFromDiscoveryDocument(e.authorization_endpoint),i.length>0?(this.logger.error("error validating authorization_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.end_session_endpoint),i.length>0?(this.logger.error("error validating end_session_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.token_endpoint),i.length>0&&this.logger.error("error validating token_endpoint in discovery document",i),i=this.validateUrlFromDiscoveryDocument(e.revocation_endpoint),i.length>0&&this.logger.error("error validating revocation_endpoint in discovery document",i),i=this.validateUrlFromDiscoveryDocument(e.userinfo_endpoint),i.length>0?(this.logger.error("error validating userinfo_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.jwks_uri),i.length>0?(this.logger.error("error validating jwks_uri in discovery document",i),!1):(this.sessionChecksEnabled&&!e.check_session_iframe&&this.logger.warn("sessionChecksEnabled is activated but discovery document does not contain a check_session_iframe field"),!0)))))}fetchTokenUsingPasswordFlowAndLoadUserProfile(e,i,r=new zs){return this.fetchTokenUsingPasswordFlow(e,i,r).then(()=>this.loadUserProfile())}loadUserProfile(){if(!this.hasValidAccessToken())throw new Error("Can not load User Profile without access_token");if(!this.validateUrlForHttps(this.userinfoEndpoint))throw new Error("userinfoEndpoint must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");return new Promise((e,i)=>{let r=new zs().set("Authorization","Bearer "+this.getAccessToken());this.http.get(this.userinfoEndpoint,{headers:r,observe:"response",responseType:"text"}).subscribe(s=>{if(this.debug("userinfo received",JSON.stringify(s)),s.headers.get("content-type").startsWith("application/json")){let a=JSON.parse(s.body),o=this.getIdentityClaims()||{};if(!this.skipSubjectCheck&&this.oidc&&(!o.sub||a.sub!==o.sub)){i(`if property oidc is true, the received user-id (sub) has to be the user-id of the user that has logged in with oidc. +if you are not using oidc but just oauth2 password flow set oidc to false`);return}a=Object.assign({},o,a),this._storage.setItem("id_token_claims_obj",JSON.stringify(a)),this.eventsSubject.next(new Wi("user_profile_loaded")),e({info:a})}else this.debug("userinfo is not JSON, treating it as JWE/JWS"),this.eventsSubject.next(new Wi("user_profile_loaded")),e(JSON.parse(s.body))},s=>{this.logger.error("error loading user info",s),this.eventsSubject.next(new $t("user_profile_load_error",s)),i(s)})})}fetchTokenUsingPasswordFlow(e,i,r=new zs){let s={username:e,password:i};return this.fetchTokenUsingGrant("password",s,r)}fetchTokenUsingGrant(e,i,r=new zs){this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint");let s=new Fo({encoder:new vo}).set("grant_type",e).set("scope",this.scope);if(this.useHttpBasicAuth){let a=btoa(`${this.clientId}:${this.dummyClientSecret}`);r=r.set("Authorization","Basic "+a)}if(this.useHttpBasicAuth||(s=s.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(s=s.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let a of Object.getOwnPropertyNames(this.customQueryParams))s=s.set(a,this.customQueryParams[a]);for(let a of Object.keys(i))s=s.set(a,i[a]);return r=r.set("Content-Type","application/x-www-form-urlencoded"),new Promise((a,o)=>{this.http.post(this.tokenEndpoint,s,{headers:r}).subscribe(l=>{this.debug("tokenResponse",l),this.storeAccessTokenResponse(l.access_token,l.refresh_token,l.expires_in||this.fallbackAccessTokenExpirationTimeInSec,l.scope,this.extractRecognizedCustomParameters(l)),this.oidc&&l.id_token&&this.processIdToken(l.id_token,l.access_token).then(c=>{this.storeIdToken(c),a(l)}),this.eventsSubject.next(new Wi("token_received")),a(l)},l=>{this.logger.error("Error performing ${grantType} flow",l),this.eventsSubject.next(new $t("token_error",l)),o(l)})})}refreshToken(){return this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint"),new Promise((e,i)=>{let r=new Fo({encoder:new vo}).set("grant_type","refresh_token").set("scope",this.scope).set("refresh_token",this._storage.getItem("refresh_token")),s=new zs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let a=btoa(`${this.clientId}:${this.dummyClientSecret}`);s=s.set("Authorization","Basic "+a)}if(this.useHttpBasicAuth||(r=r.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(r=r.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let a of Object.getOwnPropertyNames(this.customQueryParams))r=r.set(a,this.customQueryParams[a]);this.http.post(this.tokenEndpoint,r,{headers:s}).pipe(Mt(a=>this.oidc&&a.id_token?si(this.processIdToken(a.id_token,a.access_token,!0)).pipe(kt(o=>this.storeIdToken(o)),Ne(()=>a)):ge(a))).subscribe(a=>{this.debug("refresh tokenResponse",a),this.storeAccessTokenResponse(a.access_token,a.refresh_token,a.expires_in||this.fallbackAccessTokenExpirationTimeInSec,a.scope,this.extractRecognizedCustomParameters(a)),this.eventsSubject.next(new Wi("token_received")),this.eventsSubject.next(new Wi("token_refreshed")),e(a)},a=>{this.logger.error("Error refreshing token",a),this.eventsSubject.next(new $t("token_refresh_error",a)),i(a)})})}removeSilentRefreshEventListener(){this.silentRefreshPostMessageEventListener&&(window.removeEventListener("message",this.silentRefreshPostMessageEventListener),this.silentRefreshPostMessageEventListener=null)}setupSilentRefreshEventListener(){this.removeSilentRefreshEventListener(),this.silentRefreshPostMessageEventListener=e=>{let i=this.processMessageEventMessage(e);this.checkOrigin&&e.origin!==location.origin&&console.error("wrong origin requested silent refresh!"),this.tryLogin({customHashFragment:i,preventClearHashAfterLogin:!0,customRedirectUri:this.silentRefreshRedirectUri||this.redirectUri}).catch(r=>this.debug("tryLogin during silent refresh failed",r))},window.addEventListener("message",this.silentRefreshPostMessageEventListener)}silentRefresh(e={},i=!0){let r=this.getIdentityClaims()||{};if(this.useIdTokenHintForSilentRefresh&&this.hasValidIdToken()&&(e.id_token_hint=this.getIdToken()),!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");if(typeof this.document>"u")throw new Error("silent refresh is not supported on this platform");let s=this.document.getElementById(this.silentRefreshIFrameName);s&&this.document.body.removeChild(s),this.silentRefreshSubject=r.sub;let a=this.document.createElement("iframe");a.id=this.silentRefreshIFrameName,this.setupSilentRefreshEventListener();let o=this.silentRefreshRedirectUri||this.redirectUri;this.createLoginUrl(null,null,o,i,e).then(d=>{a.setAttribute("src",d),this.silentRefreshShowIFrame||(a.style.display="none"),this.document.body.appendChild(a)});let l=this.events.pipe(it(d=>d instanceof $t),ln()),c=this.events.pipe(it(d=>d.type==="token_received"),ln()),u=ge(new $t("silent_refresh_timeout",null)).pipe(To(this.silentRefreshTimeout));return hw([l,c,u]).pipe(Ne(d=>{if(d instanceof $t)throw d.type==="silent_refresh_timeout"?this.eventsSubject.next(d):(d=new $t("silent_refresh_error",d),this.eventsSubject.next(d)),d;return d.type==="token_received"&&(d=new Wi("silently_refreshed"),this.eventsSubject.next(d)),d})).toPromise()}initImplicitFlowInPopup(e){return this.initLoginFlowInPopup(e)}initLoginFlowInPopup(e){return e=e||{},this.createLoginUrl(null,null,this.silentRefreshRedirectUri,!1,{display:"popup"}).then(i=>new Promise((r,s)=>{let o=null;e.windowRef?e.windowRef&&!e.windowRef.closed&&(o=e.windowRef,o.location.href=i):o=window.open(i,"ngx-oauth2-oidc-login",this.calculatePopupFeatures(e));let l,c=f=>{this.tryLogin({customHashFragment:f,preventClearHashAfterLogin:!0,customRedirectUri:this.silentRefreshRedirectUri}).then(()=>{d(),r(!0)},p=>{d(),s(p)})},u=()=>{(!o||o.closed)&&(d(),s(new $t("popup_closed",{})))};o?l=window.setInterval(u,500):s(new $t("popup_blocked",{}));let d=()=>{window.clearInterval(l),window.removeEventListener("storage",m),window.removeEventListener("message",h),o!==null&&o.close(),o=null},h=f=>{let p=this.processMessageEventMessage(f);p&&p!==null?(window.removeEventListener("storage",m),c(p)):console.log("false event firing")},m=f=>{f.key==="auth_hash"&&(window.removeEventListener("message",h),c(f.newValue))};window.addEventListener("message",h),window.addEventListener("storage",m)}))}calculatePopupFeatures(e){let i=e.height||470,r=e.width||500,s=window.screenLeft+(window.outerWidth-r)/2,a=window.screenTop+(window.outerHeight-i)/2;return`location=no,toolbar=no,width=${r},height=${i},top=${a},left=${s}`}processMessageEventMessage(e){let i="#";if(this.silentRefreshMessagePrefix&&(i+=this.silentRefreshMessagePrefix),!e||!e.data||typeof e.data!="string")return;let r=e.data;if(r.startsWith(i))return"#"+r.substr(i.length)}canPerformSessionCheck(){return this.sessionChecksEnabled?this.sessionCheckIFrameUrl?this.getSessionState()?!(typeof this.document>"u"):(console.warn("sessionChecksEnabled is activated but there is no session_state"),!1):(console.warn("sessionChecksEnabled is activated but there is no sessionCheckIFrameUrl"),!1):!1}setupSessionCheckEventListener(){this.removeSessionCheckEventListener(),this.sessionCheckEventListener=e=>{let i=e.origin.toLowerCase(),r=this.issuer.toLowerCase();if(this.debug("sessionCheckEventListener"),!r.startsWith(i)){this.debug("sessionCheckEventListener","wrong origin",i,"expected",r,"event",e);return}switch(e.data){case"unchanged":this.ngZone.run(()=>{this.handleSessionUnchanged()});break;case"changed":this.ngZone.run(()=>{this.handleSessionChange()});break;case"error":this.ngZone.run(()=>{this.handleSessionError()});break}this.debug("got info from session check inframe",e)},this.ngZone.runOutsideAngular(()=>{window.addEventListener("message",this.sessionCheckEventListener)})}handleSessionUnchanged(){this.debug("session check","session unchanged"),this.eventsSubject.next(new or("session_unchanged"))}handleSessionChange(){this.eventsSubject.next(new or("session_changed")),this.stopSessionCheckTimer(),!this.useSilentRefresh&&this.responseType==="code"?this.refreshToken().then(()=>{this.debug("token refresh after session change worked")}).catch(()=>{this.debug("token refresh did not work after session changed"),this.eventsSubject.next(new or("session_terminated")),this.logOut(!0)}):this.silentRefreshRedirectUri?(this.silentRefresh().catch(()=>this.debug("silent refresh failed after session changed")),this.waitForSilentRefreshAfterSessionChange()):(this.eventsSubject.next(new or("session_terminated")),this.logOut(!0))}waitForSilentRefreshAfterSessionChange(){this.events.pipe(it(e=>e.type==="silently_refreshed"||e.type==="silent_refresh_timeout"||e.type==="silent_refresh_error"),ln()).subscribe(e=>{e.type!=="silently_refreshed"&&(this.debug("silent refresh did not work after session changed"),this.eventsSubject.next(new or("session_terminated")),this.logOut(!0))})}handleSessionError(){this.stopSessionCheckTimer(),this.eventsSubject.next(new or("session_error"))}removeSessionCheckEventListener(){this.sessionCheckEventListener&&(window.removeEventListener("message",this.sessionCheckEventListener),this.sessionCheckEventListener=null)}initSessionCheck(){if(!this.canPerformSessionCheck())return;let e=this.document.getElementById(this.sessionCheckIFrameName);e&&this.document.body.removeChild(e);let i=this.document.createElement("iframe");i.id=this.sessionCheckIFrameName,this.setupSessionCheckEventListener();let r=this.sessionCheckIFrameUrl;i.setAttribute("src",r),i.style.display="none",this.document.body.appendChild(i),this.startSessionCheckTimer()}startSessionCheckTimer(){this.stopSessionCheckTimer(),this.ngZone.runOutsideAngular(()=>{this.sessionCheckTimer=setInterval(this.checkSession.bind(this),this.sessionCheckIntervall)})}stopSessionCheckTimer(){this.sessionCheckTimer&&(clearInterval(this.sessionCheckTimer),this.sessionCheckTimer=null)}checkSession(){let e=this.document.getElementById(this.sessionCheckIFrameName);e||this.logger.warn("checkSession did not find iframe",this.sessionCheckIFrameName);let i=this.getSessionState();i||this.stopSessionCheckTimer();let r=this.clientId+" "+i;e.contentWindow.postMessage(r,this.issuer)}createLoginUrl(){return Lt(this,arguments,function*(e="",i="",r="",s=!1,a={}){let o=this,l;r?l=r:l=this.redirectUri;let c=yield this.createAndSaveNonce();if(e?e=c+this.config.nonceStateSeparator+encodeURIComponent(e):e=c,!this.requestAccessToken&&!this.oidc)throw new Error("Either requestAccessToken or oidc or both must be true");this.config.responseType?this.responseType=this.config.responseType:this.oidc&&this.requestAccessToken?this.responseType="id_token token":this.oidc&&!this.requestAccessToken?this.responseType="id_token":this.responseType="token";let u=o.loginUrl.indexOf("?")>-1?"&":"?",d=o.scope;this.oidc&&!d.match(/(^|\s)openid($|\s)/)&&(d="openid "+d);let h=o.loginUrl+u+"response_type="+encodeURIComponent(o.responseType)+"&client_id="+encodeURIComponent(o.clientId)+"&state="+encodeURIComponent(e)+"&redirect_uri="+encodeURIComponent(l)+"&scope="+encodeURIComponent(d);if(this.responseType.includes("code")&&!this.disablePKCE){let[m,f]=yield this.createChallangeVerifierPairForPKCE();this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?localStorage.setItem("PKCE_verifier",f):this._storage.setItem("PKCE_verifier",f),h+="&code_challenge="+m,h+="&code_challenge_method=S256"}i&&(h+="&login_hint="+encodeURIComponent(i)),o.resource&&(h+="&resource="+encodeURIComponent(o.resource)),o.oidc&&(h+="&nonce="+encodeURIComponent(c)),s&&(h+="&prompt=none");for(let m of Object.keys(a))h+="&"+encodeURIComponent(m)+"="+encodeURIComponent(a[m]);if(this.customQueryParams)for(let m of Object.getOwnPropertyNames(this.customQueryParams))h+="&"+m+"="+encodeURIComponent(this.customQueryParams[m]);return h})}initImplicitFlowInternal(e="",i=""){if(this.inImplicitFlow)return;if(this.inImplicitFlow=!0,!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");let r={},s=null;typeof i=="string"?s=i:typeof i=="object"&&(r=i),this.createLoginUrl(e,s,null,!1,r).then(this.config.openUri).catch(a=>{console.error("Error in initImplicitFlow",a),this.inImplicitFlow=!1})}initImplicitFlow(e="",i=""){this.loginUrl!==""?this.initImplicitFlowInternal(e,i):this.events.pipe(it(r=>r.type==="discovery_document_loaded")).subscribe(()=>this.initImplicitFlowInternal(e,i))}resetImplicitFlow(){this.inImplicitFlow=!1}callOnTokenReceivedIfExists(e){let i=this;if(e.onTokenReceived){let r={idClaims:i.getIdentityClaims(),idToken:i.getIdToken(),accessToken:i.getAccessToken(),state:i.state};e.onTokenReceived(r)}}storeAccessTokenResponse(e,i,r,s,a){if(this._storage.setItem("access_token",e),s&&!Array.isArray(s)?this._storage.setItem("granted_scopes",JSON.stringify(s.split(" "))):s&&Array.isArray(s)&&this._storage.setItem("granted_scopes",JSON.stringify(s)),this._storage.setItem("access_token_stored_at",""+this.dateTimeService.now()),r){let o=r*1e3,c=this.dateTimeService.new().getTime()+o;this._storage.setItem("expires_at",""+c)}i&&this._storage.setItem("refresh_token",i),a&&a.forEach((o,l)=>{this._storage.setItem(l,o)})}tryLogin(e=null){return this.config.responseType==="code"?this.tryLoginCodeFlow(e).then(()=>!0):this.tryLoginImplicitFlow(e)}parseQueryString(e){return!e||e.length===0?{}:(e.charAt(0)==="?"&&(e=e.substr(1)),this.urlHelper.parseQueryString(e))}tryLoginCodeFlow(e=null){return Lt(this,null,function*(){e=e||{};let i=e.customHashFragment?e.customHashFragment.substring(1):window.location.search,r=this.getCodePartsFromUrl(i),s=r.code,a=r.state,o=r.session_state;if(!e.preventClearHashAfterLogin){let u=location.origin+location.pathname+location.search.replace(/code=[^&$]*/,"").replace(/scope=[^&$]*/,"").replace(/state=[^&$]*/,"").replace(/session_state=[^&$]*/,"").replace(/^\?&/,"?").replace(/&$/,"").replace(/^\?$/,"").replace(/&+/g,"&").replace(/\?&/,"?").replace(/\?$/,"")+location.hash;history.replaceState(null,window.name,u)}let[l,c]=this.parseState(a);if(this.state=c,r.error){this.debug("error trying to login"),this.handleLoginError(e,r);let u=new $t("code_error",{},r);return this.eventsSubject.next(u),Promise.reject(u)}if(!e.disableNonceCheck){if(!l)return this.saveRequestedRoute(),Promise.resolve();if(!e.disableOAuth2StateCheck&&!this.validateNonce(l)){let d=new $t("invalid_nonce_in_state",null);return this.eventsSubject.next(d),Promise.reject(d)}}return this.storeSessionState(o),s&&(yield this.getTokenFromCode(s,e),this.restoreRequestedRoute()),Promise.resolve()})}saveRequestedRoute(){this.config.preserveRequestedRoute&&this._storage.setItem("requested_route",window.location.pathname+window.location.search)}restoreRequestedRoute(){let e=this._storage.getItem("requested_route");e&&history.replaceState(null,"",window.location.origin+e)}getCodePartsFromUrl(e){return!e||e.length===0?this.urlHelper.getHashFragmentParams():(e.charAt(0)==="?"&&(e=e.substr(1)),this.urlHelper.parseQueryString(e))}getTokenFromCode(e,i){let r=new Fo({encoder:new vo}).set("grant_type","authorization_code").set("code",e).set("redirect_uri",i.customRedirectUri||this.redirectUri);if(!this.disablePKCE){let s;this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?s=localStorage.getItem("PKCE_verifier"):s=this._storage.getItem("PKCE_verifier"),s?r=r.set("code_verifier",s):console.warn("No PKCE verifier found in oauth storage!")}return this.fetchAndProcessToken(r,i)}fetchAndProcessToken(e,i){i=i||{},this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint");let r=new zs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let s=btoa(`${this.clientId}:${this.dummyClientSecret}`);r=r.set("Authorization","Basic "+s)}return this.useHttpBasicAuth||(e=e.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(e=e.set("client_secret",this.dummyClientSecret)),new Promise((s,a)=>{if(this.customQueryParams)for(let o of Object.getOwnPropertyNames(this.customQueryParams))e=e.set(o,this.customQueryParams[o]);this.http.post(this.tokenEndpoint,e,{headers:r}).subscribe(o=>{this.debug("refresh tokenResponse",o),this.storeAccessTokenResponse(o.access_token,o.refresh_token,o.expires_in||this.fallbackAccessTokenExpirationTimeInSec,o.scope,this.extractRecognizedCustomParameters(o)),this.oidc&&o.id_token?this.processIdToken(o.id_token,o.access_token,i.disableNonceCheck).then(l=>{this.storeIdToken(l),this.eventsSubject.next(new Wi("token_received")),this.eventsSubject.next(new Wi("token_refreshed")),s(o)}).catch(l=>{this.eventsSubject.next(new $t("token_validation_error",l)),console.error("Error validating tokens"),console.error(l),a(l)}):(this.eventsSubject.next(new Wi("token_received")),this.eventsSubject.next(new Wi("token_refreshed")),s(o))},o=>{console.error("Error getting token",o),this.eventsSubject.next(new $t("token_refresh_error",o)),a(o)})})}tryLoginImplicitFlow(e=null){e=e||{};let i;e.customHashFragment?i=this.urlHelper.getHashFragmentParams(e.customHashFragment):i=this.urlHelper.getHashFragmentParams(),this.debug("parsed url",i);let r=i.state,[s,a]=this.parseState(r);if(this.state=a,i.error){this.debug("error trying to login"),this.handleLoginError(e,i);let d=new $t("token_error",{},i);return this.eventsSubject.next(d),Promise.reject(d)}let o=i.access_token,l=i.id_token,c=i.session_state,u=i.scope;if(!this.requestAccessToken&&!this.oidc)return Promise.reject("Either requestAccessToken or oidc (or both) must be true.");if(this.requestAccessToken&&!o||this.requestAccessToken&&!e.disableOAuth2StateCheck&&!r||this.oidc&&!l)return Promise.resolve(!1);if(this.sessionChecksEnabled&&!c&&this.logger.warn("session checks (Session Status Change Notification) were activated in the configuration but the id_token does not contain a session_state claim"),this.requestAccessToken&&!e.disableNonceCheck&&!this.validateNonce(s)){let h=new $t("invalid_nonce_in_state",null);return this.eventsSubject.next(h),Promise.reject(h)}return this.requestAccessToken&&this.storeAccessTokenResponse(o,null,i.expires_in||this.fallbackAccessTokenExpirationTimeInSec,u),this.oidc?this.processIdToken(l,o,e.disableNonceCheck).then(d=>e.validationHandler?e.validationHandler({accessToken:o,idClaims:d.idTokenClaims,idToken:d.idToken,state:r}).then(()=>d):d).then(d=>(this.storeIdToken(d),this.storeSessionState(c),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash(),this.eventsSubject.next(new Wi("token_received")),this.callOnTokenReceivedIfExists(e),this.inImplicitFlow=!1,!0)).catch(d=>(this.eventsSubject.next(new $t("token_validation_error",d)),this.logger.error("Error validating tokens"),this.logger.error(d),Promise.reject(d))):(this.eventsSubject.next(new Wi("token_received")),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash(),this.callOnTokenReceivedIfExists(e),Promise.resolve(!0))}parseState(e){let i=e,r="";if(e){let s=e.indexOf(this.config.nonceStateSeparator);s>-1&&(i=e.substr(0,s),r=e.substr(s+this.config.nonceStateSeparator.length))}return[i,r]}validateNonce(e){let i;return this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?i=localStorage.getItem("nonce"):i=this._storage.getItem("nonce"),i!==e?(console.error("Validating access_token failed, wrong state/nonce.",i,e),!1):!0}storeIdToken(e){this._storage.setItem("id_token",e.idToken),this._storage.setItem("id_token_claims_obj",e.idTokenClaimsJson),this._storage.setItem("id_token_expires_at",""+e.idTokenExpiresAt),this._storage.setItem("id_token_stored_at",""+this.dateTimeService.now())}storeSessionState(e){this._storage.setItem("session_state",e)}getSessionState(){return this._storage.getItem("session_state")}handleLoginError(e,i){e.onLoginError&&e.onLoginError(i),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash()}getClockSkewInMsec(e=6e5){return!this.clockSkewInSec&&this.clockSkewInSec!==0?e:this.clockSkewInSec*1e3}processIdToken(e,i,r=!1){let s=e.split("."),a=this.padBase64(s[0]),o=oO(a),l=JSON.parse(o),c=this.padBase64(s[1]),u=oO(c),d=JSON.parse(u),h;if(this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?h=localStorage.getItem("nonce"):h=this._storage.getItem("nonce"),Array.isArray(d.aud)){if(d.aud.every(w=>w!==this.clientId)){let w="Wrong audience: "+d.aud.join(",");return this.logger.warn(w),Promise.reject(w)}}else if(d.aud!==this.clientId){let w="Wrong audience: "+d.aud;return this.logger.warn(w),Promise.reject(w)}if(!d.sub){let w="No sub claim in id_token";return this.logger.warn(w),Promise.reject(w)}if(this.sessionChecksEnabled&&this.silentRefreshSubject&&this.silentRefreshSubject!==d.sub){let w=`After refreshing, we got an id_token for another user (sub). Expected sub: ${this.silentRefreshSubject}, received sub: ${d.sub}`;return this.logger.warn(w),Promise.reject(w)}if(!d.iat){let w="No iat claim in id_token";return this.logger.warn(w),Promise.reject(w)}if(!this.skipIssuerCheck&&d.iss!==this.issuer){let w="Wrong issuer: "+d.iss;return this.logger.warn(w),Promise.reject(w)}if(!r&&d.nonce!==h){let w="Wrong nonce: "+d.nonce;return this.logger.warn(w),Promise.reject(w)}if(Object.prototype.hasOwnProperty.call(this,"responseType")&&(this.responseType==="code"||this.responseType==="id_token")&&(this.disableAtHashCheck=!0),!this.disableAtHashCheck&&this.requestAccessToken&&!d.at_hash){let w="An at_hash is needed!";return this.logger.warn(w),Promise.reject(w)}let m=this.dateTimeService.now(),f=d.iat*1e3,p=d.exp*1e3,g=this.getClockSkewInMsec();if(f-g>=m||p+g-this.decreaseExpirationBySec<=m){let w="Token has expired";return console.error(w),console.error({now:m,issuedAtMSec:f,expiresAtMSec:p}),Promise.reject(w)}let y={accessToken:i,idToken:e,jwks:this.jwks,idTokenClaims:d,idTokenHeader:l,loadKeys:()=>this.loadJwks()};return this.disableAtHashCheck?this.checkSignature(y).then(()=>({idToken:e,idTokenClaims:d,idTokenClaimsJson:u,idTokenHeader:l,idTokenHeaderJson:o,idTokenExpiresAt:p})):this.checkAtHash(y).then(w=>{if(!this.disableAtHashCheck&&this.requestAccessToken&&!w){let k="Wrong at_hash";return this.logger.warn(k),Promise.reject(k)}return this.checkSignature(y).then(()=>{let k=!this.disableAtHashCheck,x={idToken:e,idTokenClaims:d,idTokenClaimsJson:u,idTokenHeader:l,idTokenHeaderJson:o,idTokenExpiresAt:p};return k?this.checkAtHash(y).then(C=>{if(this.requestAccessToken&&!C){let A="Wrong at_hash";return this.logger.warn(A),Promise.reject(A)}else return x}):x})})}getIdentityClaims(){let e=this._storage.getItem("id_token_claims_obj");return e?JSON.parse(e):null}getGrantedScopes(){let e=this._storage.getItem("granted_scopes");return e?JSON.parse(e):null}getIdToken(){return this._storage?this._storage.getItem("id_token"):null}padBase64(e){for(;e.length%4!==0;)e+="=";return e}getAccessToken(){return this._storage?this._storage.getItem("access_token"):null}getRefreshToken(){return this._storage?this._storage.getItem("refresh_token"):null}getAccessTokenExpiration(){return this._storage.getItem("expires_at")?parseInt(this._storage.getItem("expires_at"),10):null}getAccessTokenStoredAt(){return parseInt(this._storage.getItem("access_token_stored_at"),10)}getIdTokenStoredAt(){return parseInt(this._storage.getItem("id_token_stored_at"),10)}getIdTokenExpiration(){return this._storage.getItem("id_token_expires_at")?parseInt(this._storage.getItem("id_token_expires_at"),10):null}hasValidAccessToken(){if(this.getAccessToken()){let e=this._storage.getItem("expires_at"),i=this.dateTimeService.new();return!(e&&parseInt(e,10)-this.decreaseExpirationBySec=0&&this._storage.getItem(e)!==null?JSON.parse(this._storage.getItem(e)):null}authorizationHeader(){return"Bearer "+this.getAccessToken()}logOut(e={},i=""){let r=!1;typeof e=="boolean"&&(r=e,e={});let s=this.getIdToken();if(this._storage.removeItem("access_token"),this._storage.removeItem("id_token"),this._storage.removeItem("refresh_token"),this.saveNoncesInLocalStorage?(localStorage.removeItem("nonce"),localStorage.removeItem("PKCE_verifier")):(this._storage.removeItem("nonce"),this._storage.removeItem("PKCE_verifier")),this._storage.removeItem("expires_at"),this._storage.removeItem("id_token_claims_obj"),this._storage.removeItem("id_token_expires_at"),this._storage.removeItem("id_token_stored_at"),this._storage.removeItem("access_token_stored_at"),this._storage.removeItem("granted_scopes"),this._storage.removeItem("session_state"),this.config.customTokenParameters&&this.config.customTokenParameters.forEach(o=>this._storage.removeItem(o)),this.silentRefreshSubject=null,this.eventsSubject.next(new or("logout")),!this.logoutUrl||r)return;let a;if(!this.validateUrlForHttps(this.logoutUrl))throw new Error("logoutUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");if(this.logoutUrl.indexOf("{{")>-1)a=this.logoutUrl.replace(/\{\{id_token\}\}/,encodeURIComponent(s)).replace(/\{\{client_id\}\}/,encodeURIComponent(this.clientId));else{let o=new Fo({encoder:new vo});s&&(o=o.set("id_token_hint",s));let l=this.postLogoutRedirectUri||this.redirectUriAsPostLogoutRedirectUriFallback&&this.redirectUri||"";l&&(o=o.set("post_logout_redirect_uri",l),i&&(o=o.set("state",i)));for(let c in e)o=o.set(c,e[c]);a=this.logoutUrl+(this.logoutUrl.indexOf("?")>-1?"&":"?")+o.toString()}this.config.openUri(a)}createAndSaveNonce(){let e=this;return this.createNonce().then(function(i){return e.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?localStorage.setItem("nonce",i):e._storage.setItem("nonce",i),i})}ngOnDestroy(){this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.removeSilentRefreshEventListener();let e=this.document.getElementById(this.silentRefreshIFrameName);e&&e.remove(),this.stopSessionCheckTimer(),this.removeSessionCheckEventListener();let i=this.document.getElementById(this.sessionCheckIFrameName);i&&i.remove()}createNonce(){return new Promise(e=>{if(this.rngUrl)throw new Error("createNonce with rng-web-api has not been implemented so far");let i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=45,s="",a=typeof self>"u"?null:self.crypto||self.msCrypto;if(a){let o=new Uint8Array(r);a.getRandomValues(o),o.map||(o.map=Array.prototype.map),o=o.map(l=>i.charCodeAt(l%i.length)),s=String.fromCharCode.apply(null,o)}else for(;0r.type==="discovery_document_loaded")).subscribe(()=>this.initCodeFlowInternal(e,i))}initCodeFlowInternal(e="",i={}){if(!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");let r={},s=null;typeof i=="string"?s=i:typeof i=="object"&&(r=i),this.createLoginUrl(e,s,null,!1,r).then(this.config.openUri).catch(a=>{console.error("Error in initAuthorizationCodeFlow"),console.error(a)})}createChallangeVerifierPairForPKCE(){return Lt(this,null,function*(){if(!this.crypto)throw new Error("PKCE support for code flow needs a CryptoHander. Did you import the OAuthModule using forRoot() ?");let e=yield this.createNonce(),i=yield this.crypto.calcHash(e,"sha-256");return[lO(i),e]})}extractRecognizedCustomParameters(e){let i=new Map;return this.config.customTokenParameters&&this.config.customTokenParameters.forEach(r=>{e[r]&&i.set(r,JSON.stringify(e[r]))}),i}revokeTokenAndLogout(e={},i=!1){let r=this.revocationEndpoint,s=this.getAccessToken(),a=this.getRefreshToken();if(!s)return Promise.resolve();let o=new Fo({encoder:new vo}),l=new zs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let c=btoa(`${this.clientId}:${this.dummyClientSecret}`);l=l.set("Authorization","Basic "+c)}if(this.useHttpBasicAuth||(o=o.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(o=o.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let c of Object.getOwnPropertyNames(this.customQueryParams))o=o.set(c,this.customQueryParams[c]);return new Promise((c,u)=>{let d,h;if(s){let m=o.set("token",s).set("token_type_hint","access_token");d=this.http.post(r,m,{headers:l})}else d=ge(null);if(a){let m=o.set("token",a).set("token_type_hint","refresh_token");h=this.http.post(r,m,{headers:l})}else h=ge(null);i&&(d=d.pipe(Ai(m=>m.status===0?ge(null):qn(m))),h=h.pipe(Ai(m=>m.status===0?ge(null):qn(m)))),hr([d,h]).subscribe(m=>{this.logOut(e),c(m),this.logger.info("Token successfully revoked")},m=>{this.logger.error("Error revoking token",m),this.eventsSubject.next(new $t("token_revoke_error",m)),u(m)})})}clearLocationHash(){location.hash!=""&&(location.hash="")}static{this.\u0275fac=function(i){return new(i||n)(Re(De),Re(yr),Re(A0,8),Re(I0,8),Re(fc,8),Re(cO),Re(E0),Re(D0,8),Re(Ze),Re(Qd))}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})(),R0=class{},DC=class{handleError(t){return qn(t)}},Rq=(()=>{class n{constructor(e,i,r){this.oAuthService=e,this.errorHandler=i,this.moduleConfig=r}checkUrl(e){return this.moduleConfig.resourceServer.customUrlValidation?this.moduleConfig.resourceServer.customUrlValidation(e):this.moduleConfig.resourceServer.allowedUrls?!!this.moduleConfig.resourceServer.allowedUrls.find(i=>e.toLowerCase().startsWith(i.toLowerCase())):!0}intercept(e,i){let r=e.url.toLowerCase();return!this.moduleConfig||!this.moduleConfig.resourceServer||!this.checkUrl(r)?i.handle(e):this.moduleConfig.resourceServer.sendAccessToken?Kt(ge(this.oAuthService.getAccessToken()).pipe(it(a=>!!a)),this.oAuthService.events.pipe(it(a=>a.type==="token_received"),dw(this.oAuthService.waitForTokenInMsec||0),Ai(()=>ge(null)),Ne(()=>this.oAuthService.getAccessToken()))).pipe(Vt(1),yi(a=>{if(a){let o="Bearer "+a,l=e.headers.set("Authorization",o);e=e.clone({headers:l})}return i.handle(e).pipe(Ai(o=>this.errorHandler.handleError(o)))})):i.handle(e).pipe(Ai(a=>this.errorHandler.handleError(a)))}static{this.\u0275fac=function(i){return new(i||n)(Re(dO),Re(R0),Re(T0,8))}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})();function Lq(){return console}function Oq(){return typeof sessionStorage<"u"?sessionStorage:new kq}function Nq(n=null,t=M0){return Sa([dO,cO,{provide:E0,useFactory:Lq},{provide:A0,useFactory:Oq},{provide:I0,useClass:t},{provide:D0,useClass:Dq},{provide:R0,useClass:DC},{provide:T0,useValue:n},{provide:Zw,useClass:Rq,multi:!0},{provide:Qd,useClass:Sq}])}var hO=(()=>{class n{static forRoot(e=null,i=M0){return{ngModule:n,providers:[Nq(e,i)]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=he({type:n})}static{this.\u0275inj=de({imports:[Jr]})}}return n})();var tme=new J("AUTH_CONFIG");function mO(n){return new Be(3e3,!1)}function Fq(){return new Be(3100,!1)}function Pq(){return new Be(3101,!1)}function Uq(n){return new Be(3001,!1)}function $q(n){return new Be(3003,!1)}function Vq(n){return new Be(3004,!1)}function pO(n,t){return new Be(3005,!1)}function gO(){return new Be(3006,!1)}function _O(){return new Be(3007,!1)}function bO(n,t){return new Be(3008,!1)}function vO(n){return new Be(3002,!1)}function yO(n,t,e,i,r){return new Be(3010,!1)}function CO(){return new Be(3011,!1)}function wO(){return new Be(3012,!1)}function xO(){return new Be(3200,!1)}function SO(){return new Be(3202,!1)}function kO(){return new Be(3013,!1)}function MO(n){return new Be(3014,!1)}function TO(n){return new Be(3015,!1)}function EO(n){return new Be(3016,!1)}function AO(n,t){return new Be(3404,!1)}function Bq(n){return new Be(3502,!1)}function IO(n){return new Be(3503,!1)}function DO(){return new Be(3300,!1)}function RO(n){return new Be(3504,!1)}function LO(n){return new Be(3301,!1)}function OO(n,t){return new Be(3302,!1)}function NO(n){return new Be(3303,!1)}function FO(n,t){return new Be(3400,!1)}function PO(n){return new Be(3401,!1)}function UO(n){return new Be(3402,!1)}function $O(n,t){return new Be(3505,!1)}function Ls(n){switch(n.length){case 0:return new Kr;case 1:return n[0];default:return new bo(n)}}function NC(n,t,e=new Map,i=new Map){let r=[],s=[],a=-1,o=null;if(t.forEach(l=>{let c=l.get("offset"),u=c==a,d=u&&o||new Map;l.forEach((h,m)=>{let f=m,p=h;if(m!=="offset")switch(f=n.normalizePropertyName(f,r),p){case cc:p=e.get(m);break;case jn:p=i.get(m);break;default:p=n.normalizeStyleValue(m,f,p,r);break}d.set(f,p)}),u||s.push(d),o=d,a=c}),r.length)throw Bq(r);return s}function L0(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&RC(e,"start",n)));break;case"done":n.onDone(()=>i(e&&RC(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&RC(e,"destroy",n)));break}}function RC(n,t,e){let i=e.totalTime,r=!!e.disabled,s=O0(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,i??n.totalTime,r),a=n._data;return a!=null&&(s._data=a),s}function O0(n,t,e,i,r="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:s,disabled:!!a}}function rn(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function FC(n){let t=n.indexOf(":"),e=n.substring(1,t),i=n.slice(t+1);return[e,i]}var zq=typeof document>"u"?null:document.documentElement;function N0(n){let t=n.parentNode||n.host||null;return t===zq?null:t}function Hq(n){return n.substring(1,6)=="ebkit"}var yo=null,fO=!1;function VO(n){yo||(yo=jq()||{},fO=yo.style?"WebkitAppearance"in yo.style:!1);let t=!0;return yo.style&&!Hq(n)&&(t=n in yo.style,!t&&fO&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in yo.style)),t}function jq(){return typeof document<"u"?document.body:null}function PC(n,t){for(;t;){if(t===n)return!0;t=N0(t)}return!1}function UC(n,t,e){if(e)return Array.from(n.querySelectorAll(t));let i=n.querySelector(t);return i?[i]:[]}var Wq=1e3,$C="{{",qq="}}",VC="ng-enter",F0="ng-leave",Xd="ng-trigger",Jd=".ng-trigger",BC="ng-animating",P0=".ng-animating";function Yr(n){if(typeof n=="number")return n;let t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:LC(parseFloat(t[1]),t[2])}function LC(n,t){switch(t){case"s":return n*Wq;default:return n}}function eh(n,t,e){return n.hasOwnProperty("duration")?n:Gq(n,t,e)}function Gq(n,t,e){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,r,s=0,a="";if(typeof n=="string"){let o=n.match(i);if(o===null)return t.push(mO(n)),{duration:0,delay:0,easing:""};r=LC(parseFloat(o[1]),o[2]);let l=o[3];l!=null&&(s=LC(parseFloat(l),o[4]));let c=o[5];c&&(a=c)}else r=n;if(!e){let o=!1,l=t.length;r<0&&(t.push(Fq()),o=!0),s<0&&(t.push(Pq()),o=!0),o&&t.splice(l,0,mO(n))}return{duration:r,delay:s,easing:a}}function BO(n){return n.length?n[0]instanceof Map?n:n.map(t=>new Map(Object.entries(t))):[]}function lr(n,t,e){t.forEach((i,r)=>{let s=U0(r);e&&!e.has(r)&&e.set(r,n.style[s]),n.style[s]=i})}function wa(n,t){t.forEach((e,i)=>{let r=U0(i);n.style[r]=""})}function pc(n){return Array.isArray(n)?n.length==1?n[0]:LL(n):n}function zO(n,t,e){let i=t.params||{},r=zC(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||e.push(Uq(s))})}var OC=new RegExp(`${$C}\\s*(.+?)\\s*${qq}`,"g");function zC(n){let t=[];if(typeof n=="string"){let e;for(;e=OC.exec(n);)t.push(e[1]);OC.lastIndex=0}return t}function gc(n,t,e){let i=`${n}`,r=i.replace(OC,(s,a)=>{let o=t[a];return o==null&&(e.push($q(a)),o=""),o.toString()});return r==i?n:r}var Kq=/-+([a-z0-9])/g;function U0(n){return n.replace(Kq,(...t)=>t[1].toUpperCase())}function HO(n,t){return n===0||t===0}function jO(n,t,e){if(e.size&&t.length){let i=t[0],r=[];if(e.forEach((s,a)=>{i.has(a)||r.push(a),i.set(a,s)}),r.length)for(let s=1;sa.set(o,$0(n,o)))}}return t}function sn(n,t,e){switch(t.type){case Ke.Trigger:return n.visitTrigger(t,e);case Ke.State:return n.visitState(t,e);case Ke.Transition:return n.visitTransition(t,e);case Ke.Sequence:return n.visitSequence(t,e);case Ke.Group:return n.visitGroup(t,e);case Ke.Animate:return n.visitAnimate(t,e);case Ke.Keyframes:return n.visitKeyframes(t,e);case Ke.Style:return n.visitStyle(t,e);case Ke.Reference:return n.visitReference(t,e);case Ke.AnimateChild:return n.visitAnimateChild(t,e);case Ke.AnimateRef:return n.visitAnimateRef(t,e);case Ke.Query:return n.visitQuery(t,e);case Ke.Stagger:return n.visitStagger(t,e);default:throw Vq(t.type)}}function $0(n,t){return window.getComputedStyle(n)[t]}var sw=(()=>{class n{validateStyleProperty(e){return VO(e)}containsElement(e,i){return PC(e,i)}getParentElement(e){return N0(e)}query(e,i,r){return UC(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,s,a,o=[],l){return new Kr(r,s)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),wo=class{static NOOP=new sw},xo=class{};var Yq=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),j0=class extends xo{normalizePropertyName(t,e){return U0(t)}normalizeStyleValue(t,e,i,r){let s="",a=i.toString().trim();if(Yq.has(e)&&i!==0&&i!=="0")if(typeof i=="number")s="px";else{let o=i.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&o[1].length==0&&r.push(pO(t,i))}return a+s}};var W0="*";function Qq(n,t){let e=[];return typeof n=="string"?n.split(/\s*,\s*/).forEach(i=>Zq(i,e,t)):e.push(n),e}function Zq(n,t,e){if(n[0]==":"){let l=Xq(n,e);if(typeof l=="function"){t.push(l);return}n=l}let i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return e.push(TO(n)),t;let r=i[1],s=i[2],a=i[3];t.push(WO(r,a));let o=r==W0&&a==W0;s[0]=="<"&&!o&&t.push(WO(a,r))}function Xq(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}var V0=new Set(["true","1"]),B0=new Set(["false","0"]);function WO(n,t){let e=V0.has(n)||B0.has(n),i=V0.has(t)||B0.has(t);return(r,s)=>{let a=n==W0||n==r,o=t==W0||t==s;return!a&&e&&typeof r=="boolean"&&(a=r?V0.has(n):B0.has(n)),!o&&i&&typeof s=="boolean"&&(o=s?V0.has(t):B0.has(t)),a&&o}}var tN=":self",Jq=new RegExp(`s*${tN}s*,?`,"g");function iN(n,t,e,i){return new KC(n).build(t,e,i)}var qO="",KC=class{_driver;constructor(t){this._driver=t}build(t,e,i){let r=new YC(e);return this._resetContextStyleTimingState(r),sn(this,pc(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector=qO,t.collectedStyles=new Map,t.collectedStyles.set(qO,new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0,s=[],a=[];return t.name.charAt(0)=="@"&&e.errors.push(gO()),t.definitions.forEach(o=>{if(this._resetContextStyleTimingState(e),o.type==Ke.State){let l=o,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,s.push(this.visitState(l,e))}),l.name=c}else if(o.type==Ke.Transition){let l=this.visitTransition(o,e);i+=l.queryCount,r+=l.depCount,a.push(l)}else e.errors.push(_O())}),{type:Ke.Trigger,name:t.name,states:s,transitions:a,queryCount:i,depCount:r,options:null}}visitState(t,e){let i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){let s=new Set,a=r||{};i.styles.forEach(o=>{o instanceof Map&&o.forEach(l=>{zC(l).forEach(c=>{a.hasOwnProperty(c)||s.add(c)})})}),s.size&&e.errors.push(bO(t.name,[...s.values()]))}return{type:Ke.State,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;let i=sn(this,pc(t.animation),e),r=Qq(t.expr,e.errors);return{type:Ke.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Co(t.options)}}visitSequence(t,e){return{type:Ke.Sequence,steps:t.steps.map(i=>sn(this,i,e)),options:Co(t.options)}}visitGroup(t,e){let i=e.currentTime,r=0,s=t.steps.map(a=>{e.currentTime=i;let o=sn(this,a,e);return r=Math.max(r,e.currentTime),o});return e.currentTime=r,{type:Ke.Group,steps:s,options:Co(t.options)}}visitAnimate(t,e){let i=nG(t.timings,e.errors);e.currentAnimateTimings=i;let r,s=t.styles?t.styles:Ca({});if(s.type==Ke.Keyframes)r=this.visitKeyframes(s,e);else{let a=t.styles,o=!1;if(!a){o=!0;let c={};i.easing&&(c.easing=i.easing),a=Ca(c)}e.currentTime+=i.duration+i.delay;let l=this.visitStyle(a,e);l.isEmptyStep=o,r=l}return e.currentAnimateTimings=null,{type:Ke.Animate,timings:i,style:r,options:null}}visitStyle(t,e){let i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){let i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let o of r)typeof o=="string"?o===jn?i.push(o):e.errors.push(vO(o)):i.push(new Map(Object.entries(o)));let s=!1,a=null;return i.forEach(o=>{if(o instanceof Map&&(o.has("easing")&&(a=o.get("easing"),o.delete("easing")),!s)){for(let l of o.values())if(l.toString().indexOf($C)>=0){s=!0;break}}}),{type:Ke.Style,styles:i,easing:a,offset:t.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(t,e){let i=e.currentAnimateTimings,r=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{typeof a!="string"&&a.forEach((o,l)=>{let c=e.collectedStyles.get(e.currentQuerySelector),u=c.get(l),d=!0;u&&(s!=r&&s>=u.startTime&&r<=u.endTime&&(e.errors.push(yO(l,u.startTime,u.endTime,s,r)),d=!1),s=u.startTime),d&&c.set(l,{startTime:s,endTime:r}),e.options&&zO(o,e.options,e.errors)})})}visitKeyframes(t,e){let i={type:Ke.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(CO()),i;let r=1,s=0,a=[],o=!1,l=!1,c=0,u=t.steps.map(y=>{let w=this._makeStyleAst(y,e),k=w.offset!=null?w.offset:iG(w.styles),x=0;return k!=null&&(s++,x=w.offset=k),l=l||x<0||x>1,o=o||x0&&s{let k=h>0?w==m?1:h*w:a[w],x=k*g;e.currentTime=f+p.delay+x,p.duration=x,this._validateStyleAst(y,e),y.offset=k,i.styles.push(y)}),i}visitReference(t,e){return{type:Ke.Reference,animation:sn(this,pc(t.animation),e),options:Co(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:Ke.AnimateChild,options:Co(t.options)}}visitAnimateRef(t,e){return{type:Ke.AnimateRef,animation:this.visitReference(t.animation,e),options:Co(t.options)}}visitQuery(t,e){let i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;let[s,a]=eG(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,rn(e.collectedStyles,e.currentQuerySelector,new Map);let o=sn(this,pc(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Ke.Query,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:a,animation:o,originalSelector:t.selector,options:Co(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(kO());let i=t.timings==="full"?{duration:0,delay:0,easing:"full"}:eh(t.timings,e.errors,!0);return{type:Ke.Stagger,animation:sn(this,pc(t.animation),e),timings:i,options:null}}};function eG(n){let t=!!n.split(/\s*,\s*/).find(e=>e==tN);return t&&(n=n.replace(Jq,"")),n=n.replace(/@\*/g,Jd).replace(/@\w+/g,e=>Jd+"-"+e.slice(1)).replace(/:animating/g,P0),[n,t]}function tG(n){return n?H({},n):null}var YC=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(t){this.errors=t}};function iG(n){if(typeof n=="string")return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){let i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){let e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}function nG(n,t){if(n.hasOwnProperty("duration"))return n;if(typeof n=="number"){let s=eh(n,t).duration;return HC(s,0,"")}let e=n;if(e.split(/\s+/).some(s=>s.charAt(0)=="{"&&s.charAt(1)=="{")){let s=HC(0,0,"");return s.dynamic=!0,s.strValue=e,s}let r=eh(e,t);return HC(r.duration,r.delay,r.easing)}function Co(n){return n?(n=H({},n),n.params&&(n.params=tG(n.params))):n={},n}function HC(n,t,e){return{duration:n,delay:t,easing:e}}function aw(n,t,e,i,r,s,a=null,o=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:a,subTimeline:o}}var ih=class{_map=new Map;get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}},rG=1,sG=":enter",aG=new RegExp(sG,"g"),oG=":leave",lG=new RegExp(oG,"g");function nN(n,t,e,i,r,s=new Map,a=new Map,o,l,c=[]){return new QC().buildKeyframes(n,t,e,i,r,s,a,o,l,c)}var QC=class{buildKeyframes(t,e,i,r,s,a,o,l,c,u=[]){c=c||new ih;let d=new ZC(t,e,c,r,s,u,[]);d.options=l;let h=l.delay?Yr(l.delay):0;d.currentTimeline.delayNextStep(h),d.currentTimeline.setStyles([a],null,d.errors,l),sn(this,i,d);let m=d.timelines.filter(f=>f.containsAnimation());if(m.length&&o.size){let f;for(let p=m.length-1;p>=0;p--){let g=m[p];if(g.element===e){f=g;break}}f&&!f.allowOnlyTimelineStyles()&&f.setStyles([o],null,d.errors,l)}return m.length?m.map(f=>f.buildKeyframes()):[aw(e,[],[],[],0,h,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){let i=e.subInstructions.get(e.element);if(i){let r=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,r,r.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){let i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(let r of t){let s=r?.delay;if(s){let a=typeof s=="number"?s:Yr(gc(s,r?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime,a=i.duration!=null?Yr(i.duration):null,o=i.delay!=null?Yr(i.delay):null;return a!==0&&t.forEach(l=>{let c=e.appendInstructionToTimeline(l,a,o);s=Math.max(s,c.duration+c.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),sn(this,t.animation,e),e.previousNode=t}visitSequence(t,e){let i=e.subContextCount,r=e,s=t.options;if(s&&(s.params||s.delay)&&(r=e.createSubContext(s),r.transformIntoNewTimeline(),s.delay!=null)){r.previousNode.type==Ke.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=q0);let a=Yr(s.delay);r.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>sn(this,a,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){let i=[],r=e.currentTimeline.currentTime,s=t.options&&t.options.delay?Yr(t.options.delay):0;t.steps.forEach(a=>{let o=e.createSubContext(t.options);s&&o.delayNextStep(s),sn(this,a,o),r=Math.max(r,o.currentTimeline.currentTime),i.push(o.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){let i=t.strValue,r=e.params?gc(i,e.params,e.errors):i;return eh(r,e.errors)}else return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){let i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());let s=t.style;s.type==Ke.Keyframes?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){let i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();let s=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){let i=e.currentAnimateTimings,r=e.currentTimeline.duration,s=i.duration,o=e.createSubContext().currentTimeline;o.easing=i.easing,t.styles.forEach(l=>{let c=l.offset||0;o.forwardTime(c*s),o.setStyles(l.styles,l.easing,e.errors,e.options),o.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(o),e.transformIntoNewTimeline(r+s),e.previousNode=t}visitQuery(t,e){let i=e.currentTimeline.currentTime,r=t.options||{},s=r.delay?Yr(r.delay):0;s&&(e.previousNode.type===Ke.Style||i==0&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=q0);let a=i,o=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=o.length;let l=null;o.forEach((c,u)=>{e.currentQueryIndex=u;let d=e.createSubContext(t.options,c);s&&d.delayNextStep(s),c===e.element&&(l=d.currentTimeline),sn(this,t.animation,d),d.currentTimeline.applyStylesToKeyframe();let h=d.currentTimeline.currentTime;a=Math.max(a,h)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){let i=e.parentContext,r=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),o=a*(e.currentQueryTotal-1),l=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":l=o-l;break;case"full":l=i.currentStaggerTime;break}let u=e.currentTimeline;l&&u.delayNextStep(l);let d=u.currentTime;sn(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-d+(r.startTime-i.currentTimeline.startTime)}},q0={},ZC=class n{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=q0;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(t,e,i,r,s,a,o,l){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=a,this.timelines=o,this.currentTimeline=l||new G0(this._driver,e,0),o.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;let i=t,r=this.options;i.duration!=null&&(r.duration=Yr(i.duration)),i.delay!=null&&(r.delay=Yr(i.delay));let s=i.params;if(s){let a=r.params;a||(a=this.options.params={}),Object.keys(s).forEach(o=>{(!e||!a.hasOwnProperty(o))&&(a[o]=gc(s[o],a,this.errors))})}}_copyOptions(){let t={};if(this.options){let e=this.options.params;if(e){let i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){let r=e||this.element,s=new n(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=q0,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){let r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new XC(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,s,a){let o=[];if(r&&o.push(this.element),t.length>0){t=t.replace(aG,"."+this._enterClassName),t=t.replace(lG,"."+this._leaveClassName);let l=i!=1,c=this._driver.query(this.element,t,l);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),o.push(...c)}return!s&&o.length==0&&a.push(MO(e)),o}},G0=class n{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){let e=this._keyframes.size===1&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new n(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=rG,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||jn),this._currentKeyframe.set(e,jn);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);let s=r&&r.params||{},a=cG(t,this._globalTimelineStyles);for(let[o,l]of a){let c=gc(l,s,i);this._pendingStyles.set(o,c),this._localTimelineStyles.has(o)||this._backFill.set(o,this._globalTimelineStyles.get(o)??jn),this._updateStyle(o,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{let r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();let t=new Set,e=new Set,i=this._keyframes.size===1&&this.duration===0,r=[];this._keyframes.forEach((o,l)=>{let c=new Map([...this._backFill,...o]);c.forEach((u,d)=>{u===cc?t.add(d):u===jn&&e.add(d)}),i||c.set("offset",l/this.duration),r.push(c)});let s=[...t.values()],a=[...e.values()];if(i){let o=r[0],l=new Map(o);o.set("offset",0),l.set("offset",1),r=[o,l]}return aw(this.element,r,s,a,this.duration,this.startTime,this.easing,!1)}},XC=class extends G0{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(t,e,i,r,s,a,o=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=o,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){let s=[],a=i+e,o=e/a,l=new Map(t[0]);l.set("offset",0),s.push(l);let c=new Map(t[0]);c.set("offset",GO(o)),s.push(c);let u=t.length-1;for(let d=1;d<=u;d++){let h=new Map(t[d]),m=h.get("offset"),f=e+m*i;h.set("offset",GO(f/a)),s.push(h)}i=a,e=0,r="",t=s}return aw(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}};function GO(n,t=3){let e=Math.pow(10,t-1);return Math.round(n*e)/e}function cG(n,t){let e=new Map,i;return n.forEach(r=>{if(r==="*"){i??=t.keys();for(let s of i)e.set(s,jn)}else for(let[s,a]of r)e.set(s,a)}),e}function KO(n,t,e,i,r,s,a,o,l,c,u,d,h){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:o,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:d,errors:h}}var jC={},K0=class{_triggerName;ast;_stateStyles;constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return uG(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return t!==void 0&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,s,a,o,l,c,u){let d=[],h=this.ast.options&&this.ast.options.params||jC,m=o&&o.params||jC,f=this.buildStyles(i,m,d),p=l&&l.params||jC,g=this.buildStyles(r,p,d),y=new Set,w=new Map,k=new Map,x=r==="void",C={params:rN(p,h),delay:this.ast.options?.delay},A=u?[]:nN(t,e,this.ast.animation,s,a,f,g,C,c,d),T=0;return A.forEach(E=>{T=Math.max(E.duration+E.delay,T)}),d.length?KO(e,this._triggerName,i,r,x,f,g,[],[],w,k,T,d):(A.forEach(E=>{let L=E.element,S=rn(w,L,new Set);E.preStyleProps.forEach(_=>S.add(_));let v=rn(k,L,new Set);E.postStyleProps.forEach(_=>v.add(_)),L!==e&&y.add(L)}),KO(e,this._triggerName,i,r,x,f,g,A,[...y.values()],w,k,T))}};function uG(n,t,e,i,r){return n.some(s=>s(t,e,i,r))}function rN(n,t){let e=H({},t);return Object.entries(n).forEach(([i,r])=>{r!=null&&(e[i]=r)}),e}var JC=class{styles;defaultParams;normalizer;constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){let i=new Map,r=rN(t,this.defaultParams);return this.styles.styles.forEach(s=>{typeof s!="string"&&s.forEach((a,o)=>{a&&(a=gc(a,r,e));let l=this.normalizer.normalizePropertyName(o,e);a=this.normalizer.normalizeStyleValue(o,l,a,e),i.set(o,a)})}),i}};function dG(n,t,e){return new ew(n,t,e)}var ew=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,e.states.forEach(r=>{let s=r.options&&r.options.params||{};this.states.set(r.name,new JC(r.style,s,i))}),YO(this.states,"true","1"),YO(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new K0(t,r,this.states))}),this.fallbackTransition=hG(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(a=>a.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}};function hG(n,t,e){let i=[(a,o)=>!0],r={type:Ke.Sequence,steps:[],options:null},s={type:Ke.Transition,animation:r,matchers:i,options:null,queryCount:0,depCount:0};return new K0(n,s,t)}function YO(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}var mG=new ih,tw=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i}register(t,e){let i=[],r=[],s=iN(this._driver,e,i,r);if(i.length)throw IO(i);this._animations.set(t,s)}_buildPlayer(t,e,i){let r=t.element,s=NC(this._normalizer,t.keyframes,e,i);return this._driver.animate(r,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){let r=[],s=this._animations.get(t),a,o=new Map;if(s?(a=nN(this._driver,e,s,VC,F0,new Map,new Map,i,mG,r),a.forEach(u=>{let d=rn(o,u.element,new Map);u.postStyleProps.forEach(h=>d.set(h,null))})):(r.push(DO()),a=[]),r.length)throw RO(r);o.forEach((u,d)=>{u.forEach((h,m)=>{u.set(m,this._driver.computeStyle(d,m,jn))})});let l=a.map(u=>{let d=o.get(u.element);return this._buildPlayer(u,new Map,d)}),c=Ls(l);return this._playersById.set(t,c),c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){let e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);let i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){let e=this._playersById.get(t);if(!e)throw LO(t);return e}listen(t,e,i,r){let s=O0(e,"","","");return L0(this._getPlayer(t),i,s,r),()=>{}}command(t,e,i,r){if(i=="register"){this.register(t,r[0]);return}if(i=="create"){let a=r[0]||{};this.create(t,e,a);return}let s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t);break}}},QO="ng-animate-queued",fG=".ng-animate-queued",WC="ng-animate-disabled",pG=".ng-animate-disabled",gG="ng-star-inserted",_G=".ng-star-inserted",bG=[],sN={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},vG={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},cr="__ng_removed",nh=class{namespaceId;value;options;get params(){return this.options.params}constructor(t,e=""){this.namespaceId=e;let i=t&&t.hasOwnProperty("value"),r=i?t.value:t;if(this.value=CG(r),i){let s=t,{value:a}=s,o=lw(s,["value"]);this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){let e=t.params;if(e){let i=this.options.params;Object.keys(e).forEach(r=>{i[r]==null&&(i[r]=e[r])})}}},th="void",qC=new nh(th),iw=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+t,Wn(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw OO(i,e);if(i==null||i.length==0)throw NO(e);if(!wG(i))throw FO(i,e);let s=rn(this._elementListeners,t,[]),a={name:e,phase:i,callback:r};s.push(a);let o=rn(this._engine.statesByElement,t,new Map);return o.has(e)||(Wn(t,Xd),Wn(t,Xd+"-"+e),o.set(e,qC)),()=>{this._engine.afterFlush(()=>{let l=s.indexOf(a);l>=0&&s.splice(l,1),this._triggers.has(e)||o.delete(e)})}}register(t,e){return this._triggers.has(t)?!1:(this._triggers.set(t,e),!0)}_getTrigger(t){let e=this._triggers.get(t);if(!e)throw PO(t);return e}trigger(t,e,i,r=!0){let s=this._getTrigger(e),a=new rh(this.id,e,t),o=this._engine.statesByElement.get(t);o||(Wn(t,Xd),Wn(t,Xd+"-"+e),this._engine.statesByElement.set(t,o=new Map));let l=o.get(e),c=new nh(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),o.set(e,c),l||(l=qC),!(c.value===th)&&l.value===c.value){if(!kG(l.params,c.params)){let p=[],g=s.matchStyles(l.value,l.params,p),y=s.matchStyles(c.value,c.params,p);p.length?this._engine.reportError(p):this._engine.afterFlush(()=>{wa(t,g),lr(t,y)})}return}let h=rn(this._engine.playersByElement,t,[]);h.forEach(p=>{p.namespaceId==this.id&&p.triggerName==e&&p.queued&&p.destroy()});let m=s.matchTransition(l.value,c.value,t,c.params),f=!1;if(!m){if(!r)return;m=s.fallbackTransition,f=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:m,fromState:l,toState:c,player:a,isFallbackTransition:f}),f||(Wn(t,QO),a.onStart(()=>{_c(t,QO)})),a.onDone(()=>{let p=this.players.indexOf(a);p>=0&&this.players.splice(p,1);let g=this._engine.playersByElement.get(t);if(g){let y=g.indexOf(a);y>=0&&g.splice(y,1)}}),this.players.push(a),h.push(a),a}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);let e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){let i=this._engine.driver.query(t,Jd,!0);i.forEach(r=>{if(r[cr])return;let s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(a=>a.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){let s=this._engine.statesByElement.get(t),a=new Map;if(s){let o=[];if(s.forEach((l,c)=>{if(a.set(c,l.value),this._triggers.has(c)){let u=this.trigger(t,c,th,r);u&&o.push(u)}}),o.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&Ls(o).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){let e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){let r=new Set;e.forEach(s=>{let a=s.name;if(r.has(a))return;r.add(a);let l=this._triggers.get(a).fallbackTransition,c=i.get(a)||qC,u=new nh(th),d=new rh(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:l,fromState:c,toState:u,player:d,isFallbackTransition:!0})})}}removeNode(t,e){let i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){let s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)r=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{let s=t[cr];(!s||s===sN)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Wn(t,this._hostClassName)}drainQueuedTransitions(t){let e=[];return this._queue.forEach(i=>{let r=i.player;if(r.destroyed)return;let s=i.element,a=this._elementListeners.get(s);a&&a.forEach(o=>{if(o.name==i.triggerName){let l=O0(s,i.triggerName,i.fromState.value,i.toState.value);l._data=t,L0(i.player,o.phase,l,o.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{let s=i.transition.ast.depCount,a=r.transition.ast.depCount;return s==0||a==0?s-a:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}},nw=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(t,e)=>{};_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i}get queuedPlayers(){let t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){let i=new iw(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){let i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,o=this.driver.getParentElement(e);for(;o;){let l=r.get(o);if(l){let c=i.indexOf(l);i.splice(c+1,0,t),a=!0;break}o=this.driver.getParentElement(o)}a||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);let r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){let e=new Set,i=this.statesByElement.get(t);if(i){for(let r of i.values())if(r.namespaceId){let s=this._fetchNamespace(r.namespaceId);s&&e.add(s)}}return e}trigger(t,e,i,r){if(z0(e)){let s=this._fetchNamespace(t);if(s)return s.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!z0(e))return;let s=e[cr];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;let a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(t){let a=this._fetchNamespace(t);a&&a.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Wn(t,WC)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),_c(t,WC))}removeNode(t,e,i){if(z0(e)){let r=t?this._fetchNamespace(t):null;r?r.removeNode(e,i):this.markElementAsRemoved(t,e,!1,i);let s=this.namespacesByHostElement.get(e);s&&s.id!==t&&s.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(t,e,i,r,s){this.collectedLeaveElements.push(e),e[cr]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,r,s){return z0(e)?this._fetchNamespace(t).listen(e,i,r,s):()=>{}}_buildInstruction(t,e,i,r,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,Jd,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(e=this.driver.query(t,P0,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){let e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){let e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return Ls(this.players).onDone(()=>t());t()})}processLeaveNode(t){let e=t[cr];if(e&&e.setForRemoval){if(t[cr]=sN,e.namespaceId){this.destroyInnerAnimations(t);let i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(WC)&&this.markElementAsDisabled(t,!1),this.driver.query(t,pG,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],e.length?Ls(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw UO(t)}_flushAnimations(t,e){let i=new ih,r=[],s=new Map,a=[],o=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(D=>{u.add(D);let O=this.driver.query(D,fG,!0);for(let N=0;N{let N=VC+p++;f.set(O,N),D.forEach(F=>Wn(F,N))});let g=[],y=new Set,w=new Set;for(let D=0;Dy.add(F)):w.add(O))}let k=new Map,x=JO(h,Array.from(y));x.forEach((D,O)=>{let N=F0+p++;k.set(O,N),D.forEach(F=>Wn(F,N))}),t.push(()=>{m.forEach((D,O)=>{let N=f.get(O);D.forEach(F=>_c(F,N))}),x.forEach((D,O)=>{let N=k.get(O);D.forEach(F=>_c(F,N))}),g.forEach(D=>{this.processLeaveNode(D)})});let C=[],A=[];for(let D=this._namespaceList.length-1;D>=0;D--)this._namespaceList[D].drainQueuedTransitions(e).forEach(N=>{let F=N.player,z=N.element;if(C.push(F),this.collectedEnterElements.length){let ie=z[cr];if(ie&&ie.setForMove){if(ie.previousTriggersValues&&ie.previousTriggersValues.has(N.triggerName)){let ne=ie.previousTriggersValues.get(N.triggerName),Ee=this.statesByElement.get(N.element);if(Ee&&Ee.has(N.triggerName)){let we=Ee.get(N.triggerName);we.value=ne,Ee.set(N.triggerName,we)}}F.destroy();return}}let V=!d||!this.driver.containsElement(d,z),K=k.get(z),W=f.get(z),q=this._buildInstruction(N,i,W,K,V);if(q.errors&&q.errors.length){A.push(q);return}if(V){F.onStart(()=>wa(z,q.fromStyles)),F.onDestroy(()=>lr(z,q.toStyles)),r.push(F);return}if(N.isFallbackTransition){F.onStart(()=>wa(z,q.fromStyles)),F.onDestroy(()=>lr(z,q.toStyles)),r.push(F);return}let ae=[];q.timelines.forEach(ie=>{ie.stretchStartingKeyframe=!0,this.disabledNodes.has(ie.element)||ae.push(ie)}),q.timelines=ae,i.append(z,q.timelines);let pe={instruction:q,player:F,element:z};a.push(pe),q.queriedElements.forEach(ie=>rn(o,ie,[]).push(F)),q.preStyleProps.forEach((ie,ne)=>{if(ie.size){let Ee=l.get(ne);Ee||l.set(ne,Ee=new Set),ie.forEach((we,qe)=>Ee.add(qe))}}),q.postStyleProps.forEach((ie,ne)=>{let Ee=c.get(ne);Ee||c.set(ne,Ee=new Set),ie.forEach((we,qe)=>Ee.add(qe))})});if(A.length){let D=[];A.forEach(O=>{D.push($O(O.triggerName,O.errors))}),C.forEach(O=>O.destroy()),this.reportError(D)}let T=new Map,E=new Map;a.forEach(D=>{let O=D.element;i.has(O)&&(E.set(O,O),this._beforeAnimationBuild(D.player.namespaceId,D.instruction,T))}),r.forEach(D=>{let O=D.element;this._getPreviousPlayers(O,!1,D.namespaceId,D.triggerName,null).forEach(F=>{rn(T,O,[]).push(F),F.destroy()})});let L=g.filter(D=>eN(D,l,c)),S=new Map;XO(S,this.driver,w,c,jn).forEach(D=>{eN(D,l,c)&&L.push(D)});let _=new Map;m.forEach((D,O)=>{XO(_,this.driver,new Set(D),l,cc)}),L.forEach(D=>{let O=S.get(D),N=_.get(D);S.set(D,new Map([...O?.entries()??[],...N?.entries()??[]]))});let b=[],M=[],I={};a.forEach(D=>{let{element:O,player:N,instruction:F}=D;if(i.has(O)){if(u.has(O)){N.onDestroy(()=>lr(O,F.toStyles)),N.disabled=!0,N.overrideTotalTime(F.totalTime),r.push(N);return}let z=I;if(E.size>1){let K=O,W=[];for(;K=K.parentNode;){let q=E.get(K);if(q){z=q;break}W.push(K)}W.forEach(q=>E.set(q,z))}let V=this._buildAnimation(N.namespaceId,F,T,s,_,S);if(N.setRealPlayer(V),z===I)b.push(N);else{let K=this.playersByElement.get(z);K&&K.length&&(N.parentPlayer=Ls(K)),r.push(N)}}else wa(O,F.fromStyles),N.onDestroy(()=>lr(O,F.toStyles)),M.push(N),u.has(O)&&r.push(N)}),M.forEach(D=>{let O=s.get(D.element);if(O&&O.length){let N=Ls(O);D.setRealPlayer(N)}}),r.forEach(D=>{D.parentPlayer?D.syncPlayerEvents(D.parentPlayer):D.destroy()});for(let D=0;D!V.destroyed);z.length?xG(this,O,z):this.processLeaveNode(O)}return g.length=0,b.forEach(D=>{this.players.push(D),D.onDone(()=>{D.destroy();let O=this.players.indexOf(D);this.players.splice(O,1)}),D.play()}),b}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,s){let a=[];if(e){let o=this.playersByQueriedElement.get(t);o&&(a=o)}else{let o=this.playersByElement.get(t);if(o){let l=!s||s==th;o.forEach(c=>{c.queued||!l&&c.triggerName!=r||a.push(c)})}}return(i||r)&&(a=a.filter(o=>!(i&&i!=o.namespaceId||r&&r!=o.triggerName))),a}_beforeAnimationBuild(t,e,i){let r=e.triggerName,s=e.element,a=e.isRemovalTransition?void 0:t,o=e.isRemovalTransition?void 0:r;for(let l of e.timelines){let c=l.element,u=c!==s,d=rn(i,c,[]);this._getPreviousPlayers(c,u,a,o,e.toState).forEach(m=>{let f=m.getRealPlayer();f.beforeDestroy&&f.beforeDestroy(),m.destroy(),d.push(m)})}wa(s,e.fromStyles)}_buildAnimation(t,e,i,r,s,a){let o=e.triggerName,l=e.element,c=[],u=new Set,d=new Set,h=e.timelines.map(f=>{let p=f.element;u.add(p);let g=p[cr];if(g&&g.removedBeforeQueried)return new Kr(f.duration,f.delay);let y=p!==l,w=SG((i.get(p)||bG).map(T=>T.getRealPlayer())).filter(T=>{let E=T;return E.element?E.element===p:!1}),k=s.get(p),x=a.get(p),C=NC(this._normalizer,f.keyframes,k,x),A=this._buildPlayer(f,C,w);if(f.subTimeline&&r&&d.add(p),y){let T=new rh(t,o,p);T.setRealPlayer(A),c.push(T)}return A});c.forEach(f=>{rn(this.playersByQueriedElement,f.element,[]).push(f),f.onDone(()=>yG(this.playersByQueriedElement,f.element,f))}),u.forEach(f=>Wn(f,BC));let m=Ls(h);return m.onDestroy(()=>{u.forEach(f=>_c(f,BC)),lr(l,e.toStyles)}),d.forEach(f=>{rn(r,f,[]).push(m)}),m}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new Kr(t.duration,t.delay)}},rh=class{namespaceId;triggerName;element;_player=new Kr;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>L0(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){let e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){rn(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){let e=this._player;e.triggerCallback&&e.triggerCallback(t)}};function yG(n,t,e){let i=n.get(t);if(i){if(i.length){let r=i.indexOf(e);i.splice(r,1)}i.length==0&&n.delete(t)}return i}function CG(n){return n??null}function z0(n){return n&&n.nodeType===1}function wG(n){return n=="start"||n=="done"}function ZO(n,t){let e=n.style.display;return n.style.display=t??"none",e}function XO(n,t,e,i,r){let s=[];e.forEach(l=>s.push(ZO(l)));let a=[];i.forEach((l,c)=>{let u=new Map;l.forEach(d=>{let h=t.computeStyle(c,d,r);u.set(d,h),(!h||h.length==0)&&(c[cr]=vG,a.push(c))}),n.set(c,u)});let o=0;return e.forEach(l=>ZO(l,s[o++])),a}function JO(n,t){let e=new Map;if(n.forEach(o=>e.set(o,[])),t.length==0)return e;let i=1,r=new Set(t),s=new Map;function a(o){if(!o)return i;let l=s.get(o);if(l)return l;let c=o.parentNode;return e.has(c)?l=c:r.has(c)?l=i:l=a(c),s.set(o,l),l}return t.forEach(o=>{let l=a(o);l!==i&&e.get(l).push(o)}),e}function Wn(n,t){n.classList?.add(t)}function _c(n,t){n.classList?.remove(t)}function xG(n,t,e){Ls(e).onDone(()=>n.processLeaveNode(t))}function SG(n){let t=[];return aN(n,t),t}function aN(n,t){for(let e=0;er.add(s)):t.set(n,i),e.delete(n),!0}var bc=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(t,e)=>{};constructor(t,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new nw(t.body,e,i),this._timelineEngine=new tw(t.body,e,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(t,e,i,r,s){let a=t+"-"+r,o=this._triggerCache[a];if(!o){let l=[],c=[],u=iN(this._driver,s,l,c);if(l.length)throw AO(r,l);o=dG(r,u,this._normalizer),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(e,r,o)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i){this._transitionEngine.removeNode(t,e,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if(i.charAt(0)=="@"){let[s,a]=FC(i),o=r;this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,s){if(i.charAt(0)=="@"){let[a,o]=FC(i);return this._timelineEngine.listen(a,e,o,s)}return this._transitionEngine.listen(t,e,i,r,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}};function MG(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=GC(t[0]),t.length>1&&(i=GC(t[t.length-1]))):t instanceof Map&&(e=GC(t)),e||i?new TG(n,e,i):null}var TG=(()=>{class n{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&lr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(lr(this._element,this._initialStyles),this._endStyles&&(lr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(wa(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wa(this._element,this._endStyles),this._endStyles=null),lr(this._element,this._initialStyles),this._state=3)}}return n})();function GC(n){let t=null;return n.forEach((e,i)=>{EG(i)&&(t=t||new Map,t.set(i,e))}),t}function EG(n){return n==="display"||n==="position"}var Y0=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(t,e,i,r){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=r,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map;let e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){let e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{r!=="offset"&&t.set(r,this._finished?i:$0(this.element,r))}),this.currentSnapshot=t}triggerCallback(t){let e=t==="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Q0=class{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}containsElement(t,e){return PC(t,e)}getParentElement(t){return N0(t)}query(t,e,i){return UC(t,e,i)}computeStyle(t,e,i){return $0(t,e)}animate(t,e,i,r,s,a=[]){let o=r==0?"both":"forwards",l={duration:i,delay:r,fill:o};s&&(l.easing=s);let c=new Map,u=a.filter(m=>m instanceof Y0);HO(i,r)&&u.forEach(m=>{m.currentSnapshot.forEach((f,p)=>c.set(p,f))});let d=BO(e).map(m=>new Map(m));d=jO(t,d,c);let h=MG(t,d);return new Y0(t,d,l,h)}};var H0="@",oN="@.disabled",Z0=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.parentNode(e)&&this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){e.charAt(0)==H0&&e==oN?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i,r){return this.delegate.listen(t,e,i,r)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}},rw=class extends Z0{factory;constructor(t,e,i,r,s){super(e,i,r,s),this.factory=t,this.namespaceId=e}setProperty(t,e,i){e.charAt(0)==H0?e.charAt(1)=="."&&e==oN?(i=i===void 0?!0:!!i,this.disableAnimations(t,i)):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i,r){if(e.charAt(0)==H0){let s=AG(t),a=e.slice(1),o="";return a.charAt(0)!=H0&&([a,o]=IG(a)),this.engine.listen(this.namespaceId,s,a,o,l=>{let c=l._data||-1;this.factory.scheduleListenerCallback(c,i,l)})}return this.delegate.listen(t,e,i,r)}};function AG(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}function IG(n){let t=n.indexOf("."),e=n.substring(0,t),i=n.slice(t+1);return[e,i]}var X0=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,e.onRemovalComplete=(r,s)=>{s?.removeChild(null,r)}}createRenderer(t,e){let i="",r=this.delegate.createRenderer(t,e);if(!t||!e?.data?.animation){let c=this._rendererCache,u=c.get(r);if(!u){let d=()=>c.delete(r);u=new Z0(i,r,this.engine,d),c.set(r,u)}return u}let s=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,t);let o=c=>{Array.isArray(c)?c.forEach(o):this.engine.registerTrigger(s,a,t,c.name,c)};return e.data.animation.forEach(o),new rw(this,a,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){if(t>=0&&te(i));return}let r=this._animationCallbacksBuffer;r.length==0&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(s=>{let[a,o]=s;a(o)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(t){this.engine.flush(),this.delegate.componentReplaced?.(t)}};var RG=(()=>{class n extends bc{constructor(e,i,r){super(e,i,r)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||n)(Re(Ze),Re(wo),Re(xo))};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function LG(){return new j0}function OG(n,t,e){return new X0(n,t,e)}var cN=[{provide:xo,useFactory:LG},{provide:bc,useClass:RG},{provide:Ri,useFactory:OG,deps:[Yw,bc,De]}],NG=[{provide:wo,useClass:sw},{provide:ot,useValue:"NoopAnimations"},...cN],lN=[{provide:wo,useFactory:()=>new Q0},{provide:ot,useFactory:()=>"BrowserAnimations"},...cN],uN=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?NG:lN}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:lN,imports:[kc]})}return n})();var FG=[{path:"",component:KM},{path:"mappinglanguage",component:mf},{path:"CapabilityStatement",component:xM},{path:"igs",component:aR},{path:"settings",component:PT},{path:"transform",component:uR},{path:"validate",component:aO}];function PG(n){return new sS(n,"./assets/i18n/",".json")}var dN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=he({type:n,bootstrap:[qk]})}static{this.\u0275inj=de({providers:[rS({loader:{provide:ns,useFactory:PG,deps:[yr]}}),{provide:tx,useValue:{coreLibraryLoader:()=>import("./chunk-DOW4KWQY.js"),lineNumbersLoader:()=>import("./chunk-DEDHGZJT.js"),languages:{json:()=>import("./chunk-SQRREDYF.js"),xml:()=>import("./chunk-DY3RCVMQ.js")}}},Xw(Jw()),am,{provide:zw,useValue:window.MATCHBOX_BASE_PATH}],imports:[xE,nx,zg.forRoot(FG,{useHash:!1}),hO.forRoot(),oR,uN,PL.forRoot(),vM.forRoot()]})}}return n})();var hN={production:!0};hN.production&&void 0;Qw().bootstrapModule(dN).catch(n=>console.log(n)); diff --git a/matchbox-server/src/main/resources/static/browser/polyfills-B6TNHZQ6.js b/matchbox-server/src/main/resources/static/browser/polyfills-B6TNHZQ6.js new file mode 100644 index 00000000000..9590af50946 --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/polyfills-B6TNHZQ6.js @@ -0,0 +1,2 @@ +var ce=globalThis;function te(t){return(ce.__Zone_symbol_prefix||"__zone_symbol__")+t}function ht(){let t=ce.performance;function n(I){t&&t.mark&&t.mark(I)}function a(I,s){t&&t.measure&&t.measure(I,s)}n("Zone");class e{static __symbol__=te;static assertZonePatched(){if(ce.Promise!==S.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let s=e.current;for(;s.parent;)s=s.parent;return s}static get current(){return b.zone}static get currentTask(){return D}static __load_patch(s,i,r=!1){if(S.hasOwnProperty(s)){let E=ce[te("forceDuplicateZoneCheck")]===!0;if(!r&&E)throw Error("Already loaded patch: "+s)}else if(!ce["__Zone_disable_"+s]){let E="Zone:"+s;n(E),S[s]=i(ce,e,R),a(E,E)}}get parent(){return this._parent}get name(){return this._name}_parent;_name;_properties;_zoneDelegate;constructor(s,i){this._parent=s,this._name=i?i.name||"unnamed":"",this._properties=i&&i.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,i)}get(s){let i=this.getZoneWith(s);if(i)return i._properties[s]}getZoneWith(s){let i=this;for(;i;){if(i._properties.hasOwnProperty(s))return i;i=i._parent}return null}fork(s){if(!s)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,s)}wrap(s,i){if(typeof s!="function")throw new Error("Expecting function got: "+s);let r=this._zoneDelegate.intercept(this,s,i),E=this;return function(){return E.runGuarded(r,this,arguments,i)}}run(s,i,r,E){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,s,i,r,E)}finally{b=b.parent}}runGuarded(s,i=null,r,E){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,s,i,r,E)}catch(x){if(this._zoneDelegate.handleError(this,x))throw x}}finally{b=b.parent}}runTask(s,i,r){if(s.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");let E=s,{type:x,data:{isPeriodic:ee=!1,isRefreshable:M=!1}={}}=s;if(s.state===q&&(x===U||x===k))return;let he=s.state!=A;he&&E._transitionTo(A,d);let _e=D;D=E,b={parent:b,zone:this};try{x==k&&s.data&&!ee&&!M&&(s.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,E,i,r)}catch(Q){if(this._zoneDelegate.handleError(this,Q))throw Q}}finally{let Q=s.state;if(Q!==q&&Q!==X)if(x==U||ee||M&&Q===p)he&&E._transitionTo(d,A,p);else{let Te=E._zoneDelegates;this._updateTaskCount(E,-1),he&&E._transitionTo(q,A,q),M&&(E._zoneDelegates=Te)}b=b.parent,D=_e}}scheduleTask(s){if(s.zone&&s.zone!==this){let r=this;for(;r;){if(r===s.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${s.zone.name}`);r=r.parent}}s._transitionTo(p,q);let i=[];s._zoneDelegates=i,s._zone=this;try{s=this._zoneDelegate.scheduleTask(this,s)}catch(r){throw s._transitionTo(X,p,q),this._zoneDelegate.handleError(this,r),r}return s._zoneDelegates===i&&this._updateTaskCount(s,1),s.state==p&&s._transitionTo(d,p),s}scheduleMicroTask(s,i,r,E){return this.scheduleTask(new g(F,s,i,r,E,void 0))}scheduleMacroTask(s,i,r,E,x){return this.scheduleTask(new g(k,s,i,r,E,x))}scheduleEventTask(s,i,r,E,x){return this.scheduleTask(new g(U,s,i,r,E,x))}cancelTask(s){if(s.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");if(!(s.state!==d&&s.state!==A)){s._transitionTo(V,d,A);try{this._zoneDelegate.cancelTask(this,s)}catch(i){throw s._transitionTo(X,V),this._zoneDelegate.handleError(this,i),i}return this._updateTaskCount(s,-1),s._transitionTo(q,V),s.runCount=-1,s}}_updateTaskCount(s,i){let r=s._zoneDelegates;i==-1&&(s._zoneDelegates=null);for(let E=0;EI.hasTask(i,r),onScheduleTask:(I,s,i,r)=>I.scheduleTask(i,r),onInvokeTask:(I,s,i,r,E,x)=>I.invokeTask(i,r,E,x),onCancelTask:(I,s,i,r)=>I.cancelTask(i,r)};class f{get zone(){return this._zone}_zone;_taskCounts={microTask:0,macroTask:0,eventTask:0};_parentDelegate;_forkDlgt;_forkZS;_forkCurrZone;_interceptDlgt;_interceptZS;_interceptCurrZone;_invokeDlgt;_invokeZS;_invokeCurrZone;_handleErrorDlgt;_handleErrorZS;_handleErrorCurrZone;_scheduleTaskDlgt;_scheduleTaskZS;_scheduleTaskCurrZone;_invokeTaskDlgt;_invokeTaskZS;_invokeTaskCurrZone;_cancelTaskDlgt;_cancelTaskZS;_cancelTaskCurrZone;_hasTaskDlgt;_hasTaskDlgtOwner;_hasTaskZS;_hasTaskCurrZone;constructor(s,i,r){this._zone=s,this._parentDelegate=i,this._forkZS=r&&(r&&r.onFork?r:i._forkZS),this._forkDlgt=r&&(r.onFork?i:i._forkDlgt),this._forkCurrZone=r&&(r.onFork?this._zone:i._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:i._interceptZS),this._interceptDlgt=r&&(r.onIntercept?i:i._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this._zone:i._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:i._invokeZS),this._invokeDlgt=r&&(r.onInvoke?i:i._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this._zone:i._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:i._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?i:i._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this._zone:i._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:i._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?i:i._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this._zone:i._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:i._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?i:i._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this._zone:i._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:i._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?i:i._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this._zone:i._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;let E=r&&r.onHasTask,x=i&&i._hasTaskZS;(E||x)&&(this._hasTaskZS=E?r:c,this._hasTaskDlgt=i,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,r.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=i,this._scheduleTaskCurrZone=this._zone),r.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=i,this._invokeTaskCurrZone=this._zone),r.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=i,this._cancelTaskCurrZone=this._zone))}fork(s,i){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,s,i):new e(s,i)}intercept(s,i,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,s,i,r):i}invoke(s,i,r,E,x){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,s,i,r,E,x):i.apply(r,E)}handleError(s,i){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,s,i):!0}scheduleTask(s,i){let r=i;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,s,i),r||(r=i);else if(i.scheduleFn)i.scheduleFn(i);else if(i.type==F)z(i);else throw new Error("Task is missing scheduleFn.");return r}invokeTask(s,i,r,E){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,s,i,r,E):i.callback.apply(r,E)}cancelTask(s,i){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,s,i);else{if(!i.cancelFn)throw Error("Task is not cancelable");r=i.cancelFn(i)}return r}hasTask(s,i){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,s,i)}catch(r){this.handleError(s,r)}}_updateTaskCount(s,i){let r=this._taskCounts,E=r[s],x=r[s]=E+i;if(x<0)throw new Error("More tasks executed then were scheduled.");if(E==0||x==0){let ee={microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:s};this.hasTask(this._zone,ee)}}}class g{type;source;invoke;callback;data;scheduleFn;cancelFn;_zone=null;runCount=0;_zoneDelegates=null;_state="notScheduled";constructor(s,i,r,E,x,ee){if(this.type=s,this.source=i,this.data=E,this.scheduleFn=x,this.cancelFn=ee,!r)throw new Error("callback is not defined");this.callback=r;let M=this;s===U&&E&&E.useG?this.invoke=g.invokeTask:this.invoke=function(){return g.invokeTask.call(ce,M,this,arguments)}}static invokeTask(s,i,r){s||(s=this),K++;try{return s.runCount++,s.zone.runTask(s,i,r)}finally{K==1&&$(),K--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(q,p)}_transitionTo(s,i,r){if(this._state===i||this._state===r)this._state=s,s==q&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${s}', expecting state '${i}'${r?" or '"+r+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}let T=te("setTimeout"),y=te("Promise"),w=te("then"),_=[],P=!1,L;function H(I){if(L||ce[y]&&(L=ce[y].resolve(0)),L){let s=L[w];s||(s=L.then),s.call(L,I)}else ce[T](I,0)}function z(I){K===0&&_.length===0&&H($),I&&_.push(I)}function $(){if(!P){for(P=!0;_.length;){let I=_;_=[];for(let s=0;sb,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:z,showUncaughtError:()=>!e[te("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:H},b={parent:null,zone:new e(null,null)},D=null,K=0;function W(){}return a("Zone","Zone"),e}function dt(){let t=globalThis,n=t[te("forceDuplicateZoneCheck")]===!0;if(t.Zone&&(n||typeof t.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return t.Zone??=ht(),t.Zone}var pe=Object.getOwnPropertyDescriptor,Me=Object.defineProperty,Ae=Object.getPrototypeOf,_t=Object.create,Tt=Array.prototype.slice,je="addEventListener",He="removeEventListener",Ne=te(je),Ze=te(He),ae="true",le="false",ve=te("");function Ve(t,n){return Zone.current.wrap(t,n)}function xe(t,n,a,e,c){return Zone.current.scheduleMacroTask(t,n,a,e,c)}var j=te,we=typeof window<"u",be=we?window:void 0,Y=we&&be||globalThis,Et="removeAttribute";function Fe(t,n){for(let a=t.length-1;a>=0;a--)typeof t[a]=="function"&&(t[a]=Ve(t[a],n+"_"+a));return t}function gt(t,n){let a=t.constructor.name;for(let e=0;e{let y=function(){return T.apply(this,Fe(arguments,a+"."+c))};return fe(y,T),y})(f)}}}function et(t){return t?t.writable===!1?!1:!(typeof t.get=="function"&&typeof t.set>"u"):!0}var tt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,De=!("nw"in Y)&&typeof Y.process<"u"&&Y.process.toString()==="[object process]",Ge=!De&&!tt&&!!(we&&be.HTMLElement),nt=typeof Y.process<"u"&&Y.process.toString()==="[object process]"&&!tt&&!!(we&&be.HTMLElement),Ce={},kt=j("enable_beforeunload"),Xe=function(t){if(t=t||Y.event,!t)return;let n=Ce[t.type];n||(n=Ce[t.type]=j("ON_PROPERTY"+t.type));let a=this||t.target||Y,e=a[n],c;if(Ge&&a===be&&t.type==="error"){let f=t;c=e&&e.call(this,f.message,f.filename,f.lineno,f.colno,f.error),c===!0&&t.preventDefault()}else c=e&&e.apply(this,arguments),t.type==="beforeunload"&&Y[kt]&&typeof c=="string"?t.returnValue=c:c!=null&&!c&&t.preventDefault();return c};function Ye(t,n,a){let e=pe(t,n);if(!e&&a&&pe(a,n)&&(e={enumerable:!0,configurable:!0}),!e||!e.configurable)return;let c=j("on"+n+"patched");if(t.hasOwnProperty(c)&&t[c])return;delete e.writable,delete e.value;let f=e.get,g=e.set,T=n.slice(2),y=Ce[T];y||(y=Ce[T]=j("ON_PROPERTY"+T)),e.set=function(w){let _=this;if(!_&&t===Y&&(_=Y),!_)return;typeof _[y]=="function"&&_.removeEventListener(T,Xe),g?.call(_,null),_[y]=w,typeof w=="function"&&_.addEventListener(T,Xe,!1)},e.get=function(){let w=this;if(!w&&t===Y&&(w=Y),!w)return null;let _=w[y];if(_)return _;if(f){let P=f.call(this);if(P)return e.set.call(this,P),typeof w[Et]=="function"&&w.removeAttribute(n),P}return null},Me(t,n,e),t[c]=!0}function rt(t,n,a){if(n)for(let e=0;efunction(g,T){let y=a(g,T);return y.cbIdx>=0&&typeof T[y.cbIdx]=="function"?xe(y.name,T[y.cbIdx],y,c):f.apply(g,T)})}function fe(t,n){t[j("OriginalDelegate")]=n}var $e=!1,Le=!1;function yt(){if($e)return Le;$e=!0;try{let t=be.navigator.userAgent;(t.indexOf("MSIE ")!==-1||t.indexOf("Trident/")!==-1||t.indexOf("Edge/")!==-1)&&(Le=!0)}catch{}return Le}function Je(t){return typeof t=="function"}function Ke(t){return typeof t=="number"}var pt={useG:!0},ne={},ot={},st=new RegExp("^"+ve+"(\\w+)(true|false)$"),it=j("propagationStopped");function ct(t,n){let a=(n?n(t):t)+le,e=(n?n(t):t)+ae,c=ve+a,f=ve+e;ne[t]={},ne[t][le]=c,ne[t][ae]=f}function vt(t,n,a,e){let c=e&&e.add||je,f=e&&e.rm||He,g=e&&e.listeners||"eventListeners",T=e&&e.rmAll||"removeAllListeners",y=j(c),w="."+c+":",_="prependListener",P="."+_+":",L=function(p,d,A){if(p.isRemoved)return;let V=p.callback;typeof V=="object"&&V.handleEvent&&(p.callback=k=>V.handleEvent(k),p.originalDelegate=V);let X;try{p.invoke(p,d,[A])}catch(k){X=k}let F=p.options;if(F&&typeof F=="object"&&F.once){let k=p.originalDelegate?p.originalDelegate:p.callback;d[f].call(d,A.type,k,F)}return X};function H(p,d,A){if(d=d||t.event,!d)return;let V=p||d.target||t,X=V[ne[d.type][A?ae:le]];if(X){let F=[];if(X.length===1){let k=L(X[0],V,d);k&&F.push(k)}else{let k=X.slice();for(let U=0;U{throw U})}}}let z=function(p){return H(this,p,!1)},$=function(p){return H(this,p,!0)};function J(p,d){if(!p)return!1;let A=!0;d&&d.useG!==void 0&&(A=d.useG);let V=d&&d.vh,X=!0;d&&d.chkDup!==void 0&&(X=d.chkDup);let F=!1;d&&d.rt!==void 0&&(F=d.rt);let k=p;for(;k&&!k.hasOwnProperty(c);)k=Ae(k);if(!k&&p[c]&&(k=p),!k||k[y])return!1;let U=d&&d.eventNameToString,S={},R=k[y]=k[c],b=k[j(f)]=k[f],D=k[j(g)]=k[g],K=k[j(T)]=k[T],W;d&&d.prepend&&(W=k[j(d.prepend)]=k[d.prepend]);function I(o,u){return u?typeof o=="boolean"?{capture:o,passive:!0}:o?typeof o=="object"&&o.passive!==!1?{...o,passive:!0}:o:{passive:!0}:o}let s=function(o){if(!S.isExisting)return R.call(S.target,S.eventName,S.capture?$:z,S.options)},i=function(o){if(!o.isRemoved){let u=ne[o.eventName],v;u&&(v=u[o.capture?ae:le]);let C=v&&o.target[v];if(C){for(let m=0;mre.zone.cancelTask(re);o.call(Ee,"abort",ie,{once:!0}),re.removeAbortListener=()=>Ee.removeEventListener("abort",ie)}if(S.target=null,me&&(me.taskData=null),Be&&(S.options.once=!0),typeof re.options!="boolean"&&(re.options=se),re.target=N,re.capture=Se,re.eventName=Z,B&&(re.originalDelegate=G),O?ge.unshift(re):ge.push(re),m)return N}};return k[c]=l(R,w,ee,M,F),W&&(k[_]=l(W,P,E,M,F,!0)),k[f]=function(){let o=this||t,u=arguments[0];d&&d.transferEventName&&(u=d.transferEventName(u));let v=arguments[2],C=v?typeof v=="boolean"?!0:v.capture:!1,m=arguments[1];if(!m)return b.apply(this,arguments);if(V&&!V(b,m,o,arguments))return;let O=ne[u],N;O&&(N=O[C?ae:le]);let Z=N&&o[N];if(Z)for(let G=0;Gfunction(c,f){c[it]=!0,e&&e.apply(c,f)})}function Pt(t,n){n.patchMethod(t,"queueMicrotask",a=>function(e,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}var Re=j("zoneTask");function ke(t,n,a,e){let c=null,f=null;n+=e,a+=e;let g={};function T(w){let _=w.data;_.args[0]=function(){return w.invoke.apply(this,arguments)};let P=c.apply(t,_.args);return Ke(P)?_.handleId=P:(_.handle=P,_.isRefreshable=Je(P.refresh)),w}function y(w){let{handle:_,handleId:P}=w.data;return f.call(t,_??P)}c=ue(t,n,w=>function(_,P){if(Je(P[0])){let L={isRefreshable:!1,isPeriodic:e==="Interval",delay:e==="Timeout"||e==="Interval"?P[1]||0:void 0,args:P},H=P[0];P[0]=function(){try{return H.apply(this,arguments)}finally{let{handle:A,handleId:V,isPeriodic:X,isRefreshable:F}=L;!X&&!F&&(V?delete g[V]:A&&(A[Re]=null))}};let z=xe(n,P[0],L,T,y);if(!z)return z;let{handleId:$,handle:J,isRefreshable:q,isPeriodic:p}=z.data;if($)g[$]=z;else if(J&&(J[Re]=z,q&&!p)){let d=J.refresh;J.refresh=function(){let{zone:A,state:V}=z;return V==="notScheduled"?(z._state="scheduled",A._updateTaskCount(z,1)):V==="running"&&(z._state="scheduling"),d.call(this)}}return J??$??z}else return w.apply(t,P)}),f=ue(t,a,w=>function(_,P){let L=P[0],H;Ke(L)?(H=g[L],delete g[L]):(H=L?.[Re],H?L[Re]=null:H=L),H?.type?H.cancelFn&&H.zone.cancelTask(H):w.apply(t,P)})}function Rt(t,n){let{isBrowser:a,isMix:e}=n.getGlobalObjects();if(!a&&!e||!t.customElements||!("customElements"in t))return;let c=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];n.patchCallbacks(n,t.customElements,"customElements","define",c)}function Ct(t,n){if(Zone[n.symbol("patchEventTarget")])return;let{eventNames:a,zoneSymbolEventNames:e,TRUE_STR:c,FALSE_STR:f,ZONE_SYMBOL_PREFIX:g}=n.getGlobalObjects();for(let y=0;yf.target===t);if(e.length===0)return n;let c=e[0].ignoreProperties;return n.filter(f=>c.indexOf(f)===-1)}function Qe(t,n,a,e){if(!t)return;let c=lt(t,n,a);rt(t,c,e)}function Ie(t){return Object.getOwnPropertyNames(t).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}function Dt(t,n){if(De&&!nt||Zone[t.symbol("patchEvents")])return;let a=n.__Zone_ignore_on_properties,e=[];if(Ge){let c=window;e=e.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);let f=[];Qe(c,Ie(c),a&&a.concat(f),Ae(c))}e=e.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{let a=n[t.__symbol__("legacyPatch")];a&&a()}),t.__load_patch("timers",n=>{let a="set",e="clear";ke(n,a,e,"Timeout"),ke(n,a,e,"Interval"),ke(n,a,e,"Immediate")}),t.__load_patch("requestAnimationFrame",n=>{ke(n,"request","cancel","AnimationFrame"),ke(n,"mozRequest","mozCancel","AnimationFrame"),ke(n,"webkitRequest","webkitCancel","AnimationFrame")}),t.__load_patch("blocking",(n,a)=>{let e=["alert","prompt","confirm"];for(let c=0;cfunction(w,_){return a.current.run(g,n,_,y)})}}),t.__load_patch("EventTarget",(n,a,e)=>{wt(n,e),Ct(n,e);let c=n.XMLHttpRequestEventTarget;c&&c.prototype&&e.patchEventTarget(n,e,[c.prototype])}),t.__load_patch("MutationObserver",(n,a,e)=>{ye("MutationObserver"),ye("WebKitMutationObserver")}),t.__load_patch("IntersectionObserver",(n,a,e)=>{ye("IntersectionObserver")}),t.__load_patch("FileReader",(n,a,e)=>{ye("FileReader")}),t.__load_patch("on_property",(n,a,e)=>{Dt(e,n)}),t.__load_patch("customElements",(n,a,e)=>{Rt(n,e)}),t.__load_patch("XHR",(n,a)=>{w(n);let e=j("xhrTask"),c=j("xhrSync"),f=j("xhrListener"),g=j("xhrScheduled"),T=j("xhrURL"),y=j("xhrErrorBeforeScheduled");function w(_){let P=_.XMLHttpRequest;if(!P)return;let L=P.prototype;function H(R){return R[e]}let z=L[Ne],$=L[Ze];if(!z){let R=_.XMLHttpRequestEventTarget;if(R){let b=R.prototype;z=b[Ne],$=b[Ze]}}let J="readystatechange",q="scheduled";function p(R){let b=R.data,D=b.target;D[g]=!1,D[y]=!1;let K=D[f];z||(z=D[Ne],$=D[Ze]),K&&$.call(D,J,K);let W=D[f]=()=>{if(D.readyState===D.DONE)if(!b.aborted&&D[g]&&R.state===q){let s=D[a.__symbol__("loadfalse")];if(D.status!==0&&s&&s.length>0){let i=R.invoke;R.invoke=function(){let r=D[a.__symbol__("loadfalse")];for(let E=0;Efunction(R,b){return R[c]=b[2]==!1,R[T]=b[1],V.apply(R,b)}),X="XMLHttpRequest.send",F=j("fetchTaskAborting"),k=j("fetchTaskScheduling"),U=ue(L,"send",()=>function(R,b){if(a.current[k]===!0||R[c])return U.apply(R,b);{let D={target:R,url:R[T],isPeriodic:!1,args:b,aborted:!1},K=xe(X,d,D,p,A);R&&R[y]===!0&&!D.aborted&&K.state===q&&K.invoke()}}),S=ue(L,"abort",()=>function(R,b){let D=H(R);if(D&&typeof D.type=="string"){if(D.cancelFn==null||D.data&&D.data.aborted)return;D.zone.cancelTask(D)}else if(a.current[F]===!0)return S.apply(R,b)})}}),t.__load_patch("geolocation",n=>{n.navigator&&n.navigator.geolocation&>(n.navigator.geolocation,["getCurrentPosition","watchPosition"])}),t.__load_patch("PromiseRejectionEvent",(n,a)=>{function e(c){return function(f){at(n,c).forEach(T=>{let y=n.PromiseRejectionEvent;if(y){let w=new y(c,{promise:f.promise,reason:f.rejection});T.invoke(w)}})}}n.PromiseRejectionEvent&&(a[j("unhandledPromiseRejectionHandler")]=e("unhandledrejection"),a[j("rejectionHandledHandler")]=e("rejectionhandled"))}),t.__load_patch("queueMicrotask",(n,a,e)=>{Pt(n,e)})}function Ot(t){t.__load_patch("ZoneAwarePromise",(n,a,e)=>{let c=Object.getOwnPropertyDescriptor,f=Object.defineProperty;function g(h){if(h&&h.toString===Object.prototype.toString){let l=h.constructor&&h.constructor.name;return(l||"")+": "+JSON.stringify(h)}return h?h.toString():Object.prototype.toString.call(h)}let T=e.symbol,y=[],w=n[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,_=T("Promise"),P=T("then"),L="__creationTrace__";e.onUnhandledError=h=>{if(e.showUncaughtError()){let l=h&&h.rejection;l?console.error("Unhandled Promise rejection:",l instanceof Error?l.message:l,"; Zone:",h.zone.name,"; Task:",h.task&&h.task.source,"; Value:",l,l instanceof Error?l.stack:void 0):console.error(h)}},e.microtaskDrainDone=()=>{for(;y.length;){let h=y.shift();try{h.zone.runGuarded(()=>{throw h.throwOriginal?h.rejection:h})}catch(l){z(l)}}};let H=T("unhandledPromiseRejectionHandler");function z(h){e.onUnhandledError(h);try{let l=a[H];typeof l=="function"&&l.call(this,h)}catch{}}function $(h){return h&&typeof h.then=="function"}function J(h){return h}function q(h){return M.reject(h)}let p=T("state"),d=T("value"),A=T("finally"),V=T("parentPromiseValue"),X=T("parentPromiseState"),F="Promise.then",k=null,U=!0,S=!1,R=0;function b(h,l){return o=>{try{I(h,l,o)}catch(u){I(h,!1,u)}}}let D=function(){let h=!1;return function(o){return function(){h||(h=!0,o.apply(null,arguments))}}},K="Promise resolved with itself",W=T("currentTaskTrace");function I(h,l,o){let u=D();if(h===o)throw new TypeError(K);if(h[p]===k){let v=null;try{(typeof o=="object"||typeof o=="function")&&(v=o&&o.then)}catch(C){return u(()=>{I(h,!1,C)})(),h}if(l!==S&&o instanceof M&&o.hasOwnProperty(p)&&o.hasOwnProperty(d)&&o[p]!==k)i(o),I(h,o[p],o[d]);else if(l!==S&&typeof v=="function")try{v.call(o,u(b(h,l)),u(b(h,!1)))}catch(C){u(()=>{I(h,!1,C)})()}else{h[p]=l;let C=h[d];if(h[d]=o,h[A]===A&&l===U&&(h[p]=h[X],h[d]=h[V]),l===S&&o instanceof Error){let m=a.currentTask&&a.currentTask.data&&a.currentTask.data[L];m&&f(o,W,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{let O=h[d],N=!!o&&A===o[A];N&&(o[V]=O,o[X]=C);let Z=l.run(m,void 0,N&&m!==q&&m!==J?[]:[O]);I(o,!0,Z)}catch(O){I(o,!1,O)}},o)}let E="function ZoneAwarePromise() { [native code] }",x=function(){},ee=n.AggregateError;class M{static toString(){return E}static resolve(l){return l instanceof M?l:I(new this(null),U,l)}static reject(l){return I(new this(null),S,l)}static withResolvers(){let l={};return l.promise=new M((o,u)=>{l.resolve=o,l.reject=u}),l}static any(l){if(!l||typeof l[Symbol.iterator]!="function")return Promise.reject(new ee([],"All promises were rejected"));let o=[],u=0;try{for(let m of l)u++,o.push(M.resolve(m))}catch{return Promise.reject(new ee([],"All promises were rejected"))}if(u===0)return Promise.reject(new ee([],"All promises were rejected"));let v=!1,C=[];return new M((m,O)=>{for(let N=0;N{v||(v=!0,m(Z))},Z=>{C.push(Z),u--,u===0&&(v=!0,O(new ee(C,"All promises were rejected")))})})}static race(l){let o,u,v=new this((O,N)=>{o=O,u=N});function C(O){o(O)}function m(O){u(O)}for(let O of l)$(O)||(O=this.resolve(O)),O.then(C,m);return v}static all(l){return M.allWithCallback(l)}static allSettled(l){return(this&&this.prototype instanceof M?this:M).allWithCallback(l,{thenCallback:u=>({status:"fulfilled",value:u}),errorCallback:u=>({status:"rejected",reason:u})})}static allWithCallback(l,o){let u,v,C=new this((Z,G)=>{u=Z,v=G}),m=2,O=0,N=[];for(let Z of l){$(Z)||(Z=this.resolve(Z));let G=O;try{Z.then(B=>{N[G]=o?o.thenCallback(B):B,m--,m===0&&u(N)},B=>{o?(N[G]=o.errorCallback(B),m--,m===0&&u(N)):v(B)})}catch(B){v(B)}m++,O++}return m-=2,m===0&&u(N),C}constructor(l){let o=this;if(!(o instanceof M))throw new Error("Must be an instanceof Promise.");o[p]=k,o[d]=[];try{let u=D();l&&l(u(b(o,U)),u(b(o,S)))}catch(u){I(o,!1,u)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return M}then(l,o){let u=this.constructor?.[Symbol.species];(!u||typeof u!="function")&&(u=this.constructor||M);let v=new u(x),C=a.current;return this[p]==k?this[d].push(C,v,l,o):r(this,C,v,l,o),v}catch(l){return this.then(null,l)}finally(l){let o=this.constructor?.[Symbol.species];(!o||typeof o!="function")&&(o=M);let u=new o(x);u[A]=A;let v=a.current;return this[p]==k?this[d].push(v,u,l,l):r(this,v,u,l,l),u}}M.resolve=M.resolve,M.reject=M.reject,M.race=M.race,M.all=M.all;let he=n[_]=n.Promise;n.Promise=M;let _e=T("thenPatched");function Q(h){let l=h.prototype,o=c(l,"then");if(o&&(o.writable===!1||!o.configurable))return;let u=l.then;l[P]=u,h.prototype.then=function(v,C){return new M((O,N)=>{u.call(this,O,N)}).then(v,C)},h[_e]=!0}e.patchThen=Q;function Te(h){return function(l,o){let u=h.apply(l,o);if(u instanceof M)return u;let v=u.constructor;return v[_e]||Q(v),u}}return he&&(Q(he),ue(n,"fetch",h=>Te(h))),Promise[a.__symbol__("uncaughtPromiseErrors")]=y,M})}function Nt(t){t.__load_patch("toString",n=>{let a=Function.prototype.toString,e=j("OriginalDelegate"),c=j("Promise"),f=j("Error"),g=function(){if(typeof this=="function"){let _=this[e];if(_)return typeof _=="function"?a.call(_):Object.prototype.toString.call(_);if(this===Promise){let P=n[c];if(P)return a.call(P)}if(this===Error){let P=n[f];if(P)return a.call(P)}}return a.call(this)};g[e]=a,Function.prototype.toString=g;let T=Object.prototype.toString,y="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?y:T.call(this)}})}function Zt(t,n,a,e,c){let f=Zone.__symbol__(e);if(n[f])return;let g=n[f]=n[e];n[e]=function(T,y,w){return y&&y.prototype&&c.forEach(function(_){let P=`${a}.${e}::`+_,L=y.prototype;try{if(L.hasOwnProperty(_)){let H=t.ObjectGetOwnPropertyDescriptor(L,_);H&&H.value?(H.value=t.wrapWithCurrentZone(H.value,P),t._redefineProperty(y.prototype,_,H)):L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}else L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}catch{}}),g.call(n,T,y,w)},t.attachOriginToPatched(n[e],g)}function Lt(t){t.__load_patch("util",(n,a,e)=>{let c=Ie(n);e.patchOnProperties=rt,e.patchMethod=ue,e.bindArguments=Fe,e.patchMacroTask=mt;let f=a.__symbol__("BLACK_LISTED_EVENTS"),g=a.__symbol__("UNPATCHED_EVENTS");n[g]&&(n[f]=n[g]),n[f]&&(a[f]=a[g]=n[f]),e.patchEventPrototype=bt,e.patchEventTarget=vt,e.isIEOrEdge=yt,e.ObjectDefineProperty=Me,e.ObjectGetOwnPropertyDescriptor=pe,e.ObjectCreate=_t,e.ArraySlice=Tt,e.patchClass=ye,e.wrapWithCurrentZone=Ve,e.filterProperties=lt,e.attachOriginToPatched=fe,e._redefineProperty=Object.defineProperty,e.patchCallbacks=Zt,e.getGlobalObjects=()=>({globalSources:ot,zoneSymbolEventNames:ne,eventNames:c,isBrowser:Ge,isMix:nt,isNode:De,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:ve,ADD_EVENT_LISTENER_STR:je,REMOVE_EVENT_LISTENER_STR:He})})}function It(t){Ot(t),Nt(t),Lt(t)}var ut=dt();It(ut);St(ut); diff --git a/matchbox-server/src/main/resources/static/browser/polyfills-FFHMD2TL.js b/matchbox-server/src/main/resources/static/browser/polyfills-FFHMD2TL.js deleted file mode 100644 index b01b7911666..00000000000 --- a/matchbox-server/src/main/resources/static/browser/polyfills-FFHMD2TL.js +++ /dev/null @@ -1,2 +0,0 @@ -var ce=globalThis;function te(e){return(ce.__Zone_symbol_prefix||"__zone_symbol__")+e}function dt(){let e=ce.performance;function n(M){e&&e.mark&&e.mark(M)}function a(M,s){e&&e.measure&&e.measure(M,s)}n("Zone");class t{static{this.__symbol__=te}static assertZonePatched(){if(ce.Promise!==S.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let s=t.current;for(;s.parent;)s=s.parent;return s}static get current(){return b.zone}static get currentTask(){return D}static __load_patch(s,i,o=!1){if(S.hasOwnProperty(s)){let g=ce[te("forceDuplicateZoneCheck")]===!0;if(!o&&g)throw Error("Already loaded patch: "+s)}else if(!ce["__Zone_disable_"+s]){let g="Zone:"+s;n(g),S[s]=i(ce,t,w),a(g,g)}}get parent(){return this._parent}get name(){return this._name}constructor(s,i){this._parent=s,this._name=i?i.name||"unnamed":"",this._properties=i&&i.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,i)}get(s){let i=this.getZoneWith(s);if(i)return i._properties[s]}getZoneWith(s){let i=this;for(;i;){if(i._properties.hasOwnProperty(s))return i;i=i._parent}return null}fork(s){if(!s)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,s)}wrap(s,i){if(typeof s!="function")throw new Error("Expecting function got: "+s);let o=this._zoneDelegate.intercept(this,s,i),g=this;return function(){return g.runGuarded(o,this,arguments,i)}}run(s,i,o,g){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,s,i,o,g)}finally{b=b.parent}}runGuarded(s,i=null,o,g){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,s,i,o,g)}catch(V){if(this._zoneDelegate.handleError(this,V))throw V}}finally{b=b.parent}}runTask(s,i,o){if(s.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");let g=s,{type:V,data:{isPeriodic:ee=!1,isRefreshable:Z=!1}={}}=s;if(s.state===q&&(V===z||V===y))return;let he=s.state!=A;he&&g._transitionTo(A,d);let _e=D;D=g,b={parent:b,zone:this};try{V==y&&s.data&&!ee&&!Z&&(s.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,g,i,o)}catch(Q){if(this._zoneDelegate.handleError(this,Q))throw Q}}finally{let Q=s.state;if(Q!==q&&Q!==X)if(V==z||ee||Z&&Q===k)he&&g._transitionTo(d,A,k);else{let Ee=g._zoneDelegates;this._updateTaskCount(g,-1),he&&g._transitionTo(q,A,q),Z&&(g._zoneDelegates=Ee)}b=b.parent,D=_e}}scheduleTask(s){if(s.zone&&s.zone!==this){let o=this;for(;o;){if(o===s.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${s.zone.name}`);o=o.parent}}s._transitionTo(k,q);let i=[];s._zoneDelegates=i,s._zone=this;try{s=this._zoneDelegate.scheduleTask(this,s)}catch(o){throw s._transitionTo(X,k,q),this._zoneDelegate.handleError(this,o),o}return s._zoneDelegates===i&&this._updateTaskCount(s,1),s.state==k&&s._transitionTo(d,k),s}scheduleMicroTask(s,i,o,g){return this.scheduleTask(new E(G,s,i,o,g,void 0))}scheduleMacroTask(s,i,o,g,V){return this.scheduleTask(new E(y,s,i,o,g,V))}scheduleEventTask(s,i,o,g,V){return this.scheduleTask(new E(z,s,i,o,g,V))}cancelTask(s){if(s.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");if(!(s.state!==d&&s.state!==A)){s._transitionTo(x,d,A);try{this._zoneDelegate.cancelTask(this,s)}catch(i){throw s._transitionTo(X,x),this._zoneDelegate.handleError(this,i),i}return this._updateTaskCount(s,-1),s._transitionTo(q,x),s.runCount=-1,s}}_updateTaskCount(s,i){let o=s._zoneDelegates;i==-1&&(s._zoneDelegates=null);for(let g=0;gM.hasTask(i,o),onScheduleTask:(M,s,i,o)=>M.scheduleTask(i,o),onInvokeTask:(M,s,i,o,g,V)=>M.invokeTask(i,o,g,V),onCancelTask:(M,s,i,o)=>M.cancelTask(i,o)};class f{get zone(){return this._zone}constructor(s,i,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=s,this._parentDelegate=i,this._forkZS=o&&(o&&o.onFork?o:i._forkZS),this._forkDlgt=o&&(o.onFork?i:i._forkDlgt),this._forkCurrZone=o&&(o.onFork?this._zone:i._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:i._interceptZS),this._interceptDlgt=o&&(o.onIntercept?i:i._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this._zone:i._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:i._invokeZS),this._invokeDlgt=o&&(o.onInvoke?i:i._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this._zone:i._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:i._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?i:i._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this._zone:i._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:i._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?i:i._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this._zone:i._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:i._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?i:i._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this._zone:i._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:i._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?i:i._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this._zone:i._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;let g=o&&o.onHasTask,V=i&&i._hasTaskZS;(g||V)&&(this._hasTaskZS=g?o:c,this._hasTaskDlgt=i,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,o.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=i,this._scheduleTaskCurrZone=this._zone),o.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=i,this._invokeTaskCurrZone=this._zone),o.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=i,this._cancelTaskCurrZone=this._zone))}fork(s,i){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,s,i):new t(s,i)}intercept(s,i,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,s,i,o):i}invoke(s,i,o,g,V){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,s,i,o,g,V):i.apply(o,g)}handleError(s,i){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,s,i):!0}scheduleTask(s,i){let o=i;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,s,i),o||(o=i);else if(i.scheduleFn)i.scheduleFn(i);else if(i.type==G)U(i);else throw new Error("Task is missing scheduleFn.");return o}invokeTask(s,i,o,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,s,i,o,g):i.callback.apply(o,g)}cancelTask(s,i){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,s,i);else{if(!i.cancelFn)throw Error("Task is not cancelable");o=i.cancelFn(i)}return o}hasTask(s,i){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,s,i)}catch(o){this.handleError(s,o)}}_updateTaskCount(s,i){let o=this._taskCounts,g=o[s],V=o[s]=g+i;if(V<0)throw new Error("More tasks executed then were scheduled.");if(g==0||V==0){let ee={microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:s};this.hasTask(this._zone,ee)}}}class E{constructor(s,i,o,g,V,ee){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=s,this.source=i,this.data=g,this.scheduleFn=V,this.cancelFn=ee,!o)throw new Error("callback is not defined");this.callback=o;let Z=this;s===z&&g&&g.useG?this.invoke=E.invokeTask:this.invoke=function(){return E.invokeTask.call(ce,Z,this,arguments)}}static invokeTask(s,i,o){s||(s=this),K++;try{return s.runCount++,s.zone.runTask(s,i,o)}finally{K==1&&$(),K--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(q,k)}_transitionTo(s,i,o){if(this._state===i||this._state===o)this._state=s,s==q&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${s}', expecting state '${i}'${o?" or '"+o+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}let T=te("setTimeout"),p=te("Promise"),C=te("then"),_=[],P=!1,I;function H(M){if(I||ce[p]&&(I=ce[p].resolve(0)),I){let s=I[C];s||(s=I.then),s.call(I,M)}else ce[T](M,0)}function U(M){K===0&&_.length===0&&H($),M&&_.push(M)}function $(){if(!P){for(P=!0;_.length;){let M=_;_=[];for(let s=0;sb,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:U,showUncaughtError:()=>!t[te("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:H},b={parent:null,zone:new t(null,null)},D=null,K=0;function W(){}return a("Zone","Zone"),t}function _t(){let e=globalThis,n=e[te("forceDuplicateZoneCheck")]===!0;if(e.Zone&&(n||typeof e.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return e.Zone??=dt(),e.Zone}var be=Object.getOwnPropertyDescriptor,Ae=Object.defineProperty,je=Object.getPrototypeOf,Et=Object.create,Tt=Array.prototype.slice,He="addEventListener",xe="removeEventListener",Le=te(He),Ie=te(xe),ae="true",le="false",Pe=te("");function Ve(e,n){return Zone.current.wrap(e,n)}function Ge(e,n,a,t,c){return Zone.current.scheduleMacroTask(e,n,a,t,c)}var j=te,De=typeof window<"u",pe=De?window:void 0,Y=De&&pe||globalThis,gt="removeAttribute";function Fe(e,n){for(let a=e.length-1;a>=0;a--)typeof e[a]=="function"&&(e[a]=Ve(e[a],n+"_"+a));return e}function yt(e,n){let a=e.constructor.name;for(let t=0;t{let p=function(){return T.apply(this,Fe(arguments,a+"."+c))};return fe(p,T),p})(f)}}}function tt(e){return e?e.writable===!1?!1:!(typeof e.get=="function"&&typeof e.set>"u"):!0}var nt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Se=!("nw"in Y)&&typeof Y.process<"u"&&Y.process.toString()==="[object process]",Be=!Se&&!nt&&!!(De&&pe.HTMLElement),rt=typeof Y.process<"u"&&Y.process.toString()==="[object process]"&&!nt&&!!(De&&pe.HTMLElement),Ce={},mt=j("enable_beforeunload"),Ye=function(e){if(e=e||Y.event,!e)return;let n=Ce[e.type];n||(n=Ce[e.type]=j("ON_PROPERTY"+e.type));let a=this||e.target||Y,t=a[n],c;if(Be&&a===pe&&e.type==="error"){let f=e;c=t&&t.call(this,f.message,f.filename,f.lineno,f.colno,f.error),c===!0&&e.preventDefault()}else c=t&&t.apply(this,arguments),e.type==="beforeunload"&&Y[mt]&&typeof c=="string"?e.returnValue=c:c!=null&&!c&&e.preventDefault();return c};function $e(e,n,a){let t=be(e,n);if(!t&&a&&be(a,n)&&(t={enumerable:!0,configurable:!0}),!t||!t.configurable)return;let c=j("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete t.writable,delete t.value;let f=t.get,E=t.set,T=n.slice(2),p=Ce[T];p||(p=Ce[T]=j("ON_PROPERTY"+T)),t.set=function(C){let _=this;if(!_&&e===Y&&(_=Y),!_)return;typeof _[p]=="function"&&_.removeEventListener(T,Ye),E&&E.call(_,null),_[p]=C,typeof C=="function"&&_.addEventListener(T,Ye,!1)},t.get=function(){let C=this;if(!C&&e===Y&&(C=Y),!C)return null;let _=C[p];if(_)return _;if(f){let P=f.call(this);if(P)return t.set.call(this,P),typeof C[gt]=="function"&&C.removeAttribute(n),P}return null},Ae(e,n,t),e[c]=!0}function ot(e,n,a){if(n)for(let t=0;tfunction(E,T){let p=a(E,T);return p.cbIdx>=0&&typeof T[p.cbIdx]=="function"?Ge(p.name,T[p.cbIdx],p,c):f.apply(E,T)})}function fe(e,n){e[j("OriginalDelegate")]=n}var Je=!1,Me=!1;function kt(){try{let e=pe.navigator.userAgent;if(e.indexOf("MSIE ")!==-1||e.indexOf("Trident/")!==-1)return!0}catch{}return!1}function vt(){if(Je)return Me;Je=!0;try{let e=pe.navigator.userAgent;(e.indexOf("MSIE ")!==-1||e.indexOf("Trident/")!==-1||e.indexOf("Edge/")!==-1)&&(Me=!0)}catch{}return Me}function Ke(e){return typeof e=="function"}function Qe(e){return typeof e=="number"}var me=!1;if(typeof window<"u")try{let e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}var bt={useG:!0},ne={},st={},it=new RegExp("^"+Pe+"(\\w+)(true|false)$"),ct=j("propagationStopped");function at(e,n){let a=(n?n(e):e)+le,t=(n?n(e):e)+ae,c=Pe+a,f=Pe+t;ne[e]={},ne[e][le]=c,ne[e][ae]=f}function Pt(e,n,a,t){let c=t&&t.add||He,f=t&&t.rm||xe,E=t&&t.listeners||"eventListeners",T=t&&t.rmAll||"removeAllListeners",p=j(c),C="."+c+":",_="prependListener",P="."+_+":",I=function(k,d,A){if(k.isRemoved)return;let x=k.callback;typeof x=="object"&&x.handleEvent&&(k.callback=y=>x.handleEvent(y),k.originalDelegate=x);let X;try{k.invoke(k,d,[A])}catch(y){X=y}let G=k.options;if(G&&typeof G=="object"&&G.once){let y=k.originalDelegate?k.originalDelegate:k.callback;d[f].call(d,A.type,y,G)}return X};function H(k,d,A){if(d=d||e.event,!d)return;let x=k||d.target||e,X=x[ne[d.type][A?ae:le]];if(X){let G=[];if(X.length===1){let y=I(X[0],x,d);y&&G.push(y)}else{let y=X.slice();for(let z=0;z{throw z})}}}let U=function(k){return H(this,k,!1)},$=function(k){return H(this,k,!0)};function J(k,d){if(!k)return!1;let A=!0;d&&d.useG!==void 0&&(A=d.useG);let x=d&&d.vh,X=!0;d&&d.chkDup!==void 0&&(X=d.chkDup);let G=!1;d&&d.rt!==void 0&&(G=d.rt);let y=k;for(;y&&!y.hasOwnProperty(c);)y=je(y);if(!y&&k[c]&&(y=k),!y||y[p])return!1;let z=d&&d.eventNameToString,S={},w=y[p]=y[c],b=y[j(f)]=y[f],D=y[j(E)]=y[E],K=y[j(T)]=y[T],W;d&&d.prepend&&(W=y[j(d.prepend)]=y[d.prepend]);function M(r,u){return!me&&typeof r=="object"&&r?!!r.capture:!me||!u?r:typeof r=="boolean"?{capture:r,passive:!0}:r?typeof r=="object"&&r.passive!==!1?{...r,passive:!0}:r:{passive:!0}}let s=function(r){if(!S.isExisting)return w.call(S.target,S.eventName,S.capture?$:U,S.options)},i=function(r){if(!r.isRemoved){let u=ne[r.eventName],v;u&&(v=u[r.capture?ae:le]);let R=v&&r.target[v];if(R){for(let m=0;mre.zone.cancelTask(re);r.call(Te,"abort",ie,{once:!0}),re.removeAbortListener=()=>Te.removeEventListener("abort",ie)}if(S.target=null,ke&&(ke.taskData=null),Ue&&(S.options.once=!0),!me&&typeof re.options=="boolean"||(re.options=se),re.target=N,re.capture=Oe,re.eventName=L,B&&(re.originalDelegate=F),O?ge.unshift(re):ge.push(re),m)return N}};return y[c]=l(w,C,ee,Z,G),W&&(y[_]=l(W,P,g,Z,G,!0)),y[f]=function(){let r=this||e,u=arguments[0];d&&d.transferEventName&&(u=d.transferEventName(u));let v=arguments[2],R=v?typeof v=="boolean"?!0:v.capture:!1,m=arguments[1];if(!m)return b.apply(this,arguments);if(x&&!x(b,m,r,arguments))return;let O=ne[u],N;O&&(N=O[R?ae:le]);let L=N&&r[N];if(L)for(let F=0;Ffunction(c,f){c[ct]=!0,t&&t.apply(c,f)})}function Rt(e,n){n.patchMethod(e,"queueMicrotask",a=>function(t,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}var Re=j("zoneTask");function ye(e,n,a,t){let c=null,f=null;n+=t,a+=t;let E={};function T(C){let _=C.data;_.args[0]=function(){return C.invoke.apply(this,arguments)};let P=c.apply(e,_.args);return Qe(P)?_.handleId=P:(_.handle=P,_.isRefreshable=Ke(P.refresh)),C}function p(C){let{handle:_,handleId:P}=C.data;return f.call(e,_??P)}c=ue(e,n,C=>function(_,P){if(Ke(P[0])){let I={isRefreshable:!1,isPeriodic:t==="Interval",delay:t==="Timeout"||t==="Interval"?P[1]||0:void 0,args:P},H=P[0];P[0]=function(){try{return H.apply(this,arguments)}finally{let{handle:A,handleId:x,isPeriodic:X,isRefreshable:G}=I;!X&&!G&&(x?delete E[x]:A&&(A[Re]=null))}};let U=Ge(n,P[0],I,T,p);if(!U)return U;let{handleId:$,handle:J,isRefreshable:q,isPeriodic:k}=U.data;if($)E[$]=U;else if(J&&(J[Re]=U,q&&!k)){let d=J.refresh;J.refresh=function(){let{zone:A,state:x}=U;return x==="notScheduled"?(U._state="scheduled",A._updateTaskCount(U,1)):x==="running"&&(U._state="scheduling"),d.call(this)}}return J??$??U}else return C.apply(e,P)}),f=ue(e,a,C=>function(_,P){let I=P[0],H;Qe(I)?(H=E[I],delete E[I]):(H=I?.[Re],H?I[Re]=null:H=I),H?.type?H.cancelFn&&H.zone.cancelTask(H):C.apply(e,P)})}function Ct(e,n){let{isBrowser:a,isMix:t}=n.getGlobalObjects();if(!a&&!t||!e.customElements||!("customElements"in e))return;let c=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];n.patchCallbacks(n,e.customElements,"customElements","define",c)}function Dt(e,n){if(Zone[n.symbol("patchEventTarget")])return;let{eventNames:a,zoneSymbolEventNames:t,TRUE_STR:c,FALSE_STR:f,ZONE_SYMBOL_PREFIX:E}=n.getGlobalObjects();for(let p=0;pf.target===e);if(!t||t.length===0)return n;let c=t[0].ignoreProperties;return n.filter(f=>c.indexOf(f)===-1)}function et(e,n,a,t){if(!e)return;let c=ut(e,n,a);ot(e,c,t)}function Ze(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}function Ot(e,n){if(Se&&!rt||Zone[e.symbol("patchEvents")])return;let a=n.__Zone_ignore_on_properties,t=[];if(Be){let c=window;t=t.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);let f=kt()?[{target:c,ignoreProperties:["error"]}]:[];et(c,Ze(c),a&&a.concat(f),je(c))}t=t.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{let a=n[e.__symbol__("legacyPatch")];a&&a()}),e.__load_patch("timers",n=>{let a="set",t="clear";ye(n,a,t,"Timeout"),ye(n,a,t,"Interval"),ye(n,a,t,"Immediate")}),e.__load_patch("requestAnimationFrame",n=>{ye(n,"request","cancel","AnimationFrame"),ye(n,"mozRequest","mozCancel","AnimationFrame"),ye(n,"webkitRequest","webkitCancel","AnimationFrame")}),e.__load_patch("blocking",(n,a)=>{let t=["alert","prompt","confirm"];for(let c=0;cfunction(C,_){return a.current.run(E,n,_,p)})}}),e.__load_patch("EventTarget",(n,a,t)=>{St(n,t),Dt(n,t);let c=n.XMLHttpRequestEventTarget;c&&c.prototype&&t.patchEventTarget(n,t,[c.prototype])}),e.__load_patch("MutationObserver",(n,a,t)=>{ve("MutationObserver"),ve("WebKitMutationObserver")}),e.__load_patch("IntersectionObserver",(n,a,t)=>{ve("IntersectionObserver")}),e.__load_patch("FileReader",(n,a,t)=>{ve("FileReader")}),e.__load_patch("on_property",(n,a,t)=>{Ot(t,n)}),e.__load_patch("customElements",(n,a,t)=>{Ct(n,t)}),e.__load_patch("XHR",(n,a)=>{C(n);let t=j("xhrTask"),c=j("xhrSync"),f=j("xhrListener"),E=j("xhrScheduled"),T=j("xhrURL"),p=j("xhrErrorBeforeScheduled");function C(_){let P=_.XMLHttpRequest;if(!P)return;let I=P.prototype;function H(w){return w[t]}let U=I[Le],$=I[Ie];if(!U){let w=_.XMLHttpRequestEventTarget;if(w){let b=w.prototype;U=b[Le],$=b[Ie]}}let J="readystatechange",q="scheduled";function k(w){let b=w.data,D=b.target;D[E]=!1,D[p]=!1;let K=D[f];U||(U=D[Le],$=D[Ie]),K&&$.call(D,J,K);let W=D[f]=()=>{if(D.readyState===D.DONE)if(!b.aborted&&D[E]&&w.state===q){let s=D[a.__symbol__("loadfalse")];if(D.status!==0&&s&&s.length>0){let i=w.invoke;w.invoke=function(){let o=D[a.__symbol__("loadfalse")];for(let g=0;gfunction(w,b){return w[c]=b[2]==!1,w[T]=b[1],x.apply(w,b)}),X="XMLHttpRequest.send",G=j("fetchTaskAborting"),y=j("fetchTaskScheduling"),z=ue(I,"send",()=>function(w,b){if(a.current[y]===!0||w[c])return z.apply(w,b);{let D={target:w,url:w[T],isPeriodic:!1,args:b,aborted:!1},K=Ge(X,d,D,k,A);w&&w[p]===!0&&!D.aborted&&K.state===q&&K.invoke()}}),S=ue(I,"abort",()=>function(w,b){let D=H(w);if(D&&typeof D.type=="string"){if(D.cancelFn==null||D.data&&D.data.aborted)return;D.zone.cancelTask(D)}else if(a.current[G]===!0)return S.apply(w,b)})}}),e.__load_patch("geolocation",n=>{n.navigator&&n.navigator.geolocation&&yt(n.navigator.geolocation,["getCurrentPosition","watchPosition"])}),e.__load_patch("PromiseRejectionEvent",(n,a)=>{function t(c){return function(f){lt(n,c).forEach(T=>{let p=n.PromiseRejectionEvent;if(p){let C=new p(c,{promise:f.promise,reason:f.rejection});T.invoke(C)}})}}n.PromiseRejectionEvent&&(a[j("unhandledPromiseRejectionHandler")]=t("unhandledrejection"),a[j("rejectionHandledHandler")]=t("rejectionhandled"))}),e.__load_patch("queueMicrotask",(n,a,t)=>{Rt(n,t)})}function Lt(e){e.__load_patch("ZoneAwarePromise",(n,a,t)=>{let c=Object.getOwnPropertyDescriptor,f=Object.defineProperty;function E(h){if(h&&h.toString===Object.prototype.toString){let l=h.constructor&&h.constructor.name;return(l||"")+": "+JSON.stringify(h)}return h?h.toString():Object.prototype.toString.call(h)}let T=t.symbol,p=[],C=n[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,_=T("Promise"),P=T("then"),I="__creationTrace__";t.onUnhandledError=h=>{if(t.showUncaughtError()){let l=h&&h.rejection;l?console.error("Unhandled Promise rejection:",l instanceof Error?l.message:l,"; Zone:",h.zone.name,"; Task:",h.task&&h.task.source,"; Value:",l,l instanceof Error?l.stack:void 0):console.error(h)}},t.microtaskDrainDone=()=>{for(;p.length;){let h=p.shift();try{h.zone.runGuarded(()=>{throw h.throwOriginal?h.rejection:h})}catch(l){U(l)}}};let H=T("unhandledPromiseRejectionHandler");function U(h){t.onUnhandledError(h);try{let l=a[H];typeof l=="function"&&l.call(this,h)}catch{}}function $(h){return h&&h.then}function J(h){return h}function q(h){return Z.reject(h)}let k=T("state"),d=T("value"),A=T("finally"),x=T("parentPromiseValue"),X=T("parentPromiseState"),G="Promise.then",y=null,z=!0,S=!1,w=0;function b(h,l){return r=>{try{M(h,l,r)}catch(u){M(h,!1,u)}}}let D=function(){let h=!1;return function(r){return function(){h||(h=!0,r.apply(null,arguments))}}},K="Promise resolved with itself",W=T("currentTaskTrace");function M(h,l,r){let u=D();if(h===r)throw new TypeError(K);if(h[k]===y){let v=null;try{(typeof r=="object"||typeof r=="function")&&(v=r&&r.then)}catch(R){return u(()=>{M(h,!1,R)})(),h}if(l!==S&&r instanceof Z&&r.hasOwnProperty(k)&&r.hasOwnProperty(d)&&r[k]!==y)i(r),M(h,r[k],r[d]);else if(l!==S&&typeof v=="function")try{v.call(r,u(b(h,l)),u(b(h,!1)))}catch(R){u(()=>{M(h,!1,R)})()}else{h[k]=l;let R=h[d];if(h[d]=r,h[A]===A&&l===z&&(h[k]=h[X],h[d]=h[x]),l===S&&r instanceof Error){let m=a.currentTask&&a.currentTask.data&&a.currentTask.data[I];m&&f(r,W,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{let O=h[d],N=!!r&&A===r[A];N&&(r[x]=O,r[X]=R);let L=l.run(m,void 0,N&&m!==q&&m!==J?[]:[O]);M(r,!0,L)}catch(O){M(r,!1,O)}},r)}let g="function ZoneAwarePromise() { [native code] }",V=function(){},ee=n.AggregateError;class Z{static toString(){return g}static resolve(l){return l instanceof Z?l:M(new this(null),z,l)}static reject(l){return M(new this(null),S,l)}static withResolvers(){let l={};return l.promise=new Z((r,u)=>{l.resolve=r,l.reject=u}),l}static any(l){if(!l||typeof l[Symbol.iterator]!="function")return Promise.reject(new ee([],"All promises were rejected"));let r=[],u=0;try{for(let m of l)u++,r.push(Z.resolve(m))}catch{return Promise.reject(new ee([],"All promises were rejected"))}if(u===0)return Promise.reject(new ee([],"All promises were rejected"));let v=!1,R=[];return new Z((m,O)=>{for(let N=0;N{v||(v=!0,m(L))},L=>{R.push(L),u--,u===0&&(v=!0,O(new ee(R,"All promises were rejected")))})})}static race(l){let r,u,v=new this((O,N)=>{r=O,u=N});function R(O){r(O)}function m(O){u(O)}for(let O of l)$(O)||(O=this.resolve(O)),O.then(R,m);return v}static all(l){return Z.allWithCallback(l)}static allSettled(l){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(l,{thenCallback:u=>({status:"fulfilled",value:u}),errorCallback:u=>({status:"rejected",reason:u})})}static allWithCallback(l,r){let u,v,R=new this((L,F)=>{u=L,v=F}),m=2,O=0,N=[];for(let L of l){$(L)||(L=this.resolve(L));let F=O;try{L.then(B=>{N[F]=r?r.thenCallback(B):B,m--,m===0&&u(N)},B=>{r?(N[F]=r.errorCallback(B),m--,m===0&&u(N)):v(B)})}catch(B){v(B)}m++,O++}return m-=2,m===0&&u(N),R}constructor(l){let r=this;if(!(r instanceof Z))throw new Error("Must be an instanceof Promise.");r[k]=y,r[d]=[];try{let u=D();l&&l(u(b(r,z)),u(b(r,S)))}catch(u){M(r,!1,u)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return Z}then(l,r){let u=this.constructor?.[Symbol.species];(!u||typeof u!="function")&&(u=this.constructor||Z);let v=new u(V),R=a.current;return this[k]==y?this[d].push(R,v,l,r):o(this,R,v,l,r),v}catch(l){return this.then(null,l)}finally(l){let r=this.constructor?.[Symbol.species];(!r||typeof r!="function")&&(r=Z);let u=new r(V);u[A]=A;let v=a.current;return this[k]==y?this[d].push(v,u,l,l):o(this,v,u,l,l),u}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;let he=n[_]=n.Promise;n.Promise=Z;let _e=T("thenPatched");function Q(h){let l=h.prototype,r=c(l,"then");if(r&&(r.writable===!1||!r.configurable))return;let u=l.then;l[P]=u,h.prototype.then=function(v,R){return new Z((O,N)=>{u.call(this,O,N)}).then(v,R)},h[_e]=!0}t.patchThen=Q;function Ee(h){return function(l,r){let u=h.apply(l,r);if(u instanceof Z)return u;let v=u.constructor;return v[_e]||Q(v),u}}return he&&(Q(he),ue(n,"fetch",h=>Ee(h))),Promise[a.__symbol__("uncaughtPromiseErrors")]=p,Z})}function It(e){e.__load_patch("toString",n=>{let a=Function.prototype.toString,t=j("OriginalDelegate"),c=j("Promise"),f=j("Error"),E=function(){if(typeof this=="function"){let _=this[t];if(_)return typeof _=="function"?a.call(_):Object.prototype.toString.call(_);if(this===Promise){let P=n[c];if(P)return a.call(P)}if(this===Error){let P=n[f];if(P)return a.call(P)}}return a.call(this)};E[t]=a,Function.prototype.toString=E;let T=Object.prototype.toString,p="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?p:T.call(this)}})}function Mt(e,n,a,t,c){let f=Zone.__symbol__(t);if(n[f])return;let E=n[f]=n[t];n[t]=function(T,p,C){return p&&p.prototype&&c.forEach(function(_){let P=`${a}.${t}::`+_,I=p.prototype;try{if(I.hasOwnProperty(_)){let H=e.ObjectGetOwnPropertyDescriptor(I,_);H&&H.value?(H.value=e.wrapWithCurrentZone(H.value,P),e._redefineProperty(p.prototype,_,H)):I[_]&&(I[_]=e.wrapWithCurrentZone(I[_],P))}else I[_]&&(I[_]=e.wrapWithCurrentZone(I[_],P))}catch{}}),E.call(n,T,p,C)},e.attachOriginToPatched(n[t],E)}function Zt(e){e.__load_patch("util",(n,a,t)=>{let c=Ze(n);t.patchOnProperties=ot,t.patchMethod=ue,t.bindArguments=Fe,t.patchMacroTask=pt;let f=a.__symbol__("BLACK_LISTED_EVENTS"),E=a.__symbol__("UNPATCHED_EVENTS");n[E]&&(n[f]=n[E]),n[f]&&(a[f]=a[E]=n[f]),t.patchEventPrototype=wt,t.patchEventTarget=Pt,t.isIEOrEdge=vt,t.ObjectDefineProperty=Ae,t.ObjectGetOwnPropertyDescriptor=be,t.ObjectCreate=Et,t.ArraySlice=Tt,t.patchClass=ve,t.wrapWithCurrentZone=Ve,t.filterProperties=ut,t.attachOriginToPatched=fe,t._redefineProperty=Object.defineProperty,t.patchCallbacks=Mt,t.getGlobalObjects=()=>({globalSources:st,zoneSymbolEventNames:ne,eventNames:c,isBrowser:Be,isMix:rt,isNode:Se,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:Pe,ADD_EVENT_LISTENER_STR:He,REMOVE_EVENT_LISTENER_STR:xe})})}function At(e){Lt(e),It(e),Zt(e)}var ft=_t();At(ft);Nt(ft); diff --git a/matchbox-server/src/main/resources/static/browser/styles-FHS5QDYM.css b/matchbox-server/src/main/resources/static/browser/styles-NO4TFXL4.css similarity index 99% rename from matchbox-server/src/main/resources/static/browser/styles-FHS5QDYM.css rename to matchbox-server/src/main/resources/static/browser/styles-NO4TFXL4.css index a24d6fc4a54..d7690b0f57e 100644 --- a/matchbox-server/src/main/resources/static/browser/styles-FHS5QDYM.css +++ b/matchbox-server/src/main/resources/static/browser/styles-NO4TFXL4.css @@ -1 +1 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #ffffff}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+)}.toast-error{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+)}.toast-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==)}.toast-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==)}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html{--mat-option-selected-state-label-text-color: #97d6ba;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-accent{--mat-option-selected-state-label-text-color: #1e91ff;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-full-pseudo-checkbox-selected-icon-color: #1e91ff;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}html{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1e91ff;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color: #97d6ba;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-primary{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #97d6ba;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: #1e91ff;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-accent{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1e91ff;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-warn{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mdc-elevated-card-container-shape: 4px}html{--mdc-outlined-card-container-shape: 4px;--mdc-outlined-card-outline-width: 1px}html{--mdc-elevated-card-container-color: white;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mdc-outlined-card-container-color: white;--mdc-outlined-card-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-card-subtitle-text-color: rgba(0, 0, 0, .54)}html{--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color: #97d6ba;--mdc-linear-progress-track-color: rgba(151, 214, 186, .25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color: #1e91ff;--mdc-linear-progress-track-color: rgba(30, 145, 255, .25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color: #f44336;--mdc-linear-progress-track-color: rgba(244, 67, 54, .25)}html{--mdc-plain-tooltip-container-shape: 4px;--mdc-plain-tooltip-supporting-text-line-height: 16px}html{--mdc-plain-tooltip-container-color: #616161;--mdc-plain-tooltip-supporting-text-color: #fff}html{--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px}html{--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px}html{--mdc-filled-text-field-caret-color: #97d6ba;--mdc-filled-text-field-focus-active-indicator-color: #97d6ba;--mdc-filled-text-field-focus-label-text-color: rgba(151, 214, 186, .87);--mdc-filled-text-field-container-color: rgb(244.8, 244.8, 244.8);--mdc-filled-text-field-disabled-container-color: rgb(249.9, 249.9, 249.9);--mdc-filled-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-error-hover-label-text-color: #f44336;--mdc-filled-text-field-error-focus-label-text-color: #f44336;--mdc-filled-text-field-error-label-text-color: #f44336;--mdc-filled-text-field-error-caret-color: #f44336;--mdc-filled-text-field-active-indicator-color: rgba(0, 0, 0, .42);--mdc-filled-text-field-disabled-active-indicator-color: rgba(0, 0, 0, .06);--mdc-filled-text-field-hover-active-indicator-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-error-active-indicator-color: #f44336;--mdc-filled-text-field-error-focus-active-indicator-color: #f44336;--mdc-filled-text-field-error-hover-active-indicator-color: #f44336}html{--mdc-outlined-text-field-caret-color: #97d6ba;--mdc-outlined-text-field-focus-outline-color: #97d6ba;--mdc-outlined-text-field-focus-label-text-color: rgba(151, 214, 186, .87);--mdc-outlined-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-error-caret-color: #f44336;--mdc-outlined-text-field-error-focus-label-text-color: #f44336;--mdc-outlined-text-field-error-label-text-color: #f44336;--mdc-outlined-text-field-error-hover-label-text-color: #f44336;--mdc-outlined-text-field-outline-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-disabled-outline-color: rgba(0, 0, 0, .06);--mdc-outlined-text-field-hover-outline-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-error-focus-outline-color: #f44336;--mdc-outlined-text-field-error-hover-outline-color: #f44336;--mdc-outlined-text-field-error-outline-color: #f44336}html{--mat-form-field-focus-select-arrow-color: rgba(151, 214, 186, .87);--mat-form-field-disabled-input-text-placeholder-color: rgba(0, 0, 0, .38);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: rgba(0, 0, 0, .38);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color: #1e91ff;--mdc-filled-text-field-focus-active-indicator-color: #1e91ff;--mdc-filled-text-field-focus-label-text-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-accent{--mdc-outlined-text-field-caret-color: #1e91ff;--mdc-outlined-text-field-focus-outline-color: #1e91ff;--mdc-outlined-text-field-focus-label-text-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color: #f44336;--mdc-filled-text-field-focus-active-indicator-color: #f44336;--mdc-filled-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mdc-outlined-text-field-caret-color: #f44336;--mdc-outlined-text-field-focus-outline-color: #f44336;--mdc-outlined-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: rgba(244, 67, 54, .87)}html{--mat-form-field-container-height: 52px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 14px;--mat-form-field-filled-with-label-container-padding-top: 22px;--mat-form-field-filled-with-label-container-padding-bottom: 6px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(151, 214, 186, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(30, 145, 255, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(244, 67, 54, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mdc-dialog-container-shape: 4px}html{--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mdc-dialog-container-color: white;--mdc-dialog-subhead-color: rgba(0, 0, 0, .87);--mdc-dialog-supporting-text-color: rgba(0, 0, 0, .6)}.mat-mdc-standard-chip{--mdc-chip-container-shape-radius: 16px;--mdc-chip-with-avatar-avatar-shape-radius: 14px;--mdc-chip-with-avatar-avatar-size: 28px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 0;--mdc-chip-outline-color: transparent;--mdc-chip-disabled-outline-color: transparent;--mdc-chip-focus-outline-color: transparent;--mdc-chip-hover-state-layer-opacity: .04;--mdc-chip-with-avatar-disabled-avatar-opacity: 1;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-selected-hover-state-layer-opacity: .04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1;--mdc-chip-with-icon-disabled-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-container-opacity: .4;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-focus-state-layer-opacity: 0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color: #212121;--mdc-chip-elevated-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-disabled-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-flat-disabled-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #212121;--mdc-chip-selected-label-text-color: #212121;--mdc-chip-with-icon-icon-color: #212121;--mdc-chip-with-icon-disabled-icon-color: #212121;--mdc-chip-with-icon-selected-icon-color: #212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #212121;--mdc-chip-with-trailing-icon-trailing-icon-color: #212121}.mat-mdc-standard-chip{--mat-chip-selected-disabled-trailing-icon-color: #212121;--mat-chip-selected-trailing-icon-color: #212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #97d6ba;--mdc-chip-elevated-selected-container-color: #97d6ba;--mdc-chip-elevated-disabled-container-color: #97d6ba;--mdc-chip-flat-disabled-selected-container-color: #97d6ba;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #1e91ff;--mdc-chip-elevated-selected-container-color: #1e91ff;--mdc-chip-elevated-disabled-container-color: #1e91ff;--mdc-chip-flat-disabled-selected-container-color: #1e91ff;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #f44336;--mdc-chip-elevated-selected-container-color: #f44336;--mdc-chip-elevated-disabled-container-color: #f44336;--mdc-chip-flat-disabled-selected-container-color: #f44336;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height: 28px}html{--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-height: 20px;--mdc-switch-handle-shape: 10px;--mdc-switch-handle-width: 20px;--mdc-switch-selected-icon-size: 18px;--mdc-switch-track-height: 14px;--mdc-switch-track-shape: 7px;--mdc-switch-track-width: 36px;--mdc-switch-unselected-icon-size: 18px;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .04;--mdc-switch-selected-pressed-state-layer-opacity: .1;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .04;--mdc-switch-unselected-pressed-state-layer-opacity: .1}html .mat-mdc-slide-toggle{--mat-switch-disabled-selected-handle-opacity: .38;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 20px;--mat-switch-selected-handle-size: 20px;--mat-switch-pressed-handle-size: 20px;--mat-switch-with-icon-handle-size: 20px;--mat-switch-selected-handle-horizontal-margin: 0;--mat-switch-selected-with-icon-handle-horizontal-margin: 0;--mat-switch-selected-pressed-handle-horizontal-margin: 0;--mat-switch-unselected-handle-horizontal-margin: 0;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0;--mat-switch-unselected-pressed-handle-horizontal-margin: 0;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 1;--mat-switch-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-switch-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-switch-track-outline-width: 1px;--mat-switch-track-outline-color: transparent;--mat-switch-selected-track-outline-width: 1px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-color: transparent}html{--mdc-switch-selected-focus-state-layer-color: #37546b;--mdc-switch-selected-handle-color: #37546b;--mdc-switch-selected-hover-state-layer-color: #37546b;--mdc-switch-selected-pressed-state-layer-color: #37546b;--mdc-switch-selected-focus-handle-color: #1a3043;--mdc-switch-selected-hover-handle-color: #1a3043;--mdc-switch-selected-pressed-handle-color: #1a3043;--mdc-switch-selected-focus-track-color: #778d9d;--mdc-switch-selected-hover-track-color: #778d9d;--mdc-switch-selected-pressed-track-color: #778d9d;--mdc-switch-selected-track-color: #778d9d;--mdc-switch-disabled-selected-handle-color: #424242;--mdc-switch-disabled-selected-icon-color: #fff;--mdc-switch-disabled-selected-track-color: #424242;--mdc-switch-disabled-unselected-handle-color: #424242;--mdc-switch-disabled-unselected-icon-color: #fff;--mdc-switch-disabled-unselected-track-color: #424242;--mdc-switch-handle-surface-color: #fff;--mdc-switch-selected-icon-color: #fff;--mdc-switch-unselected-focus-handle-color: #212121;--mdc-switch-unselected-focus-state-layer-color: #424242;--mdc-switch-unselected-focus-track-color: #e0e0e0;--mdc-switch-unselected-handle-color: #616161;--mdc-switch-unselected-hover-handle-color: #212121;--mdc-switch-unselected-hover-state-layer-color: #424242;--mdc-switch-unselected-hover-track-color: #e0e0e0;--mdc-switch-unselected-icon-color: #fff;--mdc-switch-unselected-pressed-handle-color: #212121;--mdc-switch-unselected-pressed-state-layer-color: #424242;--mdc-switch-unselected-pressed-track-color: #e0e0e0;--mdc-switch-unselected-track-color: #e0e0e0;--mdc-switch-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-switch-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, .38)}html .mat-mdc-slide-toggle{--mat-switch-label-text-color: rgba(0, 0, 0, .87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color: #37546b;--mdc-switch-selected-handle-color: #37546b;--mdc-switch-selected-hover-state-layer-color: #37546b;--mdc-switch-selected-pressed-state-layer-color: #37546b;--mdc-switch-selected-focus-handle-color: #1a3043;--mdc-switch-selected-hover-handle-color: #1a3043;--mdc-switch-selected-pressed-handle-color: #1a3043;--mdc-switch-selected-focus-track-color: #778d9d;--mdc-switch-selected-hover-track-color: #778d9d;--mdc-switch-selected-pressed-track-color: #778d9d;--mdc-switch-selected-track-color: #778d9d}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color: #e53935;--mdc-switch-selected-handle-color: #e53935;--mdc-switch-selected-hover-state-layer-color: #e53935;--mdc-switch-selected-pressed-state-layer-color: #e53935;--mdc-switch-selected-focus-handle-color: #b71c1c;--mdc-switch-selected-hover-handle-color: #b71c1c;--mdc-switch-selected-pressed-handle-color: #b71c1c;--mdc-switch-selected-focus-track-color: #e57373;--mdc-switch-selected-hover-track-color: #e57373;--mdc-switch-selected-pressed-track-color: #e57373;--mdc-switch-selected-track-color: #e57373}html{--mdc-switch-state-layer-size: 36px}html{--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mdc-radio-state-layer-size: 40px}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #97d6ba;--mdc-radio-selected-hover-icon-color: #97d6ba;--mdc-radio-selected-icon-color: #97d6ba;--mdc-radio-selected-pressed-icon-color: #97d6ba}.mat-mdc-radio-button.mat-primary{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #97d6ba;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1e91ff;--mdc-radio-selected-hover-icon-color: #1e91ff;--mdc-radio-selected-icon-color: #1e91ff;--mdc-radio-selected-pressed-icon-color: #1e91ff}.mat-mdc-radio-button.mat-accent{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #1e91ff;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-radio-button.mat-warn{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}html{--mdc-radio-state-layer-size: 36px}html{--mat-radio-touch-target-display: block}html{--mdc-slider-active-track-height: 6px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 50%;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .6;--mdc-slider-with-tick-marks-container-shape: 50%;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .6;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-slider-value-indicator-width: auto;--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-container-transform: translateX(-50%)}html{--mdc-slider-handle-color: #97d6ba;--mdc-slider-focus-handle-color: #97d6ba;--mdc-slider-hover-handle-color: #97d6ba;--mdc-slider-active-track-color: #97d6ba;--mdc-slider-inactive-track-color: #97d6ba;--mdc-slider-with-tick-marks-inactive-container-color: #97d6ba;--mdc-slider-with-tick-marks-active-container-color: white;--mdc-slider-disabled-active-track-color: #000;--mdc-slider-disabled-handle-color: #000;--mdc-slider-disabled-inactive-track-color: #000;--mdc-slider-label-container-color: #000;--mdc-slider-label-label-text-color: #fff;--mdc-slider-with-overlap-handle-outline-color: #fff;--mdc-slider-with-tick-marks-disabled-container-color: #000}html{--mat-slider-ripple-color: #97d6ba;--mat-slider-hover-state-layer-color: rgba(151, 214, 186, .05);--mat-slider-focus-state-layer-color: rgba(151, 214, 186, .2);--mat-slider-value-indicator-opacity: .6}html .mat-accent{--mdc-slider-handle-color: #1e91ff;--mdc-slider-focus-handle-color: #1e91ff;--mdc-slider-hover-handle-color: #1e91ff;--mdc-slider-active-track-color: #1e91ff;--mdc-slider-inactive-track-color: #1e91ff;--mdc-slider-with-tick-marks-inactive-container-color: #1e91ff;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-accent{--mat-slider-ripple-color: #1e91ff;--mat-slider-hover-state-layer-color: rgba(30, 145, 255, .05);--mat-slider-focus-state-layer-color: rgba(30, 145, 255, .2)}html .mat-warn{--mdc-slider-handle-color: #f44336;--mdc-slider-focus-handle-color: #f44336;--mdc-slider-hover-handle-color: #f44336;--mdc-slider-active-track-color: #f44336;--mdc-slider-inactive-track-color: #f44336;--mdc-slider-with-tick-marks-inactive-container-color: #f44336;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-warn{--mat-slider-ripple-color: #f44336;--mat-slider-hover-state-layer-color: rgba(244, 67, 54, .05);--mat-slider-focus-state-layer-color: rgba(244, 67, 54, .2)}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-item-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 50%;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-selected-container-color: transparent;--mdc-list-list-item-leading-avatar-color: transparent;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-state-layer-color: transparent;--mdc-list-list-item-disabled-state-layer-opacity: 0;--mdc-list-list-item-disabled-label-text-opacity: .38;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px}html{--mdc-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mdc-list-list-item-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-disabled-label-text-color: black;--mdc-list-list-item-disabled-leading-icon-color: black;--mdc-list-list-item-disabled-trailing-icon-color: black;--mdc-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-state-layer-color: black;--mdc-list-list-item-hover-state-layer-opacity: .04;--mdc-list-list-item-focus-state-layer-color: black;--mdc-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #97d6ba;--mdc-radio-selected-hover-icon-color: #97d6ba;--mdc-radio-selected-icon-color: #97d6ba;--mdc-radio-selected-pressed-icon-color: #97d6ba}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1e91ff;--mdc-radio-selected-hover-icon-color: #1e91ff;--mdc-radio-selected-icon-color: #1e91ff;--mdc-radio-selected-pressed-icon-color: #1e91ff}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #97d6ba;--mdc-checkbox-selected-hover-icon-color: #97d6ba;--mdc-checkbox-selected-icon-color: #97d6ba;--mdc-checkbox-selected-pressed-icon-color: #97d6ba;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #97d6ba;--mdc-checkbox-selected-hover-state-layer-color: #97d6ba;--mdc-checkbox-selected-pressed-state-layer-color: #97d6ba;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1e91ff;--mdc-checkbox-selected-hover-icon-color: #1e91ff;--mdc-checkbox-selected-icon-color: #1e91ff;--mdc-checkbox-selected-pressed-icon-color: #1e91ff;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1e91ff;--mdc-checkbox-selected-hover-state-layer-color: #1e91ff;--mdc-checkbox-selected-pressed-state-layer-color: #1e91ff;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#97d6ba}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height: 44px;--mdc-list-list-item-two-line-container-height: 60px;--mdc-list-list-item-three-line-container-height: 84px}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size: 36px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:52px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:68px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: rgba(0, 0, 0, .12)}html{--mat-paginator-container-size: 52px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mdc-secondary-navigation-tab-container-height: 48px}html{--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0}html{--mat-tab-header-divider-color: transparent;--mat-tab-header-divider-height: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color: #97d6ba}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #97d6ba;--mat-tab-header-active-ripple-color: #97d6ba;--mat-tab-header-inactive-ripple-color: #97d6ba;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #97d6ba;--mat-tab-header-active-hover-label-text-color: #97d6ba;--mat-tab-header-active-focus-indicator-color: #97d6ba;--mat-tab-header-active-hover-indicator-color: #97d6ba}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color: #1e91ff}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #1e91ff;--mat-tab-header-active-ripple-color: #1e91ff;--mat-tab-header-inactive-ripple-color: #1e91ff;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #1e91ff;--mat-tab-header-active-hover-label-text-color: #1e91ff;--mat-tab-header-active-focus-indicator-color: #1e91ff;--mat-tab-header-active-hover-indicator-color: #1e91ff}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #f44336;--mat-tab-header-active-ripple-color: #f44336;--mat-tab-header-inactive-ripple-color: #f44336;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #f44336;--mat-tab-header-active-hover-label-text-color: #f44336;--mat-tab-header-active-focus-indicator-color: #f44336;--mat-tab-header-active-hover-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color: #97d6ba;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color: #1e91ff;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color: #f44336;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height: 44px}html{--mdc-checkbox-disabled-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-state-layer-opacity: .16;--mdc-checkbox-selected-hover-state-layer-opacity: .04;--mdc-checkbox-selected-pressed-state-layer-opacity: .16;--mdc-checkbox-unselected-focus-state-layer-opacity: .16;--mdc-checkbox-unselected-hover-state-layer-opacity: .04;--mdc-checkbox-unselected-pressed-state-layer-opacity: .16}html{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1e91ff;--mdc-checkbox-selected-hover-icon-color: #1e91ff;--mdc-checkbox-selected-icon-color: #1e91ff;--mdc-checkbox-selected-pressed-icon-color: #1e91ff;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1e91ff;--mdc-checkbox-selected-hover-state-layer-color: #1e91ff;--mdc-checkbox-selected-pressed-state-layer-color: #1e91ff;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #97d6ba;--mdc-checkbox-selected-hover-icon-color: #97d6ba;--mdc-checkbox-selected-icon-color: #97d6ba;--mdc-checkbox-selected-pressed-icon-color: #97d6ba;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #97d6ba;--mdc-checkbox-selected-hover-state-layer-color: #97d6ba;--mdc-checkbox-selected-pressed-state-layer-color: #97d6ba;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mdc-checkbox-state-layer-size: 36px}html{--mat-checkbox-touch-target-display: block}html{--mdc-text-button-container-shape: 4px;--mdc-text-button-keep-touch-target: false}html{--mdc-filled-button-container-shape: 4px;--mdc-filled-button-keep-touch-target: false}html{--mdc-protected-button-container-shape: 4px;--mdc-protected-button-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mdc-outlined-button-keep-touch-target: false;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 4px}html{--mat-text-button-horizontal-padding: 8px;--mat-text-button-with-icon-horizontal-padding: 8px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: 0}html{--mat-filled-button-horizontal-padding: 16px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -4px}html{--mat-protected-button-horizontal-padding: 16px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -4px}html{--mat-outlined-button-horizontal-padding: 15px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -4px}html{--mdc-text-button-label-text-color: black;--mdc-text-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-text-button-state-layer-color: black;--mat-text-button-disabled-state-layer-color: black;--mat-text-button-ripple-color: rgba(0, 0, 0, .1);--mat-text-button-hover-state-layer-opacity: .04;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12}html{--mdc-filled-button-container-color: white;--mdc-filled-button-label-text-color: black;--mdc-filled-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-filled-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-filled-button-state-layer-color: black;--mat-filled-button-disabled-state-layer-color: black;--mat-filled-button-ripple-color: rgba(0, 0, 0, .1);--mat-filled-button-hover-state-layer-opacity: .04;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12}html{--mdc-protected-button-container-color: white;--mdc-protected-button-label-text-color: black;--mdc-protected-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-protected-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-protected-button-state-layer-color: black;--mat-protected-button-disabled-state-layer-color: black;--mat-protected-button-ripple-color: rgba(0, 0, 0, .1);--mat-protected-button-hover-state-layer-opacity: .04;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12}html{--mdc-outlined-button-disabled-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-button-label-text-color: black;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}html{--mat-outlined-button-state-layer-color: black;--mat-outlined-button-disabled-state-layer-color: black;--mat-outlined-button-ripple-color: rgba(0, 0, 0, .1);--mat-outlined-button-hover-state-layer-opacity: .04;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color: #97d6ba}.mat-mdc-button.mat-primary{--mat-text-button-state-layer-color: #97d6ba;--mat-text-button-ripple-color: rgba(151, 214, 186, .1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #1e91ff}.mat-mdc-button.mat-accent{--mat-text-button-state-layer-color: #1e91ff;--mat-text-button-ripple-color: rgba(30, 145, 255, .1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color: #f44336}.mat-mdc-button.mat-warn{--mat-text-button-state-layer-color: #f44336;--mat-text-button-ripple-color: rgba(244, 67, 54, .1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color: #97d6ba;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-primary{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color: #1e91ff;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-accent{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color: #f44336;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-warn{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color: #97d6ba;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-primary{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color: #1e91ff;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-accent{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color: #f44336;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-warn{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color: #97d6ba;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-primary{--mat-outlined-button-state-layer-color: #97d6ba;--mat-outlined-button-ripple-color: rgba(151, 214, 186, .1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color: #1e91ff;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-accent{--mat-outlined-button-state-layer-color: #1e91ff;--mat-outlined-button-ripple-color: rgba(30, 145, 255, .1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color: #f44336;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-warn{--mat-outlined-button-state-layer-color: #f44336;--mat-outlined-button-ripple-color: rgba(244, 67, 54, .1)}html{--mdc-text-button-container-height: 32px}html{--mdc-filled-button-container-height: 32px}html{--mdc-protected-button-container-height: 32px}html{--mdc-outlined-button-container-height: 32px}html{--mat-text-button-touch-target-display: block}html{--mat-filled-button-touch-target-display: block}html{--mat-protected-button-touch-target-display: block}html{--mat-outlined-button-touch-target-display: block}html{--mdc-icon-button-icon-size: 24px}html{--mdc-icon-button-icon-color: inherit;--mdc-icon-button-disabled-icon-color: rgba(0, 0, 0, .38)}html{--mat-icon-button-state-layer-color: black;--mat-icon-button-disabled-state-layer-color: black;--mat-icon-button-ripple-color: rgba(0, 0, 0, .1);--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color: #97d6ba}html .mat-mdc-icon-button.mat-primary{--mat-icon-button-state-layer-color: #97d6ba;--mat-icon-button-ripple-color: rgba(151, 214, 186, .1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color: #1e91ff}html .mat-mdc-icon-button.mat-accent{--mat-icon-button-state-layer-color: #1e91ff;--mat-icon-button-ripple-color: rgba(30, 145, 255, .1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color: #f44336}html .mat-mdc-icon-button.mat-warn{--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: rgba(244, 67, 54, .1)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 44px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:10px}html{--mdc-fab-container-shape: 50%;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-small-container-shape: 50%;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-extended-fab-container-height: 48px;--mdc-extended-fab-container-shape: 24px;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-container-color: white}html{--mat-fab-foreground-color: black;--mat-fab-state-layer-color: black;--mat-fab-disabled-state-layer-color: black;--mat-fab-ripple-color: rgba(0, 0, 0, .1);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html{--mdc-fab-small-container-color: white}html{--mat-fab-small-foreground-color: black;--mat-fab-small-state-layer-color: black;--mat-fab-small-disabled-state-layer-color: black;--mat-fab-small-ripple-color: rgba(0, 0, 0, .1);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-small-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color: #97d6ba}html .mat-mdc-fab.mat-primary{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color: #1e91ff}html .mat-mdc-fab.mat-accent{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color: #f44336}html .mat-mdc-fab.mat-warn{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color: #97d6ba}html .mat-mdc-mini-fab.mat-primary{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color: #1e91ff}html .mat-mdc-mini-fab.mat-accent{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color: #f44336}html .mat-mdc-mini-fab.mat-warn{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html{--mat-fab-touch-target-display: block}html{--mat-fab-small-touch-target-display: block}html{--mdc-snackbar-container-shape: 4px}html{--mdc-snackbar-container-color: #333333;--mdc-snackbar-supporting-text-color: rgba(255, 255, 255, .87)}html{--mat-snack-bar-button-color: #1e91ff}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 52px;--mat-table-footer-container-height: 48px;--mat-table-row-item-container-height: 48px}html{--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px}html{--mdc-circular-progress-active-indicator-color: #97d6ba}html .mat-accent{--mdc-circular-progress-active-indicator-color: #1e91ff}html .mat-warn{--mdc-circular-progress-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #97d6ba;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: #b9b9b9;--mat-badge-disabled-state-text-color: rgba(0, 0, 0, .38)}.mat-badge-accent{--mat-badge-background-color: #1e91ff;--mat-badge-text-color: white}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-legacy-button-toggle-height: 36px;--mat-legacy-button-toggle-shape: 2px;--mat-legacy-button-toggle-focus-state-layer-opacity: 1}html{--mat-standard-button-toggle-shape: 4px;--mat-standard-button-toggle-hover-state-layer-opacity: .04;--mat-standard-button-toggle-focus-state-layer-opacity: .12}html{--mat-legacy-button-toggle-text-color: rgba(0, 0, 0, .38);--mat-legacy-button-toggle-state-layer-color: rgba(0, 0, 0, .12);--mat-legacy-button-toggle-selected-state-text-color: rgba(0, 0, 0, .54);--mat-legacy-button-toggle-selected-state-background-color: #e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-legacy-button-toggle-disabled-state-background-color: #eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color: #bdbdbd}html{--mat-standard-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-background-color: white;--mat-standard-button-toggle-state-layer-color: black;--mat-standard-button-toggle-selected-state-background-color: #e0e0e0;--mat-standard-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-standard-button-toggle-disabled-state-background-color: white;--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-divider-color: rgb(224.4, 224.4, 224.4)}html{--mat-standard-button-toggle-height: 44px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #97d6ba;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(151, 214, 186, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(151, 214, 186, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(151, 214, 186, .3);--mat-datepicker-toggle-active-state-icon-color: #97d6ba;--mat-datepicker-calendar-date-in-range-state-background-color: rgba(151, 214, 186, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: black;--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(0, 0, 0, .18);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .24);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: rgba(0, 0, 0, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #1e91ff;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(30, 145, 255, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(30, 145, 255, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(30, 145, 255, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(30, 145, 255, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(244, 67, 54, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(244, 67, 54, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color: #1e91ff}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color: #f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 44px;--mat-expansion-header-expanded-state-height: 60px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #97d6ba}.mat-icon.mat-accent{--mat-icon-color: #1e91ff}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #97d6ba;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #97d6ba;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #97d6ba;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #1e91ff;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #1e91ff;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #1e91ff;--mat-stepper-header-edit-state-icon-foreground-color: white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 68px}html{--mat-sort-arrow-color: rgb(117.3, 117.3, 117.3)}html{--mat-toolbar-container-background-color: whitesmoke;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #97d6ba;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #1e91ff;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 60px;--mat-toolbar-mobile-height: 52px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 44px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}html{--mat-badge-text-font: Roboto, sans-serif;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto,sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto,sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto,sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto,sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto,sans-serif;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto,sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto,sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-legacy-button-toggle-label-text-font: Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height: 24px;--mat-legacy-button-toggle-label-text-size: 16px;--mat-legacy-button-toggle-label-text-tracking: .03125em;--mat-legacy-button-toggle-label-text-weight: 400}html{--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 24px;--mat-standard-button-toggle-label-text-size: 16px;--mat-standard-button-toggle-label-text-tracking: .03125em;--mat-standard-button-toggle-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: 14px;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: 14px;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 24px;--mat-option-label-text-size: 16px;--mat-option-label-text-tracking: .03125em;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 24px;--mat-optgroup-label-text-size: 16px;--mat-optgroup-label-text-tracking: .03125em;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .0333333333em}html{--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 16px;--mdc-filled-text-field-label-text-tracking: .03125em;--mdc-filled-text-field-label-text-weight: 400}html{--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 16px;--mdc-outlined-text-field-label-text-tracking: .03125em;--mdc-outlined-text-field-label-text-weight: 400}html{--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 24px;--mat-form-field-container-text-size: 16px;--mat-form-field-container-text-tracking: .03125em;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: 16px;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400}html{--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 24px;--mat-select-trigger-text-size: 16px;--mat-select-trigger-text-tracking: .03125em;--mat-select-trigger-text-weight: 400}html{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: .0125em;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 16px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .03125em}.mat-mdc-standard-chip{--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 20px;--mdc-chip-label-text-size: 14px;--mdc-chip-label-text-tracking: .0178571429em;--mdc-chip-label-text-weight: 400}html .mat-mdc-slide-toggle{--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 20px;--mat-switch-label-text-size: 14px;--mat-switch-label-text-tracking: .0178571429em;--mat-switch-label-text-weight: 400}html{--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 14px;--mdc-slider-label-label-text-line-height: 22px;--mdc-slider-label-label-text-tracking: .0071428571em;--mdc-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: 16px;--mat-menu-item-label-text-tracking: .03125em;--mat-menu-item-label-text-line-height: 24px;--mat-menu-item-label-text-weight: 400}html{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 16px;--mdc-list-list-item-label-text-tracking: .03125em;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: .0178571429em;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mdc-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: 14px;--mat-tab-header-label-text-tracking: .0892857143em;--mat-tab-header-label-text-line-height: 36px;--mat-tab-header-label-text-weight: 500}html{--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: 14px;--mdc-text-button-label-text-tracking: .0892857143em;--mdc-text-button-label-text-weight: 500;--mdc-text-button-label-text-transform: none}html{--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: 14px;--mdc-filled-button-label-text-tracking: .0892857143em;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-label-text-transform: none}html{--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: 14px;--mdc-protected-button-label-text-tracking: .0892857143em;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-label-text-transform: none}html{--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: 14px;--mdc-outlined-button-label-text-tracking: .0892857143em;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-label-text-transform: none}html{--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: 14px;--mdc-extended-fab-label-text-tracking: .0892857143em;--mdc-extended-fab-label-text-weight: 500}html{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}body{background:#e2e7ea}body,body html{margin:0;width:100%;height:100%;font-family:Roboto,Arial,sans-serif}.mat-card.primary{padding:1.5rem}.mat-card.primary .primary-card-header{margin:-1.5rem;margin-bottom:0;padding-top:1.5rem;padding-left:1.5rem;padding-right:1.5rem}.mat-card.primary .primary-card-header h1{margin-bottom:0}.mat-card.primary .primary-card-header .mat-card-header-text{display:none}@media screen and (min-width: 1020px){.mat-card.primary .primary-card-header{background-color:#97d6ba;color:#fff;border-radius:4px 4px 0 0;padding-bottom:1.5rem}}.mat-card.primary .mat-card-content{padding-top:1.5rem}@font-face{font-family:InterVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url("./media/InterVariable-75YQYCJN.woff2") format("woff2")}@font-face{font-family:InterVariable;font-style:italic;font-weight:100 900;font-display:swap;src:url("./media/InterVariable-Italic-54HMV74W.woff2") format("woff2")}body{font-size:14px;font-family:InterVariable,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.white-block{background:#fff;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;padding:16px;border-radius:4px}.white-block h2,.white-block h3,.white-block h4,.white-block h5,.white-block h6{font-weight:400;margin:.3em 0}.white-block h5{color:#959595;font-size:1em}table th{font-weight:600;color:#272727}button{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow .28s cubic-bezier(.4,0,.2,1)}button.primary{background-color:#97d6ba;color:#fff}.ace_editor{border:1px solid #dfdfdf;border-radius:4px}@media screen and (min-width: 1020px){main>app-home,main>app-capability-statement,main>app-igs,main>app-fhir-path,main>app-mapping-language,main>app-transform,main>app-settings{margin:0 auto;padding:3rem 0;width:1000px;display:block}} +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #ffffff}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+)}.toast-error{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+)}.toast-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==)}.toast-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==)}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html{--mat-option-selected-state-label-text-color: #97d6ba;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-accent{--mat-option-selected-state-label-text-color: #1e91ff;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-full-pseudo-checkbox-selected-icon-color: #1e91ff;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}html{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1e91ff;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color: #97d6ba;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-primary{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #97d6ba;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: #1e91ff;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-accent{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1e91ff;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-warn{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mdc-elevated-card-container-shape: 4px}html{--mdc-outlined-card-container-shape: 4px;--mdc-outlined-card-outline-width: 1px}html{--mdc-elevated-card-container-color: white;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mdc-outlined-card-container-color: white;--mdc-outlined-card-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-card-subtitle-text-color: rgba(0, 0, 0, .54)}html{--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color: #97d6ba;--mdc-linear-progress-track-color: rgba(151, 214, 186, .25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color: #1e91ff;--mdc-linear-progress-track-color: rgba(30, 145, 255, .25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color: #f44336;--mdc-linear-progress-track-color: rgba(244, 67, 54, .25)}html{--mdc-plain-tooltip-container-shape: 4px;--mdc-plain-tooltip-supporting-text-line-height: 16px}html{--mdc-plain-tooltip-container-color: #616161;--mdc-plain-tooltip-supporting-text-color: #fff}html{--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px}html{--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px}html{--mdc-filled-text-field-caret-color: #97d6ba;--mdc-filled-text-field-focus-active-indicator-color: #97d6ba;--mdc-filled-text-field-focus-label-text-color: rgba(151, 214, 186, .87);--mdc-filled-text-field-container-color: rgb(244.8, 244.8, 244.8);--mdc-filled-text-field-disabled-container-color: rgb(249.9, 249.9, 249.9);--mdc-filled-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-error-hover-label-text-color: #f44336;--mdc-filled-text-field-error-focus-label-text-color: #f44336;--mdc-filled-text-field-error-label-text-color: #f44336;--mdc-filled-text-field-error-caret-color: #f44336;--mdc-filled-text-field-active-indicator-color: rgba(0, 0, 0, .42);--mdc-filled-text-field-disabled-active-indicator-color: rgba(0, 0, 0, .06);--mdc-filled-text-field-hover-active-indicator-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-error-active-indicator-color: #f44336;--mdc-filled-text-field-error-focus-active-indicator-color: #f44336;--mdc-filled-text-field-error-hover-active-indicator-color: #f44336}html{--mdc-outlined-text-field-caret-color: #97d6ba;--mdc-outlined-text-field-focus-outline-color: #97d6ba;--mdc-outlined-text-field-focus-label-text-color: rgba(151, 214, 186, .87);--mdc-outlined-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-error-caret-color: #f44336;--mdc-outlined-text-field-error-focus-label-text-color: #f44336;--mdc-outlined-text-field-error-label-text-color: #f44336;--mdc-outlined-text-field-error-hover-label-text-color: #f44336;--mdc-outlined-text-field-outline-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-disabled-outline-color: rgba(0, 0, 0, .06);--mdc-outlined-text-field-hover-outline-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-error-focus-outline-color: #f44336;--mdc-outlined-text-field-error-hover-outline-color: #f44336;--mdc-outlined-text-field-error-outline-color: #f44336}html{--mat-form-field-focus-select-arrow-color: rgba(151, 214, 186, .87);--mat-form-field-disabled-input-text-placeholder-color: rgba(0, 0, 0, .38);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: rgba(0, 0, 0, .38);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color: #1e91ff;--mdc-filled-text-field-focus-active-indicator-color: #1e91ff;--mdc-filled-text-field-focus-label-text-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-accent{--mdc-outlined-text-field-caret-color: #1e91ff;--mdc-outlined-text-field-focus-outline-color: #1e91ff;--mdc-outlined-text-field-focus-label-text-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color: #f44336;--mdc-filled-text-field-focus-active-indicator-color: #f44336;--mdc-filled-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mdc-outlined-text-field-caret-color: #f44336;--mdc-outlined-text-field-focus-outline-color: #f44336;--mdc-outlined-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: rgba(244, 67, 54, .87)}html{--mat-form-field-container-height: 52px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 14px;--mat-form-field-filled-with-label-container-padding-top: 22px;--mat-form-field-filled-with-label-container-padding-bottom: 6px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(151, 214, 186, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(30, 145, 255, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(244, 67, 54, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mdc-dialog-container-shape: 4px}html{--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mdc-dialog-container-color: white;--mdc-dialog-subhead-color: rgba(0, 0, 0, .87);--mdc-dialog-supporting-text-color: rgba(0, 0, 0, .6)}.mat-mdc-standard-chip{--mdc-chip-container-shape-radius: 16px;--mdc-chip-with-avatar-avatar-shape-radius: 14px;--mdc-chip-with-avatar-avatar-size: 28px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 0;--mdc-chip-outline-color: transparent;--mdc-chip-disabled-outline-color: transparent;--mdc-chip-focus-outline-color: transparent;--mdc-chip-hover-state-layer-opacity: .04;--mdc-chip-with-avatar-disabled-avatar-opacity: 1;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-selected-hover-state-layer-opacity: .04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1;--mdc-chip-with-icon-disabled-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-container-opacity: .4;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-focus-state-layer-opacity: 0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color: #212121;--mdc-chip-elevated-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-disabled-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-flat-disabled-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #212121;--mdc-chip-selected-label-text-color: #212121;--mdc-chip-with-icon-icon-color: #212121;--mdc-chip-with-icon-disabled-icon-color: #212121;--mdc-chip-with-icon-selected-icon-color: #212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #212121;--mdc-chip-with-trailing-icon-trailing-icon-color: #212121}.mat-mdc-standard-chip{--mat-chip-selected-disabled-trailing-icon-color: #212121;--mat-chip-selected-trailing-icon-color: #212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #97d6ba;--mdc-chip-elevated-selected-container-color: #97d6ba;--mdc-chip-elevated-disabled-container-color: #97d6ba;--mdc-chip-flat-disabled-selected-container-color: #97d6ba;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #1e91ff;--mdc-chip-elevated-selected-container-color: #1e91ff;--mdc-chip-elevated-disabled-container-color: #1e91ff;--mdc-chip-flat-disabled-selected-container-color: #1e91ff;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #f44336;--mdc-chip-elevated-selected-container-color: #f44336;--mdc-chip-elevated-disabled-container-color: #f44336;--mdc-chip-flat-disabled-selected-container-color: #f44336;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height: 28px}html{--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-height: 20px;--mdc-switch-handle-shape: 10px;--mdc-switch-handle-width: 20px;--mdc-switch-selected-icon-size: 18px;--mdc-switch-track-height: 14px;--mdc-switch-track-shape: 7px;--mdc-switch-track-width: 36px;--mdc-switch-unselected-icon-size: 18px;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .04;--mdc-switch-selected-pressed-state-layer-opacity: .1;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .04;--mdc-switch-unselected-pressed-state-layer-opacity: .1}html .mat-mdc-slide-toggle{--mat-switch-disabled-selected-handle-opacity: .38;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 20px;--mat-switch-selected-handle-size: 20px;--mat-switch-pressed-handle-size: 20px;--mat-switch-with-icon-handle-size: 20px;--mat-switch-selected-handle-horizontal-margin: 0;--mat-switch-selected-with-icon-handle-horizontal-margin: 0;--mat-switch-selected-pressed-handle-horizontal-margin: 0;--mat-switch-unselected-handle-horizontal-margin: 0;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0;--mat-switch-unselected-pressed-handle-horizontal-margin: 0;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 1;--mat-switch-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-switch-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-switch-track-outline-width: 1px;--mat-switch-track-outline-color: transparent;--mat-switch-selected-track-outline-width: 1px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-color: transparent}html{--mdc-switch-selected-focus-state-layer-color: #37546b;--mdc-switch-selected-handle-color: #37546b;--mdc-switch-selected-hover-state-layer-color: #37546b;--mdc-switch-selected-pressed-state-layer-color: #37546b;--mdc-switch-selected-focus-handle-color: #1a3043;--mdc-switch-selected-hover-handle-color: #1a3043;--mdc-switch-selected-pressed-handle-color: #1a3043;--mdc-switch-selected-focus-track-color: #778d9d;--mdc-switch-selected-hover-track-color: #778d9d;--mdc-switch-selected-pressed-track-color: #778d9d;--mdc-switch-selected-track-color: #778d9d;--mdc-switch-disabled-selected-handle-color: #424242;--mdc-switch-disabled-selected-icon-color: #fff;--mdc-switch-disabled-selected-track-color: #424242;--mdc-switch-disabled-unselected-handle-color: #424242;--mdc-switch-disabled-unselected-icon-color: #fff;--mdc-switch-disabled-unselected-track-color: #424242;--mdc-switch-handle-surface-color: #fff;--mdc-switch-selected-icon-color: #fff;--mdc-switch-unselected-focus-handle-color: #212121;--mdc-switch-unselected-focus-state-layer-color: #424242;--mdc-switch-unselected-focus-track-color: #e0e0e0;--mdc-switch-unselected-handle-color: #616161;--mdc-switch-unselected-hover-handle-color: #212121;--mdc-switch-unselected-hover-state-layer-color: #424242;--mdc-switch-unselected-hover-track-color: #e0e0e0;--mdc-switch-unselected-icon-color: #fff;--mdc-switch-unselected-pressed-handle-color: #212121;--mdc-switch-unselected-pressed-state-layer-color: #424242;--mdc-switch-unselected-pressed-track-color: #e0e0e0;--mdc-switch-unselected-track-color: #e0e0e0;--mdc-switch-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-switch-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, .38)}html .mat-mdc-slide-toggle{--mat-switch-label-text-color: rgba(0, 0, 0, .87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color: #37546b;--mdc-switch-selected-handle-color: #37546b;--mdc-switch-selected-hover-state-layer-color: #37546b;--mdc-switch-selected-pressed-state-layer-color: #37546b;--mdc-switch-selected-focus-handle-color: #1a3043;--mdc-switch-selected-hover-handle-color: #1a3043;--mdc-switch-selected-pressed-handle-color: #1a3043;--mdc-switch-selected-focus-track-color: #778d9d;--mdc-switch-selected-hover-track-color: #778d9d;--mdc-switch-selected-pressed-track-color: #778d9d;--mdc-switch-selected-track-color: #778d9d}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color: #e53935;--mdc-switch-selected-handle-color: #e53935;--mdc-switch-selected-hover-state-layer-color: #e53935;--mdc-switch-selected-pressed-state-layer-color: #e53935;--mdc-switch-selected-focus-handle-color: #b71c1c;--mdc-switch-selected-hover-handle-color: #b71c1c;--mdc-switch-selected-pressed-handle-color: #b71c1c;--mdc-switch-selected-focus-track-color: #e57373;--mdc-switch-selected-hover-track-color: #e57373;--mdc-switch-selected-pressed-track-color: #e57373;--mdc-switch-selected-track-color: #e57373}html{--mdc-switch-state-layer-size: 36px}html{--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mdc-radio-state-layer-size: 40px}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #97d6ba;--mdc-radio-selected-hover-icon-color: #97d6ba;--mdc-radio-selected-icon-color: #97d6ba;--mdc-radio-selected-pressed-icon-color: #97d6ba}.mat-mdc-radio-button.mat-primary{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #97d6ba;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1e91ff;--mdc-radio-selected-hover-icon-color: #1e91ff;--mdc-radio-selected-icon-color: #1e91ff;--mdc-radio-selected-pressed-icon-color: #1e91ff}.mat-mdc-radio-button.mat-accent{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #1e91ff;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-radio-button.mat-warn{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}html{--mdc-radio-state-layer-size: 36px}html{--mat-radio-touch-target-display: block}html{--mdc-slider-active-track-height: 6px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 50%;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .6;--mdc-slider-with-tick-marks-container-shape: 50%;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .6;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-slider-value-indicator-width: auto;--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-container-transform: translateX(-50%)}html{--mdc-slider-handle-color: #97d6ba;--mdc-slider-focus-handle-color: #97d6ba;--mdc-slider-hover-handle-color: #97d6ba;--mdc-slider-active-track-color: #97d6ba;--mdc-slider-inactive-track-color: #97d6ba;--mdc-slider-with-tick-marks-inactive-container-color: #97d6ba;--mdc-slider-with-tick-marks-active-container-color: white;--mdc-slider-disabled-active-track-color: #000;--mdc-slider-disabled-handle-color: #000;--mdc-slider-disabled-inactive-track-color: #000;--mdc-slider-label-container-color: #000;--mdc-slider-label-label-text-color: #fff;--mdc-slider-with-overlap-handle-outline-color: #fff;--mdc-slider-with-tick-marks-disabled-container-color: #000}html{--mat-slider-ripple-color: #97d6ba;--mat-slider-hover-state-layer-color: rgba(151, 214, 186, .05);--mat-slider-focus-state-layer-color: rgba(151, 214, 186, .2);--mat-slider-value-indicator-opacity: .6}html .mat-accent{--mdc-slider-handle-color: #1e91ff;--mdc-slider-focus-handle-color: #1e91ff;--mdc-slider-hover-handle-color: #1e91ff;--mdc-slider-active-track-color: #1e91ff;--mdc-slider-inactive-track-color: #1e91ff;--mdc-slider-with-tick-marks-inactive-container-color: #1e91ff;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-accent{--mat-slider-ripple-color: #1e91ff;--mat-slider-hover-state-layer-color: rgba(30, 145, 255, .05);--mat-slider-focus-state-layer-color: rgba(30, 145, 255, .2)}html .mat-warn{--mdc-slider-handle-color: #f44336;--mdc-slider-focus-handle-color: #f44336;--mdc-slider-hover-handle-color: #f44336;--mdc-slider-active-track-color: #f44336;--mdc-slider-inactive-track-color: #f44336;--mdc-slider-with-tick-marks-inactive-container-color: #f44336;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-warn{--mat-slider-ripple-color: #f44336;--mat-slider-hover-state-layer-color: rgba(244, 67, 54, .05);--mat-slider-focus-state-layer-color: rgba(244, 67, 54, .2)}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-item-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 50%;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-selected-container-color: transparent;--mdc-list-list-item-leading-avatar-color: transparent;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-state-layer-color: transparent;--mdc-list-list-item-disabled-state-layer-opacity: 0;--mdc-list-list-item-disabled-label-text-opacity: .38;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px}html{--mdc-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mdc-list-list-item-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-disabled-label-text-color: black;--mdc-list-list-item-disabled-leading-icon-color: black;--mdc-list-list-item-disabled-trailing-icon-color: black;--mdc-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-state-layer-color: black;--mdc-list-list-item-hover-state-layer-opacity: .04;--mdc-list-list-item-focus-state-layer-color: black;--mdc-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #97d6ba;--mdc-radio-selected-hover-icon-color: #97d6ba;--mdc-radio-selected-icon-color: #97d6ba;--mdc-radio-selected-pressed-icon-color: #97d6ba}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1e91ff;--mdc-radio-selected-hover-icon-color: #1e91ff;--mdc-radio-selected-icon-color: #1e91ff;--mdc-radio-selected-pressed-icon-color: #1e91ff}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #97d6ba;--mdc-checkbox-selected-hover-icon-color: #97d6ba;--mdc-checkbox-selected-icon-color: #97d6ba;--mdc-checkbox-selected-pressed-icon-color: #97d6ba;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #97d6ba;--mdc-checkbox-selected-hover-state-layer-color: #97d6ba;--mdc-checkbox-selected-pressed-state-layer-color: #97d6ba;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1e91ff;--mdc-checkbox-selected-hover-icon-color: #1e91ff;--mdc-checkbox-selected-icon-color: #1e91ff;--mdc-checkbox-selected-pressed-icon-color: #1e91ff;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1e91ff;--mdc-checkbox-selected-hover-state-layer-color: #1e91ff;--mdc-checkbox-selected-pressed-state-layer-color: #1e91ff;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#97d6ba}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height: 44px;--mdc-list-list-item-two-line-container-height: 60px;--mdc-list-list-item-three-line-container-height: 84px}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size: 36px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:52px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:68px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: rgba(0, 0, 0, .12)}html{--mat-paginator-container-size: 52px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mdc-secondary-navigation-tab-container-height: 48px}html{--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0}html{--mat-tab-header-divider-color: transparent;--mat-tab-header-divider-height: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color: #97d6ba}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #97d6ba;--mat-tab-header-active-ripple-color: #97d6ba;--mat-tab-header-inactive-ripple-color: #97d6ba;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #97d6ba;--mat-tab-header-active-hover-label-text-color: #97d6ba;--mat-tab-header-active-focus-indicator-color: #97d6ba;--mat-tab-header-active-hover-indicator-color: #97d6ba}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color: #1e91ff}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #1e91ff;--mat-tab-header-active-ripple-color: #1e91ff;--mat-tab-header-inactive-ripple-color: #1e91ff;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #1e91ff;--mat-tab-header-active-hover-label-text-color: #1e91ff;--mat-tab-header-active-focus-indicator-color: #1e91ff;--mat-tab-header-active-hover-indicator-color: #1e91ff}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #f44336;--mat-tab-header-active-ripple-color: #f44336;--mat-tab-header-inactive-ripple-color: #f44336;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #f44336;--mat-tab-header-active-hover-label-text-color: #f44336;--mat-tab-header-active-focus-indicator-color: #f44336;--mat-tab-header-active-hover-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color: #97d6ba;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color: #1e91ff;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color: #f44336;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height: 44px}html{--mdc-checkbox-disabled-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-state-layer-opacity: .16;--mdc-checkbox-selected-hover-state-layer-opacity: .04;--mdc-checkbox-selected-pressed-state-layer-opacity: .16;--mdc-checkbox-unselected-focus-state-layer-opacity: .16;--mdc-checkbox-unselected-hover-state-layer-opacity: .04;--mdc-checkbox-unselected-pressed-state-layer-opacity: .16}html{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1e91ff;--mdc-checkbox-selected-hover-icon-color: #1e91ff;--mdc-checkbox-selected-icon-color: #1e91ff;--mdc-checkbox-selected-pressed-icon-color: #1e91ff;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1e91ff;--mdc-checkbox-selected-hover-state-layer-color: #1e91ff;--mdc-checkbox-selected-pressed-state-layer-color: #1e91ff;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #97d6ba;--mdc-checkbox-selected-hover-icon-color: #97d6ba;--mdc-checkbox-selected-icon-color: #97d6ba;--mdc-checkbox-selected-pressed-icon-color: #97d6ba;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #97d6ba;--mdc-checkbox-selected-hover-state-layer-color: #97d6ba;--mdc-checkbox-selected-pressed-state-layer-color: #97d6ba;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mdc-checkbox-state-layer-size: 36px}html{--mat-checkbox-touch-target-display: block}html{--mdc-text-button-container-shape: 4px;--mdc-text-button-keep-touch-target: false}html{--mdc-filled-button-container-shape: 4px;--mdc-filled-button-keep-touch-target: false}html{--mdc-protected-button-container-shape: 4px;--mdc-protected-button-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mdc-outlined-button-keep-touch-target: false;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 4px}html{--mat-text-button-horizontal-padding: 8px;--mat-text-button-with-icon-horizontal-padding: 8px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: 0}html{--mat-filled-button-horizontal-padding: 16px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -4px}html{--mat-protected-button-horizontal-padding: 16px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -4px}html{--mat-outlined-button-horizontal-padding: 15px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -4px}html{--mdc-text-button-label-text-color: black;--mdc-text-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-text-button-state-layer-color: black;--mat-text-button-disabled-state-layer-color: black;--mat-text-button-ripple-color: rgba(0, 0, 0, .1);--mat-text-button-hover-state-layer-opacity: .04;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12}html{--mdc-filled-button-container-color: white;--mdc-filled-button-label-text-color: black;--mdc-filled-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-filled-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-filled-button-state-layer-color: black;--mat-filled-button-disabled-state-layer-color: black;--mat-filled-button-ripple-color: rgba(0, 0, 0, .1);--mat-filled-button-hover-state-layer-opacity: .04;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12}html{--mdc-protected-button-container-color: white;--mdc-protected-button-label-text-color: black;--mdc-protected-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-protected-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-protected-button-state-layer-color: black;--mat-protected-button-disabled-state-layer-color: black;--mat-protected-button-ripple-color: rgba(0, 0, 0, .1);--mat-protected-button-hover-state-layer-opacity: .04;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12}html{--mdc-outlined-button-disabled-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-button-label-text-color: black;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}html{--mat-outlined-button-state-layer-color: black;--mat-outlined-button-disabled-state-layer-color: black;--mat-outlined-button-ripple-color: rgba(0, 0, 0, .1);--mat-outlined-button-hover-state-layer-opacity: .04;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color: #97d6ba}.mat-mdc-button.mat-primary{--mat-text-button-state-layer-color: #97d6ba;--mat-text-button-ripple-color: rgba(151, 214, 186, .1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #1e91ff}.mat-mdc-button.mat-accent{--mat-text-button-state-layer-color: #1e91ff;--mat-text-button-ripple-color: rgba(30, 145, 255, .1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color: #f44336}.mat-mdc-button.mat-warn{--mat-text-button-state-layer-color: #f44336;--mat-text-button-ripple-color: rgba(244, 67, 54, .1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color: #97d6ba;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-primary{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color: #1e91ff;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-accent{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color: #f44336;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-warn{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color: #97d6ba;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-primary{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color: #1e91ff;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-accent{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color: #f44336;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-warn{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color: #97d6ba;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-primary{--mat-outlined-button-state-layer-color: #97d6ba;--mat-outlined-button-ripple-color: rgba(151, 214, 186, .1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color: #1e91ff;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-accent{--mat-outlined-button-state-layer-color: #1e91ff;--mat-outlined-button-ripple-color: rgba(30, 145, 255, .1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color: #f44336;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-warn{--mat-outlined-button-state-layer-color: #f44336;--mat-outlined-button-ripple-color: rgba(244, 67, 54, .1)}html{--mdc-text-button-container-height: 32px}html{--mdc-filled-button-container-height: 32px}html{--mdc-protected-button-container-height: 32px}html{--mdc-outlined-button-container-height: 32px}html{--mat-text-button-touch-target-display: block}html{--mat-filled-button-touch-target-display: block}html{--mat-protected-button-touch-target-display: block}html{--mat-outlined-button-touch-target-display: block}html{--mdc-icon-button-icon-size: 24px}html{--mdc-icon-button-icon-color: inherit;--mdc-icon-button-disabled-icon-color: rgba(0, 0, 0, .38)}html{--mat-icon-button-state-layer-color: black;--mat-icon-button-disabled-state-layer-color: black;--mat-icon-button-ripple-color: rgba(0, 0, 0, .1);--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color: #97d6ba}html .mat-mdc-icon-button.mat-primary{--mat-icon-button-state-layer-color: #97d6ba;--mat-icon-button-ripple-color: rgba(151, 214, 186, .1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color: #1e91ff}html .mat-mdc-icon-button.mat-accent{--mat-icon-button-state-layer-color: #1e91ff;--mat-icon-button-ripple-color: rgba(30, 145, 255, .1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color: #f44336}html .mat-mdc-icon-button.mat-warn{--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: rgba(244, 67, 54, .1)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 44px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:10px}html{--mdc-fab-container-shape: 50%;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-small-container-shape: 50%;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-extended-fab-container-height: 48px;--mdc-extended-fab-container-shape: 24px;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-container-color: white}html{--mat-fab-foreground-color: black;--mat-fab-state-layer-color: black;--mat-fab-disabled-state-layer-color: black;--mat-fab-ripple-color: rgba(0, 0, 0, .1);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html{--mdc-fab-small-container-color: white}html{--mat-fab-small-foreground-color: black;--mat-fab-small-state-layer-color: black;--mat-fab-small-disabled-state-layer-color: black;--mat-fab-small-ripple-color: rgba(0, 0, 0, .1);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-small-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color: #97d6ba}html .mat-mdc-fab.mat-primary{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color: #1e91ff}html .mat-mdc-fab.mat-accent{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color: #f44336}html .mat-mdc-fab.mat-warn{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color: #97d6ba}html .mat-mdc-mini-fab.mat-primary{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color: #1e91ff}html .mat-mdc-mini-fab.mat-accent{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color: #f44336}html .mat-mdc-mini-fab.mat-warn{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html{--mat-fab-touch-target-display: block}html{--mat-fab-small-touch-target-display: block}html{--mdc-snackbar-container-shape: 4px}html{--mdc-snackbar-container-color: #333333;--mdc-snackbar-supporting-text-color: rgba(255, 255, 255, .87)}html{--mat-snack-bar-button-color: #c5ced5}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 52px;--mat-table-footer-container-height: 48px;--mat-table-row-item-container-height: 48px}html{--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px}html{--mdc-circular-progress-active-indicator-color: #97d6ba}html .mat-accent{--mdc-circular-progress-active-indicator-color: #1e91ff}html .mat-warn{--mdc-circular-progress-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #97d6ba;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: #b9b9b9;--mat-badge-disabled-state-text-color: rgba(0, 0, 0, .38)}.mat-badge-accent{--mat-badge-background-color: #1e91ff;--mat-badge-text-color: white}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-legacy-button-toggle-height: 36px;--mat-legacy-button-toggle-shape: 2px;--mat-legacy-button-toggle-focus-state-layer-opacity: 1}html{--mat-standard-button-toggle-shape: 4px;--mat-standard-button-toggle-hover-state-layer-opacity: .04;--mat-standard-button-toggle-focus-state-layer-opacity: .12}html{--mat-legacy-button-toggle-text-color: rgba(0, 0, 0, .38);--mat-legacy-button-toggle-state-layer-color: rgba(0, 0, 0, .12);--mat-legacy-button-toggle-selected-state-text-color: rgba(0, 0, 0, .54);--mat-legacy-button-toggle-selected-state-background-color: #e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-legacy-button-toggle-disabled-state-background-color: #eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color: #bdbdbd}html{--mat-standard-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-background-color: white;--mat-standard-button-toggle-state-layer-color: black;--mat-standard-button-toggle-selected-state-background-color: #e0e0e0;--mat-standard-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-standard-button-toggle-disabled-state-background-color: white;--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-divider-color: rgb(224.4, 224.4, 224.4)}html{--mat-standard-button-toggle-height: 44px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #97d6ba;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(151, 214, 186, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(151, 214, 186, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(151, 214, 186, .3);--mat-datepicker-toggle-active-state-icon-color: #97d6ba;--mat-datepicker-calendar-date-in-range-state-background-color: rgba(151, 214, 186, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: black;--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(0, 0, 0, .18);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .24);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: rgba(0, 0, 0, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #1e91ff;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(30, 145, 255, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(30, 145, 255, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(30, 145, 255, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(30, 145, 255, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(244, 67, 54, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(244, 67, 54, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color: #1e91ff}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color: #f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 44px;--mat-expansion-header-expanded-state-height: 60px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #97d6ba}.mat-icon.mat-accent{--mat-icon-color: #1e91ff}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #97d6ba;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #97d6ba;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #97d6ba;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #1e91ff;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #1e91ff;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #1e91ff;--mat-stepper-header-edit-state-icon-foreground-color: white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 68px}html{--mat-sort-arrow-color: rgb(117.3, 117.3, 117.3)}html{--mat-toolbar-container-background-color: whitesmoke;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #97d6ba;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #1e91ff;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 60px;--mat-toolbar-mobile-height: 52px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 44px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}html{--mat-badge-text-font: Roboto, sans-serif;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto,sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto,sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto,sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto,sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto,sans-serif;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto,sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto,sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-legacy-button-toggle-label-text-font: Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height: 24px;--mat-legacy-button-toggle-label-text-size: 16px;--mat-legacy-button-toggle-label-text-tracking: .03125em;--mat-legacy-button-toggle-label-text-weight: 400}html{--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 24px;--mat-standard-button-toggle-label-text-size: 16px;--mat-standard-button-toggle-label-text-tracking: .03125em;--mat-standard-button-toggle-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: 14px;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: 14px;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 24px;--mat-option-label-text-size: 16px;--mat-option-label-text-tracking: .03125em;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 24px;--mat-optgroup-label-text-size: 16px;--mat-optgroup-label-text-tracking: .03125em;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .0333333333em}html{--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 16px;--mdc-filled-text-field-label-text-tracking: .03125em;--mdc-filled-text-field-label-text-weight: 400}html{--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 16px;--mdc-outlined-text-field-label-text-tracking: .03125em;--mdc-outlined-text-field-label-text-weight: 400}html{--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 24px;--mat-form-field-container-text-size: 16px;--mat-form-field-container-text-tracking: .03125em;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: 16px;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400}html{--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 24px;--mat-select-trigger-text-size: 16px;--mat-select-trigger-text-tracking: .03125em;--mat-select-trigger-text-weight: 400}html{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: .0125em;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 16px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .03125em}.mat-mdc-standard-chip{--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 20px;--mdc-chip-label-text-size: 14px;--mdc-chip-label-text-tracking: .0178571429em;--mdc-chip-label-text-weight: 400}html .mat-mdc-slide-toggle{--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 20px;--mat-switch-label-text-size: 14px;--mat-switch-label-text-tracking: .0178571429em;--mat-switch-label-text-weight: 400}html{--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 14px;--mdc-slider-label-label-text-line-height: 22px;--mdc-slider-label-label-text-tracking: .0071428571em;--mdc-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: 16px;--mat-menu-item-label-text-tracking: .03125em;--mat-menu-item-label-text-line-height: 24px;--mat-menu-item-label-text-weight: 400}html{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 16px;--mdc-list-list-item-label-text-tracking: .03125em;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: .0178571429em;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mdc-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: 14px;--mat-tab-header-label-text-tracking: .0892857143em;--mat-tab-header-label-text-line-height: 36px;--mat-tab-header-label-text-weight: 500}html{--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: 14px;--mdc-text-button-label-text-tracking: .0892857143em;--mdc-text-button-label-text-weight: 500;--mdc-text-button-label-text-transform: none}html{--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: 14px;--mdc-filled-button-label-text-tracking: .0892857143em;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-label-text-transform: none}html{--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: 14px;--mdc-protected-button-label-text-tracking: .0892857143em;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-label-text-transform: none}html{--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: 14px;--mdc-outlined-button-label-text-tracking: .0892857143em;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-label-text-transform: none}html{--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: 14px;--mdc-extended-fab-label-text-tracking: .0892857143em;--mdc-extended-fab-label-text-weight: 500}html{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}body{background:#e2e7ea}body,body html{margin:0;width:100%;height:100%;font-family:Roboto,Arial,sans-serif}.mat-card.primary{padding:1.5rem}.mat-card.primary .primary-card-header{margin:-1.5rem;margin-bottom:0;padding-top:1.5rem;padding-left:1.5rem;padding-right:1.5rem}.mat-card.primary .primary-card-header h1{margin-bottom:0}.mat-card.primary .primary-card-header .mat-card-header-text{display:none}@media screen and (min-width: 1020px){.mat-card.primary .primary-card-header{background-color:#97d6ba;color:#fff;border-radius:4px 4px 0 0;padding-bottom:1.5rem}}.mat-card.primary .mat-card-content{padding-top:1.5rem}@font-face{font-family:InterVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url("./media/InterVariable-75YQYCJN.woff2") format("woff2")}@font-face{font-family:InterVariable;font-style:italic;font-weight:100 900;font-display:swap;src:url("./media/InterVariable-Italic-54HMV74W.woff2") format("woff2")}body{font-size:14px;font-family:InterVariable,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.white-block{background:#fff;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;padding:16px;border-radius:4px}.white-block h2,.white-block h3,.white-block h4,.white-block h5,.white-block h6{font-weight:400;margin:.3em 0}.white-block h5{color:#959595;font-size:1em}table th{font-weight:600;color:#272727}button{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow .28s cubic-bezier(.4,0,.2,1)}button.primary{background-color:#97d6ba;color:#fff}.ace_editor{border:1px solid #dfdfdf;border-radius:4px}@media screen and (min-width: 1020px){main>app-home,main>app-capability-statement,main>app-igs,main>app-fhir-path,main>app-mapping-language,main>app-transform,main>app-settings{margin:0 auto;padding:3rem 0;width:1000px;display:block}} From 13f0791f2f6a8883c443c5ea73d33be814315657 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Wed, 7 Jan 2026 08:51:25 +0100 Subject: [PATCH 18/23] matchbox#425 patch is still needed --- jmeter/test.http | 2 +- .../fhir/r5/context/BaseWorkerContext.java | 22 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/jmeter/test.http b/jmeter/test.http index 8af39482ac0..194d2ae925e 100644 --- a/jmeter/test.http +++ b/jmeter/test.http @@ -22,7 +22,7 @@ Content-Type: application/fhir+json { "attachment" : { "language" : "de-CH" -^ } + } } ] } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java index 02e36baf52b..cf87601bdc7 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java @@ -349,6 +349,9 @@ public int compare(T arg1, T arg2) { protected ContextUtilities cutils; private List suppressedMappings; + // matchbox patch https://github.com/ahdis/matchbox/issues/425 + private Locale locale; + protected BaseWorkerContext() throws FileNotFoundException, IOException, FHIRException { setValidationMessageLanguage(getLocale()); clock = new TimeTracker(); @@ -437,6 +440,7 @@ protected void copy(BaseWorkerContext other) { cachingAllowed = other.cachingAllowed; suppressedMappings = other.suppressedMappings; cutils.setSuppressedMappings(other.suppressedMappings); + locale = other.locale; // matchbox patch https://github.com/ahdis/matchbox/issues/425 } } @@ -3779,7 +3783,23 @@ public List fetchResourceVersions(Class class_, Strin } public void setLocale(Locale locale) { - super.setLocale(locale); + // matchbox patch https://github.com/ahdis/matchbox/issues/425 + if (this.locale == null) { + this.locale = locale; + super.setLocale(locale); + } else { + if (!this.locale.equals(locale)) { + this.locale = locale; + super.setLocale(locale); + if (locale != null) { + log.info("changing locale to" + locale.toLanguageTag()); + } else { + log.info("resetting locale"); + } + } + } + // END matchbox patch + if (locale == null) { return; } From 5deaf7a80435cb95d47b1d2cc2a374d5a3e4abd1 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Wed, 7 Jan 2026 09:14:18 +0100 Subject: [PATCH 19/23] Release 4.0.16 --- docs/changelog.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 4025f63e08c..4837e87383c 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,8 +1,8 @@ -2025 Release 4.0.16 +2026/01/07 Release 4.0.16 -- adapt test and map for (440) +- adapt test and map for (#440) - update org.hl7.fhir.core 6.7.10 (#448) -- support validating CodeableConcept in internal tx (448) +- support validating CodeableConcept in internal tx (#448) - FHIR R4 validation error with R5 extension (#424) 2025/11/03 Release 4.0.15 From cc01ca15d4e32f67a5ba87974d0feb5fbb0a83af Mon Sep 17 00:00:00 2001 From: oliveregger Date: Wed, 7 Jan 2026 23:42:55 +0100 Subject: [PATCH 20/23] remove autoinstall --- .../validation/ValidationProvider.java | 88 ------------------- 1 file changed, 88 deletions(-) diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/validation/ValidationProvider.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/validation/ValidationProvider.java index fa6ada35e7a..ae84be359ab 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/validation/ValidationProvider.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/validation/ValidationProvider.java @@ -166,11 +166,6 @@ public IBaseResource validate(final HttpServletRequest theRequest) { } } - // Check if the IG should be auto-installed - if (!cliContext.isHttpReadOnly()) { - this.ensureIgIsInstalled(theRequest.getParameter("ig"), theRequest.getParameter("profile")); - } - if (theRequest.getParameter("profile") == null) { return this.getOoForError("The 'profile' parameter must be provided"); } @@ -389,89 +384,6 @@ private IBaseResource getOoForError(final @NonNull String message) { return VersionConvertorFactory_40_50.convertResource(oo); } - private void ensureIgIsInstalled(@Nullable final String ig, - final String profile) { - if (ig != null) { - // Easy case, the IG is known - final var parts = ig.split("#"); - if (!this.igProvider.has(parts[0], parts[1])) { - log.debug("Auto-installing the IG '{}' version '{}'", parts[0], parts[1]); - this.igProvider.installFromInternetRegistry(parts[0], parts[1]); - } - return; - } - - if (profile.startsWith("http://hl7.org/fhir/")) { - log.debug("Profile '{}' is a core FHIR profile, no need to install an IG", profile); - return; - } - - // Harder case, only the profile is known - final var parts = profile.split("\\|"); - final String canonical; - final String version; - if (parts.length == 2) { - final Boolean found = new TransactionTemplate(this.myTxManager) - .execute(tx -> this.myPackageVersionResourceDao.getPackageVersionByCanonicalAndVersion(parts[0], parts[1]).isPresent()); - if (found != null && found) { - // The profile was found in the database, the IG is installed - return; - } - canonical = parts[0]; - version = parts[1]; - } else { - canonical = profile; - version = null; - } - - // The profile was not found in the database, we need to search for the IG that contains it - final var gson = new Gson(); - final var igSearchUrl = - "https://packages.simplifier.net/catalog?canonical=%s&prerelease=false".formatted(URLEncoder.encode(canonical, StandardCharsets.UTF_8)); - final SimplifierPackage[] packages; - try (final CloseableHttpClient httpclient = HttpClients.createDefault()) { - final var httpget = new HttpGet(igSearchUrl); - packages = httpclient.execute(httpget, response -> - gson.fromJson(new InputStreamReader(response.getEntity().getContent()), SimplifierPackage[].class)); - } catch (final Exception e) { - log.error("Error while searching for IGs", e); - return; - } - - if (packages == null || packages.length == 0) { - return; - } - log.debug("Found {} IGs for profile '{}', checking the first one ('{}')", packages.length, profile, - packages[0].getName()); - if (version != null) { - // This might not be always true, but it's a good heuristic: let's use the profile version as the IG version - this.igProvider.installFromInternetRegistry(packages[0].getName(), version); - return; - } - // We have to search for the latest profile version - final var versionSearchUrl = "https://packages.simplifier.net/" + packages[0].getName(); - final SimplifierPackageVersionsObject versionsObject; - try (final CloseableHttpClient httpclient = HttpClients.createDefault()) { - final var httpget = new HttpGet(versionSearchUrl); - versionsObject = httpclient.execute(httpget, response -> - gson.fromJson(new InputStreamReader(response.getEntity().getContent()), SimplifierPackageVersionsObject.class)); - } catch (final Exception e) { - log.error("Error while searching for IG versions", e); - return; - } - - if (versionsObject == null || versionsObject.getVersions() == null || versionsObject.getVersions().isEmpty()) { - return; - } - - final var latestVersion = versionsObject.getVersions().keySet().toArray()[ versionsObject.getVersions().size()-1].toString(); - try { - this.igProvider.installFromInternetRegistry(packages[0].getName(), latestVersion); - } catch (final Exception e) { - log.error("Error while installing IG version", e); - } - } - public static List doValidate(final MatchboxEngine engine, String content, final EncodingEnum encoding, From 17380324286ff8f81a49adeef5dc8561142b88c9 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Wed, 7 Jan 2026 23:43:49 +0100 Subject: [PATCH 21/23] fix tho loading #452 --- docs/changelog.md | 2 ++ .../ch/ahdis/matchbox/engine/MatchboxEngine.java | 6 +++--- .../hl7/fhir/r5/context/BaseWorkerContext.java | 15 +++++++++------ .../packages/IgLoaderFromJpaPackageCache.java | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 4837e87383c..c34198149e1 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,8 @@ - update org.hl7.fhir.core 6.7.10 (#448) - support validating CodeableConcept in internal tx (#448) - FHIR R4 validation error with R5 extension (#424) +- Fix THO loading: Unknown code '26' in the CodeSystem 'http://terminology.hl7.org/CodeSystem/object-role' version '4.0.1' (#452) +- Remove auto install ig's (did not handle -ballot versions) 2025/11/03 Release 4.0.15 diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java index de564c94b04..cd156817534 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java @@ -285,7 +285,7 @@ public MatchboxEngine getEngineR4() throws MatchboxEngineCreationException { log.info("loaded hl7.fhir.r4.core#4.0.1 from classpath"); engine.setVersion(FhirPublication.R4.toCode()); try { - engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_TERMINOLOGY)); + engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_TERMINOLOGY65)); engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_UV_EXTENSIONS)); if (this.withXVersion) { this.removeStructureMaps(engine); @@ -330,7 +330,7 @@ public MatchboxEngine getEngineR4B() throws MatchboxEngineCreationException { log.info("loaded hl7.fhir.r4b.core#4.3.0 from classpath"); engine.setVersion(FhirPublication.R4B.toCode()); try { - engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_TERMINOLOGY)); + engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_TERMINOLOGY65)); engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_UV_EXTENSIONS)); if (this.withXVersion) { this.removeStructureMaps(engine); @@ -375,7 +375,7 @@ public MatchboxEngine getEngineR5() throws MatchboxEngineCreationException { log.info("loaded hl7.fhir.r5.core#5.0.0 from classpath"); engine.setVersion(FhirPublication.R5.toCode()); try { - engine.loadPackage(this.getNpmPackageStream(PACKAGE_R5_TERMINOLOGY)); + engine.loadPackage(this.getNpmPackageStream(PACKAGE_R5_TERMINOLOGY65)); engine.loadPackage(this.getNpmPackageStream(PACKAGE_R5_UV_EXTENSIONS)); if (this.withXVersion) { this.removeStructureMaps(engine); diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java index cf87601bdc7..8d21903c403 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java @@ -617,18 +617,21 @@ public void cacheResourceFromPackage(Resource r, PackageInformation packageInfo) if (Utilities.existsInList(url, "http://hl7.org/fhir/SearchParameter/example")) { return; } - // matchbox patch for duplicate resources, see https://github.com/ahdis/matchbox/issues/227 - // org.hl7.fhir.r5.conformance.R5ExtensionsLoader.loadR5SpecialTypes(R5ExtensionsLoader.java:141) + // matchbox patch for duplicate resources, see https://github.com/ahdis/matchbox/issues/227 and issues/452 CanonicalResource ex = fetchResourceWithException(m.fhirType(), url); - if (ex.getVersion() != null && m.getVersion() != null && laterVersion(m.getVersion(), ex.getVersion())) { + boolean forceDrop = false; + if (url.startsWith("http://terminology.hl7.org/") && ex.getVersion()!=null && ex.getSourcePackage()!=null && ex.getVersion().equals(ex.getSourcePackage().getVersion()) ) { + forceDrop = true; + } + if (forceDrop || (ex.getVersion() != null && m.getVersion() != null && laterVersion(m.getVersion(), ex.getVersion()))) { logger.logDebugMessage(LogCategory.INIT, - "Note replacing old version: " + "Note replacing existing version (is older): " + formatMessage(I18nConstants.DUPLICATE_RESOURCE_, url, - m.getVersion(), ex.getVersion(), ex.fhirType())); + m.getVersion(), ex.getVersion(), ex.fhirType()) + (forceDrop ? "forced" : "")); dropResource(ex); } else { logger.logDebugMessage(LogCategory.INIT, - "Note keeping newer version: " + "Note keeping existing version (is newer): " + formatMessage(I18nConstants.DUPLICATE_RESOURCE_, url, m.getVersion(), diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java index 421fd3514b6..df4e800036d 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java @@ -180,7 +180,7 @@ public void loadIg(List igs, Map bina switch (FhirVersionEnum.forVersionString(this.getVersion())) { case R4, R4B -> { if (src.startsWith("hl7.terminology#6.5.0")) { - log.info("Requesting to load '{}', loading '{}' instead'", src, PACKAGE_R4_TERMINOLOGY); + log.info("Requesting to load '{}', loading '{}' instead'", src, PACKAGE_R4_TERMINOLOGY65); loadIg(igs, binaries, PACKAGE_R4_TERMINOLOGY65, recursive); return; } @@ -197,7 +197,7 @@ public void loadIg(List igs, Map bina } case R5 -> { if (src.startsWith("hl7.terminology#6.5.0")) { - log.info("Requesting to load '{}', loading from classpath '{}' instead'", src, PACKAGE_R5_TERMINOLOGY); + log.info("Requesting to load '{}', loading from classpath '{}' instead'", src, PACKAGE_R5_TERMINOLOGY65); loadIg(igs, binaries, PACKAGE_R5_TERMINOLOGY65, recursive); return; } From 5c485abae45ed90c7460a8cce84d093882786b58 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Thu, 8 Jan 2026 15:35:55 +0100 Subject: [PATCH 22/23] change date --- docs/changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/changelog.md b/docs/changelog.md index c34198149e1..b9c91667cf9 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,4 +1,4 @@ -2026/01/07 Release 4.0.16 +2026/01/08 Release 4.0.16 - adapt test and map for (#440) - update org.hl7.fhir.core 6.7.10 (#448) From 81d3a31be9cbb8ae883ffaeaf1e7b381e2c97399 Mon Sep 17 00:00:00 2001 From: oliveregger Date: Thu, 8 Jan 2026 16:46:30 +0100 Subject: [PATCH 23/23] terminology#7.0.1 Fixes ahdis/matchbox#452 --- docs/changelog.md | 3 +++ .../ahdis/matchbox/engine/MatchboxEngine.java | 12 +++++++----- .../npm/FilesystemPackageCacheManager.java | 2 -- .../resources/hl7.terminology.r4#6.3.0.tgz | Bin 5044762 -> 0 bytes .../resources/hl7.terminology.r4#6.5.0.tgz | Bin 5018239 -> 0 bytes .../resources/hl7.terminology.r4#7.0.1.tgz | Bin 0 -> 4876625 bytes .../resources/hl7.terminology.r5#6.3.0.tgz | Bin 5059394 -> 0 bytes .../resources/hl7.terminology.r5#6.5.0.tgz | Bin 5036017 -> 0 bytes .../resources/hl7.terminology.r5#7.0.1.tgz | Bin 0 -> 4885578 bytes .../packages/IgLoaderFromJpaPackageCache.java | 18 ++++++++++++++---- .../src/main/resources/application.yaml | 8 -------- .../test/resources/application-test-r4.yaml | 8 -------- .../resources/application-test-r5onr4.yaml | 8 -------- matchbox-server/with-alis/application.yaml | 8 -------- matchbox-server/with-ans/application.yaml | 8 -------- matchbox-server/with-ca/application.yaml | 8 -------- matchbox-server/with-cda-r5/application.yaml | 8 -------- matchbox-server/with-cda/application.yaml | 8 -------- matchbox-server/with-ch/application.yaml | 4 +++- matchbox-server/with-elm/application.yaml | 8 -------- matchbox-server/with-eprik/application.yaml | 8 -------- matchbox-server/with-eu/application.yaml | 8 -------- matchbox-server/with-fr/application.yaml | 8 -------- matchbox-server/with-gazelle/application.yaml | 8 -------- matchbox-server/with-ips/application.yaml | 8 -------- matchbox-server/with-it/application.yaml | 8 -------- .../with-oneengine/application.yaml | 8 -------- .../with-settings/application.yaml | 8 -------- matchbox-server/with-who/application.yaml | 8 -------- 29 files changed, 27 insertions(+), 156 deletions(-) delete mode 100644 matchbox-engine/src/main/resources/hl7.terminology.r4#6.3.0.tgz delete mode 100644 matchbox-engine/src/main/resources/hl7.terminology.r4#6.5.0.tgz create mode 100644 matchbox-engine/src/main/resources/hl7.terminology.r4#7.0.1.tgz delete mode 100644 matchbox-engine/src/main/resources/hl7.terminology.r5#6.3.0.tgz delete mode 100644 matchbox-engine/src/main/resources/hl7.terminology.r5#6.5.0.tgz create mode 100644 matchbox-engine/src/main/resources/hl7.terminology.r5#7.0.1.tgz diff --git a/docs/changelog.md b/docs/changelog.md index b9c91667cf9..4b3ddc6e433 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,6 +6,9 @@ - FHIR R4 validation error with R5 extension (#424) - Fix THO loading: Unknown code '26' in the CodeSystem 'http://terminology.hl7.org/CodeSystem/object-role' version '4.0.1' (#452) - Remove auto install ig's (did not handle -ballot versions) +- Use hl7.terminology#7.0.1 as FHIR Java validator 6.7.10 is doing (#452) + +NOTE: Remove in your installation existing classpath entries for hl7.terminology#x.x.x in application.yaml 2025/11/03 Release 4.0.15 diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java index cd156817534..f3df0d49072 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java @@ -99,8 +99,10 @@ public class MatchboxEngine extends ValidationEngine { // Current packages that are provided with Matchbox Engine - public static final String PACKAGE_R4_TERMINOLOGY = "hl7.terminology.r4#6.3.0"; - public static final String PACKAGE_R5_TERMINOLOGY = "hl7.terminology.r5#6.3.0"; + public static final String PACKAGE_R4_TERMINOLOGY = "hl7.terminology.r4#7.0.1"; + public static final String PACKAGE_R5_TERMINOLOGY = "hl7.terminology.r5#7.0.1"; + public static final String PACKAGE_R4_TERMINOLOGY63 = "hl7.terminology.r4#6.3.0"; + public static final String PACKAGE_R5_TERMINOLOGY63 = "hl7.terminology.r5#6.3.0"; public static final String PACKAGE_R4_TERMINOLOGY65 = "hl7.terminology.r4#6.5.0"; public static final String PACKAGE_R5_TERMINOLOGY65 = "hl7.terminology.r5#6.5.0"; public static final String PACKAGE_R4_UV_EXTENSIONS = "hl7.fhir.uv.extensions.r4#5.2.0"; @@ -285,7 +287,7 @@ public MatchboxEngine getEngineR4() throws MatchboxEngineCreationException { log.info("loaded hl7.fhir.r4.core#4.0.1 from classpath"); engine.setVersion(FhirPublication.R4.toCode()); try { - engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_TERMINOLOGY65)); + engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_TERMINOLOGY)); engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_UV_EXTENSIONS)); if (this.withXVersion) { this.removeStructureMaps(engine); @@ -330,7 +332,7 @@ public MatchboxEngine getEngineR4B() throws MatchboxEngineCreationException { log.info("loaded hl7.fhir.r4b.core#4.3.0 from classpath"); engine.setVersion(FhirPublication.R4B.toCode()); try { - engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_TERMINOLOGY65)); + engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_TERMINOLOGY)); engine.loadPackage(this.getNpmPackageStream(PACKAGE_R4_UV_EXTENSIONS)); if (this.withXVersion) { this.removeStructureMaps(engine); @@ -375,7 +377,7 @@ public MatchboxEngine getEngineR5() throws MatchboxEngineCreationException { log.info("loaded hl7.fhir.r5.core#5.0.0 from classpath"); engine.setVersion(FhirPublication.R5.toCode()); try { - engine.loadPackage(this.getNpmPackageStream(PACKAGE_R5_TERMINOLOGY65)); + engine.loadPackage(this.getNpmPackageStream(PACKAGE_R5_TERMINOLOGY)); engine.loadPackage(this.getNpmPackageStream(PACKAGE_R5_UV_EXTENSIONS)); if (this.withXVersion) { this.removeStructureMaps(engine); diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java index 5fa33319e33..6b9a9295c04 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java @@ -360,9 +360,7 @@ protected InputStreamWithSrc loadFromPackageServer(String id, String version) { String packageName = id + "#" + version; switch (packageName) { case MatchboxEngine.PACKAGE_R4_TERMINOLOGY: - case MatchboxEngine.PACKAGE_R4_TERMINOLOGY65: case MatchboxEngine.PACKAGE_R5_TERMINOLOGY: - case MatchboxEngine.PACKAGE_R5_TERMINOLOGY65: case MatchboxEngine.PACKAGE_R4_UV_EXTENSIONS: case MatchboxEngine.PACKAGE_R5_UV_EXTENSIONS: ourLog.info("loading from classpath "+id); diff --git a/matchbox-engine/src/main/resources/hl7.terminology.r4#6.3.0.tgz b/matchbox-engine/src/main/resources/hl7.terminology.r4#6.3.0.tgz deleted file mode 100644 index 33b186924e15a05ac01ff0a5bad989f865a3f7ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5044762 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 z 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

    GuvxFPpJ{GtAOWYM2yrPl|lLxlyX> zmj2C|WaP`-q0>B1xYF7CeRlt?s6@MZO-78p%wVQ^smx8wC!`^Bs-(Rff1T#W!qW4u zBm4RNkSh!A;b29gV$LhF7Ct4qCVcK!wKnPcVuP+{aCy1*Z!Px@xbDIgca0}Q*$16wN1LbF(dKEU zD0|}uml&o?J!3s3@+P#2R<$?B&>?oTd59ft9%5Ls!3)l6c5Ja*-}kmo^nisQ{Y#qs8yqASJ}P;cP|90DisSIft) zOn7Z>D|Dc;n9=wAt%?%&Fk08E!VHUbLGOVtNz!Ow;;E} zVfg5wdGz)n^gMdIK~MN}uf^J_7+14r0TJTy(zTxOVo*1)1ohQuN&$2Jx^m`A)B$XN z`@OH+&rzU@y5ZH2Lh zN#pt7?q>H{fyI7&v@|@eot!tS_#qi3qk0BC;iCm#iDn!0L_=sQ;DLl1j3#t`HRjiW zJ0{tcRJ0WHC-lByyg+;ya|1INummy?|3i-Xi_#eyMCx|%!P(Pp*Kk`#(_m-euE>lh zW_$gJty52HwS;>EYnW^41>ut9iW6u4)v5)n>w7lJ{UskWb$?Av-Cw^$-N?{vHyW>( zf3%c7tJZeOk7Q69YZ#QKKR5K0@KHs|s`(fa4x_2fBm}^5S#zI#RmwrHjOcqj#P7(T zu4eO1_GFE@Z6qdpf*2pzdldt6VH0EAHTW5Q9AJ4Wm`x;aotwIr7-RrdXAh`+h4x?*02A$-JziE;!V!Pi8R8};C<77#GLu8 z+Dm9Th&5t}-eNb19~D-6sQEz($1_d{x{tP^8&+i(bnCFAl-CC-N@{1yU?M{O<(+aj z;#EbM$T%?6cLY@c-xQ-W{)LmT5LA~wh399C^#%pT9*D74t(_2KP{YL7)W`QR6^6a$ zQg9bD#P$XP&Df>0@thpD?kcbv2alJ|jcUS|2&iCCxlujucB|#hM+p7HBc>e2-l(md zX_Z`^l9DlAJ4RFd$->_xe8(2*QV|Nd9$MoSJp|Jr*uV*SipmJ}ymC}|t~iNQY(&w1 zRQQg)V>mW3M*=Z2V=LTF{E9bU9=N1SI*8vt!UJzKmdOA^gEruQUHqRLqp|0T9*Tmo7W(IQv#H!#l~=1&AiabYx(g>z@s%h)9Lh**X~DRec4wdi z%u;Y>n8DPIHTMVeNHTuV5xFpJ3Y|;P!*S*4Rprf#Ls;CSqvvnlJg>ZhRbGo^>q*KN zOo^jsUE4C(P)12X$W`ry%XYKDYD#%}ctv!WFBzc`I7%XU>7IW7d!Vqy_XX;|`~C0L zFaPo{|APPd2lXQk=Z{~W{c?O%d1IZteOY<+Gy0>;BH&km^OKOD#y{<|@*4{+ah-_aB- z9+MZoL&GZ&6Jo6Za43KdJMTu3(16pB)EROcG$U$*26Q*|M;J>eR3nqP$vWlQ*b7m5 z4Nbpg-3!P#i{($w`uFoW>)UFptRpwk_DIfOH``d_vJ`h|FA5MvWws}vA+PkgigC5( z01r!6lO-!zZ#nB zF@CEWZ46}Q2bbO$wf>x}C0IIB{L74AO$-Q^1MlB>C0oHoO1a}Jb9su%k9-yyokRwn zfs4_`L*#fGrks&Rjgjw(n!d~`(G&YJ9wwX?UmZ;LXjvJ-PfLK@CG4|DEZQn)YKoqDxSJgPr$3oO z^xLg6G|cKx|H-A@w+V&ax0%YiZ|@Ox-)1T4BDcb9N|^3hhQtYDsBA8R@Y_t~;J0ty zR$f~5w}&q)Z~uSx-hH`|+{hb!6~s6`o0>yXx4ubUuRn^US{zFhElSO!?j-Q)FCcWij4#R5>ML?V%y$o%D(QG|Qr-sJ4x z&U=3vO~v45D6TKX$>@40F0aJ&dNh9fWObOQhN|p`@2I2K%W1SH$_4B=& zy=r-)9BeUzS2kMs?eERgq_)(fUU_l1zt;u{kiagu#$+&Ge_tWm(~IC#e&212v+nz@ zIFat1jNoAI!rBMoB!oq2i)r@{U2z%TIV(7YyBF~9yE{D0&${B=K|o}LO=5$t;+<`A zu($VO@31R+D|CU*oz<}zpgc%40y|bx!D5D-3rMN1t}{pAFXMshOVlxT70@4^+34TZ z1M1gW0F3!DaUxhOsWm=(3u?s$6(>2^YceZM2X)zKIiGW}ka;bm35rV?}x%#X@F;W?@=CEz@YVF?g&mP!%& zRJ9XU1e8=n0Y~Q? z?+{LLdSalprrrX6mxGgLN@r%}vib2=ZbrOF+tXFMyRa|K$kKj{G1H%ZH+&3jZd%YYb4O8yvnE8_Gdq9_$|NO!$!^j z+i7DM@a?c>Q5^15W!u}QkAe>n zmvrb-c^o%>EHm-Z#!aSiUE69{^0OAm_7sQfC%QD3-ft(Pn)HSqReo*!d8;d%`!tn? z*JsZNkvo6@P$V2*|OFv8=)!GSrkm05%q^4$UFK@*LEkU8pH+BBw+K_v7J2PT6OxWoxW z(wWl;I4>HLCJ>0p*=P(J;9!cgnVkKohw53M3E%%CaM_RJ(ZmFaOkq=`vH2qS7e~X| zD~Ch6Tw2ZFz>_=tL`@Q^pNC2-MnL0g=#_=d2b9C{Wo%w|4umn~>$8_)2Ol4)n%%T? z5uDLj0w6yZT3W33oSIR%15wtz=#N-p89kyvvISQC!&L!NWf7)xU=3Gg@8bLaJQ__c z-MklL%q-#n!jI1CKU%O?{3JZ~ych-5|5ZC{r=?1t{TZJVAntsQVW+u$cwjc7-T=EW z4*pM9C5+9Jt`o0+AFY$$t?obm3I_uo;P6ZQ-zg?Ehg6!-NXxcZb6$KbVICOP`9)s7 z(_jfdKAVnDrlTt_zB>iZ3Zt5t8s+|${Ktm^o(g;{^z)+B=T?N63ZDcl27>TbMWyFD zHhK}xy!Dk_`(WczdH33jkndky1b8a!$CYbPY}9Ca8y>sftZPCmmAV(Ho$)U{tt57# zO`~c3hd|2DV(!8KMS9a?@hSGkR$mW)pZ8Bj6ELD4oXs;ty4|}-ZG0xo!%9-0JF`%! z<^3?Y^&-?ANyNuR32(in!K-oUx(zL}!gE*QmN_qgP>~ zvmE=NFfV{R>#sp+h~f&E2Ew$cB!5M_M$>*e9rXeb2`kT?fvl8d%1pK^ZpdlV#18(w!1<+$PnfmE!O-Ax>h!L~<9q8zYWe6X! z4E_1;t+VnFRYURcuF6GDHeU(TIX<4Or(wk9QZEN*&*!}ISe5LDp#WG{g`&ZzrD#Fh zY78h-6FrxLZlH`nBBg7rNQ}Qe_KLQ;?!|ULgfq}9)+k+K6g%gfsve1nvk`CU-jpVk zgMU#dG;|F-$FZfaBHwaoIX2%tgwb98qAS+RM+|)HxSsFf4Wq^5ZLtp5sm8bxI#o0rFz7sEkkFzR1khzrk+LLg=wSD99iG;J<*#}|h+$qPM7 z^vwsPZ=r0VQG;n(GqD^xlqs5oYYwX92(^}@J?B_vpaOsMiQO7Y^_!aU^fz`i{Y`%` zEm4$yY%aYnYT|-H2Rr6;FfLP!erzzs&g)X_+~%=>ohLfF`dp>Ll=*I3!{$=9E;v>m z8%u!!638DpqpAz9ZE4nAs!sctb?J&-Y|2ix+sSrDRS~zJ^EiP5oQucZG74zCWGlx@ zc2IGIws;%DI)Qeb1mXl};G`Ndmq+P}L72LR5~LybBhb_y9RE(Nob?)KGLy*zS_jnc zvQMoj6HWbl+#B_$w!;7nfqTdEDcadd?AjGBzZN4}mrEJrZ@XSd(9gT~o_tU=ZZ04F z`)Ja?91Lrk@mat8UbWa_62@rrP1$e!X{KUV;T$a??DvzmR(g)caY~`_Lb3c71KY5Z999*0WR~FBUV0?i*mMpN)hL z{T7L7gpT8u>@K=(p-iv-bz7WYj>i2q=7+S!cyQXex@K(19r1wK7SN-)pb`c!srw0#CBD{kle=_u@oW4Lh zbR@tVv4#N*13ImwXbzeJ4w}2t5}wH_)6?tbK1=K$9%AVzEH{xxoMg6Hb5ZZMh`Fo& zDD#Sn##NKAtR?XBWf$MsTz++CE}1a(SXTG4xVCrFuRf?wQQ0WeA_c34Dv^@T>(QNJ zsBBG)I*ENh5OjT*LgupR~Vpjx0{Rl!8qDiaHQvk4&qpmh0ksfxaMQUb8cZLTIG0QK`ZN=%S8apb9$a{(ZXMlbOjd zmq0C_0|9^rv@!K2rdm?5c{Q2?3AA+l4Hk~WXe!+UH?0n*VpAtgU;|0h`8wpxa2ORq z$jKxkWowvGM_saBscKZM;n@`z%(B|3HOtxzu1q;(y=uJgISMT+kfo|s-G*>z2`4$W zT_(WBw6EU0c=ZZ%d_U?TZ?4XXu9vr1V*qV`+Q5~a^&Z0h%@r8V^0w|F0zK>lDAb9|LElroI?Sz^#ZH5pku;RKht97Obt$mB`imj2Zl&K)xnO!bggQ( zp#`W+@Yq{B-%ZgyyLhFKAoaM{3mY4RPB?cq+h^g$CKwNF{f$`55DPZJ z-i}cQA?Ac8T!W8DSksyeA05C_(}VlyP}Yi^=tg$B9chx-uDB@MTW3YstRNnBh*<<|o&>6swG^P4 zkNfY+L`RMN*J2F%I!Zp}ShsQrrn13_+Q7%I>(%Cc=wnkB^t3s0ZMlY(Vo{23xkqI> z49c>o-yaFlsyWIILC<6$N*KjGIvY_?w95w7MwMLa^m~Mo#2u7cosgEO6v>V@)JO-^ zKgKelVB7%CI6QLknO%sKQU~M`xdLW^8b6$$izS>{f@aWo{VwynGkZiK&#edNrxcxi)PPr&#JLCjW{8*I{fX zD|8*BgE6AqhhKt4+qO558ki;#bKEdd2DIH+a?oybH%x!f$3&xgJ4SUXr;NdZc)m~6 z=cZfYd3!puz^bGh+r2Hr(Olo)qBzRn#M8s1H^rIt7l%G_F4=SF6^qlEg87QI->h)l z(7UJ3Ek<*WWkP}BE&Lp?WiN^AQmW}2Neb;oqjR;QmsxdN31f|DV8^9{4!HCdOMk-& zHIB~~XDC(@zMd+YN;xOSq`o-{L{i1hw@H^oZ{Z@O*wQ8Lte6AP;Zb2$9Elo9Ct)lt zOc0~XG8PcD(Jd{M7Qead?XH7#Rr939E*5LQ4gI-^FaAxOm9Vy~rj57=gAnYP^%72A zERb1Z`DYH(*p-1(cRrhrYu0kpz3lao0l7-2@^2~Ky{qe8 zNQS*exGH!qo7>q;KoB1CTdY!xMnx0_QA#vAT2@jdxwnxUC1X zZoFeF-w;(DhSXEi8r!`)$aV{@2Hu>Xrg-r}F$A4IrXX9Xzh;JaPNdwD7cd*YttPL( z$eueYSnMtct>jsi!bD}V$9P;R=DIfnTjx*V6E9Ex^!NS0_umiy{^HHv-iywwzu*vt zKeM@I8M=QtAOHRDQT+1d%fmPO2Zw+83(Z$Ah5}h7w_KdP*tlh9spsQ?*cClEQXcf* zn3+ZJeRI54io%Z`a3LO#pkx9c#okA;3WH=xS$+K526&tustD2@CuV3IZU1nuZKA7~ zpbv5;;IlMWLSwvv+9TC83*aCqgh*ibgT1{Y!(==Ld5Sak$CNF5eQqNu`HBr+%NbW@ zgo^@Tp~lg?4b!mfs|?(k*A4ttH}IAe1IjW z!EiX3w&1t&%|iq`57X!9Vv;rvw2e7g2iVHT$Qe|xx}4$XO4OkmOmq))vWvm_^}p4m zy6I<=ol;d+;T!~Ave^>vQrW24^!;01NCw@jMB6`-6gzij704px7R{yVYEGr(Yf@G9 zvLO@5Rk5v%P%c48ia#j-!JSS)kHjA$C%9Wm59?9GI3GUzS=HJ}vO@D{z|ea?eE5&9 zdesI?&4Yd8E@fa_8i!Dn}Ym5D(qc;r}PI4VDI&MwG z7}d#IB6*~biS36ACuq4nM^|6T)K@ZfAF<1qS|Gr6)6upn$rxQ)D zDQ+@hsBfj4rGarG({MBrN3VcxpRNKEPM&|6!pa66#k%rV0}UtBx0s#D^In^I&w1XY z9D$mmpbRK?6h~xm1@jgiXpTR_U}Vx!IETp#Z9H?;OXL$gNvS`9{`6(}Q1|svu#IqVcJ%YVFGqvsF4X;D=XUONPWv^BjAs3;WjRHBc(mrJLX@uN zpqyd!uYF@-x9c!)ZDZ|@r@@3)J<-C1?VY}fPWB!Y`@Hp~0ztH{4 zMSgT$n_TVZc79iHJ)wiWj)R`~Lj?wy{=K<$^Vab?ogLN85i;Fu8jdE@AE%e)Gz)w% zxj8vH02Y3G0|)&1Xgn0BmsetX-5U>jR|9d`@83*%*Q3jE?_BiHd(-LYbkwIGL<`2; z5tQ@THYE=CkKP=LQ#p%Lytq8jl@ZbFyy2_52Xr!nCX2TRpc3LFUAmU;$#0qIfGarBB01dW%5Z$&E?3D0k)BShNt4B(J+Jc;%T!bbD*+ zM`<9&t`MepPa4r(we1RbW*E6aBACn+bt7L0<`uc3UKHj5|JjwnF5k^}__tjhqP$Ci zlpXa@PlbN1{;Q*1`@2|Ts)I=boyzC*4^&1m(6Zr~)|#sp&*a9%{z`aOZ!wuC)UjQQxT z<|(@C+uvg-H2ot(iE2|I&VXj=0l~jf)-)ETE3s@V-cc9YWE$mQKmFEQj|TIs*k!zD!_B%rczY8OnXbMSxg zIQoC~_x=yv!+zWL|IFJySU+pmLpR%n!-1C^1&SdrX=H)xY}xwN%|vTF8B^97qF8&2 zWg=Q{b~1q=xeO;AL?&4l*o_iu12v=y1XYX6(GB+|2zKQ}cQVmAwmPPVI;szuXbGb# z-J%G<;EA(vCBwCop#M}?rZw{(jK-a_i|0;#X$`&7Lw})(|I=(hwLYC73_6Gjthr$q zKGatM&~e8K%G}la(eSPY9<1;Zvz5Ps?YpR(CZIamTh|U^%R-N)p-TX!ft4Xz z+QDaU-%WEZI1ZLltMCJSDk+Pm%_>zFsdj7NXJ9yGv_3u$6VOw7<&)#gxU{YHH)#)! z%fZ9)Bl06z>DZ!;Ay1APqVSA*?!#3E1PX0rOA4@pz+cgiK6DpA49f1kE!FD z|2g909;f>=W8|J27)Q}?Zg+qG;Hdwv*MIp7PVVnj!Eo7TJtpO)g5b*Twiuf*esgn0 z0~>uXq)4s8In(M?&cp$Sti9>h8y;j;B4H(;@|p{0BlZvIHLq*FrcCwfSNxE|S+oC= z-%;-sS5JI}{S{mHa{TGQzUIpF<|+mGlB47_npl;%KI`{IN95WyI|gi7Gu3P9 zm6h5{m2O`qXW@B+sW@}pvr)~vC*8}Y=;)+h_O$b_&81%KhjlkLb}430S?NgTdTydX zB5=E#+I|(;RBkE7Fb6N;tDdn&zq8V=RHX|~9pw3n779$G$pIwZtlrvrGdsv}dU9Qk zZG<1;EPTVxu3Yp2N6AxVc63IC0lIVAKy4sJxDGvz1B$|h3_L34Bz@mbfK0$_N)c9P zl$0D=aI)g1kmLJUcTihfVybQpR9qvDoN%}X|fb?t(mV&CH!WUcG0E8L!!G2Am&2B&R zeN}i=Z=QAz{8zM!liw*e*!nG)1zK*N`=ruS^;!IlQ%?UA*OE*HSU!tIOa`yR6_+BD ztBU!Hn#Gkf6nAVPL5@p!iV9;FDCaA=Q+9pR9i&O+zU|$Bi#;kFlQm)AIuHp zGavC%6++BvSxyF*9-oIm4;RV#}R(!cI*XJ=Mt;V0IjKMW*_IA&^)q zTn3z_m|b`ub{~)Ie$I$wGOmhwJ+YK_CeOn%>;gmX<`2FYzi`)?JL^RK9jX_gC#&h) z@C;t~Tu%5htKZ;S6+mUiYpA<6)NAYVAh;3%5j{?16ysMEQ!uw2$TRo^IJ)=u2r%s4 zi%BtH-+p;PHR6P5{ez}Z0fd3-$onwz%@CK-!U?>e_;s!KXO}zbT6&3>R5|br%C$FG z93WR_-W*kHI@2iszMH{n*gzHv{Vhh9++R~VmHA91JOF|ycd&RJ#_oWEfd7>yWYsjH zz8l7f3%!{9R;0c;ejF+^3@*qy_gF=zgk3L5mBwz4eGIbGa}u*O$;$2t&;jpIkq2dk zB1M*}uATa$xqa! zl=<|0(HN->f%oJs7!3Z~bP3t7S@}zKddBfp7CPE+eHN<+H|oo>DNSE)4j@RlLfrAs$)6dCd;JIGDE4TU2BqJY2gnjcl|sH0}n%&iH8#C-~T zHZYD!w4Qhvg*g~k0clJ)E6deC7^c$MLvZ~h&}XA+aV2clDDCos(MHnrXZu& z0mU3DXD&a&%W>YVMd4hT1?T$7IjIHG=XD~hAlD~Vkj+8S3}=QnpVZf773F5 zfAlfH=U=$utTxVb&T?DAd2uQ8luu>D7aZa5TqIV8L<*mSZ zHCoMqWgGNr-pcD-Kp*t;*$|KFImEz5VG0Kdl>HrF(tWf}eW9mzCsdz;Da_spY<^ z3DKc@ecp28z+ZB;X}oWX{fWhXJG^?vVneUbTI?;zde2^L1+VvQu^(UTv*F1z78`nf z)?%N@StK96++y>1_F}i6v)D~v>zn5s+R*Fs);bLqlxXnU)YhV2K=_%pIYws&oRHD*XJ!a`@+6C z*Z#363AlE(Q4+AzGZ&j_DkKN&enHRqGZvO|=ED@Tv4L7ZC>tK1(HiV>F*3lIWkv(J z91R-G7r4F$D*XOg_bOKBTnNmhf6$?t1H$%Qcu5>)R`pdOzxl`mihMh5d4~CE6&oYX4 z6&FsHn;5HlW9-2D%W=QA(-wC@_z-aB&MfleEi_Y6p)|FxgV&yQv14_v=CzE`9=XFg zk?x(0+TyJHzS|c4uDAzl;3T}4L0e3_f9Q(K_|93i#i)A$|Gv9JUU=UXXC6wEv#vOI z5a%eNdNNOh5gD-U>OcxA@oyMFIgc#r<|~0*?|E zlMT+zbm$g%R0&CqAok(AHsvo;$`4K*tERyqxs1j{eS}ms$-04`L1S(+$@URKFI zXgTvRvm2w#w4m6flW9lTE1e_uTt?nK;jx4(LN?Q+(>a-D89J~G;;C!U=14wF<|0r5 zs(0w9P(!q1plK4)aGitB6&`b!A8)a;hDGHG!YPRsq922X)MMlsN{c`QV*>|;88U6v|9PYGvfDmiODjq{@X8BndON*3L7+FC zJ{{?Lkr|d-8mCmrkvA#Tay4mR@NvOLW%)z*T`KXhf{&u?D@=06Ol>bBcuWt08gLgf zXca9SAv~tZl5|58F30M_AnGDur{oPFTF8tu>4y(HhItrJAjW;V0M@k&%F;4!!c;+G zE<#-xn%+t5aGi48D3kWW2~w44hJU{G!#D=TrmdntgP1B)!)FAEDg?bU^Z0g%HTn=6 zK2sSVR_Woxr)b^G8OTh?QbP0B(>N>7P<8b8gW<6_z)Z_|*FsXL43Dx{@2On!#B&Mg z(|CS*p29u+j999+#`0Ajfc6uUhQ3*RP2;^ur}qp$qv}|aW|X%jCO)Viy%q7)XE9WE z&>eJeP+)^J##+*NNo42Sbn_W#ikZa_)D8H0#`*aHk90i3;k4ZADy$pk)baTRidEE| z=8kAx40et)9z6GE5l#r^rnTX=xVbo=3Z>?L4Lox59D7amEON=j<`P~{T+DwIr{wsc z`D^#Qb$euIf6;aNlKW7>-3AC=wKU1x>|0*tlJiKdx1G#uJqfmSyrjWyWp#6KP`>~h zcl$yrhiD;3m0f_}6pn`So#)mB0*4McG1M;?wxk~$OEKJXGPyn6d-baRUR50}3SK*l z3>tByuGF%Pb*`@8$^!nZ^=n$JTGdScwnUV zC!H6s8!T15I6T+~g`)GSgWi~7=V~yh$?g>+4L#uCRzhOhtpm zz@t1>5RVmzp5^WqOpCK+9PzO9z}VL)oeb|tmc8psCu*}VEJinEJ4>jZXKp6RWgNLA z49Gg`Dwk8Ju__oNW3uCIGJM-P*w@n;X1Mm6KSk?mcn*Rz|3xp+`xwZNqGzDyS*or; zoe1ZdtDmr`^hEWk0Hn4)n!SA4Fw5{k+^V`1*EDJ6Tji?8cCCvA6}8i4W}JL+${zVP z3D;A3LNmBhrnADvq(vdOFMm@%bC5fC5`E4KRFWd{RmL()1Gm(h(pPagO@%uOUvMWy zx;E{Y3A^GZ&Jji7u@GjZg4xB?b*{zZrUZN`KQhc^mYp8Q3X;dh^O?!y0qgrwrn8KZ zGtg6n1onda(7(@$N;~;_pD<9w?BFT**OX@2hOb+A2>&%oD7%}BDDkjv>N}{(p-&iJ z87Qz#&1?nsVXo?;{(ytOvi1fpf93YkweIi=pumiJy?Pn48eqNHt`@e>%2}@!?bWa-uR-@Ek&_4%Ch^)q05lNWz;U_*t*{JKAwLy^ku4r# zHp#>x#5v=uw-6Sv0jNIN_@V{hV;Fu1mmp*}JYk{oErDs>6&E~@HWix*Vk*4>L|UaQ z;jCsJNMLjfMgkr2T>W6>1bA1+f`&GgMpnhS0f((oG|d==TC;TJb|fQ2!Fu5A_#P06 z8?E4l;avwd3SMF1<(Fgc-L8H8SJ-ZR2WTqD+{4b!1dL+z7|X;cDA`1b6Oyq&3IdyT z2z-|07R{z`E8^I^el?$~PeLCE3aT;Cw@pBMybm(KzL?8snO7rN1s>ZAbf9oC1FQB8 ztuC$DnRMn41g(X8&1U48zWUK*)vB|FkxLSJW$s=S? zt}4ZnUjtef&{oh^;UO~sXAg@cW4n*m&^< z>_Bw04bFC=d5vz3S{Md%0#I;Zpa!Dk<=xphBAa8iAZ~+S+vI zGu#>($YFQI!hCKHB0hI>P1c5bV`m?6#|T-6gqnUc;pz~kDBfv19ty|o1!_IZnX zP`#-3`;?|ZdW=5O@ze)f9swTb7?kFPa}B9SkarYVhf0q&FimAtPGvf^O&Pc1_=fK&w}WN1grJ6sBGU64P(TOk1Nq z8y|vk?T{Y^|DjWGV$ta+p?s`$Frs{EfxiEKko|r9{r81;U6tN7*6%X+4W$?15afxZ zU|TzkdNjN~6?m?y-3RK?aaed#dGL=wVaprPkEwX64ktdwQvb^b`CQ@AAADqNPwrfcn-P5_{#+q zyuzIVKj|;Z*D`yE@J1aS`A?l8@By$<+_m<+abU}j${ndVb43B@6q24*|ImDZ6|{jt zS1V*N^TM`SFjb61EsUytoO99=zu*-Xxm~fqGROX9u5koE_*>=I~j^*;C#HW}|q-Y-H6F01?Ja0*j-~aP8v(qxSivIm#Rcpq6B^-rtajRQ5RQr28@!f=XCXoQ54%=MfV{2;>$8HWmL7kuSY^r zKq~AUFZt*$lS>8Q3+O6(=ER-~?V0iQUS!t*R&gH#2-t)icxgxzO=auEK>M&M@i+ zzCK++p9FnxDHw_{vwMpDLHP(>Nv!DkxD;@#i#nhp1&g&J>1`*rc6pw^i7hJFXJsoR z3DILGSJXp^0m{PtNVEj0!MU$?X$tezu@wSkRfT1%mJe|>SK|$^*+(N?VndX(^Vf$U zh=*fw-9LD_PZ4nV&;6He(VJdhyx@-;jQW=s-K=Of`7!BGHD6X$_Kb~i734{VeeNT? zfJ}Yfzs7N@C(T1x?RV|IJSdjpo_h;eIxsi=zc^lMAD1>gTptSqZj*oJNm1bHp*i{Wk2-lJ6X-3^K3tjES|V9{Hj8} za9fWqrd%S_0wYkhvlxpYYdbu<+UWvUyn<2H+2CyQ^ihIf3*)m!>HFbBe&15urI?g5krVYU(C$jN#?*okQx2wF-<)Lo)!V9! z2_U$yL^C;PP^}pEPe#1&hbacrV5YDa8j`s&@CN8S2^`+QFejrO4lAURwOSc`;*3l+ z`?gY9$TZPEvVhk^#Ja0deqjXepssh=fv0079kEa^9gKUXcZC9Kg65D3Ra{$)OwI18 zHmTGOVGcL}?kqUuT12TJ)LR+`*wI>jl;JDTU;&UO(goe&;NV%K)5#H3#>n-_&!;}4 zD=tE^m{5+wgs?r>Mn1tUXkQ%1^`TbA-=ITd;ka8;TlHp?(&#G88758uFIRf6zL?S# zhK%e{`<78AycH}p0z3#02@Qv2M5nrkaW-HKqIQR}eYFNE=qR^@%r-jU(Eg#QG(<|N5#^7mhtLg6kn1rp~Tlg zAX7aKKQ$9#H!HN&0?x@!E4B_Wpb)ig(Xtg%FQj{I8%hM-uN^1|FmvJ;r5aniWr&vu`Cj?g7XCZ zL>SbLGAUmzUB|D-S#0%60b<}ymMg7bTg;}St0--DI4+*rROuM3xWvRzqxi(Yc`S0c z_D$RbncI9&ko1Q)@;S{%BFi}fzM?ql{Dr466p0;8c{>Vo*5TB+ix3J(xk?($jw?8S z=k>Uex>(G3F&K;nCH}&c=6DVJd=RAzp`E@URz?FY9EKFkg4qcRN;*yQ=gE|46=&%g zm>b! zu6iuaX-8^QGgDiXceCwp)gr*otjT!+4NzB<%>l(j8fcptH>N~t7(Id(9;4|UFHnc( ziWBHL(0&ed<|B-615#8pMK*nNRci+hkP|oy@^2UJh$(^2xs}Prl7pN@RC=>c2f8y6&6%j?Q+n|VC*J|S)wxf|DEoOBR@R+2!9)97BJ$_nee)BV-{ z;cs~-W#5*iEHbX!E&8KvGzifgli z;|w;&8Qq>~Yy{{!1f^e_R@Zb}HPGZBoyJ*j^dRqnusX7XCujC=TTM+DYld0qlwF%< zm_{c9wa>PFLz~W2CcDbB13|iG8QoSjq;+dvs0>=v3+D1;!JMJnA|?QC?hoIg=7d>$ zARcGv3qZ)l58vS~U;B=01r}|kGAVB9EcW2lKuyfH{O}#j#-D%qZU@8|-`>#6)~UbZ z!%NK}Zo|7!12zbVY*wqRO=m{`Cf{e(L{+k&uN9CC0TQP*Cx0UGz-kk^B>zy`xP^)H zNdb~FfSD#9)?Z%2ykHYKgcJ%pB*35}k79b_WVr%!G@HIeo6?I{%J*w{u}J;wmLuEC zZ(tvjBb|329%WVE)@T_DCMD3%oo<3ToS(9;I4yL~N!IJ$$>sT|FQ)%C9$Z~s3@hMw z(MKs=t(2JIMC8SHcvFOs@W}V*Ez5!oSQ15Hh*of_bc3vOtR}<45jc;ftk?xBUB;9Z zyw-vSgbZtIDz1B>+yLs`84!JLM%hii9bizN0c?5IgSB&XJg|#}b&Hv#t)l~jD6G;T zx0=sT?|?lx4_BlnneT8=n4#(q{pOq4_tqXl(!dUh98x9u(u^E7BoN^+OM%<*wu=xN zT;&Huv;i-n@Ysc)x*=(FN$A6*14L+q-GeF_Y_^0XtYh6N13UZ9YQ>5tJ!<5Zu#wVl^vlA?CE-6>ZG6wpi_0EBhS;(u883Gj* zcCvt(FtI2LRnJ_F7~+l5C)xlj79OtVw|Hh-8dSl1VX~dHw$1s zkK8Kenni(=IBPU)-BWOAP1vyM*tV0M?ASZDZQHhO+qP}nwr$(?R5I=Ua(wZo-XiX>sMjLosrC{HDQe$SzsH4NuGU5QgL60F!pt@c z3J~$I*MTI)?YV+lmCYoQA9!xX!Vt?pzC9eu#fkV=&3rt-0_=~D;LwEPGqtvp0Rs7& z!0F5BwP_2yRv4YMC82wpkkYjispySya_-#T~y;xue8I`4m81H9C*1;F-w0Fx*BSs6@;lno3eu5U`sdxm3X{5 zlo;PQ2Mb5Cw$Q7@y-}*O&wLM!r2JLG2R2(@Iz%Dj6^^vZ=;b@c>!nM+cZ^w~B&BN)@W`AYg z-wk(`-Ge}>FK;|3L6F>cU0j{dSEhjBjmrAhUKCtBm0$8L&bH-z~t8p^Ia&& zI1?76@Vn<0CxTi4y`+yaEyX-AIGHwKJfeAWKo|wwN>%kUkr)&TiU@73Mk+c2$`qur zqWN&A)U=Z5B^Ik0D6FYx#sMIAF-TSA9j=P6w-|^^_pKsz;_X`~9V{058tXf=cVNK!vvTe-JaOwOy?0RwD8*-!9uOVymvg zLTl8@?TbBdL)`8Aw_W^if0w($IH(dQ7M5a|y6D0LGu77-KNz6fnvN8Rw2c2xO3Oi? z*-5$aP?P-+5Ks36ltB4O(!4?q7p6=J9>#~tO8yWRnE@eifxLweLr@*!BT=Xik-Hng z#d62Cv`SY@gSG+XDzJ85U_Mlb&&tH=K{u<8XB)ReogeOfHXw$^J_aq3!GR*{PzS#_ z`T#BE^n>H<2I2x0vpDw7$+YBquCmm$i()i$y0TU}0ActD%7{+3#WCfcuhF`t+;}w? zn?**Ta($vq4e6ztzYp@x3kgwo{SP3RdBmAf40fiLjto{Oq-;Jn(KFlV5H~g&Ny18% z;99x)f@(R~!<&_q9uQYK*?3-iX?woms`Qd42aV^@T>JA}uMlTRY6)r)-zwVIHoar7 zd(rC4AmsJB=B>izO+|VR8v&(Qv@Hl{X(aq`SFu50(?~pFU{xj|GO1)bpTHAk?L7fAx=R{*fp*Fx^o(Xuri5rvVkRWLM#$T2yKLm+Qnv+nuG3$ivEaB z+;-GC!q6By38C7>^S>1LnVP8CI}G{oRdwN3luM4`*Prsb_DqxQX0DZS!Kq!C`biB^ zF&vjN&r{m%PJN%EeCf!hVjDKJwREcqNM`s$-eV4&atA=>ajvw4hg(ui+eT`CiqbqM z_JC)IbQM!L5pi_M95sw>JN{sCT84xrUUT-uwlT?`^c5#Uz8I+H9$6tQ(M~BNwrziu z)QCRC5W0(Uxbfc^*#>O@aeR8><1TR{Z6cŸzFoc%O>P297~8O@-*${Kg^m|r{- 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

    VjAFRkTt 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

    H*OXq60h{RDNs&Kou^P7ZCRhQZs+JrAuw9h=@ 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ⅆjw#L#9PnfneRGoyll;+*gsr22{!@x!_WvDT|MOrFvI){${=W9H zEcqz+@CGdRATN@snuEf}Fpw8E!6Y$VSe%ct3+NZhLBix9p==bq-I0B1Z3wO}~1^pf3_t)DWbh#m=W!#tT+X_UJ*vU0P6%tI_*gc7bPQkz~W z`;d&Mp#0n0>km8PsDx19m;p+`sGzuwwf>a|gR%%;`qmE#pyWiNupwqVM%LR8n6mXi zY)_abRE+NC%?aph!mA6)(OjQJCd)9#GfJ8Rlbc7{hx7Z4C;y`CH{6uJB!&)MkFG7asT=G!Lpe<}& zdDe<3C8}JZ()3W5-PHEGA{~j6NY~f^GqK1kpu9((OjtKu3t4LN_@{7+1Ui}k^Vur? zFRM`gR}16~!+16P{!f@MRE__Cyc~Tw{C{wKa8kPe(|^tX`655f@IQ=)uMq!(R+ac4 zKCi+5m4D%%8=z&+mT1SJtkRhSn9a?{&bGzK-r&`1Zw{qhEO7jfTuzZrL6R>6+<GnJQ?uJW2XT#l$eKZe3iHAwX^>EG4-@Hxl=oY?JCWNp?$%6KCp2uT#vhO%` z7mogc8hvB+j$u6+dhR3+Pt7VoX|&T)Si5R+$v*1OjC1M8rBaB!fOk5oB? zB)`MHTO3Dglak=OxG!g}PGzikV8H-F1h96T@nTn!oqIRCYJv&K*dzS1G(8$wLT|)> z?t;@U{P%zTKUV&lJbefscmNN)LPEzAbW%rT5*JeXCHVp+_uJ`9=(0Yas7U!tm7vlX z>6sR~N9F1O6HT{%4B-SK_}rljv`A{P*Cfw}Sr;k569l-xv95g#YfoLiBf6 ziT&wDKjj?S}i&$_a$AMmc?t~DH3@A}<$ zwK!={oa?LMJ8N;_%0DZMv|SrVN96 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

  • `oGHspa0%PsMK6J>o6r5b`==}q>u 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¬#piNvsj`F{UFF8~ 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

    awKfT1zi7Z5b1 zJhw))oBXWq;!G){?Sd$j=1>c zU#xy`;E~i6qz%K8=#0N{SRZ9DBKKi{v}htv4^70B$@34N3MEoZ>FTMpIT#R~S&7_X z@asVBSa-ln3*Hf$dl4gU7{g$oZIpPDThNW~19Za}?hk)9$2tSbD4J^biWF3o*8n!bteTMythyQH zpm>{T!44h~*nut&1W{lJg9cAfEP|>U*(2Wqr9f{7Lkk!UVORlIGD`|_T(pa72=6hN0hO651CPo?pfN?V)FznN@)V{A^&%@ZY=fL|Vh(dOYlpgeqi zJngWW%7B_Sg?^a7tZ}f@2cB#t#%a<>=zfRKG^shhs{Ko~`azF{)(Pite8xHZ+)z7~v{ro+wZsd`E zB-1>Hn~6%a^*G>ZO+fBf7KN5qgQD!`-dQP|3(XgZB2`>2812CVBr-YHt_5NCGg%9#Inp`L!6lfikxfCo)m@NJ-SI_oHTG@HqyG5BeW za54RrQFzP^YeNt`{g*FlLhvv<#rQk?zQx|DfxRQTsu*_%y?8MvN5$k|6=`$i1 z0^~ireDmQsn7nU3kUcF6^8WMxz{tM*XRoTmq(L|Xox$_3p}n;JX6ZY}$31lcP23j6P1cW>Xa|N6WA!`A-0k6#1(&z6VQ26Whfb|)3v zfi`8CEm%!kMA_PekIg2`OW32b3!#}q{ZL}I##79Y<&W-;G^6~o_c}Ke(S|i zBvRsKMNQ4Y8(b3R>1_>`C21ZzR+f?7R+v!Uhy*PG*5}M4x2yy6%#0tzgF2P7>w8xq zpMy!mriAl(L}xfbjmBiejw@tUIr7mj#1G?VWHC2Jq-r)Ya!`y0a?-bPmYN*`P$HAv zYPGiE#j>YH$a<4a zN;iz4GiPo2J z>@cM*a{+-2oX4Cx3c1tZNknE_N}07fGSdNqbUUF~v4{RQ$5OZCrX+3mJOtO)U+q;?^YIh)LYg z9#+e^nd6~9HLS$DuH?Fnnk~L&~*v zQ>tHyh$@<#33H~tRu+trr~f5LJU#6uQ+_akipm{e#&|=fId`&zV%=vE(}>2T60`)Xb2E?2X9YDdCL?a*X}T-<5KeCB+G$Xgv2Q0kVAVF^OaD ziEo{AZ_X)`d1wTAa~j=j!_d6pD1+eVBf2byU0YYAZGzAcQ-ncSGAb)0hmmm}&IJao zFkNz$eN&InV3@4QB_yHe|9|%0b~$b&Nf6vefz_N%NwZ8=evy=_&)SY9N?oea2ZvO3 z@7nfS8<>e?qJ;#qfP|==U;7aE=U(C-;vQw6Fi^!W#NK%P)h7O+L2uaqG&ukH?Cj^k z;J*$A7JtyY3-8&RU*Fzf?npG7pKt2{BAQpbfe_;V0u;cWFWg2JchK*dxbr*}RSHoy zi3P$HXjuA~v|^`)W!3p>>I*69s-$a@pDNynjdUs50pb@au(aByLI-kZb=j#ZB;%Ay z35II34((Hqk&zM_h=SB>>7fg$wn~W7DQOC7m&GGjhb?soHDp7|$X%bOyKeuNn`V2r z((aqwRxG*M_O0>@+h6rmVZ}oyzdX{t_ZxcyYy5v%zQE*hJ%;p#p1`{MAH(y$>i-)K z&W8QY|96OAOaGtB4^PY!s1Cl`C#b^Kc?avD-LRd<@H_Gt>I`(8zQZ1FuZ?(D{lx80 z6gf4g<+XX-!LghuOK-REC$PZ=?9jGomG=3z!5nmm2o^pb>^2&N{DI{j3Zcl-=P^Ln z80J($U52D&hi&nnge%g=dX(wR<;2j&pnqg>Yw#*8fT#fWL=R0SMgM4{xtYLboh+J- zh(L{Tu*cjoEN4l6>OJGBqMAW*ga zKN|Fh=eqqrIy>*||3myXwf~VHo~rqeV{d5vBWPpe-wx~q?M(mg(e!7`b5xeUKbYlF z)P!Rhq6YYU;Tcz|%;&4?%(5KYPCgaU9M-0eR zbTh;evIcRy2uDqMGkQ)G1>3+mjuQRfHXOjHG37@UlppaSWSbHH#QP-$TM`t*n*fvG zpLp;674YZiDo5^2G-tV0BvWJv>>2t9kFYB*sI}*J(KMKAn26B7bog ztT(1k%u`=}ifTr>`)8HuU44G$kW1@flA=tsP=B z9+&!vNsJipmduz`BHM)6;={Hi_lhsSGur!I}O-K}}y z;3h=1eP_#cCqB>S;gS_7p?X8;=x2W1vWUvuD}-oPG=XAKx2V_^R4g{ljwk+vb-scq zS@J@|ywVW-Ri1`qe*){3BB3~tAN$ezKY2a1KY0&nvI^)03tYo8&2i379!@nuEOmf& z19=G=3=G7uEBQN{z%Kmx-YS^PWBS^kQk^oY+$U(p&N;BS(wdL>)FSHX8=JJ3ki35V ziR!vhaVZ>nmL-$WXOsXcWLQ{9+ZzbbvOSd8^W%)1-y1FmbDxJ(s94j@ltaA>ATZ!!RDtor!AQK^wsJ0=~nD~`rGL( z`lA^C#f->99O0WGemDUKG<`8*yaOLs%h?`H8R? zHhgB2(9eE*_Z-yCf=)8{JG*iZ-@N|>A6dCbW*ZexXwl))Dc6L=Q-r_?3$x`5B~0RS zrDS0yU>dL=g0>LJCk=QKTGS=+vtTtjeeM*<&u%V10NqNqqsn=_O1z-<`%emlSp0(f zvA`M|wQh1?-%N9ZZnhJ$Eg4$*Y)1@j2wDp}zpG(fB;^K7`s(_CJoy`!s_$=mzcu7K zoM$4qoOb$9XKZdb>K2QBdbzY4w_<-3k4;rlH{}ifypm^Vwv~Rc_AjfFAZE z4<}88|FI2aD!rE90g3*#0fCI=-ORCjm__Y6Nw5u~mh(6A_kV+NYHok$SnD}@JGcBd z82Z1u25xhoYr)u?y3X}sb{_Q3gWkwnY4WG)=H7}w#Zoo6v-5NxgQwdq+vu;>tW)KS z)>)`?Nk3(mv|DQJit}8etMeTn*mvCBvU*CthWEcP&G(+_{|*Mjiwph!*RX%q-Tyko zZ^QdvJnj2ay#9qlZ+80&A)8+QvctL{yQ^Q{;ngq3ILCGKi(EcEcFxv-Z54P&LS}wy zS7sIAhk5*LkDpwjD(PXyJ5LVt(+VBZ#+c7R05d2$icrODi z)bR~QS$x|(QbdASEJMr($$L-+s~09}#C(&_@Na1Go;qqebGFY+RxE%D!=-NGq;{vQ z7D=$13G@|QTFsy9)4K7Rvv*q(9SQ6SgQ!N^ou=J%x3C}riCNk|qTFvVP1;%%X4tjR3G{5p&N>1K1MNqMf3% zF5>BNMLco)phdvbC-y~Eyb}j`;^9uR0#q!^6Sqhe$&V-VeFj3ctOKSff|iWbUin7J zPSjEtG~AY&##ZUK6aWxpD;3CE4oA_&Ks)~DuY$*_ZpK`?Ddt1e)}!Ib5!r(XZ8Os*S$Dj z+y!Y5%U7VXs=iJrCW%KH4Aa-|dEsz0nG!9&|N;~HOPjEn4rF}n+R$~&6%fq@@Rc--c98Y&*ZGNj3=yd`Ep?AVDFzBJ1q;TIA% z%V2^k5TFIkBT9E5rDkFKvvU|%B{uxMjYK+5`CS$;pZgB+V@tz@ohmSk!)vyj3d{&< zOCnX{ApmS-(y@{0v^{3QA9;Y)o1K_(024FurGy!Od^WJh> zoEZ+>{%eoxa#DpWytUza{py26=mOhcIJWP3F%`aU@S;+hOaN&x^XLpPi8jVJoK~P4 zn&}w<+qctp$i5GVU*2A|$F5pJ^Y=C!bphP~P5Oj0_qPoenJxAhyfJJayrC)gd-7Th z#x}3jK=xWOL`Y;Jf|=sDVlO><>xtK!M1qWaqyDGC%b!PQKM(r7{`q(2z9JozU_IPP z!gvzp0O4sABF*rrdbW1v)Y6tlQ;!zOEybVo7x6@|uC8d3vPVkjr%E$IH#J(SQBmcF zQKM5Dz2*yVA0hlIW-;DF`qH$+$_mv7V&%25OGp8>l$uV7Jk9)E>jB-r-xLPG3u9MeV>` zYC_A{s2fGuc-*exO8;-N^tZhFN52~X?`SyE;y;G{{;2c+9^}``|6A}w=LEJofeZRn zd4da|YIkr2m<6bF3?H9kSmLJR@(wS*gqd2g#N=lVWV(s3y^pgQCUp2KH6l5T6ZV|G zqo`TmV`3rlmML0@h%c5fMzs!B#UxxJf3|kJH9a{EryYmUsa8yl(=-z>LAXE*g;C_RBCs)&QD7Wxo$&W`}SPU|x&}N6Wk|!NYioA=*|?QHiF2 zGO&CbFF|Hw)bg+JI$TLrz9e*+*;K;LIV?s)uiIjbE`bJ2Qh*sae}Xr?FDhqnj+h4# z7z^_t<%PL9z99x*FEC#a#bBcZ;z8Il$DDY<>HR5Xjhe&XCltkRT=(52g zkMTJ{O)&S}r2UmUz;`*RnLz<%xkCppyz2n;s(1w-$)0w8#S8Px@VB17gaypv=3x*_ zf`g#PdoV#t>1&dd*I=h&*j@rNn?8hDP+A=ujj+M+9Amp&fbOuejcXQu#d!WaO=;o# z1o%ycI1RA15H`i?ah7n#V6Vz1ip7aHk0z6Rk+aJVe1IT9#A1Yo>6!%3jwoC1@C-DS z49S30oR#Bmeg3oXzb5%AnJqz|3u+iug*8U`-v1gd@`VR5G!E9HJm3X~z`^pdvN6gd z0J#)S(2Kzdae{L?^A};XK0yhE-q{Ji9}>pEA?nJF;~f9dx#ugj!F~GZUpDm7BQj_& zy8ZMdBM_u>)|<}yj8dX{Dz#`e5yd*^{VtvN^1^BC!Ds5b>cdwp4~sW{Qv*bCC|i1V z7!A!ZXlOggI21~|g2ik3seX=8uk_0u2wh!i-_+A9I;vLJ<-Q6fTj{J+uuTW=!S!qz z-BLML@Rbx}7s6ZW$Ljr2rq*g#MOBs7a=NiE&DOxpf*8|BE0EfwTB^pO3x!cZ@=AFu zqqsM9QpQTv{}jxux}OcnL#lv}`_SZwepTl`SrE-&j<>!6P;>wHY;e}sK< zzc%MToFBTwAKT#%Cr-u54~M8c_Hn}K5Z!^#(H-~{9CTEtJ$5If;9{G9@!D4o6v7yY z9!@bgc7pozy&s4F$!toP1ZV)sG7VEuD6WVZaAbgpsCt)Ozd;(pl(>p@~9|LDGb9sglF0F*3mmf3s_Jq z*kX=sEt!!%CBknJs@>#C!{z0_wjAy@^Ji_Ue!vwIs|_#MU^;P|7uLcygEQMPJxCIW zb5vyM`rNo=RWZwt(%{}tDQzzbw=B$8G}V-5dm6G_v~(`GOei-uCc51uw$-0Z$kDP5 zLDV)Zr5)I7lMp=1vG`sP#?QQmB#*GTuQ#KV$aFVtnMC|J)CYnrB0pu}2IxJwOQx-Z zWEY8+Rj~Pp=~FX^jT$V6x16stDxyc=Mb7Zqj8`*-Icv?sA!(u;GA{ertah*dPODT<0y+R)xq*SM*QBA8dk=(Izr37;& zda~2^;)#kw6Aeh29Hxn=Gg3a&8?RPUINw)Q<%Y+ z1~mIrzOIIvWfJp%efHUjw+Q^0G-ZsBk8uZ110I7v<=RBN_FnzRJMUe1mtrNY)!bi| zKpC%g#omQ6k9A(@{jnKoeOqw}RtE5R4G9>K#pT65b`yaC7*t5&XswX~H4+$|bFgwn zCi`%=3r4ca8+W;bKcY*5elH0pVL`)OvX`Fpwr$aaaj!q@4bHzOvzQNB(65*zyplo& zC0+Ue&G0{RpRS0!^W*y*Rs3f_v*$&6E8vy?0uF!MbD`$0w0|RJH!%k$wy0QAk$Rq9nnlnUTe_ zYW(*u6d$`4WYPaY@cBLeF2m|NV90^yzvT^(YW;sW8eI%@{r`M;(dqw(_%+b~O@62d z^BKJC4FyoEO}EYympvz)YjTgt6HSO`uGe;|-n>T;K^V01nt= z5jfjK)*46rvNCS;Of{OruIZi<{}d8aB#rZ%SL090WEo?K-mGN z4ndu<3@#1WeRgb!O&Ly~_pDI1ACmO*3>M9ErmqzP1^I&d5$ICE&ZiZ~$|kIG*aeg^ z<_|C}G^NTkijjEJa2o%(@*>zO*vd3o;}lOmfjZ( zDM2t6@!);JZ&eQu%#9k#}Jb_wb-ydc)2SHcQ_j=8E_E~>XHv3x+5d}dChkoiy| z*@kDc4yyal;S^mmNS8dLgbrSag&Ro`Q}z-5o6wOcu75JR4eTaKinor~q3Q}#MldH4 zAteL_o2n>WgzT(0I}yzb_QYf~;Uve?RU(DFX>TxFL7FCMwStcjX5LKtu1E=rnKBId{Dm^TM9>0)+!w#fdL!u0H$Ve|WAiDSQQzVNz<5rAiJ1 z&*Oq0Azhx3)k`zWRd_WXCmHL1-;r}xrG!y0M;mKD^5b|7pp}qqY&R|Et zD{g_~((pzk4DM+;^6I7wuS$Mpf+t ztHMXs3Z-0fhj&Pslp`8Vb5KB@VMNu57px|y&q>|I1_}(e+=2OMU=OL&Dilc9xOqFy zaTg7+osLd0V%*;OX39B+Uy;jB*j5Hq@-x1jV`jVTxydSv1jE8+u>BiVMhcbn4sZO% z_k3TOCWI0Xp=1#~lND-iw&p|q#y#iz|36~pzia4FMylNZ4Y`B}btNA-R zs{K9V#v>iMuED@$N3_Its5%!;HJdgsEG}H}A#EYud1|BcRAqS<2dUPj)ASsbd*Rf? zjpZ}_B(jay)ZU@u*Hpt(b)TjUfmW_fHK%6jbJWsm8vaI0$2)X8%2*XHK?SA49cZIK zORu038>~3%9K^qpUN@t@>90ef0o`u1UzXR4dz_1U6Ml{$

    }c<0Nr}@hzq)=0rp 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

    B_zXsgIe==P12zc;~A)@;$L(MHcn` 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

    e6L?NTPqA-LSyP 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

    e?`1A<^)nV*ZI)Kf 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

    FUN3CE8 zBK*kh3!ofpuw|F!*JYP=J1#&inz>@;wVftxAh$4Bfgz*`!)vcM_a28p3uppYN&$G5 z2V`} z^zpUa3CC@{cnW{srPoV5!!5ZfAzZS|D}0=+~{xVO-^ zzZ!3$P2I6kvaN>fkm+b=m}ycmVbP)Jy}?I07pHdrSLJz}BdXYAW5uB1$FADl;eqS|C1K}x-a z2QcDGHD(AuK6}t4jUn2Q|o1P<rtByF>n=<2{B2$)y;+PLxqq@46lqu!jpVo>sTX&VbC?82(HdS8dI_Wz944PjzTGbnu;AN z6_DC4m%487TZ37lp5kH#BMS$yUusk~nntP{A&}w!@bs2ZaWv1{Fz%WV92O112?Tc! z9)i0&!F^$I2~P0f5+ET+aCawo2=4B#%P!C4{{7$g!<;z>db_K8s(Y@gx~A$cv@pg^&J4tFhgs%u+%Q9cTUu8v%0@B|DP67^W z8hbyaJ7rLNDrC2zr?+8RZQ<{wPsO}@{i4_hhg(z7TZDv`Zs~{QI@d*{K!iX;yg;AN zpIX6MQCmQTg4iT`TQRL-Trc%F@RF0s;!l(hH*A>@q(BEWuMeMR8E zTER}TxAA*{g_Lq#ZsrB{e8rgHWsY4QI(iRv^Q~J{Vr*(b*tTrIP`-F~qrQOJtG_S* z)aBA--pqbq&!~9RK!g!bvK1l;R8pm3Z(DT#GMg><=c!=;JT>?zfTxD?KTnNxuthNr z1|{b~7-EUwK^Fp|se~x0i(@<%MwGi2KL%+=01_g7Z(oi-7UKP&;g+(fY*5j;JS=d# zNh#78xuO%HV(@!}iP8LMjvCWs$qWT!EpoGDz2@_>+}=3p`3lx9o}wUN?M*OcM_7u+ z1_35D12W$XCPhoH0w`Aw!LjVbE^LNey&K4 zSH3kqC8d5tDOX)1GPetF}zoP*~q%;YlI$Qy!Hp5p^&_P5!e`tfQ|7V$MAjOVf3Jk#k?&20FgAc2F~8+ zKc7OFcQcTy2k}Rl%1IAO{TL0%3B=}`n@%r`-aY;qJQ{vA8GJ)dV-v&Wa*X77+{{XD z>fEsJO<8v#3Ul7?hf2nO8gym1Kk_rEyYcp-NFruycFi7`LQE3Fx z_x9XVp+JcTw+77X`_l04?)o%R?1p;{Ge-=#2Oq_g28Xv8#C?Qj+;8i_fZP0HX)g=? z-Lt>EOW3@L5Srlt4-o}h&b>jWdsUhP6OFV{!EaNqG^rpUITE3SDp(L9ajSdw*-h*@ zy&b&riBe%kb|w8q7yMUEwW5*)_80;-^1r%_3Mon{hN-x0`DX=Z z7AAciDIH&^Bo!Lo4=6|qQDJq2OM0t4?4&0VOHYu9urzQ@i<=}Ab$YLqcIGp@pCj95 zSM0cUG7wKXy%c!8wISUS61oWg?4{GyQ#{^bJV73rH}%TLJ4Z{0t9b25OQhHJWFn%t zJp&!yQ`2EO*~u}Fx4jo5C){vQ$T~_+LwQ*2AynyW)Nf;`4Oh#c@d`m;!0RfBD`-< zcPv;#a2$73z)pNbn(u$T?jr76g#Q&NO%|RNG&X!L`Kim#Tb3e-uj>n+>Hb`9B<~}? z9;?NzD!LOHbaDb;!!$tb4TCZ32tIiTTs!LM-fBHzZ=&ytK5#qv*6~87+na%=azu@S8aJ*C|&2ta0mNWb4${HU2YL{rB2#Oxnhc zM)1bXO!t5jlq`aiv(a)6|EU9Gzqmwrmkr1KHi$t;UugT`Qc%%V>h40lKVjSXcvpLB zY-L!f-d{It=ltt%aRu#(3 zda?aNq$WEqD}j5VwX;=U{FqCx6gu?|EAseJh>_Y=Te8EhNb^eVa<;Kl_0l2n-nBFOT(uI%YI4~C$Z!h>RPJe-EKg^ zNE2O+^Dj@%kL$ zrkpg+%#V~wZ_E)Hg$;c?f+J3KzG)d^cUr+KqDxQX+ljbq20K%n$r5alc@WGcA6kq%xBr+Ey5(=2ww zX}AyZ>3ZQ3H8}&?5$QZb!eLLm(XG?;?NYahTOZ3za0&O(oMO zDSl?Y1NGY+^pNDz@lK%9e1EnT zkTl!`Z3)TotdDUvp?RYmO8y0ga09ot=W6wfE!f|WM$?~AVpGi2^CBCdBAQTXcwxIu7`|7w>kXH(E{Cn&N z8!eXfx0jh(>j*H1cFEHa1%W)KtVX%vjZcrx{$4xO&@V87?8fHP&LqP-waz;iJW7G| zc%CduKcN_o3ulJ(`>MMMwbq5)lkyq)6X8=J-^OH)h%1-~NBZ_paG*uPZUrcN^L-=q zy?l65{7-qIX$hfeDg7@aRyg=>&fGa)YlP7~U*ZoV{@DR-a3me>mWq*}YlhmZ{D7rT z9ow;weomTgesOD-LtQ9wW-zzJpt(C(m{J?4*yOut8_`^H+KO8loR3G!&C5 z8e^>&7J4s2ihit>5@UO#8wd7MNM+Xq{lfMY+tcK$47w^<7@x0q@ zA^lq}sGfavmvhb2;JO9i^MN+db6ear!SA+r!%tFwjX$7-y)-@?zBkAWar(r^4E|Ul zr=9pNfc&He?@U50s|xWzPVG8|%TWCOaZ4!pkuOIg#}g@%X&>dB2AU9<2wP&CI>J3H zT+J7opSKgg@O+nSsv0O;E-w#;?I8L;nz*_(i9PhDd1t6T=dXqLm6{+(PBStj!J*RxA`-Bs`@5bXde*mTrZr&>M5&HebrwRGSMOI9PyC zEr&w!1D_4QuUB~+1mT~1lRcHz5Z|e_*0cmpo2-g|s_oDTlbw=cePU{7gt!Id#$EDX z=#mXR7ZE?IS#_^HEtifVK)Ot@o_5%7^1Q4no{Kx@0~f99t1w~;QRkp)E!Ys@3-NjJ z@-5H$uIE8^=;%gZ`&vlgdFRZNyj2CX$Vl%_{_zNIo8{Rl!WKg0Wl3;{XED9JIH26h0m&D-y=Rd^_mRy0KHh>-=x95 z7o$D-#lSUdCcg%T!vA~;M86OhL4bEXqq9GaZiz2^>K4CWlZCh6F2yJxMarGqu+Gav z?86F4dY!DpewTl2j$LRqTUz$+oqkp*)A=N1l=g+GDhhXVCoFH8StU?C*F6Z1eK=+V&aGxOLCde!(brJ~HoyPACfZSL2J;z$LH=&ewKcKAj%1+8Jr0{2V;Y zS?z&K+9F;))^0t^yJWSn_RGS(KofB$o`-yKoCBEjr(!(;U!!9<88k5Ae3hKWXt(gI z3Ko0O9e%T1EeMD2c0vvONu}DAGCKe@s`SR#jm?u!?{w{08slIssx1OCaQL!~w*g68 zzP}>=7?Agu&~&Xn@n|H@+qf3%m#^{x>c>-{0UwqL41LEC}Ib0Hfk=k@#zp zt%J~KIE#K7)NSf0@DGJef&=t1at@e95NrcDPAQG$nOyh-Xwu z`imKTz(p$7tF|6!j)U7?XvgTGaiX`itB$?#U#m)5`3c5dFGnD#40yYrVR3#%o41{3 zC)&e#3v)`gND;q4@qe*@%k@UV{c)jP6S3-D{;wJPjB>V$aY)V-Ucs3!|BjioL&|SW z21_IBXNvGc9xb!H$8&zJ3J!9d^zZC9QNp%3<<&|eBmOWIdQSrXkZfGF62JKEBmU50 zsnb4bxALj>Zq%~~Wn<@S+pj>w8=loytsVZ4FXXO^KF^gpP@v06xsT3AdO$LeO0Oho zXZ6(~ll#B#TX6P{??1i6D_TE!U2_^W{`1@w<}|z`YUQy;h8kFd?9D%;lXo3CDbMf=^`%M#T2WWHl?Kx~q=admU@P4=|KKPs<7wi(C+tYosfk$ZwvZn$rYQyv$ z0p_B5zr)GL0jZTmWSX3d-Y4GpuZ#K z=AiLrbu6FpoiK?bhGs$fVjV3X<=XbpQ<1)+Bd3<%)c-;3`D2Up27iL3()t#7xC5K= zt=jlkbQ{lXeDo#I*sXnyZP(bXGRN}2higQfU>$nVYU?kh_A9bxS8=`+>=#wY)KM(8 zDc@0M{*ZVeZNeu3B>rsBCDY*g=E%br!AP>Wt zakkme7;>V*Wda~{w#azN%S&!-duKHtsF%ckQ>emy6C}l;|BMy9)LeliTZ-7&tqlAfPOYmE&)A zBetEyUUy~7U_)oIiws3I6l$}7Erng`H>4skhF9fg9 zx3Ikfv&9tV2k4KYu~i#1eEx9B&j0a~xyPRzjl{dQ2IXyfUFW}tqdN76)g4&Lep^4A z1HI0fnR;Are2>gzI<22<-1fvHIwRADPhs+n^TD3u%O99K7dfv+svumtXVu`mTej=j zn>|+kFV5*1Vd_rtFSSG189d3Ff^lm!XDy9ubZ2Ls zrKHn!loiC5&=)PCjg6%NF3v7B-j8}Ze~S1eoN0XHp~u4sJ)KM-`7ux=BwIh0`m5-y zkasTHV*nXwR z?OnTrIZFpI{7B_Fo>dQed${x9bmPpux0!0g>z7^@PPJ!}w{y$K7}_?^YOD~BZr96$ z_tXmuFK)5M$c^S0&bAAm-4!mgxIF3Mjc=SxSo4K_Bn|Rgo2zBtd@#)#i_=HqTu4904Q#Al zynV#IruchDu~Oa&S6Y7_F#ZNN5TL$`gx{ZZJo)vOjeVG_t7`oat2e3nrs2iyizVmM zU#U}w*iI^^JVd+02G)fe-flbcYS^~}nXLzODwM6VAw?x>Y zw?+(=IYi;KqAhrl8ytA!^25VsC-*7%lEbp0HST!!BzYf-`~!*?`|;V<~hgN)kjgiID37EEEdtt_F%7I9RLs>Px3U|@T+g%`6~=| zwO-eX`3UQSExihiDR-U7r{ju0uc;EP{_V3Yfs>k)& zM`0R|ImYzRzlys*^0F%8b3f8CA?mqn?SLxZ__~@+EZqdthqkz50)acmN!*uzXKS?CqxjarY zi&Siz-ypH}&0Qt*Iz0sillS=ly#7;_K{?`iwN-vGVdDLm?ieQUM`3X@#qQjb3NTZi z=c@-Ju7b`5%UqzMAVKorf``=pHY9JUm`WrksBD3Yy1R;4ECxTNlcPs7>LZ%ePTcwM`82iLmX^io;1d^`t4 zoy~jkQ=|?Nk{#blsy|qgDvyM_!mx!Oy+?E zFYtD)u9?&s!XWhXZ=m78ytm)F#&2iZVH0g!PFrqGvpx#O5&_ ze^`@)kNTEEXD)BLm;BWkO7Z4xemTB4^tq2)QbAf#!tz32z`CtR{Z5GW7_2Ebk5LBr zA!uQBXmkDxv5m3!6U}g{K4Ddn95TiQ2=E@74mzn`(Ocr=bP_?^?srraKbyVS8R$s5 z+|bafJo}kBk%7q+7($meb>(pg{I$;G=`xLjio@WCQY{df3?(eWKV>eKGa$| zfWL;%)WSk*VQAyfBE2^cL4o!yM9$>e!iTFDHlo9~aH~G2BnR{h7vc^Eu!~y)CCq`t zhR*?GwN#)0e8h(HW$EC+SO^=`$;3ZW$$|CsR{q(QIf&|Bo^ca&LI9uAzLz)HoSRo@)}1O|6&-NA zC&!E+p8oP-a+bhK~v z6JNBk+zM6dH|@D84r;~R7>>JS<|g?=QCmKx@w>QCr=@rDaq3*jS)A?HR{jayo%GMz zTlp(ewE{8V{EG|n$f`2W+Xc*0(5I|ngR% zbTC6pdo`jfX4z!8b}d@3y~e(gML^w?-ua%B@ZQ?u?3%{}34a~&Ngh%Bdf}t%HTRGH za#-p5rLp>?*pn49aUD{PN?2TX8pU_Mw?Zt5oI}E&I%ntNv{w2q^k78%X9Zbr9(*Jr ziz(B3)$N{V_qCNn<#IN`;Cr$1+NOh*PP51N9e~+ye{_xF>jQ-gU z74QB#&!eM(e)M>;pzzFK$wL6qxW#3-(^Im_;@sWEyIi$tIEStX3L#7`p~sX`cu#a? zW)wkeLGtb}@4;X6k$LhtvR&RHJNrA+sCcY$h~TR{zcxyL?xV(g^7)_jn@`o7*`=jn zG5OvG{1uV{m~aPj)T7h$u_EMJ@1rusMfnc@p+f$%_xvyTPz{_*R)>yJ{j$Hb-5pGk znhExVIJ07u`$fF=L%YTST~>;WQ!;=1Z2MZJ&qlN&aOt%@Klas5PW^H~|XA76SpfeNna;C_R&YN_YLCb+iRG=!{TR3*F z)Qb&U;mNb1$^ zt>mGWw~6$8N88j6OzH4JVllXhNNS`Nj{>UynAn077zZHFsQ_M6E zs$LtmN~_T~zG~*4_+{0M=k*B{k)-kOCT{`zw0U8+!p7RvoHde-a&hYk(Ai{Q))N?l zJee~iG$Vlbh5zS>Fw$eYxsiNO?~8p5u|j&_N3(?4kW*QLeT+%MpWV?T`xu2r`xtcX z@ifyX7?wcK*Qiq8b7^3Bv>vEmjSyi!L?v{BD)X;3UNPRHI)YY&?|;{i@}hr!0PA3pF;$$G9{{eGIv~!ufWMDlkKHL~{t;r-{>+;nl=roC@2z#aAPOU-N%Dej23#HMhAYI+xpn8dmkeOLT+e zKB-pnlqhRl+PtrhU)|WUOltc7PC{ReW&ZZdwDkmd`{C!~U3 zKN)ax!Lqu4Cv2u4IM%y=Q>y}z-H;ljHdakdf;#e-COK&w1+h}+D}$!gakYHM3vgR7 zeU~EIKFOpR==qF?K?1krR6J;`K&u~Aaz1_~XgC9Gd+V2lZ&zwR4H7QK0|v*`U<1{Z zQzMo7R0BQBs@IUBqfXa(Mx@hLlF<3D&t$k3A9j!DfAWp_Bv9Qqs$lY2ZK|d5jMx~=myg@0NFHYkvw(`#Rb>EX< zq3}!TN$NU$avOA?w|tWvP@ir$#S}#Mn#j`}YRHSixTAV)XO=ML6XwF~YemNLrJ0=GJB7I{Aw`4*PZkhYAC8sQT+d)IbkZcsL_8V!#n zM}VMF;g}-`)~2J>YdxP``><3cn?9O}Mf{^pP>OIki|p56v?hl|gBbjl)yDN{420MF zhNglLW-0wxwSPBxID6Ke?O#BlcT-kq4f_da_NMQ#xD#15WDbPZ<3uN~xC5tkyh*6} zhu=j_>*RtO-Kx>4nME@f3NN+Y&Cv)Pn~*u68v1x8i4E z+!AO*dWluoRdGNd7WqNn;*)d zaZzgMiWjvK>SKX3xAWE?E26vF2#3Ug1c;*ySKAu_J#hT%q1W@G-qfhgfN0B{CwCKx}LlpJFVuGZFRz?zkiFVRB~^ zxWM^jWA*IDh;t(UlzaqE7w!R1wEhyW_VOkpR~_6kZF;2pww76YHk_VhX8|`D3nYEb zS1T=q`#4CIP42N5!rf56-)80p^)UW0`O`t}L9(dG=7_s3@+0IX0^}KEnN$A`TIz@U z$fA4*t=lVjzUw?7Atb*Bt>mwv#zfN4eGH>fe6~Z64q_VMgQ?Spq_I#>v|R+ z2(KU5co+j@U)8Qk6FILzxBCpSGo$uQ9x2laVc17AX3}$m@j9ShM zYS!%8&njsK0C*^vOy5%Zdu*N5yw^E|qT2mTC#oT%&Z+1zW zJji7ZrVkz>XeOtd(L;(2{-s0;ok$2z9{_v@uG!RuwhGx;pVNDP0EnUir-ZTT%u3)a zd9_wN>t6cyA)*1bBn#$DeMp zWE0eESmte*qu`FDvBb4IP-f^IEQIf9t^xnk*e~pNbIbZeZ4b8wj-URJ zzISjJil{o`@>QxbMp3-lC!gdMSmS+fgR_WP_mZRj<*HeCF0Dpa$AGDO5E6`^UTX7I zfn(qCulC3`oyBXkdg&o--<R z1>NR`DhON;_60`m@!bBYrd8ENUQ=9GvO!r#ZBy-Dav}=n*XWk=;g^3C;>|-Jp_2qe z5Z7{7*E@s)J~*r&a+w;ua$LeS#dcijY4Fs!XW>#Mq!?Dg|5)ZE^g39FY`Y)l!AiCX zsSysv)6tV$Q`{eYjfjBO<%D=#k9C#BY)0RaB~3KlO7^9zJZeWeV&9LQqnX-H7Jd&E z>6#|F*G4m`LiLlZvbZ)TDZN{S_*HrCxBo5D`S*|x+KDHXm`<-eh@R^y`mYwudq@#` zO`C*pOhV1Lj){Bw6U3JS&-M0(YFEu{axBLC@dd6D_`t=T8SQ8rKF3V9A%;NB>Slpm z9M_c>jr;V?B1@p5o$sK*odc0rB|?C3@^eQtV)SS^G2UBpzvG-p#p0GFidMUsrjdMm zlgyA{j@`A&Pj+}rvwCuQj4*m~<#*JqRS)65qzBgejEKhXx4V-9>|9^J*sA8Mzbqd)WG6>UeX z#@*3DnC50|AKzV>jDqyw{|ZK(V5qO2~>BAmQVagNR2%QF^G7w1%(~*aM)`I0j!(J@3E8C|5!IKGPT!Dmrwl~=lU!8Ci?g@{S`x;E~LD-w|U0yu5&UEhLT!PbH&oB z5(TRI9SiHhiu3tKx}k1_al`; zmB%4Nsf1)YUXqq1vSKXq+eIq`5ASuh=>w8>fDxmH3Xt-r6qle^yE`{H?3F>&w zdT)(Xww$IKdBRv*iT-Q0$=Z6@RD(^YBWG#2fC{WcvpO(n+`mB!fI+4IZ&0ADtiP2G zGB6x4gXOMNBZ39lq|xS@@?R7>Uc4Sv$M*Xs3*VwHLuF-%O%`VVHE8Ch+Zy5cH`5&v z+TvdnY8ZC=Vzk8t&tU}rHw{c$ToGE7e?$MfwK839K$vyBtVVTN-0U;BlQblohkm>f zx8>kwr+<+N$DotmwvSTw_WJLEHK(w))>!>~rFS(_DGjsn`d;{N0mF5?s5Uc!v4#FO zcK*=K%tx8=6rf1On3k~C}qXG12^um`2uQd7Sc6MDH z`zzZU%RC^h9+u&*Y&f?=gseJ!&KmZG|GzC`$xZcOA>@s@RAH`*Tb|SS7@#fTV0)7N zw{xNc_^7WT_S?tO2xfPoS1GI&(U+mSQZw9AdCwMvzdMpypJ_>vZPpEOvk$@$#_|`K zzcLk7&Q+d~e9P1skoxN0OEi^@9c}mb^JS>@yQ&cv+mh!F?KLKn>s}j^U{f--*6~Yw z?jWn`;}@ejg%cg8^YA}M@sGZ9R5?sWtWpb6gw0f|?iIo@8v?~^Y1?Q&i!rR|t=9pt>xXVon!(U)Z+9V zd}U&+?p@2smcq{~lhpn_QP)HZa4o;gNLwePgu$Q;G}OPtn`gPw$C1mhJ&iu{`+Ux` zm+qu#1Kc+YSrp%b)(lnORI7f;;&JoQ3U8&%RWU(&oL$7;tvwLXRem4%7L41G9JAnY zA;p38^&6Dz;DJYot;L&w@70#6>O+Z!ctGIQIN(PbU7;%vQxb*I%?y}oMAIE z|Knko>sz)n+N)evKvfW@Y%U^`AdPS&!vM7)?{j0qRhzf|k!Pw8K(ceaKi^J-t^$c7V!HJ`{M@TENrQ%M$JY zgoinCxWXj1W&ue)Xk=@sDhHes!XA{L7;t%o#)6PX@=B$G`nm%+cAgS6ajGr+Kg`Rdt<7#101AtgjL4% zi6s-xR%!|Z$u-pQw6W{ z6xZ4(S?z%Gte?GZa>8`4LlqJ@OaDK_2iFQ+pA3vHdE07)Lx8+FBJsou{DwpFN#L;} zzZbyDZvm_Z}m*R9b&jQY$YsI7vA7x2j+kC^HWJ!+@cendfAEf`@#x3 zps78We;v4j8YUZ%7FTie+3P$NmiG2Gs`DFwZtb!Fj_DH6ZNHZAGOX&63Rts>=h%X9%C>d=TX~BG@XU3i0~IUqa#Q;N6+7%LT+3HU(r+|^#NJ9 z;=6w-QF^x*>IeXKU8IYB7*e1H8EyLyz*I%yr~pbR9~s^H8CM`Wbyr+1PctLf(N+Nd z-Cp&8&iwiZa$pK%MO{nEif<}~1{KJ@XZ=}kS*qL+GcGeg^h{<(@ZP9&KYf(VJO5p7 z{=L29abdhUd)Y)5*y#N8d!iG*-?{8m_DQA_A^l#3Ot)Vd0p3e_cTK{c5VCctsWIeR zBgt@<MViyYO`c-RM*beI>Wq|M>2Ee5O|~5dwz^?_6T^kvA_1eS4QIzj~*OW4*iqZ zg7uN<3Q0=ZHa!e4vS?;=uuqLWT~Ji!V(MI@U3%jZu%G-0o>HpLnft<<#$!fr18uQC z8BM2AoeADlIuz~1`1EAJ4qP$i+g{0@ywu~h9iDPtu%5P9H*hMe&Ahlc_gC*$znJ;z zt=kX`omn^9L9NuTSL+g)QDWqcNY zy0P!uW#-E8(Bs);s`Q><4}Jyw$fCu%`^;NqTBjDu-M@mXt0zXiyIj z!lH^Ssoy3nI5YX4kjV2PYUxl7S=3l<2kivsB;~lRyLB zx{^^TDR|;$$*#;JXxJsKv%;GBu=gGZCTP+_D&XHTE zY7-s;S5Yp5TP4A2B)7R@NBtTBv)i{kK%~D#dLhLvt`4?Zg&D`%mUp2s#9V|&2;AksVV-kQGZ9V(hAD# z@qjV3kl)xC8+*kh*`Xdneo&;%`;EtiziVXCaa(@_V%*PVwO~3tFjHhx zL;n`WTJ)6vcK)YwH*{uR;U4*NHX+aiC7&`yC&Z1(qj4C7bb2W`RY1k0k`O3mg@@*Jr%9db@FF`@qG=D;*VB? zeEJCnQJp20W&0*tzfsChr2Qhg_`_utRT|>frv(^Gl&<~GcN$hMd5QA5<_C@@761!itB$77-J`Ck`HO(iLUd$Yg#K?OM#ty4Q2(OOQQI0Sp6l-;wfiV}ZK?3sU7vC-O=YqY^lrQBgWM z_hjyO==?5iXwx<%+PI_EwloC@yzwti^R>`60cq#}X>cwyKg9nh4Lu-Dh>!Paf}{XO z70!myZ3SkJWRpeM+H#s3hls(z#~zK|6vAAr5lkJ~2TAuHyUdRmotfisjNBjrf-0O% zk3$4knp4Wnb~l3mRxy`jQ#9azYj|O-5Or5l`><(8*yl6ALR1yCDf$MlpGvcBjdjNs zNJaiF8o;_5A^_H{{D*a;XSlz;Sq4LH{3zp(ZVrOBd&EQ1V=A(d>5z*xJXL-_UE# zicbrH$J7gJcYM7K;_snJWCNhP;Bj1yFb|G55&HkoU2r=~uXGkXYB>iS2BTyMwY*a> zRzU+^Lq_JAmF48eM>SrW4##Kw!u73QQ#Z9W#Q}z+k!(VV>?`j9_xaM;ABs#W=x)lk z`da5V69~1Q)r9V?(jJo=iJ0hwMUVA6qa6I?8{uS7JAxnLAQ*A=x1>o>N7t{8^?cRz z#2Zth8vJjB?5{nlsEN;T|5#NV;}i7~-(f`KS_SmnW*vUAUF38by#%B6)D+9#nSW$j z^&lKuK>c(a1Gkxuk}IxdyX0xs)0W%{8YsYuL-xih@Rhh)*S(r_{F4xKht$r9r<3hiEle-b+d{q3eVtQ!!4~{J&ij|ElY2(gJLoaztBL2UZ~DL% zV^BmN^t05>cEr{0*3dRkN-wnA=^T#0>N z7W5}^k@0)$ooLm5oD<;d#00+9*+*;CeDCj`#gc}fx$;L&>HJ;CS$$il*Mw*Si->Qg zoJY&L2R~(HRIj6UmnrFSMtA!r+TAgKQ>lfE+Jvbuphmn+O#B(z1@3n7tm6_c;TWgE zrUb_?y04|lCUUXpelwecdKVq#s2n&+?VTM$qbJw;JYL`_ zh~Ecv!({;%`ijvLN^W=Ul?W#jW)RvW2cjrhT#veB-WBihmLQK@@OWklfsH5NASo35 z-ktQ&vU1w6!LjVQx?+hIWK@0hqV@U+Iu~*XP@5y2fY`7*5F2j(7aK<5VC}w2Ylp-H z#5G7iGk+cMIO{I3BQ+!pT_{HArkQ6CIn$S2E6J=fqwo3t7VDMjHwK(?x9k+!zB)7$ z^T(IdUlUcY-=TG`HzEO5iVy-fsx06QXXyQiV0r8J6OR9>o?ah&8;!ZDJdC2fEx@c1D9paYl7SL9E&4{1 z@P)Mb9ph;o!dn_I+|A9>uv*^ZFx|ak7Z%2F-Mu;&7Au@z>wR3IqzK6CiiojS-3ar% zK@(?+0<_ue=8WCnC8Kdw`zmd zNO3F2M3J4U*j)9`&_!J=qJJ>Nj6U!{=+B>j8x3uLQ8_h2{OijmuqH&nnneFwlN57( z8D-bJQ*pCc`Wcs|7kD$x2$37r8hGA|vL*+KtY!t>-)W;!RKxq=KLCnTW_w-OdM1^0 zpt4Y}-R1m9Mx9LzlSl(Ho=(4+5NAFYk(a`T0vCCN`V^D)Zp=KBD-hAL(Y7|$sMmU-64+pbIrg&s;x>=D1>r=^VGiIpBF20tB zL>2`xX!LJfOs}3{;3}T3w^;~Z%Fta_9i5cIjv*vnF#QDa+v(xBf4A#PBXUZ zE%!>E1%I5)#di|V8EQ`|&V(Zqk8&)_>_Ykeu_NlmG(IpuDvs)ppqABXa2q#6Fvi|F z^{P%c^fz1Z(P9vh)s4O_WY&7g_ff}0ELhJ8a%1~A6;h|R#msfdp6x5($d}CNDBf| z3W#({NOyNBNC?s$g3_gQOG#}&y1PTVxpVuz=bY!c_qm_o!(MB~nrqH6#{W0QT1Yu< zr>8JOE-4N>oBbRx!Zkym#~As?hnu;9Vwk8>b#sqOcK1L@scGUhiYIq9zw4`z9>-$@ zCxTlN>_U%0WG1()m36&PfUw)d4^<9unHpR*XHq!G-Nq!F4&eO~zb zGv~Ts{J2RJ7b`b|(aV$u7K%q8b zXHin-dT=I6&IM#PFjCxzg~ps3GVrjENs`KI!C8r@xAA(oMQj>hvL|<)uGaZBS!GQg zAj_5}64l_^^##aAybyR4-!czlU@L|R*7^=z`&eWPV$4#4k8l@!mz~ED=7PNo>nNir zBH^>xjj6Z6>w&8p`qQQuydETjHHbK?W(Sw6>lk%YAvBxI#GGG{dkB`2RnXut1N7l9 zH>&(kzArXotS%01_dLxY5ECe4vZNfUf?#}2w5190?uQX;IhmZjw3%V3%8v+Xi^&2| zj)oAjvM81)<{G>2-d;KpL5n(#r2Q}G9XOdS8831nFY1VFY1aKBVb?lmaWJi97WB$t z&dA&-T4rUELn&q&3w#B=FvIp98ygDI8*!Fd6rKhBQT$3|L!DsY|D=nsd#G^dL$W`{ zCwd7rieFliSHI`rjwKiP*B->sgPbN$t0LT_Ims$Ryp{!C?bS{z)<b-*-M3bX$2F3yZdI;%McH`6Do&&A?n-Ilt<3d5=Wu zU0m2Xx#a6?-sU!Skh*{RV%l)wY6N?uKTnGux4h_G;pynh7i~#)jIRE(?B9Rz9>5D} z$_}=PDB4l>=@KhLQiBxvkkUT{ExJ$0!8m?55UMFylOo}!@uI;;A_5+^W{iRR4*TMt_ zdAfuTM-Gu%;`eIuSRCEaN4eb#e->x2>ZBq;b$oX7)CfH*5D0uvJ8et?{tA7I zq@g53pDR8s4^pF(EMO`S|BVBNwetVQ^v5vo>(n3xeb-VN-qgLm$=#-u78QDgpN{z#(v-xlnZ8P*G+u_m| zSAIv{QpH!UdwHq6DuKV#^Ksubmrz;#Jk=$S9^E67+C1G!`v`^7Tv0B#Jnh~c3~-Z$ z`lZouJuz=Ib6d1FbZeTCtzGob$%>G$tMr|v^rH-EFWJiVj$Aq4E)(^DTs5R&+yuZQ z{g|HnY8p$lS@WnL3w1uA2eSrJ?GjvNsKu53%2jjN>bW zrC%~uq&#vimtW^Gcc?A*6j_`zaG&|^Hrd$BFuCj?;7h8yN*p5s=}$1K_r>xyE`M>} zJ(8c@3__dJX{0%A3mS5kFbsfr`UUIJp7K5Gt>{go3gc*fx&qp+>wEcy^D?cS&x!&8iBrzRt0Ko(>gq_Vp-E z+2O@=-e2!0I||{Ll!OF25^zyybc6p`mmQvx6N+(U0O7L}2%pg}05#C_g#hTVx&MQR9V2>p_el5Ac z`nNCc+$2Q4#PVe!zUKwuOl^YXcss=(*Jb4HtMGK;no@r|5MzrTa;1^}74rZ1mLGY} zWu7rQd6QZ=dFvE9!NzNYHn*BN7`0_+N2u;?6$O%-d)CzhYDteq(I6ly`r?4Yd^LA> zQ3>g0PB}`g<{FHGsP!)(bea+6d9a`l(WcscTIF(xQYAS-Z+3XIV7t6-3+QsFc{h{J zN`d-{Y#9$gzS&*0u_)?&SCC#dy?3m}r79!)*;fLyU+E)=91ABSFj^r&y4~X7%e?sP z{?1Z=NZ-KR-qJ9wx0m8$S)cA#0`Grme`;J}2H4@D&=bsp;*L`(D+gmYn`{roq9k*$E>GIGz^h3h9dQe3ERnM-EkaK==7_#K0}@Pf9Rwcmc!enTjSRn7P```NSK z4fFW9kUv8y$fScVy5M%X&`23>?Y6WiLovMcbCVKn=dmav7bbtQn^JaO8KZLzp@h;| zgCGiR=Hy#M`C7TXFjF^IqO|Y7^C9yDCa*bAvuJn>B;d`4q77o=KfF)i-E&(!IQtv< z;%*;46zRHy`BsO(k8lHiMEzgi%2vlrw0d~Dc8b>lc}TM@MFj_nnM$5_1wv2h8#a$v ztyHjHDLJz+6$KxB@hNMbWoAO=Qy~q~U{i&F$9*jSh z9?@s{8p)GeJ=N;dzU6=18b^10k21tzmxut1qdnr`JA;w5JR#YVHDP{v?%{9AA1yQi zxw@W0I32wyK3~{D{QSGIGrdj034%bUd6Lb2n)@r<4e<0dz|)fi>8Gb}VCkoH1q4Ev z4}*oGX!@v+4~3KIhOglpjV8f&GR*?&xhCnI@4}6FFsxrvdjOtc4Dbw)_N#2DaVe9; zSI*-oRf(a(guY#A>tsQHc^$*%wdJY0b5a^nmg9~4`^hsi2egfY_XlCirb2oLKbPvO zp4K)s2JyfY3MZgY!~lh&3#L$@a+S8%x=XjZhlzWOc6pFJMcVT;aKC3#61Q}skh6&i z8G_dHh>WGcCqt^exnN|}y+CMq zLocmM%MD^8sfYC5!dVD2eBQZk+@4S@?7thLF>FJufNc<`#BQy9hP2h;_HH{-!SStb zJA-+q=c!BuRT5#H4t4O@V;>;EuZ+ibkC2(GG+c=W;Wx3!^-7;!z18S|Rfc*r!s_k* zlM4@58WP6X9LG>Tx1DYMC1Ns8;R4EEodXZvLIwV~chg+N?B-HDQZNuo1qMPn01(Oy zfKc)+e?h1zI{9Mf#_;l8A>MuqvVe{S>aR$^2^BqM969>F^<@c2yE#DGm0ZwM z=`DvzyCEK$;pL9I*WEW^n%qyzf_jQm;64Xdc{6#J=Au9WtI{dNFFk@+_rApi<+3wexUI0h6*Gy6&OnRIB)vpB7K4Lg5Qd@j?=SFQ07kS}xmhxAo8= zl#s6M{ZAVjI8&oNnr?$)uC5e30qG{;XVjf()Myjd6_5tD; zN_C#@^$njGxzirgkjUb4#xJbgmAGZX6ee8`khBo;_>e>A-Tuo#$wT_6>J{k>gUw?1 zX!^QhUe5Xl=xlD)EaX^atd71V`%Fmw>HM$Q-SKBi6%OfdfM%tR@6`3>Vr~rliH$#Q za-kn)a^VRs7fg_MO?tTGEO(X>SwPCU=~U;7n$~3rdvh1GSacL=;V)%Kbk@8>unq&o z{J{*tgBc?HJ40A4JAWRv?3}}Kw3WiwX^FkZaGZbaeu>A6S#jxavl z2)UBl4e6&!0oFj+^g+u08H%h{UkduUX9j7GWde9t%Hv?G-z8y=@<^+%_D*Wo4$iIJ z4r%I3HQW}w{sr_4<*%(AfA!N#zS@tzw;SQie&x>?m_puwvRtXH#5Bx54aLS55k&3h zaQqA_?0JrP$o;dFEI5aap8~-NLU~I(=^VJvQqi2rT=B%M(ZYSUk)_w|N06^cp&V12 zNWvqLQbl0Qh>VfyCC};~o~L^3T}YMPhQo2b32WEnN*+Qv!tk44b;n1{s}mrP0b### zQ_8M%M|8;zx=^-VAQ;Q!F0%Z|IdGY|<2)^tkg`P8hvY04$aJMMJY4rkpp}#bjrX~G zjdVGI!&(lcg6VJ-s;|&j!wzeXG;M;)o;6pIQ%XWpf5H_vraC>eqVI-6sBOswX0SVRZ z%)+z@BcURXlrTPc7D&LhJ{FO&d2$gM3kz3qw&$Cj^Uy0btxXx<3>YVrJQU88fs@1Q zQWiZF4kZy0Ek1D+7NI;08|rBgq1@eNi#ZPNauHA5_QA}^adveP4;z9`YiFqb8o4qP zbP*pJzj|h9;R&duf|CzQn~%3JGm7(0&|JcX%69ZPH=CS&1&2f@U57;{&xS=|+y!;U zZq><b(D+Dw^a;3|en#5**4!LcMp}c2;F&9oy)qFId@CaOPp_20Ju}AZ(~CQH z8XYy?=wB37G~8<%!z2VHi)l?`S3Lsc4Ay+!GW6h~gB>4@=%MG0IVYdWhMr%Gz^E$j zj2JT!N-2viJ@Sm0Y+e_)*PBjd=*5TK;L>?;(`&6zX3#P2jJH~$_vop-Ow z(EGs>*aS;J1T2A!ze`}KCiacRwG3>Ub9v|I!3=@n{PWA#7K6nd*k@S;1we`Ea!J%9 zaC>hNDz(Y7{Sns3YLQ9R7bC*z-LEqQ!wldV;U-yK$LsiJ=|RZ@e940> zarebXiqRmsQZ?Ss+#|#z8%=N2>qK`p?cH56n@R!I6n5)&IXr#97PcDe=Nz|4zR!mDW6xgQBDZpO0Na%T=EgoZda8>E z-^g?{=g@TuT;*?&#OlB+ptnvq)?#Mg$Js*0U?AF$AAMuDJ`uS;moYmFMH&GdU&pZ*_@UbL*g{$;D=J3P7e%HPvfsg*2K`uYJ{ zjyS4q+s!d=YDiG5Jc642=&LksY!)BEE?RHv{U6n!mTYui$ekL+bHDw$U3?o9#L&H6 zcn<`ErQt~Q!AZ=>+^~+;q?Hao@r>yAlu`2DKRjqaI>sYeKUwW#nc)~3fiqF=n=;JR z%|1LfHJqJ{La@3ulsrnVS-;#|%_}Q3S+Gv;dcVs@UsBipa#U2qr3>}Y>Bqft2AKwj z0@@tMS`rP~N)$mPCE;h9RhdIHK**o(yl=WYtJlNSeL?Dm{{mJ>;p8?Px z*2R0pt>O6DZ7G4?GPvnOUU(B38=@{dBHtqAvXCgn+HuwI3gL7-tRQ$=*=>8TZaV~n zsyHnEfvV>Ev{==UehHPY=tt?pAx_u0yTae@`CFIa*5PRu#~jF1KjZjro;K{ ziY8!){c03`meZ6*{h3iR5zi>I9mFv=>hO z)^_PZII1B2FlpYPSo2nH)AkXf&#T`hXtrhrnFFyPbKp(-FH{m(9*&HU6;@fJ{$bVR$vZ6I#utx)p|jb6t7z%@8m4|^!)0u;Z1~+&g1KGzI?;ljI9sNsd&$Vw~BE0S2Ktt zXQc9z4EOhCkNsS)Cz*XpbY2aK|LE!@py(pBr4r6>?qWE``iSFJi1F*A1#{KMKmcAs z7OJZehB`eNGyb8qS^%xJ?FDG9VL)rG!f34nw^#COu7K9sIr}fIWfMH3)=2t}(HTKU z#`>b>A6jcrm0e2&&{~g9)SElkVYHTC_N@lpG4p9?3js7~5CWn)^YKaKSR((>S{R-G z&{|!9)*6G+T92Fnt+l!aqqVdHO*gKpI%qcw`43ZlJTcJL@jF?-Jb*b%8ZK*zX;{&iQ3^Bl2sxBlSFUSzhq5rUpgQNT7R?=fAkt z6~MKaKtVDeJ3oMH36}$0Yol<}T3vkL(Oq($83%XTwEdQ^iYlc-TGd*QRJulMR9N2u zTvMPs(vgZeRxk4O!6#*j&kmP7HZBpZA3m!0h&KqY;dN*0aZC{wN2UZFja55D&ORiX&EA7_SB40KC>87_YSj zqCpujUMos#Z}(Nu>Nbqm%CLhrrh2ui;v8YMWUT+?wH5)dbqwRR4mC8oYGJ(AYFZ+T zZwlbG_)vC=pNnNEW>fqYec@Y9w&mT}?xRX{l_~xQ1^|4#$TYK6nQC`|@mi!Wh4iTl zy#Z$`TH*qDEoZ=Ml>%NX4e(l(FkUNrwkDBq9>#0UQjvvdy>}21%ND|S*Zu=|t&f1$ z+Peh2RxIGP=(GT@)seV((Up85z+HGV^$)L=jc}?M2zae6-1(OyTK0=<+a`h_@~;mf z|8k<7oRctKtL6Ql!?T|QoRk=g_4QQ2n^fmS)v_NWSF`;>$NjVT11OIgvHTU1`p}A| zv0BfOoST{mZ)cK*{v6Y{aW=g_AisA%>q{CRcdU!Sn$p7Z)}uw)%jofQm~LfVUuv$% zoL{o&E|&5$$6!Al2dXR+8*y`?B;5)2aEHBGen_esf|UR%v!Viy>H!SCMRtjjWf;(T)*fmGPZ=- zc@Iv1cLkb-7P7ORJjy^uS5rFcmfPB>@V@oNkGeN1H!Ss|95Jlx%T6x_90$oH!4s`} zgPq-oaqU_A*>oRZOhGV==~P1vy8%E|gpdqE7PQk7u8wv$2Lt+{?KQ~e(wyed;V+Lp zy|Ry`>5JQ94jkkf4u4G+p;p%W=pO`|d)7FqGABEhe&LKzDQ7MI)~&gO98bU{r2;N# z3~))-FfK`!uP{_`^fu^#RXkG`VUYFT!HE`Kz1_4XNww&IQ{)K}4hBKO!A22SYtNi@ zzS0f;18nhyZ)lFBgIYP*gZkqzU~3ZqTkim{wE}=G%fFrBYvtVidG#-_wF%cOoxQmF zTUgSa;1mXIZT){ndN4;B?CfAbJ=D0@_&7b-nNhg4o_&1|*7fMliaVquq8D?K7A~XwT3=*kEQgu5UPiq&e$-mngw zdg8q|M{(-qIKZE$pNgX9`01)TS2k%+L?;MDBxhK~$}~{1QWJv<=1I~gV`8Esqz73|sVC}Iv$L>B+}O;VfH7m&V38+2lmwSc8jf3{{yGl<^ev zyYd+xW3qe}L}itnmQd^&R>_+Ux^KkWf5jEZuBOqQEfEe#O;;lwF_FGFH2$;R+EC&< zR~*hRj+s5B=Eh`nqkJa7CqdW7-sD?+#B248c2qm@DrJssH#<-g;bkDQG+z|UgwoQb zq$cSH^E^MjCi`B^$|_~~m{)TI`OZ}gk|}E&10O70LvpJr@$8v767SR+U%ji&pp-|j zV*DhYYmP4#FwAaBKbB$~kuik$R;?J&p2Fh_)H&mQs>6x$jG-IDkc>&r(@8nT$ywJk z8wc(iN>d3h9q0!l_4iuE=e(n&po-3SWaCEK{P5H9Sn(8*fA;S@vYjW5Qob@t*J0vk zfA{a}u+P_W)H_eCcW@-dzLpc8VZp5FFZbDGJ2-B^*9iJMIH%u|V9x(h3A7>_tbR^vcZ=%(Xhbch?EwJn=1G zzx(ce;Hk0J*Uy)$j$GJd?DSR%Xqgn9ri@|-1Q&G{tvzDoG2UJj{iav3^*v$X?fyC(}nW4RuPzz-bK7rw0%0=QS1 z^ybk{V2?rQ!K{u?hd_3s@r#<#sL zuR@DYT^r|ZJB^6-Ai?q4a6wWP-iTx6e+)6u(^-uv+qS9EZQ%amw3Cs*3bk`v*HpRPDxX4A6|B9JV zob6PI1OmEgOhgi)>7~YuzeE^6sWUVG5-I$o{tcc9LzRyAb09ZY8F9CeKjz2zpO?2~ zA&+|jlH~-Dtf^HECFCj?k`=Gi->W2UVW=-;iS>zxu0U`Fcfojm5HwRwqg`4gp?^VNML16L!O7Ut?eWO zISVBB9ej9-CfCWua{YV22b3NKi|ll602B~eQi2r_@pUnO6?Vvb=d`mRX(F!&`H*x1 zN7!j{!B$|n7HaSNE3smD`4qRS*tGN}QvOI4#jV&pxotCQ%{lg-v{<30;qNZiRz*TJY zVL0u4e%}@4XYeIDZdMuvfT0>U@6Ke)bzR6a*^RSywy7f~mcPY%ke5ZQ%M|Q7=sde8 z#2|(1S*n94tFDI&q^|IWAH#WzM`&R2Z!}{?i?h&KI?6R}F8yjYNt;}}U%w=}-H~3% zKp6p+OZC{3#~(YKvs13{^<~tnj#uZ?1C&Ku*@A*>;tQouh{Ba)ob2&ebLY>z4DwFS zUG_OAA$QL*gQpA!2>+-qk)>+|oD6Eij~O?_7fioD(KuD z&TH3anPG-JU?J78PC=r@D>@d|Q(G?YK1%1PGk+K?0z1zhcWFnGhe(=4 z{6vT!5!QCCjUefWzWI5E$DaF{cw>@P09FMnL?DAbn^Z$o{*3FEaKPl+aZY@pX4u+2 zIM=QpL+5>+SsTp=ecF4^MLXJYhJvF_#p6b}@)xg#d3@>m>1x8yHKF2yvXT;8?y>hH zTa`@b(|Cl(nWVX>ryBA~buc)WM>+DySY;zd!k~reqcV#VMf9InwopB^)a@F$?zSnh zkMKp>3#!a+9Ru*5kcot>`y8JY^NEdf7Z^)fB!&zbQR}wVD%A7W-L{u z2=8rV2-!PPM?4Mo6WngaG(3RUaV1vTI&49_rbpV(H{>%yyUSJ1Keey?^e!I$wD3j5 zcA;?9qmbL!R+{5N3)HpnTf1M2Q53<{H_xVsRMCzicc-^ojGFMyk#yz9Cl}=^Wg#c( z1YK*bUA=KM?{WUHQv1F0gYyYEWVn2wKmuR&_0^UY9U+Q-)6wGag!y*X=F40G+^!eA9m;Khy5xX;X}NpsBg9VJPwr?S6DW zU##ti?mJtpY}%#Y1cJ!BT=l+m_Ktk0mbfgVR1ORn*NCTRcIRlPi&()UCWIauqlMdh z-e~$kO$8ZZL1qJSp!{n>jl`6lXjCcsDRO<$%Fq(K;)He$k|hSqDB;=$S}HsrlAQq3 zT@u%E&nCtMQmw((((SS{nr~oLNk(a)&s5xjWJ^ws)RdQcGZsb-T2sf0ig5}Hp1h@F?1r^icxS8PmB0Kxo zkP+f+?yp9sv3oaL=uiTo8G_Ts(%vjp#^nmiq5ir~wbvt~(UN>7+7eVVatl~Cl?hI1 zG#Qc&1^GBz?tLN(Z}9cu8Ul)3AlnK-6ySxe7Hb=Ksb~Fs`WXVyFK@W}_v>PC{!cV< zvYWw`CSq;o%APnCDl0h%TM(8B1RE8+Q@AY%**+xEa1F+P`2#O-A9#Tq;+&jAoDVQz;wC^OdM3{dh6fRYdW0$~z)Ue=BT;j43PmAuKNK`Rgi zWDVg-BZs9yS{&PW+<(vR13gLsdU@NLi@aqOEb5gy5aFOq@f5{n=$bapCqB;kn)*}u z;wI$r6((Kq8hY#i1ByIyA4lA6>C5CbCA23B3uL*mYlE>NX0l*73|G1`;cNEoY@QA; z5J+WK6)kT|AyGM%!K7oHXF5F8k*NcmW;p}tfe}6%&$<+MLuFs8S1u|#&Ksl-`kC5S zlbZ$avBcg9aKi~Mx#8Gd=Rkd1DQ^v+wtnO{QyU-EvjrHLpXqY4%9F<3z5c)|aPt=G z*?j$)mhXrBeYhZb%pXz#I0KTl#R9b3u*HL``HPt(@^ZJ4{R_jb!j%|Z8=Q;qMHFK$ z)&}Cm+&bS;P+YmK^R7; zskA_W&US%3U;Ub-UX6+h<0-P7udGu8@3*x;`3d!(vy(pG?Cr`$_jMX!BFe6VP?~sD zq2tG%qJXUk-1!zD`%j65uUfu>E(6?x4B!?^4lJ}TFx&!@ynz1_oAH6*KI6`}@bR@Q ze?jZ2wq!xfnh5d8-Cz1^LPE;CR}Yf1tr0j7J1v%SBRGj7o74+%hiMq@@Co1!TL0h< zDh0B17;i_TwtC3uo%?z)oBQ4DR8+ePUeG#l+u7Y zIbPoL8$sUlEs#36TD&ELTA2U&a;~^z#Xy_$AR(+yOK0Vmdi}@BI;~rJyJw8-cl``W z(l@4m3(<<0f=-l$bin%5Sa@W@!*RXz3DA;c0Gxw!6rub42GEk2?B=pRIz0HBVOV8A zpN$vX+w47xUl+|Co4(!?S(p1(=~w$!8P_lvZS0Gqs>8Wpu7A6>5_y5ET;wuYk^yA7 zh)RhO2{WwyfTSroDzYq+mtc<11iH|#y1H=xg?F%p561?6; zTl1lJZD>++Jt<%+Nb)SV(^NhXwf+JpdIOxf=H>1A2cl2Bu5A^ms_>SY?dD}V7pMY!7V zdDi`TaPn!vsVQ;%-)}6vaq2u|xx5pXfu#wm9@!_A2Dt!s$HEP;J0P(EusF%;FOq1Os7A@(wA`)%fLT)juhCAO4Ns*+6CM#mr z28fZEEM7?`j)MX%u^aj5M4O-#(Y6iwy@VN`?o;+GEi7PQA_=K%AW9 zcGD5>FLj_4i!eZ!2ClMWEdaV?DSy@wi@P`RejYkdhH1*1q;dqACpUS`^AG=J2ly|C znE1Z;1pH*>L94s<2!lEG@u^vht`WMK>?U80_zn~M;{bC;qYn`|hJ@yznfrwwgH7RutTMzgBvKPuYhgN$d-C=}f^ z=L+gMM!ZpQeHUv|q|Qw;UPQ%duENh=%|7niU>M3B?bEp(A*8&CnjSWGAbclym`^nd za8xuva0F}u9JLyTqZTPyJ1E?zsk-AgNHQ!qb17tUBL_)2AfXmKhQIGHytr*X^)hJP zi0R=!@9F+-Oda`le9u{1NGEWlqY1ie`y+PajNE^5uxflFx0SK?i~E8}Ya)oL4+O12 z7P+tDY%U&~h40z@YT*tUzz_VxwcxuNSy~J3A!zU&n`q;Elve3*sAuQ*20-37kPmfU z?FeV-w99zOA2yx3-*2&8#uG3_Eqw^A1a=~nA0pVb^-=~gzD! zptG0MryLd$QKxnX?FSuC65#A>5RT+@j^t906hUIvGLNvb{X5sD$Cnes=c<96N9^AE zdNi%Y`uMj&i~Co15)T)gmli$uo`1qyNA7OR4T(l9$$n=(=nZ5|RqoyC+!-DEZ>6&@ z4^NdJ9#ZnBnfYI-?zHX>%H?TG(42MN-EAxzH%pbyl~W3&M*X*l+UEKHT|~_WRzywf zZxJ=O{}fT%$Ty4wMbv6zj8Ep1OK|#rNclG5#cogjLabc`uQugOx#7UA zMT13Lq&9IAa-!=VplBY9xeL5muGVv>0;^AnKEFore>yc)tewTNwHbr5tM5_nS=0LK zek-#@&^M>`tEXg{%uJJYGT$RtTAHH8&QKqRtInDNceq4s_c-0t3 z-;lVW`CzWRymT78Mw5_w^F)d3g7F60aJ&*+(=uKXmJ#pw?aPbbDMd;L%>;-De{LYC z&*&mQGIkojxFakYD>wWRCed$4GScZ*FU#Jmy0ka7ywB6QS{t!=qiJ{?Z|KHU zm$^woZp_0zs`lCB`dwvE*u``?`az<>l9qwdb|7e-B ze!lM3(i(>+Tml(1DBWhMtQrc1jFbFmrczOF-b9l=MaWz(w@7|2ZHZFT`Fy`FrC3=q=7$HdK$S2G7?A_{4kVN13P)SCHnb`9sG9d|~^ukW;UM!~@`2!onl{%>k zR{Hei@PasdIJ$NMj!UfNjU_pvQw7Kv((So!&=FNrYluX&QrlCmL*|XvuL~_oelFNh zi-^AGcP*9ArVcy%>T2nxI-XGZ8%pEctzICV2l|#*`V$wz`2{RKKQiokIcga9pwk_> zvBx?7IQqfIn;AKFI9nlrx98JKEu>>jJ^{7cYg~BLz*cEB;-)1;2YAYiCExs^jifY( zv*vo7wRdRlfnfe996lBZ2k?W@$S#>sx+sfs zNb&p8h=TQ;nRQ}cWGe)+c4ew*p*qR(iKty}#6o%lT6tnAzh}d%K`1pPW$y{ggP+LW zb%i}gaiI@omHO6)&(1_Y@;e}IL#3z~^^0_a7?(t1G_nSyXsMj#^K-r}c$fC)`jHay|4MySb!E$~7!Gp`Jt`qIE%4iV4RiRl-VWk3CjsHw`?Y7jV*47hV~}9u zHm+NK%vD^}*#O&1%O@<*8ib%lR+vh8%QTcJcTM?YwP zK-}HXK_Ihe7h$}`YZW9lL~lMZj^WFHr;f329Hb}7ahrhAnT=8#pnJJRSj6e8p2apf z#$__|i`r1N?#0^di#aHDyp%JFMKo<*`w(^t%k?0+lOd%YoZ!(U7J4vII-JT<;bWhe zl|`cVTWWa&g@%Yc&t6`^(O23{j9a=YyvV*B<%T767ozKtaN!$`fi3kpeQ|00}G!n<&JF_Z$_*^sN%-;XS#hJsk2Z<08 zc{EAmvibxO9)3Ab(kE4JCp_7Ix|ZXr*{(Lke(%x5Oowa7oLhuua47q`%tN;R226S;cq2F{M#gaPGkD7^!|9A*>-W!^J=}QGbEc;^g?xd&mewY(WRSf zEiogc0TmnQ_0c?{yuCVsJ2hU{xmu$M#SPpx^CydTVL0WCBw`b^gmMC8WUR{30 zKa7hH1Z6Oln3s1PELp6w4t%+kAK8E{XvW+55M%3nUEJ>l6=m-Q(N)hUv}BYG-=97+ zNrcLm$x&cPF6|zY{RoQc z&o3=8BgLGJFV52C_UO`ZTuZe8kx^z`ImQ~}<15W&=^Sf*U-geZ6o0T(bQqY+r~OE- zbh@K>BT!ISAPGlW^fjGiO7INJc?v%IVeVsH=bta#X6L9C&q8KpTAK0gdo7?J+f!D- zCnnIYSV$$9{Ctxk18s)9Oqd1^@IrwxDh>n^VvOZazGZDY{lVqzJX=+F=H=2LI6!H5 zt5_wUrAwJ$s#o>D0w` zIkVe^Ju!C)q3jK9hgk3ty?i{~+}ro+4DSev)C<}PFoz_O&+pLkzHMg$HbTmkx0j2KHJKb7M9T=B7+HzGI@a5NJB`j^$Z$9k zB8#P^>w24q{+xe;4M68e-cf;8PPd>|ShiMSGW0Myt63$|zn)=*Y}h zBoH1v=`K(Y=}cDQjb_ddYn#aJckB~+)cpXr%dg}`oXrob!Und9 zQVsM5qaKOt>@J$2{b6O}KfBl!J=eaoGo|D=A+zd&y^QDwl#FZ((WS#M1B&g;g_ax= z!%*pavZG%yh@GhSLT8NyUGTk0oW zOu_VRcs?~D;~OfKy1s70TGM@s4m&@mj-GB-Oc2^(Z~Rav>qu9w{-6k6l3miU`rK}Q zyNmWxzJ>$|k0Wf4@YV%m5)B4nUR=y%HwPy8vKg?xP13&u8B$By_a|7C@ z+Uv9dcu5oTsK-8+Z=T}DBJ>8fI;oNVGD53Bq-0-aFhH!;^$^Z zds5M@o4ZTe1}u;}V1eueU*Ery_>Tqh(8KVi#V3Vh++7RFFO5S0QxN%7HuOnA!3aJ9 zG=C&LAW>eS*cvVM6{$Xyg2)4*sol^X8fA}*iW(9F?PXMS_*yTt3hv{eapMUk5eW%@vWN~Qc3 z`Z+Saw2K>fktxbndU>2tZ>8(bUc>=}6LAyq6onJ+k1hVb%N~eoUm3{Grzc)9;vB4Q zkD;)WOk6Ukqh9c1#-qjf82;3?81?S2QLOCtGb1m+)d#E)&xJDnW8X!3bihR_h# zk&yk{EQ0WJoaH-71!u-_&5&2r^L{UGl3(Nfo}s|$g*R(A)MkpY!bL_6j_HVPQLWBk zimyrAM*68IwOplU$#vD$X{s2Sgk1{E7&*=-6#dBtd;=69B6-?oD8>|R414r3PT4fA zHV1^uJ1>2^W(VhOxmKq!+V$Slu@RH1=nbePDS~?M$x6z$6&*Qc>3%sfzzY56+#H)i z=?gHsWFnb$clFaWyo-ECHOwYwtGxW~r5*3xc$dxV1R`Q`&yW&xPF{0X5<{y2O1xf# zwRS^KD5lL3vPW>tLhSh$*=t_r1iuzvgAnUP+j#I=HU@*&5-UN`lh2>ZJnoouuTi7u z%VLOvv%}J(BUFE}|7~wczSVJ*J4wnvPh(+c#|vYfyyWWR*7yv?Es@DU=G z%T1EI#pRLdI-mDlx}E%SJ12h1t(4rGh{u5!UhwMoGOkiQl5U-FT^TMJx+VUSZhrJn zCw_gp;-~qo=DT@2FRV4~9`>mbVj=!-mxN3p4{fb6mk+7w0$S}R?KL;*-!dH@_0}et zAY5Ul;t4sEk+`l?8OoZXc9r9h2Vh?oBZRhNsK7BEji4=j`(#I`$DyHRq=WTJ{bd~y zzOE8?unG1c7OM78dV`-@Ngj8|abN&#+oN08kWn?{7XkE_mS{aFR*SDo>~-z>(Jp|Y zT0AJBhNfvjzNNm0HfTZom1e>dXQ-!+Htb32|9nz&BT&I`Tx zCskiUyxViW{oEwd+~Aw)7;MMNR3k3rF>9f>#F@EyakKiLw|~C!jNx*V;Z3PTm@1j5 z)RrQ8kKebxwZW2V1wO3o{Q7uOTdNFqvzgx_{(RYJP(*+JoTs@`MA;bPJD{b>kr<(L zq(h?i_-k45Zv{teP#acuJ<5;Dj0>_*#`r^)*s<+CtOJoPjGaU2gh$qp}~kod_Y+D3quRZ`b42oVhSCqk^An$JEV8^1jejIv%(#IbU8F?kNh=% ziYrPhXETTweYkcY%)eW`)^~o)tnrwG0_>DeX`iT$p~H6MGCnhFOET(*FFA;6@cs!@ zf_m+6MsVV!ZR>m9_zx|p8#vo~neOdgq#R{$GPS{Ka7Qp5vr=ck>if+ce+rhv9dmqG z&BcAA8OZ+8OHqxrb?4E6?I7!k{IYz9K_>o`T%s>@sjt;W=M-G| zb2a28Tys76vaz7Z{@?%mbUJJ+7VcHJJB!n=Ogadt$KFJcnRQs{7^zl-PHF}!p+zCC zwQwHc+}=b!>4`w`PcsF+Yycy`ccD?_!#>^&zY6&x<>hH%~CvfS0>aUr_lD% z361KFJ@%sj)Js)GvJXvq9!tBBi&XkwHJEYp_`OKk!*) z7mVWV+ADrzE|`yftKWllfKUZd-zmB=7czv+dM!$r2-w@)K9;_%y@1ybIKc<#A($3{Tns*48 z*AHM`O>n`yivOM0t{e?{Q>@fHh-m=#r8VaIBdi8E{iBye=jy)VT_@W#SL-APBA;2% zlR`}*t=yj+3;!0y8e+3hxf8{_5}9el=t6)f2QXX~qkYN2OoV%JG=eAYL)MIO(8-j% z__KJazf8TthCipAb&mLSpTSN%r!RjRK{zRS+Q<-Hng5OjW2O_aI6(8#njlOH#|~0^ zG{PR2BB|~wz-EsyE}c2aUc(m3U#1p8~Lp( z%3vF^eSqNQ7M5ZB$tKGiHb0EGb7i8W$fH2xiTuhk2Y+a7T1|0+K>Ws|H9ZsaeXNq2 zaTif7670uK@CM7}TExg=bx3m^&ucHg`W!`)+&hrJd5hpWGiiZa~Z z$6>m=JEglr8j%hGX&6vM8YH9{UaqX{0-b`8{~f=X~Gw{;?M` zYw=9n&wcNG?YOS_HKP(-9~pTEV61D@hleit{~Ty5n$AEGO>lnfo|6C-U9O34Gy2B7 z=4prp#u%Cf;I`()<4V7sg$5}&UBMqcL2MF}yg#6Sg)XNNx~I9~+QHk+I59WSyL-fY zb&rc4;iQ-c`}r1Wj_kAsNj09Q09F&~Obr(ayB7+f?Zm(LhWxJ*!+mmKR z*-W^-mx7g6|Cy7L%oR5RgOt)~5E^If==G#YpQdaqmG3(!R|t%ki#du4zQ~n~R3u=+ zl=}_Su2KVk-+guG`HpwDtene&__qtYtF2|5>C=#yunArH!b_-r|6hS~0|FVIOAOgEJ1EQ0%C=&q29s$moD(7=y=<-*a&y_Lv&iMFOXCRtm%zJpm ze=%&JXo$~=a{}+2U(1)2JxT|DWB`}T<^s4J2f*dx|8Ti?7=X(u09-zZWVc#L{XbmZ z2t+RO0iKvNjV^EN75#CqE=%5bBzaQvROSI)tNb7d?c-x~WIu&vP#Xj|z|OsoP_S*z>mbGT%d|bnOHrZI&r4d!Q0YYYckIjny`p4%Eynf8A2DL)ISR;jY{O9BfGtxGlZdc^kz&Q0Ceb?2V^V3xBIWM4r9 zt?pt|T5$gO+@92dMNzweZ8{0tMd-86lXvBT*82j{bTUWK+`4!JdAI>%*zPO%wec*5 zbNAbYQNoC0{Oicr_IE8!=EW2K3HLh2??egxC_;pj$Pa1f?GnTzN7=>$A?X^LWo>W6 zD^gw0u;9dD`U+h4FaIC>2Tcm(2S@D}Zu>SZJ18k--L*cIHd&tFBwH`mG1vw5r^n(&}1Qh%5iLr*I3McTxfl9kn z3WT|s4||I5@E~*w1c8Z=zv}Mfs))L1JFTaNRJgb)=*r#dErvS=4yOvbQ0Vk>sS-%1 z!8~HuM3J9~^5J)c!(WK4f^cBsr^;P*&zn2LEPj~dlm$Pq-!xV7U_eyKAAQo5wV_eW zgC8MGW6DX7s)q6e22%fDGFN5!VzXN`T_FCbuh!@#G}~Pa$S&Hsr{uo>);CP1Q+-~e zQh53D6OT51hg?3A{%R!|8HRu)a%QJ0$8~z<(+=J#wIGuZrFc$?2j<${{QReRw`EDHh8m(-kElJY+d--!>rNzujv+hnxpcQRoJO4DG zZNvP)Qee8Y5I^f>)j`m3yXwhNjP(PNOz{e2`_>9%D0wUP8LAe-{uzo|`%J^kQe`x8 zyf5ssQGqrW|G^RB8VFHPU}`1%(4>K5ywCTV{QWlFf-F^uhB20QsX9SkKdT1XBPKFu z6|M7P$di>M!u}B6%aTXCWlbW8&8WTJ-8=S@j?I$YRNgD0JvN{v*i>*a?y>en2GpK@ zcBN|7#Qdv0WdpURoZr^cj)DYKQ60Z*7_jr`M+q3~lvS+Qvfj2?Mf%WYCnW*cB<6Y3 z&`<2x2;S45sy+ZVfj#R}VuPrV5n`Vs->z25*<*-5)<{&{d~qg0TWJDc`Pddo2(%0O zV9cpoX!Y)%?v|*MWTWLjGXtl)3^9>bd{!Bw*xea2ufCo!7LIj4hm)oFtSP~dbK=>> z*xTES+%KJIw0|IJ(+pwS1GVJlFS)?)e4!t_3l&$Oy`REZy2c0%QMl$L0$mPi1amS3 z0Y`$Luz-EyGK}}h*w4^M5Ys_vn-}+9pl^IEL{Ne1o;>pO1BPV?|8)^AC}qO_BJn&< z^7o;BJf4X$@1?>uZr7Wx3w$+A5ot#vO6M}G0*}x0F;AuU_L2j=7)?4~>1DaW$YcK@2VR0C7jh(UEP_hrOSpX3 zcSndr$k@H}bR>f?!m%qY$A!<~CPGW*T@QKykfK~RHm^k`}K6}9?{cp*x|sYgS;XASa812o*0Weh`hC0DfK@O zXu`Jt`D9W4v0i`+)CSY^? z|MfTN2jLqyt@4VAaU=51g7z445c?2*U(?UQ=IPu@sAZr!I5n4a6dUZ_CAb6QTcwa| zR;m7QBWj4&o-QXL@li=^jp3^cUk^j|iRfE*Ta!Qgw~F`LH2g@E$1~_2-Q;*k z7^~lr7tu<$CC$)fc(}<+uq8qOxQ78`{nY=m{uv}7>&F1H{{J>>{x9oa^^h|bwPe$b zIvHdKpwl681jfW=`f$OhbLXRv>S*$+`1BsM+a(l2-HCTE_WuAI5Z0vsg|&v4?h{V@ zm;k!id_)&?0J`w_hc1#J0J@+9(8UIl$7&_r|ImeAkfnFN&zfWNQcn2xWoTZByY^#p zBLQKLWykxerEhhhO#>X{J5hT=f+r{>Yn9Lb+mX^t=sPs;$|p{bAE*B|yYV~Y>B}li zrSzxKZ#+2?L=$5%J|X{F{UMb2{J&i{y`WtKx)Ew9HysYPF~m|?-GH<{?ZN_J00g{-e9BkWtoD|fc79M$e zN!w}PXVwF3cGWVxl7^nLLVa}Xoal*NpaMZWe|Ox*h*;NmVwOcZa+arq!kmVrhs1N! z@yRm3f0CxiRKGR(<0RmhSe$2m%6V0=hT@J4w)}s|x7)-V@2Avyojyv^VT9IeuIrKT zi5<7c9QX|w8jb;PI>J4L+&{$2Kh;6LN9u@OHD+8sSg!Y@te74+cJ01y53Or-7pfA? zK2L;Y>I6>e6)Pm2&lA!QvU%$=IQJ5+BcB`_%Q*jGd4|Ta{{4f6>i#P8obSeCm%773 z=1EJOjGR~sk*CcX$}4+G6*;_O(UV*b1A~2>sJzVQ;-7kPz9Ekt8;feaW_*GgzxLhM z*_cZ+eX!2)PernOl4N~SyU}YB%QtDym0Q`G=hi>37q^;VTau3cV++Svp<$$F;GEZv0PoOp&lcHgK`CZVc4r^a?-Hi zc7c@`f>T-Rm2qwXNyC7qyx%eS+91cO)={KikP|tP2f-(yhq*1WUdBPY+|*?z(~676 zBsy0?n$bMW&>tHGMA~D&W-(%zp*OcvL_Q!QFU%!)!JUm7%95fFautbyZ}O(2$DLxCdJpAVsQeQ(l2vuiwQBn>Ea$qk>%M=sni7N06!uyhI*?!_RDy?p-K-zIW-s z9$*>6JsF4L&+jbVOBei}(zP9UuXsJrh3DwpbrdrY*SRi~4@5|FciDq44(pl!)Nn+` z9JCOaM&2AkD(|xAvx~qY{`kqD;qCHZp5l7P@;?+m{4bgA1Dww8?M7++zT5;hP)7Jo z?MkgKgU@bU$$7!~^8IcTJzJfrR6Ev4H8I2`4E7w7ouTF5czBcylJ$06meA#~3r3e*lu3jVQAYQeOd zW=5$dcintceK2;NWWglDU-mw#IO$oXS!u6tO=?4zef{jD#tN|!!R_s_#SqDAp+#qwgRUG#`x3UQHeUtK@#g$_2_!QM zdr0NMmOq5ZNgep-f2B`7qjmKpbPVHb&6c&*Ogd+}%cFY$wbEZMzvoz$zXszxynPzv z*?Akd*f&N z9rF$DE5*4}d5hnREQ^h@?5^0#z}>#8UFmFtDj4p>jeY7zDkdWs?CR87^Ggg*(BoND z^>qX|w*@%pUUjju(J6U2QWx{HY%?>%8!TmrLc{N+2%qV&FsT!|5?bvG0XQCI+&L06 z=i}(Zw4WOGT1(aNaS=QB1+X@e)C`7s)UEXE^b}Y_HzUWh7n|?>6Nns9>-^r-NqMEi zpOVz|sF_*tym1d9CkU?UGq=i*J%CIt77Rfp%L>;DsR`Wo;2R2 zsxn1Kx1tnvYn(>DaS5|we8))KB3{@F)9ubT5W)T1{d;G^{dGCvNgKC#$`(F|p>S{g z{q!R3AO}H|TE1-Kl3#h$ z1J-uMT@?7k*{0qYjAwS%9aTClnto*D`Qah zQ5b%2UVc%+qAzq>F1qkcZkU~5Sj~mb5;Hifgzxzz4Gq)m2tLMs1-j;+;+tCbayK(k%>k6 zBHU6RhYr4PO&bB<1bo66uRi`4=@+89YlxHC`6gSuV2n08a6d2oBbA-tw|ytO2HNq z--B=dT8F{i#}8Ylv%*Vzyr`EuYTtt@yzf1V$K0;+mQlbPcaa)t?R+1vO5WyRT*x=R zK>S(MLwuLs15YZp@%1O^{~-s9>=3$L9twi65FmREH0|b}4`_cm-`=@5ZP4!_eKP@Ru;(n)&R>a(KgH#m5DGOzSAG z72}%zOSczVh~J^-yLJo}D^CQpD?uI!RV^2n6+dPYFugSc@C_SmseV}T0aJDRzx<1{ zT_Y9&DaLy>XrC)<#88y+pY4qUqS7VESz#(6NLs}tB*$y^a;NTcxlLmw&TR?$$3>X( zf&0t!t`5b%d&_E2b$`#&fQ`VwH26XF^p~YS|AD|>lpsBu?< zJE@=%**?lG#e$1M&Yx3ck7SX;Xi{6A^s?0;l5;;=)_%;}tOoj4ModP@JVIMtLIPH` z7Uz}#WS}mlCLVTu*bz2&J0xr+Du!&p=7*8%QXG0eZ^C*~3sgQl6IB8QcXY%y6bjKt=*Hv7K5_i|u z0>$%ejbytaZn$E-L;hI{q`n{=c)-0RSfxVy+G!9mvB)o} z1%C?3K%afU2-!xxw_#vHl!q-h${wO@cQ)B(zMW5CxIZX(BU07k^jo?0`_LgRYBTR| zKIB(G0U#2`o+mkfHIV<|E|m@7q4=O4ICR-!!(-l8q5@4^wfb;@oC?Htp#pulU#9c# z)5J{FyM+;m*_YK4&Jm(AKJn{Nv0i)3mo=GEbqqxI+@Sz zinzJxHz^oy@^ICfZRGSbh%)y0;rwCS^k>M%65{1`6b(FV%9&cOQ1-@vE@J6$XplZFKt|?;B>cX#OKXj8;{y17O_SJWtt$1U)gzsh$-qF*YC(QX9SajH`NQO+oNbJpc*ot1D1PbYbL zW7qb!Ai*~1WuYa<+h^nYku5kCCBj*-dB+$Dle4lzJu#p>bEgA=mh8HAi`RO8(7wV> z+92*GkU?R1m;RI>{Vcru$vFQ45X&?0fq@;g26fSnv(*xRId;V+RGXnvXOhIH#M7-9 zKCHa_FWOn(QHY0bQ&vS!EG9|j>3*8enwh7dl0(k1Und1kR_1*H6c|h@DxnrW>=rNI z+=kapQRGx@nFf7x1V*hcv#_;aPGm(}+VgyNDPCP=wrW=s{TNL69QnH>430fC*R??k zx4K)eTmBNR+sV-w^z8PCwCEeF|kH@8=;S<@MsYaoW+6=gUl`d z9_(@yPd*#+w~piuBQRb(qkgI$uc$7g7f@{~b7vv!*I%YsN^GS(9albc8j3DO&qmb6 zOGZ}+cJhC6k1$vSb7nGXB@3q3wp7+Nq4FXpcRFAX9X*}p&W>W!JCvaEo_Xwa#1aiD@Oas^&LGO!rD{ylt)FU*)h}I zTPR0KoY%CSSM`QjP!?WV|Kw7*a={ExR6^FtM~WhaL_Da2Tzrlx(09OF=Wl%za|PJ5 zAM!D=(%re?>aqBuYZp0GiL)So6Q<<*St^_j`JvY+u7@0VO8A{Y?g+dlgtydZBi+2) zZ|}}y_P8X#fmV@(Hi@EA)a6vpx#Kx;yIALy)NopNb_-8`})%@?hcR@r))J?0nppc@>{((;*Avp@>V((SMaLKU#FoF>LsX zlTdy~C0!kFQxUsO4bsbD_?b)IP)hUbuFVbihr#0P#(OUAg!9!)wEb5~Z-%wsv@f*> zfN%DO;UJJd9=U|^trny(9b(+L;1Ud~+QCmlcrPT}?+({wzLnX}8>6Xo{ zybC#MGCRd)w3kZtbDH}CC4C_C1>tXKHplOg6hoMfah0}OZB9b+zt`VY-faE4u(*I7 z%NdfbWZf-HL%*wD*f7ln?e9m8sPLqA;siVLG`9O+*?C;-e!kTte9?+y+@AxYcO3;y zlAtNQ@T*vLtW~77aCi;RkwN6knt$1KSl|O7}Un^#FhjRUi)0 zu)EOc2T_MZ(iVn=cHeS8hK_LXlLo?ejGA6GxPQ#_g<~DISx3}}uFYGC z07{IrM{=2lbhk^FSnEjdBx&F2xum0?X^$7){DkQnR!FAO91vj|q#Mw2KhYnj`Ka7p zrc6fw6YjAQjFeQM(_tsLF^Ev7!+8Ax_2*h(Pv|ytM8VG72hN&v zdZ}5nUvp`n~le2J}LGxaFJco3Ks3?Q(oC<-9SeqPu9v((#( zF@vAHktE{oVS(8Q8Rc*;=R?W}F~uRr(nV5EH0{Vf%bn2Cko=|U-@mcLU*IqBFIDSi z-3EZy3DR+ef*;gx=8hR@MZypqzORC%QK{Mw9YX{|a{7=SDiPbD*1L}F-M=k+oQTT? zZBY=K8v|mtjIr6R*-hH5x%(1aY!I^M=GB}v++#hu=Zp}zTUi>blK<;-SAJMEK@A8b zTN(FwN42f(fXwJ4I}YyUr=CIwz`LRk<~;(vqqXvX5E|0W2Ux1)L+4RHr5hA$e1Bls zwdARO79L1BKQG@O8Os2zz&*~ynkXlX!KKq*7@BFu>6#{=my@S_!(-5jo_IFZJd!j$ zx;S?$wmIVU!*c&JMK5i3Xc@%}6x$IDobs-Wj7kna^4cq?Nbtn|M7R%S83x@Z-kv<7 zkS6oNd9AJ4uY+_sO+UFVsw;rh`7o^L!j&ch_Ugiu(+!HhySuKxXsOG~a|o1N()e#R zf-?y0$VZM37$jRx@{VbCI!c||B-&1LYML)Dc@uWJZk7cmBWV{24MJ`%Zkw5hHQ6@C zWLBP`4xTAKPk!3{Td__pJ8?AR-kj{gleD(tJEoXPME|Rcw1`7Q{1fCQg$B$Wo#xvS zMb|Dad?Uz|TZNnaRSP90$na@1ewqs}TkO&;l!mH;P`o;m&Xu5|!O#Gj=o$)L7%AU4 zlUQ2f+shxl6|(1py!ED+f>bm*G;uUT!@q6>S zhbzP_!mOXs*?Xm=MEzK^d5_c?x&HWULFw|-om82PyxLzKM=BIN=7A)J9Om=kULyaO zczMP{M1O(tZfN9a4Ykq{S>)(b8YOn5dL;AX5ek3#?|kRhxK$CnuWtkEN97sKcZ`2T z1dEwhMP)!T=9O0LaN!2CN{EB^qUs+@5LaZplmg{L8gQJ=SEHCa5aZiX1ocH8VNi(N zUudZco&hrJSeKstcW-X%XPG$mF~A)UJYbWc7QFg~3q?g)L~7W=r_#b&1c}fUGKK70 zy_3yqna0~MAUQ3{cKha{k(;qQT;-vs{p~FW`c}vnhfoDcqQje?3W5v9cH3J}vDXbh z5@jOyGc?j@cI>33fKr{$-P@s!&U@%cDg%~Nh}f|i1VoAksKiHj$BvNsZ@lR02qr1|<0J2!5t`fW*Z6Sm>Cs9%{D1%Gw6jnSuyOK; zM?c6Lv&y6jVtqb-$=da@we21KVE2act~TXJ>;$xuTfgLY0`A*V{Oq+s5pLBipoU)V zLxJ~_uTp@{&DPaTIv*8|09rimtt->ljO7FQeHqK8G0I>8f~*-*Ox_u|$VX);exyNB zz2f;5#+ctrNL8!FXfy64$e5C4UoWUZeu{RZV)md^LNv(XtNw*WD-6#4U8M4xL?g)E zYfH!LxKX9)5K63p(;uL25_%=sG0z)U{M@%* zW*g|~vZi;Ct);#k)nl~+TOo_0(408Zz>alLfk(_{tc{2AnFI8gx3ZDkKIA)B#Mg&( zdWYm{*)Nc4Q4hc@^Y3(#1QByK!GU2zffB1)s}&9ces+qVoe+D*@cWrN{K|71K#*NTZXCLb%rV>uWq zPvt*+>fAx0;xSdKi*)*dd}GWsRHg*$v`Dz`F=MlE5j_&QF?Pu>(JBQ?}noN8)b%teH zSFuzlCT4t`a??2NLc)RZuynZKdgSun;@Bsw>(>&MH zdP(N+7b%VZj=N!RqJ92j*ot{tjSMw=?OXqS*Yq;(c0V20P0+)wD-R|m{fIF&|9Rkx z;M`ky|NUz37b)52@_o}Xl=70bP4SF$)!etCe6evVSCAEGjJ7*%*}?m&*!UxiHrN8J zbdf5A_WqM=)zNjK2qY*fNJV7SN#S1`9)mZ@2MB^q)d5bpri*_<3-PJ1`1HB}FrV1lqH(t)-pv(N|a;+aRA2o3D0k$xF z?c#e2e#mOA}4Xnk|SD=WJ` z>gjwPB_;c0(l%-M`;0>BMqw9H0>=#!k^N!z$(bpcB)!n`AX_I||KF6@`=-jLIoM@u zVr6R+UQ$kN3uTbq=cz)A?M^b?df;UD*{=59_DH@!(;}*if#L0bgyxchRCmzUqHFmd zFU*&xjMI!oUTzmIdV6#$?XA04s@YDeTj9h7bPY$opOi0P`3{)Rro`~H>AyaI;aoV! z^zp0sYo?zxEc-ODiZ8COx-Jt8kU({fchINbkinFhe_dsETF3uj3@YD~$?Hs2%DVx{ zzPzPI3$Xk}1U}a%w7KA!UCXkS3-ts4pZ%C1k*o_blN=?vEJ)nX+K1D%)61cYO2$fX z5Mt{RK9v!h0uDf&TvlQq#jg12A{hJOVbk0u4RR}dT~X&~*CYa6a|4$IT{|Ob8B9Lw zuhtCXBF>hgJ5ev%7K=;zV-r3ZMBUAJBOeuUkzCe`XTaPBs?`;GWR#3PtK#2&EKtQu zr;_S&KdD~`Dt(X$NA|%=UuKq+(I3sB8j4t(H3cbCiT7vV_T!-F?jE8?<31sHcUK{1 zS!YJk?H_Pf@7+!TD^g*@i!CTe_X!Fx4DMz7#LXEczQz_3y@Wcu+)$#mMAynrWAd#R8 zv7ZXwMUCXo?`ot2^xYVb!P>#4WLIr#ot}$~0ri~o9Pso%>2tws^O!HgLnwH>m-jNh-!9bX>WTs5!8KofUgM({z}Mou;5tk6B_uL2@v+xK>6 zpR+03ii5SDQ;+Z|l9<8};T|(-QB>CZQ++B0e7zXdi~Mf)0}Dc4hymMn%YhyQ0>XN(N=AEsHvfzAwgopx2GPco?azu~InSEqRq zXW@HR{rgioWH+JWb^7W}bJsKf{LnYnbEv!`R>HADTzDqQ(VMsgyr4|fWC44V_S{!< zG{BpE-o!;so+`d6dtPv$kx-qwh@Jqm4Q2j&tauo5iwXT-7JnC+ee$%y!Vu6tYUp@U0J3zTA+{l|SKuW-`I~+PdN|VB2$ZwA7 zZBy4IBQ%6+uwtAgC;@YSd=b>=xDX>0?vzFsLBXfdJe;feo-Td<~-O5kSE6?D7fPfqFySiv`)4#{`gOEpZVUi+_Tc(+XZufWvd$j|_tgs21ydk2=EPRYNlOJH$ZK-d(^kn>m@%@H+ zNSvo^I1OhSz;ZYF&IQU<3GOR>Fl|epLkN=A7o!VhO;x@!Ja?Jb^)Qi z`hJ5#@+|=bXEiOgH*=PI_s#*psTGgaKC6Mq+wGB<25nZt9PxprV9-l*A-K$y{rOV3 zh&TRs8v$z4nM%06)Px#sl8DWF?gijhco#43ry7qKeNUmubj^X7Ug!S?Rm=<=>v)@{ zIfaH!GKt9-2hhvu>nb?LnXwmBU%K&=ebsOre;Aq*#4J|7lX%x7` zP|AAIf0TGG>fpr?Hk>OWpVd_F#z3$T#G8vRJ&-Tb+cMbZ>6_A|8UR>O${Yi*=d|BW zvtYRETAfwNcA3pH)oLkSNntI?V=7%agdZAUyZl=juNB|Ir`hPG zQ{Eo8{1PK1E7{FR88EwG@vElUz_G(G|2Ym)({#I8-RZ2d^MLK8vtB-W0`ZJ#x-^$; z@tE_c9Wlmxi#Jqq5&Lc@q)7M*0Z8`sY-;@Tl&P)w3Ik}Oy$^A1p0kYAstbTEF^)fe zRDAo1hq#g0m{oqOUR{Bi(y8Z*+6Tmqc>HIcX)chy7cCR0DX=$REw)T(%6tekAs6<5 z6=_1|{%v|^Gn&7BZ_;Y&knKWl(5&su37sby@PH?#Pg13(QTMaD{jFu^0o(Jp{`YAG zGp129_;XxeGTss}q4qH#rMXB|y$JZEI*3%Q#pKB=KmIgoQ`Nr~u*pr;zmMKWL7Y$i zG$1Z>Xyuzb-yw@19y_G}Udzrr(Dsu`4a_!A>(G-|Zd^X9NA7HR z5DSRwBB$c92Xt-7EeNyzxx~^1)oA$Do@TfRxaWtG5XfE8E%=dv+p|0Jo{Er1?q#+22PE3z}F`!@S3 zJ>g;Q(8i2vhc{vPHGy>ONa*lunyg+!>3{xkS4Mook3xU~#w+!Gxm4dNm)iakY3Q|_ zD9Bn@E!UJiT`HLlSj%`|Edkq$|Ib>AW+c<8kKLcwM!#QB3jWl9;KLu4MWPAW!W133 zWmQKw`v^MFhEQPdAot#~LOe~twhHEeS%Uv9D(+6G1DyCGN2PjVaxKksd_v*v=*@QF zS;$+q_{3pl86S+SH^7QUY{R5lk7aV(0Bb+~&x(59L~O74msfHr#p{}Ppbxz4%GWiR z>QC+zIsS{B?YHc!b0P!l5jo~19icli#2;SEDnUK~>>`W%pRdZ+J~Av`rtR>f>7?uv5ow490hY08X z#ZH`C{kFgSOU8cl#cv+snOZ2DJ2b(dx9#xn9_Bfx7q;P1?Djvh+1bMUkp8nx zGYVwwuZ~lxt&_3szL-8F_D@_>MjWzSfUq%nu4q-B0M>Q}{$oa{d5 zBMtn8*F@CMlGSa$ydCWJ^!+81FZ-H7KS$`_%0ycP|GE!oy$?>JOF9m2z?t3lVa$Jb z^BBBung%c3Z@w-4$CtIQHiibhBao;Pum`M2qUvANwP@#D=?pGR6-j7N7qP~p%0c@@ z>D*8*Fwfe`j7~KWF4XI?ALH5R5~SDySewhgxEuNIrv5^JvBGVOE3SdGEuYyB?FnlC zy_#K%o2;YHi7QzgFG)Y^m;RaWo~ePd-?ZBqUT}aOKdtvy8DX9FFBCRp_t581_|krc zb)D≶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%0DFA<- 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

    @~V$Nv0a)&4|?rMHnF*NtPi>U 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%0DNxydW^(2_u79XlU>uztgah4=b*oG`kj7;`K^`$V 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

  • 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 Db{>vg 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�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